1. はじめに 最初に、本記事ではどのようなトピックを扱うのかについて、少し説明したいと思います。 1-1. 本記事で扱うトピック 21 世紀になり、IT 化が急速に進む今、現実社会ではいろいろなものが最適化されて動いています。これを形作るプログラミングの現場でも、例えば以下のような問題を考えたり、あるいは実際に使ったりすることもあるのではないでしょうか1。いくつか例を挙げてみましょう。 例 1. コイン問題:特定の金額をぴったり支払うために、最小で何枚の硬貨が必要か? 例 2. 最短経路問題:地図上の A 地点から B 地点までに行くのに、最短で何メートル歩く必要があるか? 例 3. 箱詰め問題:長方形の箱に、できるだけ多くの荷物を敷き詰めたい 例 4. 数分割問題:「できるだけ合計の値が近くなるように」2 つのグループに分割したい このように、いろいろな問題があります(もちろん名前を覚
![直感でわかる、ヒューリスティック問題の羅針盤 ~貪欲法から山登り法まで~ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/2611af87657a951fb38977a326a2692c976aa8eb/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-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU3JTlCJUI0JUU2JTg0JTlGJUUzJTgxJUE3JUUzJTgyJThGJUUzJTgxJThCJUUzJTgyJThCJUUzJTgwJTgxJUUzJTgzJTkyJUUzJTgzJUE1JUUzJTgzJUJDJUUzJTgzJUFBJUUzJTgyJUI5JUUzJTgzJTg2JUUzJTgyJUEzJUUzJTgzJTgzJUUzJTgyJUFGJUU1JTk1JThGJUU5JUExJThDJUUzJTgxJUFFJUU3JUJFJTg1JUU5JTg3JTlEJUU3JTlCJUE0JTIwJUVGJUJEJTlFJUU4JUIyJUFBJUU2JUFDJUIyJUU2JUIzJTk1JUUzJTgxJThCJUUzJTgyJTg5JUU1JUIxJUIxJUU3JTk5JUJCJUUzJTgyJThBJUU2JUIzJTk1JUUzJTgxJUJFJUUzJTgxJUE3JUVGJUJEJTlFJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1jNTA0YzBiNzVhYTE4MzI5ZTY1ZWIyYTA4MmY5YmJiNQ%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBzcXVhcmUxMDAxJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz04NTIyOTAxMjZiOTkxZDk4NzE1ZmZlZWFjNjI3MTUxYg%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Daf77691567c0d2b5d631971f42665d16)