2023年全国研究生数学建模竞赛华为杯C题大规模创新类竞赛评审方案研究求解全过程文档及程序

server/2024/9/24 13:20:12/

2023年全国研究生数学建模竞赛华为杯

C题 大规模创新类竞赛评审方案研究

原题再现:

  现在创新类竞赛很多,其中规模较大的竞赛,一般采用两阶段(网评、现场评审)或三阶段(网评、现场评审和答辩)评审。创新类竞赛的特点是没有标准答案,需要评审专家根据命题人(组)提出的评审框架(建议)独立评审。所以,对同一份作品,不同评委的评分可能存在较大差异。事实上,当竞赛规模大,评委的人数众多时,极差(定义见附件1)大的问题更为突出。显然,简单地依据多位评委评分的总和进行排序并不是创新类竞赛评审的好方案。因此,探讨大规模创新类竞赛评审方案的公正性、公平性和科学性具有深远意义。
  目前,各项创新类竞赛都在摸索、调整自己的评审方案。现有方案包括:(1)对每位评审专家的评分进行标准化(公式见附件1),按作品将标准分相加得每件作品总分,然后依总分排序;(2)去掉同一份作品得分中的最高分、最低分,再将剩余评分相加,最后依总分排序;(3)同一份作品如果专家的评分差异(极差)较大,组织相关专家协商调整,将调整后得分相加,再依总分排序;(4)当竞赛规模很大时,首先利用上述方案(1)或(2)或(3)对作品进行初选,再对初选入围的作品组织专家评审(第二阶段评审)或经过答辩等环节确定获奖名单。这些方案都有一定的合理性,但也有局限性。特别是针对大规模创新类竞赛评审,现有方案偏简单,研究不多。
  在大规模创新类竞赛中,增加评审每份作品的专家人数,显然有利于评审工作的公正、公平。然而,由于种种原因,参与评审工作的专家数目是受限的。评审专家少了,评审工作的误差会变大。不过,考虑到大规模创新类竞赛获奖比例通常小于50%,有些误差并不影响是否获奖。因此,在不影响获奖等级的前提下,为了适应评审专家人数较少的现状,不少竞赛采用两阶段评审办法。
  为探索大规模创新类竞赛评审的好方法,附件给出模拟大规模创新类竞赛的数据。其包含两阶段评审,第一阶段由五位专家对作品评审,取标准分后,将五位专家的标准分取均值后排序,按事先约定的比例取排名在前的作品,进入第二阶段评审。第二阶段由三位专家对作品评审,分别取标准分,并对少数极差大作品的标准分进行必要的调整后,再将第一阶段五位专家评审标准分的均值、第二阶段三位专家的评审标准分共4份成绩求和,依最终总成绩再排序。请利用这批数据建立数学模型,探讨建立更为合理、公平的评审方案。

  问题一 在每个评审阶段,作品通常都是随机分发的,每份作品需要多位评委独立评审。为了增加不同评审专家所给成绩之间的可比性,不同专家评审的作品集合之间应有一些交集。但有的交集大了,则必然有交集小了,则可比性变弱。请针对3000支参赛队和125位评审专家,每份作品由5位专家评审的情况,建立数学模型确定最优的“交叉分发”方案,并讨论该方案的有关指标(自己定义)和实施细节。

  问题二 在评审中采用标准分(附件1)为基础的排序方法,其假设是不同评审专家评审的作品集合的学术水平分布相同。但在大规模创新类竞赛评审中,通常任意两位专家评审的作品只有小部分是共同的,绝大多数作品是不同的(见问题一),而且每位专家只看到作品集合的很小部分,因此标准分评审方案的假设可能不成立,需要探索新的评审方案。请选择两种或两种以上现有或自己设计的评审方案和题目附件数据,分析每位专家、每份作品原始成绩、调整之后(如取标准分)成绩的分布特点,按不同方案进行排序,并设法比较这些方案的优劣。进而针对大规模创新类竞赛的评审,设计新的标准分(公式)计算模型。另外,一般认为经多位专家协商一致的获奖论文具有最大的可信度,附件2提供的数据1,其第二评审阶段评选出的一等奖作品排序是经专家协商取得一致的,请利用这批数据,改进你们的标准分计算模型。

  问题三 “创新类”大赛的特点是“创新性”,即没有标准答案。由于这类竞赛的问题难度较大,一般需要通过创新才能在竞赛期间部分解决。而作品的创新到了什么程度,后续研究的前景如何,很难有一致看法,即使专家面对面的交流,都可能由于各持己见而无法统一。加上研究生的论文表达不到位,评审专家的视角不同,同一份作品的几位专家给出的成绩会有较大的差异(极差)。极差大是大规模创新类竞赛的特点,极差比较大的作品一般处于高分段或低分段。低分段属于淘汰范围,低分段极差大的原因是有专家对违规作品或有重大失误的作品给了很低的分数,或评审专家都认同该作品质量不高,只是其中某位(些)专家更不认同该作品。故这里极差虽大,但属于不获奖范畴,一般不需要调整极差。而高分段作品还要参加权威性较高的第二阶段评审(附件数据表格同一行代表同一个作品在两个阶段的成绩,没有第二阶段评审成绩的作品只参加了第一阶段的评审)。第二阶段评审仍然存在部分极差大的作品,因为是终审,误差可能影响获奖等级,因此对部分极差大的作品,需要复议调整极差(附件的数据中有记录,复议分就是该专家最后给的标准分,用来替换原来的标准分)。第二阶段(注意两个阶段每份作品评审专家人数不同)专家调整“大极差”的规律可以作为建立极差模型的借鉴。
  请根据题目所给的模拟数据2.1和2.2,讨论两阶段的成绩整体的变化和两阶段极差整体的变化,分析两阶段评审方案相比不分阶段评审方案的优劣。注意到极差大和创新性强两大特点之间会有一定的关系,为了发掘创新论文,请建立“极差”模型(含分析、分类、调整等),并针对所给数据,尝试给出第一评审阶段程序化(不需要人工干预)处理非高且非低分段作品的 “大极差”的办法。

  问题四 对“创新类”竞赛,给出一个完整的评审模型(提示:例如优化模型),并针对所给的数据研究如何求解?也可对现行的评审方案给出改进的具体建议(包括未来还要收集哪些数据)。

  附件:
  1. 极差的定义及标准分的计算方法
  2. 数据1:模拟某大型创新类竞赛的评审数据,其第二阶段被评选为一等奖作品的排序经专家协商取得一致。
  3. 数据2: 模拟某大型创新类竞赛两阶段的评审数据,有两组2.1和2.2。

