主权项 |
一种基于粒子群算法的车联网路侧单元部署方法,其特征在于如下步骤:步骤1:建立路网模型:将某个路段e表示为e(v<sub>h</sub>,v<sub>t</sub>,f<sub>t</sub>,f<sub>w</sub>),其中v<sub>h</sub>为路段e的起点,v<sub>t</sub>为路段e的终点,f<sub>t</sub>为路段e的路线函数,f<sub>w</sub>为路段e的权重函数;步骤2:建立效益模型:将路网部署总效益B<sub>n</sub>表示如下:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>B</mi><mi>n</mi></msub><mo>=</mo><munder><mi>Σ</mi><mrow><mi>e</mi><mo>∈</mo><mi>U</mi></mrow></munder><munder><mo>∫</mo><mi>e</mi></munder><msub><mi>f</mi><mrow><mi>w</mi><mo>,</mo><mi>e</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>ds</mi><mo>+</mo><munder><mi>Σ</mi><mrow><msub><mi>M</mi><mi>e</mi></msub><mo>∈</mo><mi>S</mi></mrow></munder><munder><mo>∫</mo><msub><mi>M</mi><mi>e</mi></msub></munder><msub><mi>f</mi><mrow><mi>w</mi><mo>,</mo><mi>e</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>ds</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000731346470000011.GIF" wi="1485" he="136" /></maths>其中符号U为n个路侧单元的全覆盖路段的集合,符号S为其部分覆盖路段的集合,符号M<sub>e</sub>为路段e在路网中所有路侧单元的覆盖区域内的部分;步骤3:利用粒子群算法对路侧单元部署问题进行优化求解;步骤如下:步骤3.1:构造个体在粒子群算法求解路边单元部署问题中,每个粒子p作为一个可行解组成粒子群P;构造给出粒子p:假设路网中需要部署n个路侧单元,每个路侧单元在路网中的位置信息为l(x,y),则n个路侧单元构成一个位置序列L(l<sub>1</sub>(x,y),l<sub>2</sub>(x,y),...,l<sub>n</sub>(x,y));可以看出,位置序列L(l<sub>1</sub>(x,y),l<sub>2</sub>(x,y),...,l<sub>n</sub>(x,y))和可行解p是一一对应的关系;又因为每个可行解由三部分组成,即粒子的位置、速度和适应度值;则粒子i结构表示为:particle(i)={ location[], velocity[], (2) fitness}粒子的位置编码结构表示为:particle(i).location[]=L(l<sub>1</sub>(x,y),l<sub>2</sub>(x,y),...,l<sub>n</sub>(x,y)) (3)粒子的速度编码结构表示为:particle(i).velocity[]=V(v<sub>1</sub>(x,y),v<sub>2</sub>(x,y),...,v<sub>n</sub>(x,y)) (4)步骤3.2:初始化粒子群随机生成m个位置序列L(l<sub>1</sub>(x,y),l<sub>2</sub>(x,y),...,l<sub>n</sub>(x,y))和速度序列V(v<sub>1</sub>(x,y),v<sub>2</sub>(x,y),...,v<sub>n</sub>(x,y)),并初始化对应的适应度值,组成m个粒子,分别记为P<sub>1</sub>,P<sub>2</sub>,...,P<sub>m</sub>;每个P是一个粒子,m个粒子组成一个粒子群;步骤3.3:设定适应度函数用式(1)路网部署总效益B<sub>n</sub>作为适应度值;粒子的适应度值记为:particle(i).fitness=B<sub>n</sub> (5)步骤3.4:更新自身最优算子和全局最优算子自身最优算子p<sub>id</sub>记录每个粒子到目前为止自己所经历过的最优解,通过自身所经历的最优解来不断调整自身的位置;全局最优算子p<sub>gd</sub>记录整个粒子群经历过的最好位置,通过此位置来更新自身位置,使得更新的解向着全局最优解的方向靠近;步骤3.5:更新粒子位置和速度当自身最优解和全局最优解都找到后,每个粒子更具公式(6)和公式(7)来更新自己的速度和位置;v<sub>id</sub>(t+1)=ωv<sub>id</sub>(t)+η<sub>1</sub>rand()(p<sub>id</sub>‑l<sub>id</sub>(t))+η<sub>2</sub>rand()(p<sub>gd</sub>‑l<sub>id</sub>(t)) (6)l<sub>id</sub>(t+1)=l<sub>id</sub>(t)+v<sub>id</sub>(t+1) (7)式中v<sub>id</sub>(t+1)表示第i个粒子在t+1次迭代中的速度,ω为惯性权重,η<sub>1</sub>、η<sub>2</sub>为加速常数,rand()为0~1之间的随机数;另外,为使粒子速度不至过大,我们设置了速度上限v<sub>max</sub>,即当v<sub>id</sub>(t+1)>v<sub>max</sub>时,v<sub>id</sub>(t+1)=v<sub>max</sub>;v<sub>id</sub>(t+1)<‑v<sub>max</sub>时,v<sub>id</sub>(t+1)=‑v<sub>max</sub>;步骤3.6:基于前面提出的个体构造方法及评估值计算策略,使用粒子群算法来求解的步骤如下:(1)设置相关参数初始化粒子群规模、最大迭代次数、惯性权重、加速常数;(2)初始化粒子群随机生成包含若干粒子的粒子群M<sub>1</sub>,进化代数i=1;(3)计算粒子群适应度值按照步骤3.3计算初始粒子群适应度值;粒子适应值越大,说明该粒子越接近最优解;(4)更新自身最优算子和全局最优算子(5)更新粒子位置和速度(6)计算新位置的粒子群适应度值(7)更新新位置的粒子群自身最优算子和全局最优算子(8)判断是否满足算法终止条件算法的终止条件是粒子群进化代数超过设定的最大迭代次数,转步骤(8);否则,转步骤(5);(9)停止进化,输出结果。 |