heatingma
commited on
Commit
·
bec0514
1
Parent(s):
134e90e
Initial Commit
Browse files- app.py +149 -0
- example/a280.tsp +287 -0
- example/att48.tsp +55 -0
- example/berlin52.tsp +60 -0
- example/ch130.tsp +137 -0
- example/ch150.tsp +157 -0
- media/tsp_problem.png +0 -0
- media/tsp_solution.png +0 -0
- requirements.txt +3 -0
- static/tsp_default.png +0 -0
app.py
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import time
|
| 2 |
+
import shutil
|
| 3 |
+
import uvicorn
|
| 4 |
+
import gradio as gr
|
| 5 |
+
from fastapi import FastAPI
|
| 6 |
+
from data4co import TSPConcordeSolver, draw_tsp_problem, draw_tsp_solution
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
TSP_DEFAULT_PATH = "static/tso_default.png"
|
| 10 |
+
TSP_PROBLEM_PATH = "media/tsp_problem.png"
|
| 11 |
+
TSP_SOLUTION_PATH = "media/tsp_solution.png"
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
def _handle_tsp_solve(
|
| 15 |
+
file_path: str,
|
| 16 |
+
norm: str,
|
| 17 |
+
):
|
| 18 |
+
if file_path is None:
|
| 19 |
+
raise gr.Error("Please upload a '.tsp' file!")
|
| 20 |
+
if norm == '':
|
| 21 |
+
norm = "EUC_2D"
|
| 22 |
+
if norm != "EUC_2D" and norm != "GEO":
|
| 23 |
+
raise gr.Error("Invaild edge_weight_type! Only support 'GEO' and 'EUC_2D'.")
|
| 24 |
+
solver = TSPConcordeSolver(scale=1)
|
| 25 |
+
solver.from_tsp(file_path, norm=norm)
|
| 26 |
+
start_time = time.time()
|
| 27 |
+
solver.solve()
|
| 28 |
+
solved_time = time.time() - start_time
|
| 29 |
+
tours = solver.tours
|
| 30 |
+
points = solver.points
|
| 31 |
+
draw_tsp_problem(
|
| 32 |
+
save_path=TSP_PROBLEM_PATH,
|
| 33 |
+
points=points,
|
| 34 |
+
)
|
| 35 |
+
draw_tsp_solution(
|
| 36 |
+
save_path=TSP_SOLUTION_PATH,
|
| 37 |
+
points=points,
|
| 38 |
+
tours=tours
|
| 39 |
+
)
|
| 40 |
+
message = "Successfully solve the TSP problem, using time ({:.3f}s).".format(solved_time)
|
| 41 |
+
|
| 42 |
+
return message, TSP_PROBLEM_PATH, TSP_SOLUTION_PATH
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
def handle_tsp_solve(
|
| 46 |
+
file_path: str,
|
| 47 |
+
norm: str,
|
| 48 |
+
):
|
| 49 |
+
try:
|
| 50 |
+
message = _handle_tsp_solve(file_path, norm)
|
| 51 |
+
except Exception as e:
|
| 52 |
+
message = str(e)
|
| 53 |
+
return message
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
def handle_tsp_clear():
|
| 57 |
+
shutil.copy(
|
| 58 |
+
src=TSP_DEFAULT_PATH,
|
| 59 |
+
dst=TSP_PROBLEM_PATH
|
| 60 |
+
)
|
| 61 |
+
shutil.copy(
|
| 62 |
+
src=TSP_DEFAULT_PATH,
|
| 63 |
+
dst=TSP_SOLUTION_PATH
|
| 64 |
+
)
|
| 65 |
+
message = "successfully clear the files!"
|
| 66 |
+
return message, TSP_PROBLEM_PATH, TSP_SOLUTION_PATH
|
| 67 |
+
|
| 68 |
+
|
| 69 |
+
def convert_image_path_to_bytes(image_path):
|
| 70 |
+
with open(image_path, "rb") as f:
|
| 71 |
+
image_bytes = f.read()
|
| 72 |
+
return image_bytes
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
with gr.Blocks() as tsp_page:
|
| 76 |
+
|
| 77 |
+
gr.Markdown(
|
| 78 |
+
'''
|
| 79 |
+
This space displays the solution to the TSP problem.
|
| 80 |
+
|
| 81 |
+
## How to use this Space?
|
| 82 |
+
- Upload a '.tsp' file from tsplib .
|
| 83 |
+
- The images of the TSP problem and solution will be shown after you click the solve button.
|
| 84 |
+
- Click the 'clear' button to clear all the files.
|
| 85 |
+
'''
|
| 86 |
+
)
|
| 87 |
+
|
| 88 |
+
with gr.Row(variant="panel"):
|
| 89 |
+
with gr.Column(scale=7):
|
| 90 |
+
with gr.Row():
|
| 91 |
+
tsp_file = gr.File(
|
| 92 |
+
file_types=[".tsp"],
|
| 93 |
+
scale=3
|
| 94 |
+
)
|
| 95 |
+
info = gr.Textbox(
|
| 96 |
+
value="",
|
| 97 |
+
label="Log",
|
| 98 |
+
scale=4,
|
| 99 |
+
)
|
| 100 |
+
norm = gr.Textbox(
|
| 101 |
+
label="Please input the edge_weight_type of the TSP file",
|
| 102 |
+
)
|
| 103 |
+
with gr.Column(scale=4):
|
| 104 |
+
tsp_problem_img = gr.Image(
|
| 105 |
+
value="media/tsp_problem.png",
|
| 106 |
+
type="filepath",
|
| 107 |
+
label="TSP Problem",
|
| 108 |
+
)
|
| 109 |
+
with gr.Column(scale=4):
|
| 110 |
+
tsp_solution_img = gr.Image(
|
| 111 |
+
value="media/tsp_solution.png",
|
| 112 |
+
type="filepath",
|
| 113 |
+
label="TSP Solution",
|
| 114 |
+
)
|
| 115 |
+
with gr.Row():
|
| 116 |
+
with gr.Column(scale=1, min_width=100):
|
| 117 |
+
solve_button = gr.Button(
|
| 118 |
+
value="Solve",
|
| 119 |
+
variant="primary",
|
| 120 |
+
scale=1
|
| 121 |
+
)
|
| 122 |
+
with gr.Column(scale=1, min_width=100):
|
| 123 |
+
clear_button = gr.Button(
|
| 124 |
+
"Clear",
|
| 125 |
+
variant="secondary",
|
| 126 |
+
scale=1
|
| 127 |
+
)
|
| 128 |
+
with gr.Column(scale=8):
|
| 129 |
+
pass
|
| 130 |
+
|
| 131 |
+
solve_button.click(
|
| 132 |
+
handle_tsp_solve,
|
| 133 |
+
[tsp_file, norm],
|
| 134 |
+
outputs=[info, tsp_problem_img, tsp_solution_img]
|
| 135 |
+
)
|
| 136 |
+
|
| 137 |
+
clear_button.click(
|
| 138 |
+
handle_tsp_clear,
|
| 139 |
+
inputs=None,
|
| 140 |
+
outputs=[info, tsp_problem_img, tsp_solution_img]
|
| 141 |
+
)
|
| 142 |
+
|
| 143 |
+
|
| 144 |
+
app = FastAPI()
|
| 145 |
+
app = gr.mount_gradio_app(app, tsp_page, path="/")
|
| 146 |
+
|
| 147 |
+
|
| 148 |
+
if __name__ == "__main__":
|
| 149 |
+
uvicorn.run(app, host="0.0.0.0", port=7860)
|
example/a280.tsp
ADDED
|
@@ -0,0 +1,287 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
NAME : a280
|
| 2 |
+
COMMENT : drilling problem (Ludwig)
|
| 3 |
+
TYPE : TSP
|
| 4 |
+
DIMENSION: 280
|
| 5 |
+
EDGE_WEIGHT_TYPE : EUC_2D
|
| 6 |
+
NODE_COORD_SECTION
|
| 7 |
+
1 288 149
|
| 8 |
+
2 288 129
|
| 9 |
+
3 270 133
|
| 10 |
+
4 256 141
|
| 11 |
+
5 256 157
|
| 12 |
+
6 246 157
|
| 13 |
+
7 236 169
|
| 14 |
+
8 228 169
|
| 15 |
+
9 228 161
|
| 16 |
+
10 220 169
|
| 17 |
+
11 212 169
|
| 18 |
+
12 204 169
|
| 19 |
+
13 196 169
|
| 20 |
+
14 188 169
|
| 21 |
+
15 196 161
|
| 22 |
+
16 188 145
|
| 23 |
+
17 172 145
|
| 24 |
+
18 164 145
|
| 25 |
+
19 156 145
|
| 26 |
+
20 148 145
|
| 27 |
+
21 140 145
|
| 28 |
+
22 148 169
|
| 29 |
+
23 164 169
|
| 30 |
+
24 172 169
|
| 31 |
+
25 156 169
|
| 32 |
+
26 140 169
|
| 33 |
+
27 132 169
|
| 34 |
+
28 124 169
|
| 35 |
+
29 116 161
|
| 36 |
+
30 104 153
|
| 37 |
+
31 104 161
|
| 38 |
+
32 104 169
|
| 39 |
+
33 90 165
|
| 40 |
+
34 80 157
|
| 41 |
+
35 64 157
|
| 42 |
+
36 64 165
|
| 43 |
+
37 56 169
|
| 44 |
+
38 56 161
|
| 45 |
+
39 56 153
|
| 46 |
+
40 56 145
|
| 47 |
+
41 56 137
|
| 48 |
+
42 56 129
|
| 49 |
+
43 56 121
|
| 50 |
+
44 40 121
|
| 51 |
+
45 40 129
|
| 52 |
+
46 40 137
|
| 53 |
+
47 40 145
|
| 54 |
+
48 40 153
|
| 55 |
+
49 40 161
|
| 56 |
+
50 40 169
|
| 57 |
+
51 32 169
|
| 58 |
+
52 32 161
|
| 59 |
+
53 32 153
|
| 60 |
+
54 32 145
|
| 61 |
+
55 32 137
|
| 62 |
+
56 32 129
|
| 63 |
+
57 32 121
|
| 64 |
+
58 32 113
|
| 65 |
+
59 40 113
|
| 66 |
+
60 56 113
|
| 67 |
+
61 56 105
|
| 68 |
+
62 48 99
|
| 69 |
+
63 40 99
|
| 70 |
+
64 32 97
|
| 71 |
+
65 32 89
|
| 72 |
+
66 24 89
|
| 73 |
+
67 16 97
|
| 74 |
+
68 16 109
|
| 75 |
+
69 8 109
|
| 76 |
+
70 8 97
|
| 77 |
+
71 8 89
|
| 78 |
+
72 8 81
|
| 79 |
+
73 8 73
|
| 80 |
+
74 8 65
|
| 81 |
+
75 8 57
|
| 82 |
+
76 16 57
|
| 83 |
+
77 8 49
|
| 84 |
+
78 8 41
|
| 85 |
+
79 24 45
|
| 86 |
+
80 32 41
|
| 87 |
+
81 32 49
|
| 88 |
+
82 32 57
|
| 89 |
+
83 32 65
|
| 90 |
+
84 32 73
|
| 91 |
+
85 32 81
|
| 92 |
+
86 40 83
|
| 93 |
+
87 40 73
|
| 94 |
+
88 40 63
|
| 95 |
+
89 40 51
|
| 96 |
+
90 44 43
|
| 97 |
+
91 44 35
|
| 98 |
+
92 44 27
|
| 99 |
+
93 32 25
|
| 100 |
+
94 24 25
|
| 101 |
+
95 16 25
|
| 102 |
+
96 16 17
|
| 103 |
+
97 24 17
|
| 104 |
+
98 32 17
|
| 105 |
+
99 44 11
|
| 106 |
+
100 56 9
|
| 107 |
+
101 56 17
|
| 108 |
+
102 56 25
|
| 109 |
+
103 56 33
|
| 110 |
+
104 56 41
|
| 111 |
+
105 64 41
|
| 112 |
+
106 72 41
|
| 113 |
+
107 72 49
|
| 114 |
+
108 56 49
|
| 115 |
+
109 48 51
|
| 116 |
+
110 56 57
|
| 117 |
+
111 56 65
|
| 118 |
+
112 48 63
|
| 119 |
+
113 48 73
|
| 120 |
+
114 56 73
|
| 121 |
+
115 56 81
|
| 122 |
+
116 48 83
|
| 123 |
+
117 56 89
|
| 124 |
+
118 56 97
|
| 125 |
+
119 104 97
|
| 126 |
+
120 104 105
|
| 127 |
+
121 104 113
|
| 128 |
+
122 104 121
|
| 129 |
+
123 104 129
|
| 130 |
+
124 104 137
|
| 131 |
+
125 104 145
|
| 132 |
+
126 116 145
|
| 133 |
+
127 124 145
|
| 134 |
+
128 132 145
|
| 135 |
+
129 132 137
|
| 136 |
+
130 140 137
|
| 137 |
+
131 148 137
|
| 138 |
+
132 156 137
|
| 139 |
+
133 164 137
|
| 140 |
+
134 172 125
|
| 141 |
+
135 172 117
|
| 142 |
+
136 172 109
|
| 143 |
+
137 172 101
|
| 144 |
+
138 172 93
|
| 145 |
+
139 172 85
|
| 146 |
+
140 180 85
|
| 147 |
+
141 180 77
|
| 148 |
+
142 180 69
|
| 149 |
+
143 180 61
|
| 150 |
+
144 180 53
|
| 151 |
+
145 172 53
|
| 152 |
+
146 172 61
|
| 153 |
+
147 172 69
|
| 154 |
+
148 172 77
|
| 155 |
+
149 164 81
|
| 156 |
+
150 148 85
|
| 157 |
+
151 124 85
|
| 158 |
+
152 124 93
|
| 159 |
+
153 124 109
|
| 160 |
+
154 124 125
|
| 161 |
+
155 124 117
|
| 162 |
+
156 124 101
|
| 163 |
+
157 104 89
|
| 164 |
+
158 104 81
|
| 165 |
+
159 104 73
|
| 166 |
+
160 104 65
|
| 167 |
+
161 104 49
|
| 168 |
+
162 104 41
|
| 169 |
+
163 104 33
|
| 170 |
+
164 104 25
|
| 171 |
+
165 104 17
|
| 172 |
+
166 92 9
|
| 173 |
+
167 80 9
|
| 174 |
+
168 72 9
|
| 175 |
+
169 64 21
|
| 176 |
+
170 72 25
|
| 177 |
+
171 80 25
|
| 178 |
+
172 80 25
|
| 179 |
+
173 80 41
|
| 180 |
+
174 88 49
|
| 181 |
+
175 104 57
|
| 182 |
+
176 124 69
|
| 183 |
+
177 124 77
|
| 184 |
+
178 132 81
|
| 185 |
+
179 140 65
|
| 186 |
+
180 132 61
|
| 187 |
+
181 124 61
|
| 188 |
+
182 124 53
|
| 189 |
+
183 124 45
|
| 190 |
+
184 124 37
|
| 191 |
+
185 124 29
|
| 192 |
+
186 132 21
|
| 193 |
+
187 124 21
|
| 194 |
+
188 120 9
|
| 195 |
+
189 128 9
|
| 196 |
+
190 136 9
|
| 197 |
+
191 148 9
|
| 198 |
+
192 162 9
|
| 199 |
+
193 156 25
|
| 200 |
+
194 172 21
|
| 201 |
+
195 180 21
|
| 202 |
+
196 180 29
|
| 203 |
+
197 172 29
|
| 204 |
+
198 172 37
|
| 205 |
+
199 172 45
|
| 206 |
+
200 180 45
|
| 207 |
+
201 180 37
|
| 208 |
+
202 188 41
|
| 209 |
+
203 196 49
|
| 210 |
+
204 204 57
|
| 211 |
+
205 212 65
|
| 212 |
+
206 220 73
|
| 213 |
+
207 228 69
|
| 214 |
+
208 228 77
|
| 215 |
+
209 236 77
|
| 216 |
+
210 236 69
|
| 217 |
+
211 236 61
|
| 218 |
+
212 228 61
|
| 219 |
+
213 228 53
|
| 220 |
+
214 236 53
|
| 221 |
+
215 236 45
|
| 222 |
+
216 228 45
|
| 223 |
+
217 228 37
|
| 224 |
+
218 236 37
|
| 225 |
+
219 236 29
|
| 226 |
+
220 228 29
|
| 227 |
+
221 228 21
|
| 228 |
+
222 236 21
|
| 229 |
+
223 252 21
|
| 230 |
+
224 260 29
|
| 231 |
+
225 260 37
|
| 232 |
+
226 260 45
|
| 233 |
+
227 260 53
|
| 234 |
+
228 260 61
|
| 235 |
+
229 260 69
|
| 236 |
+
230 260 77
|
| 237 |
+
231 276 77
|
| 238 |
+
232 276 69
|
| 239 |
+
233 276 61
|
| 240 |
+
234 276 53
|
| 241 |
+
235 284 53
|
| 242 |
+
236 284 61
|
| 243 |
+
237 284 69
|
| 244 |
+
238 284 77
|
| 245 |
+
239 284 85
|
| 246 |
+
240 284 93
|
| 247 |
+
241 284 101
|
| 248 |
+
242 288 109
|
| 249 |
+
243 280 109
|
| 250 |
+
244 276 101
|
| 251 |
+
245 276 93
|
| 252 |
+
246 276 85
|
| 253 |
+
247 268 97
|
| 254 |
+
248 260 109
|
| 255 |
+
249 252 101
|
| 256 |
+
250 260 93
|
| 257 |
+
251 260 85
|
| 258 |
+
252 236 85
|
| 259 |
+
253 228 85
|
| 260 |
+
254 228 93
|
| 261 |
+
255 236 93
|
| 262 |
+
256 236 101
|
| 263 |
+
257 228 101
|
| 264 |
+
258 228 109
|
| 265 |
+
259 228 117
|
| 266 |
+
260 228 125
|
| 267 |
+
261 220 125
|
| 268 |
+
262 212 117
|
| 269 |
+
263 204 109
|
| 270 |
+
264 196 101
|
| 271 |
+
265 188 93
|
| 272 |
+
266 180 93
|
| 273 |
+
267 180 101
|
| 274 |
+
268 180 109
|
| 275 |
+
269 180 117
|
| 276 |
+
270 180 125
|
| 277 |
+
271 196 145
|
| 278 |
+
272 204 145
|
| 279 |
+
273 212 145
|
| 280 |
+
274 220 145
|
| 281 |
+
275 228 145
|
| 282 |
+
276 236 145
|
| 283 |
+
277 246 141
|
| 284 |
+
278 252 125
|
| 285 |
+
279 260 129
|
| 286 |
+
280 280 133
|
| 287 |
+
EOF
|
example/att48.tsp
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
NAME : att48
|
| 2 |
+
COMMENT : 48 capitals of the US (Padberg/Rinaldi)
|
| 3 |
+
TYPE : TSP
|
| 4 |
+
DIMENSION : 48
|
| 5 |
+
EDGE_WEIGHT_TYPE : ATT
|
| 6 |
+
NODE_COORD_SECTION
|
| 7 |
+
1 6734 1453
|
| 8 |
+
2 2233 10
|
| 9 |
+
3 5530 1424
|
| 10 |
+
4 401 841
|
| 11 |
+
5 3082 1644
|
| 12 |
+
6 7608 4458
|
| 13 |
+
7 7573 3716
|
| 14 |
+
8 7265 1268
|
| 15 |
+
9 6898 1885
|
| 16 |
+
10 1112 2049
|
| 17 |
+
11 5468 2606
|
| 18 |
+
12 5989 2873
|
| 19 |
+
13 4706 2674
|
| 20 |
+
14 4612 2035
|
| 21 |
+
15 6347 2683
|
| 22 |
+
16 6107 669
|
| 23 |
+
17 7611 5184
|
| 24 |
+
18 7462 3590
|
| 25 |
+
19 7732 4723
|
| 26 |
+
20 5900 3561
|
| 27 |
+
21 4483 3369
|
| 28 |
+
22 6101 1110
|
| 29 |
+
23 5199 2182
|
| 30 |
+
24 1633 2809
|
| 31 |
+
25 4307 2322
|
| 32 |
+
26 675 1006
|
| 33 |
+
27 7555 4819
|
| 34 |
+
28 7541 3981
|
| 35 |
+
29 3177 756
|
| 36 |
+
30 7352 4506
|
| 37 |
+
31 7545 2801
|
| 38 |
+
32 3245 3305
|
| 39 |
+
33 6426 3173
|
| 40 |
+
34 4608 1198
|
| 41 |
+
35 23 2216
|
| 42 |
+
36 7248 3779
|
| 43 |
+
37 7762 4595
|
| 44 |
+
38 7392 2244
|
| 45 |
+
39 3484 2829
|
| 46 |
+
40 6271 2135
|
| 47 |
+
41 4985 140
|
| 48 |
+
42 1916 1569
|
| 49 |
+
43 7280 4899
|
| 50 |
+
44 7509 3239
|
| 51 |
+
45 10 2676
|
| 52 |
+
46 6807 2993
|
| 53 |
+
47 5185 3258
|
| 54 |
+
48 3023 1942
|
| 55 |
+
EOF
|
example/berlin52.tsp
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
NAME: berlin52
|
| 2 |
+
TYPE: TSP
|
| 3 |
+
COMMENT: 52 locations in Berlin (Groetschel)
|
| 4 |
+
DIMENSION: 52
|
| 5 |
+
EDGE_WEIGHT_TYPE: EUC_2D
|
| 6 |
+
NODE_COORD_SECTION
|
| 7 |
+
1 565.0 575.0
|
| 8 |
+
2 25.0 185.0
|
| 9 |
+
3 345.0 750.0
|
| 10 |
+
4 945.0 685.0
|
| 11 |
+
5 845.0 655.0
|
| 12 |
+
6 880.0 660.0
|
| 13 |
+
7 25.0 230.0
|
| 14 |
+
8 525.0 1000.0
|
| 15 |
+
9 580.0 1175.0
|
| 16 |
+
10 650.0 1130.0
|
| 17 |
+
11 1605.0 620.0
|
| 18 |
+
12 1220.0 580.0
|
| 19 |
+
13 1465.0 200.0
|
| 20 |
+
14 1530.0 5.0
|
| 21 |
+
15 845.0 680.0
|
| 22 |
+
16 725.0 370.0
|
| 23 |
+
17 145.0 665.0
|
| 24 |
+
18 415.0 635.0
|
| 25 |
+
19 510.0 875.0
|
| 26 |
+
20 560.0 365.0
|
| 27 |
+
21 300.0 465.0
|
| 28 |
+
22 520.0 585.0
|
| 29 |
+
23 480.0 415.0
|
| 30 |
+
24 835.0 625.0
|
| 31 |
+
25 975.0 580.0
|
| 32 |
+
26 1215.0 245.0
|
| 33 |
+
27 1320.0 315.0
|
| 34 |
+
28 1250.0 400.0
|
| 35 |
+
29 660.0 180.0
|
| 36 |
+
30 410.0 250.0
|
| 37 |
+
31 420.0 555.0
|
| 38 |
+
32 575.0 665.0
|
| 39 |
+
33 1150.0 1160.0
|
| 40 |
+
34 700.0 580.0
|
| 41 |
+
35 685.0 595.0
|
| 42 |
+
36 685.0 610.0
|
| 43 |
+
37 770.0 610.0
|
| 44 |
+
38 795.0 645.0
|
| 45 |
+
39 720.0 635.0
|
| 46 |
+
40 760.0 650.0
|
| 47 |
+
41 475.0 960.0
|
| 48 |
+
42 95.0 260.0
|
| 49 |
+
43 875.0 920.0
|
| 50 |
+
44 700.0 500.0
|
| 51 |
+
45 555.0 815.0
|
| 52 |
+
46 830.0 485.0
|
| 53 |
+
47 1170.0 65.0
|
| 54 |
+
48 830.0 610.0
|
| 55 |
+
49 605.0 625.0
|
| 56 |
+
50 595.0 360.0
|
| 57 |
+
51 1340.0 725.0
|
| 58 |
+
52 1740.0 245.0
|
| 59 |
+
EOF
|
| 60 |
+
|
example/ch130.tsp
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
NAME: ch130
|
| 2 |
+
TYPE: TSP
|
| 3 |
+
COMMENT: 130 city problem (Churritz)
|
| 4 |
+
DIMENSION: 130
|
| 5 |
+
EDGE_WEIGHT_TYPE: EUC_2D
|
| 6 |
+
NODE_COORD_SECTION
|
| 7 |
+
1 334.5909245845 161.7809319139
|
| 8 |
+
2 397.6446634067 262.8165330708
|
| 9 |
+
3 503.8741827107 172.8741151168
|
| 10 |
+
4 444.0479403502 384.6491809647
|
| 11 |
+
5 311.6137146746 2.0091699828
|
| 12 |
+
6 662.8551011379 549.2301263653
|
| 13 |
+
7 40.0979030612 187.2375430791
|
| 14 |
+
8 526.8941409181 215.7079092185
|
| 15 |
+
9 209.1887938487 691.0262291948
|
| 16 |
+
10 683.2674131973 414.2096286906
|
| 17 |
+
11 280.7494438748 5.9206392047
|
| 18 |
+
12 252.7493090080 535.7430385019
|
| 19 |
+
13 698.7850451923 348.4413729766
|
| 20 |
+
14 678.7574678104 410.7256424438
|
| 21 |
+
15 220.0041131179 409.1225812873
|
| 22 |
+
16 355.1528556851 76.3912076444
|
| 23 |
+
17 296.9724227786 313.1312792361
|
| 24 |
+
18 504.5154071733 240.8866564499
|
| 25 |
+
19 224.1079496785 358.4872228907
|
| 26 |
+
20 470.6801296968 309.6259188406
|
| 27 |
+
21 554.2530513223 279.4242466521
|
| 28 |
+
22 567.6332684419 352.7162027273
|
| 29 |
+
23 599.0532671093 361.0948690386
|
| 30 |
+
24 240.5232959211 430.6036007844
|
| 31 |
+
25 32.0825972787 345.8551009775
|
| 32 |
+
26 91.0538736891 148.7213270256
|
| 33 |
+
27 248.2179894723 343.9528017384
|
| 34 |
+
28 488.8909044347 3.6122311393
|
| 35 |
+
29 206.0467939820 437.7639406167
|
| 36 |
+
30 575.8409415632 141.9670960195
|
| 37 |
+
31 282.6089948164 329.4183805862
|
| 38 |
+
32 27.6581484868 424.7684581747
|
| 39 |
+
33 568.5737309870 287.0975660546
|
| 40 |
+
34 269.4638933331 295.9464636385
|
| 41 |
+
35 417.8004856811 341.2596589955
|
| 42 |
+
36 32.1680938737 448.8998721172
|
| 43 |
+
37 561.4775136009 357.3543930067
|
| 44 |
+
38 342.9482167470 492.3321423839
|
| 45 |
+
39 399.6752075383 156.8435035519
|
| 46 |
+
40 571.7371050025 375.7575350833
|
| 47 |
+
41 370.7559842751 151.9060751898
|
| 48 |
+
42 509.7093253204 435.7975189314
|
| 49 |
+
43 177.0206999750 295.6044772584
|
| 50 |
+
44 526.1674198605 409.4859418161
|
| 51 |
+
45 316.5725171854 65.6400108214
|
| 52 |
+
46 469.2908100279 281.9891445025
|
| 53 |
+
47 572.7630641427 373.3208821255
|
| 54 |
+
48 29.5176994283 330.0382309000
|
| 55 |
+
49 454.0082936692 537.2178547659
|
| 56 |
+
50 416.1546762271 227.6133100741
|
| 57 |
+
51 535.2514330806 471.0648643744
|
| 58 |
+
52 265.4455533675 684.9987192464
|
| 59 |
+
53 478.0542110167 509.6452028741
|
| 60 |
+
54 370.4781203413 332.5390063041
|
| 61 |
+
55 598.3479202004 446.8693279856
|
| 62 |
+
56 201.1521139175 649.0260268945
|
| 63 |
+
57 193.6925360026 680.2322840744
|
| 64 |
+
58 448.5792598859 532.7934059740
|
| 65 |
+
59 603.2853485624 134.4006473609
|
| 66 |
+
60 543.0102490781 481.5168231148
|
| 67 |
+
61 214.5750793346 43.6460117543
|
| 68 |
+
62 426.3501451825 61.7285415996
|
| 69 |
+
63 89.0447037063 277.1158385868
|
| 70 |
+
64 84.4920100219 31.8474816424
|
| 71 |
+
65 220.0468614154 623.0778103080
|
| 72 |
+
66 688.4613313444 0.4702312726
|
| 73 |
+
67 687.2857531630 373.5346236130
|
| 74 |
+
68 75.4934933967 312.9175377486
|
| 75 |
+
69 63.4170993511 23.7039309674
|
| 76 |
+
70 97.9363495877 211.0910930878
|
| 77 |
+
71 399.5255884970 170.8221968365
|
| 78 |
+
72 456.3167017346 597.1937161677
|
| 79 |
+
73 319.8855102422 626.8396604886
|
| 80 |
+
74 295.9250894897 664.6291554845
|
| 81 |
+
75 288.4868857235 667.7284070537
|
| 82 |
+
76 268.3951858954 52.9010181645
|
| 83 |
+
77 140.4709056068 513.5566720960
|
| 84 |
+
78 689.8079027159 167.5947003748
|
| 85 |
+
79 280.5784506848 458.7533546925
|
| 86 |
+
80 453.3884433554 282.9082328989
|
| 87 |
+
81 213.5704943432 525.8681817779
|
| 88 |
+
82 133.6953004520 677.1757808026
|
| 89 |
+
83 521.1658690522 132.8617086506
|
| 90 |
+
84 30.2657946347 450.0754502986
|
| 91 |
+
85 657.0199585283 39.7772908299
|
| 92 |
+
86 6.9252241961 23.8749241575
|
| 93 |
+
87 252.4286967767 535.1659364856
|
| 94 |
+
88 42.8551682504 63.8232081774
|
| 95 |
+
89 145.8999393902 399.5255884970
|
| 96 |
+
90 638.4885715591 62.6262558472
|
| 97 |
+
91 489.2756391122 665.3131282446
|
| 98 |
+
92 361.2231139311 564.2347787901
|
| 99 |
+
93 519.9475425732 347.9711417040
|
| 100 |
+
94 129.3349741063 435.6692740389
|
| 101 |
+
95 259.7172815016 454.6495181318
|
| 102 |
+
96 676.3421890013 371.0979706551
|
| 103 |
+
97 84.5133841706 183.3260738572
|
| 104 |
+
98 77.7164048671 354.3833863300
|
| 105 |
+
99 335.9802442534 660.6321896676
|
| 106 |
+
100 264.3554717810 377.5743377274
|
| 107 |
+
101 51.6826916855 676.0429509187
|
| 108 |
+
102 692.1376849300 543.8010925819
|
| 109 |
+
103 169.2191356800 547.8194325476
|
| 110 |
+
104 194.0131482339 263.4791316822
|
| 111 |
+
105 415.1928395332 78.9133571973
|
| 112 |
+
106 415.0432204919 479.0801701569
|
| 113 |
+
107 169.8389859939 245.6103433244
|
| 114 |
+
108 525.0987124228 213.5063718969
|
| 115 |
+
109 238.6851191283 33.4932910965
|
| 116 |
+
110 116.2112467718 363.5742702940
|
| 117 |
+
111 16.9283258126 656.5711014044
|
| 118 |
+
112 434.3440768162 92.6996831431
|
| 119 |
+
113 40.5253860363 424.6829615797
|
| 120 |
+
114 530.4849979086 183.8390534273
|
| 121 |
+
115 484.3595848990 49.2460387276
|
| 122 |
+
116 263.6501248722 426.5852608187
|
| 123 |
+
117 450.2891917862 126.3853415784
|
| 124 |
+
118 441.7822805823 299.7724362653
|
| 125 |
+
119 24.2169105375 500.3474481664
|
| 126 |
+
120 503.7886861157 514.6895019799
|
| 127 |
+
121 635.5389390312 200.9811207275
|
| 128 |
+
122 614.5922732529 418.8691931188
|
| 129 |
+
123 21.7161351334 660.9741760476
|
| 130 |
+
124 143.8266469611 92.6996831431
|
| 131 |
+
125 637.7191022040 54.2048412384
|
| 132 |
+
126 566.5645610042 199.9551615873
|
| 133 |
+
127 196.6849168280 221.8209157619
|
| 134 |
+
128 384.9270448985 87.4630166986
|
| 135 |
+
129 178.1107815614 104.6905805938
|
| 136 |
+
130 403.2874386776 205.8971749407
|
| 137 |
+
EOF
|
example/ch150.tsp
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
NAME: ch150
|
| 2 |
+
TYPE: TSP
|
| 3 |
+
COMMENT: 150 city Problem (churritz)
|
| 4 |
+
DIMENSION: 150
|
| 5 |
+
EDGE_WEIGHT_TYPE: EUC_2D
|
| 6 |
+
NODE_COORD_SECTION
|
| 7 |
+
1 37.4393516691 541.2090699418
|
| 8 |
+
2 612.1759508571 494.3166877396
|
| 9 |
+
3 38.1312338227 353.1484581781
|
| 10 |
+
4 53.4418081065 131.4849013650
|
| 11 |
+
5 143.0606355347 631.7200953923
|
| 12 |
+
6 689.9451267256 468.5354998742
|
| 13 |
+
7 112.7478815786 529.4177578260
|
| 14 |
+
8 141.4875865042 504.8184855710
|
| 15 |
+
9 661.0513901702 445.9375182115
|
| 16 |
+
10 98.7899036592 384.5926031158
|
| 17 |
+
11 697.3881696597 180.3962284275
|
| 18 |
+
12 536.4894189738 287.2279085051
|
| 19 |
+
13 192.4067320507 20.4394059310
|
| 20 |
+
14 282.7865258765 229.8001556189
|
| 21 |
+
15 240.8251726391 281.5141437200
|
| 22 |
+
16 246.9281323057 322.4613321160
|
| 23 |
+
17 649.7313216456 62.3331575282
|
| 24 |
+
18 352.9658562600 666.7873101942
|
| 25 |
+
19 633.3923676580 534.9398453712
|
| 26 |
+
20 488.3117994040 437.4869439948
|
| 27 |
+
21 141.4039286509 228.4325551488
|
| 28 |
+
22 17.3632612602 240.2407068508
|
| 29 |
+
23 397.5586451389 231.3591208928
|
| 30 |
+
24 565.7853781464 282.3858748974
|
| 31 |
+
25 475.8975387047 468.5392706317
|
| 32 |
+
26 322.4224566559 550.3165478233
|
| 33 |
+
27 397.5586634023 74.7588387765
|
| 34 |
+
28 672.8618339396 432.8826409630
|
| 35 |
+
29 571.2189680147 530.2616991530
|
| 36 |
+
30 104.6531165914 482.8224768783
|
| 37 |
+
31 356.7098388794 67.6477131712
|
| 38 |
+
32 400.4070255527 253.6794479997
|
| 39 |
+
33 282.3036243109 426.8380500923
|
| 40 |
+
34 58.7766988363 507.1712386832
|
| 41 |
+
35 189.7506224400 460.3815233617
|
| 42 |
+
36 659.9124120147 226.6284156239
|
| 43 |
+
37 639.0307636033 467.2302300719
|
| 44 |
+
38 415.0258357432 233.3045376118
|
| 45 |
+
39 547.2662016307 161.6589278401
|
| 46 |
+
40 616.6547902644 339.3409309407
|
| 47 |
+
41 494.8592427417 148.1217856389
|
| 48 |
+
42 629.9980812186 433.4548164038
|
| 49 |
+
43 471.1014312410 314.2219307579
|
| 50 |
+
44 138.2440514421 137.1679919735
|
| 51 |
+
45 91.5847556724 110.0203007516
|
| 52 |
+
46 390.6972811808 423.9774318385
|
| 53 |
+
47 565.1617825137 429.1598152874
|
| 54 |
+
48 54.5248980387 438.5515408431
|
| 55 |
+
49 334.3508329710 153.7969238040
|
| 56 |
+
50 531.0291024509 612.3874827889
|
| 57 |
+
51 475.7345905802 385.7844618897
|
| 58 |
+
52 228.8325218994 410.4461939615
|
| 59 |
+
53 578.3805347586 321.3303494537
|
| 60 |
+
54 358.9170574485 404.4670352898
|
| 61 |
+
55 486.4648554867 593.0429937016
|
| 62 |
+
56 343.1693707670 509.3123571315
|
| 63 |
+
57 530.3626972076 137.6881275684
|
| 64 |
+
58 498.8065475299 576.2102674608
|
| 65 |
+
59 224.3182715500 312.4677490415
|
| 66 |
+
60 595.8360732590 81.8130051356
|
| 67 |
+
61 661.5588724308 217.0456944477
|
| 68 |
+
62 43.6892045516 305.4722789165
|
| 69 |
+
63 79.4653452530 445.9641737689
|
| 70 |
+
64 210.4163247004 130.7151137038
|
| 71 |
+
65 432.2642292251 629.4092661116
|
| 72 |
+
66 623.2487161301 69.1892850840
|
| 73 |
+
67 436.5194739944 282.9356456070
|
| 74 |
+
68 59.4163265482 40.1280234442
|
| 75 |
+
69 630.9230074073 230.3429888130
|
| 76 |
+
70 579.3265539688 601.0359410602
|
| 77 |
+
71 117.8624507480 112.9796833705
|
| 78 |
+
72 297.7912565664 166.3131886803
|
| 79 |
+
73 22.7642703744 455.5340094037
|
| 80 |
+
74 259.7095810385 10.6199925885
|
| 81 |
+
75 342.3579873647 599.3880182608
|
| 82 |
+
76 10.0260950143 488.9310558282
|
| 83 |
+
77 315.2926064118 273.2275475579
|
| 84 |
+
78 220.7044919297 270.0819745721
|
| 85 |
+
79 192.1186059948 314.1839922798
|
| 86 |
+
80 271.5042718992 225.2921989972
|
| 87 |
+
81 530.7320005441 504.0670155337
|
| 88 |
+
82 42.5331441666 656.3645162886
|
| 89 |
+
83 396.1274792588 539.4648066027
|
| 90 |
+
84 118.6631474021 508.7129103929
|
| 91 |
+
85 395.6913876595 699.5376048429
|
| 92 |
+
86 559.0157105844 560.8866941411
|
| 93 |
+
87 22.6471035906 526.2470392816
|
| 94 |
+
88 135.6377085256 325.8409901555
|
| 95 |
+
89 141.4507014379 485.2477927763
|
| 96 |
+
90 396.7741299332 460.7557115283
|
| 97 |
+
91 87.7494562765 19.6170129082
|
| 98 |
+
92 350.4245639661 420.6531186835
|
| 99 |
+
93 216.7010817133 466.4816410995
|
| 100 |
+
94 130.9237737024 351.1491733079
|
| 101 |
+
95 72.6329856671 645.7852219213
|
| 102 |
+
96 144.6002949996 457.4224283926
|
| 103 |
+
97 212.3725077442 594.9216893413
|
| 104 |
+
98 49.9186786455 541.4350825349
|
| 105 |
+
99 656.6943525585 558.1109593509
|
| 106 |
+
100 176.5941623792 648.5239953299
|
| 107 |
+
101 500.3825200226 198.7428378322
|
| 108 |
+
102 634.3178678420 612.8291643194
|
| 109 |
+
103 59.7537372726 551.6321886765
|
| 110 |
+
104 15.2145765106 143.0441928532
|
| 111 |
+
105 283.0054378872 376.4439530184
|
| 112 |
+
106 146.5389000907 39.4231794338
|
| 113 |
+
107 101.8685605377 635.0986850180
|
| 114 |
+
108 588.1968537448 580.5946976921
|
| 115 |
+
109 457.2628632528 350.0164047376
|
| 116 |
+
110 537.4663680494 472.5842276692
|
| 117 |
+
111 269.3669098585 367.4763636538
|
| 118 |
+
112 239.9045383695 102.6297653390
|
| 119 |
+
113 88.4677500396 384.0507209275
|
| 120 |
+
114 658.9133693395 583.9575181023
|
| 121 |
+
115 97.7359146347 157.4558657632
|
| 122 |
+
116 506.6191384007 233.0022156094
|
| 123 |
+
117 500.2566898239 64.9136393489
|
| 124 |
+
118 594.4048565021 275.8741868990
|
| 125 |
+
119 66.2308146610 24.1317387604
|
| 126 |
+
120 598.4162993909 414.5557574275
|
| 127 |
+
121 172.3088330830 344.3963466366
|
| 128 |
+
122 299.4812851800 251.8295121320
|
| 129 |
+
123 303.8379894831 21.0526063790
|
| 130 |
+
124 197.8969269840 512.3888960980
|
| 131 |
+
125 56.0199567669 243.0663818382
|
| 132 |
+
126 255.5566183121 448.8651882442
|
| 133 |
+
127 608.4256112402 222.5421309272
|
| 134 |
+
128 70.2722703273 77.9227026433
|
| 135 |
+
129 398.2298999899 119.5576573860
|
| 136 |
+
130 635.4970237093 133.3225902609
|
| 137 |
+
131 378.3484559418 272.2907677147
|
| 138 |
+
132 484.8029663388 677.0730379436
|
| 139 |
+
133 278.8710882619 299.9308770828
|
| 140 |
+
134 381.6537300653 360.3337602785
|
| 141 |
+
135 557.6070707573 595.3185092281
|
| 142 |
+
136 249.0589749342 76.6595112599
|
| 143 |
+
137 562.9048787838 670.0382113114
|
| 144 |
+
138 398.5504365580 392.6493259144
|
| 145 |
+
139 590.8939720560 370.7414913742
|
| 146 |
+
140 558.2008003726 0.4198814512
|
| 147 |
+
141 461.4114714423 530.5254969413
|
| 148 |
+
142 354.7242881504 685.4045361900
|
| 149 |
+
143 193.6611295657 669.7432521028
|
| 150 |
+
144 352.3140807211 140.3273323662
|
| 151 |
+
145 308.4345709740 115.2054269847
|
| 152 |
+
146 299.5881370080 530.5889619020
|
| 153 |
+
147 334.2748764383 152.1494569394
|
| 154 |
+
148 690.9658585947 134.5793307203
|
| 155 |
+
149 48.0798124069 270.9680673720
|
| 156 |
+
150 91.6467647724 166.3541158474
|
| 157 |
+
EOF
|
media/tsp_problem.png
ADDED
|
media/tsp_solution.png
ADDED
|
requirements.txt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gradio
|
| 2 |
+
data4co
|
| 3 |
+
matplotlib
|
static/tsp_default.png
ADDED
|