どうにも、当初の目論見通りに行かずに、結局元の定義に戻すことにしました。
新しくアルゴリズムを考えたものの、結局、元のアルゴリズムを凌駕できずに、元のアルゴリズムに戻ることにしました。現在のアルゴリズムとソルバが最強である、ということを改めて認識しました。
とはいえ、部分的な改善は可能であるので、並列化によって、少しだけ改善可能な場合は出てきます。HIGHSをどのようにするか等、全体をどのようにするかは未だ決めていませんが、とりあえず、SAT系の並列化の評価中です。
どうにも、当初の目論見通りに行かずに、結局元の定義に戻すことにしました。
新しくアルゴリズムを考えたものの、結局、元のアルゴリズムを凌駕できずに、元のアルゴリズムに戻ることにしました。現在のアルゴリズムとソルバが最強である、ということを改めて認識しました。
とはいえ、部分的な改善は可能であるので、並列化によって、少しだけ改善可能な場合は出てきます。HIGHSをどのようにするか等、全体をどのようにするかは未だ決めていませんが、とりあえず、SAT系の並列化の評価中です。
これは、あくまで自動勤務割り付けに関する 一般則です。自動割り付け以外の予定入力を前提としている場合は、これに当てはまりません。
例で説明します。
次のブランク勤務表では、目的関数値が0になっていません。これは、
「ブランク予定時、エラーなし、UB=0であること」の原則から逸出しているように見えます。
一番上の図は、非常勤リソースを活用していないので明らかなリソース不足となります。その結果が目的関数値に現れたと考えられます。
常勤医の予定をプラスしてみると、いつものようにUBは上昇します。
Algorithm1以外は、殆ど使うことはないと思いますが、一応の回答です。
なお、AL2に関しては、HighsのUpdateを予定しています。これにより中途で止めてもそれまでのbest解(incumbent )を出力するようになります。
最適値に到達したことは、どのようにすればわかるのでしょう? (nurse-scheduling-software.com)
海外の方の質問と回答を和訳しました。
求解パラメータの各意味と、その設定が及ぼす効果・影響について教えてください (nurse-scheduling-software.com)
英語FAQSは、こちら。
ありません。あり得るのは、OR かNOTの2種のみです。
シフト集合の要素は、シフトのみであることに注意してください。任意のシフトの集合は、ORのみで表現できます。
例えば、A,B,Cというシフトがあったとき、
A,B,CのORは、(A,B,C)
A,BのORは、(A,B)
A,BのNOTは、(C)
もし、AND オペレータを用意したとしても、
A,B,CのANDは、()空集合
A,BのANDは、()空集合
A,AのANDは、(A)
となり、自分自身のANDを取ったときだけ、自分自身になりその他は、空集合となります。
これに対して、DAY集合と、グループ集合は、各々DAY集合、グループ集合に対するオペレータを用意しています。つまりDAY集合の要素は、DAY集合がありえます。同様にグループ集合の要素は、グループ集合もありえます。集合同士の演算をするときだけANDは意味を持ちます。
シフト集合の要素は、シフトのみで、シフト集合を許容していないので、AND操作は用意していません。
シフトは、1スタッフ1日あたり必ずどれか1個が割り当てられます。0個でも、2個以上でもなく必ず1個という特別な性質にしています。これにより内部で行う算術演算を容易にするという深い設計意図があります。
結論を申しますと、混乱を避けるために敢えて用意していません。
Ans.
下記のように、ダブルクリックでプロジェクトを開くことが出来ます。同じプロジェクトファイルに対して、複数回おこなうと、ダブルクリックした分、(知らない間に)スケジュールナースが開いてしまいます。ビギナの方のよくある問題の一つです。
原因
Excelがプロセスとして残っている場合に発生するようです。(Excelが残る原因は、エラーが発生した場合等) ツールバー上ではExcelが起動していないように見えても、プロセスとして残っている場合があります。
現象として
■スケジュールナースが終了しない Excelが出力中のままの状態。
■スケジュールナースでのExcel起動がエラーとなり出来ない。
があります。こうした場合の対処方法です。
下記のようにタスクマネージャを開いて、Excelを「タスクの終了」で終了させます。