带时间窗的电动车辆路径规划问题

带时间窗的电动车辆路径规划问题(Electric Vehicle Routing Problem with Time Windows, EVRPTW)的问题描述如下:区域内存在一个车场或配送中心,一个或多个充电站以及若干个客户,每个客户都有明确的服务需求和服务时间窗口,且服务时间已知。车辆的行驶过程需要保证电量、时间、货物容量上的可行性。配送中心或车场需要派出车队并且为其设计合适的配送方案,使其以最小的总行驶成本完成所有的客户的货物配送需求。

为了简化问题,我们做出了如下假设:

  1. 只考虑一个充电站。
  2. 时间窗为硬时间窗。
  3. 电动车从配送中心出发时为满电量状态。
  4. 电动车的充电速率是线性的, 每次充电都充满。

为便于理解,下图展示了一个EVRPTW的示例,其中包含了3辆电动车,10个客户点以及1个充电站。3辆电动车的行驶路径及其电量状态(State Of Charge, SOC)如下:

  • 电动车1:配送中心(100%) \rightarrow 4(60%) \rightarrow (45%)充电站(100%) \rightarrow 3(90%) \rightarrow 2(70%) \rightarrow 1(45%)\rightarrow配送中心(45%)。
  • 电动车2:配送中心(100%) \rightarrow 7(55%) \rightarrow 6(20%) \rightarrow (5%)充电站(100%) \rightarrow 5(70%) \rightarrow 配送中心(35%)。
  • 电动车3:配送中心(100%) \rightarrow 10(75%) \rightarrow 9(60%) \rightarrow 8(40%)\rightarrow 配送中心(10%)。

EVRPTW示例

符号

