使い方
- 従業員数を入力します
- 1日に出勤すべき人数を入力します
- スケジュールを作成したい期間を指定します
- スケジュール作成ボタンで自動でスケジュールが作成されます
- ▽をクリックして、スケジュールを個別に修正することができます
出勤が○、休みが×で表示されます
従業員数を7人、出勤人数を5人とした例では、5/1はクルー1が出勤、クルー5が休み、のようになります
スケジュールは作成ごとに異なるものができます
5/3のように、指定した出勤人数と生成された出勤人数が異なる場合があります
が、従業員数と出勤人数が近い場合に起きやすいです
ソースコード
仕組み
遺伝的アルゴリズム(Genetic Algorithm: GA)を利用してスケジュールを作成しています
GAとは生物の進化を模倣したアルゴリズムです
答えの候補(個体)を遺伝子として表現し、その遺伝子が環境に適応しているかを評価します
適応している答えの候補が生き残り、次の世代に遺伝子を残します
世代を繰り返すことで、よりよい答えを見つけます
今回のスケジュールの自動生成では、
- 個体:スケジュール案(○○○××○○×... のような遺伝子配列を持つ)
- 環境:出勤人数を満たしているかどうか、連勤が少ないかどうか
のように設定しました
さいごに
遺伝的アルゴリズムを使ってスケジュールを作成する方法は昔からありますが、まだ実用化が少ないように感じます
バイトのシフトを組むのはとても大変で時間を要します
このような技術で負担が減ればいいなと思います