完整word版数学建模最佳阵容问题附程序代码.docx

上传人:b****6 文档编号:3978378 上传时间:2022-11-26 格式:DOCX 页数:13 大小:108.29KB
下载 相关 举报
完整word版数学建模最佳阵容问题附程序代码.docx_第1页
第1页 / 共13页
完整word版数学建模最佳阵容问题附程序代码.docx_第2页
第2页 / 共13页
完整word版数学建模最佳阵容问题附程序代码.docx_第3页
第3页 / 共13页
完整word版数学建模最佳阵容问题附程序代码.docx_第4页
第4页 / 共13页
完整word版数学建模最佳阵容问题附程序代码.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

完整word版数学建模最佳阵容问题附程序代码.docx

《完整word版数学建模最佳阵容问题附程序代码.docx》由会员分享,可在线阅读,更多相关《完整word版数学建模最佳阵容问题附程序代码.docx(13页珍藏版)》请在冰豆网上搜索。

完整word版数学建模最佳阵容问题附程序代码.docx

完整word版数学建模最佳阵容问题附程序代码

最佳阵容问题

摘要

本文针对女子体操团体赛中最佳出场阵容的问题.我们通过对赛程规定和已知数据的分析,合理的列出了目标函数和约束条件,特别对第二问的目标函数使用中心极限定理使目标函数简化.建立了以0—1整数规划为核心的数学模型,针对第一问分别使用贪心算法和0-1规划确定全能运动员。

使用lingo对模型进行求解.最后很好的给出了不同情况下出场阵容的最佳方案,由概率知识可容易的求出夺冠概率(0)和得分期望(224。

6),有90%的把握可战胜平均成绩为222。

7249的对手。

得出下面的具体结果.

总分

全能运动员

非全能运动员

高低杠

平衡木

跳马

体操

问题一

最悲观

模型一

212。

2

1,2,5,6

7,10

4,8

4,8

3,9

模型二

212.3

2,5,6,9

7,10

4,8

1,4

3,10

均值

模型一

224.6

5,8,9,10

6,7

3,4

1,4

2,3

模型二

225。

1

2,3,9,10

6,7

5,8

1,4

5,8

问题二

夺冠阵容

3,5,9,10

6,7

1,8

1,4

6,8

夺冠前景

0

得分期望

224。

6

90%战胜对手水平

222。

7249

最后,对模型进行了优缺点分析,并对模型提出了改进的方法。

关键词贪心算法0-1规划中心极限法

一、问题分析

每个队至多允许10名运动员参赛,每个项目可以有6名选手参加,每个运动员只能四项全参加或只参加单项比赛这两类中的一类,参加单项比赛的每个运动员至多只能参加三个单项.每个队应有4人参加全能比赛,其余运动员可参加单项比赛。

问题一:

1.每个选手的各单项得分按最悲观估算,排出一个出场阵容,使该队团体总分尽可能高。

2.每个选手的各单项得分按均值估算,排出一个出场阵容,使该队团体总分尽可能高。

需要先确定4个全能运动员,考虑使用贪心算法确定,然后再使用1个0—1变量进行0-1整型规划,使用lingo求解确定剩余6个人的出场阵容。

但贪心算法只能找到局部最优解,于是考虑使用2个0-1变量也可用lingo进行求解,可以使结果更加优化。

问题二:

1.求出一个出场阵容使该队总分不少于236.2分的概率最大,以该阵容出战,其夺冠的前景如何,得分期望值又如何。

2。

按以上阵容出战,它有90%的把握战胜得分为多少的对手。

要使一个出场阵容夺冠的概率最大,也可使用问题一的0—1整型规划,但此时发现目标函数过于复杂,使用lingo无法实现.于是考虑对目标函数进行合理的化简,由于各场比赛之间可以看作是相互独立的事件服从正态分布,因此我们选择使用中心极限定理对目标函数进行简化,之后再使用lingo进行求解即可。

此时的夺冠前景、得分期望,和它有90%的把握战胜得分为多少的对手均可使用概率学知识进行求解.

二、符号说明

第j个运动员在参加第i个项目的分数。

为0,1变量,0代表第j个运动员不参加第i个项目,1代表第j个参加第i个项目。

为0,1变量,0代表第j个运动员不是全能选手,1代表第j个运动员是全能选手。

为第j个运动员参加i的平均得分。

代表每个项目,取值范围为1,2,3,4。

代表每个选手,取值范围为1,2,3,4,5,6,7,8,9,10。

代表第j个选手参加第i个项目的方差。

三、问题假设