整体求解过程概述(摘要)

  现在创新类竞赛很多,其中规模较大的竞赛,一般采用两阶段或三阶段评审。创新类竞赛的特点是没有标准答案,需要评审专家根据命题人提出的评审框架独立评审。所以,对同一份作品,不同评委的评分可能存在较大差异。事实上,当竞赛规模大,评委的人数众多时,极差大的问题更为突出。因此,探讨大规模创新类竞赛评审方案的公正性、公平性和科学性具有深远意义。本文通过建立最优交叉分发方案数学模型,设计并改进新的标准分计算模型,以及建立极差模型等,整合形成一套完整的最佳评审方案,以确保大规模创新类竞赛的评审方案的合理与公平。
  针对问题一,本文首先明确最优交叉分发方案的“最优”指的是“满足不同专家所评作品的交集尽可能均衡的前提下,还应使作品交集尽可能大”,并以此为导向量化本题的显性要求和隐性要求,构建该模型的目标函数和约束条件。接着整合目标函数和约束条件,建立确定最优交叉分发方案的多目标非线性规划模型,随后使用MATLAB运行模拟退火算法求解此多目标非线性规划问题。然后基于求解结果反推最优交叉分发方案的作品分发方案和交集矩阵,进而得到方案实施细节和作品交集情况。最后对比枚举搜索算法和模拟退火算法,验证本文采用的模拟退火算法更适用于本题这类大规模创新竞赛的模型求解。
  针对问题二,本文首先根据题目要求“设计新的标准分计算模型并对其进行修正”,分析出破题点在于解决“专家学术水平分布相同”这个假设不存在的问题,并按此思路设计新的评审方案,其中包括基于BP神经网络改进的标准分评审方案。接着统计各评审方案的得分情况及分布特征,进行优劣性分析,得出BP神经网络改进的标准分评审方案为最优方案。然后对比BP神经网络改进的标准分评审与初始标准分评审的原理差异,设计出成绩样本标准差统一的新的标准分计算模型。最后将附件数据1中可信度较高的一等奖评审数据代入新的标准分计算模型,使用Python求解,不断迭代优化模型的修正系数,最终得到最佳的标准分计算模型。
  针对问题三,本文首先通过数据2.1和2.2 的数据可视化结果讨论两阶段的成绩与极差的整体变化,并运用特征值提取挖掘出评审数据中极差和成绩之间的相关性。然后从评分的复杂性、稳定性和精确性三个方面构建评审方案的评价指标体系,并基于前文获取的分布特征数据来量化评价指标,从而对两阶段和一阶段评审方案进行优劣性分析。接着引入结合模糊综合判定的归属函数,用于界定“非高且非低”的作品区域,基于此构建初始极差模型,参考二阶段的极差修改情况确定极差调整规律并不断修正。最后确定最优极差模型,由此模型设计处理中间分段作品“大极差”的办法,并参考两阶段的最终排序进行模型验证,验证结果显示最优极差模型处理效果良好。
  针对问题四,本文首先分析前三问所得出的数学模型,第一问建立最优交叉分发方案数学模型,解决成绩之间可比性弱的问题;第二问设计并改进新的标准分计算模型,解决由于专家水平不同造成的给分标准不统一的问题;第三问建立极差模型,解决处于中间分段作品的大极差问题。随后整合以上内容,形成一套完整的评审模型,给出具体的模型求解算法,并且使用Python模拟一组类似数据进行求解并验证,验证结果显示此模型的评审效果良好。最后本文对整合的评审模型运用蒙特卡洛理论进行参数和精度评价,并结合模型实际和查阅资料针对性提出改进意见。

