タグ

Rubyとgraphに関するyukimori_726のブックマーク (2)

  • Rubyでアニメーション・グラフを作ろう! - hp12c

    ベルマンフォードのアルゴリズムで実行される結果も逐次表示 - Seeking for my unique color. を見てGraphVizの出力からアニメーションgifを作りたくなった Rubyにはruby-graphvizというGraphVizのinterface libraryと RMagickというImageMagickのinterface libraryがあり これらを使えば目的は達成できるみたいだ ruby-graphvizのinterfaceは自分にはわかり辛かったので これをラップする形でGraphAz*1というクラスを書いて 上のアニメーションgifを出力してみた 用途が限定的で実装にも問題がありそうだけれど GraphVizのDOTデータの出力としても使えるので 無責任無保証で使ってくれる人がいればうれしい 使い方 コードを見るのが早いと思うので 簡単な例を示した ま

    Rubyでアニメーション・グラフを作ろう! - hp12c
  • Rubyで最短経路を探索しよう! - hp12c

    人生を書き換える者すらいた。: 人材獲得作戦・4 試験問題ほか 次に同じ質問がきたときに 「1時間いらないっしょ、こんなの」 と是非ともほざくために 今から勉強します ダイクストラ法による最短経路探索 図におけるS点からG点に到達するための最短経路を求めたい 各ノードを結ぶエッジを糸としてS点をゆっくりと持ち上げた場合 緊張する糸が変移しながら最終的にS−B−D−Gを結ぶ糸が緊張して これが最短経路と分かる*1 計算機上でこの現象をシミュレートしたものを ダイクストラ法というらしい 今各ノードとそこから伸びるエッジの情報(コストと接続先)を渡して その最短経路および総コストを出力するプログラムを考えてみよう data = { :s => [[5, :a], [4, :b], [2, :c]], :a => [[5, :s], [2, :b], [6, :g]], :b => [[4, :s

    Rubyで最短経路を探索しよう! - hp12c
  • 1