制約のタイプ

行制約の制約タイプとしては、下テーブルに示す4種類です。



必ず設定しないといけない項目



パターン最初の曜日タイプ・最後の曜日タイプ

オプションです。ブランクでも構いません。

■記述する場合、空集合は禁止です。
■最初の曜日タイプが設定されている場合、シフトパターン0が、マッチした場合に、制約が有効になります。
■最後の曜日タイプが設定されている場合、シフトパターン最後のパターンがマッチした場合に、制約が有効になります。
■最初と最後に曜日タイプが設定されている場合、両方のパターンがマッチした場合のみ、制約が有効になります。



Day集合の確認

曜日集合記述部のマウス中ボタン(マウスホイールを押します)クリックでカレンダが出現します。



グループ集合の確認

グループタイプ記述部のマウス中ボタンクリック(マウスホイールを押します)でツールチップが出現します。



時間制約

時間制約は、最大ー最小時間 を選択します。
■パターン 1個のパターンを記述します。複数パターンは禁止です。
■最大・最小のいずれか、または両方に時間が記載されている必要があります。
■ソフト制約は、サポートしていません。
■最初と最後に曜日タイプは、記述禁止です。



整数計数制約

■整数計数制約は、シフトまたは、フェーズオブジェクトのカウント数(整数)を計数する制約です。
■パターン 1個のパターンを記述します。複数パターンは禁止です。
■最大・最小のいずれかまたは両方に時間が記載されている必要があります。
■否定(✓)はサポートしていません。
■ソフト制約を、サポートします。
■計数対象は、カウント数を記載する必要があります。また、正しく計数為には、集合は、排他的集合である必要があります。



ベクトル化最大・最小

■最大ー最小パターンまたは、整数計数制約に適用可能な記述方法です。
■スタッフ定義の中で正の整数のみで記述されたグループの属性項目が対象となります。空白は許容されます。その場合、そのスタッフの制約は生成されません。



同値カウント制約



■ΣAi==ΣBi が目標となるように制約されます。
■ソフト制約もサポートされます。allowable errorsについては、不等式制約の偏差 と同じ扱いとなります。



数値オフセットオプション

数値オフセットをオプションとして付加できます。

■ΣAi==ΣBi+offset が目標となるように制約されます。



上図では、
長日勤数==入り数-1
に制約しています。



整数同数カウント



演算子は、
 ==(等しい)
 >=(以上) 
 <=(以下)

の3種類が可能です。



同数カウントとの違いは、シフトで、整数カウント値が定義されていることにより、各々係数となります。

■ ΣACoff[i]*A[i] 演算子 ΣBCoff[i]*B[i]+Offset

と制約されます。
上図では、

長日勤<=2*非番数+半休+入り数

と制約されます。

制約内で、使用する全てのシフトでカウント値を定義してください。



フェーズパターン



■上段がタスクパレット 下段がシフトパレットになります。
■1個以上のタスクを記述する必要があります。シフトはオプションです。なくても構いません。
■シフトがあるとき、上フェーズパターンに対してANDとして動作します。
■最初の曜日タイプ・最後の曜日タイプは、無効です。
■タスクのNOTオペレータは、NoTaskVarのみ可能です。



タスクカウント

次は、フェーズに関係なくタスクをカウントする制約の例です。

■タスクは、フェーズ0のみに記述します。
■シフトがあるとき、上フェーズパターンに対してANDとして動作します。
■最初の曜日タイプ・最後の曜日タイプは、無効です。
■タスクのNOTオペレータは、NoTaskVarのみ可能です。



■シフト部は、1個のシフトまたはシフト集合のみサポートします。シフトのNOTオペレータもサポートします。シフトが記述されたときANDとして動作します。



タブの管理

タブの色や順序等が変更可能です。