簡體   English   中英

Optaplanner:我們可以將兩個計划變量與(nullable = true)一起使用嗎?

[英]Optaplanner: Can we use two planning variables with (nullable = true)?

我們是否可以對每個使用兩個計划變量(nullable = true)

如果是這樣,我們如何在Drools規則文件中處理它們?

我知道,當我們使用一個計划變量時,我們用(nullable = true)對其進行定義,然后在規則中使用$ planningVariable!= null,如“ pas ”示例中所示,我嘗試了此方法並且效果很好,但是使用兩個計划變量?

我們可以在課程課程中應用嗎? 如果是這樣,那么過度約束的數據應該在輸出中顯示為兩個計划變量未分配,還是僅出現在其中一個?

是的,當然可以。 但是像往常一樣,您必須確保您的分數限制(=分數規則)會懲罰/獎勵您想要達到的目標。

例如,在CurriculumCourse上,我假設您有一個負面的中等約束條件,如果roomperiodnull則該罰則將對Lecture處罰。 如果兩者都為null ,請不要再對其進行懲罰,否則您將得到大量半分配的實體。 但是盡管如此,您仍然可能會得到一些半分配的實體,因此要解決此問題:

  • 要么做一些后期處理,以使所有根本沒有分配的變量都變為半賦值是沒有用的(= vars null )。
  • 或對半賦值添加硬約束,以完全避免半賦值(即使在中間解決方案狀態下也是如此)。

可以從以下方式獲得有效的附加解決方案:

  • 一個同時移動房間和周期的ChangeMove選擇器,因為僅將一個更改為null或從null更改都不會產生更好的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM