一个算法问题,想了很久都不会。。

mybluedog24 2011-11-11 05:22:21
问题是这样,安排一个家长会见老师的时间表。
每个老师每次会见一个家长,7分钟,总共可以会见18个家长。
每个家长最多只能要求会见最多9个老师。
现在要安排一个时间表,使得每个家长能以最短的时间会见完所有要求的老师。

例如:一个家长,要求见ABCDE 5个老师,那么最优的安排解决就是见完A老师立即见B,然后C,然后D,然后E。而不需要见完A之后,BCDE这些老师都有其他家长要见,所以要等7分钟。

希望我解释的比较清楚哈。


我上网找了下,找到的都是高校排课或者考试安排,什么着色法,回溯算法,遗传算法,DNA算法等等。但是我不太明白也不清楚能不能解决此问题。。。。

我现在的想法是,每两个老师看成一对,然后找出最多家长同时要求见的老师对,然后从此两个老师入手安排,因为如果最后安排他们将会有很多冲突。每次安排一个家长,如果安排的时间刚好有冲突,就把冲突的位置的家长调整一下,使得所有家长满足要求。简单的说,就是每加一个家长,就找出当前解。但是这样做的话可能会浪费很多时间。。最差的时间可能会很高很高。。。因为每次加一个家长,就有可能把之前的所有家长都要重新调整。。。
...全文
536 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
mybluedog24 2011-11-22
  • 打赏
  • 举报
回复
谢谢各位的意见~对我有很大的帮助~~
mybluedog24 2011-11-22
  • 打赏
  • 举报
回复
散分~应该算是解决了~~~
flyoversky 2011-11-16
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 cnmhx 的回复:]

这是运筹学问题,没有算法之前早就有标准答案了。
[/Quote]

同意
mybluedog24 2011-11-16
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 xdop 的回复:]

关键是如何衡量等待时间最短?是平均等待时间,还是需要别的方差指标来评判?
如果按平均时间计算,由于资源(家长)没有优先级,让谁等都是一样的,等待时间都是7的倍数。
每一轮安排中,让家长最大并发即可。
[/Quote]

不是~是要求每个家长的最大等待时间最短~

能说的详细些吗?我不知道怎么入手。。
xdop 2011-11-15
  • 打赏
  • 举报
回复
补充,在下一轮安排中,如果上一轮等待的家长,则优先安排。
xdop 2011-11-15
  • 打赏
  • 举报
回复
关键是如何衡量等待时间最短?是平均等待时间,还是需要别的方差指标来评判?
如果按平均时间计算,由于资源(家长)没有优先级,让谁等都是一样的,等待时间都是7的倍数。
每一轮安排中,让家长最大并发即可。
mybluedog24 2011-11-12
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 wangqs1988 的回复:]

贪心算法,根据结束时间排序即可
[/Quote]

能说的详细些吗?
lhy 2011-11-11
  • 打赏
  • 举报
回复
穷举法
mybluedog24 2011-11-11
  • 打赏
  • 举报
回复
就是说m个老师,n个家长,每个老师最多只能会见18个家长。
mybluedog24 2011-11-11
  • 打赏
  • 举报
回复
不是~老师的数量不确定~ 18的意思是: 例如现在1点54分开始,7分钟为一个周期,第一个周期会见完就是2点1分,这一个周期里每个老师只能会见一个家长。然后到下一个周期,18个周期后刚好4点整,家长会结束。
wangqs1988 2011-11-11
  • 打赏
  • 举报
回复
贪心算法,根据结束时间排序即可
xibeitianlang 2011-11-11
  • 打赏
  • 举报
回复
是不是总共18个老师,会见N个家长?!
N≤18不需等待,车轮排法;N>18必须等待。
mybluedog24 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 cnmhx 的回复:]

这是运筹学问题,没有算法之前早就有标准答案了。
[/Quote]

啊~~~~能发个标准答案链接吗??或者给个关键词让我google一下也好
mybluedog24 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wangxvwang 的回复:]

首先、可以使用交集分析一下
因为、任何两个家长会见的交集都是临界资源
最后、在用预防死锁的思考方式看看能不能解决
[/Quote]

我不太明白。。。能不能讲清楚些?
cnmhx 2011-11-11
  • 打赏
  • 举报
回复
这是运筹学问题,没有算法之前早就有标准答案了。
mybluedog24 2011-11-11
  • 打赏
  • 举报
回复
是啊,所以要求是最少等待时间,不一定要求所有家长都不用等待,反正需要一个最少等待时间的解
丈八涯 2011-11-11
  • 打赏
  • 举报
回复
有可能无解吧
Call Next 2011-11-11
  • 打赏
  • 举报
回复
首先、可以使用交集分析一下
因为、任何两个家长会见的交集都是临界资源
最后、在用预防死锁的思考方式看看能不能解决
mybluedog24 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 qiqingli 的回复:]

这个要说明总共有几个老师么?看着想离散数学和统计中的问题
[/Quote]

这个总共有几个老师不确定,的确有点像离散数学。。
mybluedog24 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yyfhz 的回复:]

引用 8 楼 mybluedog24 的回复:

穷举法的话,在老师和家长都少的情况才行得通吧。。


回7楼:
不是不是~这个问题的重点是要家长等待的时间为最少。就是说最好见完一个老师马上可以去见第二个老师,最坏的情况是,见完一个老师,然后等等等等等了n久才能见另外一个老师。。。

如果有N多个家长的话,是要求总的等待时间最短对吗?还有就是每个家长需要见到哪几个老师是预先指定的……
[/Quote]

不是要求总的等待时间最短,要求每个家长的等待时间最短,就是说,如果所有家长都不用等待,只有一个家长需要等35分钟,或者可以更改时间表变成6个家长,每个家长等7分钟,总共是42分钟,那么选择后者。
每个家长需要见的老师不确定,唯一确定的是每个家长最多能见9个老师。
加载更多回复(5)

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