から隣接行列を抽出します。この行列をboost::numeric::ublas
と組み合わせて使用して、連立1次方程式系を解きたい。<code>boost::adjacency_list</code>または<code>boost::adjacency_matrix</code>のいずれかによって表される基本となるグラフから隣接行列</strong>を抽出し、私は<strong>への道を探しています<strong>ブーストグラフライブラリ</strong>を使用してBGLグラフ
は、ここであなたが軌道に乗るために、最小限の例です。
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/adjacency_matrix.hpp>
using namespace boost;
typedef boost::adjacency_list< listS, vecS, directedS > ListGraph;
typedef boost::adjacency_matrix<directedS> MatrixGraph;
int main(){
ListGraph lg;
add_edge (0, 1, lg);
add_edge (0, 3, lg);
add_edge (1, 2, lg);
add_edge (2, 3, lg);
//How do I get the adjacency matrix underlying lg?
MatrixGraph mg(3);
add_edge (0, 1, mg);
add_edge (0, 3, mg);
add_edge (1, 2, mg);
add_edge (2, 3, mg);
//How do I get the adjacency matrix underlying mg?
}
誰もが、私はずっと義務を負うことになる隣接行列を取得するための効率的な方法を考え出すことができれば。理想的には、このソリューションはuBLASと互換性があります。私は、グラフ全体の反復を避ける方法があるのだろうかと思います。
私はわからないんだけど、私は、グラフを反復関与しないことこれを達成する方法があるとは思いません。うまくいけば、誰かが私を間違っていると証明しますが、その間にあなたは[it](http://liveworkspace.org/code/1M7a0s$1)を見れば、それは反復によって本当に簡単だと分かります。 –