音乐类高考志愿填报资格校验算法设计与应用
Design and Application of Qualification Verification Algorithm for Music Related College Entrance Examination Voluntary Filling
摘要: 按教育部统一部署,2024年进行全国艺术类高考改革,各院校对自己的招生专业都提出了相应的术科科目要求。对河北而言,音乐类变化较大。在音乐类考生填报高考志愿时,若不对其填报资格进行校验,可能会造成大量无效志愿,从而减少考生投档机会。针对河北省音乐类招生实际情况,借鉴二元逻辑回归思想,设计了“音乐类高考志愿填报资格校验算法”,并采用Java Spring Boot + Layui技术进行了实现。采用Apache JMeter工具,对系统进行压力测试,以满足志愿填报负载需求。该算法在2024年河北省高考志愿填报系统中进行了应用,经实践检验,该算法成功对音乐类考生填报资格进行了限制,最大程度保障了考生利益,为后期的投档、录取工作奠定基础。
Abstract: According to the unified deployment of the Ministry of Education, the art college entrance examination reform will be carried out in 2024, and each university has put forward corresponding professional requirements for practical subjects in their recruitment majors. For Hebei Province, there have been significant changes in the music category. When music candidates fill out their college entrance examination application form, if their eligibility is not verified, it may result in a large number of invalid application forms, thereby reducing the chances of candidates being admitted. Based on the actual situation of music enrollment exams in Hebei Province, a “qualification verification algorithm for music related college entrance examination voluntary filling” has been designed, and implemented using Java Spring Boot + Layui technology. At the same time, the Apache JMeter tool is used to conduct stress testing on the system to meet the load requirements for voluntary reporting. This algorithm will be applied in the 2024 Hebei Provincial College Entrance Examination voluntary Filling System. After inspection, it has successfully restricted the eligibility of music candidates to apply, maximizing the protection of their interests and laying the foundation for later admission and enrollment work.
文章引用:刘宇, 何文海, 甄雷, 赵凯, 孙丽丽. 音乐类高考志愿填报资格校验算法设计与应用[J]. 软件工程与应用, 2024, 13(5): 637-645. https://doi.org/10.12677/sea.2024.135065

1. 引言

按教育部统一部署,2024年进行艺术类高考改革。音乐类专业省级统考分音乐表演、音乐教育两类,其中音乐表演类考试包括器乐、声乐两个方向,即音乐表演类器乐方向、音乐表演类声乐方向;音乐教育类考试除音乐表演类所包含项目外,还需选择“副项”,其中主项选择声乐的考生,副项须选择器乐,主项选择器乐的考生,副项须选择声乐。各艺术类招生院校的音乐类招生专业基本都划分为了音乐表演、音乐教育两类,并且大多数都提出了具体唱法或器种的专业测试项目要求,部分音乐教育类专业还对主项、副项测试项目提出了双重要求。

新一轮的艺术类高考改革的实施,对现有志愿填报系统提出了新的要求。改革前志愿填报系统对考生专业测试项目的校验规则为“一对多”的关系,即考生报名时只能选择一种唱法或器种,院校专业测试项目要求可提出多种;改革后,由于报考音乐教育类的考生须选择主项和副项,所以使两者之间转变为“多对多”的关系,从而使校验规则变得更加复杂。考生在进行志愿填报时,若对其填报资格不加以限制,很可能造成考生由于缺少相应的副项成绩或不符合院校的专业测试项目要求而形成无效志愿(无效志愿不予投档),从而减少投档录取机会。为此,考生在志愿填报时对其相关资格校验至关重要。

2. 河北基本情况分析

根据我省普通高校招生艺术类改革要求,音乐类考生在进行高考报名时,须从音乐表演类(声乐)或音乐表演类(器乐)中选择其中一类进行报考,二者不可兼报。报考音乐表演类(声乐)的考生,可选择“兼考音乐教育类(声乐主项)”,同时获得音乐教育类(声乐主项)报考资格;报考音乐表演类(器乐)的考生,可选择“兼考音乐教育类(器乐主项)”,同时获得音乐教育类(器乐主项)报考资格。报考音乐表演类(声乐)或音乐表演类(器乐)的考生须在“声乐或器乐艺术统考细项”中分别对应填报一项唱法或器种。兼考音乐教育类的考生,还须分别对应填报一项“声乐或器乐副项”。报考中西打击乐专业的考生还须具体填报两种不同打击乐器,其中至少一种为音高类打击乐器[1]

