HOME

特集:最適化を考える

真の最適とは

東京大学先端科学技術研究センター
西成 活裕 教授


「最適化」の難しさ

「最適化」を語るときには、まず「最適」とは何か、ということを考える必要があります。私は「渋滞学」というものを研究していますが、まずは道路交通の渋滞でこれを考えてみましょう。下図のように目的地Dに行くために、A、B2つの道があるとします。Aは広くて走りやすいが遠回り、Bは細道で走りにくいが近道です。さて、今、10人がO地点からDに向かうとして、全員が近道のBを走ると渋滞します。そしてBでは車の数に比例して所要時間が増えるとすると、実は10人のうち半分の5人にAを走ってもらえば全員の走行時間の総和は最短になります。しかし、Aを選ぶ人たちにとっては不便かもしれません。これは、交通工学では、「システム最適化配分と利用者均衡配分」というテーマで語られる問題です。つまり、自動車運行状態全体の最適とドライバー個人の最適(ハッピー度)がずれることがある。換言すれば、全体最適と局所最適は必ずしも一致しないということです。


これが最適化の最も難しい部分です。即ち、「何を目的にするか」を定めた途端に最適解が変わるということです。専門的に言えば「最適化における評価関数の設定」ということですが、この評価関数の取り方で答がまるで変わることがあるため、その目的決定が大変難しいのです。

部分最適の積み上げは全体最適にはならない

部分の総和が全体であるものは、部分最適の累積が全体最適になります。機械の世界などは概ねそうです。ところが、生物は部分を組み合わせても全体にはならない。組織も人間社会も同じです。そこで、最適化を考える場合は、部分の総和が全体になるケースなのかどうかを、チェックすることが必要です。

よく学生に「コンピュータでは絶対にできないことを挙げなさい」という問を出すのですが、そのとき私が最も期待している答は、「矛盾すること」です。矛盾は絶対にコンピュータではできない。しかし、本当に「最適とは何か」という問題を考えていくと、矛盾と二律背反の中でもがいた挙句に出てくるものではないかと思うことがよくあります。

参考にするのは生物の世界

こうした最適化の難題を考えるとき、私が参考にしたいと思うのは自然界です。次の例を見てみましょう。

<例>

ライチョウの羽の色は夏には黒褐色だが、雪の降る冬は白になり、これにより外敵から見つかりにくくなる。しかし年によっては暖冬で雪が少ないときもある。まさか気候を予測することはできない。では、この鳥は何色の体毛が最適か?

何色の体毛がライチョウにとっては最適だと思いますか?人間はこういうとき、中間を取って解とする癖があります。雪の多い年3年の後、少ない年1年が続いたとすると、「5年目は、白3:黒1で混ぜた灰色の体毛がベスト」といった答を出しがちなのです。トレードオフによる落としどころに落ち着けるのが人間の出す解の特徴だとも言えるでしょう。しかし、ライチョウがもし灰色になったら?当然ながら、雪が多い年・少ない年いずれの年にも擬態しにくくなり、捕食の危険のみ高まります。自然界ではどうなっているかと言うと、雪の多い冬でも黒褐色のライチョウがある割合でちゃんといる。これはもちろん最適ではありませんが、絶滅を避けるという意味では素晴らしい知恵です。

この例のように、自然は人間の好むトレードオフ的な解決手段を採らないことが多いのですが、それで私が思い出すのは、トヨタ自動車の有名な「ジャストインタイム」と呼ばれる生産方式(カンバン方式)です。これは、簡単に言えば、部品在庫を持たないよう後工程で加工した分だけ前工程で生産してもらう仕掛けです。しかし、従来の在庫理論では、横軸に在庫・縦軸にコストを取り、2本グラフを書いてその交点が適正在庫であるといった考え方をしていた。つまり、部品を大ロットで保管しておくと増えていく保管費と小ロットで保管し頻繁に作る際の段取り費用をトレードオフしていた。トヨタの「ジャストインタイム」は、この「経済ロット」を真っ向から否定したわけですが、素晴らしい発想の転換だったと思います。部品は何とかしてすぐ作ればよいと考えたわけで、トレードオフ的な在庫理論とは別の観点からする、別種の最適解となったわけです。おそらく、トヨタは「できれば部品在庫は持ちたくない」ということに徹底的にこだわり、そこから演繹的に採り得る方策を考え詰めた。自分たちの目的にこだわって解を求め続けたからこそ、「彼らの」最適解を見出せたと思うのです。

準最適=“そこそこ”を狙う

前に述べたライチョウが採っているような戦略は、ある環境に対して最適に進化していくのではないため、「準最適」と呼ばれることがあります。私は、最近、この「準最適」に注目していて、実は「最適」より「準最適」の方が良いのではないかと考えています。まずは、そこそこのシステムを作っておく。その方が、多少周囲の環境が変わっても、それに合わせて行こうとしたとき、それほど大きな変更が要らず、長期的な変動にも生き残りやすくなるわけです。

