邻接矩阵使用Boost图库我正在寻找一种方法来从由任一boost::adjacency_list
或boost::adjacency_matrix
表示的底层图提取邻接矩阵。我想用这个矩阵结合boost::numeric::ublas
来解决一个联立线性方程组的系统。提取从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兼容。我想知道是否有办法避免遍历整个图。
我不知道,但我不认为有一种方式来完成这项不涉及通过图形迭代。希望有人会证明我错了,但在此期间,你可以看到[这里](http://liveworkspace.org/code/1M7a0s$1),它通过迭代很容易。 – 2013-03-21 13:35:37