idea中drl文件_得分DRL:在OptaPlanner中更快,更轻松
idea中drl文件
對(duì)于OptaPlanner (= Drools Planner)6.0.0.Beta1,我已經(jīng)用更優(yōu)雅的ConstraintMatch系統(tǒng)替換了ConstraintOccurrence。 結(jié)果是您的DRL評(píng)分文件為:
- 快多了
- 更容易讀寫
- 錯(cuò)誤的發(fā)生率要低得多,因?yàn)樗鼈兪沟梅謸p壞變得更加困難
讓我們先來(lái)看結(jié)果,然后再看代碼可讀性的提高。
快點(diǎn)
“給我看基準(zhǔn)!”
平均計(jì)算計(jì)數(shù) (即OptaPlanner每秒計(jì)算的分?jǐn)?shù)數(shù))已急劇增加。
- N個(gè)皇后:256個(gè)皇后的+ 39%計(jì)算數(shù)量
- 云平衡:平均計(jì)算量為+ 27%
- 車輛路線:平均+ 40%計(jì)算次數(shù)
- 課程安排:平均+ 20%計(jì)算數(shù)量
- 考試時(shí)間表:平均+ 23%計(jì)算次數(shù)
- 護(hù)士花名冊(cè):平均Calc計(jì)數(shù)+ 7%
但是,這不一定意味著結(jié)果會(huì)顯著改善,尤其是如果舊結(jié)果已經(jīng)(接近)最佳的話。 這意味著您可以在更短的時(shí)間內(nèi)獲得完全相同的結(jié)果 。 但是-與所有其他性能改進(jìn)一樣- 無(wú)法保證在同一時(shí)間獲得明顯更好的結(jié)果。 向外擴(kuò)展時(shí)確實(shí)有幫助。
- 云平衡:5分鐘內(nèi)平均軟得分+ 0.58%
- 車輛路線:5分鐘內(nèi)平均+ 0.14%可行軟評(píng)分
- 課程安排:7分鐘內(nèi)平均軟得分+ 2.28%
- 考試安排:7分鐘內(nèi)平均考試軟得分+ 0.53%
30分鐘的車輛路線數(shù)據(jù)集中的幾個(gè)已經(jīng)在5分鐘內(nèi)得到了最佳求解,因此盡管車輛路線加速比很高,但這些平均值卻拖累了平均水平。 所有基準(zhǔn)測(cè)試都使用完全相同的Drools和OptaPlanner版本,因此這些數(shù)字僅顯示ConstraintMatch更改的改進(jìn)。 6.0中還有其他一些改進(jìn)。
平均值如何計(jì)算計(jì)數(shù)范圍?
這是一些圖表,將舊的ConstraintOccurrence與新的ConstraintMatch進(jìn)行了比較。 新的ConstraintMatch的當(dāng)前實(shí)現(xiàn)尚未完全優(yōu)化,因此有時(shí)將其稱為“慢速”模式(即使速度更快)。
CloudBalance:
車輛路線:
課程安排:
考試名冊(cè):
更輕松
“給我看代碼!”
對(duì)于初學(xué)者,將刪除accumulateHardScore和accumulateSoftScore規(guī)則。 更少的樣板。 接下來(lái),每個(gè)計(jì)分規(guī)則的RHS(=然后為side)都比較簡(jiǎn)單:
之前:
rule "conflictingLecturesSameCourseInSamePeriod"when...theninsertLogical(new IntConstraintOccurrence("conflictingLecturesSameCourseInSamePeriod", ConstraintType.HARD,-1,$leftLecture, $rightLecture));end后:
rule "conflictingLecturesSameCourseInSamePeriod"when...thenscoreHolder.addHardConstraintMatch(kcontext, -1);end請(qǐng)注意,您無(wú)需再重復(fù)ruleName或原因(講座)。 OptaPlanner通過(guò)kcontext變量自行計(jì)算。 Drools自動(dòng)在RHS中公開kcontext變量,因此您不需要任何其他代碼。 另外,受限的ConstraintType枚舉已由特定于Score類型的方法代替,以允許OptaPlanner更好地支持多級(jí)得分類型,例如HardMediumSoftScore和BendableScore。 您也不再需要修改API來(lái)獲取所有ConstraintOcurrence的列表:ConstraintMatch對(duì)象(及其每個(gè)約束的總數(shù))可直接在ScoreDirector API上使用。
參考: DRL評(píng)分: Drools&jBPM博客上的JCG合作伙伴 Geoffrey De-Smet提供了OptaPlanner中更快,更容易的方法 。翻譯自: https://www.javacodegeeks.com/2013/04/score-drl-faster-and-easier-in-optaplanner.html
idea中drl文件
總結(jié)
以上是生活随笔為你收集整理的idea中drl文件_得分DRL:在OptaPlanner中更快,更轻松的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 安全盾防火墙(服务器安全盾防ddos)
- 下一篇: JUnit 5符合AssertJ