模型假设:

  1. 论文中所有的数据来源,全部真实可靠。
  2. 论文中所需要的各种数据,在各类“创新性”比赛中都可以获得。
  3. 不会存在突发事件,导致模型发生急剧变化,导致数值突变。
  4. 评审指标与得分之间的线性误差服从正态分布。
  5. 各评审指标不具有高度相关性。
  6. 不考虑题目中未给出条件的影响。

问题分析:

  该问题可以建立一个数学模型,以确定最优的“交叉分发”方案。以下是一个可能的模型:
  假设参赛队伍数量为m,评审专家数量为n,每份作品需要k位专家进行独立评审。我们将评审专家视为节点,关键词视为边。每个参赛队伍都需要被评审k次,因此我们需要将参赛队伍平均分配给不同的专家。
  为了增加可比性,我们希望不同作品集合之间有一些交集。因此,我们可以对专家进行分组,使不同组中的专家分别评审多个作品集合。然后,我们将每个参赛队伍平均分配到每个组中,以确保每个参赛队伍在每个组中都有相应的评审。具体而言,我们可以使用以下步骤来实现该方案:
  1. 将所有评审专家随机分成g组,每组包含ng名专家。
  2. 将所有参赛队伍平均分配到每个组中,每个组中分配mk/g个参赛队伍。
  3. 对于第i个参赛队伍,将它在第j个组中评审的专家随机选择k名。
  该模型可以通过以下方式进行优化:
  1. 目标函数:目标函数可以是最大化作品评分的总体一致性,即最小化不同作品集合之间的总体变异度。
  2. 约束条件:约束条件包括每个参赛队伍必须被k位专家评审,每位专家对于每个作品集只能评审一次。
  在实施上,我们可以使用线性规划模型(如PuLP)或其他优化算法对这个模型进行求解。模型求解后,我们可以根据一些自定义指标来评估方案的执行情况,如交叉分发率、评审时间、成本等。
  问题二共有两个要求:一是选择两种或两种以上现有或自己设计的评审方案,结合附件的评审数据,计算出不同评审方案的得分及分布特征情况,将其进行排序并比较这些方案的优劣性,从而根据优势评审方案的特点设计出新的标准分计算模型。二是结合附件评审数据的一等奖数据具有较高可信度的特点,代入新的标准分计算模型,对新的评审模型进行修正改进。
  本题的要求可概括为“设计新的标准分计算模型并对其进行修正”,既然要设计新模型,说明“旧”模型肯定是存在问题,所以我们解决本题的前提在于分析旧模型存在什么问题。问题三中有描述“标准分评审方案的假设是不同评审专家评审的作品集合的学术水平分布相同”,但事实情况是在大规模创新类竞赛中这一假设通常是不存在的,这即为问题所在。因此本题的破题点在于解决“专家学术水平分布相同”这个假设不存在的问题。 初始标准分计算模型因是假设专家学术水平分布相同,即假设专家的给分标准是统一的,但事实情况是并不统一。那么如何将专家们的学术水平分布统一起来?则是本题需要通过设计新的评审方案来探究的问题,而且可以根据这一新的评审方案去设计新的标准分计算模型,然后加以改进。根据已知条件与分析结果,问题二的解答步骤为:
  第一步:设计能够统一专家学术水平分布的评审方案,统计各方案的得分情况及分布特征,进行优劣性比较。
  第二步:根据不同方案的优劣性比较结果,将优势方案的优势点应用于初始标准分计算模型,设计新的标准分计算模型。
  第三步:结合数据1中可信度较高的一等奖评审数据,带入新的标准分计算模型,对其进行修正和完善,得到最终标准分计算模型。
  问题三共有两个要求:一是根据题目所给的模拟数据2.1和2.2,讨论两阶段的成绩整体的变化和两阶段极差整体的变化,据此分析两阶段评审方案相比不分阶段评审方案的优劣。二是分析极差大和创新性强两大特点之间的联系,建立“极差”模型(含分析、分类、调整等),据此针对所给数据设计第一评审阶段程序化(不需要人工干预)处理非高且非低分段作品的“大极差”的办法。
  对于“比较两阶段与一阶段评审方案优劣”,要保证对比结果客观公正,则需要有评价指标体系。评价指标的确定根据本题要求选取,一是来源于两阶段的成绩整体的变化,二是两阶段极差整体的变化,三是两阶段极差与成绩的相互关系。基于此评价指标为导向,分析两阶段的成绩和极差的整体变化以及二者的相互关系。然后根据附件数据对各指标进行量化,从而客观比较两阶段与一阶段评审的优劣性。
  对于“建立‘极差’模型设计第一评审阶段程序化处理非高且非低分段作品的‘大极差’的办法”,首先需要界定好什么是“非高且非低”作品,可以引入运用模糊综合判定的归属函数进行区分。基于此建立极差模型并进行修正得到最终极差模型,然后以第二阶段调整极差的实际情况作为评价标准,设计处理中间分段作品“大极差”办法,并通过与两阶段的最终排序对比进行相关调整。
  根据题目要求和上述分析结果,此题的解题步骤为:
  第一步:讨论两阶段的成绩和极差的整体变化,根据数据2.1、2.2的评审数据进行数据可视化,并挖掘两阶段的极差和成绩之间的相关性。
  第二步:基于第一步获取的数据来量化评价指标体系,对两阶段和一阶段评审方案进行优劣性分析。
  第三步:引入运用模糊综合判定的归属函数界定“非高且非低”作品区域,基于此构建极差模型,然后参考二阶段的极差调整情况确定极差调整规律并不断修正。
  第四步:确定最终极差模型,根据此模型设计处理中间分段作品“大极差”的办法,并参考两阶段的最终排序进行验证。
  问题四共有三个要求:一是对“创新类”竞赛给出一个完整的评审模型,并针对所给的数据研究求解方法。二是对现行的评审方案给出改进的具体建议(包括未来还要收集哪些数据)。
