1 Introduction
-
We introduce the bi-objective multimodal car-sharing problem (BiO-MMCP). We present four variants of the problem, discussing increased flexibility of the timings of the visits: we present the model (i) with fixed task sequences and without time-dependent travel times and user preferences, (ii) with fixed time sequences and including time-dependent travel times and user preferences, (iii) no fixed sequences and no time-dependent travel times or preferences and lastly (iv) open sequences of tasks and time-dependent travel times and user preferences.
-
We propose a branch-and-cut algorithm for the most complex problem variant examined in this paper. The algorithm is embedded into two bi-objective frameworks, namely the \(\epsilon \)-constraint method and a weighting binary search method. We show that for both frameworks it is highly beneficial to add cuts in the form of constraints from prior iterations to the following iterations.
-
We provide a thorough analysis where we (i) compare different solution approaches for the models and (ii) give insights into the trade-offs between cost-minimization and enhancing user-centred MOT preferences.
2 Related work
3 The bi-objective multimodal car-sharing problem
3.1 Problem description
m1
)m2
)m1
but include time-dependent MOT preferences and travel times. The target is to find the best MOT to trip assignment and schedule the car routes from a pool of cars whilst minimizing time-dependent costs and user preferences. Again, user routes are input to the problem.m3
)m4
)m2
and m3
: we consider time-dependent user preferences and travel times as well as variable task and trip sequences. Thus, we intend to determine the MOT assignment, schedule car as well as user routes whilst minimizing both time-dependent MOT preferences of users and costs.3.2 Formal description
Sets and nodes | |
P | Set of users |
R | Set of trips |
\(Q_r \subseteq Q\) | Set of tasks of trip r as a subset of the set of tasks |
\(a_r\) | Start node of a trip r |
\(b_r\) | End node of a trip r |
\(G_r\) | Set of nodes on a trip r |
D | Set of depots |
K | Set of modes of transport |
L | Set of legs |
\(L^-,L^+\) | Set of ingoing/outgoing legs |
\(L_v^-,L_v^+\) | Set of ingoing/outgoing legs of node v |
\(L_d^-,L_d^+\) | Set of ingoing/outgoing legs of depot d |
\(L_{p}\) | Set of legs assigned to user p |
\(L_r\) | Set of legs on a trip r |
\(L_{vp}\) | Set of legs of a user p going in/out of a node v |
\(L_{vk}^-,L_{vk}^+\) | Set of ingoing/outgoing legs of node v by MOT k |
\(L_{vp}^-,L_{vp}^+\) | Set of ingoing/outgoing legs of node v by user p |
T | Set of time periods |
S | Subset of the set of nodes \(G_r\) of a trip r |
\(A_p \subseteq A\) | Set of trip start nodes of a user p as a subset of the set of trip start nodes |
\(B_p \subseteq B\) | Set of trip end nodes of a user p as a subset of the set of trip end nodes |
V | Set of all nodes |
\(V'\) | Set of nodes without depots, V \(\setminus \) D |
T | Set of time periods |
\(\mathcal {R}\) | Set of infeasible paths |
\(\mathcal {R}_{car}\) | Set of infeasible car routes |
\(\mathcal {R}_{p}\) | Set of infeasible user routes |
\(\gamma _p\) | Start node of person p |
\(\phi _p\) | End node of person p |
Input parameter | |
\(W_{dk},\overline{W}_{dk}\) | Number of MOTs k in depot d at beginning/end of the planning horizon |
\(\sigma _{pk},\sigma ^t_{pk}\) | Preference value of a person p for MOT k (for time period t) |
\(\theta _{l}\) | Preference of leg l |
\(y_l\) | Origin of leg l |
\(z_l\) | End of leg l |
\(c_{l}\) | Cost of leg l |
\(u_l\) | User of leg l |
\(m_l\) | MOT of leg l |
h | Maximal waiting time |
H | End of planning horizon |
M | Big M |
\(t_l\) | Driving time of leg l |
\(s_v\) | Service time at node v |
\(o_l\) | Interval start of leg l |
\(e_l\) | Interval end of leg l |
\(\mathcal {W}\) | Accumulated waiting time |
\(\Delta \) | Value stating how much a route can be moved forward |
F | Forward slack, \(F=\mathcal {W}+\Delta \) |
Decision variables | |
\(x_{l}\) | 1 if leg l is chosen, 0 otherwise |
\(\tau _l\) | Departure time of leg l |
3.2.1 Model 1 (m1
)
m1
, the sequence of tasks is fixed, resulting in predetermined trips \(r \in R\). We connect each a with its fixed successor q, each task q with its fixed successor \(q'\) or, if the trip only covers one task, the trip end node b. For every pair of end and start nodes (b, a) where a is ahead in time, we insert an additional artificial leg with costs and preferences 0, in order to allow for the connection of car routes covering more than one trip throughout the day.3.2.2 Model 2 (m2
)
m1
again.3.2.3 Model 3 (m3
)
m3
, we have to determine the sequence of tasks per user (ensuring no subtours) as well as consider the scheduling of trips each user is taking. Therefore, the underlying graph has to be adapted. We again consider the set of all nodes V, the set of intermediate nodes \(V'\), the set of depots D, the set of MOTs K, the set of legs L, and the set of users P. We define sets \(A_p\) and \(B_p\) containing all start nodes a and end nodes b of a user p, respectively. These sets will consist of exactly one node, if a user is taking only one trip, two if the user has two trips, etc. Previously, to assure car routes, we only connected an end node b of a trip to a start node a of another trip if a was ahead in time of b. As we are not considering any fixed times/sequences anymore, we connect every b to every a if they are in the same physical depot. Similarly, we connect all nodes belonging to one set \(G_r\), yet not changing the predetermined start and end nodes of one trip. For now, we do not consider time-dependent preferences on legs. Note that the tasks lying on a specific trip are fixed, meaning that if a user previously had two trips, the user will again cover two trips.m3
can now be stated as follows, where decision variables \(\tau _l\) give the departure time of leg l, H depicts the end of the planning horizon, M denotes a big M, \(t_l\) is the travel time of a leg l and \(s_v\) the duration of the task.3.2.4 Model 4 (m4
)
m4
we add time-dependent MOT preferences to the model. This is mainly done by adapting the graph and by adding one constraint to the model m3
.m3
:m4b
can be stated as follows:4 Solution approach
m1
, m2
, and m3
are solved with CPLEX. We can solve real-world sized instances within seconds, as we will show in our computational results. However, as expected, m4
is more challenging to solve. Therefore, we develop a branch-and-cut algorithm in Sect. 4.2 for model m4b
.4.1 Valid inequalities
m3
, m4
, and m4b
, the following set of valid inequalities is used.m3
, m4
, and m4b
, we only require that the sum over all outgoing legs of a node must be equal to 1. In the following valid inequality, the sum over all ingoing legs \(l \in L_{vk}^-\) using MOTs k of a node v has to be equal to 1:m3
, m4
, and m4b
. We now propose additional valid inequalities which are used to strengthen only m4
and m4b
.4.2 Branch-and-cut for m4b
m4b
, we develop a branch-and-cut algorithm. Branch-and-cut algorithms make use of a subset of constraints and iteratively add further constraints in a cutting-plane fashion. Usually, constraint sets of exponential size are excluded which reduces the model to a reasonable size. In our case, we separate the infeasible path constraints (18)–(19), but we enumerate all subtour elimination constraints, since trips are usually very short. Separation algorithms are then called to determine whether the current solution is feasible by checking the omitted constraints. Note that the separation algorithms can be called on any relaxed solution or only on incumbent ones. Our strategy is based on the latter case, where we only call the algorithms if a new incumbent solution is found. If the separation algorithm detects a violation, the respective constraint is added as a cut to the model and the model is consecutively resolved. This is repeated until no violating constraints are detected and an optimal solution is found.4.2.1 Separation of infeasible user routes
4.2.2 Separation of infeasible car routes
4.2.3 Synchronization of routes
4.2.4 Strengthened infeasible path constraints
4.3 Bi-objective frameworks
m1
, m2
, and m3
we use the \(\epsilon \)-constraint method. The branch-and-cut algorithm to solve m4b
is embedded into both frameworks, namely the \(\epsilon \)-constraint method and a weighting binary search method.4.3.1 The \(\epsilon \)-constraint method
4.3.2 A weighting binary search method
5 Computational study
5.1 Test instances
E_
|P|_
I, where |P| is the number of users, and the instance number I is between 0 and 9. For example, the first instance in the set of instances with 20 users (\(|P| = 20\)) is denoted E_20_0
. For instance group with |P| users, we solve a set of 10 instances (E_u_0
to E_u_9
) and report the average values.5.2 Enhancements and preprocessing
m3
and m4
, we provide CPLEX with a starting solution. The starting solution is constructed by simply reading the sequence of the tasks as given in the instance file. For model m4
, we also track the according times and make sure that the times and intervals match. In the starting solution, public transportation is used on all trips. Moreover, after each iteration we store the solution and provide CPLEX with a MIP start. The MIP start will be infeasible but values can be stored for a possible repair.m4
, we duplicate each leg every \(\alpha \) minutes. Assuming that we have a planning horizon of 12 hours and discretize time in steps of 15 minutes, we end up with 48 duplicates of one leg. However, these legs are very similar to each other or even equal as the time periods t may cover various hours. Therefore, in order to reduce the size of the graph, we merge legs with equal weights.m1
and m2
, the underlying graph has the same size as only the preference and cost values on the legs are changing. Row ’\(|\overline{V'}|\)’ gives the average number of nodes, ’\(|\overline{R}|\)’ the average number of trips, and row ’\(|\overline{L}|\)’ the average number of legs in the respective graphs. We observe that the underlying graphs of the first two models have a moderate number of legs as the sequences are predetermined. In models m3
, m4
, and m4b
, the sequence is subject of determination which leads to an increasing number of connecting legs, which is increased even further when time dependency is considered in models m4
and m4b
. Row ’m4
,m4b
+GR’ shows the number of the legs in the graph after the graph reduction.m1
, m2
, m3
, m4
, m4b
and an increasing number of users \(|P|=20,50,100,150,200,250,300\)\(|P|=\) | 20 | 50 | 100 | 150 | 200 | 250 | 300 | |
---|---|---|---|---|---|---|---|---|
\(|\overline{V'}|\) | 95 | 242 | 476 | 714 | 951 | 1179 | 1422 | |
\(|\overline{R}|\) | 31 | 76 | 147 | 218 | 287 | 358 | 427 | |
\(|\overline{L}|\) | m1 , m2 | 416 | 1188 | 2612 | 4340 | 6315 | 8734 | 11,038 |
m3 | 947 | 4190 | 13,394 | 27,756 | 46,503 | 70,492 | 99,462 | |
m4 ,m4b | 13,479 | 41,077 | 93,079 | 150,877 | 216,989 | 276,626 | 356,713 | |
m4 ,m4b +GR | 3984 | 13,995 | 34,780 | 61,310 | 92,790 | 127,155 | 167,645 |
5.3 Algorithmic tests
m1
, m2
, m3
, m4
) in their basic form, i.e. without adding valid inequalities or using the branch-and-cut algorithm. Afterwards, we analyse the impact of valid inequalities on model m3
. Finally, we focus on solving the most challenging model m4
. We compare the reformulation of m4
to m4b
, i.e. if the branch-and-cut algorithm comes with any improvements in computational efficiency. We aim to detect the enhancements by adding valid inequalities, using the branch-and-cut algorithm and choose the best framework (out of the two introduced) to solve model m4b
.5.3.1 Comparison of models m1
, m2
, m3
, and m4
m1
, m2
, m3
, and m4
. The models are embedded in the \(\epsilon \)-constraint method and enumerated by setting either the cost function as the objective (cost
) or the user preferences as the objective (pref
). Results are given for instance sets for which we were able to solve all 10 instances. Run times for m1
and m2
are very short. We can solve real-world-sized instances with 300 users in less than 5 minutes. For m1
, the direction of the \(\epsilon \)-constraint method has no impact. In the case of m2
, setting pref
as first objective results in shorter run times. Models m3
and m4
are ’harder’ to solve. For model m3
, we can see a significant increase in the average run times for the instance group with \(|P|=50\). The largest instance set we can solve comprises 100 users in the case of m3
. Adding valid inequalities reduces computational times by a factor of 3 for this instance size (m3
-VI) and \(|P|=100\). With m4
we cannot solve any complete instance set. We will go into more detail on m4
, its possible extensions and the respective results later. Using the best setting of the proposed branch-and-cut-based algorithm, we are able to enumerate the whole Pareto frontier within about 3,000 seconds, on average.m1
, m2
, m3
, m3
-VI, m4
, m4bVIBnCBiO
and an increasing number of users \(|P|=20,50,100,150,200,250,300\) for both directions (cost
, pref
) in the \(\epsilon \)-constraint method\(|P|=\) | 20 | 50 | 100 | 150 | 200 | 250 | 300 | |
---|---|---|---|---|---|---|---|---|
m1 | cost | 0.3 | 3.0 | 15.8 | 45.2 | 88.1 | 163.4 | 247.3 |
pref | 0.3 | 3.0 | 15.8 | 43.6 | 85.1 | 160.9 | 238.5 | |
m2 | cost | 0.7 | 5.5 | 35.4 | 92.0 | 188.2 | 319.8 | 428.5 |
pref | 0.5 | 4.4 | 29.8 | 79.8 | 165.3 | 288.2 | 399.9 | |
m3 | cost | 7.4 | 498.5 | 17,707.6 | – | – | – | – |
pref | 7.7 | 1037.3 | – | – | – | – | – | |
m3 -VI | cost | 8.0 | 480.4 | 5743.2 | – | – | – | – |
pref | 8.5 | 874.5 | 5577.5 | – | – | – | – | |
m4 | cost | – | – | – | – | – | – | – |
pref | – | – | – | – | – | – | – | |
m4bVIBnCBiO | cost | 3511.9 | – | – | – | – | – | – |
pref | 2730.7 | – | – | – | – | – | – |
m1
and m3
, we see almost the same number of Pareto optimal solutions on average per instance set. If we compare the increased cost in computational complexity coming with m3
, we could argue that dissolving the sequences where no time-dependent information is given is not worthwile. We will investigate the shape of the Parento frontiers in a subsequent section in order to obtain a better understanding of the resulting solutions. Comparing m1
with m2
, we can see a distinct increase in optimal solutions on the frontier, even though we only introduced time-dependent cost and preferences. Finally, m4
gives by far the highest number of optimal solutions for the small instance set of \(|P|=20\).m1
, m2
, m3
, m4
for an increasing number of users \(|P|=20,50,100,150,200,250,300\)\(|P|=\) | 20 | 50 | 100 | 150 | 200 | 250 | 300 |
---|---|---|---|---|---|---|---|
m1 | 18 | 73 | 159 | 250 | 349 | 464 | 518 |
m2 | 34 | 164 | 346 | 555 | 767 | 993 | 1073 |
m3 | 18 | 72 | 158 | – | – | – | – |
m4 | 141 | – | – | – | – | – | – |
5.3.2 Introducing valid inequalities for model m3
m3
without additional information (m3
) and by adding valid inequalities (21)–(27) as well as subtour elimination constraints (20) as user cuts (m3
-VI). We use both, costs (cost
) and preferences (pref
), respectively, as the ’main’ objective function in the \(\epsilon \)-constraint method. Results are given for \(|P| = 100,150\) and listed for each instance. Row ’# solved’ shows the number of instances solved with the respective model. We can observe that for some of the instances, e.g. E_100_8, for both cost
and pref
, the execution time is higher with the valid inequalities than without them. However, on average adding additional information in the form of valid inequalities improves computation times by a factor of approximately 4. Even for instance E_100_2, where we were not able to enumerate the whole Pareto frontier within 12 hours with the base model, we are now able to get the frontiers from either side in less than 3 hours. For the case where \(|P|=150\) and pref
, we are able to solve all but two instances, however, all with relatively long computational times. Direction cost
shows longer run times for all solved instances, whereas for two more cases, in total four, the total Pareto frontier cannot be enumerated. None of the instances with \(|P|=150\) has been solved without the valid inequalities. Furthermore, we were not able to solve any of the instances with \(|P|=200\) using m3
or m3
-VI.m3
without valid inequalities (m3
) and the same model including valid inequalities (m3
-VI) and having either cost (cost
) or preferences (pref
) set as the objective function in the \(\epsilon \)-constraint methodcost | pref | cost | pref | ||||||
---|---|---|---|---|---|---|---|---|---|
m3 | m3 -VI | m3 | m3 -VI | m3 | m3 -VI | m3 | m3 -VI | ||
E_100_0 | 2419 | 2852 | 3212 | 2628 | E_150_0 | TO | TO | TO | TO |
E_100_1 | 3329 | 3104 | 2513 | 2777 | E_150_1 | TO | TO | TO | 39,507 |
E_100_2 | 35,758 | 7275 | TO | 8504 | E_150_2 | TO | TO | TO | 41,675 |
E_100_3 | 3382 | 3544 | 3281 | 3892 | E_150_3 | TO | 37,060 | TO | 20,507 |
E_100_4 | 24,162 | 4177 | 25,159 | 4553 | E_150_4 | TO | TO | TO | TO |
E_100_5 | 27,186 | 6655 | 25,587 | 6062 | E_150_5 | TO | 19,766 | TO | 14,098 |
E_100_6 | 11,152 | 9814 | 11,403 | 9092 | E_150_6 | TO | 18,352 | TO | 13,640 |
E_100_7 | 24,112 | 9245 | 22,085 | 6880 | E_150_7 | TO | 38,193 | TO | 21,112 |
E_100_8 | 3398 | 5204 | 2685 | 3678 | E_150_8 | TO | 30,083 | TO | 23,643 |
E_100_9 | 22,771 | 5561 | 28,090 | 7708 | E_150_9 | TO | TO | TO | 35,617 |
# solved | 10 | 10 | 9 | 10 | 0 | 5 | 0 | 8 |
5.3.3 Solving model m4
m4
. Table 6 shows the run times for (i) model m4
(m4
(\(\epsilon \))), (ii) m4
with valid inequalities (m4-VI
(\(\epsilon \))), (iii) model m4b
with valid inequalities, and infeasible path constraints in the form of (39)-(40) added through cut generation and embedded into the \(\epsilon \)-constraint method (m4bVIBnC
(\(\epsilon \))), (iv) the bi-objective branch-and-cut, which is similar to the previous variant but we pass the cuts generated as constraints from one solution to another (m4bVIBnCBiO
(\(\epsilon \))), (v) model m4b
solved by branch-and-cut embedded in the weighting binary search method (m4bVIBnC
(\(\omega \))), and (vi) the branch-and-cut used to solve m4b
using the weighting binary search method and passing cuts to subsequent iterations (m4bVIBnCBiO
(\(\omega \))). Again all results are given for both directions, cost
and pref
in the case of the \(\epsilon \)-constraint scheme. In the case of the binary search, both objectives are combined in one weighting objective function. Times are in seconds. Row ’# solved’ gives the number of instances solved. Results are given for each instance for \(|P|=20\).m4
(\(\epsilon \)) and the direction cost
, only one instance is solved, using pref
as the main objective, two instances can be solved within 12 hours of computation time. Adding valid inequalities (m4-VI
(\(\epsilon \))), we are able to increase the number of instances solved to 6 for the direction cost
and to 7 for the direction pref
. Still for most of the instances the run times exceed 10,000 seconds.m4
) to the entirely integer model (m4b
) with cut generation, we can improve run times considerably by at least a factor of 10 (column m4bVIBnC
(\(\epsilon \))). Yet, we are still not able to enumerate the whole frontier for instance E_20_9. By seizing the bi-objective character of the model and handing over detected infeasible paths as constraints from one iteration of the \(\epsilon \)-constraint scheme to the next, we further increase in the algorithms’ computational efficiency (m4bVIBnCBiO
(\(\epsilon \))). Note that different to most works, we add the detected infeasible paths not to a cut pool but explicitly to the set of constraints. All instances with \(|P|=20\) can now be solved for m4
. The last two columns of Table 6 show the results obtained by applying the weighting method and conducting a binary search in the objective space. It is again clearly visible, that the approach where cuts are passed on from iteration to another, enhances computation times and thus seizing the bi-objective character of the models is beneficial. Nevertheless, the run times are not comparable to ’m4bVIBnCBiO
(\(\epsilon \))’. The reason is that the binary search algorithm calls the solver approximately twice as often as the \(\epsilon \)-constraint.m4
using different approachesm4 (\(\epsilon \)) | m4-VI (\(\epsilon \)) | m4bVIBnC (\(\epsilon \)) | m4bVIBnCBiO (\(\epsilon \)) | m4bVIBnC (\(\omega \)) | m4bVIBnCBiO (\(\omega \)) | |||||
---|---|---|---|---|---|---|---|---|---|---|
cost | pref | cost | pref | cost | pref | cost | pref | |||
E_20_0 | TO | 26,780 | 12,663 | 7,190 | 779 | 743 | 206 | 192 | 669 | 324 |
E_20_1 | TO | TO | TO | TO | 2957 | 2099 | 455 | 407 | 1823 | 621 |
E_20_2 | TO | 20,437 | 13,504 | 9339 | 737 | 793 | 168 | 159 | 608 | 192 |
E_20_3 | TO | TO | 29,772 | 18,012 | 856 | 890 | 192 | 189 | 711 | 294 |
E_20_4 | TO | TO | TO | 23,490 | 2447 | 1798 | 473 | 420 | 1681 | 560 |
E_20_5 | TO | TO | 19,823 | 10,810 | 743 | 781 | 327 | 190 | 712 | 322 |
E_20_6 | TO | TO | 31,309 | 26,751 | 1982 | 1557 | 399 | 369 | 1244 | 590 |
E_20_7 | TO | TO | TO | TO | 3383 | 2436 | 628 | 496 | 2555 | 716 |
E_20_8 | TO | TO | 32,790 | 18,522 | 892 | 948 | 333 | 256 | 729 | 414 |
E_20_9 | TO | TO | TO | TO | TO | TO | 31,937 | 24,629 | TO | TO |
# solved | 0 | 2 | 6 | 7 | 9 | 9 | 10 | 10 | 9 | 9 |
m4bVIBnCBiO
(\(\epsilon \))’ (with direction pref
) is, for our problem setting, more efficient than ’m4bVIBnCBiO
(\(\omega \))’. As discussed, this is mainly due to the increase in the number of MIPs that have to be solved. Table 7 compares the run times of the two approaches for \(|P|=50\). The table shows similar results as above. The \(\epsilon \)-constraint method is able to solve more instances and also, if the instance is solved by both approaches, results in shorter computation times.m4b
by branch-and-cut embedded in the \(\epsilon \)-constraint method (m4bVIBnCBiO
(\(\epsilon \))) and in the weighting binary search algorithm (m4bVIBnCBiO
(\(\omega \)))m4bVIBnCBiO (\(\epsilon \)) | m4bVIBnCBiO (\(\omega \)) | |
---|---|---|
E_50_0 | 16,712 | 31,100 |
E_50_1 | TO | TO |
E_50_2 | TO | TO |
E_50_3 | 13,759 | 22,657 |
E_50_4 | 5876 | 13,954 |
E_50_5 | 41,764 | TO |
E_50_6 | TO | TO |
E_50_7 | TO | TO |
E_50_8 | 4746 | 7907 |
E_50_9 | TO | TO |
m4bVIBnC
(\(\epsilon \)), m4bVIBnC
(\(\omega \))) and where we use information in the form of cuts added as constraints from prior iterations (m4bVIBnCBiO
(\(\epsilon \)), m4bVIBnCBiO
(\(\omega \))). We can clearly see that without additional information we use up to 100 times more cuts. As discussed prior, the binary search method has a lower average number, but more iterations are conducted.m4b
by branch-and-cut embedded in the \(\epsilon \)-constraint method (m4bVIBnC
(\(\epsilon \))) or the weighting binary search (m4bVIBnC
(\(\omega \))), and by adding detected infeasible paths constraints to the model (m4bVIBnCBiO
(\(\epsilon \)),m4bVIBnCBiO
(\(\omega \)))\(|P|=20\) | E_20_0 | E_20_1 | E_20_2 | E_20_3 | E_20_4 | E_20_5 | E_20_6 | E_20_7 | E_20_8 | E_20_9 |
---|---|---|---|---|---|---|---|---|---|---|
m4bVIBnC (\(\epsilon \)) | 120.0 | 205.1 | 180.2 | 223.0 | 227.5 | 179.1 | 208.3 | 189.8 | 179.8 | 1694.9 |
m4bVIBnCBiO (\(\epsilon \)) | 1.3 | 3.3 | 2.1 | 5.2 | 7.6 | 6.8 | 7.9 | 4.3 | 3.2 | 70.2 |
m4bVIBnC (\(\omega \)) | 49.8 | 105.0 | 68.6 | 94.1 | 109.7 | 67.3 | 89.6 | 97.7 | 63.0 | – |
m4bVIBnCBiO (\(\omega \)) | 1.4 | 2.4 | 1.2 | 1.5 | 4.0 | 2.9 | 4.5 | 2.2 | 1.6 | – |
5.4 Managerial insights
5.4.1 Comparison of Pareto frontiers for models m1
, m2
, m3
, and m4
m1
is hidden behind m3
. For these small instances, the additional freedom to choose sequences of tasks and trips is not giving any improvement to the model. Frontiers for m2
are similar in their shape for both instances and, however, slightly differ in their relation to the other curves, especially to m3
(m1
). Introducing time-dependent values for m2
, lower (better) overall preferences but higher cost are obtained, visible as a shift to the left on the x-axis and a shift upwards on the y-axis. The increased cost comes from the additional time needed during specific day-times. Note that we usually have a \(\beta > 1\), meaning that we rarely decrease the driving time compared to the base scenario (except for public transportation, where we assume shorter cycle times for, e.g., rush-hours). For m4
, the length of the frontier exceeds all the other curves. It is clearly visible that with time-dependent preferences and cost as well as flexible sequences, we have a greater set of Pareto optimal solutions. Also, the curve is shifting to the left corner, meaning that we have better overall cost as well as preferences. The average cost and preference values for instances with \(u=20\) are: 505 and 2,878 for m1
, 548 and 2,272 for m2
, 505 and 2,878 for m3
, 476 and 1,591 for m4
, respectively. Concluding, we can say that time dependencies do have a great impact when solving the bi-objective multimodal car-sharing problem. Furthermore, we observe that only dissolving the fixed sequence does not come with high improvements, but in combination with time dependencies a greater amount of solutions as well as lower cost and better user satisfaction are obtained.
5.4.2 MOT assignment for models m1
, m2
, m3
, and m4
m1
, m2
, m3
, m4
. In Fig. 4, we show the respective Pareto frontier for the four models and include the number of trips taken by each MOT for the respective Pareto optimal solution. Note that the number of trips that are covered by a car does not have to be equal to the number of cars used in total as a car might take more than one trip during a day.m4
, we observe a similar development for both instances for all MOTs. With increasing (worse) preferences, and decreasing cost, we gradually assign more cars and less bikes. The number of trips taken by public transportation is more or less constant. Thus, most cost-efficient, considering time dependencies, are car trips; best preferences give bike trips. A car is, in our instance set, the fastest mode of transport. As we include time in the cost function, this also makes cars often the cheapest option. Moreover, our study gives relatively good time-dependent preference scores to bikes, as it is, e.g., good in rush-hours to avoid congestion or overcrowded public transportation. This of course has a great impact on the resulting tendencies in the final results.m1
, m2
, and m3
the number of trips taken by bike is decreasing with lower cost and higher (worse) preferences. The number of trips taken by public transportation is increasing with higher (worse) preferences and lower cost.m1
and m3
we always assign more cars and public transportation to the cost optimal solution (except for one instance for m3
); the number of trips taken by public transportation and cars decreases with higher cost but better preferences. Bikes are preferred by the preference optimal solutions, and increase with less cost. Also for m2
we can observe that the number of bikes assigned is decreasing with increasing cost and lower (better) preferences. The opposite holds for public transportation. We can figure an unchanged level of trips being assigned to public transportation for m4
. For m4
, lower cost and higher (worse) preferences lead to more cars assigned and, conversely, more bikes are assigned with an increase in cost, and decrease in preferences.
m1
, m2
, m3
, m4
), MOTs, and number of users \(|P|=20,50,100,150,200,250,300\).m3
assigns about the same amount of cars and public transportation. m2
always shows the highest number of trips taken by public transportation. Thus, by having the choice between MOTs for a trip with a fixed sequence, public transportation is preferred. m4
has a very high number of trips taken by bikes.m1
, m2
, m3
, m4
for an increasing number of users \(|P|=20,50,100,150,200,250,300\). Considered modes of transport are car, bike and public transportation|P| | m1 | m2 | m3 | m4 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Car | Bike | Public | Car | Bike | Public | Car | Bike | Public | Car | Bike | Public | ||
av | 20 | 7.7 | 11.7 | 11.4 | 2.2 | 11.6 | 17.1 | 8.1 | 10.5 | 12.1 | 6.3 | 20.0 | 4.5 |
min | 4.5 | 4.7 | 6.8 | 0.8 | 5.0 | 11.5 | 4.7 | 3.9 | 7.5 | 1.8 | 12.1 | 2.5 | |
max | 10.6 | 19.3 | 15.9 | 4.5 | 16.8 | 23.6 | 10.9 | 18.3 | 16.4 | 14.6 | 26.3 | 6.8 | |
av | 50 | 23.4 | 29.9 | 23.0 | 3.1 | 27.9 | 45.3 | 23.3 | 27.6 | 25.3 | 21.6 | 45.0 | 10.0 |
min | 11.0 | 11.5 | 14.4 | 1.8 | 11.2 | 29.1 | 11.8 | 9.1 | 16.4 | 5.3 | 29.8 | 5.1 | |
max | 33.9 | 50.6 | 32.3 | 6.5 | 43.6 | 61.1 | 34.9 | 46.2 | 34.9 | 41.0 | 62.0 | 14.5 | |
av | 100 | 47.1 | 54.2 | 45.3 | 5.9 | 54.2 | 86.5 | 47.3 | 54.0 | 45.4 | – | – | – |
min | 22.5 | 20.8 | 30.1 | 2.9 | 19.9 | 54.1 | 23.8 | 19.9 | 31.0 | – | – | – | |
max | 71.7 | 93.9 | 57.0 | 13.2 | 82.8 | 120.0 | 72.0 | 87.9 | 61.4 | – | – | – | |
av | 150 | 72.7 | 82.7 | 62.2 | 10.8 | 81.4 | 125.4 | 66.4 | 86.9 | 64.8 | – | – | – |
min | 37.5 | 34.3 | 41.8 | 6.4 | 32.7 | 82.3 | 33.5 | 35.5 | 45.6 | – | – | – | |
max | 106.1 | 138.2 | 79.4 | 21.0 | 121.0 | 171.4 | 102.4 | 136.5 | 86.4 | – | – | – | |
av | 200 | 94.6 | 108.6 | 83.9 | 15.4 | 107.4 | 164.3 | – | – | – | – | – | – |
min | 48.5 | 39.5 | 55.1 | 10.3 | 40.1 | 105.4 | – | – | – | – | – | – | |
max | 142.1 | 183.3 | 107.0 | 25.3 | 163.1 | 227.3 | – | – | – | – | – | – | |
av | 250 | 120.0 | 137.0 | 101.2 | 20.9 | 137.1 | 200.3 | – | – | – | – | – | – |
min | 62.2 | 53.0 | 65.3 | 14.3 | 51.5 | 129.5 | – | – | – | – | – | – | |
max | 177.7 | 230.4 | 130.4 | 37.7 | 201.8 | 279.6 | – | – | – | – | – | – | |
av | 300 | 131.2 | 163.8 | 132.5 | 19.6 | 163.2 | 244.7 | – | – | – | – | – | – |
min | 70.3 | 62.7 | 88.4 | 13.8 | 57.8 | 158.5 | – | – | – | – | – | – | |
max | 194.7 | 268.7 | 171.9 | 36.6 | 239.7 | 347.3 | – | – | – | – | – | – |