ostream& operator<<(ostream& os, const HeuristicValue& v) {
std::ostream& operator<<(std::ostream& os, const HeuristicValue& v) {
ostream& operator<<(ostream& os, const HeuristicValue& v) {  os << "MAX<" << v.max_cost() << ',' << v.max_work() << '>'     << " ADD<" << v.add_cost() << ',' << v.add_work() << '>';  return os;}