LoginSignup
12
18

More than 5 years have passed since last update.

勤務スケジューリング問題の最適解をブラウザ上で算出

Last updated at Posted at 2019-02-19

概要:

10人×1週間 程度の制約条件付き勤務シフト表の場合、1秒未満で最適解算出可能。

必要なもの:

  • ブラウザ+ネット環境
  • 制約条件の表(下記のようなCSV)

image.png

入力データのCSV版はこちら
ブラウザ上で上記データをもとに最適解を計算したい方はこちら

実行結果:

CPU times: user 11.2 ms, sys: 3.04 ms, total: 14.2 ms
Wall time: 31.1 ms
目的関数 0.0

   曜日 時間帯                結果
0   月   朝          従業員1従業員5
1   月   昼      従業員3従業員5従業員7
2   月   夜      従業員1従業員3従業員4
3   火   朝          従業員0従業員3
4   火   昼      従業員3従業員5従業員7
5   火   夜      従業員4従業員5従業員8
6   水   朝          従業員0従業員5
7   水   昼      従業員1従業員3従業員5
8   水   夜      従業員3従業員4従業員8
9   木   朝              従業員3
10  木   昼          従業員5従業員7
11  木   夜          従業員8従業員9
12  金   朝          従業員1従業員5
13  金   昼      従業員1従業員7従業員9
14  金   夜      従業員5従業員6従業員8
15  土   朝          従業員0従業員3
16  土   昼  従業員2従業員6従業員7従業員9
17  土   夜  従業員3従業員4従業員6従業員9
18  日   朝          従業員0従業員9
19  日   昼  従業員2従業員3従業員6従業員9
20  日   夜  従業員2従業員3従業員4従業員6

CSVデータ読み込み:

今回はGitHub上にアップロードしたCSVを読み込む形式


a = pd.read_csv('https://raw.githubusercontent.com/zaq9/test_nurse_scheduling/master/sc_sample_data.csv').T

コメント:

  • 「スケジュール案にご不満ある方は、代替案をブラウザ上で作成し、関係者に調整の上、連絡くださいね♪ 」(というパターンも可能に)  
  • 検討課題:サイズが大きい問題&最適解がない場合への対応。多様な要望や状況を制約条件た目的関数に落とし込むための工夫。

参考:

12
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
18