调度时间表算法

时间:2012-08-31 05:13:54

标签: java matlab scheduling heuristics drools-planner

我想知道是否有人可以指出我如何处理调度问题的正确方向。

我有一个教师/学生的时间表问题,在那里我有老师在某些时候教授某些科目,而学生则喜欢他们想要参加哪个班级。目标是创建一个不一定是最佳解决方案的时间表。

我环顾四周,这个网站上有很多关于这个主题的讨论,我发现这些讨论从超级一般到过度困难,我目前无法理解要使用哪些编程/逻辑概念至少概念化程序的工作流程。

任何处理类似问题的人都可以解释如何处理这些类型的问题。我不需要代码(虽然伪代码会很棒),但是一些指导方针即步骤#1 - 执行此操作,步骤#2 - 执行此操作,步骤3 - 执行等操作....

此外,是否有任何可用的库可以有效地使用首选项进行调度并且具有相当简单的输入?

非常感谢!!

这是我遇到的问题的概要。

假设我有一群销售人员:

enter image description here

目标是根据时间可用性和偏好创建一个将买方和卖方配对的计划。

这是课程时间表问题,对吧?

我可以用Drool Planner完成吗?

3 个答案:

答案 0 :(得分:0)

首先,您应该为您的问题列出资源。然后你应该记下约束并建立一个数学模型。最后,您可以使用一些优化工具来生成解决方案。

当然,这并不像看起来那么容易。 This page可能会为您提供有关可能解决方案的一些见解。

答案 1 :(得分:0)

查看curriculum course日程安排问题,该问题将教师和学生的讲座安排到时间段和房间。请查看my open source implementation in Javajust download and run the example

我已使用元启发式First Fit Decreasing配置了构造启发式Tabu Search。我也尝试了其他配置,请参阅我的基准测试配置。

答案 2 :(得分:0)

Matlab有一个全局优化工具箱,可以通过一个非常简单的点击式GUI进行遗传算法优化,该GUI具有有用的文档。从what wikipedia says开始,您的问题就是通过GA解决的问题。

如果您无法访问工具箱,您应该能够找到适用于Java的遗传算法库,或者最糟糕的是您可以自己编写。它不会那么广泛,需要一些工作,但制作一个简单的工作并不是非常困难。