禁忌搜索算法公式
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.2基于均衡原理的LRP算法设计
6.2.1基于均衡原理的LRP算法整体流程
基于均衡原理的LRP算法整体流程如下:
step1:初始化,设置整体收敛性判断参数 ;
step2:随机生成一组LRP选址问题的解 ,求出相应的目标值 ;
step3:根据上层解 ,利用Frank-Wolfe算法(见6.2.3节)求出各客户的
如果经过某邻域操作得到比当前最好解更好的解,那么不管该邻域是否被禁忌,都采用该邻域作为当前邻域。
终止条件:如果连续 代最优解没有改变,则终止循环,算法结束。
5.关键步骤
step1:初始化各参数,搜索循环次数 ;
step2:形成初始解,令初始解为当前解,其解值为当前最优解值 ;
step3: ;
step4:如果连续 代最优值没有改变,转step 12,否则继续;
,
cnij
ij
?
{:,}
,
d nij
ij
?
step4:确定迭代步长λ:
4.1确定满足()0的λ合理取值范围[λbot,λtop];
,,,
+?n>
ij
n
ij
n
ij
xλdx
step11:判断第 个邻域解是否违反禁忌规则,是则转 ;否则令其为当前解;转step3;
step12:终止。
6.2.3物流配送均衡模型的Frank-Wolfe算法设计
在得到上层的解 后,本章采用Frank-Wolfe算法解下层物流配送均衡模型。该法是用线性规划逐步迭代逼近非线性规划的方法,在每步迭代中,先找到一个目标函数的最速下降方向,然后再找到一个最优步长,在最速方向上截取最优步长得到下一步迭代的起点,重复迭代直到找到最优解。
3.约束的处理
本章LRP模型上层约束包括分厂数量约束和总投资额约束。对于分厂数量限制,本章在邻域操作中加以控制:如果当前解经过某邻域操作,违反分厂数量限制,则取消此邻域操作。对于总投资额约束,本章采用惩罚函数的方式进行处理,把超出约束的量乘以一个惩罚系数,作为一个惩罚项加入到解的适应度中。上层目标函数的适应度 可以表示为:
式中 表示总投资额约束的惩罚系数。
4.禁忌表和终止准则
根据本禁忌算法邻域性质的不同,本章设计了两种禁忌表:局部禁忌表和全局禁忌表。局部禁忌表存储的是自身取反、2-swap交换邻域操作的对象,即如果当前解采用了某种邻域,那么在接下来的 个循环内不允许进行该邻域的逆操作。全局禁忌表存储的是寻优过程中每个循环的解值,此禁忌表只在选用2-opt交换操作时采用,避免进行重复搜索,加快寻优速度。
1).自身取反。为单点操作,即选择解中 点,对该点的值取反;
2).2-swap交换。为双点操作,选择解中两点进行交换,其它位置的值不变。例如解001101中的2、6点被选中,则2-swap交换后变为:011100;
3).2-opt交换。为多点操作,选择解中两点进行交换,同时两点之间的值逆序改变。例如解001101中的2、6点被选中,则2-swap交换后变为:010110;
1.解的构造和初始解的生成
采用二进制编码,编码长度为潜在的配送中心地点数量 ,对于编码中位置 ,1表示选中 点作为厂址,0表示没有选中。对于解中任意点 ,产生随机数 ,如果 ,则置 点为0,否则置1。重复以上步骤m次,得到初始解。
2.邻域的搜索
根据本章选址问题百度文库特点,设计了三种邻域操作,分别为自身取反、2-swap交换和2-opt交换。
4).自身取反、2-swap交换操作能较快的搜索到局部最优解,2-opt交换则能扩大搜索空间。自身取反、2-swap交换是每个循环都进行的操作,进行局部寻优。当 代最优解没有变化时,进行一次2-opt交换操作,跳出局部最优点。
将以上三种邻域结合,不仅保持了TS局部”爬山”能力强的优点,同时也让它的全局寻优能力大大加强。
货物总量 及客户在各配送中心的货物均衡分配量 ;
step4:根据D及 运用禁忌算法求解VRP问题(见6.2.4节),得出各配送
中对各客户的单位货物配送费用 ;
step5:根据 及公式(6-8)求出下层 与 的关系 ;
step6:将LRP模型上层目标函数中用代替,并代入下层求得的 和 ,运用禁忌算法求得新的LRP选址规划的解 及目标函数 (见6.2.2节);
step5:如果进行2-opt邻域操作后,连续 代最优值没有改变,继续,转step7;
step6:搜索当前解的2-opt邻域,转step8;
step7:搜索当前解的自身取反和2-swap两种邻域;
step8:按邻域解值降序排列各邻域,令 ,第 个邻域解值为 ;
step9: ;
step10:判断 是否大于 ,是则令 ,令第 个邻域解为当前解,转step3;否则继续;
step7:如果 ,转step8,算法结束, 、 为LRP的最终解和解值;否则 ,转step3;
step8:算法结束。
6.2.2LRP选址规划的禁忌算法
模型上层是基于0-1整数规划的选址问题。由于选址问题是NP-hard,如果
用精确算法求解,对节点数目的限制将有严格的要求。本章根据模型的特点,
采用禁忌算法优化产业选址问题。
Frank-Wolfe算法解物流配送均衡模型详细步骤如下:
step1:初始化:按照 ,实行一次全有全无分配,得到客户分配到各配送中心的货物量;令 ;
step2:更新各配送中心的单位货物服务费用: ;
step3:寻找下一步的迭代方向:按照实行一次全有全无分配,得
到一组各配送中心的附加的货物服务量;
{:,}
6.2.1基于均衡原理的LRP算法整体流程
基于均衡原理的LRP算法整体流程如下:
step1:初始化,设置整体收敛性判断参数 ;
step2:随机生成一组LRP选址问题的解 ,求出相应的目标值 ;
step3:根据上层解 ,利用Frank-Wolfe算法(见6.2.3节)求出各客户的
如果经过某邻域操作得到比当前最好解更好的解,那么不管该邻域是否被禁忌,都采用该邻域作为当前邻域。
终止条件:如果连续 代最优解没有改变,则终止循环,算法结束。
5.关键步骤
step1:初始化各参数,搜索循环次数 ;
step2:形成初始解,令初始解为当前解,其解值为当前最优解值 ;
step3: ;
step4:如果连续 代最优值没有改变,转step 12,否则继续;
,
cnij
ij
?
{:,}
,
d nij
ij
?
step4:确定迭代步长λ:
4.1确定满足()0的λ合理取值范围[λbot,λtop];
,,,
+?n>
ij
n
ij
n
ij
xλdx
step11:判断第 个邻域解是否违反禁忌规则,是则转 ;否则令其为当前解;转step3;
step12:终止。
6.2.3物流配送均衡模型的Frank-Wolfe算法设计
在得到上层的解 后,本章采用Frank-Wolfe算法解下层物流配送均衡模型。该法是用线性规划逐步迭代逼近非线性规划的方法,在每步迭代中,先找到一个目标函数的最速下降方向,然后再找到一个最优步长,在最速方向上截取最优步长得到下一步迭代的起点,重复迭代直到找到最优解。
3.约束的处理
本章LRP模型上层约束包括分厂数量约束和总投资额约束。对于分厂数量限制,本章在邻域操作中加以控制:如果当前解经过某邻域操作,违反分厂数量限制,则取消此邻域操作。对于总投资额约束,本章采用惩罚函数的方式进行处理,把超出约束的量乘以一个惩罚系数,作为一个惩罚项加入到解的适应度中。上层目标函数的适应度 可以表示为:
式中 表示总投资额约束的惩罚系数。
4.禁忌表和终止准则
根据本禁忌算法邻域性质的不同,本章设计了两种禁忌表:局部禁忌表和全局禁忌表。局部禁忌表存储的是自身取反、2-swap交换邻域操作的对象,即如果当前解采用了某种邻域,那么在接下来的 个循环内不允许进行该邻域的逆操作。全局禁忌表存储的是寻优过程中每个循环的解值,此禁忌表只在选用2-opt交换操作时采用,避免进行重复搜索,加快寻优速度。
1).自身取反。为单点操作,即选择解中 点,对该点的值取反;
2).2-swap交换。为双点操作,选择解中两点进行交换,其它位置的值不变。例如解001101中的2、6点被选中,则2-swap交换后变为:011100;
3).2-opt交换。为多点操作,选择解中两点进行交换,同时两点之间的值逆序改变。例如解001101中的2、6点被选中,则2-swap交换后变为:010110;
1.解的构造和初始解的生成
采用二进制编码,编码长度为潜在的配送中心地点数量 ,对于编码中位置 ,1表示选中 点作为厂址,0表示没有选中。对于解中任意点 ,产生随机数 ,如果 ,则置 点为0,否则置1。重复以上步骤m次,得到初始解。
2.邻域的搜索
根据本章选址问题百度文库特点,设计了三种邻域操作,分别为自身取反、2-swap交换和2-opt交换。
4).自身取反、2-swap交换操作能较快的搜索到局部最优解,2-opt交换则能扩大搜索空间。自身取反、2-swap交换是每个循环都进行的操作,进行局部寻优。当 代最优解没有变化时,进行一次2-opt交换操作,跳出局部最优点。
将以上三种邻域结合,不仅保持了TS局部”爬山”能力强的优点,同时也让它的全局寻优能力大大加强。
货物总量 及客户在各配送中心的货物均衡分配量 ;
step4:根据D及 运用禁忌算法求解VRP问题(见6.2.4节),得出各配送
中对各客户的单位货物配送费用 ;
step5:根据 及公式(6-8)求出下层 与 的关系 ;
step6:将LRP模型上层目标函数中用代替,并代入下层求得的 和 ,运用禁忌算法求得新的LRP选址规划的解 及目标函数 (见6.2.2节);
step5:如果进行2-opt邻域操作后,连续 代最优值没有改变,继续,转step7;
step6:搜索当前解的2-opt邻域,转step8;
step7:搜索当前解的自身取反和2-swap两种邻域;
step8:按邻域解值降序排列各邻域,令 ,第 个邻域解值为 ;
step9: ;
step10:判断 是否大于 ,是则令 ,令第 个邻域解为当前解,转step3;否则继续;
step7:如果 ,转step8,算法结束, 、 为LRP的最终解和解值;否则 ,转step3;
step8:算法结束。
6.2.2LRP选址规划的禁忌算法
模型上层是基于0-1整数规划的选址问题。由于选址问题是NP-hard,如果
用精确算法求解,对节点数目的限制将有严格的要求。本章根据模型的特点,
采用禁忌算法优化产业选址问题。
Frank-Wolfe算法解物流配送均衡模型详细步骤如下:
step1:初始化:按照 ,实行一次全有全无分配,得到客户分配到各配送中心的货物量;令 ;
step2:更新各配送中心的单位货物服务费用: ;
step3:寻找下一步的迭代方向:按照实行一次全有全无分配,得
到一组各配送中心的附加的货物服务量;
{:,}