比赛项目排序的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
比赛项目排序的研究
(马元陈三磊刘世家)
摘要:本论文研究了比赛中经常碰到的问题,即如何合理安排赛程,使得连续参加两
项比赛的运动员人数达到最少,达到公平的目的。
通过对题目的分析并结合实际,提出
合理假设,把参赛表转化为0-1矩阵,运用有关矩阵的知识,结合运筹学中图与网络分
析原理,利用Matlab和WinQSB软件分析并计算出结果,最终给出合理的比赛项目顺序,并提出优化的建议和方案。
关键词: 0-1矩阵 WinQSB Matlab 图与网络分析 Hanmilton回路
一、问题的提出
在各种运动比赛中,为了使比赛公平、公正、合理的举行,一个基本要求是:在比
赛项目排序过程中,尽可能使每个运动员不连续参加两项比赛,以便运动员恢复体力,
发挥正常水平。
1.表1是某个小型运动会的比赛报名表。
有14个比赛项目,40名运动员参加比赛。
表中第1行表示14个比赛项目,第1列表示40名运动员,表中“#”号位置表示运动员参加此项比赛。
建立此问题的数学模型,并且合理安排比赛项目顺序,使连续参加两
项比赛的运动员人次尽可能的少;
2.说明上述算法的合理性;
3.对“问题2”的比赛排序结果,给出解决“运动员连续参加比赛”问题的建议及
方案。
二、问题的分析
思路1:把表1看成是一个40*14的0-1矩阵,0表示运动员没有参加了这个项目,1表示参加,设此0-1矩阵为矩阵A,那么问题中安排合理的比赛顺序用数学语言表示为
调整A的列向量使之成为矩阵B,若B满足一定的条件后,会使B中行向量连续出现1的次数最少,那么B就是最终要排出的比赛项目矩阵。
在这个过程中,我们使用了Hanmilton回路、Matlab 、WinQSB软件等来求解B。
三、模型的建立
1 模型假设:
(1)每个运动员都能按时参加比赛;
(2)天气情况良好,不出现因天气原因中断比赛项目;
(3)单纯比赛项目的早与迟不影响运动员的技能发挥;
(4)两项比赛不会同时进行;
(5)运动员在一夜休息后,体力可以得到充分恢复;
(6)比赛中不考虑个人因素(如裁判不公等)影响比赛的公平性。
2 符号说明
A:初始矩阵
B:最优矩阵
i :运动员序号(i=1,2,…m)
j: 项目序号 (j=1,2,…,n)
b j:第j个项目 (j=1,2,…,n)
p i:初始矩阵A的列向量
x ij:第i个运动员参加的第j项项目,x ij=1表示参加,x ij=0表示不参加。
w rs:第r项比赛项目对第s项的影响度(r,s=1,2…n),即连续参加r项目和s项目的运动员人数。
W:表示影响力矩阵,即任意两个项目连续进行,导致连续参加两个比赛项目的运动
员人数的组合而形成的14*14矩阵,w rs为W矩阵的元素
3 模型的建立:
(1)把附录一变换为0-1矩阵A,如图附录二所示。
然后运用Matlab软件求出A矩阵的列矩阵A T
(2)求出影响力矩阵W
由符号说明,可知w rs=x r1* x s1+ x r2* x s2+ … + x rm* x sm由矩阵相关知识知W= A T *A,运用Matlab软件求得W矩阵如下
b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14
b1 6 2 1 2 0 0 1 0 1 2 1 1 1 1
b2 2 8 1 4 1 0 1 1 1 3 1 0 2 1
b3 1 1 6 1 0 0 0 3 1 1 0 2 2 1
b4 2 4 1 9 1 1 2 1 0 2 1 0 1 1
b5 0 1 0 1 7 2 0 1 1 1 0 1 1 2
b6 0 0 0 1 2 8 1 2 1 1 1 2 1 2
b7 1 1 0 2 0 1 7 1 1 1 0 2 2 1
b8 0 1 3 1 1 2 1 10 1 2 1 4 2 2
b9 1 1 1 0 1 1 1 1 6 1 1 1 3 1
b10 2 3 1 2 1 1 1 2 1 10 1 0 0 3
b11 1 1 0 1 0 1 0 1 1 1 6 3 1 1
b12 1 0 2 0 1 2 2 4 1 0 3 10 1 0
b13 1 2 2 1 1 1 2 2 3 0 1 1 8 4
b14 1 1 1 1 2 2 1 2 1 3 1 0 4 10 从矩阵中可以很清楚地看出任意两个比赛项目连续进行,导致连续参加两个项目的
运动员人数例w12表示若项目一与项目二排在一起,共有两个人连续参加了项目一与项
目二,而w11表示项目一与项目一的重复人数,这与本题无关,不予考虑。
此时问题演
变成如何安排14个项目的顺序,使得连续参加比赛的运动员人数最少。
即对矩阵
W=[b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14]的各列重新排序
四、模型的求解
(1)“旅行推销商”问题:一个推销商从n个城市v1 v2 v n中某一个城市出发,到其他n-1个城市推销商品,每个城市都必须访问并只经过一次,最后回到出发点,那么如
何安排他的旅行路线使其总距离最短。
我们发现,所求的问题与“旅行推销商”问题很相似,我们可以将此W矩阵问题看作为14个城市,现在就是要使连接这14个城市的路线最短,只不过“旅行推销商”问题是一个闭环的回路,项目排序问题是一条直线而已,如果我们运用Hamilton回路解法求出最优解,再在这个闭环回路中找出距离最长(即影响力最大的两个相临项目)
的两个项目,从中把它割段,使闭环回路变成一条直线,便可得到我们所要的模型的解
了
定义:[Hamilton回路]设b1, b2, b3…b n是图G中的n个顶点,若有一条从某一顶点b j(1≤j≤n)出发,经过各节点一次且仅一次,最后返回出发点b j的回路,则称此回路为Hamilton回路。
形成的圈称为H圈。
(2)Hamilton回路求解原理:
1,任取初始H圈:C0=v1 ,v2…v i,…v j…,v n, v1
2,对所有的i,j,1<i+1<j<n,若w(v i,v j)+w(v i+1,v j+1)< w(v i,v i+1)+w(v j, v j+1)
则在C0删去边(v i,v i+1)和(v j, v j+1)而加入边(v i,v j)和(v i+1,v j+1),形成新的H 圈C,即:
C=v1,v2,…,v i ,v j ,v j-1 ,…,v i+1 ,v j+1 ,…v n ,v 1
3,对C重复步骤(2),直到条件不满足为止,最后得到的C即为所求。
(3)运用WinQSB软件可以进行对hamilton回路的求解。
运行WinQSB软件,调用子程序Network Modeling,进入主界面后,选择Traveling Salesmen Problem,设置14个项目。
采用三种近似方法:最近城市法(Nearest Neighbor Heuristic),两两交换法(Cheapest Insertion Heuristic),逐步包围法(Tow-way Exchange Improvement Heuristic)求得的最优项目顺序中连续参赛的运动员人数依次为9,6,4,因为前两种方法的连续参赛运动员数目为9和6,大于第三种的4人,所以第三种方法优于前两种,则对于前两种方法不于考虑。
采用第三种方法求得的结果如下表:
从表中看出,从b14到b2,b8到b4,b9到b3,b5到b13,都有一人连续参加两项比赛。
所以断点处可以为四处任意一点,假设在b14到b2处断开,则比赛项目排序为b2,b6,b1,b8,b4,b9,b3,b11,b7,b5,b13,
b10,b12,b14。
按照此种排序,共有三人连续参加了两项比赛。
转换为网络图如下所示
(粗线处为断开点):
进一步简化图表为:
2 6 1 8 4
11 3 9
7
5
13 10 12 14。