誰でもわかる例は、職場のコンピュータ環境をWindows7に適合させるといったケースです。やがてはWin.8になるとします。とすると、Win.7で最適化しているとWin.8環境には不適合の部分が出てこないとも限らない。環境が短いスパンで変化する場合、それに次々に適応するのは果たして良いことか? という疑問が当然出てきます。つまり、完全には合わせず、そこそこ合わせる方が良い。ベストではなく2位か3位くらいの解を選んでおく。それで長期的には最適となることも多いし、コストも抑制できる。変化スピードについていけず、息切れしてしまうといったことも防ぐことができます。

もう一例。京都の老舗の和菓子屋さんを研究したことがあります。300年、400年、中には1000年続いている店もある。そうした店の共通点は、「急なブームなどの変化に対していちいち機敏に対応しない」ということなのです。具体的には、@少品種 A売り切れ御免 B店舗は拡大せず C顧客増を狙わない。押しなべてそうです。

このような例を見れば、「何が最適か?」という問いこそ、難問中の難問であることがわかると思います。特に、長期スパンになり、より全体的な最適化を考えれば考えるほど、「最適とは何か」はわかりにくくなる。評価関数の設定が難しくなる。しかし、この評価関数だけは、人間がある目的を設定してそこから判断せざるを得ないものなのです。

全体最適を考える

では、どうやって全体最適を見出すべきなのでしょう。これは、「人間の直感と経験に拠る」という結論にならざるを得ないのですが、ポイントとして、@先読み力=長いスパンで見る(=時間的視野を広く)と、A辺縁視野力=焦点を合わせ過ぎず、空間を大きく見る(=空間的視野を広く)の2つは大切だと思います。

このように考えていくと、局所最適はともかく全体最適を考える限り、最適化はコンピュータには馴染まないとも言えます。100の扉の中のたった一つが正解だとしたとき、その扉(=これが評価関数)を見つけるのは人間の直感であり経験です。扉を見つけた瞬間、その後の最適化計算は“コンピュータにお任せ”で良いのですが、どの扉にも一長一短があり、相互に矛盾している。その「一長一短」や「矛盾」をどう評価するか。そこに反映されるのは世界観であり、哲学であり、人間心理です。最適化の根本から人間的要素は取り除けません。機械的な部分はプログラムを組めばできますが、ヒューマンファクターを含んだ矛盾をどう解くのか。最適化の根本にはその問が横たわっているのです。

ともあれ、最近では、全体最適の問題に数学の世界から光が当てられつつあります。次のような問題を考えてみてください。

<問>

成人住人100人の街に有名なバーがオープンし大人気である。でもキャパシティは50人で、100人全員が詰めかけると、店内はぎゅうぎゅう詰めになり極めて不快な状況となる。

@家にいたがバーは混んでいた(行かなくてよかった)
⇒ラッキー (ポイント1付与)

A家にいたがバーは空いていた(行けばよかった) 
⇒アンラッキー (ポイントゼロ)

Bバーに行ったら空いていた(来てよかった) 
⇒ラッキー (ポイント1付与)

Cバーに行ったが混んでいた(来なきゃよかった) 
⇒アンラッキー(ポイントゼロ)

◆全員が、1年に何度かはこのバーに足を運ぶとして、住人100人全員の満足度(=全体ポイント数)が一番高くなるのは、どんな場合か?)


この問題の正解は、「1ポイント取ったら次は譲る」です。@だったら翌日絶対バーに行く、Bだったら翌日は絶対に行かない。すると住民トータルのポイント数(幸福度と言ってもいいでしょう)は最大になるのです。

この例が示しているのは、「全体最適のためには一人で勝ち続けない」ということです。自分がいい思いをしたら次は他の人に譲る。それで全体最適が得られる。これは単なる道徳ではありません。数学的に証明されていることなのです。

これが私の言う「全体最適」です。日本にはそうした知恵がかつて沢山ありました。「損して得とれ」とか「負けるが勝ち」といったことわざが良い例です。他の様々な民族も似た格言を持っています。そこに示されているのは、「勝ち続けるな」という思想です。ところが、数学的にもそれが全体最適に繋がり他のシナリオより良い、ということが証明されました。勝ち続けたいという気持ちを抑えて他に譲る。すると自分もそのうちには譲られ、ひいては全体最適が得られる。そしてそれは数学によっても示されている。これは素晴らしいことだと思いませんか?

つまり、人間社会は無意識のうちに「全体最適」を考えて、そのための叡智を培ってきたとも言えます。それは、エゴで生きるのではなくある程度利他的に行動する。良い思いは代わりばんこに、ということです。そうすると社会全体の幸福度が高まるわけです。

最適解は評価関数が定まれば決まってきます。それは評価関数に対して決まるだけの、ある意味、機械的なものに過ぎません。一方、評価関数の決め方は任意ですが、これをコンピュータで「最適に」決めるということだけはできない。結局は人間が、モラル・哲学・世界観といった大きな見地から決めざるを得ないのです。だとすれば、最適化の問題を考えることは、長期的で広い視野に目を開かせてくれるものであってほしいと思います。そしてまた、科学者を含め、最適化を考える人々は、真のソリューションは何かということをこそ、真剣に考えていくべきでしょう。

4/6

(5/17)