zscmyself 发表于 2009-11-24 19:38

那位高人可以帮忙,提供编程思路,源程序更好~请你来排课表

现有课程40门,编号为C01~C40;教师共有25名,编号为T01~T25;教室18间,编号为R01~R18。具体属性及要求见表1,表2,表3:
课表编排规则:每周以5天为单位进行编排;每天最多只能编排8节课(上午4节,下午4节),特殊情况下可以编排10节课(晚上2节),每门课程以2节课为单位进行编排,同类课程尽可能不安排在同一时间。
你所要解决的问题:
1.
请你结合实际情况建立数学模型,通过编程计算,给出较为合理的课表编排方案,分析你所给出的方案的合理性。
2.
如果不准晚上排课,排课结果是否有所变化,如何变化?
3. 对教师聘用,教室配置给出合理化建议。
表1:课程属性及要求:

课程编号
课程类别
周课时数
对教室座位最大要求数
对教室
类别要求
时间要求

C01
1
4
50
多媒体教室
上午

C02
1
4
30
普通教室
下午

C03
1
6
40
普通教室
下午

C04
1
4
25
多媒体教室
上午

C05
1
3
60
普通教室
下午

C06
2
4
100
普通教室
下午

C07
2
4
50
多媒体教室
上午

C08
2
2
30
普通教室
上午

C09
2
4
40
普通教室
下午

C10
2
3
25
多媒体教室
上午

C11
3
6
60
普通教室
上午

C12
3
4
80
普通教室
上午

C13
3
6
50
多媒体教室
下午

C14
3
2
30
普通教室
下午

C15
3
3
40
普通教室
下午

C16
4
4
25
多媒体教室
上午

C17
4
4
60
普通教室
下午

C18
4
6
90
普通教室
上午

C19
4
4
50
多媒体教室
上午

C20
4
2
50
普通教室
上午

C21
5
4
30
普通教室
上午

C22
5
4
40
多媒体教室
下午

C23
5
3
25
普通教室
上午

C24
5
6
60
普通教室
下午

C25
5
4
100
多媒体教室
上午

C26
6
3
50
多媒体教室
下午

C27
6
4
30
普通教室
下午

C28
6
4
40
普通教室
下午

C29
6
4
50
多媒体教室
上午

C30
6
4
30
普通教室
下午

C31
7
6
40
普通教室
上午

C32
7
4
25
多媒体教室
下午

C33
7
3
60
普通教室


C34
7
4
80
多媒体教室
上午

C35
7
4
50
普通教室
下午

C36
8
6
30
机房


C37
8
4
40
机房
上午

C38
8
2
25
机房
上午

C39
8
4
60
机房
下午

C40
8
4
50
机房


表2:教师属性:

教师编号
能胜任课程类别
周最大
课时数
对教室类别要求
上课时间要求
尽可能不同天上课的教师

T01
1,8
4
多媒体教室或机房
上午
T4

T02
1
4
普通教室
下午


T03
1
6
普通教室
上午


T04
2
4
多媒体教室
上午
T1

T05
2
4
普通教室
下午


T06
2
6
普通教室



T07
3
4
普通教室
上午


T08
3,8
3
普通教室或机房
下午


T09
3
4
普通教室
上午
T11,T18

T10
3
6
多媒体教室
上午


T11
4
8
普通教室
下午
T9,

T12
4
4
普通教室



T13
4
6
多媒体教室
下午


T14
5
2
普通教室
上午


T15
5,8
3
普通教室或机房
下午
T23

T16
5
4
普通教室
上午


T17
6
4
普通教室
下午


T18
6
6
普通教室

T9

T19
6
4
多媒体教室
下午


T20
7
4
普通教室
上午


T21
7
6
普通教室
下午


T22
7
6
多媒体教室
上午


T23
3,8
4
普通教室或机房

T15

T24
4,8
6
普通教室或机房
上午


T25
6,8
4
普通教室或机房
下午



表3:教室属性:

教室编号
最大座位数
教室类别

R01
100
多媒体教室

R02
100
普通教室

R03
100
普通教室

R04
50
多媒体教室

R05
50
普通教室

R06
50
普通教室

R07
50
普通教室

R08
60
普通教室

R09
60
普通教室

R10
60
多媒体教室

R11
60
普通教室

R12
60
机房

R13
40
机房

R14
40
机房

R15
40
机房

R16
40
多媒体教室

R17
50
普通教室

R18
40
普通教室

MCM2010 发表于 2009-11-25 09:40

我也想知道啊,只有坐等高人解答啦

leo12ok 发表于 2009-11-25 09:58

应该是一个带约束的优化问题 。。

leo12ok 发表于 2009-11-25 10:10

~  每位老师每节课最多只能上一节课(0--不上课,1---上课),每天最多上四节课(不考虑每位老师只教一类课程的情况,且不考虑晚上排课)
~  每间教室每节课最多只能上一门课(0--空闲,1---被占用上课),最多能上四门课(不考虑晚上排课)
~教室容量要满足要求
~每类课上课的课时要符合指定课时要求
~40门课程要全部按照计划上完
~老师安排要少于或等于25人(如果每位老师都安排课的话,就是25人)
~教室数量不能多余18

目标可以考虑将:“同类课程尽可能不安排在同一时间”作为目标

可以考虑LinGo编程
该问题应该属于指派问题。

抛砖引玉哈!

zcilly 发表于 2009-11-25 10:12

好的哈

fxh 发表于 2009-11-25 10:22

我也想知道啊,只有坐等高人解答啦

zcilly 发表于 2009-11-25 10:23

运筹学;里面就讲过这个了
可以参考一下哈

大笨象 发表于 2009-11-25 16:25

可以用lingo编一个程序。应该不难弄。

wxrfly 发表于 2010-5-1 11:54

想知道一些好的思路。。。。。。。。。。。。。。。。。。

数学魔方 发表于 2010-5-2 19:20

怎么和刚刚的一样啊,好像是问题:L
页: [1] 2
查看完整版本: 那位高人可以帮忙,提供编程思路,源程序更好~请你来排课表