こんにちは、PyQチームです。
「数理最適化を使った問題解決」を学べる入門者向けのランクをPyQに追加しました。
追加したランクは、「Pythonで学ぶ数理最適化による問題解決入門」です。
下図のように13パートあります。
数理最適化による問題解決を学んでみましょう!
数理最適化とは何でしょうか?
数理最適化は、最適化問題を解くための学問です。こう聞くと難しそうに感じるでしょう。
そこで、本ランクでは最適化問題についての厳密な説明を避けて、身近な問題や社会の問題を通して説明するようにしました。
社会のさまざまな課題が表現された下図のポスターから、いくつかの課題をピックアップして見てみましょう。
このポスターは、公益社団法人 日本オペレーションズ・リサーチ学会で作成されました。図の下のリンクからPDFを表示できるので、拡大して確認できます。
図 ORを探せ https://orsj.org/?page_id=3362
たとえば、次のような課題が確認できます。これらの課題は、数理最適化を使って解決できます。
- どこでもすばやく行けるように、消防署のよりよい場所を提案する
- 利益を確保しつつリスクが最小になるように、投資先のポートフォリオを計算する
- 公平で働きやすいように、アルバイトのシフトを作成する
- ドライバーの条件を考慮して、商品の配送計画を立案する
- 費用が最小になるように、工場の生産順序を計画する
たとえば、製品を工場から倉庫に輸送するときに、どの製品をいつどれだけどうやって運ぶかを計画できます。運び方は何通りもありますが、最適化を使うと輸送費が最小の運び方を求められます。
最適化は、「膨大な可能性の中からもっともよいやり方を効率よく求める手法」といえるでしょう。
最適化を扱う人には2種類の人がいます。アルゴリズムを研究したりソフトウェアとして開発したりする人と、仕事の課題を解決するために利用したいと考えている人です。
本ランクの対象者は、後者の「仕事の課題を解決したい人」です。
これには、「自分自身の課題を解決したい人」の他に「他人の課題解決をサポートしたい人」や「最適化を課題解決に使えないか興味があるので勉強したい人」も含まれます。
そのため、理論的な話や詳しい話をなるべくしないで、問題解決の考え方や方法に重点を置いています。
また、単に読むだけでなく、コードを書いて動かすことで最適化を体験できるようにしています。
新ランク「Pythonで学ぶ数理最適化による問題解決入門」
本ランクは、基礎編、応用編、発展編で構成されています。
基礎編では、応用編で必要になる基本的な知識を学びます。数理モデルの種類やその構成要素と特徴、Pythonによる作成方法などです。
応用編では、4つの具体的な問題解決を学びます。いろいろな課題をどのように考えて答えを出すのかを体験します。
発展編では、pandasを使ったモデル化を学びます。pandasはデータ分析のライブラリですが、最適化モデルの作成に使えます。pandasを使うことで、複雑なモデルをわかりやすくシンプルに作成できます。
- 基礎編
- パート「数理最適化による問題解決」
- パート「数理モデルって何だろう」
- パート「Pythonで数理モデルを作ろう」
- パート「たくさんの変数はベクトルで」
- パート「混合整数最適化って何だろう」
- パート「Python-MIPのクラス」
- 応用編
- パート「問題解決ってどうやるの?」
- パート「輸送費を減らしたい」
- パート「もっと食べたくなる献立を」
- パート「お酒をわけよう」
- パート「シフト表を作りたい」
- 発展編
- パート「pandasで数理モデルを作ろう」
- パート「pandasで再モデル化」
最後に
本ランクでは、覚えることをなるべく少なくして、学習しやすくなるようにしています。
また、学習内容をすべて暗記する必要はありません。
最初は、「数理最適化でどのようなことができるのか?」「どのように問題解決するのか?」を考えながらはじめるとよいでしょう。
是非、PyQを使って問題解決の実例を体験してみてください。