I have some very simple, non-generic implementation of contraction hierarchies for boost graph. In about 2-3 weeks, I would like to develop it further and try to generalize it, but this would be the first time for me to develop generic algorithms, so it might happen I need some help :D
I'd say that it shouldn't be too hard, but I would probably be wrong :) Making something generic is an iterative process. I would probably start by abstracting (genericizing, making template parameters, etc.) the graph types that your operate on. You could modify your code to operate on graphs that conform to the BGL concepts. Then post up some code, and we can review it. The next steps would be to slowly parameterize the functionality of the algorithms--abstract operators into functor parameters. That can actually be a fairly difficult process to get "just right". If you're interested, give it a try and post the results here. Andrew Sutton andrew.n.sutton@gmail.com