procedure Random-Restart-Hill-Climbing begin initialize restarts to 10 initialize bestNode at random print repeat select a starting point, currentNode, at random update NodesGenerated if evaluation(currentNode) < evaluation(bestNode) bestNode<-currentNode initialize climbs to 100 repeat select a new point, newNode, in the neighborhood of currentNode using the twoInterchange method with random cities update NodesGenerated if evaluation(newNode) < evaluation(currentNode) currentNode <- newNode if evaluation(currentNode) < evaluation(bestNode) bestNode <- currentNode print climbs <- climbs - 1 until climbs = 0 restarts <- restarts - 1 until restarts = 0 end