見出し画像

中学生でもわかる数理最適化

みなさんは数理最適化という言葉を聞いたらどのような印象を持つでしょうか?

おそらく多くの方が、なんだか難しそうとか、嫌いな数学の進化系か?とか思うかもしれませんね。

たしかに数理最適化にはそんな一面がありますが、同時に私たちの生活を支えている社会インフラ的な役割もあるんです。

そうはいっても、難しいんでしょ、じゃあ解散!となってしまうかもしれませんが、ここでは数式を一切使用せずに、数理最適化の重要性のみをわかってもらおうと思います。

つまり数理最適化の実際まではわからなくても、そんな分野があるんだ!実はとっても大事なんだ!ということだけでも伝えようという試みです。

数理最適化とは?

読んで字のごとく、数理モデルなどを使って物事を最適化する学問の一種です。そしてそんなことを言われたら99%ぐらいの人が一目散に逃げだしてしまうでしょう。

それじゃあ、その数理最適化ってやつはなんの役に立つんだ?と考えるのが普通でしょう。

数理最適化は難しい学者たちの道具かと感じてしまいますが、そんなことはありません。

私たちの身近なところでは、レジ待ちの行列を減らしたり、商品の流通経路を最適なものにしたり、はたまた栄養をしっかりと摂れる献立を決めるのにも数理最適化はつかえるかもしれません。いかに早く安く高品質な製品を生み出せるのかが重要な製造業の世界でも数理最適化は重宝されます。

一般の方からすると驚きかもしれませんが、先ほど挙げたようなレジの行列や物流、製造業など、世の中の多くの現象は数式で表すことができます。

もちろん100%正しい数式にはなりませんが、余分なことを削ぎ落してざっくりと見るとこんな感じというモデルを作り、それを数式にします。これを数理モデルといったりしますね。

全てとは言えませんが、いくつかの条件さえ満たせば、現実世界を数式にした数理モデルを使って、最適な答えを探しに行くことができます。これの一種が数理最適化だと思えば良いでしょう。

まとめると世の中の現象や社会活動を数式にして、そこから私たちが求める最適な答えを見つけにいく活動というわけです。
数理最適化が使える事柄はあまりにも多く、挙げるときりがありません。

  • 商品の流通(物流・配送)

  • 商品の値決め(プライシング)

  • マーケティング

  • 業務のスケジューリング(シフトの最適化)

  • メーカーの製品生産量(生産計画)

  • 社会インフラ計画

  • 電気の供給網

  • 荷物の詰め込み(ナップザック問題)

  • 巡回ルート決め(巡回セールスマン問題)

このような分野をオペレーションズリサーチと読んだりします。なんだかかっこいい響きですよね。

でも実は簡単な数式をたくさん計算しているに過ぎなかったりするんです。
それではもう少し数理最適化の世界に踏み込んでみましょう。

もう一歩踏み込んでみる

さて、そんな数理最適化ですが、具体的にはどのようなことをするのでしょうか?

数式を使うというと、方程式を解くことを思い浮かべる方も多いと思います。

数理最適化のはじめの第一歩は線形計画法と呼ばれるものです。なにやら急に本格的な用語が出てきましたが、これこそ簡単な方程式を解くことにとても似ています。

方程式を解くというと、文字xで置かれた謎の値を計算することになりますよね。実は数理最適化の1つである線形計画法はまさに中学生で習う単純な一次方程式を解くことになるんです。文字通り中学生でも解ける問題です。
ただし、その式が非常に多く、1つ1つを解くことが求められているわけではありません。

数式があるのに解かなくていいの?と思いますよね。
解かなくてもいいというよりは、厳密には解けないことが多いのです。

中学校で習う方程式は必ず1つ答えがありましたよね。しかし、数理最適化の場合は言葉の通り、一番最適なものを探し出すのが課題になります。

そのためには中学校で習った方程式の解き方を駆使して、少しややこしい手順に従って計算を進めていきます。

この手順を広義にはアルゴリズムと言ったりしますね。

おそらく多くの人が想像する方程式や数式と呼ばれるものはわからない変数が1つや2つだったかもしれません。しかし、数理最適化の世界ではもっとたくさんの変数があります。それに先ほど述べたように少しややこしい手順通りに計算する必要もあります。

そこで、現在はこのような面倒な計算をコンピューターにやらせます。
今でこそコンピューターはスマホの中にも入っていろんな使われ方をしますが、もともと大規模な計算をするための計算機として作られました。そのため、プログラマーがアルゴリズム(手順)をソースコードに落とし込み、コンピューターに計算させるのが一般的です。今では、そのような仕組みまで整えたアプリやソフトウェアもたくさんあるはずです。

最後に

今回は、数理最適化の中でも線形計画法について紹介しましたが、実はもっと奥が深くグラフを使ったネットワーク問題なんかにもつながります。でも、元をたどれば中学生で習った連立方程式を使うというのだから、きっとみなさん雰囲気は理解できるでしょう。

ここまで数理最適化ってやさしいんだよという口調で書いてきましたが、実はなかなか難しいのが本音のところです。私自身、最近しっかりめに勉強を始めましたが、正直線形計画法だけでもかなり奥が深く、完全な理解は時間がかかるなと思っています。

ただ、この記事で伝えたかったのは、数学だから難しいんだよではなく、オペレーションズリサーチで紹介したような社会活動を解決する方法として数理最適化があり面白いんだよというのがわかればいいかなと思います。


いいなと思ったら応援しよう!

この記事が参加している募集