2022年7月17日日曜日

塾勤務表(塾の時間割問題)の更新 All Exports

 Github上のプロジェクトを更新しました。

このプロジェクト上で、All Exportsの説明をします。

適当に名前をつけてプロジェクトを保存してください。

その後、Exportします。

で、ExportしたExcelシートを覗いてみます。
最初のシートは、期間の設定で、これを同名のスケジュールナース表をExportしたシートになっています。このプロジェクトの場合、表示開始日と制約開始日が同じです。注意するべきは、全てのDay基準は表示開始日になっている、ということです。

ですので、例えば、次週の勤務表を作るには、表示開始日を11月8日にして、同じ日に制約開始日を設定してやればよい訳です。

しかし、そのように設定したとしても、予定基数制約のシートの日付は同じです。
Exportは、単なる文字列として出力しているからです。

仮にこの状態でインポートしても、問題なく、ロードされます。ヘッダ部分は読んでいないからです。あくまで中身は、11月8日からのデータとしてロードされます。
それでは、気分が悪いという方は、ご自分でヘッダフォーマットを変えてください。
予定に関しては、行列順番が変わらなければ、どのように変えても問題ありません。(読み込まれないので。予定関係以外の一部制約表については、読み込んでいる場合もあります。)

例としてGithub同じフォルダ上に、今週の勤務表.xlsx をアップしてあります。スケジュールナースでは、読み込むことが出来ないので、直接Githubに行ってダウンロードしてください。

さて今週の勤務表は、次のような4シートだけから成るファイルです。

担当科目希望予定(タスク)


各日、各限の課目講師必要人数表



シフト希望表

制約開始日のセルを変えるだけで、全体シートの日付も変わるようにしています。
(これで、気分が良くなりました。)

試しに、シフトとタスクについて、予定をソフトレベル1-7とハード制約で入れてあります。(試しに、基数制約0のところにハード制約予定、例えば国語を予定としてみると、すぐにハードエラーとなり、エラー箇所の指摘が出るので、やってみてください。)

で、このファイルをインポートします。

インポートすると、
ソフト化した予定もしっかり読み込まれているのが分かります。日付も11月15からスタートになっています。

予定をソフト化して、新しいソフトレベルが発生している部分は、適用がブランクになっているので、任意の重みを設定、チェックして求解してください。

適当に重みをつけて求解しました。黄色部分がソフトエラーの部分です。
各重みとエラー個数の和がUB(Upper Bound)と一致していることをご確認ください。(黄色部+予定ソフトのエラーの重みを加算してください。)

以上で説明終了です。

Excel上で、操作したのは、
■制約開始日の設定
■シフト予定
■タスク予定
■各日、各限における各科目の必要人員Max-Min
だけです。

一方、スケジュールナースで操作したのは、
■Excelインポート
■新たなソフトレベルがある場合の重み設定
■求解ボタン

だけです。新しいソフトレベルがなければ、スケジュールナースの方は、インポートボタンと求解ボタンだけです。

制約がFixしているなら、毎月の運用は、上記のような形態で行うことが出来ます。

勿論トレードオフ点を探る場合は、スケジュールナースで重みや予定を変えて数回試行することになりますが、それも慣れてしまえば、ルーチンワークなので、管理者ならば、誰でも出来るようになります。

0 件のコメント:

コメントを投稿