現在The Nature of Computationという計算理論の本を読んでいる。

今は9章の後半で、ちょうど整数計画法を使ってグラフ的な問題のうちPで解ける物を選り分ける、という事をやっている。 これをやってて思った事を。

自分はかつて、グラフ理論の教科書を基本的な所くらいは読んだ事があり、さらにこの前、線形計画法を割と真面目に勉強した。

別々に、しかもかなり時間的な隔たりがあって勉強した事が、突然今やってる所で出てきて、組み合わせてかなり高度な事を理解するのに使う。これには物語の長い伏線が回収されたかのような感動がある。 おぉ、あんな自明に見えた事がこんな風に使われるのか!みたいな。

この本だけでも、線形計画法やグラフ理論のうち、この章で必要な事はだいたいすべて書いてある。 書いてない事も少しはあるが、ググれば分かる、程度の範囲だ。

だが、そうやって必要な事だけを学んでいると、こうした感動は無いよな。 この感動は、なんというか、 穴を掘ってたら突然地下の大都市の跡に出てしまった、みたいな感じというか。 それまで見えてなかった所で、深い物同士のつながりが見えて一気に広大で豊かな空間が現れる、みたいな感覚がある。

何かを学ぶ時に、目的に向かって最短で進み、そこに必要になる物だけをなるべく脇道に逸れずに乗り越えていく、というのは有効なやり方だと思う。 目的無く漫然と難しい事をやっていっても、無為というか、身につかない、みたいな事もあるし時間も浪費しがちに思う。

だが、何かをいつも最短経路で学んで、なるべく必要な事だけを理解して進む、というやり方をしていると、だんだんと分かる範囲が狭くなっていって、その理解ももやっとした物になっていってしまう気がする。

初期の頃に最短経路で進んでいく、みたいなやり方が可能なのは、受験勉強なりなんなりでそれなりに広い範囲でちゃんとした土台を作ったからだと思う。 今攻略したい知らない事がある時、その手前まで知ってるなら、結構そういう勉強の仕方が出来るんだよなぁ。

要らない事をあえていろいろ学ぶ、というのは、暇人にしか出来ない事だが、そうしないと見えない景色というのはあるなぁ。 むしろそちらの方こそが本当に大切な物かもしれない、とすら思う。 そこには深い理解と感動がある。

必要な事だけを最小限やるのでは無く、必要な事の周りのあえて要らない事までをやるの、なかなか良いよ。暇な人にはオススメ。 本格的に時間かけてやる方がだいたいの事はより丁寧に詳細に説明してくれるしね。