我想實現Drools Planner分配時間表。目前,我對Java和JavaBean設計模式的熟練程度很低,我需要簡單的練習。一個很好的「你好世界」程序流氓計劃
是否有AI優化問題是
- 已知與「X」算法來解決得很好
- 數據模型適合於在JavaBean的設計模式以簡單的方式 表達
- 使用最少的附加功能(如計劃實體難度)
這樣的問題將是很好的切割我的T在Drools Planner上閱讀。
我現在正在嘗試N皇后問題,這似乎是最簡單的這些。所以我正在尋找這個聯盟的一些東西。
我想實現Drools Planner分配時間表。目前,我對Java和JavaBean設計模式的熟練程度很低,我需要簡單的練習。一個很好的「你好世界」程序流氓計劃
是否有AI優化問題是
這樣的問題將是很好的切割我的T在Drools Planner上閱讀。
我現在正在嘗試N皇后問題,這似乎是最簡單的這些。所以我正在尋找這個聯盟的一些東西。
我正在嘗試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
這有實際意義,如均勻地分佈在整個一週變化的韌性的任務。
更新:請參閱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日,與課程安排示例非常相似。
見'CloudBalancingHelloWorld.java'在optaplanner-例子。 – 2016-06-16 14:00:28