我省音乐类专业测试项目较多,唱法有3种,器种有57种,考生在进行高考报名以及院校编制招生计划中专业测试项目要求时,须从中选择一种或多种。在填报志愿时,音乐教育类的考生,可以同时兼报音乐表演、音乐教育类志愿;音乐表演类考生只能填报音乐表演类志愿。高考报名及志愿填报要求如图1所示。

Figure 1. Requirements for college entrance examination registration and voluntary filling

1. 高考报名及志愿填报要求

Figure 2. Voluntary filling process

2. 志愿填报流程

我省2021年高考改革落地实施,采用“3 + 1 + 2”模式,同期,对志愿填报系统进行了全面重构升级,对考生的首选、再选科目以及相关填报资格,如地方专项计划、国家专项计划、少数民族等填报资格进行了很好地控制,基本能够确保考生所保存成功的志愿都符合当前院校招生专业的要求(身体条件要求除外),志愿填报整体流程如图2所示。此次全国艺术类高考改革,需对“资格校验”进行完善。

2024年共有929个艺术类音乐统考(含声乐统考、器乐统考)院校专业在我省列有招生计划,其中音乐教育类专业335个,占全部专业数的36.1%;提出专业测试项目要求的397个,占全部专业数的42.7%;有67个院校专业同时对主项、副项提出了要求,占有专业测试项目要求院校专业数的16.9%。由此可见,提出专业测试项目要求的院校专业数量及类型都比较多,本着对考生负责的原则,本文有针对性地提出了“音乐类高考志愿填报资格校验算法”,对相关院校专业填报资格进行控制,以提高音乐类考生志愿填报准确性,最大程度保障考生利益,同时为后期的投档、录取工作奠定基础。

3. 音乐类高考志愿填报资格校验算法

3.1. 算法设计

“音乐类高考志愿填报资格校验算法”主要借鉴二元逻辑回归分类分析方法。二元逻辑回归方法通过建立一个线性拟合模型,并将其转换为一个概率值,然后根据此概率值进行分类。回归指研究一组随机变量(Y1, Y2, …, Yi)和另一组(X1, X2, …, Xk)变量之间关系的统计分析方法。通常前者是因变量,后者是自变量[2]。二元表示该算法最终结果只能是两种True或False。目前,可用于二元分类的机器学习算法和工具很多,其中主要包括基于感知器(perceptron)、支持向量机(SVM)、最大熵(ME)等模型的分类器。各种分类器之间没有绝对的优劣之分,其性能的好坏往往取决于待处理的具体问题以及待分类数据的特点[3]。与二元逻辑回归方法不同的是,“音乐类高考志愿填报资格校验算法”概率值只有两个,即“100%”和“0”。

Figure 3. Relationship model ER diagram

3. 关系模型ER图

对音乐类考生的填报资格校验,主要涉及两个实体:一是考生报名信息,其属性主要包括性别、选考科目、是否兼报教育类、报考专业项目(器种或唱法)等;二是院校专业要求,其属性主要包括性别要求、选科科目要求、是否教育类、专业测试项目要求等。在具体计划编制过程中,院校专业所提出的多种专业测试项目要求为“或”关系的,使用“+”号相连,如:钢琴 + 古筝 + 小提琴;教育类专业同时对主项、副项提出要求,为“且”关系的,使用“*”号相连,其中“*”前表示主项,后表示副项,如(钢琴 + 小提琴) * (民族唱法 + 美声唱法)。二者各属性之间关系,通过志愿填报系统来进行关联,其关系模式ER图如图3所示。使用x表示考生报考主项,y表示副项,由于专业测试项目选择为中西打击乐的考生,还需要选择两种具体打击乐器(使用x1、x2或y1、y2表示),则考生报考专业项目可表示为集合S [x (x1, x2), y (y1, y2)],其中y (y1, y2)可为空,为空时表示考生未兼报教育类副项,属于音乐表演类考生。除专业测试项目选择为中西打击乐的考生外,(x1, x2)、(y1, y2)均为空。使用p1,p2,…pm表示院校专业对主项的专业测试项目要求,使用r1,r2,…rn表示院校专业对副项的专业测试项目要求,则招生院校对专业测试项目要求可表示为集合Q [(p1, p2, … pm) * (r1, r2, … rn)],其中(r1, r2, … rn)可为空,为空时表示该专业为音乐表演类专业或仅对主项或副项提出专业测试项目要求的教育类专业。集合S [x (x1, x2), y (y1, y2)]、Q [(p1, p2, … pm) * (r1, r2, … rn)]为两组随机变量,二者之间的包含关系可通过函数∫ (S, Q)表示,该函数最终返回布尔型结果。

