この記事は ナーススケジューリング問題という最適化の問題を遺伝的アルゴリズムで解いてみたらまあまあの精度が出たので記録です pythonのdeapというライブラリを使っています 前提 ナーススケジューリング問題というものがあります 病院等の医療施設に勤める看護師の勤務スケジュールを決定する問題のことであり,シフトスケジューリング問題の代表例である.日勤・夕勤・夜勤等の複雑なシフト勤務や多岐に渡る制約の考慮のため,実際にスケジュールを求めるのは人手では手間のかかる困難な作業であり・・・ 要するにシフト勤務のスケジュールを自動的に最適に組むというものです 制約が色々あって、必要人数を満たすような基本的なものから、公平性、必須な資格/役割、この2人は(仲が悪いから?)一緒に入れないなど、いくらでも複雑になりうる問題て感じで、完璧な解答を作るのは困難なので、近似解を求めるような分野みたいです *
![遺伝的アルゴリズムでナーススケジューリング問題(シフト最適化)を解く - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/709b063140c163ebc4a99e9c2c19a4b713388b2a/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUU5JTgxJUJBJUU0JUJDJTlEJUU3JTlBJTg0JUUzJTgyJUEyJUUzJTgzJUFCJUUzJTgyJUI0JUUzJTgzJUFBJUUzJTgyJUJBJUUzJTgzJUEwJUUzJTgxJUE3JUUzJTgzJThBJUUzJTgzJUJDJUUzJTgyJUI5JUUzJTgyJUI5JUUzJTgyJUIxJUUzJTgyJUI4JUUzJTgzJUE1JUUzJTgzJUJDJUUzJTgzJUFBJUUzJTgzJUIzJUUzJTgyJUIwJUU1JTk1JThGJUU5JUExJThDJUVGJUJDJTg4JUUzJTgyJUI3JUUzJTgzJTk1JUUzJTgzJTg4JUU2JTlDJTgwJUU5JTgxJUE5JUU1JThDJTk2JUVGJUJDJTg5JUUzJTgyJTkyJUU4JUE3JUEzJUUzJTgxJThGJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0zOTg2ODE0NGY4NmJmMmJhYTU4MWU2MTJjMmVjYmM3ZQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwc2hvdXRhLWRldiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YmNmMDQxODkxMzZlN2YyNzBjMWZkZmQxMTlmMjI4NGY%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dd286aab4d549717e6bcc97b7b90012c7)