This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Coordinating Truck Platooning by Clustering Pairwise Fuel-Optimal Plans

Sebastian van de Hoef, Karl H. Johansson and Dimos V. Dimarogonas The authors are with the ACCESS Linnaeus Center and the School of Electrical Engineering, KTH Royal Institute of Technology, SE-100 44, Stockholm, Sweden. {shvdh, kallej, dimos}@kth.se. This work was supported by the COMPANION EU project, the Knut and Alice Wallenberg Foundation, and the Swedish Research Council.
Abstract

We consider the fuel-optimal coordination of trucks into platoons. Truck platooning is a promising technology that enables trucks to save significant amounts of fuel by driving close together and thus reducing air drag. We study how fuel-optimal speed profiles for platooning can be computed. A first-order fuel model is considered and pairwise optimal plans are derived. We formulate an optimization problem that combines these pairwise plans into an overall plan for a large number of trucks. The problem resembles a medoids clustering problem. We propose an approximation algorithm similar to the partitioning around medoids algorithm and discuss its convergence. The method is evaluated with Monte Carlo simulations. We demonstrate that the proposed algorithm can compute a plan for thousands of trucks and that significant fuel savings can be achieved.

I Introduction

Platooning is a common element in intelligent transportation systems. It refers to a group of vehicles forming a road train without any physical coupling between the vehicles. A short inter-vehicle distance is maintained by automatic control and vehicle-to-vehicle communication. Platooning is beneficial in various ways. Due to the small inter-vehicle gaps the total road throughput can be increased [1]. It can also help facilitate the driverless operation of the trailing vehicles. In this paper, our main motivation to study platooning is the potential to reduce the fuel consumption of the follower vehicles in the platoon. Similar to what racing cyclists exploit, the follower vehicles experience a reduction in air drag which translates into reduced fuel consumption [2].

Using platooning to reduce fuel consumption leads to a challenging coordination problem. This differs from a classical setting where platoons are primarily a measure to increase road throughput and where a majority of the vehicles can platoon. Consider two trucks that travel between the same two regions but from different locations within the regions and at approximately the same time. Then the trucks can adjust their speeds slightly at the beginning of their journeys, form a platoon at the start of the common part of their route and thus save fuel during most of their journeys. The catch is that this might involve one of the trucks having to drive faster before the two merge, which increases air-drag and consequently fuel consumption during that phase. One truck might also slow down to let the other truck catch up but then travel at an increased speed later on to arrive at its destination on time. If many trucks are involved, it is not straightforward to compute a plan for all trucks that would be globally fuel-optimal. This is the problem we address in this paper.

Variations of this problem have been considered in literature. In [3] the authors formulate a mixed integer linear programming problem, without considering the speed dependency of fuel consumption, and prove that the problem is NP-hard. In [4] the authors consider a simple catch-up coordination scheme and evaluate it on real fleet data. In [5] local controllers for coordinating the formation of platoons are proposed. In [6] the authors use data-mining to identify economic platoons based on different criteria. They allow that trucks wait for other trucks to form the platoon. In [7] the problem is formulated as an optimization problem. The proposed method is, however, not applicable to large numbers of trucks due to the combinatorial complexity.

Clustering is present in a variety of different contexts. A large body of research focuses on clustering methods as an analysis tool to structure, understand, and classify large data sets [8, 9]. Examples include the clustering of graphs in the scope of community detection [10, 11, 12]. Our clustering algorithm is inspired by partitioning around medoids [13]. A closely related area to our subproblem of choosing coordination leaders is leader election, where a group of agents has to jointly determine a leader [14, 15]. When we interpret pairwise fuel savings as preferences for trucks being coordination leaders, we can see our algorithm as local leader election. In one variant of the proposed clustering algorithm we consider that leader and follower share their benefit from platooning according to a fixed ratio. This setting is related to coalitional game theory [16], which is a widely used framework in communication theory.

We derive a powerful, efficient, and scalable method to coordinate platooning of a large number of trucks in a fuel-optimal way. The main contribution is that the coordination problem is formulated as a clustering problem based on pairwise fuel-optimal speed profiles. We derive pairwise fuel-optimal plans based on a first-order fuel model and propose a clustering algorithm. We discuss the convergence of the clustering algorithm and demonstrate the entire method using Monte Carlo simulations.

The paper is organized as follows. We start in Section II by modeling a single truck as a hybrid system, where the discrete jumps model transitions between road segments. In Section III we develop a fuel-optimal plan for two trucks, where the leader keeps a constant speed and the the follower adapts its speed to merge with the leader. In Section IV we build on these pairwise plans to construct a similarity graph and formulate the problem to select good leaders and match followers to each of them. In Section V we propose a clustering algorithm to find approximate solutions to the problem and analyze its convergence. In Section VI the method is demonstrated by Monte Carlo simulations.

II Modeling

In this section we model a single truck as a hybrid system, define platooning, and introduce a fuel consumption model.

We consider a highway network in which a set of geographic locations are connected by one-way road segments. We model the road network as a weighted, directed graph 𝒢=(𝒩,,W)\mathcal{G}=(\mathcal{N},\mathcal{E},W), where the nodes 𝒩\mathcal{N} correspond to geographic locations. An edge (i,j)𝒩×𝒩(i,j)\in\mathcal{E}\subset\mathcal{N}\times\mathcal{N} models a road segment from the location of node ii to the location of node jj. The weight W(e)>0W(e)>0 of edge ee\in\mathcal{E} models the length of the road segment. The state of a truck (x,)(x,\ell) comprises the edge \ell\in\mathcal{E} that corresponds to the truck’s current road segment and the distance x[0,W()]x\in[0,W(\ell)] from the beginning of that road segment.

Definition 1 (Hybrid Truck Model).

A truck is modeled as a hybrid system with flow map (1), flow set {xW((t))}\{x\leq W(\ell(t))\}, jump map (2), and jump set {xW((t))}\{x\geq W(\ell(t))\}:

x˙(t)=v(t),\displaystyle\dot{x}(t)=v(t), (1)
x+=0,\displaystyle x^{+}=0, +{(i,j):(,i)=},\displaystyle\ell^{+}\in\{(i,j)\in\mathcal{E}:(\cdot,i)=\ell\}, (2)

where the speed v(t)[vmin,vmax]v(t)\in[v_{\min},v_{\max}] and the next edge +\ell^{+} are control inputs. We assume vmaxvmin>0v_{\max}\geq v_{\min}>0, i.e., trucks cannot stop or travel backwards.

As long as the system state (x,)(x,\ell) is in the flow set, xx evolves continuously according to (1). When the state reaches the jump set, i.e., when the truck reaches the end of the segment, the state is reset according to the jump map (2). Figure 1 illustrates the trajectory of such a system. For theoretical considerations of such models see [17].

A truck has a transport assignment to travel through the road network from a start node nS𝒩n^{\mathrm{S}}\in\mathcal{N} at time tSt^{\mathrm{S}} to a destination node nD𝒩n^{\mathrm{D}}\in\mathcal{N} where it must arrive at time tDt^{\mathrm{D}}. We assume that there is a unique shortest path p¯=p¯[1],p¯[2],,p¯[P]\bar{p}=\bar{p}[1],\bar{p}[2],\dots,\bar{p}[P], p¯[i]\bar{p}[i]\in\mathcal{E} for i{1,,P}i\in\{1,\dots,P\} from nSn^{\mathrm{S}} to nDn^{\mathrm{D}} with respect to WW and we let the truck travel along that path: +(p¯[i])=p¯[i+1]\ell^{+}(\bar{p}[i])=\bar{p}[i+1]. With this notation we can define the trajectory of a truck (compare to Figure 1).

Definition 2 (Trajectory).

We call (x(t),l(t)):[tS,tD)×(x(t),l(t)):[t^{\mathrm{S}},t^{\mathrm{D}})\rightarrow\mathbb{R}\times\mathcal{E} a trajectory of a truck if there exists a finite series of jump times t^[1]<t^[2]<<t^[P]<t^[P+1]\hat{t}[1]<\hat{t}[2]<\dots<\hat{t}[P]<\hat{t}[P+1] with t^[1]=tS\hat{t}[1]=t^{\mathrm{S}}, t^[P+1]=tD\hat{t}[P+1]=t^{\mathrm{D}} and for i{1,,P}i\in\{1,\dots,P\}: x(t^[i])=0x(\hat{t}[i])=0, limtt^[i+1]x(t)=W(p¯[i])\lim\limits_{t\nearrow\hat{t}[i+1]}x(t)=W(\bar{p}[i]) and for t[t^[i],t^[i+1])t\in[\hat{t}[i],\hat{t}[i+1]) it holds that x(t)W(p¯[i])x(t)\leq W(\bar{p}[i]), (t)=p¯[i]\ell(t)=\bar{p}[i], and x˙(t)=v(t)\dot{x}(t)=v(t).

