boost-graph

    1

    1答えて

    BGLを初めてお使いで、BGLを使用して単純な最短パス検索プログラムをセットアップしようとしました。ここで、無向グラフはカスタム定義のEdgePropertyとVertexPropertyを持つ隣接リストとして定義されています。私はテンプレートとBoostの私の不十分なスキルに起因するコンパイル時エラーが発生しています。 次のようにコードは次のとおりです。 #include <boost/grap

    0

    2答えて

    bglでグラフを作成し、頂点を反復処理するコードの例を以下に示します。つまり、ループはすべての頂点を操作する必要がありますが、頂点の順序はメイン関数の呼び出しごとにランダムでなければなりません。どうすればこれを達成できますか? 私はstd::random_shuffleで失敗しました。イテレータのコンセプトにはさまざまな種類があると思いますが、違いはまだ分かりません。 #include <iost

    1

    1答えて

    adjacency_listグラフ(および頂点のグループ)の頂点とエッジの外部プロパティを保持したいと考えています。それらのプロパティによって頂点にアクセスできる必要があります。 たとえば、いくつかのウェイトが割り当てられたすべての頂点を繰り返し処理し、それらのエッジを取得したいとします。 しかし、頂点コンテナも設定する必要があります。 このコンテナで頂点を削除すると、頂点記述子が無効になることが

    1

    1答えて

    でカスタムプロパティとBGLのdijsktraコードは、私のコードは次のようになります。 ---------------| | worker | ____________________ | --------- |<-----| | | | graph | | |strategy interface|<----- concrete strategy | |------

    2

    1答えて

    私は次のようにインスタンス化グラフを持っている: typedef boost::property<boost::edge_weight_t, uint32_t> EdgeWeightProperty; typedef boost::property<boost::vertex_index_t, uint32_t> VertexProperty; typedef boost::adjacency

    1

    2答えて

    ブーストグラフライブラリを使用して、グラフ内の特定の頂点からランダムなアウトネイバーまたはインネイバーを選択する必要があります。私はRNGからインデックスiを受け取り、i番目のエッジを選択する必要があります(順序は問わず、コール間で一貫性が必要です)。この目的を達成するために、私はそうのようなstd::advanceの使用を作りました: typedef adjacency_list<vecS, v

    -4

    2答えて

    -log()ウェイトが "負のループ"を示していると、何が間違っているのか理解できません。 log()を削除するとアルゴリズムは機能しますが、負のサイクルはありません int main() { typedef double Weight; typedef property<edge_weight_t, Weight> WeightProperty; typedef p

    2

    1答えて

    一部のエッジを削除してグラフにA *を実行する必要があります。これを行うには、ブラックリストされたエッジでフィルタされたグラフを作成し、フィルタリングされたグラフにA *を実行します。ブラックリストに載っている辺はクラスBlackListEdgeConstraintに埋め込まれており、そのコンストラクタに禁止されているエッジのリストを渡して初期化します。このBlackListEdgeConstra

    1

    1答えて

    既存のグラフデータ構造とブーストグラフライブラリ(BGL)を使用して: struct Graph; struct OutPort {}; struct InPort { OutPort* connectedOutput; }; struct Node { Graph* graph; std::list<InPort> inputs; std::

    0

    1答えて

    このスレッドのコードをBoost DFS back_edgeとし、無作為のグラフにサイクルを記録しようとしました。これを行うには、back_edgeが見つかると、各dfsツリーにpredecessorsを格納する必要があります。これは無向グラフなので、直接on_back_edge()をEventVisitor Conceptから使うことはできないと思います。だから私は、コードの下のvoid bac