体能测试时间安排的数学模型设计研究(4)
发布时间:2021-06-08
发布时间:2021-06-08
邱红军,等:体能测试时间安排的数学模型设计研究
37
模型二的求解:由LINGO编程
(见表2):
表2 各班参加测试的时间段安排
时间段第一天上午
参加测试的班级
3,7,8,9,10,11,16,17,20,21,22,26,30,31,38,40,43,48,531,2,5,12,18,19,23,24,25,28,29,33,34,36,42,45,46,52,54,564,6,13,14,15,27,33,35,37,39,41,44,47,49,50,51,55
[4]
求得最优解,即问题2的解答
后剩余零头人数的等待时间,即总可等时间.当然这个零头应尽量小,才能使总的等待时间少.因为在测班级的零头人数必然要合并到下一个待测班级的人数里面,所以除了第一个班以外,每个班应接纳上一个班的零头人数,将这看成一批,再以每20人为一组分组,又会有一个零头人数,当然也应尽量小.具体地说:
首先,应有pi1(mod20)=
i∈{1,2,…,k}
总人数
679
minpi(mod20),
第二天上午680
,r1;接下来,应有(r1
r1+pi)(mod20),+pi)=∈{1,,,k}{i1}
第三天上午7[模型三():
,记为r2;依此类推,应有(rk-1+pik)(mod20)=(rmin1+
i∈{1,2,…,k}\{i1,i2,…,ik-1}
pi)(mod20),这时最后一批零头人数最少,记为rk;
(2)算法步骤:
minT=T({i1,i2,…,ik})
s.t.{i1,i2,…,ik}是{1,2,…,k}的一个排列,k
第一步:置I:={1,2,…,k},求pi1(mod20)=min{pi(mod20)|i∈I},记r1=pi1(mod20);
为某天上午参加测试的班级数;
is表示某天上午第s个到场参加测试的班级号,s=1,2,…,k.
对模型三的注:设某天上午参加测试的班级数为k,按班号从小到大排列依次为新的1班、2班、…、k班.
模型三的求解:
笔者通过设计一个简单的算法来求得最优解.(1)算法思想:笔者不考虑总必等时间,因为每一组的人员总是20人,人数不能减少,总的等待时间也不能减少.因而只考虑每一个班测完若干组
第二步:置I:=I-{i1}且s:=2,求(rs-1+pis)(mod20)=min{(rs-1+pi)(mod20)|i∈I},记
rs=(rs-1+pis)(mod20);
第三步:若I=<,停止,已得最优解;否则,置I:=I-{is}且s:=s+1,转第二步.
(3)由此算法用MATLAB编程
[5]
,并利用表1
和表2中的数据,计算得到模型三的最优解,亦即问题三的解答,见表3。
表3 各班到达测试场地的时间安排表
第一天上午(8:00—12:10)班级(人数)
8班(20人)9班(20人)17班(20人)31班(41人)40班(39人)48班(41人)53班(39人)7班(42人)10班(38人)3班(44人)26班(36人)16班(44人)11班(37人)30班(33人)20班(35人)
第二天上午(8:00—12:10)班级(人数)
36班(20人)42班(40人)1班(41人)52班(19人)46班(42人)19班(39人)34班(39人)28班(24人)56班(17人)12班(25人)54班(75人)24班(25人)2班(45人)18班(30人)5班(26人)
第三天上午(8:00—12:10)班级(人数)
27班(20人)35班(20人)41班(42人)39班(38人)49班(42人)51班(42人)55班(17人)47班(43人)4班(44人)6班(44人)44班(50人)37班(44人)13班(45人)33班(51人)14班(45人)
时间
08:0008:0708:1408:2108:3508:4909:0309:1709:3109:4509:5910:1310:2710:4110:48
时间
08:0008:0708:2108:3508:4208:5609:1009:2409:3109:3809:4510:1310:2010:3410:48
时间
08:0008:0708:1408:2808:4208:5609:1009:1709:3109:4509:5910:2010:3410:4811:09
上一篇:绿色建筑的水环境(第五讲)