• ベストアンサー

ダイクストラ(dijkstra)法のソース

現在C言語初めて1週間です。 ダイクストラ法について調べています。 WEB検索をかけると沢山ヒットするのですが、 ソースがわかりにくいのが多くて困っています。 アルゴリズムからわかりやすく紹介されているサイトを教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • noocyte
  • ベストアンサー率58% (171/291)
回答No.2

アルゴリズム設計 講義資料 2005 http://www.logos.t.u-tokyo.ac.jp/www/home/chik/algorithm-design/ → 第8回 12月5日 グラフアルゴリズム → Dijkstra の最短路アルゴリズム (p.36)

to_koto
質問者

お礼

迅速な対応,ありがとうございます! dijkstraだけでなく知りたかったほかのアルゴリまであり, 大変助かりました. ありがとうございます.

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>ソースがわかりにくいのが多くて困っています。 その前に Dijkstra 法のアルゴリズム自体はわかっておるのですか? 汎用的なものを書こうとすると、グラフの表現をどうするか等、アルゴリズム以外の部分でソースが複雑になりますが。 とりあえず wikipeida のページでも貼っとくか。

参考URL:
http://en.wikipedia.org/wiki/Dijkstra's_algorithm
to_koto
質問者

お礼

迅速なレス,ありがとうございました. とりあえず,アルゴリズムは理解しています. プログラミング初心者なので,アルゴリ分かっても, プログラムがかけないんです(>_<) でも,なんとかグラフ表現を使って,できました! ありがとうございました.

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ダイクストラ法 隣接リスト

    ダイクストラ法をC言語で隣接配列で書くことができたんですけど隣接リストでの書き方がわかりません。 まずデータ構造をどのようにすればいいですか?

  • オープンソースの検索

    C言語を勉強するにあたって、実際に誰かの作ったソースを読んでみたいのですが、ネット上で検索してもあまりヒットしません。どこかのサイトに入ってソースを見ても、やはりHTMLばかりだし(笑) どなたかC言語のオープンソースのあるウェブページ、もしくは本など知りませんか? ご存知の方がいらしたら、是非教えてください。お願いします……m(_ _)m

  • A*アルゴリズムとダイクストラ法について

    A*アルゴリズムとダイクストラ法について質問です。 (1)A*アルゴリズムは万能のように思えるのですが、どのようなデメリットがありますか? (2)ダイクストラ法がA*より優れている点はありますか? A*アルゴリズムを調べてみたのですが主なデメリットは見つけられなかったので疑問に思いました。 回答よろしくお願いします

  • 最短距離を求める問題(ダイクストラ法)の原理

    グラフ(経路)の情報があり、それを用いて最短距離を探索するアルゴリズムにダイクストラ法というものがあります。 このアルゴリズムでは常に正しい解を導けるということなのでしょうか。調べてみると負の距離があったらダメというのがありましたが、これは除外しての話ですが。 また、このアルゴリズムがなぜ正しいだろうと思えるのかについて理解できればなんとなくわかるような気がします。そこで、wikipediaを読んでみたのですが、さっぱり分かりませんでした。ちょっと引用します。 ”最短経路問題は、ビー玉と紐を用いて解くことが出来る。 まずビー玉を頂点、紐を辺にするグラフを工作する。 グラフを板の上に置き、スタートの頂点にあたるビー玉だけをつまむ。 グラフが置かれている板を取り除くと、グラフは自由落下を始めるが、 スタートにあたるビー玉を持っているので、スタート地点から近いビー玉から順に落下が止まる。 ゴールにあたるビー玉が止まったとき、ゴールにあたるビー玉はスタートにあたるビー玉まで紐で一直線で結ばれている。 この直線が最短経路である。” ビー玉が経路の構成点で紐が経路なのかなということはわかりますが、それを板の上にのせて板がを取り除く、あたりから何が何だかさっぱりわかりません。板は水平に置かれているなら板が消えたら全部落下するだけのように思えますし。でもこれが理解できるとアルゴリズムの思想が理解でき、その妥当性とか限界について予想がつくのだろうと思います。 他に何かイメージがつかみやすい説明があるでしょうか。 また、ダイクストラ法は情報処理としては初等的なものなのでしょうか。それとも結構アドバンスドなものなのでしょうか。 サンプルプログラムを調べてみたらC・C++が多いようなのでこちらにお尋ねしてみました。 よろしくお願いします。

  • ダイクストラ法の実行時間

    ダイクストラ法の実行時間が, O(n)なのは様々なサイトを見ていると分かるのですが, なぜ,O(n^2)なのかが分かりません. それと,ヒープを使った際に, O((n+m)log(n))になる理由がわかりません. どなたか,分かりやすい解説をお願いします.

  • 麻雀ソフトのソースコード

    こんにちは。 現在、麻雀ゲームの開発を目標にして C言語の学習に励んでいます。 そこで、参考となるソースコードを探しているのですが、 全アルゴリズムを公開しているサイトは無いのでしょうか? 一部を公開しているサイトは見つけたのですが、 中々求めているものが見つかりません。 贅沢な相談ですが、よろしくお願いします。

  • C言語のソースを入力してアルゴリズムを出力したい

    C言語のソースを入力するとそのアルゴリズムを出力してくれるソフトがあると聞いたことがあるのですが、どなたかそのソフトが売っているサイトをご存じないでしょうか? 出来れば安いものを希望します。

  • データ構造とアルゴリズム

    C言語の勉強をしているんですが最近はアルゴリズムについての勉強をしたくAmazon等で検索しています。 現在手持ちの本ではCのプログラムの解説(書き方)が主でアルゴリズムについての解説がとてもすくないです。 やっぱりCのソースがあったほうがいいのですが、詳しく解説(証明)している本が欲しいです。 お勧めの本がありましたら紹介してください。

  • 翻訳アルゴリズムのソースコード

    大学4年で自然言語処理について研究しているものです。 現在、webサイトを対象とした翻訳の精度向上に関する研究をしています。そこで機械翻訳のプログラミングをしたいのですが一からプログラムするのは時間がかかってしまうのでインターネットで公開されている翻訳のソースコードをしようと考えています。 どなたかもしよろしければインターネットで翻訳アルゴリズムのソースコードを公開しているサイトを知っている方いらっしゃいましたら教えていただけないでしょうか?

  • 囲碁のソース

    囲碁プログラミングでモンテカルロ法とUTCを用いたC言語のソースを教えてください. 検索しても出てきません. できれば,囲碁プログラミングの知識が全くないのでコンパイルしたら動くようなものをお願いします.