(1)假设所给的数据能代表选手的平常水平。

(2)假设选手在比赛时各项目得分概率遵循测试水平。

(3)假设选手没有特殊情况的发生,均能参加比赛。

(4)前一项比赛成绩不影响后一项的成绩。

(5)每个比赛之间相互独立。

四、模型与求解

1、问题一的模型及求解结果

模型一:

针对问题一可先使用贪心算法先确定4个全能选手,在得分最悲观估计和均值估计的前提下,使4项得分总和高的4个为全能选手,最后确定最悲观估计下4个全能选手为1,2,5,6;均值估计情况下4个全能选手是5,8,9,10然后再对剩余6个人安排使用0-1整型规划,最终求解出最佳出场阵容。

目标函数:

约束条件:

(1)每个项目至多有2人参加

(i=1,2,3,4)

(2)每个人至多参加3项

(j=1,2,3,4,5,6)

求解结果:

悲观估计下的最佳阵容

全能运动员

1,2,5,6

非全能运动员

高低杠

7,10

平衡木

4,8

跳马

4,8

体操

3,9

此时团体总得分为212.2分。

均值估计下的最佳阵容

全能运动员

5,8,9,10

非全能运动员

高低杠

6,7

平衡木

3,4

跳马

1,4

体操

2,3

此时团体总得分为224。

6分

模型二:

模型一先使用贪心算法然后使用1个0—1变量进行整型规划,对最佳出场阵容进行求解,这样虽然可以快速确定4个参加全能运动员,但每个运动员四项之和差距并不大,得到的最佳出场阵容也只是局部最优解,可能不是全局最优解。

为克服这一缺点,我们考虑在模型二中使用2个0-1变量进行整型规划.

目标函数:

约束条件:

(1)每个项目至多有6人参加

(i=1,2,3,4)

(2)每个人至多参加3项

(j=1。

.10)

(3)比赛需要有4个四项全能

求解结果:

悲观估计下的最佳阵容

全能运动员

2,5,6,9

非全能运动员

高低杠

7,10

平衡木

4,8

跳马

1,4

体操

3,10

此时的团体总得分为212。

3分.

均值估计下的最佳阵容

全能运动员

2,3,9,10

非全能运动员

高低杠

6,7

平衡木

5,8

跳马

1,4

体操

5,8

此时的团体总得分为225.1分。

2、问题二的模型及求解结果

求夺冠概率最大的阵容

即求

的最大值

运用中心极限定理将随机变量

转化为正态分布

运用结论1得

运用结论2得

对于服从标准正态分布

的随即变量Y,

为增函数,所以可将求

的最大值转化为求k的最小,即目标函数为求k的最小值.

只需将第一问模型二在均值估计情况下目标函数改为

即可得出结果

所以夺冠的概率

如果取每位队员的最好成绩然后选出的最佳队伍最好成绩为236.6分才能够夺冠。

90%的把握战胜怎样的对手即

的值

标准化

查标准正态分布表得

在求目标二的第一小问时在lingo程序中只需添加一条语句就可算出

所以有90%的把握战胜平均分不大于222.7249分的对手.

求解结果:

夺冠概率最大的阵容

全能运动员

3,5,9,10

非全能运动员

高低杠

6,7

平衡木

1,8

跳马

1,4

体操

6,8

以该阵容出战夺冠的概率最大,夺冠的概率

,得分的期望为224.6分,以上面阵容出战有90%的把握战胜分数为222.7249分的对手。

五、模型的优缺点

优点:

模型很好的解决了阵容安排问题,使得在不同前提下,团体得分最高.可用于其它类似选择问题如场地的选择,车辆的安排等等的推广。

模型综合考虑了各个队员的得分情况,先使用贪心算法和1个0—1矩阵,可以快速确定4个全能运动员。

然后再巧妙的运用两个0-1矩阵,将各种约束用具体的式子表现出来,并建立了合理的0-1整数规划模型,在面对求解最大概率的时候,将其转换为下线最小值的求解问题,运用中心极限定理,结合标准正态分布,思路清醒,让人理解透彻.另外,本解对问题的考察较全面,求解的结果具有精准性。

 

缺点:

由于Lingo的限制,只能得到一个最优解和一个最佳阵容。

而事实上可能存在有最优解时,有不同的阵容。

这样不有利于模型的推广,难以应付现实生活中的突发情况,可采用Matlab进行0—1规划求解。

六、模型的改进和推广

可用于其它类似选择问题如场地的选择,车辆的安排,在NBA赛季的最佳阵容的选拔等等的推广。