对于“给出一个完整评审模型并求解”,考虑基于前三问:第一问建立了最优交叉分发方案,第二问设计了新的标准分计算模型,第三问建立了极差模型。整合以上内容,形成一套完整的评审模型,后续自行模拟一组数据进行求解并验证。 对于“给现行评审方案提改进建议”,对上述整合的评价模型进行精度和参数等评价,随后结合模型实际和查阅相关文献针对性提出改进意见。 根据题目要求和上述分析结果,此题的解题步骤为:
  第一步:分析前三问所得出的数学模型,第一问建立最优交叉分发方案数学模型,解决成绩之间可比性弱的问题;第二问设计并改进新的标准分计算模型,解决由于专家水平不同造成的给分标准不统一的问题;第三问建立极差模型,解决处于中间分段作品的大极差问题。
  第二步:整合以上内容,形成一套完整的评审模型,给出具体的模型求解算法,并且使用Python模拟一组类似数据进行求解并验证,验证结果显示此模型的评审效果良好。 第三步:对整合的评审模型运用蒙特卡洛理论进行参数和精度评价,并结合模型实际和查阅资料针对性提出改进意见。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

部分程序代码如下:
#参赛队伍数量
m= 3000#评审专家数量
n= 125#每份作品需要评审的专家数量
k= 5#创建问题
problem= LpProblem("CrossDistribution",LpMinimize)#创建变量
x= LpVariable.dicts("x",[(i,j) for iin range(m) for jinrange(n)],cat='Binary')#创建目标函数
objective=lpSum([x[(i,j)] for iin range(m) for j inrange(n)])problem+= objective#添加约束条件:每个作品需要被k位专家评审
for iinrange(m):problem+=lpSum([x[(i,j)] for jinrange(n)])==k#添加约束条件:每位专家评审的作品数量不超过kfor jinrange(n):problem+=lpSum([x[(i,j)] for iinrange(m)])<=k#求解问题
problem.solve()#输出结果
print("Objective value:",value(problem.objective))for iinrange(m):for j inrange(n):
if value(x[(i,j)])== 1:print(f"作品{i+1}由专家{j+1}评审")
import numpy as npimport pandas as pdfrom sklearn.linear_model import LinearRegressionfrom sklearn.model_selection import train_test_splitfrom sklearn.model_selection import learning_curveimport matplotlib.pyplot as pltimport seaborn as snsfrom pylab import *from matplotlib.font_manager import FontProperties#从xlsx文件中读取数据
wb=openpyxl.load_workbook('E:\\桌面\\数学建模\\C题\\data.xlsx' )sheet= wb.active#获取评审的作品编号列表
num_works= len(sheet['A'])-3 #第一列是作品编号,减去标题行
works_list=[int(sheet['A'][i+3].value) for iinrange(num_works)]#获取每位专家对作品的评分
#expert_indices = [1, 4,7, 10, 13] #专家姓名所在的列索引,B、E、H、K、N#score_indices = [2, 5, 8,11, 14] #原始分所在的列索引,C、F、I、L、O#standard_indices =[3, 6,9,12, 15] #标准分所在的列索引,D、G、J、M、Pexpert_indices= [19,23, 27] #专家姓名所在的列索引,B、E、H、K、Nscore_indices= [20,24,28] #原始分所在的列索引,C、F、I、L、Ostandard_indices= [21,25,29] #标准分所在的列索引,D、G、J、M、Pnum_experts= len(expert_indices) #专家人数
raw_scores=np.zeros((num_experts,num_works)) #存储原始分数
standard_scores=np.zeros((num_experts,num_works)) #存储标准分数
for i in range(num_experts):expert_index=expert_indices[i]score_index=score_indices[i]standard_index= standard_indices[i]expert_name=sheet.cell(row=1,column=expert_index).value #获取专家姓名
#for j inrange(num_works):for jinrange(240):raw_scores[i][j]= float(sheet.cell(row=j+4,column=score_index).value) #第一列是作品编号,第二行是第一份作品的评分
standard_scores[i][j]= float(sheet.cell(row=j+4,column=standard_index).value) #第一列是作品编号,第二行是第一份作品的标准分
X= raw_scores.reshape(-1,1)
Y= standard_scores.reshape(-1,1)
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.4,random_state=0) #划分训练集和测试集
model= LinearRegression() #创建线性回归模型对象
model.fit(X_train,Y_train) #对训练集进行拟合
# 4.模型评估与调优
score_train=model.score(X_train,Y_train) #计算训练集的Rsquare值
score_test=model.score(X_test,Y_test) #计算测试集的R-square
值
y_pred=model.predict(X_test) #对测试集进行预测,得到标准分数
的预测值
#进行相对排序和计算综合相对得分,输出结果等操作(同上面的示例)
print(score_train,score_test)print(y_pred)mpl.rcParams['font.sans-serif']=['SimHei']sns.regplot(x=X_train,y=Y_train,color='blue',label='Train')sns.regplot(x=X_test,y=Y_test,color='red',label='Test')plt.title('线性回归-训练集')plt.xlabel('实际标准分数')plt.ylabel('预测标准分数')#显示图例
plt.legend()#展示图像
plt.show()
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

