solver for travelling salesman problem