对于音乐类考生填报资格校验算法具体设计如下。

Figure 4. Qualification verification algorithm design process

4. 资格校验算法设计流程

考生在志愿填报时,分为两种情况:一是填报表演类院校专业志愿。该类型志愿表演类和教育类考生均可填报,判断相对简单,仅需判断考生报考专业项目x (中西打击乐的还须判断x1、x2)是否包含在院校专业测试项目要求集合Q中即可,若包含则说明考生报名所选的器种或唱法符合该院校专业所提出的专业测试项目要求,∫ (S, Q)返回True,则考生可以正常填报,否则∫ (S, Q)返回False,考生不能填报该志愿;二是填报教育类院校专业志愿。对该类型志愿判断相对复杂,首先要对考生属性进行判断,考生报考专业项目集合S [x (x1, x2), y (y1, y2)]中,若y (y1, y2)均为空,表示考生属于音乐表演类,不符合院校专业要求,∫ (S, Q)返回False,则考生不能填报该志愿;若y (y1, y2)不为空,则需要根据院校专业具体测试项目要求,需分两类进行判断:第一类是所填报的院校专业仅对主项或副项提出一项要求的,需要判断考生报考专业项目集合S [x (x1, x2), y (y1, y2)]中是否有其中一项包含在院校专业测试项目要求集合Q [(p1, p2, … pm) * (r1, r2, … rn)]中,若是,则函数∫ (S, Q)返回True,考生可填报该志愿,否则不能填报;第二类是所填报的院校专业对主项和副项均提出要求,需要判断考生报考专业项目集合S [x (x1, x2), y (y1, y2)]中主项x (x1, x2)是否有一项包含在集合Q [(p1, p2, … pm)]中,并且副项y (y1, y2)中有一项包含在集合Q [(r1, r2, … rn)]中,若两条件都满足,则函数∫ (S, Q)返回True,考生可填报该志愿;若有一个或全部都不满足则不能填报该志愿。具体设计流程如图4所示。

3.2. 算法实现

我省高考志愿填报考生基数大,2024年有60多万名考生共填报各批次志愿5000多万条。根据我省招生政策,普通类“院校 + 专业”平行志愿可填报96条,艺术体育类可填报70条。考生填报志愿条数较多,必然会使填报页面停留时间加长、操作次数加大,从而引起数据库连接频繁、服务器资源长期占用。准确、安全、高效、灵活是考生志愿填报系统设计与实现的目标[4]。“音乐类高考志愿填报资格校验算法”作为志愿填报系统逻辑校验重要组成部分之一,虽然仅用于音乐类考生填报声乐、器乐类院校专业志愿时对相关资格进行校验,但一旦处理不好,将会对整个志愿填报系统造成影响。因此,在代码实现过程中,必须考虑高并发问题,合理分配数据库以及缓存资源。针对高并发、页面操作复杂等特点,系统基于Java Spring Boot框架结合Layui技术进行实现,其中Layui是一款采用自身模块规范编写的前端UI框架,Spring Boot是Java的一种开源应用框架,它简化了Spring的初始搭建和开发过程,方便了项目的快速开发[5]。算法实现主要部分代码如下:

  • 填报表演类院校专业志愿校验:

if (zyjh.sf_jyl ==’N’) {

skkmyqList_jh = Arrays.asList(zyjh.getSkkmyq().split("+"));

if ( skkmyqList_jh.contains(zyKsxx.getZycsxm())== false )

{ Return ("不符合该专业的专业测试项目要求"); }}

  • 填报教育类院校专业志愿校验:

