首页 理论教育基于轴辐网络的应急设施布局算法

基于轴辐网络的应急设施布局算法

【摘要】:在具有8个节点的轴辐网络中,节点3和节点7是枢纽点,非枢纽点分配给枢纽点的情况见分配序列,节点1分配给枢纽3,其值等于3,节点7是枢纽点,其值等于7。上述比例数据均是从遗传算法参数控制的实际实验中得出。首先按照设定的交叉概率选择“枢纽序列”和“分配序列”各一对,在两序列中随机选取同一交叉点,通过交换交叉点的左右两部分构成新的子代个体。

遗传算法是基于随机搜索的最优化启发式算法,是模仿自然界生物进化的过程的算法,被广泛应用于解决各类最优化问题。遗传算法最初是由Holland[106]提出,目前该算法广泛应用于各种领域。遗传算法对问题的可行解进行编码,通过适应度函数构成优胜劣汰、适者生存的“自然环境”,种群通过选择、交叉、变异等不断演化,产生新的更加优良的种群,这样经过若干代的进化,最终求得问题的最优解,本书根据L-SHSCP模型特点,采用设计改进的遗传算法来求解。

1)解的编码

在改进遗传算法中,每一个染色体(可行解)包含两个序列:“枢纽序列”和“分配序列”。每个序列的长度等于网络总节点数目。在“枢纽序列”中,采用0、1编码,1代表该点为枢纽点,0代表此点是非枢纽点。在“分配序列”中,如果节点i分配给节点k,则节点i的值等于k。在“分配序列”中每一个枢纽点分配给其自身,如图4-2所示。在具有8个节点的轴辐网络中,节点3和节点7是枢纽点,非枢纽点分配给枢纽点的情况见分配序列,节点1分配给枢纽3,其值等于3,节点7是枢纽点,其值等于7。

图4-2 染色体的编码

2)初始种群的生成

在初始种群生成阶段,应提前确定种群大小规模。在L-SHSCP模型中枢纽点的数量是一个决策变量,本算法确定枢纽数量的策略是:在初始种群75%的个体中,从序列[1,…,n/4]中随机选取一个数字作为枢纽点数量P,n代表节点总数;对于其余25%个体的枢纽数量从序列(n/4,…,n/2)随机选取一数字作为枢纽点的数量P,这样算法的初始解的枢纽数量可以达到整个网络节点总数的一半。

为了保证种群的多样性,采用随机抽取策略。同时,为了使得具有较好条件(权重较小)的节点更易成为枢纽点,将各节点按照权重大小依次升序排列,构成“带权重节点序列”。对于初始种群75%个体的枢纽点,从“带权重节点序列”中按照权重从小到大依次选出相应数量的枢纽点,初始种群25%个体的枢纽点则从整个节点序列中随机选出。上述比例数据均是从遗传算法参数控制的实际实验中得出。

例如,在初始种群规模为40,节点总数为48的轴辐网络中,30个个体的枢纽点数目最多可达到8个,按照节点权重从小到大依次选出相应数量的枢纽点;其余10个个体枢纽点数量最多可达到24个,可从整个节点集中随机选出相应数量的枢纽点。

3)选择算子

选择算子是确定如何从父代群体中按照某种方法选址个体遗传到下一代群众中的一个遗传运算。本算法采用由适应度对应的概率分布以轮盘赌确定。每个染色体的适应度函数值是模型中目标函数,即该算法的适应度函数

4)交叉算子

本算法交叉策略选择单点交叉方法。首先按照设定的交叉概率选择“枢纽序列”和“分配序列”各一对,在两序列中随机选取同一交叉点,通过交换交叉点的左右两部分构成新的子代个体。如果“枢纽序列”实施单点交叉后,子代个体中没有枢纽点,或者枢纽点的个数等于整个网络的节点个数,则舍弃这两类子代个体,对于“分配序列”的任意个体,如果由于“枢纽序列”的交叉原因,节点i分配的节点不是枢纽点,则节点i被重新分配距离其最近的其他枢纽点。

在图4-3中,在A1序列中节点3、7是枢纽点,A2序列中2、6是枢纽点。实施交叉算子后得到:子代(枢纽点是2和7)、子代(枢纽点是3和6);分配序列实施交叉算子后,得到子代,其中节点2、4、7需要重新分配,因为节点2和7在序列中已经不是枢纽点,同时也对中也要进行相应的调整,得到满足要求的分配序列。

5)变异算子

变异算子可以改变遗传算法的局部搜索能力和维持群体的多样性,避免出现早熟现象。本算法的变异算子实施在节点的重新安排阶段,考虑两种变异策略:移动和交换。

图4-3 交叉策略

移动变异:选择一个非枢纽点,随机分配给其他的枢纽点。如果该序列中只有一个枢纽点,则此类变异算子不能适用。

交换变异:随机选择两个非枢纽点并且进行交换。发生变异的序列至少需要有两个枢纽点和两个非枢纽点,如果序列中只有一个枢纽点或者只有一个非枢纽点,此类变异算子不能适用。

在本书的遗传算法中,均用到了这两类方法来选择个体,按照事先确定的变异率选择具有较好适应度函数值的个体进行变异。

6)算法终止规则

规则1:给定一个最大的遗传代数max GEN,算法迭代代数在达到max GEN时停止,输出最优适应度函数值。

规则2:给定在规定迭代次数内(GEN_C)适应度函数值改变的偏差度ε,如果超过规定次数GEN_C后,函数值改变值Δfitness(P)≤ε,算法终止并输出最优适应度函数值。

在算法迭代过程中,只需满足上述任何一项规则即可停止运算,输出最优适应度函数值,即模型的目标函数值,同时记录此刻的染色体,即表示Hub的最优选址方案和非枢纽点的最优分配方案。