2011-06-09

アルゴリズムで斬る! 数学vs.情報科学

小学校の算数では、やたらとアルゴリズムを習う。計算の仕方はアルゴリズムの一種だからだ。その後も、中学くらいまでは、アルゴリズムの比重が大きい。大学(数学科)に来ると、講義ではアルゴリズムらしいことをあまりやらなくなる(皆無ではないが)。

私が、自分の意識の中で数学とアルゴリズムの間にはっきりした線を引いたのは、不定方程式の解の存在証明だった。
今、a,bを整数のペアだとしよう。このとき、1次の不定方程式:



を満たす整数x,yが存在することを証明するにはどうすればよいか? ここで、(a,b)は最大公約数で、情報系の人は、gcd(a,b)と書くことが多いようだ。具体的な解を求めるアルゴリズムは、拡張ユークリッド互除法と呼ばれるもので、計算機で求める場合には非常に効率的な方法だ。これは普通の発想で考えればわかる(高校生くらいのレベル?)。

群論的な証明の筋はまるで違う。

1) 巡回群の部分群は巡回群である。
2) は加法に関して巡回群になる。その部分群は、の形のものしかないことを示す。
3) の部分群であることを示す。
4) 2), 3)から、となるmが存在する。
5) を示す。

この証明は、x, yを求める手順について直接的には何も語っていない。

こういう証明はいかにも数学的だと感ずる。

数学では、類似の”アルゴリズムの分からない存在証明”が頻出する。

ブラウアーの不動点定理なんかもそうだ。これは標準的には写像度ホモトピー不変量)を使うが、ゴリゴリの解析的証明もできるような気がする(知らないが、考えればできそうな感じ)。いずれにしても、どうやって解を構成するかはわからない(不動点定理でも縮小写像の原理(バナッハの不動点定理)は構成的な証明で、雰囲気がだいぶ違うが)。

一方、情報科学では、存在は明らかだが「効率的な」アルゴリズムがわからない、というものが頻出する。例えば最短ベクトル探索問題は、有限集合の問題だから、最短ベクトルの存在は明らかだ。問題はアルゴリズムである。

別に何学でも面白ければそれでいいのだが、こういうことには「相性」があるような気がする。それが理解できるということと、面白いと思うかは別問題だからだ。数学好きの高校生は、流行りで情報系を選ぶかもしれないが、その理論に限っても相性がいいとは限らない。理解できてかつ面白いと思える学問を選んで欲しい、と切に願う。

4 コメント:

morito_yasumi さんのコメント...

このYoutubeの動画、フェイスブックでシェアしようと思ったら貼れないんです。刑務所だからなにか問題があるんでしょうか?
それにしてもどうしてフィリピンでNHK教育のアルゴリズム体操?何のために?職場で音が出せない環境なんですが、歌も日本語のようですね。・・・謎。

Masahiro Kaminaga(神永正博) さんのコメント...

コメントありがとうございます。Facebookには独自のポリシーがあるのかもしれませんね。
この動画全部観ましたが、歌は全て日本語でした。確かに謎です。なんだか楽しそうだし。

インドもそうでしたが、暑い国の人たちは、どこか根本的に陽気です。

morito_yasumi さんのコメント...

自宅のMacからはFacebookに投稿できました。お騒がせしました。フィリピンの刑務所は他にも1500人でマイケル・ジャクソンを踊ったりして、謎が深いですね。暖かい国の人達はのんびりしているようだけれど、インドくらい過酷に暑いと哲学的になるのかなと考えていました。意外に楽天的なんでしょうか。

Masahiro Kaminaga(神永正博) さんのコメント...

Facebook投稿できましたか。ということは、proxyの問題だったのでしょうか。

インド人は哲学的…なのかな。顔が哲学的ですけど、結構子どもっぽいところもあります。いい大人がふざけあっている姿をよく見ました。

チェンナイの人は、夏(4月~6月)は、チェンナイの気候はきついよね、というようなことを言うのですが、仙台の気温を言うと、肩をすくめて、そこには住めない、といいます。私も暑い国が好きです。