2020年7月9日木曜日

vectored max/min 

上青部の最大最小は、マクロではありません。スタッフプロパティのグループ属性での値です。
スタッフ毎にMax/Minは、変えたい、それでいて制約名は同じとしたい、ということが出来るようになりました。Pythonでは、既に可能ですが、GUI上でも可能になりました。Pythonでは、浮動小数もサポートしますが、GUIでは、整数のみのサポートです。グループ属性で整数のみを記述すると選択できるようになります。

2020年7月8日水曜日

シフト整数計数のサポート

フェーズオブジェクトのみならず、シフトにも整数計数を実装しました。これにより、時間制約を使う必要がなくなりソフト制約化が可能になります。ソフト制約の単位は1(半日単位)です。上の場合、AMのみの場合が1、PMのみの場合が1、日勤(AM・PM両方)の場合2に設定しています。WAPは、これらのOR集合です。WAPに対する基数制約になります。このとき、シフト集合は、常に排他論理を満足するので、チェックはしていません。(Activeになるシフトは常に一つ/Day) 通常22日制約ですが、1日出勤すると2となるので、全体を44で制約しています。
 

2020年7月7日火曜日

世界記録更新

ナーススケジューリング業界で有名なTim Curtoisさんから返事を頂きました。光栄です。(ちょっと上から目線が感じられますが) ノッティンガム大学かと思ったのですが、所属は、商売敵のstaffrostersolutionsでした。やはりスピンアウトカンパニーのようです。HiGHsにしてもエジンバラ大学のJulian教授が率いてますし、基礎分野はイギリスが強い印象です。

Thank you very much for updating me with the new result. I have just
updated the website with the new information. It is nice work. Well done.
Please let me know if you have any new results and I will update the
website.
ということで、こちらプレスリリースをご覧ください。

2020年7月4日土曜日

Benchmark Result更新

WEBページを更新しました。LBは世界記録をとっくに突破していたのですが、思わぬ難敵が現れてUBが更新されてしまっていたので、とりあえずタイ記録を確認するまで、報告していませんでした。が、今回、UBのタイ記録を確認したので、schedulingbenchmarks.orgに報告しました。
(LBの証明は、難しく信じてもらうしかありません。)

付録として、こぷと1.2を含めたLP Solversの評価結果を添付しています。こぷと1.03と比較して、若干改善が見られましたが、CLPと比較して見るべきものはありませんした。 

2020年7月2日木曜日

アルバイトの勤務表ソフト構想

<折角の能力を範疇を広げてもっと使ってもらえるようにするには?>

ナーススケジューリングの場合は、シフトがKeyでした。一方、アルバイトの場合は、時間毎の場合が殆どで、シフトという明確な概念がない場合もあります。この対応をどうするかということを解決する必要があります。

で、シフトとフェーズの対応を考えたのが次です。フェーズとシフトは無数とも言える対応が可能ですが、予めフェーズ数に応じてシフトとの対応を定義しておきます。こうすると、これをベースに考えるように自然に誘導出来ます。(シフトとフェーズの対応は意外に難しく、何かテンプレートがあった方がよいようです。私自身、記述してみてシフトを使わずにフェース変数で記述してみたのですが、
シフトを使った方が自然な考え方のような気がしています。制約のデザインパターンと言うべきかもしれません。)

こうしたテンプレートを用意しておくことで、見かけ上記述が
簡単にでき、Excel上で、日毎のスタッフ要求数の表を用意するだけで、そのまま使えるようになります。(実際は、制約があって、自動割り当てとするには、あれこもこれもは..後から行制約として記述しないといけないのですが。それは、ユーザが追加することになります。シフトとして行制約として記述してもよいし、それでも足りなければフェーズ変数を定義することもでき,さらに、それでも足りなければPython..と無限の拡張記述能力を持つことががSC3の特徴です。)


1Phases 
1
2 
2Phases  
1
2 
3 
4  
3Phases   
1
2 
3 
4  
5  
6  
7    
    
4Phases    
1
2 
3 
4 
5  
6  
7  
8  
9   
10  
11    
5Phases     
1
2 
3 
4  
5  
6  
7  
8   
9   
10  
11     
6Phases      
1
2 
3 
4 
5  
6  
7  
8  
9   
10  
11  
12   
13   
14   
15   
16      

2020年7月1日水曜日

フェーズ列表示改善

フェーズを用いたときの表示を改善しました。フェーズは、Dayの分割概念です。フェーズ毎の表示とDay毎の表示をきちんと分離しました。元々制約毎にフェーズに対する制約か、シフトに対する制約(Day)か、分かれていましたので自然な表示となりました。