2012-01-16 85 views
1

我想实现Drools Planner分配时间表。目前,我对Java和JavaBean设计模式的熟练程度很低,我需要简单的练习一个很好的“你好世界”程序流氓计划

是否有AI优化问题

  1. 已知与“X”算法来解决得很好
  2. 数据模型适合于在JavaBean的设计模式以简单的方式
  3. 表达
  4. 使用最少的附加功能(如计划实体难度)

这样的问题将是很好的切割我的T在Drools Planner上阅读。


我现在正在尝试N皇后问题,这似乎是最简单的这些。所以我正在寻找这个联盟的一些东西。

+0

见'CloudBalancingHelloWorld.java'在optaplanner-例子。 – 2016-06-16 14:00:28

回答

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 

这有实际意义,如均匀地分布在整个一周变化的韧性的任务。


A的一些问题收集:http://eclipseclp.org/examples/index.html

1

更新:请参阅CloudBalancingHelloWorld.java in optaplanner-examples(Drools Planner更名为OptaPlanner)。

您也可以尝试自己实施ITC2007 curriculum course scheduling,然后将其与the source code of the example in Drools Planner进行比较。 如果你想保持简单,但也可以得到不错的结果,请按照this recipe进行第一次适应,然后是禁忌搜索。

另一个好主意是加入the ITC2011 scheduling competition:它仍然开放至2012年5月1日,与课程安排示例非常相似。

+0

我希望更简单的练习(并修改我的问题以反映这一点)。但我会按照发明人的建议作为第2步:-) – aitchnyu 2012-01-16 14:29:43

+0

cloudbalance也是一个相对简单的例子,也许这是从N皇后很好的一步。无论如何,反馈如何使它更简单总是欢迎:) – 2012-01-16 16:23:03

+0

请用云平衡更新这个答案,我会接受。 – aitchnyu 2016-06-17 09:45:58