| Literature DB >> 31258228 |
Margaretha Gansterer1, Richard F Hartl1.
Abstract
In horizontal collaborations, carriers form coalitions in order to perform parts of their logistics operations jointly. By exchanging transportation requests among each other, they can operate more efficiently and in a more sustainable way. This exchange of requests can be organized through combinatorial auctions, where collaborators submit requests for exchange to a common pool. The requests in the pool are grouped into bundles, and these are offered to participating carriers. From a practical point of view, offering all possible bundles is not manageable, since the number of bundles grows exponentially with the number of traded requests. We show how the complete set of bundles can be efficiently reduced to a subset of attractive ones. For this we define the Bundle Generation Problem (BuGP). The aim is to provide a reduced set of offered bundles that maximizes the total coalition profit, while a feasible assignment of bundles to carriers is guaranteed. The objective function, however, could only be evaluated whether carriers reveal sensitive information, which would be unrealistic. Thus, we develop a proxy for the objective function for assessing the attractiveness of bundles under incomplete information. This is used in a genetic algorithms-based framework that aims at producing attractive and feasible bundles, such that all requirements of the BuGP are met. We achieve very good solution quality, while reducing the computational time for the auction procedure significantly. This is an important step towards running combinatorial auctions of real-world size, which were previously intractable due to their computational complexity. The strengths but also the limitations of the proposed approach are discussed.Entities:
Keywords: Collaborations; Combinatorial auctions; Genetic algorithms; Logistics; Transportation
Year: 2018 PMID: 31258228 PMCID: PMC6560701 DOI: 10.1007/s00291-018-0516-4
Source DB: PubMed Journal: OR Spectr
Fig. 1Tour of a carrier with 6 requests. Including one of the new (gray) requests will extend his tour length considerably, but will probably not be profitable. However, if he or she additionally wins the second or even third request, the extra travel cost will probably be compensated by the extra profit
Average percentage loss (negative numbers) or additional profit (positive numbers) of carriers C0 (cheater), C1 and C2 compared to truthful bidding
|
|
| |||
|---|---|---|---|---|
| 1.1 | 0.5 | 0.18 | ||
| 1.1 | 0.7 | 2.43 | ||
| 1.4 | 0.5 | 1.30 | ||
| 1.4 | 0.7 | 1.50 | 1.03 | |
| 1.7 | 0.5 | 0.58 | ||
| 1.7 | 0.7 |
Fig. 2Illustration of the BuGP for 3 carriers, who are submitting requests to the auction. Requests that are not submitted (below triangle) are not revealed to the auctioneer
Fig. 3Example of a bundle with relatively low density (bundle A) and relatively high density (bundle B)
Average deviation in solution quality (based on the total profit) if proxy function A1 or A2 is used instead of the proposed one
| # Bundles | ||
|---|---|---|
| 100 | ||
| 500 |
# Bundles give the number of traded bundles
Fig. 4GA decoding for a candidate solution s with 6 requests and 3 bundles. Request 0 is in bundle 0, requests 1 and 2 are in bundle 1, and requests 3–5 are in bundle 2
Fig. 5Two candidate solutions before and after normalization
Fig. 6Example for crossover 2 with 7 requests. Parents A and B consist of 3 bundles each. In the crossover result, 4 bundles are formed. For the sake of comprehensibility, the string of parent B is not displayed in the normalized form but with an offset of 3
Comparison between complete and limited bundle pool, where carriers submit 4 requests to the pool
| Instance | # Bundles | Result (%) | Avg. runtime |
|---|---|---|---|
| O1_10 | 4095 | 12.19 | |
| 50 | 0.52 | ||
| 100 | 0.0 | 0.65 | |
| 200 | 0.0 | 0.95 | |
| 300 | 0.0 | 1.27 | |
| 500 | 0.0 | 1.84 | |
| O2_10 | 4095 | 10.54 | |
| 50 | 2.15 | ||
| 100 | 0.43 | ||
| 200 | 0.65 | ||
| 300 | 1.05 | ||
| 500 | 1.47 | ||
| O3_10 | 4095 | 14.58 | |
| 50 | 0.4 | ||
| 100 | 0.6 | ||
| 200 | 1.01 | ||
| 300 | 1.53 | ||
| 500 | 2.22 | ||
| O1_15 | 4095 | 60.07 | |
| 50 | 1.01 | ||
| 100 | 1.68 | ||
| 200 | 2.91 | ||
| 300 | 4.27 | ||
| 500 | 6.71 | ||
| O2_15 | 4095 | 83.26 | |
| 50 | 1.25 | ||
| 100 | 2.12 | ||
| 200 | 3.69 | ||
| 300 | 5.81 | ||
| 500 | 9.31 | ||
| O3_15 | 4095 | 104.7 | |
| 50 | 1.49 | ||
| 100 | 2.55 | ||
| 200 | 4.41 | ||
| 300 | 7.6 | ||
| 500 | 11.44 |
Column Result shows the average percentage deviation in collaboration improvement. A negative value implies that the collaboration improvement found with the limited bundle pool was less than that found with the complete bundle pool. Average runtimes are in seconds
Comparison between complete and limited auction pool in average solution quality and average runtime
| # Bundles | Avg. result (%) | Avg. runtime |
|---|---|---|
| 4095 | 47.6 | |
| 50 | 1.1 | |
| 100 | 1.3 | |
| 200 | 2.3 | |
| 300 | 3.6 | |
| 500 | 5.5 |
Comparison between complete (4 requests per carrier) and limited (4 and 5 requests per carrier) pools for smaller instances (O1_10-O3_10)
| Instance | # Bundles | # Req. per carrier (%) | |
|---|---|---|---|
| 4 | 5 | ||
| O1_10 |
| n/a | |
| 100 | 0.0 | ||
| 300 | 0.0 | 0.2 | |
| 500 | 0.0 | 0.2 | |
| O2_10 |
| n/a | |
| 100 | |||
| 300 | |||
| 500 | |||
| O3_10 |
| n/a | |
| 100 | |||
| 300 | |||
| 500 | |||
| Average | 100 | ||
| 300 | |||
| 500 | |||
na indicates that the complete pool size of these instances could not be solved. The numbers are the average deviation from the results obtained with the complete pool (4 requests per carrier). Positive values indicate that the limited pools found better results than the complete pool
Comparison between complete (4 requests per carrier) and limited (4 and 5 and 10 requests per carrier) pools for larger instances (O1_15-O3_15)
| Instance | # Bundles | # Req. per carrier (%) | ||
|---|---|---|---|---|
| 4 | 5 | 10 | ||
| O1_15 |
| n/a | n/a | |
| 100 | 5.8 | 49.6 | ||
| 300 | 10.2 | 57.9 | ||
| 500 | 10.8 | 60.4 | ||
| O2_15 |
| n/a | n/a | |
| 100 | 19.7 | |||
| 300 | 4.0 | 36.8 | ||
| 500 | 5.8 | 38.9 | ||
| O3_15 |
| n/a | n/a | |
| 100 | 2.6 | |||
| 300 | 20.4 | |||
| 500 | 18.9 | |||
| Average | 100 | 24.0 | ||
| 300 | 1.7 | 38.4 | ||
| 500 | 3.9 | 39.4 | ||
na indicates that the complete pool size of these instances could not be solved. The numbers are the deviation from the results obtained with the complete pool (4 requests per carrier). Positive values indicate that the limited pools found better results than the complete pool
Runtimes in minutes of instances with 70 requests per carrier
| Instance | # Bundles | # Req. per carrier | |
|---|---|---|---|
| 15 | 30 | ||
| O1_70 |
| n/a | n/a |
| 500 | 53.14 | 64.5 | |
| O2_70 |
| n/a | n/a |
| 500 | 42.14 | 71.41 | |
| O3_70 |
| n/a | n/a |
| 500 | 40.57 | 77.70 | |
| Average | 500 | 45.29 | 71.20 |