| Literature DB >> 34697518 |
David Wolfinger1,2, Margaretha Gansterer3, Karl F Doerner1,2, Nikolas Popper4.
Abstract
In late 2019 a new coronavirus disease (COVID-19) emerged, causing a global pandemic within only a few weeks. A crucial factor in the public health response to pandemics is achieving a short turnaround time between a potential case becoming known, specimen collection and availability of a test result. In this article we address a logistics problem that arises in the context of testing potential cases. We assume that specimens can be collected in two ways: either by means of a mobile test-team or by means of a stationary test-team in a test-centre. After the specimens have been collected they must be delivered to a laboratory in order to be analysed. The problem we address aims at deciding how many test-centres to open and where, how many mobile test-teams to use, which suspected cases to assign to a test-centre and which to visit with a mobile test-team, which specimen to assign to which laboratory, and planning the routes of the mobile test-teams. The objective is to minimise the total cost of opening test-centres and routing mobile test-teams. We introduce this new problem, which we call the contagious disease testing problem (CDTP), and present a mixed-integer linear-programming formulation for it. We propose a large neighbourhood search metaheuristic for solving the CDTP and present an extensive computational study to illustrate its performance. Furthermore, we give managerial insights regarding COVID-19 test logistics, derived from problem instances based on real world data.Entities:
Keywords: COVID-19; Facility location; Large neighbourhood search; Location routing; Routing
Year: 2021 PMID: 34697518 PMCID: PMC8529256 DOI: 10.1016/j.ejor.2021.10.028
Source DB: PubMed Journal: Eur J Oper Res ISSN: 0377-2217 Impact factor: 6.363
Fig. 1Problem instance (1a) together with a feasible solution (1b & 1c).
Algorithm 1LNS.
Algorithm 2Random best insertion.
Algorithm 3Time-greedy insertion into test-centre.
Parameter values for the LNS.
| Parameter | Value | Description |
|---|---|---|
| 0.1 | min. percentage of suspected cases removed in each iteration of the LNS | |
| 0.3 | max. percentage of suspected cases removed in each iteration of the LNS | |
| 0.9 | probability of selecting the test-centre which covers the most suspected cases in | |
| 0.005 | threshold value for the local search | |
| 9 | weight of distance-term for | |
| 3 | weight of time-term for | |
| 5 | weight of mandatory-vehicle-visit-term for | |
| 0.005 | threshold value for accepting |
Comparison LNS with MIP solver (Gurobi). Time limit LNS: 30 seconds per run.
| Size | MIP CPU (hours) | LNS Gap (%) | ||
|---|---|---|---|---|
| Min | Avg | Max | ||
| 10 | 4.79 | 0.00 | 0.00 | 0.00 |
| 15 | 24.00 | 0.00 | ||
| 20 | 24.00 | 0.00 | ||
| 25 | 24.00 | 0.00 | ||
| 30 | 24.00 | 0.00 | ||
| Average | 20.16 | 0.00 | ||
Fig. 2Efficiency of the destroy/repair heuristics and the local search operator.
Percentage change in solution cost when destroy/repair heuristic is not used (all else unchanged).
| Heuristic | Min | Avg | Max |
|---|---|---|---|
| Random best insertion | 33.23 | ||
| Regret-2 insertion | 1.08 | 33.22 | |
| Regret-3 insertion | 1.94 | 39.91 | |
| Regret-4 insertion | 2.37 | 45.38 | |
| Random removal | 2.37 | 36.32 | |
| Worst removal | 3.54 | 33.33 | |
| Related removal | 0.58 | 36.77 | |
| Smallest route removal | 0.83 | 29.35 | |
| Least utilised test-centre removal | 61.15 | 371.54 | |
| Test-centre opening removal | 3.78 | 50.05 |
Principal solution characteristics. The numbers in brackets next to ‘Vehic.’ and ‘Test-Ctr.’ represent the number of available vehicles and test-centres, respectively.
| Size | Upper Austria | Vienna | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| # required | T2TD | T2RD | TCT | # required | T2TD | T2RD | TCT | |||
| Vehic. (20) | Test-Ctr. (13) | Vehic. (29) | Test-Ctr. (3) | |||||||
| 0–499 | 9.54 | 3.18 | 1.02 | 6.99 | 8.01 | 4.95 | 0.90 | 1.14 | 6.81 | 7.95 |
| 500–999 | 16.34 | 5.24 | 0.91 | 6.96 | 7.87 | 8.73 | 1.00 | 0.90 | 6.95 | 7.85 |
| 1000+ | 17.58 | 1.02 | 1.15 | 8.43 | 9.57 | |||||
| Average | 12.94 | 4.21 | 0.97 | 6.97 | 7.94 | 10.42 | 0.97 | 1.06 | 7.40 | 8.46 |
Further solution characteristics.
| Size | Upper Austria | Vienna | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Distribution (%) | Vehicle routes | Test-Ctr. | Distribution (%) | Vehicle routes | Test-Ctr. | |||||
| Mobile | Test-Ctr. | Len. (km | # Stops | Util. (%) | Mobile | Test-Ctr. | Len. (km | # Stops | Util. (%) | |
| 0–499 | 38.40 | 61.60 | 270.96 | 14.44 | 14.65 | 37.18 | 62.82 | 98.17 | 22.49 | 16.80 |
| 500–999 | 34.77 | 65.23 | 273.70 | 17.21 | 22.45 | 30.67 | 69.33 | 105.01 | 27.29 | 45.60 |
| 1000+ | 42.84 | 57.16 | 108.65 | 35.31 | 66.57 | |||||
| Average | 36.59 | 63.41 | 272.33 | 15.82 | 18.55 | 36.90 | 63.10 | 103.94 | 28.36 | 42.99 |
Percentage change in cost, time-to-result limit violations, and absolute change in principal solution characteristics when no time-to-result limit is in place.
| Size | Upper Austria | Vienna | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cost | # required | T2R violation | T2RD | TCT | Cost | # required | T2R violation | T2RD | TCT | |||||||
| Vehic. | Test-Ctr. | % Cases | Avg (h) | Max (h) | Vehic. | Test-Ctr. | % Cases | Avg (h) | Max (h) | |||||||
| 0–499 | 0.00 | 0.00 | 0.00 | 0.02 | 0.02 | 0.00 | 0.02 | 0.08 | 0.08 | 0.04 | ||||||
| 500–999 | 0.06 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 3.65 | 1.79 | 4.87 | 2.09 | 2.08 | ||||
| 1000+ | 0.18 | 24.23 | 3.90 | 12.70 | 5.25 | 5.10 | ||||||||||
| Average | 0.00 | 0.00 | 0.00 | 0.00 | 0.01 | 0.01 | 0.06 | 9.30 | 1.93 | 5.88 | 2.46 | 2.39 | ||||
Percentage change in both cost and number of suspected cases which are clarified in a test-centre, and absolute change in principal solution characteristics when the length of the test-centre time slots is halved (from 90 to 45 minutes).
| Size | Upper Austria | Vienna | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cost | # required | Test-Ctr. clarification | T2TD | T2RD | TCT | Cost | # required | Test-Ctr. clarification | T2TD | T2RD | TCT | |||
| Vehic. | Test-Ctr. | Vehic. | Test-Ctr. | |||||||||||
| 0–499 | 0.08 | 0.02 | 0.00 | 0.00 | ||||||||||
| 500–999 | 0.39 | 0.30 | 0.02 | 0.00 | 0.49 | |||||||||
| 1000+ | 0.00 | |||||||||||||
| Average | 0.19 | 0.02 | 0.00 | 0.11 | ||||||||||
Percentage change in both cost and number of suspected cases which are clarified in a test-centre, and absolute change in principal solution characteristics when the length of the test-centre time slots is doubled (from 1.5 to 3 hours).
| Size | Upper Austria | Vienna | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cost | # required | Test-Ctr. clarification | T2TD | T2RD | TCT | Cost | # required | Test-Ctr. clarification | T2TD | T2RD | TCT | |||
| Vehic. | Test-Ctr. | Vehic. | Test-Ctr. | |||||||||||
| 0–499 | 0.08 | 0.59 | 0.58 | 0.00 | 0.00 | 0.58 | 0.54 | |||||||
| 500–999 | 1.05 | 0.26 | 0.01 | 0.61 | 0.62 | 1.32 | 0.17 | 0.00 | 0.04 | 1.15 | 1.18 | |||
| 1000+ | 5.40 | 0.10 | 1.16 | 1.01 | ||||||||||
| Average | 0.17 | 0.00 | 0.60 | 0.60 | 1.88 | 0.03 | 0.96 | 0.91 | ||||||
Uncoverd suspected cases, percentage change in cost, and absolute change in number of required vehicles and test centres when clarifying yesterday’s suspected cases.
| Size | Upper Austria | Vienna | ||||||
|---|---|---|---|---|---|---|---|---|
| % uncov. | Cost | # required | % uncov. | Cost | # required | |||
| Vehic. | Test-Ctr. | Vehic. | Test-Ctr. | |||||
| 0–499 | 4.89 | 16.01 | 7.80 | 2.81 | 36.48 | 6.55 | ||
| 500–999 | 8.43 | 26.40 | 3.44 | 2.42 | 2.45 | 86.86 | 15.13 | |
| 1000+ | 3.74 | 83.31 | 9.88 | 1.40 | ||||
| Average | 6.66 | 21.21 | 5.62 | 0.46 | 3.00 | 68.88 | 10.52 | |
Percentage change in cost, time limit violations, and absolute change in principal solution characteristics when clarifying yesterday’s suspected cases and either the time-to-test limit, or the time-to-result limit, or both limits are not in place; compared to when both limits are in place.
| Size | Cost | # required | T2T violation | T2R violation | T2TD | T2RD | TCT | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Vehic. | Test-Ctr. | % Cases | Avg (h) | Max (h) | % Cases | Avg (h) | Max (h) | |||||||
| Upper Austria | no | 0–499 | 0.84 | 35.06 | 3.05 | 10.11 | 0.00 | 0.00 | 0.00 | 1.25 | 0.19 | 1.44 | ||
| 500–999 | 33.78 | 3.18 | 10.60 | 0.00 | 0.00 | 0.00 | 2.17 | 0.96 | 3.13 | |||||
| 1000+ | ||||||||||||||
| Average | 34.42 | 3.12 | 10.36 | 0.00 | 0.00 | 0.00 | 1.71 | 0.58 | 2.29 | |||||
| no | 0–499 | 0.08 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | ||||||
| 500–999 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.01 | 0.04 | 0.05 | ||||
| 1000+ | ||||||||||||||
| Average | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||||
| neither limit | 0–499 | 0.52 | 36.01 | 3.09 | 9.95 | 0.00 | 0.00 | 0.00 | 1.41 | 0.29 | 1.70 | |||
| 500–999 | 35.78 | 3.29 | 10.98 | 0.00 | 0.00 | 0.00 | 2.40 | 0.97 | 3.37 | |||||
| 1000+ | ||||||||||||||
| Average | 35.90 | 3.19 | 10.46 | 0.00 | 0.00 | 0.00 | 1.90 | 0.63 | 2.54 | |||||
| Vienna | no | 0–499 | 0.35 | 41.03 | 3.39 | 10.52 | 0.00 | 0.00 | 0.00 | 1.70 | 0.95 | 2.66 | ||
| 500–999 | 0.97 | 34.60 | 2.81 | 10.42 | 0.00 | 0.00 | 0.00 | 0.54 | ||||||
| 1000+ | 50.75 | 3.95 | 11.81 | 0.00 | 0.00 | 0.00 | 3.42 | 2.59 | 6.01 | |||||
| Average | 0.16 | 42.13 | 3.38 | 10.92 | 0.00 | 0.00 | 0.00 | 1.89 | 0.88 | 2.77 | ||||
| no | 0–499 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.07 | |||||
| 500–999 | 0.00 | 0.00 | 0.00 | 0.00 | 3.00 | 0.90 | 1.98 | 0.02 | 1.03 | 1.06 | ||||
| 1000+ | 0.00 | 0.00 | 0.00 | 0.00 | 5.23 | 1.78 | 4.08 | 0.03 | 1.40 | 1.43 | ||||
| Average | 0.00 | 0.00 | 0.00 | 2.74 | 0.89 | 2.02 | 0.04 | 0.78 | 0.82 | |||||
| neither limit | 0–499 | 0.35 | 40.74 | 3.39 | 10.44 | 2.77 | 0.89 | 1.65 | 1.69 | 1.87 | 3.56 | |||
| 500–999 | 0.97 | 34.70 | 2.81 | 10.44 | 3.08 | 1.71 | 3.34 | 0.55 | 0.23 | 0.79 | ||||
| 1000+ | 51.01 | 3.96 | 11.88 | 22.61 | 4.40 | 14.43 | 3.45 | 6.64 | 10.09 | |||||
| Average | 0.16 | 42.15 | 3.39 | 10.92 | 9.49 | 2.33 | 6.47 | 1.90 | 2.91 | 4.81 | ||||