Job Shop Scheduling - 类项目 - 关于references / alg的建议。用于实施和获得实验结果

时间:2012-11-26 05:40:02

标签: algorithm scheduling np-hard

我正在开发一个项目来实施和测试NP-Hard / Complete问题。我有一个大概的想法,做一些调度,并阅读了很多关于Job Shop的问题。我知道OR库中有一些着名的测试用例/基准测试。我有代码(Java)来读取测试实例并存储其数据。现在我感觉陷入了一个循环,试图找到一种算法/方法来创建一个计划,然后提出一个最佳的计划。我阅读了很多学术论文,但我通常会对它们有所遗漏,特别是复杂的集合表示法。我希望我能找到更多伪代码的例子。我知道这是一个经典问题,我想知道是否有人建议直接向工作车间提供经典解决方案 - 尤其是任何有伪代码示例的人。我不需要为这个项目做原创研究。我只需要学习如何应用已知技术来解决NP-Hard问题,编写代码,运行测试,提供实验结果并对它们进行评论。任何建议或帮助将不胜感激。

“必须完成许多工作,每项工作都包括在一定时间内使用多台机器。问题是找到最好的计划,在最短的时间内完成所有不同机器上的所有工作一段时间。“

示例问题实例:

datalines部分中的每一行通过10对连续数字指定作业。每对数字定义作业的一个任务,表示计算机上作业的处理。对于每对,第一个数字标识它执行的机器,第二个数字是持续时间。 10对的顺序定义了作业的任务顺序。

“劳伦斯10x10实例”(表6,实例4);也被称为(seta4)或(A4)(Applegate和Cook; 1991)-10机器编号为0-9 -10行= 10个工作 - 最佳:842

2 44 3 5 5 58 4 97 0 9 7 84 8 77 9 96 1 58 6 89

4 15 7 31 1 87 8 57 0 77 3 85 2 81 5 39 9 73 6 21

9 82 6 22 4 10 3 70 1 49 0 40 8 34 2 48 7 80 5 71

1 91 2 17 7 62 5 75 8 47 4 11 3 7 6 72 9 35 0 55

6 71 1 90 3 75 0 64 2 94 8 15 4 12 7 67 9 20 5 50

7 70 5 93 8 77 2 29 4 58 6 93 3 68 1 57 9 7 0 52

6 87 1 63 4 26 5 6 2 82 3 27 7 56 8 48 9 36 0 95

0 36 5 15 8 41 9 78 3 76 6 84 4 30 7 76 2 36 1 8

5 88 2 81 3 13 6 82 4 54 7 13 8 29 9 40 1 78 0 75

9 88 4 54 6 64 7 32 0 52 2 6 8 54 5 82 3 6 1 26

1 个答案:

答案 0 :(得分:1)

查看Drools Planner(用于安排这些问题的开源Java框架)中使用的算法,详细解释了the manual