Skip to content

Commit

Permalink
feat: bring in TSPLIB95 and CVRPLIB benchmarks (#34)
Browse files Browse the repository at this point in the history
  • Loading branch information
triceo authored Dec 11, 2024
1 parent e660dfc commit 65cbaef
Show file tree
Hide file tree
Showing 866 changed files with 808,001 additions and 592,884 deletions.
38 changes: 34 additions & 4 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ There are no guarantees that anything in this repository will still be here tomo
or that it will look anything like it looks today,
or that it will work against any particular version of the Solver.

== Usage
== Microbenchmarks

=== Usage

To run the benchmarks, you need access to Timefold Solver Enterprise Edition.
Having acquired that, run any of the benchmarks:
Expand All @@ -16,17 +18,45 @@ Having acquired that, run any of the benchmarks:
./run-scoredirector.sh
----

The benchmark results will be published as a subdirectory in the `results` directory,
and they will include flame graphs if Async Profiler is available.

In the default configuration, the benchmark will run for many hours and fully occupy 1 CPU.
Only run the benchmark on a quiet machine, otherwise results will be skewed.

=== Async profiler
==== Async profiler

The benchmark can optionally produce flame graphs using https://github.com/async-profiler/async-profiler[Async Profiler].
On the first run, if Async Profiler is not found, a message will be logged.
Let the message point you in the right direction.

== Configuring the benchmark
=== Configuring the benchmark

The benchmark is configured using the `coldstart-benchmark.properties` and `scoredirector-benchmark.properties` file.
The file is well-commented, and should be self-explanatory.
Modify it to suit your needs.
Modify it to suit your needs.

== TSPLIB95 and CVRPLIB benchmarks

Runs the solver against well-known academic datasets:

* http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/[TSPLIB95]
* http://vrp.galgos.inf.puc-rio.br/index.php/en/[CVRPLIB]

=== Usage

To run the benchmarks, you need access to Timefold Solver Enterprise Edition.
Having acquired that, build and run any of the benchmarks:

[source,shell]
----
mvn clean install -DskipJMH
./run-tsplib95.sh
./run-cvrplib.sh
----

The benchmark results will be published as a CSV file in the `results` directory.

In the default configuration, the benchmark will run for many hours and fully occupy 4 CPUs.
Only run the benchmark on a quiet machine, otherwise results will be skewed.

42 changes: 42 additions & 0 deletions data/tsp/import/asymmetric/br17.atsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
NAME: br17
TYPE: ATSP
COMMENT: 17 city problem (Repetto)
DIMENSION: 17
EDGE_WEIGHT_TYPE: EXPLICIT
EDGE_WEIGHT_FORMAT: FULL_MATRIX
EDGE_WEIGHT_SECTION
9999 3 5 48 48 8 8 5 5 3 3 0 3 5 8 8
5
3 9999 3 48 48 8 8 5 5 0 0 3 0 3 8 8
5
5 3 9999 72 72 48 48 24 24 3 3 5 3 0 48 48
24
48 48 74 9999 0 6 6 12 12 48 48 48 48 74 6 6
12
48 48 74 0 9999 6 6 12 12 48 48 48 48 74 6 6
12
8 8 50 6 6 9999 0 8 8 8 8 8 8 50 0 0
8
8 8 50 6 6 0 9999 8 8 8 8 8 8 50 0 0
8
5 5 26 12 12 8 8 9999 0 5 5 5 5 26 8 8
0
5 5 26 12 12 8 8 0 9999 5 5 5 5 26 8 8
0
3 0 3 48 48 8 8 5 5 9999 0 3 0 3 8 8
5
3 0 3 48 48 8 8 5 5 0 9999 3 0 3 8 8
5
0 3 5 48 48 8 8 5 5 3 3 9999 3 5 8 8
5
3 0 3 48 48 8 8 5 5 0 0 3 9999 3 8 8
5
5 3 0 72 72 48 48 24 24 3 3 5 3 9999 48 48
24
8 8 50 6 6 0 0 8 8 8 8 8 8 50 9999 0
8
8 8 50 6 6 0 0 8 8 8 8 8 8 50 0 9999
8
5 5 26 12 12 8 8 0 0 5 5 5 5 26 8 8
9999
EOF
220 changes: 220 additions & 0 deletions data/tsp/import/asymmetric/ft53.atsp

Large diffs are not rendered by default.

358 changes: 358 additions & 0 deletions data/tsp/import/asymmetric/ft70.atsp

Large diffs are not rendered by default.

4,882 changes: 4,882 additions & 0 deletions data/tsp/import/asymmetric/ftv170.atsp

Large diffs are not rendered by default.

201 changes: 201 additions & 0 deletions data/tsp/import/asymmetric/ftv33.atsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
NAME: ftv33
TYPE: ATSP
COMMENT: Asymmetric TSP (Fischetti)
DIMENSION: 34
EDGE_WEIGHT_TYPE: EXPLICIT
EDGE_WEIGHT_FORMAT: FULL_MATRIX
EDGE_WEIGHT_SECTION
100000000 26 82 65 100 147
134 69 117 42 89 125
38 13 38 31 22 103
143 94 104 123 98 58
38 30 67 120 149 100
93 162 62 66 66 100000000
56 39 109 156 140 135
183 108 155 190 104 79
104 97 88 130 176 121
131 150 125 85 65 57
94 147 160 80 67 189
128 40 43 57 100000000 16
53 100 84 107 155 85
132 168 81 56 81 74
65 146 186 137 147 166
141 101 81 73 110 163
164 102 71 205 105 62
27 41 62 100000000 97 144
131 96 144 69 116 152
65 40 65 58 49 130
170 121 131 150 125 85
65 57 94 147 166 86
73 189 89 46 109 135
161 174 100000000 47 34 54
102 67 114 175 97 96
128 135 131 198 193 203
213 232 207 167 147 139
176 229 222 204 148 235
60 175 157 171 114 130
60 100000000 40 114 162 127
174 235 157 156 188 188
179 258 253 251 239 258
203 215 195 187 172 207
175 157 101 295 120 133
143 169 132 148 34 31
100000000 88 133 101 148 209
131 130 162 169 165 232
227 237 247 266 221 201
181 173 190 225 193 175
119 269 94 151 95 121
177 160 54 101 88 100000000
48 53 100 158 83 82
114 121 117 184 179 189
199 218 193 153 133 125
162 215 244 195 188 221
46 161 79 105 161 144
91 138 125 37 100000000 37
53 114 67 66 98 105
101 137 132 149 183 202
177 137 117 109 146 199
228 179 172 174 57 145
42 68 124 107 67 114
101 27 75 100000000 47 108
30 29 61 68 64 131
126 136 146 165 140 100
80 72 109 162 191 142
135 168 20 108 83 109
165 148 108 155 142 68
88 41 100000000 61 71 70
102 109 105 84 79 96
144 163 175 141 121 113
150 203 232 183 176 121
61 149 204 230 286 269
216 255 237 162 125 162
123 100000000 192 191 223 230
226 144 139 156 184 165
215 249 242 234 251 282
332 297 297 113 182 270
38 64 120 103 88 135
122 57 105 30 77 87
100000000 25 31 38 47 110
105 122 142 161 136 96
76 68 105 158 187 138
131 147 50 104 13 39
95 78 87 134 121 56
104 29 76 112 25 100000000
32 39 35 116 130 107
117 136 111 71 51 43
80 133 162 113 106 172
49 79 38 48 104 87
119 166 153 88 136 61
108 118 31 32 100000000 7
16 123 136 114 124 143
118 78 58 50 87 140
169 120 115 178 81 88
31 41 97 80 115 162
149 84 132 57 104 114
27 28 7 100000000 9 116
132 107 117 136 111 71
51 43 80 133 162 113
108 174 77 81 22 32
88 71 122 169 156 91
139 64 111 123 36 35
16 9 100000000 107 141 98
108 127 102 62 42 34
71 124 153 104 99 166
84 72 108 134 190 173
133 180 167 93 113 66
85 60 96 95 127 134
130 100000000 46 63 116 135
147 166 146 138 175 221
257 208 201 120 86 174
127 153 209 192 152 199
186 112 132 85 104 79
115 114 146 153 149 19
100000000 17 70 89 101 135
148 157 137 175 219 183
220 85 105 193 153 179
235 218 178 225 212 138
158 111 130 105 141 140
172 179 175 45 57 100000000
53 72 84 118 131 183
120 158 202 166 241 68
131 214 179 165 199 204
243 290 277 203 223 176
195 165 206 192 199 192
183 110 112 82 100000000 19
31 65 78 149 67 105
149 113 188 95 196 161
212 205 239 244 237 284
271 197 217 170 189 146
200 199 231 232 223 104
93 63 40 100000000 71 105
118 189 107 117 167 153
228 76 190 201 148 134
168 173 212 259 246 172
192 145 164 139 175 161
168 161 152 79 125 70
36 55 100000000 34 47 118
36 89 118 82 157 131
165 130 153 146 180 185
178 225 212 138 158 111
130 105 141 140 172 173
164 45 91 36 46 65
77 100000000 59 130 48 101
130 94 169 104 131 142
173 166 200 205 198 245
232 158 178 131 150 125
161 160 192 193 184 65
111 56 66 85 97 20
100000000 150 68 121 150 114
189 124 151 162 30 16
72 55 125 172 156 99
147 72 119 133 68 43
50 43 34 73 119 64
74 93 68 28 8 100000000
37 90 119 70 83 132
92 56 112 98 132 137
185 232 216 181 223 154
195 170 150 125 132 125
116 110 156 101 67 86
31 65 78 82 100000000 53
82 46 121 162 174 94
144 130 164 169 217 256
225 213 261 186 233 234
182 157 164 157 148 174
209 165 131 116 95 129
122 114 93 100000000 50 78
147 192 206 126 94 80
114 119 167 214 198 163
211 136 183 197 132 107
114 107 98 137 183 128
110 129 74 92 72 64
43 57 100000000 28 103 196
156 76 66 52 101 91
154 201 185 135 183 108
155 169 104 79 86 79
70 109 155 100 82 101
46 64 44 36 15 68
97 100000000 90 168 128 63
113 108 70 86 84 131
115 138 186 151 198 225
151 126 142 135 126 165
211 156 138 157 102 120
100 92 71 124 93 56
100000000 224 144 32 146 172
228 211 171 218 205 131
151 104 123 80 134 133
165 172 168 38 27 44
75 76 106 140 153 176
142 180 224 188 239 100000000
124 212 102 128 184 167
61 108 95 7 55 60
107 165 90 89 121 128
124 191 186 196 206 225
200 160 140 132 169 222
251 202 195 228 100000000 168
81 95 38 54 91 138
122 145 193 123 170 206
119 94 119 112 103 184
224 175 165 184 129 139
119 111 98 151 120 83
27 243 143 0
EOF
Loading

0 comments on commit 65cbaef

Please sign in to comment.