2012-09-10 27 views
1

我正忙着用Drools策劃者,因爲最終我需要形成一個名冊解決方案。我從Drools Planner user guide開始,我成功地在Eclipse中運行示例。試圖瞭解簡單和HardAndSoft分數類型之間的差異,我試圖修改NQueens示例,將分數從Simple更改爲HardAndSoft。Drools策劃者:將SimpleScore改爲HardAndSoftScore

我做了如下:

  1. 在我設置<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>的nqueensSolverConfig.xml。

  2. 在NQueens.java:

    • 我設置public class NQueens extends AbstractPersistable implements Solution<HardAndSoftScore> {...}

    • 我改變SimpleScore相關的屬性和方法爲對應HardAndSoftScore成員:

    私人HardAndSoftScore hsScore;

    public HardAndSoftScore getScore(){ return hsScore; }

    public void setScore(HardAndSoftScore score){ this.hsScore = score; }

但是當我運行我收到以下消息解決方案:

"The scoreString (0) doesn't follow the 999hard/999soft pattern." 

有什麼不對?

回答

0

你會仍然在你的求解器配置有這樣的:

<termination> 
    <scoreAttained>0</scoreAttained> 
</termination> 

寫在求解器配置的任何得分必須在分數定義的格式,所以像這樣:

<termination> 
    <scoreAttained>0hard/0soft</scoreAttained> 
</termination> 

注意:您可能是通過查看「真實」的例子之一,如課程安排或護士名冊,而不是N皇后。