OptaPlanner デモ例 (NurseRostering アプリケーション) の 1 つに実装されている Drools ルールを理解する上で問題に直面しています。以下のルールがどのように機能するかを誰でも説明できますか:
// a nurse can only work one shift per day, i.e. no two shift can be assigned to the same nurse on a day.
rule "oneShiftPerDay"
when
$leftAssignment : ShiftAssignment($leftId : id, $employee : employee, $shiftDate : shiftDate)
$rightAssignment : ShiftAssignment(employee == $employee, shiftDate == $shiftDate, id > $leftId)
then
insertLogical(new IntConstraintOccurrence("oneShiftPerDay", ConstraintType.NEGATIVE_HARD,
1,
$leftAssignment, $rightAssignment));
end
ルールの説明とその実装方法について詳しく説明しているリソースはありますか? オンラインや本でいくつかの例を確認すると、非常に理解しやすいと思いますが、Drools で提供されているサンプルを確認すると、アイデアを得ることができません。