我正在尝试使用Drools Planner来分配时间表。目前,我对Java和JavaBean设计模式的熟练程度很低,我需要简单的练习。
是否存在 AI优化问题
这样的问题对Drools Planner来说很好。
我正在尝试N-Queens问题,这似乎是最简单的问题。所以我正在寻找这个联盟的东西。
答案 0 :(得分:1)
更新:请参阅optaplanner-examples中的CloudBalancingHelloWorld.java
(Drools Planner重命名为OptaPlanner)。
您也可以尝试自己实施ITC2007 curriculum course scheduling,然后将其与the source code of the example in Drools Planner进行比较。 如果你想保持简单但也得到不错的结果,请按照this recipe进行First Fit,然后选择禁忌搜索。
另一个好主意是加入the ITC2011 scheduling competition:它仍然开放至2012年5月1日,与课程安排示例非常相似。
答案 1 :(得分:0)
我正在尝试2X2 Sudoku(生成和解决)简单的事情。您可以在Nqueens代码上对其进行建模。虽然容易解决2x2 sudokus,但3x3 sudokus可能会卡住。所以你可以实现交换动作。
另一个有趣的问题是桶总和。给定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
这具有实际意义,例如在一周内均匀分配不同韧性的任务。