可采用Matlab进行0-1规划求解,这样可以在得到最优解的情况下,得到不同的方案,这样可以满足突发情况下的变动。

附程序:

先贪心算法:

model:

sets:

xiangmu/ABCD/;

duiyuan/1..6/;

canjia(xiangmu,duiyuan):

Q,f;

endsets

data:

可以直接复制表格,但是在最后要有分号;

Q=

8.4

8。

1

9。

5

8。

4

8.4

9

8。

1

8。

7

8.4

8。

8

8.4

8.1

8.4

9

8.3

8.7

8.4

8.2

9.5

8。

4

8.4

8.2

9。

3

9。

1

enddata

max=@sum(canjia(i,j):

Q(i,j)*f(i,j));

!

每个项目最多2个人参加;

@for(xiangmu(i):

@sum(canjia(i,j):

f(i,j))<2);

!

每人至多参加3项;

@for(duiyuan(j):

@sum(canjia(i,j):

f(i,j))〈3);

@for(canjia(i,j):

@bin(f(i,j)));

end

2个0-1变量:

model:

sets:

xiangmu/ABCD/;

duiyuan/1.。

10/:

b;

canjia(xiangmu,duiyuan):

Q,f;

endsets

data:

可以直接复制表格,但是在最后要有分号;

Q=

8。

4

9.3

8。

4

8.1

8.4

9.4

9。

5

8。

4

8.4

9

8。

4

8。

4

8.1

8。

7

9

8.7

8.4

8。

8

8.4

8.1

9.1

8。

4

8.4

9

8。

3

8.5

8。

3

8。

7

8。

4

8.2

8。

7

8.9

9.5

8。

4

9.4

8。

4

8.4

8。

2

9.3

9.1

enddata

max=@sum(canjia(i,j):

Q(i,j)*f(i,j));

每个项目最多6个人参加;

@for(xiangmu(i):

@sum(canjia(i,j):

f(i,j))<6);

每人至多参加3项;

@for(duiyuan(j):

@sum(canjia(i,j):

(1—b(j))*f(i,j))〈3);

@for(canjia(i,j):

f(i,j)〉b(j));

@sum(duiyuan(j):

b(j))=4;

@for(canjia(i,j):

@bin(f(i,j)));

@for(duiyuan(j):

@bin(b(j)));

end

 

第二问:

model:

sets:

xiangmu/1.。

4/:

xuanshou/1..10/:

Z;

links(xiangmu,xuanshou):

f,Q,D;

endsets

data:

Q=

9。

25

9。

6

9

9。

1

9。

25

9.7

9.8

9

9.25

9。

4

9

9

9.1

9.1

9。

4

9。

1

9

9。

8

9。

2

9。

1

9.5

9

9。

25

9。

5

8。

9

8。

9

8。

9

9。

1

9

9.2

9。

1

9。

3

9.8

9

9.7

9.25

9.2

9.3

9.7

9.5

D=

0.1425

0。

018

0.144

0.128

0.1425

0。

018

0。

018

0.144

0.1425

0。

038

0.144

0。

08

0.128

0.088

0.038

0.088

0。

144

0。

084

0.152

0.128

0.038

0.144

0。

1425

0.038

0。

072

0.032

0。

072

0.088

0.144

0.128

0。

088

0.038

0。

018

0.144

0.018

0.1425

0.152

0。

158

0.032

0。

038

;

enddata

!

max=(236。

2—@sum(links(i,j):

f(i,j)*Q(i,j)))/(@sum(links(i,j):

(f(i,j)*D(i,j)))^0.5);

Qmax=@sum(links(i,j):

S(i,j)*f(i,j))-1.28*(@sum(links(i,j):

(D(i,j)*f(i,j)))^0.5);

Qmax=@sum(links(i,j):

f(i,j)*Q(i,j))—1.28*((@sum(links(i,j):

D(i,j)*f(i,j)))^(0.5));

min=(236.2-@sum(links(i,j):

f(i,j)*Q(i,j)))/(@sum(links(i,j):

D(i,j)*f(i,j)))^(0。

5);

E=@sum(links(i,j):

f(i,j)*Q(i,j));

@for(links(i,j):

f(i,j)〉=Z(j));

@sum(xuanshou(j):

Z(j))=4;

@for(xiangmu(i):

@sum(links(i,j):

f(i,j))〈=6

);

@for(xuanshou(j):

@sum(links(i,j):

(1-Z(j))*f(i,j))<=3

);

@for(links(i,j):

@bin(f(i,j)));

@for(xuanshou(j):

@bin(Z(j)));

end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1