Boost logo

Boost :

Subject: [boost] [Boost Graph Library] Having trouble constructing necessary parameters for the isomorphism algorithm
From: Alexander Bock (sky_ax_at_[hidden])
Date: 2010-12-30 13:01:36

Hi all,
First of all, I new to the mailing list, so please excuse me for any beginner's mistakes I may make :) I am also new to the Boost Graph Library.
I am having some trouble implementing the Boost Graph Library isomorphism algorithm under MSVC++ 2008 Express Edition. Since I am using MSVC++, I cannot use the named parameter method, as specified in the docs. I am not entirely sure, but I think my problem is the vertex invariants that I pass to the algorithm. I am using Boost 1.43.
My graph and relevant typedefs look like this:
typedef adjacency_list<listS, listS, undirectedS, VertexProperty, EdgeProperty, no_property, listS> UndirectedGraph;
typedef graph_traits<UndirectedGraph>::vertex_descriptor VertexDescriptor;
I am using bundled properties:
struct VertexProperty
     string id;
     int index;
struct EdgeProperty
     string id;
     int weight;
Here's my code that tries to call the isomorphism algorithm:
bool BoostGraph::Compare(BoostGraph& comparableGraph)
     vector<VertexDescriptor> f(GetNoVertices());
     property_map<UndirectedGraph, int VertexProperty::*>::type indexMap1 = get(&VertexProperty::index, uGraph);
     property_map<UndirectedGraph, int VertexProperty::*>::type indexMap2 = get(&VertexProperty::index, comparableGraph.GetGraph());
     return isomorphism(uGraph, comparableGraph.GetGraph(), isomorphism_map(make_iterator_property_map(f.begin(), indexMap1, f[0])), ???, ???, vertex_invariant2.max(), indexMap1, indexMap2);
The two '???' are where I need to pass the vertex degree invariants, but I do not know how to construct them. I hope I have supplied sufficient information for you.
Thanks in advance!

Boost list run by bdawes at, gregod at, cpdaniel at, john at