Refer to captionttxxt^[1]=tS\hat{t}[1]=t^{S}t^[P+1]=tD\hat{t}[P+1]=t^{D}p[1]p[1]p[2]p[2]p[3]p[3]p[4]p[4]W[1]W[1]W[2]W[2]W[3]W[3]W[4]W[4]t^[2]\hat{t}[2]t^[3]\hat{t}[3]t^[P]\hat{t}[P]
Figure 1: A trajectory of the hybrid truck model

In the following we introduce a system composed of KK trucks. We introduce for each truck k{1,,K}k\in\{1,\dots,K\} its state (xk,k)(x_{k},\ell_{k}). Truck kk starts at node nkSn_{k}^{\mathrm{S}} at time tkSt_{k}^{\mathrm{S}} and must arrive at node nkDn_{k}^{\mathrm{D}} at time tkDt_{k}^{\mathrm{D}}. Its shortest path is denoted p¯k\bar{p}_{k} and has length PkP_{k}. Its speed is denoted vkv_{k}. We have the start position (xkS,kS)=(0,p¯k[1])(x_{k}^{\mathrm{S}},\ell_{k}^{\mathrm{S}})=(0,\bar{p}_{k}[1]) and the destination position (xkD,kD)=(W(p¯k[Pk]),p¯k[Pk])(x_{k}^{\mathrm{D}},\ell_{k}^{\mathrm{D}})=(W(\bar{p}_{k}[P_{k}]),\bar{p}_{k}[P_{k}]).

Platooning

Next, we formalize platooning. For the purpose of coordination we neglect the small inter-vehicle distance and let trucks that platoon with each other assume the same position.

Let 𝒫{1,,K}\mathcal{P}\subset\{1,\dots,K\} be a set of trucks. Let (xk(t),k(t))(x_{k}(t),\ell_{k}(t)) be the trajectory of truck k𝒫k\in\mathcal{P}. If trucks 𝒫\mathcal{P} platoon from time tMt^{\mathrm{M}} to tSpt^{\mathrm{Sp}}, then (xi(t),i(t))=(xj(t),j(t))(x_{i}(t),\ell_{i}(t))=(x_{j}(t),\ell_{j}(t)) for all pairs (i,j)𝒫×𝒫(i,j)\in\mathcal{P}\times\mathcal{P} and all t[tM,tSp]t\in[t^{\mathrm{M}},t^{\mathrm{Sp}}]. We assign exactly one truck in the platoon the role of a platoon leader and the other trucks the role of platoon followers. Only the fuel consumption of platoon followers is reduced.

We model the fuel consumption per distance traveled as first-order polynomials of the speed. We believe that this type of model approximates the real fuel consumption in the interval [vmin,vmax][v_{\min},v_{\max}] well enough for our purpose. When a truck is not in a platoon or is a platoon leader, its fuel consumption is f0(v)=F1v+F0f_{0}(v)=F^{1}v+F^{0} where vv is the speed and F1,F0F^{1},F^{0}\in\mathbb{R} are constants. When a truck is a platoon follower the fuel consumption is modeled by fp(v)=Fp1v+Fp0f_{p}(v)=F_{p}^{1}v+F_{p}^{0} where Fp1F_{p}^{1}, Fp0F_{p}^{0} are other constants. Typically, F1>Fp1>0F^{1}>F_{p}^{1}>0 and f0(v)>fp(v)f_{0}(v)>f_{p}(v) for v[vmin,vmax]v\in[v_{\min},v_{\max}]. The total fuel consumption of truck kk from start to destination is

fc,k=i=1Pk0W(k[i])fk(vk(tk(x,k[i])),tk(x,k[i]))dx,f_{\mathrm{c},k}=\sum\limits_{i=1}^{P_{k}}\int\limits_{0}^{W(\ell_{k}[i])}f_{k}\big{(}v_{k}(t_{k}(x,\ell_{k}[i])),t_{k}(x,\ell_{k}[i])\big{)}\mathrm{d}x, (3)

where fk(v,t)=fp(v)f_{k}(v,t)=f_{p}(v), if the truck is a platoon follower at time tt, and fk(v,t)=f0(v)f_{k}(v,t)=f_{0}(v) otherwise. The function tk(x,k[i])t_{k}(x,\ell_{k}[i]) is the time instant at which truck kk is at position (x,k[i])(x,\ell_{k}[i]).

III Optimal Speed Adaptation for Platooning

In this section we derive a pairwise fuel-optimal speed plan. We consider a pair of trucks: a coordination leader (CL) and a coordination follower (CF). These concepts differ from the concepts of a platoon leader and platoon follower that were introduced in Section II. The CL keeps a constant speed while the CF selects at the beginning of its journey a speed that allows it to merge into a platoon with the CL. Then the two platoon until they split up, followed by that the CF selects a speed so that it arrives at its pre-specified arrival time at its destination. Figure 2 illustrates these three phases. We first derive the optimal speed during the first and the last phase neglecting that trucks can only platoon on common road segments. We add this constraint in the second part of the section. In Section IV, we build on such pairwise plans and obtain an overall plan for all KK trucks. First, we define the default speed profile, i.e., a constant speed.

Definition 3 (Default Speed Profile).

The default speed profile for a truck kk is the constant speed

vk(t)=i=1PkW(p¯k[i])tkDtkS,\displaystyle v_{k}(t)=\frac{\sum\limits_{i=1}^{P_{k}}W(\bar{p}_{k}[i])}{t_{k}^{\mathrm{D}}-t_{k}^{\mathrm{S}}}, (4)

for t[tkS,tkD)t\in[t_{k}^{\mathrm{S}},t_{k}^{\mathrm{D}}). The resulting fuel consumption is f¯c,k\bar{f}_{\mathrm{c},k}.

Refer to captionTime

Position

CLCFt1St_{1}^{\mathrm{S}}tMt^{\mathrm{M}}tSpt^{\mathrm{Sp}}t1Dt_{1}^{\mathrm{D}}ΔdS-\Delta d^{\mathrm{S}}ΔdSp\Delta d^{\mathrm{Sp}}dSd^{\mathrm{S}}dSpd^{\mathrm{Sp}}
Figure 2: Speed profiles of the CL and the CF.

The following proposition gives the optimal rendezvous speed for a CF when there are no restrictions as to where the CL and the CF can meet.

Proposition 1.

Assume the following. The speed of truck 0 is constant x˙0=v0\dot{x}_{0}=v_{0} with v0v_{0}\in\mathbb{R}, v0>0v_{0}>0. The state of truck 0 at time tSt^{\mathrm{S}} is (x0(tS),)(x_{0}(t^{\mathrm{S}}),\ell). The state of truck 11 at time tSt^{\mathrm{S}} is (x1(tS),)(x_{1}(t^{\mathrm{S}}),\ell). Truck 11 platoons with truck 0 between time tMt^{\mathrm{M}} and tSpt^{\mathrm{Sp}} with tSp>tMt^{\mathrm{Sp}}>t^{\mathrm{M}}. Truck 11 has constant speed x˙1=vs\dot{x}_{1}=v_{\mathrm{s}} for time tSt^{\mathrm{S}} to tMt^{\mathrm{M}} and x˙1=v0\dot{x}_{1}=v_{0} from time tMt^{\mathrm{M}} to tSpt^{\mathrm{Sp}}. The rendezvous speed vsv_{\mathrm{s}} is constrained to the interval [vmin,vmax][v_{\min},v_{\max}]. The road segment corresponding to \ell is sufficiently long.

Then the rendezvous speed vsv_{\mathrm{s}}^{*} that minimizes fuel consumption from time tSt^{\mathrm{S}} to tSpt^{\mathrm{Sp}} is given by

