solving travelling salesman problem