こんにちは、PyQチームです。
プログラミングを学ぶことで、Webアプリの作成やデータ分析など、さまざまなことができるようになります。 今回はその中のひとつ、意思決定の役に立つ「数理最適化」について紹介します。
この記事を読んで、数理最適化の魅力を知るとともに、自分もやってみたいなと思っていただけると嬉しいです。
数理最適化って何?
数理最適化とは「さまざまな条件を守りつつ、多くの可能性の中からもっともよい方法を効率よく求める手法」です。
この文章だけだと、いまいちイメージがしづらいと思うので、次で実際の例を見ていきましょう。
公共交通機関の乗り換え案内
電車やバスなどを使って目的地に向かう時に、乗り換えアプリなどを利用することが多いと思います。
こういったアプリも裏では数理最適化が行われています。
乗り換え案内において必ず守るべき 【条件】は、「出発地から目的地までのルートがたどれること」などです。
また、 【もっともよい方法】 は、「一番安いルート」や「一番早く到着するルート」などになります。
アプリではこれらを数理最適化で解くことにより、多くのルートがある中から最適なものを表示してくれます。
配送計画の作成
家に荷物を届けてくれる通販はとても便利で、使っている人も多くいると思います。
その配送にも数理最適化が使われています。
荷物の配送では、「配達したい場所が複数ある」「途中で倉庫に寄って、品物を追加で載せる」など色々なことが想定されます。
効率的な配送計画を考える上で、必ず守るべき 【条件】は「荷物が予定時刻に配送されること」です。
【もっともよい方法】は、「コストが最小になること」などです。
これらを数理最適化で解くことにより、荷物をどの順番で配達し、どのように倉庫によればよいか、最適な配送計画が導けます。
数理最適化とはのまとめ
このように、数理最適化を使うことで意思決定の支援が可能です。
他にも、数理最適化は以下のようなさまざまな場面で使われています。
- どこでもすばやく行けるように、消防署のよりよい場所を提案する
- 利益を確保しつつリスクが最小になるように、投資先のポートフォリオを計算する
- 公平で働きやすいように、アルバイトのシフトを作成する
- 費用が最小になるように、工場の生産順序を計画する
以下の図はどのような場面で数理最適化が関わっているかがわかるポスターです。
ORを探せ!ポスター Ⓒ 公益社団法人 日本オペレーションズ・リサーチ学会 2018年
Pythonで学ぶ数理最適化の学習方法
ここまでで、数理最適化ではどのようなことができるかイメージできたかと思います。
もしかしたら、この問題も数理最適化を使えば簡単にできるのでは?という身近な問題が思い浮かんだ人もいるのではないでしょうか。
そうなれば、あとは学習して実践するのみです。
PyQのコンテンツで学ぶ
PyQでは、「Pythonで学ぶ数理最適化による問題解決入門」コースで数理最適化の入門を学べます。
このコースでは、理論は最小限にとどめて、以下のような題材とコーディングを通して数理最適化の初歩を学びます。
- 「工場から倉庫への輸送費」が最小になるような運び方を考える
- 栄養素などを考慮しつつ、「献立の費用」が最小になるような献立計画を考える
- 試飲会で、なるべく公平になるようなお酒の振り分け方を考える
- スタッフの休みの希望を考慮した勤務スケジュールを考える
また、上記のコンテンツの一部は書籍「Pythonで学ぶ数理最適化による問題解決入門」としても発売中です。
コミュニティに参加して事例を知る
IT勉強会支援プラットフォームのconnpassでは、日々、さまざまな勉強会やイベントの告知がされています。オペレーションズ・リサーチ
、数理最適化
など関心のあるワードで検索して、興味があるイベントに参加してみましょう。
- connpass - エンジニアをつなぐIT勉強会支援プラットフォーム
※ connpassは、PyQを運営する株式会社ビープラウドによるIT勉強会支援プラットフォームです。
また、日本オペレーションズ・リサーチ学会では、研究発表会、セミナー、研究部会などが開かれています。
毎年、春と秋に行われる研究発表会では「最適化などでこんなことができました」といった内容を発表しています。2024年の春開催の研究発表会は、3月上旬に筑波大学で開催されました。
- 日本オペレーションズ・リサーチ学会 2024年春季研究発表会&シンポジウム
さいごに
数理最適化について、イメージが湧いたでしょうか?
少しでも興味を持って学習しようと思っていただけたら嬉しいです。