vs={max(v0(11Fp1F1+ΔF0F1v0),vmin)if Δd<0min(v0(1+1Fp1F1+ΔF0F1v0),vmax)if Δd>0v0if Δd=0,\begin{split}&v_{\mathrm{s}}^{*}=\\ &\left\{\begin{array}[]{ll}\max\left(v_{0}\left(1-\sqrt{1-\frac{F_{p}^{1}}{F^{1}}+\frac{\Delta F^{0}}{F^{1}v_{0}}}\right),v_{\min}\right)&\text{if }\Delta d<0\\ \min\left(v_{0}\left(1+\sqrt{1-\frac{F_{p}^{1}}{F^{1}}+\frac{\Delta F^{0}}{F^{1}v_{0}}}\right),v_{\max}\right)&\text{if }\Delta d>0\\ v_{0}&\text{if }\Delta d=0,\end{array}\right.\end{split} (5)

where Δd=x0(tS)x1(tS)\Delta d=x_{0}(t^{\mathrm{S}})-x_{1}(t^{\mathrm{S}}) and ΔF0=F0Fp0\Delta F^{0}=F^{0}-F_{p}^{0}.

The proof of Proposition 1 can be found in the Appendix.

The optimal speed after splitting up for the CF to meet its deadline is also the appropriate vsv_{\mathrm{s}}^{*} depending on whether the CF has to speed up or slow down in order to arrive at the specified time.

In the remainder of this section, we discuss how Proposition 1 can be used to compute an optimal speed profile when the CL and the CF travel on different but intersecting paths. Figure 2 illustrates the discussion.

To this end, we define the distance dpd_{p} between two states (x1,1)(x_{1},\ell_{1}), (x2,2)(x_{2},\ell_{2}) with respect to a path pp.

Definition 4 (Distance).

Let i1i_{1} be such that p[i1]=1p[i_{1}]=\ell_{1} and i2i_{2} be such that p[i2]=2p[i_{2}]=\ell_{2} and assume i2i1i_{2}\geq i_{1}. Then,

dp((x1,1),(x2,2))=|x2x1+i=i1i21W(p[i])|d_{p}\big{(}(x_{1},\ell_{1}),(x_{2},\ell_{2})\big{)}=\left|x_{2}-x_{1}+\sum\limits_{i=i_{1}}^{i_{2}-1}W(p[i])\right| (6)

Consider a CL with index 0 and a CF with index 11. Two trucks can platoon only on the road segments corresponding to common edges of their paths. Because their paths are shortest paths it can be shown that the shared edges between two paths form a path as well (Lemma 1 in [7]), i.e., two paths meet and split up at most once. Trucks 0,11 start at (x0S,0S)(x_{0}^{\mathrm{S}},\ell_{0}^{\mathrm{S}}), (x1S,1S)(x_{1}^{\mathrm{S}},\ell_{1}^{\mathrm{S}}) at time t0St_{0}^{\mathrm{S}}, t1St_{1}^{\mathrm{S}} and arrive at (x0D,0D)(x_{0}^{\mathrm{D}},\ell_{0}^{\mathrm{D}}), (x1D,1D)(x_{1}^{\mathrm{D}},\ell_{1}^{\mathrm{D}}) at time t0Dt_{0}^{\mathrm{D}}, t1Dt_{1}^{\mathrm{D}}, respectively. We denote the position at which the CL and the CF start platooning at time tMt^{\mathrm{M}} as (xM,M)(x^{\mathrm{M}},\ell^{\mathrm{M}}) and where they split at time tSpt^{\mathrm{Sp}} as (xSp,Sp)(x^{\mathrm{Sp}},\ell^{\mathrm{Sp}}). These meeting points have to lie on the trajectory of the CL with constant speed v0v_{0}:

dp¯0((x0S,0S),(xM,M))\displaystyle d_{\bar{p}_{0}}\big{(}(x_{0}^{\mathrm{S}},\ell_{0}^{\mathrm{S}}),(x^{\mathrm{M}},\ell^{\mathrm{M}})\big{)} =v0(tMt0S)\displaystyle=v_{0}(t^{\mathrm{M}}-t_{0}^{\mathrm{S}})
dp¯0((x0S,0S),(xSp,Sp))\displaystyle d_{\bar{p}_{0}}\big{(}(x_{0}^{\mathrm{S}},\ell_{0}^{\mathrm{S}}),(x^{\mathrm{Sp}},\ell^{\mathrm{Sp}})\big{)} =v0(tSpt0S).\displaystyle=v_{0}(t^{\mathrm{Sp}}-t_{0}^{\mathrm{S}}).

When platooning with the CL the planned trajectory of the CF consists of three phases: from start to the meeting point with speed vSv^{\mathrm{S}}, from meeting point to the split point platooning as platoon follower of 0 with speed v0v_{0}, and from the split point to the destination with speed vSpv^{\mathrm{Sp}}. We define dS=dp¯1((x1S,1S),(xM,M))d^{\mathrm{S}}=d_{\bar{p}_{1}}\big{(}(x_{1}^{\mathrm{S}},\ell_{1}^{\mathrm{S}}),(x^{\mathrm{M}},\ell^{\mathrm{M}})\big{)} and dSp=dp¯1((xSp,Sp),(x1D,1D))d^{\mathrm{Sp}}=d_{\bar{p}_{1}}\big{(}(x^{\mathrm{Sp}},\ell^{\mathrm{Sp}}),(x_{1}^{\mathrm{D}},\ell_{1}^{\mathrm{D}})\big{)}. We have the relations

dS=vS(tMt1S),dSp=vSp(t1DtSp).\displaystyle d^{\mathrm{S}}=v^{\mathrm{S}}(t^{\mathrm{M}}-t_{1}^{\mathrm{S}}),\;\;\;d^{\mathrm{Sp}}=v^{\mathrm{Sp}}(t_{1}^{\mathrm{D}}-t^{\mathrm{Sp}}).

We define the virtual position difference at the start/end of the CF’s trajectory as

ΔdS=dS(tMt1S)v0ΔdSp=dSp(t1DtSp)v0,\begin{split}\Delta d^{\mathrm{S}}&=d^{\mathrm{S}}-(t^{\mathrm{M}}-t_{1}^{\mathrm{S}})v_{0}\\ \Delta d^{\mathrm{Sp}}&=d^{\mathrm{Sp}}-(t_{1}^{\mathrm{D}}-t^{\mathrm{Sp}})v_{0},\end{split} (7)

which is equivalent to Δd\Delta d in Proposition 1. If ΔdS>0\Delta d^{\mathrm{S}}>0 then vS>v0v^{\mathrm{S}}>v_{0}, if ΔdS<0\Delta d^{\mathrm{S}}<0 then vS<v0v^{\mathrm{S}}<v_{0}, if ΔdSp>0\Delta d^{\mathrm{Sp}}>0 then vSp>v0v^{\mathrm{Sp}}>v_{0}, and if ΔdSp<0\Delta d^{\mathrm{Sp}}<0 then vSp<v0v^{\mathrm{Sp}}<v_{0}. Then, we can compute according to (18) the appropriate vv^{*} for the first and the last phase.

This derivation has ignored so far that the first possible point to merge is when the CL’s and the CF’s paths meet. If vv^{*} leads to a distance from (x1S,1S)(x_{1}^{\mathrm{S}},\ell_{1}^{\mathrm{S}}) to the merge point that is too small, then the CL selects a speed that lets the CL and CF merge at the position where the two paths meet, denoted here (0,F)(0,\ell^{F}). This speed is vS=dp¯1((x1S,1S),(F,0))/(tMt1S)v^{\mathrm{S}}=d_{\bar{p}_{1}}\big{(}(x_{1}^{\mathrm{S}},\ell_{1}^{\mathrm{S}}),(\ell^{F},0)\big{)}/(t^{\mathrm{M}}-t_{1}^{\mathrm{S}}). The corresponding case might occur at split up, so that v1Sp=dp¯1((W(L),L),(x1D,1D))/(t1DtSp)v_{1}^{\mathrm{Sp}}=d_{\bar{p}_{1}}\big{(}(W(\ell^{L}),\ell^{L}),(x_{1}^{\mathrm{D}},\ell_{1}^{\mathrm{D}})\big{)}/(t_{1}^{\mathrm{D}}-t^{\mathrm{Sp}}), where (W(L),L)(W(\ell^{L}),\ell^{L}) is the position where the CL’s and the CF’s paths split up.

The first check to test if platooning is possible and beneficial is, whether the calculated merge point lies before the split point or not, i.e., whether dS+dSp<dp¯1((x1S,1S),(x1D,1D)).d^{\mathrm{S}}+d^{\mathrm{Sp}}<d_{\bar{p}_{1}}\big{(}(x_{1}^{\mathrm{S}},\ell_{1}^{\mathrm{S}}),(x_{1}^{\mathrm{D}},\ell_{1}^{\mathrm{D}})\big{)}. If this condition is fulfilled, we can calculate the fuel cost for the CF with the speed profile that is adapted for platooning with the CL as follows

fp=dSf0(vS)+dSpf0(vSp)+(dp¯1((x1S,1S),(x1D,1D))dSdSp)fp(v0).\begin{split}f_{p}&=d^{\mathrm{S}}f_{0}(v^{\mathrm{S}})+d^{\mathrm{Sp}}f_{0}(v^{\mathrm{Sp}})\\ &+\big{(}d_{\bar{p}_{1}}\big{(}(x_{1}^{\mathrm{S}},\ell_{1}^{\mathrm{S}}),(x_{1}^{\mathrm{D}},\ell_{1}^{\mathrm{D}})\big{)}-d^{\mathrm{S}}-d^{\mathrm{Sp}}\big{)}f_{p}(v_{0}).\end{split} (8)

We summarize the results of the Section in definition of the adapted speed profile.

Definition 5 (Adapted Speed Profile).

The adapted speed profile of a CF with index 11 to a CL with index 0 consists of three phases with constant speed: vSv^{\mathrm{S}} from t1St_{1}^{\mathrm{S}} to tMt^{\mathrm{M}}, then v0v_{0} from tMt^{\mathrm{M}} to tSpt^{\mathrm{Sp}}, and finally vSpv^{\mathrm{Sp}} from tSpt^{\mathrm{Sp}} to t1Dt_{1}^{\mathrm{D}}, where the CF is platoon follower of the CL from time tMt^{\mathrm{M}} to tSpt^{\mathrm{Sp}}. The resulting fuel consumption is fpf_{p} as in (8). Jumps in the speed at time tMt^{\mathrm{M}} and tSpt^{\mathrm{Sp}} are continuously approximated.

IV Coordination Leader Selection

In this section we combine default speed profiles and adapted speed profiles from Section III in order to minimize the total fuel consumption k=1Kfc,k\sum\limits_{k=1}^{K}f_{\mathrm{c},k}. We select a number of CLs that stick to their default speed profile. All other trucks are assigned to their best CL if there is one. The best CL for a CF is the one that yields the largest fuel saving for the CF. Since the speed profile of the CL is not affected by the CF, we can assign several CFs to a CL independently. Note that the method presented in this section can accommodate default and adapted speed profiles different from the ones presented in Section III. Like this factors such as traffic, different fuel models, soft constraints on the arrival time, etc. can be considered.

Based on the results from Section III, we calculate the potential fuel savings gained from platooning for all pairs of trucks, where one takes the role of the CL and the other the role of the CF. We collect the results in a weighted directed graph, which we call the coordination graph. Recall that the total fuel consumption of a truck ii with the default speed profile is denoted f¯c,k\bar{f}_{\mathrm{c},k}. We denote the fuel consumption of a CF ii with CL jj as fp,(i,j)f_{\mathrm{p},(i,j)}. If ii and jj platooning with ii being the CF of jj is not possible, then fp,(i,j)=f¯c,kf_{\mathrm{p},(i,j)}=\bar{f}_{\mathrm{c},k}.

Definition 6 (Coordination Graph).

The coordination graph is a weighted directed graph 𝒢c=(𝒩c,c,Wc)\mathcal{G}_{\mathrm{c}}=(\mathcal{N}_{\mathrm{c}},\mathcal{E}_{\mathrm{c}},W_{\mathrm{c}}). 𝒩c\mathcal{N}_{\mathrm{c}} is a set of KK nodes, where each node represents a truck. c𝒩c×𝒩c\mathcal{E}_{\mathrm{c}}\subseteq\mathcal{N}_{\mathrm{c}}\times\mathcal{N}_{\mathrm{c}} is a set of edges, and Wc:c+W_{\mathrm{c}}:\mathcal{E}_{\mathrm{c}}\rightarrow\mathbb{R}^{+} are non-negative edge weights. There is an edge (i,j)(i,j), if ii saves fuel when it selects jj as CL, i.e., c={(i,j)𝒩c×𝒩c:fp,(i,j)<f¯c,i,ij}\mathcal{E}_{\mathrm{c}}=\{(i,j)\in\mathcal{N}_{\mathrm{c}}\times\mathcal{N}_{\mathrm{c}}:f_{\mathrm{p},(i,j)}<\bar{f}_{\mathrm{c},i},i\neq j\}, and Wc((i,j))=f¯c,ifp,(i,j)W_{\mathrm{c}}\big{(}(i,j)\big{)}=\bar{f}_{\mathrm{c},i}-f_{\mathrm{p},(i,j)}. If platooning is not possible or beneficial, there is no edge.

We introduce the set of in-neighbors of a node nn as 𝒩i(n)={i𝒩c:(i,n)c}\mathcal{N}_{\mathrm{i}}(n)=\{i\in\mathcal{N}_{\mathrm{c}}:\exists(i,n)\in\mathcal{E}_{\mathrm{c}}\} and the set of out-neighbors of a node nn as 𝒩o(n)={i𝒩c:(n,i)c}\mathcal{N}_{\mathrm{o}}(n)=\{i\in\mathcal{N}_{\mathrm{c}}:\exists(n,i)\in\mathcal{E}_{\mathrm{c}}\}. We define that the maximum over an empty set is zero, i.e., maxi()=0\max\limits_{i\in\emptyset}(\cdot)=0.

Next, we formulate the problem of finding a fuel optimal set of CLs 𝒩l\mathcal{N}_{\mathrm{l}}.

Problem 1.

Find a subset 𝒩l𝒩c\mathcal{N}_{\mathrm{l}}\subset\mathcal{N}_{\mathrm{c}} of nodes that maximizes fce(𝒩l)f_{\mathrm{ce}}(\mathcal{N}_{\mathrm{l}}) where

fce(𝒩l)=i𝒩c𝒩lmaxj𝒩o(i)𝒩lWc(i,j).f_{\mathrm{ce}}(\mathcal{N}_{\mathrm{l}})=\sum\limits_{i\in\mathcal{N}_{\mathrm{c}}\setminus\mathcal{N}_{\mathrm{l}}}\max_{j\in\mathcal{N}_{\mathrm{o}}(i)\cap\mathcal{N}_{\mathrm{l}}}W_{\mathrm{c}}(i,j). (9)

If (i,j)c(i,j)\in\mathcal{E}_{\mathrm{c}} with i𝒩c𝒩li\in\mathcal{N}_{\mathrm{c}}\setminus\mathcal{N}_{\mathrm{l}} and j=argmaxj𝒩o(i)𝒩l(Wc(i,j))j=\arg\max\limits_{j\in\mathcal{N}_{\mathrm{o}}(i)\cap\mathcal{N}_{\mathrm{l}}}(W_{\mathrm{c}}(i,j)), we say that ii is the CF of jj and jj is the CL of ii. If jj has no out-neighbor in 𝒩l\mathcal{N}_{\mathrm{l}}, then maxj(𝒩o(i)𝒩l)(Wc(i,j))=maxj(Wc(i,j))=0\max_{j\in(\mathcal{N}_{\mathrm{o}}(i)\cap\mathcal{N}_{\mathrm{l}})}(W_{\mathrm{c}}(i,j))=\max_{j\in\emptyset}(W_{\mathrm{c}}(i,j))=0.

This problem is similar to k-medoids clustering [13]. Medoids clustering means selecting a, typically fixed, number of cluster centers from a set of data points. The remaining data points are assigned to the closest cluster center. The objective is to find cluster centers in such a way that the sum of the distances of all nodes to the closest cluster center is minimal. In our problem we can identify the CLs with the medoids.

Albeit similar to k-medoids clustering, there are some significant differences. We maximize similarity within the cluster as opposed to minimizing the distance. Similarity from node ii to node jj is here how much fuel is saved if node ii selects node jj as a CL. This implies that the similarity between two nodes is not symmetrical, non-negative, and can be zero. The number of clusters is not fixed but part of the optimization and not every node has to be assigned to a cluster. It is easy to see, that a solution with zero or KK clusters is not optimal if c\mathcal{E}_{\mathrm{c}}\neq\emptyset. This is different from an application where the sum of the distances to the cluster centers is minimized. If every node is a cluster center, this trivially corresponds to the smallest possible objective value. Thus, it is not trivial to find (approximate) solutions to the problem.

V Leader Selection Clustering Algorithm

In this section, we describe four variants of an approximation algorithm (Algorithm 1) to Problem 1 inspired by partitioning around medoids (PAM) [13]. Algorithm 1 works according to the following scheme. At the beginning 𝒩l\mathcal{N}_{\mathrm{l}} is empty, i.e., there are no CLs. In each round a node n𝒩cn\in\mathcal{N}_{\mathrm{c}} is selected for which it is beneficial to be added to 𝒩l\mathcal{N}_{\mathrm{l}} or removed from 𝒩l\mathcal{N}_{\mathrm{l}}, and 𝒩l\mathcal{N}_{\mathrm{l}} is updated accordingly. This is repeated until no further improvement is possible. We introduce a function Δu(n,𝒩l)\Delta u(n,\mathcal{N}_{\mathrm{l}}) that measures how much is gained from switching whether nn belongs to 𝒩l\mathcal{N}_{\mathrm{l}} or not.

𝒢c\mathcal{G}_{\mathrm{c}}
𝒩l\mathcal{N}_{\mathrm{l}}
𝒩l\mathcal{N}_{\mathrm{l}}\leftarrow\emptyset
while {n¯𝒩c:Δu(n¯,𝒩l)>0}\{\bar{n}\in\mathcal{N}_{\mathrm{c}}:\Delta u(\bar{n},\mathcal{N}_{\mathrm{l}})>0\}\neq\emptyset do
  Select n{n¯𝒩c:Δu(n¯,𝒩l)>0}n\in\{\bar{n}\in\mathcal{N}_{\mathrm{c}}:\Delta u(\bar{n},\mathcal{N}_{\mathrm{l}})>0\}
  if n𝒩ln\in\mathcal{N}_{\mathrm{l}} then
   𝒩l𝒩l{n}\mathcal{N}_{\mathrm{l}}\leftarrow\mathcal{N}_{\mathrm{l}}\setminus\{n\}
  else
   𝒩l𝒩l{n}\mathcal{N}_{\mathrm{l}}\leftarrow\mathcal{N}_{\mathrm{l}}\cup\{n\}
  end if
end while
Algorithm 1

We consider two methods to select nn and two choices of Δu(n,𝒩l)\Delta u(n,\mathcal{N}_{\mathrm{l}}). The first method for selecting nn is to select it in a greedy manner according to n=argmaxn¯𝒩cΔu(n¯,𝒩l)n=\arg\max\limits_{\bar{n}\in\mathcal{N}_{\mathrm{c}}}\Delta u(\bar{n},\mathcal{N}_{\mathrm{l}}). This corresponds to what is done in the “build phase” of PAM. The second method is to choose nn randomly with equal probability from the set {n¯𝒩c:Δu(n¯,𝒩l)>0}\{\bar{n}\in\mathcal{N}_{\mathrm{c}}:\Delta u(\bar{n},\mathcal{N}_{\mathrm{l}})>0\}. The two different choices for Δu(n,𝒩l)\Delta u(n,\mathcal{N}_{\mathrm{l}}) are elaborated in the following Sections V-A and V-B.

V-A Total Gain

The most obvious choice for Δu(n,𝒩l)\Delta u(n,\mathcal{N}_{\mathrm{l}}) is to consider how much fcef_{\mathrm{ce}} as defined in (9) changes. This can be calculated locally, which means only considering one-hop and two-hop neighbors of nn. We get, if n𝒩ln\notin\mathcal{N}_{\mathrm{l}},

fce(𝒩l{n})fce(𝒩l)=\displaystyle f_{\mathrm{ce}}(\mathcal{N}_{\mathrm{l}}\cup\{n\})-f_{\mathrm{ce}}(\mathcal{N}_{\mathrm{l}})=
i𝒩i(n)𝒩l(maxj𝒩o(i)(𝒩l{n})Wc(i,j)maxj𝒩o(i)𝒩lWc(i,j))\displaystyle\sum\limits_{i\in\mathcal{N}_{\mathrm{i}}(n)\setminus\mathcal{N}_{\mathrm{l}}}\left(\max\limits_{j\in\mathcal{N}_{\mathrm{o}}(i)\cap(\mathcal{N}_{\mathrm{l}}\cup\{n\})}W_{\mathrm{c}}(i,j)-\max\limits_{j\in\mathcal{N}_{\mathrm{o}}(i)\cap\mathcal{N}_{\mathrm{l}}}W_{\mathrm{c}}(i,j)\right)
maxi𝒩o(n)𝒩lWc(n,i).\displaystyle-\max\limits_{i\in\mathcal{N}_{\mathrm{o}}(n)\cap\mathcal{N}_{\mathrm{l}}}W_{\mathrm{c}}(n,i).

The sum over ii covers nodes that can select nn as their new CL. The last summand accounts for nn possibly not being a CF any longer. Similarly, if n𝒩ln\in\mathcal{N}_{\mathrm{l}},

fce(𝒩l{n})fce(𝒩l)=\displaystyle f_{\mathrm{ce}}(\mathcal{N}_{\mathrm{l}}\setminus\{n\})-f_{\mathrm{ce}}(\mathcal{N}_{\mathrm{l}})=
i𝒩i(n)𝒩l(maxj𝒩o(i)(𝒩l{n})Wc(i,j)maxj𝒩o(i)𝒩lWc(i,j))\displaystyle\sum\limits_{i\in\mathcal{N}_{\mathrm{i}}(n)\setminus\mathcal{N}_{\mathrm{l}}}\left(\max\limits_{j\in\mathcal{N}_{\mathrm{o}}(i)\cap(\mathcal{N}_{\mathrm{l}}\setminus\{n\})}W_{\mathrm{c}}(i,j)-\max\limits_{j\in\mathcal{N}_{\mathrm{o}}(i)\cap\mathcal{N}_{\mathrm{l}}}W_{\mathrm{c}}(i,j)\right)
+maxi𝒩o(n)(𝒩l{n})Wc(n,i).\displaystyle+\max\limits_{i\in\mathcal{N}_{\mathrm{o}}(n)\cap(\mathcal{N}_{\mathrm{l}}\setminus\{n\})}W_{\mathrm{c}}(n,i).

The sum over ii covers nodes that can have nn as their CL before the change. The last summand accounts for nn possibly becoming a CF. Finally we get

Δu(n,𝒩l)={fce(𝒩l{n})fce(𝒩l) if n𝒩lfce(𝒩l{n})fce(𝒩l) otherwise .\displaystyle\Delta u(n,\mathcal{N}_{\mathrm{l}})=\left\{\begin{array}[]{ll}f_{\mathrm{ce}}(\mathcal{N}_{\mathrm{l}}\setminus\{n\})-f_{\mathrm{ce}}(\mathcal{N}_{\mathrm{l}})&\text{ if }n\in\mathcal{N}_{\mathrm{l}}\\ f_{\mathrm{ce}}(\mathcal{N}_{\mathrm{l}}\cup\{n\})-f_{\mathrm{ce}}(\mathcal{N}_{\mathrm{l}})&\text{ otherwise }.\end{array}\right. (12)

V-B Pairwise Gain

Instead of considering the global objective fcef_{\mathrm{ce}}, we can consider that the pairwise fuel savings from platooning are divided between CF and CL according to a fixed ratio. We think of this as a simple compensation scheme for trucks from different operators platooning with each other. The trucks acting as platoon leaders need to have an incentive since they do not get any fuel savings from platooning. If ii is the CF of jj, then jj gets the utility ρlW(i,j)\rho_{\mathrm{l}}W(i,j) with ρl(0,1)\rho_{\mathrm{l}}\in(0,1)\subset\mathbb{R} and ii gets the utility ρfW(i,j)\rho_{\mathrm{f}}W(i,j) with ρf=1ρl\rho_{\mathrm{f}}=1-\rho_{\mathrm{l}} from this CF. The total utility of the CL is the sum of the utilities from all its CFs. The gain Δu(n¯,𝒩l)\Delta u(\bar{n},\mathcal{N}_{\mathrm{l}}) for a node n¯\bar{n} is the change of its utility from switching whether nn belongs to 𝒩l\mathcal{N}_{\mathrm{l}} or not.

The utility of a node i𝒩li\notin\mathcal{N}_{\mathrm{l}} is

uf(i,𝒩l)=ρfmaxj𝒩o(i)𝒩lWc(i,j).\displaystyle u_{\mathrm{f}}(i,\mathcal{N}_{\mathrm{l}})=\rho_{\mathrm{f}}\max\limits_{j\in\mathcal{N}_{\mathrm{o}}(i)\cap\mathcal{N}_{\mathrm{l}}}W_{\mathrm{c}}(i,j).

With a set of CLs 𝒩l\mathcal{N}_{\mathrm{l}} given, the CL of a CF, as introduced in Section IV, is the truck in 𝒩l\mathcal{N}_{\mathrm{l}} that maximizes the utility of a CF. The utility ul(j,𝒩l)u_{\mathrm{l}}(j,\mathcal{N}_{\mathrm{l}}) of a CL jj is the sum of the utilities due to its CFs 𝒩f(j)={i(𝒩c𝒩l):j=argmaxk𝒩0(i)𝒩lW(i,k)}\mathcal{N}_{\mathrm{f}}(j)=\{i\in(\mathcal{N}_{\mathrm{c}}\setminus\mathcal{N}_{\mathrm{l}}):j=\arg\max_{k\in\mathcal{N}_{\mathrm{0}}(i)\cap\mathcal{N}_{\mathrm{l}}}W(i,k)\}

ul(j,𝒩l)=i𝒩f(j)ρlW(i,j)=i𝒩f(j)ρlρfuf(i,𝒩l).\displaystyle u_{\mathrm{l}}(j,\mathcal{N}_{\mathrm{l}})=\sum\limits_{i\in\mathcal{N}_{\mathrm{f}}(j)}\rho_{\mathrm{l}}W(i,j)=\sum\limits_{i\in\mathcal{N}_{\mathrm{f}}(j)}\frac{\rho_{\mathrm{l}}}{\rho_{\mathrm{f}}}u_{\mathrm{f}}(i,\mathcal{N}_{\mathrm{l}}).

If n𝒩ln\notin\mathcal{N}_{\mathrm{l}}, then the gain by becoming a CL, i.e., adding nn to 𝒩l\mathcal{N}_{\mathrm{l}}, is ul(n,𝒩l{n})uf(n,𝒩l)u_{\mathrm{l}}(n,\mathcal{N}_{\mathrm{l}}\cup\{n\})-u_{\mathrm{f}}(n,\mathcal{N}_{\mathrm{l}}). If n𝒩ln\in\mathcal{N}_{\mathrm{l}}, then the gain by becoming a CF, i.e., removing nn from 𝒩l\mathcal{N}_{\mathrm{l}}, is uf(n,𝒩l{n})ul(n,𝒩l)u_{\mathrm{f}}(n,\mathcal{N}_{\mathrm{l}}\setminus\{n\})-u_{\mathrm{l}}(n,\mathcal{N}_{\mathrm{l}}). The larger ρl\rho_{\mathrm{l}} the larger the incentive to be a CL. Finally we have

Δu(n,𝒩l)={uf(n,𝒩l{n})ul(n,𝒩l) if n𝒩lul(n,𝒩l{n})uf(n,𝒩l) otherwise.\displaystyle\Delta u(n,\mathcal{N}_{\mathrm{l}})=\left\{\begin{array}[]{ll}u_{\mathrm{f}}(n,\mathcal{N}_{\mathrm{l}}\setminus\{n\})-u_{\mathrm{l}}(n,\mathcal{N}_{\mathrm{l}})&\text{ if }n\in\mathcal{N}_{\mathrm{l}}\\ u_{\mathrm{l}}(n,\mathcal{N}_{\mathrm{l}}\cup\{n\})-u_{\mathrm{f}}(n,\mathcal{N}_{\mathrm{l}})&\text{ otherwise.}\end{array}\right. (15)

The gain Δu(n,𝒩l)\Delta u(n,\mathcal{N}_{\mathrm{l}}) can be calculated locally with the knowledge of: the edges of nn, the utilities of the in-neighbors of nn, and which neighbors belong to 𝒩l\mathcal{N}_{\mathrm{l}}.

V-C Convergence

In this section we analyze the convergence of Algorithm 1. Algorithm 1 converges when it reaches a state where {n¯𝒩c:Δu(n¯,𝒩l)>0}\{\bar{n}\in\mathcal{N}_{\mathrm{c}}:\Delta u(\bar{n},\mathcal{N}_{\mathrm{l}})>0\} is empty. We call such a state equilibrium. We have the following result for the central objective.

Proposition 2.

Algorithm 1 converges to an equilibrium with Δu\Delta u according to (12) if in each iteration nn is selected as n=argmaxn¯𝒩cΔu(n¯,𝒩l)n=\arg\max\limits_{\bar{n}\in\mathcal{N}_{\mathrm{c}}}\Delta u(\bar{n},\mathcal{N}_{\mathrm{l}}). If nn is selected randomly with equal probability from {n¯𝒩c:Δu(n¯,𝒩l)>0}\{\bar{n}\in\mathcal{N}_{\mathrm{c}}:\Delta u(\bar{n},\mathcal{N}_{\mathrm{l}})>0\}, Algorithm 1 converges with probability 1.

Proof.

fce(𝒩l)f_{\mathrm{ce}}(\mathcal{N}_{\mathrm{l}}) increases in each iteration when nn with the largest Δu(n,𝒩l)\Delta u(n,\mathcal{N}_{\mathrm{l}}) is selected, but since 𝒩l𝒩c\mathcal{N}_{\mathrm{l}}\subset\mathcal{N}_{\mathrm{c}}, the number of possible 𝒩l\mathcal{N}_{\mathrm{l}} is finite. When nn is selected randomly and Algorithm 1 does not converge, there must be one node n0n_{0} with Δu(n0,𝒩l)>0\Delta u(n_{0},\mathcal{N}_{\mathrm{l}})>0 which never gets selected. The probability of this happening goes to zero as the number of iterations goes to infinity. ∎

Using the individual objective (15), Algorithm 1 is not guaranteed to converge to an equilibrium. The following example illustrates a case.

Example 1.

Figure 3 shows a graph 𝒢c\mathcal{G}_{\mathrm{c}} for which Algorithm 1 does not converge with criterion (15). When the algorithm starts, the gain from becoming a CL is positive and the same for nodes 1, 2, and 3. Assume that node 1 is selected. Then nodes 3 and 4 become its CFs. Assume ρf/ρl>1.1\rho_{\mathrm{f}}/\rho_{\mathrm{l}}>1.1. Then it is not beneficial for node 3 to become a CL. Since there is no CL for node 2, it is beneficial for node 2 to become one. Since ρf/ρl>1.1\rho_{\mathrm{f}}/\rho_{\mathrm{l}}>1.1, it is more beneficial for node 1 to become a CF. Then node 3 becomes a CL and so on. If ρf/ρl<1.1\rho_{\mathrm{f}}/\rho_{\mathrm{l}}<1.1, we get a similar cyclic behavior with reversed direction.

Refer to caption312654111.1.1.1
Figure 3: Graph for which Algorithm 1 with Δu\Delta u as in (15) does not converge.

VI Simulations

In this section we present a simulation study of the platoon coordination method developed in this paper. The road network that was used in the simulations was generated randomly by sampling 100 location points uniformly in a square of side length 800. All combinations of these locations were sorted by their Euclidean distance. Then, starting from the combination with the shortest distance, the combinations of locations were connected by two road segments (one in each direction) with length according to the Euclidean distance, if there had not already been a path between the two locations that was at most 1.51.5 times longer than the Euclidean distance. The road network is shown in Figure 4.

We evaluated Algorithm 1 in four variants (greedy/random node selection and total/pairwise gain) with Monte Carlo simulations. In the figures and the following discussion we use “total”/“pairwise” to refer to Δu\Delta u according to (12)/(15), and “greedy”/“random” to refer to selecting the node with largest Δu\Delta u or a random node in each iteration. We considered a nominal speed of 8080 according to which arrival times were set, i.e., the constant speed of a CL jj is vj=80v_{j}=80. For the fuel model we considered that F0=1F^{0}=1, F1=1/80F^{1}=1/80, and Fp0=.9F0F_{p}^{0}=.9F^{0}, Fp1=.9F1F_{p}^{1}=.9F^{1}. We get that (18) evaluates to 80±35.777=(44.223,115.777)80\pm 35.777=(44.223,115.777). For pairwise gain we terminated Algorithm 1 additionally once a specific 𝒩l\mathcal{N}_{\mathrm{l}} reoccurred in order to avoid ending up in an infinite loop as described in Example 1.

0\displaystyle 0100\displaystyle 100200\displaystyle 200300\displaystyle 300400\displaystyle 400500\displaystyle 500600\displaystyle 600700\displaystyle 700800\displaystyle 8000\displaystyle 0100\displaystyle 100200\displaystyle 200300\displaystyle 300400\displaystyle 400500\displaystyle 500600\displaystyle 600700\displaystyle 700800\displaystyle 800
Figure 4: Randomly generated road network used in the simulation. Start/destination nodes are marked by a blue circle.

We conducted simulations for different numbers of trucks KK. For each KK, 100 simulations were conducted. The starting times were sampled uniformly in the interval of [0,1][0,1]. Start and destination nodes were randomly selected from a subset of 10 nodes. The arrival times were calculated assuming a speed of 80. We set vmin=70,vmax=90v_{\min}=70,v_{\max}=90. In each simulation we ran Algorithm 1 for the four combinations of using either total or pairwise gain, and either greedy or random node selection. For the pairwise gain we used ρl=ρf=0.5\rho_{\mathrm{l}}=\rho_{\mathrm{f}}=0.5. Figure 5 shows a plot of the fuel savings compared to the case where all trucks travel at a speed of 80 and do not platoon. Additionally we calculated fuel savings which would result from spontaneous platooning according to the following scheme. We assumed that all trucks travel with the nominal speed of 80. For each segment in the road network and for all trucks traversing a particular road segment, we collected the times when the trucks traverse the segment. Then, in the order of these points in time, we grouped trucks into platoons in such a manner that the difference in the traversal time within the platoon is at most 0.010.01. We assumed that these platoons can platoon over the whole road segment with no coordination phase. Figure 6 shows |ΔdS||\Delta d^{\mathrm{S}}| averaged over all CL-CF pairs within one simulation and over the simulations for a specific KK. Furthermore, we conducted simulations for different sizes of the band [vmin,vmax][v_{\min},v_{\max}] around the nominal speed of 8080 in which trucks can select their rendezvous speed. KK was fixed to 400400. Figure 9 shows the relative fuel savings for different sizes of the band averaged over 100 simulations for each size.

0\displaystyle 01000\displaystyle 10002000\displaystyle 20003000\displaystyle 30004000\displaystyle 40005000\displaystyle 50006000\displaystyle 60007000\displaystyle 7000K\displaystyle K0\displaystyle 01\displaystyle 12\displaystyle 23\displaystyle 34\displaystyle 45\displaystyle 56\displaystyle 67\displaystyle 78\displaystyle 89\displaystyle 9Average relative fuel savings in %total, greedytotal, randompairwise, greedypairwise, randomspontaneous platooning
Figure 5: Average relative fuel savings for different numbers of trucks KK.
0\displaystyle 01000\displaystyle 10002000\displaystyle 20003000\displaystyle 30004000\displaystyle 40005000\displaystyle 50006000\displaystyle 60007000\displaystyle 7000K\displaystyle K0\displaystyle 02\displaystyle 24\displaystyle 46\displaystyle 68\displaystyle 810\displaystyle 1012\displaystyle 12Average |ΔdS|\displaystyle|\Delta d^{S}|total, greedytotal, randompairwise, greedypairwise, random
Figure 6: Average |ΔdS||\Delta d^{\mathrm{S}}| for different numbers of trucks KK.
0\displaystyle 01000\displaystyle 10002000\displaystyle 20003000\displaystyle 30004000\displaystyle 40005000\displaystyle 50006000\displaystyle 60007000\displaystyle 7000K\displaystyle K0\displaystyle 0500\displaystyle 5001000\displaystyle 10001500\displaystyle 15002000\displaystyle 20002500\displaystyle 2500Average number of CLstotal, greedytotal, randompairwise, greedypairwise, random
Figure 7: Average number of CLs for different numbers of trucks KK.
0\displaystyle 01000\displaystyle 10002000\displaystyle 20003000\displaystyle 30004000\displaystyle 40005000\displaystyle 50006000\displaystyle 60007000\displaystyle 7000K\displaystyle K0\displaystyle 0500\displaystyle 5001000\displaystyle 10001500\displaystyle 15002000\displaystyle 20002500\displaystyle 25003000\displaystyle 30003500\displaystyle 35004000\displaystyle 40004500\displaystyle 4500Iterationstotal, greedytotal, randompairwise, greedypairwise, random
Figure 8: Average number of iterations until the algorithm terminates for different numbers of trucks KK.
0\displaystyle 05\displaystyle 510\displaystyle 1015\displaystyle 1520\displaystyle 2025\displaystyle 2530\displaystyle 3035\displaystyle 3540\displaystyle 4045\displaystyle 45(vmaxvmin)/2\displaystyle(v_{\max}-v_{\min})/20\displaystyle 01\displaystyle 12\displaystyle 23\displaystyle 34\displaystyle 45\displaystyle 56\displaystyle 6Average relative fuel savings in %total, greedytotal, randompairwise, greedypairwise, random
Figure 9: Average relative fuel savings for different vmaxvminv_{\max}-v_{\min} with K=400K=400.

In Figure 5 we can see that the relative fuel savings increase with the number of trucks. The relative fuel savings increase quickly with KK for small values of KK and then increase slowly for larger values. While the relative fuel savings with total gain keep increasing for large values of KK, they are almost constant for pairwise gain. Note that the relative fuel savings in the simulations are upper bounded by 10%10\%. To reach this upper bound each truck needs to be a platoon follower during its entire journey. The difference between greedy and random node selection is small. For small KK the ratio between the relative fuel savings due to the coordination algorithm and those due to spontaneous platooning is relatively large and gets smaller for increasing KK. Figure 6 shows that the average |ΔdS||\Delta d^{\mathrm{S}}| is relatively large for small KK and that it drops quickly to smaller values as KK increases. The values for pairwise gain are consistently smaller than those for total gain. Figure 7 shows the average number of CLs for different KK. We see that the number increases with KK. For total gain it increases sub-linearly. The number of CLs is smaller for total gain compared to pairwise gain. For pairwise gain the number of CLs is proportional to KK. The number of iterations until the algorithm terminates, shown in Figure 8, is almost proportional to the number of CLs, the difference being that random node selection leads to a significantly higher number of iterations than greedy node selection, in particular for total gain. Figure 9 shows that fuel savings quickly increase for small vmaxvminv_{\max}-v_{\min} and only increase moderately for larger bands.

We can conclude that the coordination of platooning is crucial for a small number of trucks and can significantly improve the overall fuel savings for a large number of trucks compared to spontaneous platooning. With coordination, already a small number of platooning enabled trucks can achieve significant reduction in fuel consumption. Pairwise gain creates more CLs and less coordination effort (smaller |ΔdS||\Delta d^{\mathrm{S}}|) than total gain. Total gain yields superior performance. Random and greedy node selection give similar results but random node selection leads to more iterations. However, random node selection might be interesting for a distributed and parallel implementation since it does not require coordination amongst all nodes to determine which node is updated. Relatively small adjustments of the speed are sufficient to achieve most of the fuel savings possible. One should also keep in mind that fuel consumption per distance traveled is highly non-linear over the whole range of speeds a truck can attain and a first order fuel model is only accurate in a small range of speeds. Fuel consumption per distance traveled changes with speed in such a way that we expect large adjustments of the speed to be even less beneficial than predicted by the linear model.

VII Conclusions and Future Work

In this paper we started from a hybrid model of a single truck traveling in a road network. Using a first order fuel model, we derived a pairwise plan for two vehicles. Those pairwise plans, evaluated for all pairs of vehicles, served as the input data to a clustering algorithm that determines a set of coordination leaders. All other trucks in a cluster adapt their speed profile to the coordination leader of that cluster. We proposed four different variants of this algorithm and analyzed their convergence properties. We showed in simulation that this method can quickly find plans for a large number of trucks. The simulations also gave insight in how our approach behaves for different number of trucks in the network and different velocity constraints and supported that coordination of platooning is crucial to leverage its full potential to save fuel.

In future work we are interested in characterizing the equilibria of the algorithm analytically and establishing bounds on the performance. We are interested in studying the algorithm when applied in a receding horizon fashion where the plans are recalculated repeatedly. We plan to consider more complex pairwise plans that feature more complicated dynamics, different speed limits, traffic, etc. Finally, we plan to test the algorithm on real data and look into distributed implementations.

Proof of Proposition 1

Let ds=x1(tM)x1(tS)d_{\mathrm{s}}=x_{1}(t^{\mathrm{M}})-x_{1}(t^{\mathrm{S}}). Let D=x1(tSp)x1(tS)D=x_{1}(t^{\mathrm{Sp}})-x_{1}(t^{\mathrm{S}}). We have the relation

ds=vsvsv0Δd.d_{\mathrm{s}}=\frac{v_{\mathrm{s}}}{v_{\mathrm{s}}-v_{0}}\Delta d. (16)

At time tMt^{\mathrm{M}} we have x0=x1x_{0}=x_{1}. After the meeting point, both trucks platoon at speed v0v_{0}. Assume that 11 is the platoon leader. Hence the total fuel consumption of 0 up to some distance from the current position DD which fulfills D>dsD>d_{\mathrm{s}} becomes f0(vs)ds+fp(v0)(Dds)=(f0(vs)fp(v0))ds+fp(v0)D.f_{0}(v_{\mathrm{s}})d_{\mathrm{s}}+f_{p}(v_{0})(D-d_{\mathrm{s}})=(f_{0}(v_{\mathrm{s}})-f_{p}(v_{0}))d_{\mathrm{s}}+f_{p}(v_{0})D. The fuel consumption of 11 is not affected by vsv_{\mathrm{s}}. We see that the term fp(v0)Df_{p}(v_{0})D is not a function of vsv_{\mathrm{s}}, so the optimal rendezvous speed does not depend on the total distance traveled. In order to find the optimal vsv_{\mathrm{s}}, we can therefore consider the remaining terms denoted as fr(vs)f_{r}(v_{\mathrm{s}}) and get with (16) and the definitions of f0f_{0}, fpf_{p}

fr(vs)\displaystyle f_{r}(v_{\mathrm{s}}) =(f0(vs)fp(v0))ds\displaystyle=(f_{0}(v_{\mathrm{s}})-f_{p}(v_{0}))d_{\mathrm{s}}
=(F1vsFp1v0+ΔF0)vsvsv0Δd,\displaystyle=(F^{1}v_{\mathrm{s}}-F_{p}^{1}v_{0}+\Delta F^{0})\frac{v_{\mathrm{s}}}{v_{\mathrm{s}}-v_{0}}\Delta d,

with ΔF0=F0Fp0\Delta F^{0}=F^{0}-F_{p}^{0}. We take the derivative of the above expression in order to find its extrema

vsfr(vs)=\displaystyle\frac{\partial}{\partial v_{\mathrm{s}}}f_{r}(v_{\mathrm{s}})=
=Δd(vsv0)2(F1vs22F1v0vs+Fp1v02ΔF0v0).\displaystyle=\frac{\Delta d}{(v_{\mathrm{s}}-v_{0})^{2}}(F^{1}v_{\mathrm{s}}^{2}-2F^{1}v_{0}v_{\mathrm{s}}+F_{p}^{1}v_{0}^{2}-\Delta F^{0}v_{0}).

In order to find the extrema v~s\tilde{v}_{\mathrm{s}}, we check where this expression is zero. We can assume that Δd0\Delta d\neq 0, otherwise ds=0d_{\mathrm{s}}=0 which means that the trucks can directly start platooning. Therefore

0\displaystyle 0 =(F1(v~s)22F1v0v~s+Fp1v02ΔF0v0)\displaystyle=(F^{1}(\tilde{v}_{\mathrm{s}})^{2}-2F^{1}v_{0}\tilde{v}_{\mathrm{s}}+F_{p}^{1}v_{0}^{2}-\Delta F^{0}v_{0}) (17)
v~s\displaystyle\tilde{v}_{\mathrm{s}} =v0(1±1Fp1F1+ΔF0F1v0).\displaystyle=v_{0}\left(1\pm\sqrt{1-\frac{F_{p}^{1}}{F^{1}}+\frac{\Delta F^{0}}{F^{1}v_{0}}}\right). (18)

We have to differentiate between two cases. Either Δd>0\Delta d>0 which implies vs>v0v_{\mathrm{s}}>v_{0}, i.e., the CF speeds up, or Δd<0\Delta d<0 which implies vs<v0v_{\mathrm{s}}<v_{0}, i.e., the CF slows down. Otherwise dsd_{\mathrm{s}} becomes negative. There are two solutions for v~s\tilde{v}_{\mathrm{s}}, one where v~s>v0\tilde{v}_{\mathrm{s}}>v_{0}, and the other v~s<v0\tilde{v}_{\mathrm{s}}<v_{0}. The appropriate one depending on Δd\Delta d is v~s\tilde{v}_{\mathrm{s}}, the optimal unconstrained rendezvous speed.

We can verify that this is indeed a minimum by considering the asymptotic behavior of fr(vs)f_{r}(v_{\mathrm{s}}) when fr(vs)f_{r}(v_{\mathrm{s}}) approaches ±\pm\infty and when it approaches v0v_{0}. Assume Δd>0\Delta d>0 so that v~s>v0\tilde{v}_{\mathrm{s}}>v_{0}. We have limvsfr(vs)=\lim\limits_{v_{\mathrm{s}}\rightarrow\infty}f_{r}(v_{\mathrm{s}})=\infty,limvsv0+fr(vs)=\lim\limits_{v_{\mathrm{s}}\rightarrow v_{0}^{+}}f_{r}(v_{\mathrm{s}})=\infty where we used that f0(v0)>fp(v0)f_{0}(v_{0})>f_{p}(v_{0}) so that the term f0(v0)fp(v0)f_{0}(v_{0})-f_{p}(v_{0}) becomes positive, which is the prerequisite to save fuel by platooning. When we have Δd<0\Delta d<0, so that v~s<v0\tilde{v}_{\mathrm{s}}<v_{0}, then limvsfr(vs)=\lim\limits_{v_{\mathrm{s}}\rightarrow-\infty}f_{r}(v_{\mathrm{s}})=\infty,limvsv0fr(vs)=.\lim\limits_{v_{\mathrm{s}}\rightarrow v_{0}^{-}}f_{r}(v_{\mathrm{s}})=\infty. This shows that if v~s>vmax\tilde{v}_{\mathrm{s}}>v_{\max}, then vs=vmaxv_{\mathrm{s}}^{*}=v_{\max}, if v~s<vmin\tilde{v}_{\mathrm{s}}<v_{min}, then vs=vmaxv_{\mathrm{s}}^{*}=v_{\max}, and vs=v~sv_{\mathrm{s}}^{*}=\tilde{v}_{\mathrm{s}} otherwise.

In order to have real solutions for (17), we need

1Fp1F1+ΔF0F1v0\displaystyle 1-\frac{F_{p}^{1}}{F^{1}}+\frac{\Delta F^{0}}{F^{1}v_{0}} >0Fp1v0+Fp0<F1v0+F0\displaystyle>0\Leftrightarrow F_{p}^{1}v_{0}+F_{p}^{0}<F^{1}v_{0}+F^{0}
fp(v0)\displaystyle\Leftrightarrow f_{p}(v_{0}) <f0(v0),\displaystyle<f_{0}(v_{0}),

which is the condition that the CF saves fuel when platooning. The larger the difference f0(v0)fp(v0)f_{0}(v_{0})-f_{p}(v_{0}) the larger the absolute difference between v0v_{0} and vv^{*}, i.e., the longer the trucks platoon.

References

  • [1] R. Horowitz and P. Varaiya, “Control design of an automated highway system,” Proceedings of the IEEE, vol. 88, no. 7, pp. 913–925, July 2000.
  • [2] C. Bonnet and H. Fritz, “Fuel consumption reduction in a platoon: Experimental results with two electronically coupled trucks at close spacing,” SAE Technical Paper 2000-01-3056, 2000.
  • [3] E. Larsson, G. Sennton, and J. Larson. (2014) The vehicle platooning problem: Computational complexity and heuristics. [Online]. Available: http://www.optimization-online.org/DB_FILE/2013/09/4030.pdf
  • [4] K.-Y. Liang, J. Mårtensson, and K. H. Johansson, “When is it fuel efficient for a heavy duty vehicle to catch up with a platoon?” in 7th IFAC Symposium on Advances in Automotive Control, 2013.
  • [5] J. Larson, K.-Y. Liang, and K. H. Johansson, “A distributed framework for coordinated heavy-duty vehicle platooning,” Intelligent Transportation Systems, IEEE Transactions on, vol. 16, no. 1, pp. 419–429, Feb 2015.
  • [6] P. Meisen, T. Seidl, and K. Henning, “A data-mining technique for the planning and organization of truck platoons,” in International Conference on Heavy Vehicles, Heavy Vehicle Transport Technology. ISTE & Wiley., 2008, pp. 389–402.
  • [7] S. van de Hoef, K. H. Johansson, and D. V. Dimarogonas, “Fuel-optimal coordination of truck platooning based on shortest paths,” in American Control Conference (ACC), 2015, to be published.
  • [8] A. K. Jain and R. C. Dubes, Algorithms for Clustering Data. Upper Saddle River, NJ, USA: Prentice-Hall, Inc., 1988.
  • [9] A. K. Jain, “Data clustering: 50 years beyond k-means,” Pattern Recognition Letters, vol. 31, no. 8, pp. 651 – 666, 2010.
  • [10] V. Blondel, J. Guillaume, R. Lambiotte, and E. Mech, “Fast unfolding of communities in large networks,” J. Stat. Mech, p. P10008, 2008.
  • [11] S. Harenberg, G. Bello, L. Gjeltema, S. Ranshous, J. Harlalka, R. Seay, K. Padmanabhan, and N. Samatova, “Community detection in large-scale networks: a survey and empirical evaluation,” Wiley Interdisciplinary Reviews: Computational Statistics, vol. 6, no. 6, pp. 426–439, 2014.
  • [12] S. Fortunato, “Community detection in graphs,” Physics Reports, vol. 486, no. 3–5, pp. 75 – 174, 2010.
  • [13] L. Kaufman and P. J. Rousseeuw, Finding Groups in Data: An introduction to Cluster Analysis. John Wiley & Sons, Inc., 2008.
  • [14] H. Garcia-Molina, “Elections in a distributed computing system.” IEEE Transactions on Computers, vol. C-31, no. 1, pp. 48–59, 1982.
  • [15] S. Singh and J. Kurose, “Electing “good” leaders,” Journal of Parallel and Distributed Computing, vol. 21, no. 2, pp. 184 – 201, 1994.
  • [16] W. Saad, Z. Han, M. Debbah, A. Hjorungnes, and T. Basar, “Coalitional game theory for communication networks,” Signal Processing Magazine, IEEE, vol. 26, no. 5, pp. 77–97, September 2009.
  • [17] R. Goebel and R. Sanfelice, Hybrid Dynamical Systems: Modeling, Stability, and Robustness. Princeton University Press, 2012.