ブースト グラフ ライブラリを使用して、またはで表される基になるグラフから隣接行列を抽出する方法を探しています。この行列を と組み合わせて使用して、連立一次方程式を解きたいと思います。boost::adjacency_list
boost::adjacency_matrix
boost::numeric::ublas
これは、あなたが始めるための最小限の例です:
#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 と互換性があります。グラフ全体の反復を回避する方法があるのだろうか。