我正在尝试实施 Drools Planner 来分配时间表。目前,我对 Java 和 JavaBean 设计模式的熟练程度很低,我需要一些简单的练习。
是否存在一个AI 优化问题
- 已知可以用'X'算法很好地解决
- 数据模型适合于以简单的方式在 JavaBean 设计模式中表达
- 使用最少数量的额外功能(如规划实体难度)
这样的问题对 Drools Planner 来说是件好事。
我现在正在尝试 N-Queens 问题,这似乎是其中最简单的。所以我正在寻找这个联盟的东西。
我正在尝试实施 Drools Planner 来分配时间表。目前,我对 Java 和 JavaBean 设计模式的熟练程度很低,我需要一些简单的练习。
是否存在一个AI 优化问题
这样的问题对 Drools Planner 来说是件好事。
我现在正在尝试 N-Queens 问题,这似乎是其中最简单的。所以我正在寻找这个联盟的东西。
更新:请参阅CloudBalancingHelloWorld.java
optaplanner-examples(Drools Planner 已重命名为 OptaPlanner)。
您也可以尝试自己实施ITC2007 课程安排,然后将其与Drools Planner 中示例的源代码进行比较。如果您想保持简单但也想获得不错的结果,请遵循此食谱并选择 First Fit,然后是禁忌搜索。
另一个好主意是加入ITC2011 调度竞赛:它仍然开放到 2012 年 5 月 1 日,与课程安排示例非常相似。
我正在尝试简单的2X2 数独(生成和求解)。您可以在 Nqueens 代码上对其进行建模。虽然 2x2 数独很容易解决,但 3x3 数独可能会卡住。因此,您可以实施交换动作。
另一个有趣的问题是桶总和。给定 10 个桶,每个桶可以包含 5 个数字和 50 个数字;编写一个程序来分配数字,使每个桶中的数字总和或多或少是偶数。
Bucket Bucket0 3 6 19 16 11 =55
Bucket Bucket1 8 2 5 25 15 =55
...
Bucket Bucket7 3 25 4 16 8 =56
Bucket Bucket8 12 20 12 9 2 =55
Bucket Bucket9 4 9 11 12 20 =56
这具有实际意义,例如在一周内平均分配不同强度的任务。
一些问题的集合: http: //eclipseclp.org/examples/index.html