Skip to content

Latest commit

 

History

History
132 lines (58 loc) · 4.84 KB

README.md

File metadata and controls

132 lines (58 loc) · 4.84 KB

logo1

English README is here

概要

有償ソフトウェア、スケジュールナース上で動く、塾講師のシフト作成問題を解くプロジェクトです。 オリジナル問題は、Qiitaでの記事、Google OR-Toolsによる最適化プロジェクト入門です。



スケジュールナースのインストール

スケジュールナースは、Windows10/11で動く、有償ソフトです。480円/月(2024 12月現在)

インストールサイトでインストールします。



使い方

  1. GithubViewerを開きます。
  1. 本サイトが出てくるまで Nextを押します。
  1. 本プロジェクトをダウンロードします。
  1. プロジェクトに名前を付けて保存します。
  1. 求解ボタンを押します。



モデル化

空きコマを出来るだけ少なくしたい

当該制約とは無関係な出勤ペナルティ発生部(行制約:3)をオフにします。(当該ソフト制約のチェックを外して求解します。) また、勤務シフト希望が変わらないように、予定の重みを重くします。

出勤日数を出来るだけ少なくしたい

題意より、ソフト出勤希望を全てオフにしています。また前述の空きコマのペナルティをオフにして求解します。



実装

シフト形態

シフト形態は、規定されていないのですが、4コマ、3コマ、2コマ連続の全てのパターンがあり得る、と想定しました。(1コマ単独は禁止を想定)

目的のペナルティを発生させている部分の制約は、以下です。

空きコマ時間

出勤(休みの否定)

予定入力

全セル、レベル1に制約しています。

塾講師人数

毎週、各曜日では、必要人数は変わるので、次の表で定義します。



アルゴリズム

下記アルゴリズムの選択が可能です。

各アルゴリズムの開発元と概要は以下です。



シフト解例

タスク解例

シフト・タスク解例