struct LessNode{
bool operator()(std::shared_ptr<Node> const & ln, std::shared_ptr<Node> const & rn) const {
if (ln->get_totalcost() < rn->get_totalcost())
return true;
else if (ln->get_totalcost() > rn->get_totalcost())
return false;
return ln.get() < rn.get();
}
};