Upgrade to Pro — share decks privately, control downloads, hide ads and more …

遺伝的アルゴリズムでシフト組みを自動化した話

Avatar for ShibaNyan ShibaNyan
September 10, 2018

 遺伝的アルゴリズムでシフト組みを自動化した話

BitValley2018 AfterPartyのLTでお話しました.
当番のシフトを組むのに時間がかかりすぎるという問題を,遺伝的アルゴリズムを使ってLINE BOTに実装することで解決しました.

Avatar for ShibaNyan

ShibaNyan

September 10, 2018
Tweet

More Decks by ShibaNyan

Other Decks in Programming

Transcript

  1. 遺伝的アルゴリズムの説明 •  シフト表をランダムに30パターン生成 •  シフト表の良さを評価 •  評価が良かったシフト6個残して後は消す •  交叉,突然変異させて30個に増やす 200ループ

    [(Gさん),(Eさん),(Nさん),…,(Eさん)] [(Aさん),(Lさん),(Gさん),…,(Oさん)] [(Aさん),(Eさん),(Nさん),…,(Oさん)] … (30パターン)
  2. 遺伝的アルゴリズムの説明 •  シフト表をランダムに30パターン生成 •  シフト表の良さを評価 •  評価が良かったシフト6個残して後は消す •  交叉,突然変異させて30個に増やす 200ループ

    [(Gさん),(Eさん),(Nさん),…,(Eさん)] [(Aさん),(Lさん),(Gさん),…,(Oさん)] [(Aさん),(Eさん),(Nさん),…,(Oさん)] [(Gさん),(Eさん),(Nさん),…,(Tさん)] … (30パターン)
  3. シフト組みの課題 より •  同じ人が2回入らないといけない場合がある →同じ人が2回入ったら 100点 を減らす •  2回入る場合は日時が離れている方が良い →(離れている日数)×1点

    を加える •  △,×を考慮するべき →△一個につき10000点,×一個につき1000000 点 を減らす 評価式を追加するだけで, 簡単にシフトの決め方を 変えられる!