問題タブ [boost-property-map]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 奇妙な振る舞いをするブーストグラフの外部プロパティ?
Boost :: Graphを使用して最初のステップを実行していますが、(私にとっては)予期しない動作が発生しました。
私が欲しいのは、一連のedge_weight
プロパティ(数は実行時にのみ知られている)を持ち、特定の制約を満たすすべての重みの最小値を使用することです。まず、typedef
宣言:
次のようにグラフを初期化します。
そして何度も出力INT_MAX
します。(外部)weightMaps[j]
はすべて同じで、内部プロパティと等しいようfastestLinkWeight
です。しかし、なぜ?個別のマップを使用するようにするにはどうすればよいですか?
c++ - ブースト グラフ ライブラリの std::vector に関連付けられた外部プロパティ マップ
現在、ブースト グラフの外部プロパティを定義しようとしています。バンドルされたプロパティを内部プロパティとして使用します。
ただし、アルゴリズム中にいくつかの外部プロパティが必要です。つまり、グラフのエッジ/頂点を std::vector に格納された要素にマップして、 operator[] (Edge e)。私は手がかりなしにブーストのドキュメントの前に立っています。property_map が必要なようですが、これらをベクトルと一緒に使用する方法がわかりません。これまでに見つけた唯一の例は、頂点からベクトルへのマップに関するものですが、頂点は unsigned int であるため、これは些細なことです。
これまでのところ、boost には本当に不満を感じています。自分でグラフ クラスを実装してテストする時間を大幅に節約できたと思います。このクレイジーなテンプレート メタプログラミングのものは本当にわかりません...
c++ - Boostのproperty_mapは、キーが存在するかどうかをテストしますか?
BGLのコンテキストでは、を繰り返す必要がありますin_edges
がout_edges
、逆エッジの一部であるものを除外します。つまり、逆エッジの一部であるものを除外しますproperty_map
。以下のコードは、私がやりたいことを示していますが、もちろん、メソッドはありproperty_map
ません。find
end
更新:考えられる解決策は、グラフの作成中に逆エッジを含むマップのような別の構造を維持することです。read_dimacs_max_flow
これは、グラフの作成を制御できた場合は機能しますが、関数を使用してDIMACS形式のグラフファイルを読み取るため、機能しません。だから私はBGLのアクセシビリティ方法だけに頼って何が何であるかを理解することができます。
グラフの定義:
そして、私がやりたいことのスニペットの例(ただし、以下のエラーでコンパイルされません):
およびコンパイラエラー:
boost - 1 つのグラフに複数のエッジ ウェイト プロパティ マップを設定することはできますか?
プロパティ マップ (エッジの重み) が各プロパティ マップで異なるようなグラフを作成するにはどうすればよいですか? このようなプロパティ マップを作成することは可能ですか? プロパティ マップの配列のようなものですか?
インターネット上でそれを使用している人を見たことがありません。例を教えてください。
各重みをプロパティ マップに入れます。
c++ - dijkstra_shortest_paths Boost Graph Lib 1.57.0 が失敗する
私は BGL を使用しており、最近 1.46.1 から 1.57.0 に移行しました。また、Mac での Xcode の使用から gcc 4.9.2 に切り替えました。
問題を説明するために、このコードの小さなスニペットを作成し、取得するための一致しない関数呼び出しを取得しています。INCLUDE パスを 1.46.1 に変更すると、このコードはうまく機能しますが、1.55.0 と 1.57.0 では失敗します。
アドバイスをいただければ幸いです。ありがとう。
gcc でのビルドのエラー ログ
c++ - Fruchterman Reingold の引力は Boost Graph Library でどのように機能しますか
Boost Graph Library で Fruchterman-Reingold アルゴリズムを学習しています。ドキュメントを読むと、グラフ レイアウトに関してすべてのノードの位置を計算するアルゴリズムであることがわかりますが、Boost Graph Library の引力の計算手順が理解できないという問題があります。
たとえば、トポロジが高さ 100、幅 100 の長方形の場合、各頂点は文字列としてラベル付けされ、各ペア頂点間の関係は次のようになります。
各行は、2 つのラベル付き頂点が接続されていることを示します。各頂点の引力の式は次のようになります。
ここd
で、 は 2 つの頂点間の距離で、k
は最適な距離です。d
しかし、Boost Graph Library の Fruchterman-Reingold のコードで距離を取得する方法がわかりません。この例では、各ペアの頂点間の ASCII 値の差を距離として計算しd
ますか? ('0' の ASCII 値は 48 で、'5' の ASCII 値は 53 です。Fruchterman-Reingold が 53 - 48 = 5 を BGL の d として計算するというのは本当ですか?)
c++ - GraphViz のブースト グラフ バンドル出力のストリーミング オペレーターのオーバーロード
Boost Graph Library にバンドルされたプロパティを標準ライブラリ型で使用しながら、その型の<<
ストリーム演算子のオーバーロードを使用して満たすことはできwrite_graphviz
ますか?
Boost の静的アサートに直面したため、コードを上記のように変更しました。hereからの提案を採用し、<<
実装はboost::detail::has_left_shift_impl
名前空間内で定義されます。悲しいかな、私は今別のエラーに直面しています:
<<
で使用できるオーバーロードを提供する方法はありwrite_graphviz
ますか? Ubuntu 14.10 と GCC 4.9.1 を使用しています。
c++ - 頂点リストが setS の場合、write_graphviz は機能しませんか?
次のコードにはエラーがあります。
「std::basic_ostream」左辺値を「std::basic_ostream&&」にバインドできません
boost::vecS、//頂点リストのときに機能します
それは期待されていますか?