OK, I will cleanup the Nearest (not 'nearby' - whoops)) Neighbor code as much as possible to get it ready for submission as well as my slight modifications to the original metric_tsp_approx code. As a part of this, I also have modification to tree_traits.hpp, graph_concepts.hpp, the test harness (renamed to 'tsp_algo_examples.cpp') which were originally suggested by Andrew but I did not do at the time. I will share via email. Some comments: 1) Christofides approximation algorithm does the 1.5x max solution with MST + min weight perfect matching. It is O(V^3). I would prefer to write faster algorithm/heuristic that scales better. I will perhaps look into Christofides and/or LK after I finish the greedy Nearest Neighbor. 2) Thank you, I step through your implementation. 3) Besides graphviz (which is not interactive), I am not aware of a built-in way of creating an interactive UI like you describe. I see no reason why it couldn't be used with UI code separately though, seems very straight forward. Simply separate the UI and the graph code in a encapsulated way. Can probably be done with metric_tsp_approx as-is.