if (zsjh.sf_jyl==’Y’) {

if (ksh.zycsxm fx is null) {Return (“不具备音乐教育类专业报考资格”);}

skkmyqList jh = Arrays.asList (zyjh.getSkkmyq (). split (“*”));

If (skkmyqList jh. size() > 1){

  • 对主项、副项均提出专业测试项目要求

for ( skkmyq : skkmyqList jh) {

①对主项校验

If (i=1){

skkmyqList_zx = Arrays.asList(skkmyq.split("+"));

if (skkmyqList_zx.contains(Ksxx.getZycsxm())== false)

{ Return ("不符合该专业的专业测试项目要求"); }

②对副项校验

Else {

if (skkmyqList_fx.contains(Ksxx.getZycsxm())== false)

{Return (“不符合该专业的专业测试项目要求”); } }

  • 仅对主项或副项提出一项专业测试项目要求

skkmyqList_jh = Arrays.asList(zyjh.getSkkmyq().split("+"));

zycsxmList_ks.add(zyKsxx.getZycsxm_zx(),zyKsxx.getZycsxm_fx());

for (zycsxm : zycsxmList_ks) {

if ( skkmyqList_jh.contains(zycsxm) == false )

{ Return ("不具备音乐教育类专业报考资格"); } }

3.3. 算法执行效率测试

考生填报高考志愿须在规定时间内完成,时效性强。所以志愿填报系统的核心业务逻辑与数据多为高度集中的模式,往往对大量用户的并发访问非常敏感,要能够支持一定数量用户对系统的持续、并发的访问[6]。为了能够评估该算法性能,预测系统负载压力承受力,我们采用Apache JMeter5.0压力测试工具模拟真实环境对音乐类考生填报志愿进行了测试。相比其他测试软件(如Loadrunner [7]),Apache JMeter具有轻量、开源,并且响应时间短、处理能力高等优势[8]。测试在单台web服务器(16G内存,Intel (R) Xeon (R) CPU E7420 @ 2.13GHz (4处理器) CPU,Windows Server 2012 R2 Standard操作系统)上进行,模拟考生真实志愿填报流程:输入用户名密码进行登录、进入相应批次、选择科类(声乐或器乐)、填报70个“院校 + 专业”志愿、保存、退出。测试线程数为800,运行10轮测试结果聚合报告如表1所示。

Table 1. Apache JMeter stress test aggregation report

1. Apache JMeter压力测试聚合报告

Label

Samples

Average

Median

90% Line

99% Line

Max

Error %

吞吐量

收KB/sec

登录页

8000

994

357

2686

5457

8760

0.00%

9.672

79.13

登录提交

8000

5883

5766

10,061

16,410

22,157

0.00%

9.468

40.76

开放批次

8000

722

233

2105

4266

7570

0.00%

9.853

38.22

填报页

8000

5421

4976

9674

23,990

40,344

0.00%

9.882

206.85

志愿填报

8000

478

185

1566

3835

7454

0.00%

9.313

83.04

查询

400,000

501

171

1657

4345

9647

0.00%

485.801

119.96

保存

8000

7982

7933

11,297

155,97

18,359

0.21%

9.772

2.11

注销

8000

3930

3476

7813

13,135

17,829

0.00%

9.792

81.27

TOTAL

456,000

885

191

2406

9256

40,344

0.00%

550.89

642.7

Figure 5. Graph Results

5. 图形结果

此次测试系统可在200秒内启动,测试时长为13分48秒。通过图表可知,在当前负载条件下,平均响应时间为885毫秒、最大响应时间为40.344秒、99%的响应时长不超过13.135秒,吞吐量为550.89/sec,仅在保存时出现0.21%错误率,其他操作错误率全部为0。当线程加大到900时,通过Graph Results (图形结果)可见Deviation (偏离值)较大,表示可能存在一些异常的高响应时间样本,如图5所示。经多轮测试、分析,单台web服务器线程为800时,吞吐量和流量上效果比较理想,该负载能够满足正常志愿填报需求。

4. 算法应用及检验

2024年河北省艺术类高考改革落地实施,该算法在志愿填报系统中进行了应用,对填报本科提前批A段、B段以及专科提前批中的声乐、器乐类志愿的考生资格进行了校验。2024年有341所院校,共1399个专业在河北省列有声乐、器乐类招生计划,其中397个专业提出了专业测试项目要求。志愿填报结束后,我们对声乐、器乐类志愿填报结果数据进行整理,约6500多名考生填报了34.3万多条院校专业志愿,将其与考生报名信息、招生计划信息以考生号、院校代号、专业代号为关键字相关联后进行统计分析,关联后数据样式如表2所示。核查主要分三个步骤进行:

一是核查教育类专业是否有非教育类考生填报。即查询招生计划中教育类 = ‘Y’的,是否存在报名信息中兼报教育 = ‘N’的记录;

二是核查招生计划中对主项或副项提出专业测试项目要求的(各项目之间全部为或的关系),查询考生报名信息是否满足。即查询是否存在考生报名信中的主项或副项(其中报名信息中为中西打击乐(表中代码为254)的,需要关联细项1和细项2)均未包含在招生计划的术科科目要求中的记录;

三是核查招生计划中对主项和副项均提出科目要求的(主项和副项间为且的关系),查询考生报名信息是否满足。即查询是否存在考生报名信息中主项未包含在计划的术科科目要求中,或副项未包含在其中的记录。

上述情况可以使用Oracle数据库的内置函数instr (),通过编写Sql语句进行比对分析。经核查,以上情况查询结果均为空,并且在后期投档录取过程中,均未发现考生填报志愿中存在不符合招生计划要求的信息。由此可证明“音乐类高考志愿填报资格校验算法”对考生填报音乐类院校专业志愿进行了成功限制。

Table 2. Information on registration, application form, and enrollment plans

2. 考生报名、志愿、计划信息

考生ID

考生报名信息

志愿填报信息

招生计划信息

兼报

教育

主项

副项

细项1

细项2

序号

科类

院校代号

专业代号

教育类

术科科目要求(唱法或器种代码)

cddc5

Y

220

101

1

2

2508

56

Y

cddc5

Y

220

101

2

2

1902

87

Y

220

cddc5

Y

220

101

3

2

1767

27

N

201 + 202 + 203 + 204 + 207 + 208 + 210 + 212 + 213 + 214 + 215 + 220 + 221 + 230 + 234 + 235 + 236 + 237 + 239 + 240 + 241 + 242 + 243 + 218 + 2461

cddc5

Y

220

101

4

2

2255

62

N

201 + 202 + 220 + 221 + 230 + 234 + 235 + 236 + 238 + 239 + 2461 + 2462

ae2d5

Y

101

254

225

2461

1

1

0308

10

Y

ae2d5

Y

101

254

225

2461

2

1

0711

52

N

101 + 102

ae2d5

Y

101

254

225

2461

3

1

0711

53

Y

101 + 102

2ser50

Y

101

220

1

1

1876

27

Y

(101 + 102) * (220)

...

...

...

...

...

...

...

...

...

...

...

...

5. 结论与展望

高考是一项社会关注度高、敏感性强的考试选才制度,志愿填报作为其中的重要环节,是普通高校招生的基础性工作。志愿填报的准确性,对高考录取具有决定性作用,同时也关系到高考改革的成效。“音乐类高考志愿填报资格校验算法”成功实现了针对考生及院校专业双方之间多种唱法、器种组合的“多对多”逻辑校验关系,使考生填报音乐类高考志愿的准确性得到了保证,从根本上杜绝了由于志愿填报不准确而造成的无法投档录取情况发生,最大程度地保障了考生利益。该算法在志愿填报系统中的应用,为此次全国艺术类招生制度改革在河北成功落地实施提供了有力保障,为接下来的投档、录取工作奠定了良好的数据基础,同时为我省普通高校招生信息化管理工作进一步提升提供了技术储备,对其他省市完善志愿填报系统具有一定的借鉴作用。

由于在实际计划编制过程中,没有遇到院校专业同时提出两种具体中西打击乐器项目要求的情况,故在此算法设计及实现过程中未对此情况进行考虑。为了使该算法逻辑更加完善、应用更加广泛,接下来将针对此种情况做进一步研究。

基金项目

河北省教育科学“十四五”规划2023年度立项课题(课题编号:2305015)。

参考文献

[1] 徐园, 曹子瑶, 孙丽丽. 河北省艺术高考改革的内在逻辑与实现路径研究——改革背景下艺术类专业志愿填报解读[J]. 考试与招生, 2024(Z1): 7-12.
[2] 王振武. 大数据挖掘与应用[M]. 第2版. 北京: 清华大学出版社, 2023.
[3] 赵世奇, 赵琳, 刘挺, 等. 基于二元分类的复述搭配抽取[J]. 软件学报, 2010, 21(6): 1267-1276.
[4] 贾海生, 杨小宁. 基于SSH2框架的高校招生考生志愿填报系统的设计[J]. 宁夏大学学报(人文社会科学版), 2016, 38(6): 189-194.
[5] 吴建华, 胡翔, 戴鹏, 等. 基于GIS的城镇低效用地信息监管平台设计[J]. 计算机科学与应用, 2023, 13(1): 14-26.
[6] 田志斌. 软件产品选型阶段的压力测试与性能评估[J]. 中国金融电脑, 2008(7): 62-69.
[7] 黄春营, 李超, 彭珲, 等. 基于LoadRunner的Web系统性能测试技术研究[J]. 软件, 2022, 43(10): 98-101.
[8] 张杰, 刘凯, 周立军. 采用Redis高并发应用系统设计与实现方法[J]. 计算机与数字工程, 2020, 48(5): 1222-1226.