석박사/최적화는 사기가 아니얏!

TSP 연구에 사용할만한 솔버와 예제 문제

밍이의 꿈 2021. 10. 13. 09:19

TSP란?

TSP 는 np hard 문제이다. 다항 시간 내에 최적해를 찾을 수 없는 문제의 특성때문에 사이즈가 큰 instance 의 경우 아직도 최적해를 찾아나가고 있는 중이며 현재까지 찾은 해중 가장 좋은 해를 best known solution 이라 명명한다

 

TSPLIB

유명한 instance 들은 아래에서 찾아볼 수 있다. 만일 누군가 TSP 문제를 더 효율적으로 풀기 위한 heuristic 을 개발했다고 해보자. 그 성능 (얼마나 빨리 더 좋은 해를 찾나) 을 기존에 제시된 알고리즘과 비교하기위해 특수한 instance 가 아니라 잘 알려진 instance 에 적용해보고 싶을 수 있다. 그럴때 사용할수 있는 것이 TSPLIB 이다.
http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/

 

TSPLIB

TSPLIB TSPLIB is a library of sample instances for the TSP (and related problems) from various sources and of various types. Note that it is not intended to add further problems instances (1.1.2013) Please read the FAQ and the Documentation before reportin

comopt.ifi.uni-heidelberg.de

CVRPLIB

http://vrp.atd-lab.inf.puc-rio.br/index.php/en/

 

CVRPLIB - All Instances

 

vrp.atd-lab.inf.puc-rio.br

CVRP 푸는 알고리즘을 개발하고나면 본인 알고리즘이 성능이 어느정도인지를 파악하기 위한 benchmark가 필요하다. 

본 사이트에는 well known 데이터셋과 best known optimal solution 가 나와있다. 연구자들이 많이 사용하는 잘알려진 데이터 셋이므로 연구 목적으로 사용하기 적합해보인다. 

TSP solver Concorde



Concorde
는 TSP 솔버이다. symmetric TSP 문제를 다룬다는 특징이 있다 (A에서 B로 가는 통행 비용이 B에서 A로 가는 통행 비용과 같은 것을 symmetric TSP 라 한다.)
https://www.math.uwaterloo.ca/tsp/concorde.html

 

Concorde Home

Concorde is a computer code for the symmetric traveling salesman problem (TSP) and some related network optimization problems. The code is written in the ANSI C programming language and it is available for academic research use; for other uses, contact Wil

www.math.uwaterloo.ca

 

솔버를 잘 사용하기 위해서는 기본 원리를 이해해야한다. TSP/VRP 는 discrete optimization 에 기반한다. 다음 강의를 추천한다. 

https://www.coursera.org/learn/discrete-optimization/lecture/QB8JE/vehicle-routing

 

Vehicle Routing - Advanced Topics: Part I | Coursera

Video created by 멜버른 대학교 for the course "이산형 최적화". These lectures cover some more advanced concepts in optimization. They introduce constraint-programming techniques for scheduling and routing.

www.coursera.org