You are the vehicle dispatcher for a delivery service that serves a mix of easy’ customers who are quite pleasant when the driver arrives and hard’ customers who are difficult to manag
You are the vehicle dispatcher for a delivery service that serves a mix of ‘easy’ customers who are quite pleasant when the driver arrives and ‘hard’ customers who are difficult to manage. In order to keep the drivers happy, you never assign a driver to visit two hard customers in a row. Thus, for each driver, given a set of ‘easy’ and ‘hard’ customers to visit, your goal is to minimize the travel time to visit all customers, starting and returning from the company depot, satisfying the constraint that a hard customer visit cannot be followed by another hard customer.
This problem can be infeasible if the number of hard customers is greater than the number of easy customers. Let’s assume that this is sometimes the case. As dispatcher, you have decided to relax the constraint that a hard customer visit cannot be followed by another hard customer. Rather, you want to minimize the number of times this happens and minimize the route travel length.
- It may not be possible to minimize both terms at once; how would you find a good compromise?
- Formulate the Hard/Easy Customer Traveling Salesman Problem (TSP) with the two term objective function terms. Define any new notation you introduce and explain your formulation in words and present mathematically.
- Develop a heuristic to solve the problem. Clearly present your heuristic.
- Solve the instances posted in the excel file. Solutions should include the visit sequence of nodes and the tour length and # of times a hard customer follows another hard customer for each instance. Your solution should be included on the tab “Sample solution” in the data spreadsheet.
Instance 1
nodes | 17 | ||||||||||||||||||
1 | Easy | 0 | 633 | 257 | 91 | 412 | 150 | 80 | 134 | 259 | 505 | 353 | 324 | 70 | 211 | 268 | 246 | 121 | |
2 | Easy | 633 | 0 | 390 | 661 | 227 | 488 | 572 | 530 | 555 | 289 | 282 | 638 | 567 | 466 | 420 | 745 | 518 | |
3 | Hard | 257 | 390 | 0 | 228 | 169 | 112 | 196 | 154 | 372 | 262 | 110 | 437 | 191 | 74 | 53 | 472 | 142 | |
4 | Hard | 91 | 661 | 228 | 0 | 383 | 120 | 77 | 105 | 175 | 476 | 324 | 240 | 27 | 182 | 239 | 237 | 84 | |
5 | Easy | 412 | 227 | 169 | 383 | 0 | 267 | 351 | 309 | 338 | 196 | 61 | 421 | 346 | 243 | 199 | 528 | 297 | |
6 | Hard | 150 | 488 | 112 | 120 | 267 | 0 | 63 | 34 | 264 | 360 | 208 | 329 | 83 | 105 | 123 | 364 | 35 | |
7 | Hard | 80 | 572 | 196 | 77 | 351 | 63 | 0 | 29 | 232 | 444 | 292 | 297 | 47 | 150 | 207 | 332 | 29 | |
8 | Easy | 134 | 530 | 154 | 105 | 309 | 34 | 29 | 0 | 249 | 402 | 250 | 314 | 68 | 108 | 165 | 349 | 36 | |
9 | Hard | 259 | 555 | 372 | 175 | 338 | 264 | 232 | 249 | 0 | 495 | 352 | 95 | 189 | 326 | 383 | 202 | 236 | |
10 | Hard | 505 | 289 | 262 | 476 | 196 | 360 | 444 | 402 | 495 | 0 | 154 | 578 | 439 | 336 | 240 | 685 | 390 | |
11 | Easy | 353 | 282 | 110 | 324 | 61 | 208 | 292 | 250 | 352 | 154 | 0 | 435 | 287 | 184 | 140 | 542 | 238 | |
12 | Hard | 324 | 638 | 437 | 240 | 421 | 329 | 297 | 314 | 95 | 578 | 435 | 0 | 254 | 391 | 448 | 157 | 301 | |
13 | Hard | 70 | 567 | 191 | 27 | 346 | 83 | 47 | 68 | 189 | 439 | 287 | 254 | 0 | 145 | 202 | 289 | 55 | |
14 | Easy | 211 | 466 | 74 | 182 | 243 | 105 | 150 | 108 | 326 | 336 | 184 | 391 | 145 | 0 | 57 | 426 | 96 | |
15 | Easy | 268 | 420 | 53 | 239 | 199 | 123 | 207 | 165 | 383 | 240 | 140 | 448 | 202 | 57 | 0 | 483 | 153 | |
16 | Hard | 246 | 745 | 472 | 237 | 528 | 364 | 332 | 349 | 202 | 685 | 542 | 157 | 289 | 426 | 483 | 0 | 336 | |
17 | Hard | 121 | 518 | 142 | 84 | 297 | 35 | 29 | 36 | 236 | 390 | 238 | 301 | 55 | 96 | 153 | 336 | 0 |
Instance 2
nodes | 26 | |||||||||||||||||||||||||||
1 | Easy | 0 | 83 | 93 | 129 | 133 | 139 | 151 | 169 | 135 | 114 | 110 | 98 | 99 | 95 | 81 | 152 | 159 | 181 | 172 | 185 | 147 | 157 | 185 | 220 | 127 | 181 | |
2 | Easy | 83 | 0 | 40 | 53 | 62 | 64 | 91 | 116 | 93 | 84 | 95 | 98 | 89 | 68 | 67 | 127 | 156 | 175 | 152 | 165 | 160 | 180 | 223 | 268 | 179 | 197 | |
3 | Hard | 93 | 40 | 0 | 42 | 42 | 49 | 59 | 81 | 54 | 44 | 58 | 64 | 54 | 31 | 36 | 86 | 117 | 135 | 112 | 125 | 124 | 147 | 193 | 241 | 157 | 161 | |
4 | Hard | 129 | 53 | 42 | 0 | 11 | 11 | 46 | 72 | 65 | 70 | 88 | 100 | 89 | 66 | 76 | 102 | 142 | 156 | 127 | 139 | 155 | 180 | 228 | 278 | 197 | 190 | |
5 | Hard | 133 | 62 | 42 | 11 | 0 | 9 | 35 | 61 | 55 | 62 | 82 | 95 | 84 | 62 | 74 | 93 | 133 | 146 | 117 | 128 | 148 | 173 | 222 | 272 | 194 | 182 | |
6 | Easy | 139 | 64 | 49 | 11 | 9 | 0 | 39 | 65 | 63 | 71 | 90 | 103 | 92 | 71 | 82 | 100 | 141 | 153 | 124 | 135 | 156 | 181 | 230 | 280 | 202 | 190 | |
7 | Hard | 151 | 91 | 59 | 46 | 35 | 39 | 0 | 26 | 34 | 52 | 71 | 88 | 77 | 63 | 78 | 66 | 110 | 119 | 88 | 98 | 130 | 156 | 206 | 257 | 188 | 160 | |
8 | Easy | 169 | 116 | 81 | 72 | 61 | 65 | 26 | 0 | 37 | 59 | 75 | 92 | 83 | 76 | 91 | 54 | 98 | 103 | 70 | 78 | 122 | 148 | 198 | 250 | 188 | 148 | |
9 | Easy | 135 | 93 | 54 | 65 | 55 | 63 | 34 | 37 | 0 | 22 | 39 | 56 | 47 | 40 | 55 | 37 | 78 | 91 | 62 | 74 | 96 | 122 | 172 | 223 | 155 | 128 | |
10 | Hard | 114 | 84 | 44 | 70 | 62 | 71 | 52 | 59 | 22 | 0 | 20 | 36 | 26 | 20 | 34 | 43 | 74 | 91 | 68 | 82 | 86 | 111 | 160 | 210 | 136 | 121 | |
11 | Hard | 110 | 95 | 58 | 88 | 82 | 90 | 71 | 75 | 39 | 20 | 0 | 18 | 11 | 27 | 32 | 42 | 61 | 80 | 64 | 77 | 68 | 92 | 140 | 190 | 116 | 103 | |
12 | Easy | 98 | 98 | 64 | 100 | 95 | 103 | 88 | 92 | 56 | 36 | 18 | 0 | 11 | 34 | 31 | 56 | 63 | 85 | 75 | 87 | 62 | 83 | 129 | 178 | 100 | 99 | |
13 | Hard | 99 | 89 | 54 | 89 | 84 | 92 | 77 | 83 | 47 | 26 | 11 | 11 | 0 | 23 | 24 | 53 | 68 | 89 | 74 | 87 | 71 | 93 | 140 | 189 | 111 | 107 | |
14 | Hard | 95 | 68 | 31 | 66 | 62 | 71 | 63 | 76 | 40 | 20 | 27 | 34 | 23 | 0 | 15 | 62 | 87 | 106 | 87 | 100 | 93 | 116 | 163 | 212 | 132 | 130 | |
15 | Easy | 81 | 67 | 36 | 76 | 74 | 82 | 78 | 91 | 55 | 34 | 32 | 31 | 24 | 15 | 0 | 73 | 92 | 112 | 96 | 109 | 93 | 113 | 158 | 205 | 122 | 130 | |
16 | Hard | 152 | 127 | 86 | 102 | 93 | 100 | 66 | 54 | 37 | 43 | 42 | 56 | 53 | 62 | 73 | 0 | 44 | 54 | 26 | 39 | 68 | 94 | 144 | 196 | 139 | 95 | |
17 | Easy | 159 | 156 | 117 | 142 | 133 | 141 | 110 | 98 | 78 |