?4??xij?1?i?1,2,?5??j?1?5s..t??xij?1?j?1,2,?4??i?1?xij??0,1???
5.2问题一的模型建立与求解
针对问题一我们建立如下目标函数:
minz?66.8x11?75.6x12?87x13?58.6x14?57.2x21?66x22?66.4x23?53x24?78x31?67.8x32?84.6x33?59.4x34?70x41?74.2x42?69.6x43?57.2x44?67.4x51?71x52?83.8x53?62.4x54x11?x12?x13?x14?1??x21?x22?x23?x24?1??x31?x32?x33?x34?1?x41?x42?x43?x44?1??x51?x52?x53?x54?1?s..t?x11?x21?x31?x41?x51?1??x12?x22?x32?x42?x52?1?x13?x23?x33?x43?x53?1??x14?x24?x34?x44?x54?1???xij?0or1?i?1,2,3,4,5.j?1,2,3,4?
运用MATLAB计算可以得到x14?x21?x32?x43?1,因此,入选队员和对应参加的泳姿种类如下表:
问题一的选拔方案表 甲 乙 丙 丁 戊 蝶泳 √ 仰泳 √ 蛙泳 √ 自由泳 √ (表四) 即选择乙进行蝶泳→丙进行仰泳→丁进行蛙泳→甲进行自由泳的比赛方案。 此时的比赛最佳总得分为z?251.4s。
5.3问题二的模型建立与求解
由于队员丁的蛙泳成绩退步到1’15”2,戊的自由泳成绩进步到57”5。我们针对针对此情形建立如下目标函数:
6
minz?66.8x11?75.6x12?87x13?58.6x14?57.2x21?66x22?66.4x23?53x24?78x31?67.8x32?84.6x33?59.4x34?70x41?74.2x42?75.2x43?57.2x44?67.4x51?71x52?83.8x53?57.5x54x11?x12?x13?x14?1??x21?x22?x23?x24?1??x31?x32?x33?x34?1?x41?x42?x43?x44?1??x51?x52?x53?x54?1?s..t?x11?x21?x31?x41?x51?1??x12?x22?x32?x42?x52?1?x13?x23?x33?x43?x53?1??x14?x24?x34?x44?x54?1???xij?0or1?i?1,2,3,4,5.j?1,2,3,4?
运用MATLAB计算,可以得到x21?x32?x43?x51?1,因此,入选的队员和对应参加的泳姿种类如下表:
问题二的选拔方案表 甲 乙 丙 丁 戊 蝶泳 √ 仰泳 √ 蛙泳 √ 自由泳 √ (表五) 即选择戊进行蝶泳→丙进行仰泳→丁进行蛙泳→甲进行自由泳的比赛方案。
此时的比赛最佳总得分为z?257.7s。
六、模型的评价与改进
6.1模型优点
1)以数据为基础,建立了较为合理的模型,程序实现比较容易。
2)巧妙的利用0—1整数规划,对混合泳接力队的选拔建立了比较科学的数学模型,为其他赛事如足球队队员、羽毛球队队员的选拔提供了参考方案。
6.2模型缺点及改进
1)本模型假设中忽略了外界坏境以及运动员自身因素对运动员发挥水平的影响,因此,得到的结果也许同实际情况有所出入。
2)本模型考虑因素未全面化,可以应用层次分析法,对模型进行改进及推广,得出更为准确的选拔方案,从而可以一定程度上为比赛取得最佳成绩提供保证。
参考文献
7
[1]胡运权,运筹学习题集.清华大学出版社.2002.
附录
附录一:程序
1)问题一的程序
C=[66.8 75.6 87 58.6 57.2 66 66.4 53 78 67.8 84.6 59.4 70 74.2 69.6 57.2 67.4 71 83.8 62.4];
A=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1]; b=[1;1;1;1;1];
Aeq=[1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0; 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0; 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0; 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1]; beq=[1;1;1;1];
VLB=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; VUB=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]; [x,fval]=linprog(C,A,b,Aeq,beq,VLB,VUB) x =
0.0000 0.0000 0.0000 1.0000 1.0000 0.0000
8
0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000
fval =
253.2000
2)问题二的程序
C=[66.8 75.6 87 58.6 57.2 66 66.4 53 78 67.8 84.6 59.4 70 74.2 75.2 57.2 67.4 71 83.8 57.5];
A=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1]; b=[1;1;1;1;1];
Aeq=[1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0; 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0; 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0; 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1]; beq=[1;1;1;1];
VLB=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; VUB=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]; [x,fval]=linprog(C,A,b,Aeq,beq,VLB,VUB) x =
0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000
9
0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000
fval = 257.7000
10