1.一种共享单车需求预测与投放调度方法,包括以下步骤:
S1、建立XGBoost决策树,将相似和相邻的站点聚集成集群;
S2、对单个站点的真实需求进行纠偏,并带入到XGBoost决策树中经训练后得到优化的站点聚类结果;
S3、根据训练好的XGBoost决策树预测每个站点的借/还车需求;
S4、考虑每个站点容量限制和需求到达分布,计算单车的初始投放量;
S5、划分城市的调度分区;
S6、建立区域内单车调度模型,获得调度路径的最优选择;
步骤S1中所述建立XGBoost决策树,将相似和相邻的站点聚集成集群包括:分别统计过去d个工作日内每个站点h时段内净车流数y和特征变量loni、lati、temi、raini、speedi,共收集样本N个,该XGBoost决策树模型描述为:式(1)中,子树的数量用k表示, 表示站点i的客户借/还车需求预测值,loni表示站点i的经度,lati表示站点i的纬度,temi表示站点i的温度,raini表示站点i的降水量,speedi表示站点i的风速,该XGBoost决策树模型的目标函数为:根据泰勒展开理论,式(2)可以转化为:
式(3)中,T为叶子节点的总数,Glf为lf叶子节点下样本的 '之和,Hlf为lf叶子节点下样本的 ”之和;
未知fk(x)=ωq(x)中,ω表示子树k的叶子节点值,q(x)表示子树k的结构;将式(3)看作*是关于变量ωlf.的二次函数,令一阶导数为零,得到叶节点lf的最优解ωlf 和最优目标值*Objlf如下:
确定q(x)即树的结构:从根节点开始,每次判断是否分割节点以及使用哪个特征变量作为分割条件,都取决于增益Gain,Gain的计算如下:遍历计算各种分裂方式的增益,选择Gain最大的方式将一个叶节点向下分为左右两个节点,当所有Gain≤0则不再分裂;
将待预测日期的站点的经度、纬度、站点地区h时段的温度、降水量、风速输入到XGBoost决策树模型训练所得的K颗子树中,统计相邻的站点j和站点j’的相似度指标其中 为布尔值,j站点和j’站点在子树k中落入同一个叶子节点则 否则 ωk为子树k的权重,0≤Mjj’≤1;
用1‑Mjj’表示两个站点之间的距离,进行距离参数为Ma的层级聚类得到站点聚类结果;
步骤S2中所述对单个站点的真实需求进行纠偏,并带入到XGBoost决策树中经训练后得到优化的站点聚类结果包括:对于给定时段h和系统中的n个站点,设站点i的真实需求为xi,i=1,2,…,n,系统的记录数为fi,i=1,2,…,n;定义α来表示用户遇到失衡站点时的转移意愿,wij=α/Dij表示第i站与第j站之间的转移率,其中Dij表示站点i与站点j之间的距离;
S1表示时段h内发生过失衡的站点集,S2表示时段h内从未发生失衡的站点集,|S1|=n1,|S2|=n2,n1+n1=n,S1∪S2=S;
属于S2的站点,xi与fi的关系如下:
属于S1的站点,xi与fi的关系如下:
在式(6)和(7)中,trans(i,j)表示从站点i转移到站点j的借/还车需求,bool(i,j)表示若站点j是失衡站点i在ti内距离最近的正常工作的站点,bool(i,j)=1,否则bool(i,j)=0,站点i∈S1;ti表示站点i处于失衡状态时区;
对于每个属于S1的站点有:
约束条件如下:
fj‑xj≥0 j∈S2 (10)
xi≥0,α≥0 i∈S (12)
目标函数如下:
在式(13)中,Sc表示聚类结果中集群C所包含的站点集,|Sc|=nc;
步骤S3中根据训练好的XGBoost决策树预测每个站点的借/还车需求包括:将各站点的记录数量fi替换为xi,得到纠偏后的需求数据,使用纠偏后的需求数据作为标签,对XGBoost决策树模型进行训练,在训练后的模型中通过输入特征变量预测站点i在h时段的真实需求如下:步骤S4中所述考虑每个站点容量限制和需求到达分布,计算单车的初始投放量包括:某站点单个时段内被拒需求数量的估计:
h h
给定站点j和时段h=[t0 ,ts],按照泊松分布分别由h时段的借车需求量概率分布和还车需求量概率分布产生随机值 和 则h内单车净变化量 设站点容量为h
C,在初始时刻t0 站点单车数量为q的条件下,h时段内产生的被拒借车需求数量的期望值表示为:在式(15)中,u1表示被拒借车需求数量;
h时段内产生的被拒还车需求数量的期望值 表示为:
在式(16)中,u2表示被拒还车需求数量;
在初始单车投放量为q的条件下,h时段内被拒需求数量的期望值 为:分别计算q从0到C的 取 最小值对应的q为h时段站点j的最优初始投放量。
2.如权利要求1所述的共享单车需求预测与投放调度方法,其特征在于:某站点连续时段内被拒需求数量的估计:
若测算连续n个时段h1,..hm,..hn内站点j产生被拒需求数量的期望值,hm的初始库存是hm‑1的末点库存,末点库存有三种情况:h时段站点的单车库存量ph由q变为0的概率:
h时段站点的单车库存量ph由q变为C的概率:
h时段站点的单车库存量ph由q变为q’的概率:
初始单车投放量为q的条件下,站点在连续n个时段内产生的被拒需求数量的期望值为E(δf):取E(δf)最小值对应的q为该站点连续n个时段的最优初始投放量。
3.如权利要求1所述的共享单车需求预测与投放调度方法,其特征在于:步骤S5中所述划分城市的调度分区包括:S51、首先筛选出净借需求量绝对值过大的站点,即极端需求站点,依次以这些站点为中心,搜索其附近1公里以内的全部站点,分别计算这些站点与中心站点间的距离,从最近的站点开始收纳入“零需”站点集,当站点集的净借需求量总和已经为零或者略大于零,则终止搜寻,为下一个极端需求站点构建“零需”站点集;
S52、将周围站点全部吸纳仍未达到终止条件,则以当前站点集中心位置为虚拟站点,以集内站点的净借需求量总和为虚拟站点的净借需求量,重复上述过程,吸纳新的站点加入;
S53、若站点集容量达到阈值仍然未达成终止条件,则释放这个站点集,直接为下一个极端需求站点构建“零需”站点集;若某站点附近1公里以内并没有还未加入站点集的站点,则释放这个站点集,将这个站点加入“落单”站点集,直接进行下一个“零需”站点集的构建;
S54、完成极端需求站点的站点集之后,在剩下的站点中找出地理位置上的外围站点,依次为其构建“零需”站点集,循环这一过程,直到未加入站点集的站点数量与落单站点集数量相同;
S55、将落单站点视为一个“零需”站点集,计算所有“零需”集站点集的地理中心位置,用一个虚拟站点代替一个站点集,以经度最高的虚拟站点为始,与周围的虚拟站点合并,当实际站点数超过40且区域内所有站点的单车库存之和处于该区域最优单车投放量的上界和下界之间时,停止合并,作为一个调度分区;
S56、重复S51‑S54,完成城市内所有站点的调度分区划分。
4.如权利要求1所述的共享单车需求预测与投放调度方法,其特征在于:步骤S6中所述建立区域内单车调度模型,获得调度路径的最优选择包括:规定区域内有若干共享单车站点,用集合S1={1,2,……,N}表示,由标准运输货车进行调度作业,运输货车的出发点用S2={0}表示,每辆货车的载量上限为Q,在整个调度作业过程中,每辆作业货车的实时载量e必须满足0≤e≤Q;
目标函数1:调运成本和碳排放的最小化:
目标函数2:用户不满惩罚最小化:
约束条件:
Lij=Lki+qi,k∈{0,…,N‑1},Rki=1,i∈S1,j∈{2,…,N}∪{0}(27)Lij≤M·Rij(28)
L0j=Lj0=0(30)
S表示调度货车的调度路径,S=S1∪S2={0,1,2,…,N},其中0表示调度货车的出发点,其他表示各站点;qi表示在站点投放的单车的数量,qi<0时表示在站点i取走‑qi辆单车;Ri,j为0‑1变量,如果从站点i到站点集j在货车的调度路线中,Ri,j=1,否则Ri,j=0;gi表示站点i在调度工作进行前的单车数量;fi表示站点i在调度工作完成后的单车数量;F(x,i)表示表示站点i的单车数量为x时,预期会产生的损失需求的数量;Lij表示调度货车从站点i行驶到站点j过程中所载单车数量;Q表示调度货车的的容量;Dij表示站点i到站点j之间的运输e d距离;C表示调度货车单位公里单位千克耗用的燃油量;C表示每产生一个被拒绝的需求的不满惩罚;Ci表示站点i的容量;M表示一个无限大的正值;B表示消除子回路的辅助变量。
5.如权利要求4所述的共享单车需求预测与投放调度方法,其特征在于:通过混合多目标粒子群优化算法获得调度路径的最优选择,包括:S61、生成初始解集:计算区域内站点间的距离矩阵,随机选择一个站点作为路线首个站点,然后在距离该站点最近的4个站点中以等概率随机选取任意一个作为下一个目的地,然后重复这一过程,避免选择已被选择的站点,直到将所有站点加入路线;将生成的路线作为解Rij输入式(22)‑(35),调用Python的scipy.optimize求解得到各个站点处的最优装/卸单车数量qi,与Rij构成一个完整的初始解;以相同的方式形成其他初始解,构建初始解集;
S62、适应度函数设计及个体最优选择:通过比较粒子的适应度值来获得粒子的优势关系,适应度函数来自目标函数1和目标函数2,指定如下:S63、构建非劣解集:定义帕累托支配关系:对于粒子z1和z2,如f1(z1)≤f1(z2)且f2(z1)
对于任意粒子z*,当且仅当f1(z*)≤f1(z)且f2(z*)
S64、选择全局最优选择:全局最佳粒子gbest是从REP中选择的,REP保存搜索过程中找到的所有非支配解;在搜索开始时,将在初始化阶段构造的非支配粒子全部添加到REP;在搜索过程中,将每次迭代中发现的当前非支配粒子与REP中的所有解一一比较;如果一个当前粒子被REP中的粒子支配,则将其丢弃;否则,可以将此类粒子附加到REP;若REP中有粒子被新成员支配,则将这些粒子从REP中删除;当REP超过其最大容量时,用自适应网格方法删除多余的解,保持解决方案在REP中分布良好;对于gbest的选择,将解决方案空间划分为多个相等的网格,其中具有较少粒子的网格具有较高的被选择机会;设调整参数为β,网格数为n,网格j包含的粒子数量由nj表示,则第i个网格中的解被选择为gbest的概率为:S65、交叉算子设计:使用遗传算法的交叉算子来更新算法中的粒子:首先由gbest更新粒子,然后由gbest更新粒子,粒子交叉算子 其中Xi(t+1)和Xi(t)分别表示第i个粒子在当前迭代(t)和下一次迭代(t+1)中的位置;pbest(t)是第i个粒子的历史最优位置,gbest(t)是总体的全局最优位置; 是交叉运算符;
S66、变异算子设计:使用结合VNS的变异算子对粒子进行更新,采用三种邻域结构:(1)节点插入:随机选择一个站点并将其从其原始位置移除,然后将其插入另一个随机位置;
(2)节点交换:随机选择两个站点,并交换其位置;
(3)随机选择两个站点,将它们之间的顺序以相反的顺序排列;
以上三个邻域结构随机执行,进行变异操作后,如果新粒子支配了原始粒子,将替换原始粒子;如果原始粒子占主导地位,则丢弃新粒子;如果这两个粒子之间没有支配关系,则随机选择其中之一。