第9章 OptaPlanner のビジネス制約

ビジネス制約は、シナリオ内の条件を制限するために使用されます。条件は、既存のビジネス契約、リソースの可用性、従業員の好み、またはビジネスルールに基づく場合があります。OptaPlanner でビジネス制約を実装するには、ビジネス制約をスコア制約として形式化する必要があります。OptaPlanner で使用できる次のスコアプロパティーは、柔軟なソリューションを提供します。

  • Score signum: 制約タイプを正または負にします
  • スコアの重み: 制約タイプにコストまたは利益を設定します。
  • スコアレベル (ハード、ソフトなど): 制約タイプのグループに優先順位を付けます。
注記

ビジネスがすべてのスコア制約を事前に知っているとは考えないでください。最初のリリース後にスコア制約が追加、変更、または削除されることが予想されます。

9.1. マイナスおよびプラスのスコア制約

すべてのスコア手法は制約に基づいています。制約には、ソリューション内のリンゴの収穫量を最大化する などの単純なパターン、またはより複雑なパターンを使用できます。制約は負または正のいずれかです。正の制約は、最大化したい制約です。負の制約は、最小化したい制約です。

正の制約と負の制約

このイメージは、制約が正か負かに関係なく、最適解が常に最高のスコアを持つことを示しています。

ほとんどの計画問題には負の制約しかないため、負のスコアになります。この場合、スコアは破られた負の制約の重みの合計であり、完全スコアは 0 です。たとえば、N クイーン問題では、スコアは、互いに攻撃できるクイーンペアの数のマイナスになります。同じスコアレベルであっても、負の制約と正の制約を組み合わせることができます。

ネガティブな制約が破られるか、ポジティブな制約が満たされるために、特定のプランニングエンティティーセットに対して制約がアクティブ化されることを、制約の一致 と呼びます。