Stosując bodźcem wykres biblioteki szukam sposób ekstraktu matrycy przylegania z bazowego wykresu przedstawionego obu boost::adjacency_list
lub boost::adjacency_matrix
. Chciałbym użyć tej macierzy w połączeniu z boost::numeric::ublas
, aby rozwiązać system równoczesnych równań liniowych.Ekstrakt matrycy przylegania z wykresu BGL
Oto minimalne przykład aby można było tam:
#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?
}
Jeśli ktoś mógł wymyślić skuteczny sposób, aby uzyskać macierz sąsiedztwa byłbym bardzo zobowiązany. Idealnie rozwiązanie jest kompatybilne z uBLAS. Zastanawiam się, czy istnieje sposób na uniknięcie iteracji na całym wykresie.
Nie jestem pewien, ale nie sądzę, istnieje sposób, aby osiągnąć to, że nie wiąże się iteracja wykresie. Mam nadzieję, że ktoś mnie oszuka, ale w międzyczasie można zobaczyć [tutaj] (http://liveworkspace.org/code/1M7a0s$1), że jest to naprawdę łatwe dzięki iteracji. –