メタヒューリスティクスと巡回セールスマン問題
つくば市内にはコンビニエンス・ストアがいったい何件あるだろう?
大学のサークルに入ってきた新入生が先輩から,つくばセンターのローソンを出発し,市内のコンビニ一件一件を巡ってそのサークルのポスターを貼り,再び先輩の待つセンターのローソンに戻ってくるように頼まれたとしよう.
この新入生の移動距離を最小にするようなコンビニの巡回順序を決める問題が巡回セールスマン問題であり,答を求めることが困難な問題のチャンピオンである.
仮に市内のコンビニの数がたった20件しかないとしても,巡回順序は全部で
(20 - 1)! = 121645100408832000
通りもあるので,1秒間で1億通りの距離を計算できても,その新入生の在学中には最小距離の巡回順序を求めることはできない.
38年後,ようやく答の見つかるころには,新入生の息子が大学生になって父親と同じサークルに入部しているかもしれない.
そのときのコンビニの数が倍に増えていたとしたら,父親としてはサークルからの退部を勧めるだろう.
この例で,巡回セールスマン問題のセールスマン役を任されているのが新入生である.
こんなことを新入生に頼むのは先輩のイジメにも等しいが,実際には20件くらいの問題は短時間で厳密に解けるし,コンビニが数百件あっても近似解ならばパソコンで数秒とかからずに求めることができる.
その近似算法をいくつかプログラムし,計算時間や近似精度の点でどの算法がもっとも優れているかを明らかにするのが,この課題の目的である.
近似算法として実験を予定しているのは
- local search
- tabu search
- simulated annealing
などであるが,これらの詳しい説明は
http://www.is.tsukuba.ac.jp/~takahito/ucourse.html
上に用意してある.
実験に関する連絡事項
実験のスケジュールその他に関しては
http://www.is.tsukuba.ac.jp/~takahito/ucourse.html
で通知する.
システム数理研究室
久野 誉人
takahito*cs.tsukuba.ac.jp(内線5540, 3F932; "*"は"@")
最適化のすゝめ
個人的な関心は非凸関数の大域的な最小点を効率的に見つけることにあるが,それ以外のところでも卒研などに丁度よさそうな話題はいくつかある.例えば,
-
日本の地図は紙でも電子媒体でも高価だが,アメリカでは
国勢調査局のホームページ
から無料でダウンロードできる.
これを使って,例えば,シカゴの街のどこかにスタート地点とゴールを定め,複数の最短路アルゴリズムを競争させてモニタで観戦する,ようなシステムを構築できないだろうか?
- 同じように,3次元の多面体をモニタに表示し,シンプレックス法の挙動がピボット選択規則によってどのように変化するかも見てみたい.
退化した端点は,視覚的には摂動させておけば他の規則との違いも明らかになるだろう.
- 創成の編入学試験は現在,科学類と併願できるが,試験科目が完全には一致していない2つの学類の併願がどうして可能なのだろうか.
そのカラクリをここで説明するわけにはいかないが,現行の方法よりも効率のよい優れた方法はないだろうか?
- CS専攻の修論発表会では,1人の学生に対し,指導教員のほかに2人の教員が副査として研究の審査を行っている.
学生が多いので発表はパラレルに行われるが,教員のスケジュールを合わることは至難である.
スケジューリング担当の河辺先生を助けてあげる方法ないだろうか?
- 卒研配属の手続きも,もっと合理的にできないだろうか?
一つの方法は,学生側を供給点,教員側を需要点とみなして輸送問題に帰着させることだ.
輸送問題はLPの中でも驚くほど高速に解けるが,名古屋の某大学では,成績が反映されないということで学生に不評であるらしい.
これらを面白そうと思うかどうかはもちろん人によるだろうが,面白くなければ自分で面白いことを探せばよろしい.
おそらく卒研で一番大切なことは,自分にとって面白いことを見つけ出すことで,そのこと自体が最適化問題でもある.
実は,日本の最適化研究はなかなかのもので,論文の数こそ最近は中国に抜かれてしまったが,内容では依然として科学超大国アメリカに次ぐ実力がある(と信じている).
ところが,日本の(特に若手)研究者の研究スタイルに十年ほど前から安直な方向へと変化が表れており,このことに一抹の不安を抱いている.
かつては,厄介な問題が与えられると,効率的に解決するためのアルゴリズムを自分で設計し,プログラムを自分で書いて計算実験を繰り返し,その実用性を検証するのが標準的な研究スタイルであった.
それが,ソルバと呼ばれる強力な商用ソフトウェアの普及に伴い,「アルゴリズムを自分で設計し,プログラムを自分で書いて」というプロセスが「モデル化を工夫し,商用ソルバに任せて」にすっかり置き換わってしまった感がある.
もちろんモデル化も最適化の重要な一部ではあるが,このままでは商用ソルバに組み込まれたアルゴリズムを凌駕するようなものは生まれないし,商用ソルバの主な生産国であるアメリカに追いつき,追い越すことなど期待できない.
卒研は,凝ったものでなくてもいいから「アルゴリズムを自分で設計し,プログラムを自分で書いて」計算実験を行う正攻法で取り組んでもらいたい,と願っている.
その経験が,ことによると将来,画期的なアルゴリズムの発明につながるかもしれない.
プログラムの得手不得手は確かにある.
しかし,プログラマのプロをめざそうというわけではないので,苦手ならばMATLABやOctave, Schilabなどの数値演算パッケージを使えばよろしい.
プログラムが得意な連中はとかく,これらのあんちょこソフトを馬鹿にするが,ならば試しに連立一次方程式を解くプログラムを高級言語で書いてMATLABなどと比較してみればいい.
プロにご登場願うのは,設計したアルゴリズムの実用性をあんちょこで確認してからでも遅くはない.
ちなみに,OctaveもScilabもフリーである.
配属に関する連絡事項
- 12月10日(金) 17:00〜 於3F837 研究室見学・説明会
卒研でいま何をやっているのか,科学類・創成学類4年生3人に紹介してもらう予定
- 12月17日(金) 17:00〜 於3F837 研究室見学・説明会