グラフとネットワーク

明日から『グラフとネットワーク』という講義が始まるので,いろいろと思うことを書いておく.

まず,このような授業をやることを依頼されて,それでシラバスとか考えて,立ち上がったわけだけども,この講義の名前が『グラフ理論』になりそうだったが,それは避けられた.もっとも,『グラフ理論』をやってもよいわけだし,私が『グラフ理論』の講義をすることもできるし,実際『グラフ理論』の講義もやったことがあるのだけれども,この『グラフとネットワーク』は「グラフ理論」の講義ではない.実際依頼された内容を考えれば『グラフ理論』などという名前を付けることは,学生に対して間違った印象を与えるだけで,害悪であるとさえ思える.

よく大学の講義名に「○○」のあとに「理論」をつけて『○○理論』としてしまうものがあるが,それが本当に「○○理論」なのかどうかということを反省する必要がある.日本の大学において『グラフ理論』という名前がついている講義のほとんどは「グラフ理論」ではないと思う.なんでも,中身をわからず「理論」とか「論」とかつければよいというものではない.

こういうことをいうのは,私自身が「グラフ理論」を非常に狭くとらえているからだとも思える.その理由のひとつは,日本の学術界において,「グラフ理論」という数学をやっているコミュニティと「グラフ・アルゴリズム」の研究をしているコミュニティにはほとんど交わりがなく,それに付け加えて,電気回路やVLSI設計の方からグラフの研究をやっているコミュニティもあり,この3つは交わりがあるのかないのかよくわからないような形になっていると私は思う.代数的組合せ論も入ってくるとわけがわからなくなる.(これら4つの分野で,同じ数学的概念に対して異なる名称が用いられることがしばしばあり,それが混乱をもたらすこともある.) しかし,大学の講義として『グラフ理論』があるとき,そこで議論されるものの半分以上は「グラフ・アルゴリズム」である.上のような交わりがあるかないかわからないという意味において,それはグラフ理論ではない.

Ron Aharoniという研究者がいるが,大昔,私が学生だった頃,一緒に昼食を食べた (もちろんRon Aharoniがそれを覚えているとは思えないけれども).そのとき,『グラフ理論』では何を教えるべきか,という話を彼はした.そのときの彼の主張をおぼろげな記憶ながら思い出すと,『グラフ理論』は数学だから数学を教えるべきだ,と.つまり,極値グラフ理論のような「王道」のグラフ理論である.その一方で,アルゴリズムに関する話は別の講義,たとえば「組合せ最適化」の講義で教えるべきだ,と.私自身はその考えにとても共感する.

なので,私自身,私の講義の名前を『グラフとネットワーク』とできたことには満足していて,これにより,純粋なグラフ理論をやらなくても間違った印象を与えることが少ない,という準備はできた.あとは,学生が勝手にこれを「グラフ理論」とか呼び出さないことを願うだけである.私はおそらく講義中に一度も「グラフ理論」ということばを出さないだろうから.この『グラフとネットワーク』という講義では,グラフに関する数学的性質,グラフを用いたモデル化,グラフに関するアルゴリズムのすべてを扱い,特に数学的性質とモデル化が強調される (アルゴリズムの講義は他にもあるから,詳細はそちらに任せることにする).特に,モデル化については,数学的概念がどのように使えるのかということを学生が体感するためになくてはならない部分であり,それは1つの講義で,しかも学部3年生の段階で細かく扱うことには無理があるが,できる限り,おもちゃの例にならないように,進めていきたいと考えている.(このために,昨年度中央大学で担当した『最適化手法』が役に立つ.ありがたい.)

もう1つ.「グラフを使うこと」と「グラフ理論を使う」ことは明確にわけられなくてはならない.グラフを使うだけではグラフ理論を使うことにはならない.それは,整数を使うだけでは整数論を使うことにならないのと同じであるし,表計算ソフトを使うだけでは線形代数を使うことにならないのと同じである.