探索

Haskell を勉強して、高階関数便利だなと思っても、実際何に使えるのかと考えるとなかなか思いつかない。そのひとつの答えが、Haskell のお勉強というページにあるような気がする。

このWebサイトの探索という記事をみると。グラフの探索が、Haskell では非常に簡単に記述できることがわかる。

グラフとは何かと言うと、要するに丸印と丸印を線で繋いだものだ。例えば、建築の工程をパート図で表したもののように、ひとつの工程が丸印で表され、次の工程に矢印で結ばれているような図形のことだ。丸印と丸印が単なる線で結ばれているのではなく、矢印で方向づけられているものを有向グラフという。

この有向グラフのある丸印(ノード)から別の丸印(ノード)までの経路を検索するのが、探索だ。前回の川渡り問題もやはり、探索の問題の一種だ。また、パート図からある工程からある工程までの最短時間を調べるのも、探索のアルゴリズムが使われる。

このように、探索というアルゴリズムは、応用範囲が広い。Haskell でそれが簡単に記述できるとしたら便利だろう。

Haskell のお勉強の探索のページには、この探索のアルゴリズムが Haskell で非常に簡潔に記述されている。簡潔すなわち理解しやすいというわけではないが、一旦理解してしまうと、あれにもこれにも応用したくなってくる。

気の早い人は、このページを読んで理解してしまうとよいが、管理人自身、紹介してあるコードを読んでも最初は何のことか良く分からなかった。

Haskell で探索のアルゴリズムをさくさくかけるようになれば、いろいろな使い道がありそうなので、次回の記事からは、このページのコードを攻略してみたい。
[PR]
by tnomura9 | 2011-06-15 18:38 | Haskell | Comments(0)
<< 探索 その2 川渡りパズル >>