Abstract
Although carpooling provides a way to achieve higher efficiency and lower costs of a transport system by grouping people and sharing cars or vehicles in use, it is still not widely accepted. Several studies indicate that cost savings and timeliness are the main incentives for acceptance of the carpooling business model. However, existing studies are deficient in supporting operations of carpooling business model from specifying the requirements of drivers and passengers, matching drivers with passengers to allocating cost savings among ridesharing participants. A pragmatic solution methodology to maximize cost savings while respecting timing constraints and allocate cost savings in carpooling systems is a critical factor for ensuring the success of carpooling business model. The problem to maximize cost savings subject to capacity constraints and timing constraints can be formulated as an integer programming problem. Although there are several works for solving carpooling problems based on metaheuristic approaches, existing studies on application of metaheuristic approaches in carpooling problems are still limited. Motivated by deficiencies of existing studies discussed above, this paper aims to (1) propose a carpooling model based on double auctions, (2) formulate the carpooling problem and develop a discrete cooperative coevolving particle swarm optimization (DCCPSO) algorithm to solve the problem (3) propose a cost savings allocation scheme to benefit ridesharing participants (4) study the influence of detour distance constraints on performance and (5) study the effectiveness of the proposed algorithm by comparing with other metaheuristic algorithms through experiments. Simulation results indicate that the proposed DCCPSO algorithm significantly outperforms several existing algorithms in solving the carpooling problem.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Baldacci R, Maniezzo V, Mingozzi A (2004) An exact method for the car pooling problem based on Lagrangean column generation. Oper Res 52(3):422–439
Maniezzo V, Carbonaro A, Hildmann H (2004) An ants heuristic for the long-term car pooling problem. In: Onwubolu G, Babu BV (eds) New optimization techniques in engineering, pp 412–429
Marletto G (2014) Car and the city: socio-technical transition pathways to 2030. Technol Forecast Soc Change 87:164–178
Furuhata M, Dessouky M, Ordóñez F, Brunet M, Wang X, Koenig S (2013) Ridesharing: the state-of-the-art and future directions. Transp Res B Methodol 57:28–46
Agatz N, Erera A, Savelsbergh M, Wang X (2012) Optimization for dynamic ridesharing: a review. Eur J Oper Res 223(2):295–303
Kennedy J, Eberhart RC (1995) Particle swarm optimization. In: Proceedings of IEEE International Conference on Neural Networks, Piscataway, NJ, pp 1942–1948
El-Galland AI, El-Hawary ME, Sallam AA (2001) Swarming of intelligent particles for solving the nonlinear constrained optimization problem. Eng Intell Syst Electr Eng Commun 9(3):155–163
Van den Bergh F, Engelbrecht AP (2000) Cooperative learning in neural network using particle swarm optimizers. South African Comput J 26:84–90
Tasgetiren MF, Sevkli M, Liang YC, Gencyilmaz G (2004) Particle swarm optimization algorithm for single machine total weighted tardiness problem. In: Proc IEEE Congress Evolutionary comput, vol 2, pp 1412–1419
Kennedy J, Eberhart RC (1997) A discrete binary version of the particle swarm algorithm, 1997. IEEE Int Conf Syst, Man, Cybern: Comput Cybern Simul 5:4104–4108
Vesterstrom J, Thomsen R (2004) A comparative study of differential evolution, particle swarm optimization, and evolutionary algorithms on numerical benchmark problems. Proc 2004 Congress Evolutionary Comput 2:1980–1987
van den Bergh F, Engelbrecht AP (2004) A Cooperative approach to particle swarm optimization. IEEE Trans Evolutionary Comput 8(3):225–239
Potter MA, De Jong KA (1994) A cooperative coevolutionary approach to function optimization. Lect Notes Comput Sci 866:249–257
Yang Z, Ke T, Yao X (2008) Large scale evolutionary optimization using cooperative coevolution. Inform Sci 178(15):2985–2999
Li X, Yao X (2012) Cooperatively coevolving particle swarms for large scale optimization. IEEE Trans Evolutionary Comput 16(2):210–224
Hsieh F-S (2017) Car pooling based on trajectories of drivers and requirements of passengers. In: IEEE 31st International Conference on Advanced Information Networking and Applications, pp 972–978
Hsieh F-S, Zhan F-M, Guo Y-H (2017) Car pooling based on a metaheuristic approach. In: 30th International Conference on Industrial Engineering and Other Applications of Applied Intelligent Systems (IEA/AIE 2017), Lecture Notes in Artificial Intelligence, vol 10350, pp 31–40
Ravindran A, Ragsdell KM, Reklaitis GV (2007) Engineering optimization: methods and applications, Second Edition. Wiley, New York
Deb K (2004) Optimization for engineering design: algorithms and examples. Prentice-Hall, Englewood Cliffs
Deb K (2000) An efficient constraint handling method for genetic algorithms. Comput Methods Appl Mech Eng 186(2-4):311– 338
Banitalebi A, Aziz Mohd IA, Aziz ZA (2016) A self-adaptive binary differential evolution algorithm for large scale binary optimization problems. Inform Sci 367-368:487–511
Bruglieri M, Ciccarelli D, Colorni A, Luè A (2011) Poliunipool: a carpooling system for universities. Procedia - Soc Behavioral Sci 20:558–567
Agatz Niels AH, Erera Alan L, Savelsbergh MWP, Wang X (2011) Dynamic ride-sharing: a simulation study in Metro Atlanta. Transp Res B Methodol 45(9):1450–1464
Elbery A, ElNainay M, Chen F, Chang-Tien L, Kendall J (2013) A carpooling recommendation system based on social VANET and geo-social data. In: Proceedings of the 21st ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems (SIGSPATIAL’13). ACM, New York, pp 556– 559
Cici B, Markopoulou A, Frias-Martinez E, Laoutaris N (2014) Assessing the potential of ride-sharing using mobile and social data: a tale of four cities. In: Proceedings of the 2014 ACM International Joint Conference on Pervasive and Ubiquitous Computing (UbiComp ’14). ACM, New York, pp 201–211
Bicocchi N, Mamei M (2014) Investigating ride sharing opportunities through mobility data analysis. Pervasive Mobile Comput 14:83–94
Bruck BP, Incerti V, Iori M, Vignoli M (2017) Minimizing CO emissions in a practical daily carpooling problem. Comput Oper Res 81:40–50
Santos DO, Xavier EC (2015) Taxi and ride sharing: a dynamic dial-a-ride problem with money as an incentive. Expert Syst Appl 42(19):6728–6737
Nourinejad M, Roorda MJ (2016) Agent based model for dynamic ridesharing. Trans Res Part C: Emerg Technol 64:117–132
Stiglic M, Agatz N, Savelsbergh M, Gradisar M (2016) Making dynamic ride-sharing work: the impact of driver and rider flexibility. Trans Res Part E: Logistics Trans Rev 91:190–207
Herbawi W, Weber M (2011) Evolutionary multi-objective route planning in dynamic multi-hop ridesharing. Evol Comput Combin Optim 6622:84–95
Cheikh SB, Hammadi S, Tahon C (2015) Agent-based evolutionary cooperative approach for dynamic multi-hop ridematching problem. IFAC-PapersOnLine 48(3):887–892
Cheikh SB, Hammadi S (2016) Multi-hop ridematching optimization problem: intelligent chromosome agent-driven approach. Expert Syst Appl 62:161–176
Shete A, Bhandare V, Londhe L (2015) Intelligent carpooling system. Int J Comput Appl 118(4):26–31
Herbawi WM, Weber M (2012) A genetic and insertion heuristic algorithm for solving the dynamic ridematching problem with time windows. In: Proceedings of the ACM International Conference of Genetic Evolutionary Computation, pp 385–392
Eberhart C, Yuhui R, Yuhui S (1998) Comparison between genetic algorithms and particle swarm optimization. Lect Notes Comput Sci 1447:611–616
Hassan R, Cohanim B, De Weck O (2005) A Comparison of Particle Swarm Optimization and the Genetic Algorithm. https://doi.org/10.2514/6.2005-1897
Satunin S, Babkin E (2014) A multi-agent approach to Intelligent Transportation Systems modeling with combinatorial auctions. Expert Syst Appl 41(15):6622–6633
Khan SA, Engelbrecht AP (2012) A fuzzy particle swarm optimization algorithm for computer communication network topology design. Appl Intell 36:161–177
Olivera AC, Garcia-Nieto JM, Alba E (2015) Reducing vehicle emissions and fuel consumption in the city by using particle swarm optimization. Appl Intell 42(3):389–405
Hsieh F-S, Liao C-S (2015) Scalable multi-agent learning algorithms to determine winners in combinatorial double auctions. Appl Intell 43(2):308–324
Xia M, Stallaert J, Whinston AB (2005) Solving the combinatorial double auction problem. Eur J Oper Res 164(1):239–251
Guajardoa M, Ronnqvist M (2016) A review on cost allocation methods in collaborative transportation. Int Trans Oper Res 23(3):371–392
Shapley LS (1953) A value for n-person games. Annal Math Stud 28:307–317
Kalai E (1977) Proportional solutions to bargaining situations: intertemporal utility comparisons. Econometrica 45(7):1623–1630
Schmeidler D (1969) The nucleolus of a characteristic function game. SIAM J Appl Math 17(6):1163–1170
Fatima SS, Wooldridge M, Jennings NR (2008) A linear approximation method for the Shapley value. Artif Intell 172(14):1673–1699
Boughaci D (2010) A differential evolution algorithm for the winner determination problem in combinatorial auctions. Electron Notes Discrete Math 36:535–542
Wang F, Zhang H, Li K, Lin Z, Yang J, Shen XL (2018) A hybrid particle swarm optimization algorithm using adaptive learning strategy. Inf Sci 436-437:162–177
Chen Y, Li L, Peng H, Xiao J, Wu Q (2018) Dynamic multi-swarm differential learning particle swarm optimizer. Swarm Evol Comput 39:209–221
Cao L, Xu L, Goodman ED (2018) A neighbor-based learning particle swarm optimizer with short-term and long-term memory for dynamic optimization problems. Inf Sci 453:463–485
Acknowledgements
This paper is currently supported in part by Ministry of Science and Technology, Taiwan under Grant MOST 106-2410-H-324-002-MY2.
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix I: Notation
Symbol | Meaning |
---|---|
P | the number of different passengers in the carpooling system; the set of all passengers is denoted by {1, 2, 3,....P}. |
p | the index of a passenger, where p ∈{1, 2, 3,....P}. |
K | the number of all pick-up and drop-off locations of passengers. Without loss of generality, it is assumed that all the pick-up and drop-off locations of passengers are distinct. In this case, there are P pick-up locations and P drop-off locations and K = 2P. |
k | the index of a pick-up location or a drop-off location, where k ∈{1, 2,...,K}. |
L k | the k -th location, where k ∈{1, 2,...,K}. |
D | the number of drivers in the carpooling system; the set of all drivers is {1, 2, 3,....,D}. |
d | the index of a driver, where d ∈{1, 2, 3,....,D}. |
J d | the number of bids placed by driver d, where d ∈{1, 2,...,D}. |
j | the j − th bid submitted by driver d, where d ∈{1, 2,...,D} and j ∈{1, 2,...,Jd}. |
Π | a route, which consists a sequence of locations. |
π d | the original route taken by driver d when driver d travels alone. |
πdj(Lod, Led) | the route corresponding to the j − th bid submitted by driver d, where d ∈{1, 2,...,D} and j ∈{1, 2,...,Jd}, Lod and Led denote the origin and destination of route πdj, respectively. πdj(Lod, Led) is abbreviated as πdj whenever its is clear from the context. πdj consists of a sequence of locations \(L_{1} ,L_{2} ,...,L_{\left | {M_{dj} } \right |} \). |
k d j m | the m − th location visited by route πdj, \(m\in M_{dj} =\{1,2,...,\left | {\pi _{dj} } \right |\}\) |
Πd | the set of all routes submitted by driver d, where d ∈{1, 2,...,D}, \({\Pi }_{d} =\{\pi _{dj} \left | {j\in \{1,2,...,J_{d} \}\}} \right .\). |
a d | the number of available seats (capacity of the car) provided by driver d, where d ∈{1, 2, 3,....,D}. |
τ d j | \(\tau _{dj} = \frac {dist(\pi _{dj} (Lo_{d} ,Le_{d} ))}{dist(\pi _{d} (Lo_{d} ,Le_{d} ))}:\) the detour ratio of route πdj. |
\(\bar {{\tau }}_{d} \) | the maximum detour ratio specified by driver d . |
R d | \(R_{d} = (Lo_{d} ,Le_{d} ,{\omega _{d}^{e}} ,{\omega _{d}^{l}} ,a_{d} ,\bar {{\tau }}_{d} ):\) the requirements of driver d , where \(Lo_{d} ,Le_{d} ,{\omega _{d}^{e}} ,{\omega _{d}^{l}} \), ad and \(\bar {{\tau }}_{d} \) denote the origin, destination, earliest departure time, latest arrival time, quantity of available seats and maximum detour ratio specified by driver d, respectively. |
τ p d | estimated detour ratio \(\tau _{pd} =\frac {\gamma (p,d)}{dist(\pi (Lo_{dj} ,Le_{dj} ))}\), where γ(p, d) = dist(Π(Lod, Lop)) + dist(Π(Lop, Lep)) + dist(Π(Lep, Led)) |
R p | \(R_{p} = (Lo_{p} ,Le_{p} ,{\omega _{p}^{e}} ,{\omega _{p}^{l}} ,n_{p} ):\) the request of passenger p, where \(Lo_{p} ,Le_{p} ,{\omega _{p}^{e}} ,{\omega _{p}^{l}} \) and np denote the origin, destination, earliest departure time, latest arrival time specified by passenger p and the number of passengers to be transported, respectively, and p ∈P. |
\(t_{p}^{dep} \) | the time passenger p is picked up at Lop. |
\(t_{p}^{arr} \) | the time passenger p is dropped of at Lep. |
\(t_{d}^{dep} \) | the time driver d departs at Lod. |
\(t_{d}^{arr} \) | the time driver d arrives at Led. |
B d | the set of passengers \(^{\prime }\)ad -smallest estimated detour ratio (τpd) requests for each driver d ∈{1, 2,...,D}; \(B_{d} =\{R_{p} \left | {p\in \{1,2,3,....P\},\tau _{pd} } \right .\) is ad -smallest } |
c d j | the cost for transporting the bundle of passengers in the j − th bid submitted by driver d. |
o d | the travel cost for taking the route πd by driver d without transporting any passengers. That is, od is the cost that driver d travels alone. |
\(q_{djk}^{1} \) | a nonnegative integer that denotes the quantity of seats offered to pick up passengers at location k in the j − th bid submitted by driver d ; \(q_{djk}^{1} =\) 0 if location k is not visited by πdj. |
\(q_{djk}^{2} \) | a nonnegative integer that denotes the quantity of seats released due to dropping passengers at location k in the j − th bid submitted by driver d; \(q_{djk}^{2} =\) 0 if location k is not visited by πdj. |
\(b_{dj}^{D} \) | \(b_{dj}^{D} = (q_{dj1}^{1} ,q_{dj2}^{1} ,...,q_{djk}^{1} ,...,q_{djP}^{1} ,q_{dj1}^{2} ,q_{dj2}^{2} ,...,q_{djk}^{2} ,...,q_{djP}^{2} ,\pi _{dj} ,c_{dj} ,a_{d} ): \) a vector generated based on Rd to represent the j − th bid submitted by driver d. The j − th bid \( b_{dj}^{D} \) is actually an offer to transport passengers specified by \( q_{djk}^{1} \) and \( q_{djk}^{2} \) for each k ∈{1, 2, 3,....,P} at the cost cdj with capacity ad by following route πdj. |
πp(Lop, Lep) | the original route from Lop to Lep that will be taken when passenger p travels alone. πp(Lop, Lep) will be abbreviated as πp whenever it is clear from the context. |
n p | the number of passengers to be transported in the bid of passenger p. |
\(s_{pk}^{1} \) | the number of seats requested in the bid of passenger p to pick up passengers at pick-up location Lk, where k ∈{1, 2, 3,....,P}. |
\(s_{pk}^{2} \) | the number of seats to be released from in the bid of passenger p due to dropping passengers at location LP + k, where k ∈{1, 2, 3,....,P}. |
f p | the price of the bid submitted by passenger p based on the original travel cost of passenger p when he/she travels alone. |
\({b_{p}^{P}} \) | \({b_{p}^{P}} = (s_{p1}^{1} ,s_{p2}^{1} ,s_{p3}^{1} ,...,s_{pP}^{1} ,s_{p1}^{2} ,s_{p2}^{2} ,s_{p3}^{2} ,...,s_{pP}^{2} ,f_{p}):\) a vector generated based on Rp to represent the bid submitted by passenger p. The bid \( {b_{p}^{P}} \) is an offer to pay fp for transporting passengers. |
Γdj | the set of passengers delivered in the j -th bid submitted by driver d |
x d j | the variable to indicate the j − th bid placed by driver d is a winning bid (xdj = 1) or not (xdj = 0). |
y p | the variable to indicate the bid placed by passenger p is a winning bid (yp = 1) or not (yp = 0). |
α | cost savings allocation coefficient for carpooling information provider. |
e d j k | a nonnegative integer that denotes the quantity of empty seats available after dropping and picking up passenger at location k in the j − th bid submitted by driver d. |
Appendix II: Bid Generation Procedures
In a carpooling system based on double auction mechanism, passengers and drivers submit bids according to their preferences and constraints. This appendix focuses on the bid generation procedures for passengers and drivers.
1.1 (A) Bid Generation for Passengers
In this paper, it is assumed that each passenger has only one request. For each request, a bid will be generated according to the request. The request for the passenger p, where p ∈P, is represented by \( R_{p} =(Lo_{p} ,Le_{p} ,{\omega _{p}^{e}} ,{\omega _{p}^{l}} ,n_{p} ) \), where Lop, \( Le_{p} ,{\omega _{p}^{e}} ,{\omega _{p}^{l}} \) and np denotes the origin, destination, earliest departure time, latest arrival time and number of passengers to be transported, respectively. For each Rp, a Generation Procedure for Passengers will be used to generate a bid \({b_{p}^{P}} \).
Let πp(Lop, Lep) denote the original route from Lop to Lep that will be taken if passenger p travels alone. Generation of a bid for a passenger is a based on the route πp(Lop, Lep) from the origin Lop to the destination Lep. The original distance of route πp(Lop, Lep) is denoted by dist(πp(Lop, Lep)), which can be found by applying the Google Distance Matrix API. The bid price fp generated for the requirement Rp is based on a pricing function Pfp(dist(πp(Lop, Lep))). Suppose the travel cost of a route is proportional to the distance of the route. Let ω denote the cost coefficient per km. The cost of taking the route πp(Lop, Lep) is fp = Pfp(dist(πp(Lop, Lep))) = ω × dist(πp(Lop, Lep)). The bid generation procedure generates bid price fp for p ∈{1, 2, 3,...,P}. The bid generated for Rp is\({b_{p}^{P}} =(s_{p1}^{1} ,s_{p2}^{1} ,s_{p3}^{1} ,...,s_{pP}^{1} ,s_{p1}^{2} ,s_{p2}^{2} ,s_{p3}^{2} ,...,s_{pP}^{2} ,f_{p} ) \), where \( s_{pk}^{1} \) denotes the number of seats requested to pick up passengers at location \( L_{k} ,s_{pk}^{2} \) is a non-positive integer that denotes the number of seats to be released due to dropping passengers at location LP + k,,k ∈{1, 2, 3,....,K} and fp is the bid price. Note that \(s_{pk}^{1} \) is greater than zero only if Lk = Lop and \(s_{pk}^{1} \) is zero otherwise; \(s_{pk}^{2} \) is greater than zero only if Lk = Lop and \(s_{pk}^{2} \) is zero otherwise. The Bid Generation Procedure for Passengers is as follows.
1.2 Bid Generation Procedure for Passengers
1.3 (B) Bid Generation for Drivers
Generation of bids for drivers is a complex task. Two sub-problems are involved to generate bids for a driver. The first sub-problem is to select passengers and the second one is to determine the sequence to pick up and drop the selected passengers for ridesharing. The computational complexity to generate all possible bids for a driver grow explosively with respect to the number of passengers as well as the number of seats of the car. To reduce the computational complexity in generation of bids for a driver, a simple rule is applied to assign requests of passengers according to the origin and destination of the driver and the pick-up/drop-off locations of the passengers’ requests. As drivers usually will not share rides with passengers that are far away, an index called ‘detour ratio’ is defined for drivers to select potential passengers. The proposed procedure calculates an estimated detour ratio \(\tau _{pd} =\frac {\gamma (p,d)}{dist(\pi _{d} (Lo_{d} ,Le_{d} ))}\) of each passenger’s request, where γ(p, d) = dist(Π(Lod, Lop)) + dist(Π(Lop, Lep)) + dist(Π(Lep, Led)), which is the sum of the distance from the origin of driver d to the pick-up location of passenger p, the distance from the pick-up location of passenger p to the drop-off location of passenger p and the distance from the drop-off location of passenger p to the destination of the driver d. Let \(\bar {{\tau }}_{d} \) denote the maximum detour ratio specified by driver d . Only passengers’ requests that satisfy the detour constraint will be selected as the potential passengers for a driver. That is, driver d will consider to meet the requirements of \({b_{p}^{P}} \) only if \(\tau _{pd} \le \bar {{\tau }}_{d}\).
For each driver d, the procedure generates bids based on the requirements of driver \(d,R_{d} =(Lo_{d} ,Le_{d} ,{\omega _{d}^{e}} ,{\omega _{d}^{l}} ,a_{d} )\) and the requirements of passengers’ request \(R_{p} =(Lo_{p} ,Le_{p} ,{\omega _{p}^{e}} ,{\omega _{p}^{l}} ,n_{p} )\). The bid generation algorithm first calculates γ(p, d) and τpd to find the set Bd of requests with ad smallest γ(p, h, d) for driver d. The algorithm then constructs a set of feasible routes Πd to pick up \(q_{djk}^{1} \) and drop off \(q_{djk}^{2} \) passengers associated with Bd subject to the maximum detour ratio \(\bar {{\tau }}_{d} \) specified for driver d and the time constraints described by \({\omega _{p}^{e}} \forall p\in \{1,2,3,....P\}\) and \({\omega _{p}^{l}} \forall p\in \{1,2,3,....P\}\) of individual passengers. Finally, our algorithm calculates the cost cdj for each driver’s route πdj ∈Πd as follows. Suppose driver d ∈ D travels by following the route πdj to pick up and drop off passengers. The distance of taking the route πdj(Lod, Led) is denoted by dist(πdj(Lod, Led)), which can be found by applying the Google Distance Matrix API. The bid price placed by driver d ∈ D is based on a pricing function cdj = Dfdj(dist(πdj(Lod, Led))). Let cdj = Dfdj(dist(πdj(Lod, Led))) = ω × dist(πdj(Lod, Led)), where ω is the cost coefficient per km. The bid generated for driver d ∈ D is\(b_{dj}^{D} =(q_{dj1}^{1} ,q_{dj2}^{1} ,...,q_{djk}^{1} ,...,q_{djP}^{1} ,q_{dj1}^{2} ,q_{dj2}^{2} ,...,q_{djk}^{2} ,...,q_{djP}^{2} , \)πdj, cdj, ad), where \( q_{djk}^{1} \) is greater than zero only if \( q_{djk}^{1} \) passengers are picked up at Lk in route πdj and \( q_{djk}^{2} \) is greater than zero only if \( q_{djk}^{2} \) passengers are dropped at Lk in route πdj. The algorithm to generate bids for drivers is as follows.
1.4 Bid Generation Algorithm for Drivers
Rights and permissions
About this article
Cite this article
Hsieh, FS., Zhan, FM. & Guo, YH. A solution methodology for carpooling systems based on double auctions and cooperative coevolutionary particle swarms. Appl Intell 49, 741–763 (2019). https://doi.org/10.1007/s10489-018-1288-x
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10489-018-1288-x