2013-10-05 55 views
0

我們在curriculumcourse問題OptaPlanner的XML文件中添加負軟約束設定爲正值軟約束(獎勵),像如何Optaplanner的curriculumcourse XML文件

<unavailablePeriodPenaltyList id="737"> 
    <UnavailablePeriodPenalty id="738"> 
      <id>0</id> 
      <course reference="66" /> 
      <period reference="678" /> 
    </UnavailablePeriodPenalty> 
</unavailablePeriodPenaltyList> 

但如何在XML文件中添加正軟約束的curriculumcourse問題?

哪個XML標籤用於那個?

積極軟約束例如:教師乙喜歡在週一早上

回答

1

教出的現成的curriculumcourse例如只支持一些限制的(見完整列表文檔)。你提到的一個新的不是其中的一部分。但是很容易添加(假設你是Java程序員):

下面是計分規則的樣子:

// Availabilities: Each lecture in a period unavailable for that course. 
rule "unavailablePeriodPenalty" 
    when 
     $unavailablePeriodPenalty : UnavailablePeriodPenalty($course : course, $period : period) 
     $lecture : Lecture(course == $course, period == $period) 
    then 
     scoreHolder.addHardConstraintMatch(kcontext, -1); 
end 

同樣,你可以定義:

  • 一個FavoritePeriodReward.java域對象(也CurriculumCourseSchedule添加列表吧)

  • XML元素<FavoritePeriodReward>

  • 和獎勵它的分數規則。

例如:

rule "FavoritePeriodReward" 
    when 
     $reward : FavoritePeriodReward($teacher : teacher, $period : period) 
     $lecture : Lecture(teacher == $teacher, period == $period) 
    then 
     scoreHolder.addHardConstraintMatch(kcontext, 1); // +1 instead of -1 
end