A Niching Memetic Algorithm for Multi-Solution Traveling Salesman Problem