2023年8月23日水曜日

時間割タスク版

タスクカウント、ペアフェーズが動くようになったので、時間割シフト版をタスク版に書き換えてみました。 

時間割作成問題タスク版 (nurse-scheduling-software.com)

なお、ダウンロードしてもバージョンが高いので読み取れない、が出ると思います。8月末までお待ちください。

2023年8月22日火曜日

ペア制約のフェーズモードサポート

 8月末のリリースからサポートします。

タスク指定とフェーズ指定、フェーズオフセットが指定出来ます。





2023年8月20日日曜日

タスクカウント新設

 タスク勤務表のフェーズ行制約について新設しました。


最大ー最小パターンでのフェーズは、意味があります。
それに対して、タスクカウントでは、フェーズ0のみに記述します。フェーズは意味がなく、強いて言うと、AnyPhaseということになります。挙動の違いは、以下を見ると明らかです。

シフトとのANDを取ることも可能です。


松本さんの国語は、総計3個です。制約は、シフト123以外で2個で、その通りになっています。



タスクカウントにおいて、

■複数パターンは禁止

■Notオペレータは、NoTaskVar以外禁止

■パターン最初の曜日・最後の曜日 サポートしていません

■シフト部は、オプションです。シフトまたは、シフト集合のみでフェーズオブジェクトはサポートしません。NOTオペレータはサポートします。




2023年8月19日土曜日

グループ集合要素として、シフトとタスクが記述可能に

 スタッフ毎のシフトとタスクが次のように定義されていたとします。


このシフトとタスクをグループ集合要素として記述できるようになります。

ただし、この実装から、グループ集合名と、グループ要素は、シフト名・タスク名の重複は禁止となります。


2023年8月18日金曜日

先月部の予定エラーを回避するオプション追加

 スタッフプロパティのシフトとタスクはハード制約です。今月から、シフトや、タスクが切り替わって、テーブルの記述を変えたとすると、先月部の予定でハードエラーとなってしまう問題がありました。

この回避方法が比較的面倒なため、機械的に回避できるオプションを追加しました。

現在のシフトとタスクの状態が次であるとします。









求解すると次のようなエラーが出ました。


ダブルクリックしてエラー箇所を表示させます。
シフト123は、Enableされていないのでエラーとなりました。(先月までは、シフト123がありましたが、今月からシフト変更となりシフト123は無くなりました。)

このエラーを回避するオプションで、次をチェックし設定ボタンを押します。


先月部の矛盾する予定は、ソフト化されます。


求解してみると、今度は次の箇所でハードエラーとなりました。

ダブルクリックしてエラー箇所を見ます。先月部の国語が問題でした。
(今月から国語は外されました。)

このエラーを回避するには、次をチェックします。






次のように予定がレベル1にソフト化されます。











2023年8月17日木曜日

ソフト予定制約を優先としない、オプション追加

 次の画面では、シフト123をEnableしていないにも拘わらず、解でシフト123がアサインされています。


これは、ソフト予定の方を優先度を高くしてあるからです。

しかし、スタッフプロパティのシフト予定は、ハード制約というポリシーに反しているので、これを修正することにしました。

今までの挙動を維持したい場合は、チェックを外してください。(8月末リリースよりチェック付きがDefaultとなります。)