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 acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk