Solving TSPLIB Instances
The file tspSolver/src/main/Main.java contains code that will run your solver on instances from the TSPLIB database. The main method of this class begins with
public static void main(String[] args) { String[] problemNames = new String[]{"bier127","eil51","brd14051","ch130","ch150","d198", "d493","d657", "d1291","fl1400"}; String problemName = problemNames[1]; //...
Here the elements of problemNames
are files in the directory sampleData/TSPLIB/ that existing code will parse for you into a problem instance. The number in the file name refers to the number of cities in the problem. You can adjust which problem is attempted by assigning a different value to problemName
(by changing the index used to access problemNames
, or if you prefer, typing in a file name manually). Try running your solver on a few different instances (start with smaller ones).
Problem Name |
eil51 |
bier127 |
ch130 |
ch150 |
d198 |
---|---|---|---|---|---|
Run time |
0.11 |
0.77 |
1.98 |
5.09 |
17.57 |
Performance degrades pretty quickly on larger problems. On my machine, d493 took over 5000 seconds to solve, and created over 250,000 nodes in branch and bound!
Interpreting CPLEX Output
When running the solver, the output generated by CPLEX is directed is printed out to the console. A complete explanation of what all of the output means can be found in the user manual here. We will explain the output as needed to motivate improvements to our TSP solver.