http://www.ppmy.cn/server/119116.html

相关文章

2020ICPC上海 D - Walker M - Gitignore

D: 首先显然要二分,判断当前二分的mid时间下是否能满足走满0~n 枚举所有情况,这里按照左,右起点p1,p2分别讨论 p1向左 p2向左(以下向左和向右都代表向左或者向右到墙,而不代表初速度方向)&#xff0c;只需要计算p1或者p2反弹之后还能走距离n就是合法 p1向左 p2向右&#xff…

深度学习常见面试题及答案(1~5)

文章目录 1. 请简述深度学习中的反向传播算法的基本原理和作用。一、基本原理二、作用 2. 解释一下循环神经网络&#xff08;RNN&#xff09;的工作原理&#xff0c;以及它在处理序列数据时的优势和局限性是什么&#xff1f;一、循环神经网络&#xff08;RNN&#xff09;的工作…

【Linux下的cpp】编译调试(gcc、g++、gdb)

【Linux下的cpp】编译调试&#xff08;gcc、g、gdb&#xff09; 文章目录 【Linux下的cpp】编译调试&#xff08;gcc、g、gdb&#xff09;简述gcc、g、gdb编译过程g 编译参数命令行编译演练1、直接编译2、生成库文件并编译链接静态库并生成可执行文件链接动态库生成可执行文件 …

