2014-09-04 54 views
0

我在探索optaplanner,我發現它給了我一個最好的解決方案以及一些得分值,比如-4Hard/-3hard。optaplnner得分不滿足條件限制

我想獲得更多關於此分數的信息,例如列出在給定解決方案中不滿足的軟硬約束,以便用戶能夠稍微更改約束以獲得更好的解決方案。

optaplanner有可能嗎?如果是的話,怎麼樣?

+0

是的,見文檔節[在解釋得分](http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/index.html#explainingTheScore)。 – 2014-09-05 06:20:11

+0

@GeoffreyDeSmet,它的所有關於如何計算得分值,我沒有找到任何部分是指定關於不滿意的約束信息,你能指出一些例子嗎? – 2014-09-23 06:42:07

+0

爲什麼「5.5。解釋分數:使用求解器以外的分數計算」部分爲什麼不夠? – 2014-09-23 09:57:55

回答

0

您的硬/軟分數取決於您的實施。

CloudBalancingEasyScoreCalculatorsee docs)來自Optaplanner中的例子。 你看到分數實際上是累積和。 Optaplanner沒有機會知道在該總和中考慮的每個約束的細節。 沒有定義一組約束。我們只是把它們作爲全球目標。

解決方案1 ​​:在這種情況下,解決方案是在計算您的分數時跟蹤自己無法預料的約束條件。

在同樣的例子,你會在這裏插入此處理:

 // Hard constraints 

     int cpuPowerAvailable = computer.getCpuPower() - cpuPowerUsage; 

     if (cpuPowerAvailable < 0) { 

      hardScore += cpuPowerAvailable; 

      cloudbalance.trackUnrespectedHardConstraint(...) 


     } 

,而不是

 // Hard constraints 

     int cpuPowerAvailable = computer.getCpuPower() - cpuPowerUsage; 

     if (cpuPowerAvailable < 0) { 

      hardScore += cpuPowerAvailable; 

     } 

我沒有探索Drools的得分配置,可能是一個解決方案2您的需求, 。

希望這會有所幫助。

ThePolyscope.com