- 在线时间
- 25 小时
- 最后登录
- 2011-12-29
- 注册时间
- 2011-8-4
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 432 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 164
- 相册
- 0
- 日志
- 0
- 记录
- 9
- 帖子
- 67
- 主题
- 29
- 精华
- 0
- 分享
- 0
- 好友
- 10
升级   32% TA的每日心情 | 慵懒 2011-12-29 17:30 |
|---|
签到天数: 33 天 [LV.5]常住居民I
 群组: 数学建模培训课堂2 |
摘 要
本文就某校学生体能测试时间安排问题进行了分析、讨论建模。由于该问题班级较多,人数不均,测试项目仪器不等,测试场所容纳人数有限等等,人工计算量较大,所以我们用到了计算机来解决该问题。我们分别考虑了录入时间,测试时间,等待时间,从不同的角度建立了3个模型,使它们的总用时最少。模型一我们将5个测试项目分成了两部分。即台阶测试为一部分,其余的四项为一部分。按150人进出,通过假设其他项目测试时间与台阶测试的时间相等,并根据台阶一次可以测5人得到,对150人来说要求50人测试台阶试验,100人测试其他的项目。得到上、下午完成所有项目测试的总人数,具体过程及班级安排见模型一。
模型二我们用图论里的最小匹配法,以项目为行,班级为列,权重为人数,建立了矩阵模型,用Mathematica软件求解,具体算法及结果见模型二。
模型三是根据建立目标函数和约束条件,利用线性规划方法用Mathematica软件计算可得到测试完全校2036人需要最多两天时间,是按150个人为一批进出,将150个人均分,每个项目30 个人,均完成一项后调换,按此方法依次进行,上午可先进来4批进行测试,剩余时间安排50人进入,下午同理。则一天可以测试完1150人,根据本校学生总人数,可以算出:也是用不到2天即可完成全校2036名学生的测试。
最后,我们根据以上建立的几个模型,我们可以得出因为每人每项均要测试,所以无论每组先进行还是等待着一起进行最终所需时间相差不大(可忽略)根据整个测试所需时间段最少,每个学生的等待时间尽量最少,现有仪器的台数,台数比,测试时间比,及考虑尽量节省资金,现实行如下方案:购买立定跳远仪器,肺活量仪器各一台,台阶测试购买3台。测量场所的人员容量为200人,在此基础上,将200人均分,根据上述算法,上午可测1300人,即用不到一天即可测完。
关键词: 最优化 矩阵模型 最小匹配法 线性规划方法
1问题重述及分析
某校按照教学计划安排各班学生进行体能测试,以了解学生的身体状况。测试包括身高与体重、立定跳远、肺活量、握力和台阶试验共5个项目,均由电子仪器自动测量、记录并保存信息。该校引进身高与体重测量仪器3台,立定跳远、肺活量测量仪器各1台,握力和台阶试验测量仪器各2台。
身高与体重、立定跳远、肺活量、握力4个项目每台仪器每个学生的平均测试(包括学生的转换)时间分别为10秒、20秒、20秒、15秒,台阶试验每台仪器一次测试5个学生,需要3分30秒。
每个学生测试每个项目前要录入个人信息,即学号,平均需时5秒。仪器在每个学生测量完毕后学号将自动后移一位,于是如果前后测试的学生学号相连,就可以省去录入时间,而同一班学生的学号是相连的。
学校安排每天的测试时间为8:00-12:10与13:30-16:45两个时间段。5项测试都在最多容纳150个学生的小型场所进行,测试项目没有固定的先后顺序。参加体能测试的各班人数见附表。
学校要求同一班的所有学生在同一时间段内完成所有项目的测试,并且在整个测试所需时间段数最少的条件下,尽量节省学生的等待时间。
请你用数学符号和语言表述各班测试时间安排问题,给出该数学问题的算法,尽量用清晰、直观的图表形式为学校工作人员及各班学生表示出测试时间的安排计划,并且说明该计划怎样满足学校的上述要求和条件。
最后,请对学校以后的体能测试就以下方面提出建议,并说明理由:如引进各项测量仪器的数量;测试场所的人员容量;一个班的学生是否需要分成几个组进行测试等。
附表 参加体能测试的各班人数
班号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
人数 41 45 44 44 26 44 42 20 20 38 37 25 45 45 45
班号 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
人数 44 20 30 39 35 38 38 28 25 30 36 20 24 32 33
班号 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
人数 41 33 51 39 20 20 44 37 38 39 42 40 37 50 50
班号 46 47 48 49 50 51 52 53 54 55 56
人数 42 43 41 42 45 42 19 39 75 17 17
体能测试涉及到班级、测试项目、测试仪器3个变量,每台仪器除了台阶测试外一次只能测一个人,限制条件是所需时间段数最少,学生等待的时间最短。
2 基本假设
1.学生从一个测试项目到另一个测试项目之间的走动时间忽略不计。
2.人与人之间的时间包含在每个学生的平均测试当中。
3.人和仪器均保持正常进行,测试项目没有固定的先后顺序。
4.同一个班的所有学生在同一段时间内完成所有项目的测试。
3 符号说明
X:表示测台阶的组数;
:表示上午测试完所有项目的总人数;
: 表示下午测试完所有项目的总人数;
:表示上午那个时间段的总时间;
:表示录入时间;
:表示时间段数;
表示体检项目的仪器( =1,2,3,4……9);
:表示班级( =1,2,3,4……56)
4 模型建立与求解
4.1模型一
模型假设;
1. 将这5个测试项目分成两部分。即台阶测试为一部分,其余的4项为一部分。
2. 每次进去150人,第一批的人走的同时第二批人进来。
3. 每组学生开始第一个项目的测试时无空余仪器。
根据相同时间内两部分同时进行,其它项目测试时间与台阶测试的时间相等,通过每台仪器每个学生的平均测试时间,可得等式
得到 。
因为台阶试验一次可以测5个人,故取 ,所以150人中,测试台阶的人数有50人。
由此可以估算出其它项目的测试人数。,故其它项目的测试人数共有100人。
50人完成台阶测试的总时间为 (秒)
而 = (秒)
= =657(人)
150 个人所需的测试时间为 =52.5(分钟)
57个人所需的测试时间为 =20 (分钟)
前一天上午的安排表如下:
时间 班级
8:00—8:57 1,2,3,8
8:57—9:54 4,5,6,26
9:54—10:51 7,9,10,45
10:51—11:47 12,13,21,41
11:47—12:02 17,55
同理 (人)
=900(秒)
前一天下午的安排表如下;
时间 班级
13:30—14:25 16,18,19,38
14:25—15:20 11,15,23,42
15:20—16:15 36,47,49,50
16:15—16:31 29
第二天上午与第一上午的时间类似,安排表如下:
时间 班级
8:00—8:57 24,25,27,54,
8:57—9:54 30,39,43,46,
9:54—10:51 32,48,51,53,56,
10:51—11:47 14,20,37,44
11:47—12:02 35,40
第二天下午的安排表如下:
时间 班级
13:30—14:26 22,31,33,52,
14:26—14:44 28,34
4.2模型二
模型分析:
体检测试时间安排是一个十分复杂的问题,我们将其抽象成一个指派问题,借助图论里的匹配划分,来寻求该问题的解决方案。
假设这所学校里有 ( =1,2,3,4……9)个体检项目(相同的仪器视为不同的体检项目),每解决方将规定时间划分为半个小时(将耗时最长的台阶测试作为优先原则)一个时间段,每个时间段进场的人数也相应分为九组,每组人数分别设为为 ,其中 代表每台仪器身高与体重的测试的人数, 代表每台立定跳远测试的人数, 代表每台肺活量测试的人数, 代表每台握力测试的人数, 代表每台台阶测试的人数。则可以把{ , … } { , … }看作一个图G的顶点集合。 选第 班级,就在 与 之间连 边顶点分成两部分,每一部分内部没有边。
在同一个时间段内,一个项目可以选一个班级,而一个班级也可以选某一个项目,邻边 的权重为第 个班的人数。
这样我们可以转化为一个二分图的边集合划分问题,划分成一些匹配的并,从而使得匹配个数最小。
假设30分钟内,可以计算出每台仪器测试的人数比
那么可得到第 个班级到第 台仪器上的人数,现在将人数作为边的权重,以下为权重矩阵
12 0 0 12 12 12 0 12 0
0 12 0 12 12 0 12 0 12
0 0 12 12 12 12 0 12 0
6 0 0 6 6 6 0 6 0
0 6 0 6 6 0 6 0 6
0 0 8 8 8 8 0 8 0
8 0 0 8 8 0 8 0 8
0 3 0 3 3 3 0 3 0
0 0 3 3 3 0 3 0 3
MM={{0,0,0,0,0,0,0,0,0,12,0,0,12,12,12,0,12,0},{0,0,0,0,0,0,0,0,0,0,12,0,12,12,0,12,0,12},{0,0,0,0,0,0,0,0,0,0,12,12,12,12,12,0,12,0},{0,0,0,0,0,0,0,0,0,6,0,0,6,6,6,0,6,0},{0,0,0,0,0,0,0,0,0,0,6,0,6,6,0,6,0,6},{0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,0,8,0},{0,0,0,0,0,0,0,0,0,8,0,0,8,8,0,8,0,8},{0,0,0,0,0,0,0,0,0,0,3,0,3,3,3,0,3,0},{0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,3,0,3},
Clear[g3]
g3=Graph[MM,{{1,-4},{1,-3},{1,-2},{1,-1},{1,0},{1,1},{1,2},{1,3},{1,4},{-4,2},{-3,2},{-2,2},{-1,2},{0,2},{1,2},{2,2},{2,3}{2,4}}];
ShowGraph[g3]
画出图为:
(图一)
经过编程,利用Mathematica软件计算,得到了很多种方案,我们依据等待时间最少,选择了其中一种,即
第一步{1,11},{2,12},{3,13},{4,14},{5,15},{6,16},{7,17},{8,18},{9,19},
第二步{1,18},{2,16},{3,14},{4,15},{5,11},{6,19},{7,13},{8,12},{9,17},
第三步{1,17},{2,14},{3,15},{4,16},{5,18},{6,12},{7,15},{8,16},{9,15},
第四步{1,14},{2,15},{3,16},{4,18},{5,17},{6,14},{7,19},{8,14},{9,11},
第五步{1,15},{2,18},{3,19},{4,11},{5,14},{6,15},{7,14},{8,15},{9,14}。
在半小时中可以测试完5个项目的人数是72人。所以在上午可以测试582个人,经计算也可得到下午可以测试478个人,而现在 56个班级共有2036个人,则需要1.9天,即约为2天.但是这里把一小时零五分作为一个时间段,依据条件最大容量为150人及等待时间最少.可得下表:
体检时间及班级安排表
第 一 天 上午 8:00---9:05 1,2,3,8
9:05---10:10 4,5,6,26
10:10---11:15 7,9,10,45
11:15---12:10 31,40,46
下午 13:30---14:32 12,13,21,41
14:32---15:34 16,18,19,38
15;34---16:36 14,17,20,44
16;36---16:45 28
第 二 天 上午 8:00---9:05 11,15,23,42
9:05---10:10 22,31,33,35
10:10---11:15 32,48,51,55,56,
11:15---12:10 30,39,37
下午 13:30---14:32 24,25,27,54
14:32---15:34 36,47,49,50
15:34---16:14 34
4.3模型三
1 在所有检测仪器都不停情况下,每30人各项目检测所花时间比较
身高与体重 10 =110秒
立定跳远 =610秒
肺活量 =610秒
握力 =310秒
台阶 =640秒
表一
2 从表一知:安排检测,首先保证立定跳远、肺活量不停留,其次保证台阶。
一个上午最多安排 (人)。
一个下午最多安排 (人)。
3 设在第 时段安排 个班参加检测,这 个班人数分别是 , , , 。
在 个时段内完成,下面给出一个简化模型:
安排的原则即数学模型是
min{ }
且 上午满足
下午满足
利用Mathmatic软件进行了求解,得到 ,全校2036人至多要安排四个时段进行体能测试。
因学校要求同一个班的学生在同一时间段内完成所有项目的测试,因此上午安排650人测试,下午安排500人测试。
该校体能测试需用2天,第一天按上述方法进行体能测试,第二天上午按上述方法安排测试,下午第一批进150人,还有86人一起进。150人均由整班人数组成,不分上午、下午。对于下表每行的几个班级是一批进入。
下表是每行150人的班级组合:
1(41) 2(45) 3(44) 8(20)
4(44) 5(26) 6(44) 26(36)
7(42) 9(20) 10(38) 45(50)
12(25) 13(45) 21(38) 41(42)
16(44) 18(30) 19(39) 38(37)
14(45) 17(20) 20(35) 44(50)
11(37) 15(45) 23(28) 42(40)
22(38) 31(41) 33(51) 35(20)
32(33) 48(41) 51(42) 55(17) 56(17)
24(25) 25(30) 27(20) 54(75)
36(20) 47(43) 49(42) 50(45)
30(33) 39(38) 43(37) 46(42)
因为找出12行150人的班级组合之后,得不到50人的优化组合,因此用三十七班的44人,二十八班和五十二班43人,五十三班的39人来代替50人的组合,因此应。使上述测试人数微调一下,因影响不大,不调即可,所有剩余的班级最后一起测试。
5 对学校以后体能测试就以下方面的建议
因为每人每项均要测,所以无论每组先进行还是等待着一起进行最终所需时间相差不大(可忽略)根据整个测试所需时间段最少,每个学生的等待时间尽量最少,现有仪器的台数,台数比,测试时间比,及考虑尽量节省资金,现实行如下方案:购买立定跳远仪器,肺活量仪器各一台,台阶测试购买3台。测量场所的人员容量为200人,在此基础上,将200人均分,根据模型三的算法,上午可测1300人,即用不到一天即可测完。按此方案,不必将一个班的学生分组,当然,分组会更节省时间,但相差不大。
6 模型评价
模型一考虑把五个体检项目按照单位耗时建立了优先顺序,把台阶试验和其他4项划分开来,即把单位时间内的学生划分为两大组,分别进行测试然后交换顺序。但这模型过于粗糙,没有具体给出第二轮的细分,同时学号录入时间也被忽略,鉴于此,我们建立模型二。
模型二将其与传统的排课模型进行类比,依据耗时最长的项目的耗时,将半个小时划为一个时间段,把每一台机子作为一个个体,采用图论的思想,将每组学生与每个项目连边,权重设为组里的人数,人数多则耗时长。则问题简化为九组人分别进行九个项目,求网络流的最小匹配。其优点是条理清晰,逻辑严格,计算速度快,具有较强的说服力和适应能力。缺点是该模型中等待时间的目标函数没有明确描述。
模型三是采用线性规划的方法,变量设为学生人数,目标函数考虑最后一台机子停止工作时所耗费的时间最短。遵循了优先原则,把耗时最长的项目即台阶训练优先考虑,同时遵循机子和人员都不能空着的原则,将模型用Mathmatic软件进行了求解。其优点是考虑了学生等待时间,其作为一个目标函数将其最小化,缺点是只给出了一些原则和方法,没有经过仿真模拟。
参考文献:
[1] 赵东方等.Mathematica数学实验与数学模型.华中师范大学出版社.2003年9月第1版
[2] 侯文华等.数学模型方法与算法.高等教育出版社.2005年5月第1版
[3] 阮晓青、周义仓。数学模型引论.高等教育出版社.2005年7月第1版
[4] 韩中庚等.数学建模方法及其应用.高等教育出版社.2005年6月第1版
[5] 赵东方.数学模型与计算.科学出版社.2007年2月第1版
[6] 叶其孝.大学生数学建模竞赛辅导教材.湖南教育出版社.1993年8月第1版
|
zan
|