9.3. スコア制約レベル
場合によっては、スコア制約が何度破られたとしても、スコア制約が別のスコア制約よりも優先されることがあります。この場合、それらのスコア制約は異なるレベルにあります。たとえば、看護師は物理的現実の制約のため、同時に 2 つのシフトを勤務することができないため、この制約は看護師の幸福に関するすべての制約よりも優先されます。
ほとんどのユースケースには、ハードとソフトの 2 つのスコアレベルしかありません。2 つのスコアのレベルが順番に比較されます。最初に最初のスコアレベルが比較されます。2 つのスコアが異なる場合、残りのスコアレベルは無視されます。たとえば、0 個のハード制約と 1000000 個のソフト制約を破るスコアは、1 つのハード制約と 0 個のソフト制約を破るスコアよりも優れています。

2 つ以上のスコアレベルがある場合、厳しい制約が破られなければ、スコアは 実現可能 です。
デフォルトでは、OptaPlanner はすべての計画変数に計画値を割り当てます。実行可能な解決策がない場合、最適な解決策は実行不可能であることを意味します。一部の計画エンティティーを未割り当てのままにするには、過剰制約計画を適用します。
制約ごとに、スコアレベル、スコアの重み、およびスコアの符号を選択する必要があります。たとえば、-1soft は、スコアレベルが Soft、重みが 1、および負の符号を持ちます。ビジネスで実際に異なるスコアレベルが必要な場合は、大きな制約の重みを使用しないでください。スコアの折りたたみ として知られるこの回避策は壊れています。

ビジネスでは、ハード制約は破ることができないため、重みはすべて同じであり、したがって重みは問題ではない、と言われるかもしれません。これは事実ではありません。特定のデータセットに対して実行可能なソリューションが存在しない場合、企業は実行不可能性が最も低いソリューションを使用して、不足しているビジネスリソースの数を推定できます。たとえば、クラウドのバランスの問題では、実行不可能性が最も低い解決策によって、新しいコンピューターが何台必要であるかを明らかにできます。
さらに、すべてのハード制約の重みが同じである場合、スコアトラップが作成される可能性があります。たとえば、クラウドバランシングの問題では、コンピューターのプロセスに搭載されている CPU が 7 つ少なすぎる場合、CPU が 1 つしか搭載されていない場合の 7 倍の重み付けが必要になります。
OptaPlanner は 3 つ以上のスコアレベルもサポートしています。たとえば、企業は、両方の制約が物理的現実の制約よりも優先されているにもかかわらず、利益が従業員の満足度よりも優先される、またはその逆であると決定する場合があります。
OptaPlanner は多くのスコアレベルを処理できますが、公平性や負荷分散をモデル化するために、多くのスコアレベルを使用する必要はありません。
ほとんどのユースケースでは、HardSoftScore や HardMediumSoftScore など、2 つまたは 3 つの重みを持つスコアを使用します。これらのテクニックはすべてシームレスに組み合わせることができます。
