あめだまふぁくとりー

Boost.Graphとかできますん

BGL

Graph Visitor でアルゴリズムの振る舞いを描写してみる

BGL

学習用にグラフアルゴリズムの振る舞いを視覚的に見たい場合, Boost.Graph の Visitor を使用すれば, 一からそれ用のアルゴリズムを実装せずにすみそうです. という訳で, 実装してみました. GUI は Python + Tk で実装して, 表示する情報を Visitor から TCP…

第一回 グラフ王 決定戦

dijkstra_shortest_paths での比較 Stanford GraphBase と boost::adjacency_list, boost::vector_as_graph を利用した std::vector によるグラフで boost::dijkstra_shortest_paths の実行時間を 適当に 比較してみました. boost::adjacency_list は節点と…

Boost.Graph property to Boost.Fusion

Boost.Graph のグラフ構造体で使用される property を fusion::for_each で使用できるようにしてみました. ソースは こちら にあげています. property に bundle (ユーザが定義した構造体)が含まれる場合, bundle は fusion::for_each 上には現れないので注…

boost::adjacency_listのVertexListテンプレート引数とvertex_indexの関係

id:faith_and_brave:20131003:1380788496に関して少しばかし補足. まず,知るべきことはboost::adjaceny_listのテンプレート引数を省略した場合である.この場合,以下の引数を指定したものとして扱われる. boost::adjacency_list< boost::vecS, // OutEdge…

Propety_iter_range

BGLといえばPropertyMap,PropertyMapといえばBGLなのだが,BGLのアダプタ関数はイテレータのペアであるRangeを返すなのでBGLとPropertyMap,Rangeをうまく組み合わせて使いたい. で少し調べてみたら,BGL内にproperty_iter_rangeというのを発見.property_…

Graph Layoutが使えない件

BGL

BGLのGraph Layoutは名前そのままグラフのレイアウトを行うアルゴリズム群. Random LayoutやCircle Layoutなど基本的なものから,Kameda Kawaiアルゴリズムといったものまで揃ってる. これらのアルゴリズムはTopologyと呼ばれるTraitsを持つことで,いろい…

using declaration使えばいいじゃない

BGL

アホな話 まえがき BGLのアルゴリズムを適用できるグラフ構造にはBGLに含まれているadjacency_list等だけでない.自分自身で定義したグラフクラスやBoost以外のライブラリのグラフクラス,さらにvectorや配列等までありとあらゆるものBGLのアルゴリズムに適…

static_property_mapとconstant_property_map

BGL

Boost.PropertyMapには指定した値を常に返すstatic_property_mapというプロパティマップがある.一方BGLにも指定した値を常に返すconstant_property_mapがある.前者は,後者はをインクルードすることで使用できる.それぞれのクラス定義は次のようになって…

バグ(directed_graph, undirected_graph)

BGL

BGLにはadjacency_listをラップしたdirected_graph,undirected_graphクラスがあるんだけどバグを発見(Version 1.48.0です). #include <boost/graph/directed_graph.hpp> #include <boost/graph/undirected_graph.hpp> using namespace boost; int main() { directed_graph<> dg(5); graph_traits<directed_graph<> >::vertex_descriptor dv = </directed_graph<></boost/graph/undirected_graph.hpp></boost/graph/directed_graph.hpp>…

2012年は本気を出すといったな.あれは嘘だ.

資格のための勉強っていまいちやる気がでないのよね.TOEICとかも同じ.でもこつこつやらんといかんのよね. 昨日のやつ d:id:amedama41:20120104でproperty_map_functionのサンプルコード書いたけどあれよく考えたら別にmake_property_map_functionいらない…

ぷろぱてぃーまっぷ

BGL等でproperty mapを使っていると,たまにproperty mapをfunctorとして扱いたいときがある.そんなときにはproperty_map_funcionが使える.property_map_functionはproperty mapをfunctorとして扱うためのラッパオブジェクト.make_property_map_function…

大晦日

あとちょっとで新年だけど一人で修論書く以外にすることないよ…. private継承の名前探索 class Base1 { public: void f() { } }; class Base2 { public: void f() { } }; class Derived : public Base1, private Base2 { }; int main() { Derived d; d.f();…