わかりやすく グラフ とは
地下鉄の路線図を思い浮かべてください。駅は点で、駅と駅をつなぐ道は線です。友だちの関係も、ウェブのリンクも、同じように描けます。点と線、これがグラフです。
点は対象
グラフは点から始まります。点一つが対象一つです。駅、人、ウェブページのように、何でも点になれます。
点には名前をつけます。そうすれば、どの点なのかがわかります。
まだ線はなく、点が散らばっているだけです。
空いたところを押すと点が置かれます。点一つが対象一つです。(点 = ノード)
点を置くほど、対象が増えます。でも点だけでは、ただ散らばった粒にすぎません。
駅がばらばらにあるだけでは路線図にならないのと同じです。点どうしがどうつながっているかが抜けています。
そのつながりを、次に引いていきます。
線は関係
では、点をつないでみましょう。二つの点を線でつなぐのは、「この二つには関係がある」という意味です。
二つの駅のあいだに道がある、二人が友だちだ、このウェブページがあちらにリンクしている。線一本が関係一つです。
点と線が集まると、グラフになります。
点を一つ押してから別の点を押すと、線ができます。線一本が関係一つです。(線 = エッジ)
線を引くほど、点どうしが一つに結ばれ、散らばっていた点がやっと路線図になります。
点は対象、線は関係。この二つだけで、世の中の数えきれないものを描けます。
その中には、私たちがもう知っている形も隠れています。
ツリーは特別なグラフ
グラフには輪ができることがあります。点Aから出発して線をたどり、またAに戻ってきたら、それが輪です。
輪が一つもないグラフこそがツリーです。戻る道がなく、枝のように伸びていくだけの形です。
だからツリーはグラフの一種です。
輪を作っている線を押すと切れます。輪が消えるとツリーになります。ツリー ⊂ グラフ。
輪を一つ切ったら、戻る道がなくなりました。からまって見えたグラフが、すっきりしたツリーになったのです。
前に見たフォルダーや家系図も、まさにこういうツリーでした。
ツリーはグラフの特別な場合で、言いかえればグラフのほうが大きな傘です。
グラフはどこにでもある
点と線というめがねをかけると、世界が違って見えます。
地下鉄は駅(点)と路線(線)、友だちの輪は人(点)と友情(線)、ウェブはページ(点)とリンク(線)です。
まったく違って見えたものが、じつは同じ絵だったのです。だから一つを解けば、ほかも一緒に解けます。
例を押して切りかえます。地下鉄・友だちの輪・ウェブ、どれも同じ点と線です。
例を切りかえても、絵の骨組みは同じです。点が対象、線が関係で、名札が変わるだけです。
だからこそグラフはとても役に立ちます。一つの道具で、世の中の数えきれない問題を描けるからです。
まとめ
一行にまとめるとこうです。点は対象、線は関係、点と線で描いた絵がグラフ。輪のない特別なグラフがツリーです。
地下鉄も、友だちの輪も、ウェブも、すべて点と線で描けます。
点と線がそろったので、残る問いは一つです。この点のあいだを、どうやって歩き回るのでしょうか。
要点を順に押して振り返ります。(点=対象 → 線=関係 → グラフ → ツリーは輪のないグラフ)
グラフを描けるようになったので、本当のおもしろさはここからです。
一つの点から出発して、線をたどってすべての点を見て回る方法をグラフ探索と呼び、いちばん短い道を探す方法はそのあとに続きます。
次のレッスンでは、点と線の上をどう巡るのかをたどっていきます。