【sgCreateCallAPIFunction】自定义小工具:敏捷开发→调用接口方法代码生成工具

<template><div :class"$options.name" class"sgDevTool"><sgHead /><div class"sg-container"><div class"sg-start"><div style"margin-bottom: 10px">调用接口方法定义列表</div…

基于深度学习的零售柜商品识别系统实战思路

1. 了解我们要构建的系统 在开始编码之前&#xff0c;我们先了解一下我们要构建的系统&#xff1a; 目标&#xff1a;创建一个能够识别零售商品的计算机视觉系统核心技术&#xff1a;深度学习&#xff0c;特别是YOLOv5物体检测算法功能&#xff1a; 上传图片并识别其中的商品…

vue的路由

v2用3版本&#xff0c;v3用4版本 import Vue from vue import VueRouter from vue-router Vue.use(VueRouter) const routes [] const router new VueRouter({ routes }) export default router import Vue from vue import App from ./App.vue import router from /router V…

Qt之QFuture理解

结构 #mermaid-svg-HX27W6CUkm4W8BZn {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-HX27W6CUkm4W8BZn .error-icon{fill:#552222;}#mermaid-svg-HX27W6CUkm4W8BZn .error-text{fill:#552222;stroke:#552222;}#merm…

数据结构与算法-18算法专向(hash)

话题引入&#xff1a; 给你N&#xff08;1<N<10&#xff09;个自然数,每个数的范围为&#xff08;1~10000000000&#xff09;。现在让你以最快的速度判断某一个数是否在这N个数内&#xff0c;不得使用已经封装好的类&#xff0c;该如何实现。 A[] new int[N1]&#xff…