書評:『今日から使える!組合せ最適化』


2017年 12月 14日

組合せ最適化-600.jpg
今日から使える!

組合せ最適化

離散問題ガイドブック

著者  穴井 宏和、斉藤 努

発行  2015年6月22日

サイズ  A5, 142頁  

ISBN  978-4-06-156544-9

価格  2,800(本体)  



組み合わせ数学、組み合わせ爆発、離散数学という言葉を聞いたことがあるだろうか。
最近は、ディープラーニング、機械学習という言葉がやたらに流行っていて、これこそが人工知能と思われていたりするようだ。

しかし、人工知能とは、そんなに狭くはない。ディープラーニング、機械学習などが人工知能であることには違いないが、それ以外にも人工知能はいっぱい存在する。
そもそも、何とか学習とかいうものは、十分な量の学習データが存在するとき機能するのだが、そもそもデータなどないけれど賢い解決方法はないか、何とかしたいという事柄、問題はいっぱいあって、それらも当然人工知能と呼ぶべきだ。

高校数学でも順列・組合せが今もあるのだろうか。
問題だけ見ると、なんだか問題のための問題、パズルと感じるものの、社会で必要としている数学と思われていないような気がする。
組み合わせ的な作業というのは、とても面倒で、人手でするのは大変なものが多い。
たとえば、

訪問先がたくさんあった場合、どの順番で回ってくるのが効率が良いか。(巡回セールスマン問題)
試合の対戦はどのように組み合わせると、より公平になるか。
倉庫や工場はどこに配置すればよいか。
服を作るのに布をどう裁断すれば無駄が減るか。
結婚のペアは、どの組み合わせが一番トラブルが減るか。(安定結婚問題)
水道管網、電力網は、どのようにすればよいか。
列車、飛行機、貨物船、、、、の運航スケジュール。
コンテナ船の積み下ろし。
学校の時間割をもっと簡単に作れないものか。
スタッフのスケジュールも同じだ。
。。。。。。


このような問題は日々、人間が頑張って調整していたりするが、こういうことを「組合せ最適化」と呼ぶ。
最適化というからには、ベストの答えを求めるものと考える人もいるようだが、この手の問題は、ベストな解を求められないことが多い。
ベストな解を求めるのが厳密解で、まあまあ良さそうな、まあ妥協できるような解を求めて使いことが現実には多い。
つまり、この分野は非常に幅広く、使うアルゴリズムも様々で、何か統一的な方法で問題解決できるというようなことは、現状ではまったくありえないと思える厄介な分野である。
とりわけ、簡単に組合せ爆発が起きるので、うまい方法を見つけない限り、強力なスパコンを使っても問題は解決しない。

さて、本書であるが、実は薄い本である。
非常に多岐に渡る分野を128ページくらいで解説しようとしているので、組合せ最適化を概観している程度である。
一応簡単な場合のアルゴリズムは紹介されていることもあるが、図も少なく、分かりづらい。
実際に、、本書で紹介されているような問題にぶち当たったら、もっと詳しい本などで調べる必要がある。

まあ、本書の利点は、「組合せ最適化」について広く浅く紹介しているところである。
といっても、大きく抜けているようなものもある。
例えば、遺伝的アルゴリズムは、たった5行の説明で終わっていて、ほぼ理解できないと思われる。

最近はアルゴリズムについて勉強していないプログラマも増殖しているようだ。嘆かわしい。
大学などでアルゴリズムの講義があれば、本書の内容のかなりの部分は教わるはずだ。
こういう分野について概略を知っておくことは、「この問題は組合せ最適化」なので、もしかしたら上手い解法が存在するかもしれないと思うことがとても重要である。
そう思うか、ただやり過ごしてしまうか、プログラマとしてその差は非常に大きい。