策略引擎-jboss Drools Planner
jboss drools不光想做規則庫,而且還做策略庫,高智商的東西。jboss Drools Planner。
planner是干什么的?
一句話,planner是通過聯合drools規則引擎和搜索算法實現自動規劃的。一些常見的場景有:
- 員工排班
- 車輛路徑選擇、貨物路徑選擇、交通路徑選擇
- 教育時間表:排課表、考試日程安排、會議日程安排
- 背包問題:在一個背包(或盒子)里面放盡可能多的東西。
一個規劃通常都包含了一系列的約束、限制或條件。這些約束一般包括如下三類:
- 硬約束(負面的):不能違反的條件。比如一個老師同時只能教一節課。
- 軟約束(負面的):盡量不要違反的條件。比如,A老師不喜歡在周五下午上課。
- 獎勵(正面的):盡量優先滿足的條件。比如,B老師喜歡在周一上午上課。
上述約束說明了規劃方案的打分方法。可以通過drools規則引擎來完成靈活的增減打分規則。
一個規劃問題,可以有很多解決辦法,每個解決辦法都會根據上面的約束(打分規則)獲得一個分數。一般有三種類型的方案:
- 可能方案:這種方案,可以遵從也可以違反上述約束。因此數量很大(可能是不是笛卡爾積這樣的情況,那太恐怖了,如果是這樣,問題復雜時的可能方案(備選方案)過多,會不會導致planner崩潰呢?)。
- 可行方案:這種方案,不會違反硬約束,所以是可行的。數量較少,是可能方案的一個子集。但是有些規劃問題可能沒有可行方案。
- 優化方案:這種方案,是所有可能方案中得分最高的一個或多個方案。它,可能不是一種可行方案。
drools planner 支持幾種搜索算法可以有效地評估計算各種可能方案,并且,通過修改配置,可以簡單方便的更換搜索算法。
planner的現狀
drools planner 是基于ASL(apache軟件許可)的開源軟件。
planner的安裝配置
到http://jboss.org/drools/downloads下載,解壓到一個目錄,即可完成安裝。
在安裝目錄,運行 runExamples.bat
---------------------
Drools and jBPM consist out of several projects:
Drools Guvnor (Business Rules Manager)
Drools Expert (rule engine)
jBPM 5 (process/workflow)
Drools Fusion (event processing/temporal reasoning)
Drools Planner (automated planning)
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!