给定有向图G=(V,A)\mathcal{G}=(\mathcal{V}, \mathcal{A})V=C{o,d}r\mathcal{V}=\mathcal{C}\cup\{o,d\}\cup{r},是图中的点集,包括了客户点集C\mathcal{C},配送中心点oo及其复制配送中心点dd,充电站点rrA={(i,j)i,jV,ij}\mathcal{A}=\{(i,j)|\forall i,j\in\mathcal{V}, i\neq j\}, 是图中的边集。客户ii的需求为qiq_i,服务时间为lil_i,服务时间窗为[ai,bi][a_i,b_i]。弧(i,j)(i,j)的行驶时间为TijT_{ij},行驶成本为cijc_{ij}。电动车的充电速率gg是线性的。假设电动车的电量状态为[0[0%,100%],且其电量消耗是与行驶距离成正比函数。为了刻画不同电动车到达同一个充电站rr的剩余电量和充电时间段的不一致,我们将充电站rr复制多个(每一个的坐标相同,仅编号不一样),使用R\mathcal{R}来表示所有复制点的点集。将图G\mathcal{G}的点集更新为V=C{o,d}R\mathcal{V}=\mathcal{C}\cup\{o,d\}\cup{\mathcal{R}}。需要注意的是复制的数量不宜过多,否则会出现对称性,即访问不同得到复制点但是对应的解实际上是一样的。理论上最差是每辆车访问一个客户后就必须充电,需要复制CK|\mathcal{C}||\mathcal{K}|个充电站。

问题建模

  • 决策变量:
    • xijx_{ij}表示从客户点ii到客户点jj的行驶路径,取值为0或1,0表示不选择该路径,1表示选择该路径。
    • tit_i表示客户点ii的访问时间。
    • uiu_i表示到达客户点ii的剩余容量。
  • 目标函数:最小化总行驶成本。
    mini,jVcijxij\min \sum_{i,j\in\mathcal{V}}c_{ij}x_{ij}
  • 约束条件:
    • 每个客户都必须被一辆车访问一次。
      jVxij=1,iC\sum_{j\in\mathcal{V}}x_{ij}=1,\forall i\in\mathcal{C}
    • 车辆必须重配送中心出发,最后返回配送中心。
      jVxojjVxid=0\sum_{j\in\mathcal{V}}x_{oj} - \sum_{j\in\mathcal{V}}x_{id}=0
    • 对于每个客户点离开的车数量必须等于进入的该客户点数量, 即车辆的流平衡约束。
      iVxijjVxji=0,jCR\sum_{i\in\mathcal{V}}x_{ij} - \sum_{j\in\mathcal{V}}x_{ji}=0,\forall j\in\mathcal{C}\cup\mathcal{R}
    • 车辆的容量约束。
      ui+qiujM(1xij),(i,j)Au_i+q_i-u_j\leq M(1-x_{ij}), \forall (i,j)\in\mathcal{A}
    • 车辆的行驶时间约束。
      • 不存在充电过程的弧:
        包括配送中心与客户点之间的弧,以充电站复制点为起点的弧。
        ti+li+TijtjM(1xij),iCo,jVt_i + l_i + T_{ij} - t_j \leq M(1-x_{ij}), \forall i\in\mathcal{C}\cup{o}, j\in\mathcal{V}
      • 存在充电过程的弧:
        当电动车访问以充电站为起点的弧,表明电动车进行了充电。为了对电动车的电量状态进行建模,需要记录电动车到达客户点的SOC的决策变量。引入非负变量yiy_i表示电动车到达点ii时已消耗的电量,且yi[0,1]y_i\in[0,1], 那么到达客户点的剩余电量为1yi1-y_i。电动车的充电时间约束为:
        ti+gyi+TijtjM(1xij),iR,jCdt_i + gy_i + T_{ij} - t_j \leq M(1-x_{ij}), \forall i\in\mathcal{R}, j\in\mathcal{C}\cup{d},
        其中gyigy_i表示充满电的时间。
    • 行驶过程中的电量约束:用参数EijE_{ij}表示电动车在弧(i,j)(i,j)行驶过程中的电量消耗。
      • 以配送中心或者充电站点为起点的弧(i,j),i{o}R,jC{d}(i,j), i \in \{o\}\cup\mathcal{R}, j \in \mathcal{C}\cup\{d\}, 电动车到达点jj时已消耗的电量为EijE_{ij},那么yj=yi+Eij=0+Eij=Eijy_j = y_i + E_{ij} = 0 + E_{ij} = E_{ij}

        EijyjM(1xij),i{o}R,jVE_{ij} - y_j \leq M(1-x_{ij}), \forall i \in \{o\}\cup\mathcal{R}, j \in \mathcal{V}

      • 以客户点为起点的弧(i,j),iC,jV(i,j), i \in \mathcal{C}, j \in \mathcal{V}, xij=1x_{ij}=1, 那么yj=yi+Eijy_j = y_i + E_{ij}
        yi+EijyjM(1xij),iC,jVy_i + E_{ij} - y_j \leq M(1-x_{ij}), \forall i \in \mathcal{C}, j \in \mathcal{V}

完整的EVRPTW数学模型如下:

mini,jVcijxijs.t.jVxij=1,iCjVxojjVxid=0iVxijjVxji=0,jCRui+qiujM(1xij),(i,j)Ati+li+TijtjM(1xij),iCo,jVti+gyi+TijtjM(1xij),iR,jCdEijyjM(1xij),i{o}R,jVyi+EijyjM(1xij),iC,jVaitibi,iC0uiQ,iV0yi1,iVxij{0,1},(i,j)A\begin{aligned} \min &\sum_{i,j\in\mathcal{V}}c_{ij}x_{ij} \\ \text{s.t.} &\sum_{j\in\mathcal{V}}x_{ij}=1,&\forall i\in\mathcal{C}\\ & \sum_{j\in\mathcal{V}}x_{oj} - \sum_{j\in\mathcal{V}}x_{id}=0\\ &\sum_{i\in\mathcal{V}}x_{ij} - \sum_{j\in\mathcal{V}}x_{ji}=0,&\forall j\in\mathcal{C}\cup\mathcal{R}\\ & u_i+q_i-u_j\leq M(1-x_{ij}), &\forall (i,j)\in\mathcal{A}\\ &t_i + l_i + T_{ij} - t_j \leq M(1-x_{ij}), &\forall i\in\mathcal{C}\cup{o}, j\in\mathcal{V} \\ &t_i + gy_i + T_{ij} - t_j \leq M(1-x_{ij}), &\forall i\in\mathcal{R}, j\in\mathcal{C}\cup{d}\\ &E_{ij} - y_j \leq M(1-x_{ij}), &\forall i \in \{o\}\cup\mathcal{R}, j \in \mathcal{V}\\ &y_i + E_{ij} - y_j \leq M(1-x_{ij}), &\forall i \in \mathcal{C}, j \in \mathcal{V}\\ &a_i \leq t_i \leq b_i, &\forall i \in \mathcal{C}\\ &0 \leq u_i \leq Q, &\forall i \in \mathcal{V}\\ &0\leq y_i \leq 1, &\forall i \in \mathcal{V}\\ &x_{ij} \in \{0,1\}, &\forall (i,j)\in\mathcal{A} \end{aligned}