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

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

ShibaNyan
September 10, 2018

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

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

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 点 を減らす 評価式を追加するだけで, 簡単にシフトの決め方を 変えられる!