こちらは、英文を和訳した回答を記載しています。
マニュアルが整備されていなくて申し訳ありません。 説明の都合上、順不同で回答します。 また、例で用いたプロジェクトは、以下です。
https://www.nurse-scheduling-software.com/manuals/python_manuals/chapter15/
Change Algorithm
Algorithm1-4まであります。Defaultは、Algorithm1です。殆どのプロジェクトでは、Algorithm1が、最速・安定・適切です。後ほど述べるのように、原因解析機構が付いているのはAlgorithm1のみですので、最初は、Algorithm1の使用し、プロジェクトをデバッグすることをお勧めします。
Algorithm1は、SAT ヒューリスティック系による実装です。準最適解を高速に出力します。
Algorithm2は、オープンソースMIPソルバ、エジンバラ大学ジュリアンホール教授らによるHighsです。厳密解が見つかるまで終了しません。
Algorithm3/4は、数理ソルバによる実装です。主に、アカデミックベンチマーク用途になります。厳密解が算出できるまで終了しません。
Number Of Solutions
解の個数を指定します。有効なのは、Algorithm1のシフトプロジェクトのみです。タスク付きプロジェクトでは無効です。通常は1でよいでしょう。
次の例では、10を指定して、10個の別解を得ています。
Number Of CPUs
Algorithm1にて使用するCPUの個数です。Algorithm2は、CPU数は、1固定、Algorithm3/4では、利用可能な全てのCPUを使用します。
残念ながら、複数のCPU数を指定しても、常に改善するという訳ではありません。求解毎に異なる結果となるので、1で良いと思います。
Hard Timeout
Algorithm1の求解プロセスは、二つに分かれています。
一つ目は、全てのハード制約を満たす解を見つけるプロセスになります。通常、数秒内にこれを見つけ出しますが、60秒を超えるプロジェクトもまれに存在します。
特に大規模になればなるほど、この傾向は強まります。Hard Timeoutの値は、規模に応じて大きくする必要があります。
Soft Timeout
2番目のプロセスは、ソフト制約の最適化です。このプロセスでは、右ペイン上に数値が表示されます。
一番目のハード制約を満たす求解プロセスが終了した後に、最適化プロセスが始まります。
下の例では、最適化は、目的関数値176、時間0.013秒からスタートし、徐々に減少する様子が表示されています。 最初の最適化解が出てくるまでが、0.013秒なので、この例の場合、Hard Timeoutは、0.013秒あれば十分、ということになります。
最適化プロセスでは、内部的にいくつかのフェーズに分かれており、各々のタイムアウト時間がSoft Timeout になります。通常は、10秒-20秒に設定すればよいでしょう。
Final Soft Timeout
最適化プロセスにおける最終フェーズのソフトタイムアウト値になります。
ソフトタイムアウトは、長くすればするほど、厳密解に近づきます。必要に応じて調整してください。
Use Language Constraint
Python制約を使う場合にチェックしてください
https://www.nurse-scheduling-software.com/manuals/python_manuals/
Python Post Operation
Pythonで、解を整形出力したい場合にチェックしてください。(Use Language Constraintのチェックも必要です。)
Python制約とは、別のプロセスになります。
例えば、搭載Pywin32を用いて、以下のようにExcelシートにユーザ独自フォーマットで解を出力することが出来ます。
Overwride allowable errors on Python
次のPython制約関数において、allowable errorsは、言語で固定されていて変更することは出来ません。
■sc3.SeqError(min,max,allowable_errors,list)
■sc3.SoftSeqComp(offset,allowable_errors,listA,listB)
■sc3.SoftLinearComp(eq_mode, CoffA, CoffB, offset, allowable_errors,listA,listB);
しかし、Python許容エラーオーバライドをオンすると、求解パラメータの許容エラーの値が
オーバライドされます。これにより、Pythonソースをいじらなくても、許容エラーを可変することのが可能になります。
下の例では、Pythonソース上は、4の許容エラーをGUIで1にしています。Python許容エラーオーバライドをオンすると、求解パラメータの方が優先され、許容値は1となります。 つまり、4±1にハード制約化することになります。結果、解もその範囲に収まっていることが分かります。
Error Analysis
原因解析を行います。Algorithm1のみ有効です。チェックしてください。
チェックすると原因解析機構が働きます。
例えば、上の例の続きで、予定入力をハード制約として、Pythonの制約の許容エラーを0としてみます。
すると、全てがハード制約となります。その結果制約の矛盾により解が存在しなくなります。
しかし、原因解析が働き、下図のように、要因をヒントとして列挙することが出来ます。
ダブルクリックすることで、当該制約箇所にジャンプします。
Other Items
その他の項目については、Obsoleteです。Defaultの状態としてください。