禁忌搜索算法 2
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 T表 1,3
2 3
4,5 φ
4,5
5,3 ......
-7
-9 ......
禁忌搜索算法的实例 ④迭代3
编码:4-2-7-1-5-6-3 * C(x)=14 TEXT A(s,x)=C(x TEXT TEXT )=18
移动S(x) 4,5 5,3 7,1 △C(x) 6 2 0
1 2 3 T表 2,4 1,3 4,5
禁忌搜索算法的要素设计
禁忌长度的确定
禁忌长度是指被禁对象不允许被选取的迭代步数,一般是给被禁忌 对象x一个数l(称为禁忌长度),要求x在l步迭代内被禁,在禁忌表中 采用Tabu(x)=l记忆,每迭代一步,该指标做运算Tabu(x)=l-1,直到 Tabu(x)=0时解禁。关于禁忌长度l的选取,可归纳为以下几种情况。 (1)l为常数,可取l=10、l=n (n为领域中邻居的总个数)。这种规 则容易在算法中实现。 (2)l∈ lmin,lmax 。此时,l是可以变化的数,其变化的依据是 被禁对象的目标函数值和领域的结构。lmin、lmax是确定的数,确定的 常用方法是根据问题的规模N,限定变化区间 a N ,b N (0<a<b);也可 以用领域中邻居的个数n确定变化区间 a n ,b n (0<a<b)。 禁忌长度的选取同实际问题和算法设计者的经验有紧密联系,同时 它也会影响计算的复杂性,过短会造成循环的出现,过长又会造成计算 时间的增加。
禁忌搜索算法的步骤
Step1
选一个初始点x(x∈X),令x*=x,T=φ ,渴望水平A(s,x)=C(x*),迭代 指令k=0;
Step2
若N(x)\T=φ ,则停止;否则令K=K+1;若k>NG(其 中NG为最大迭 代数),则停止;
Step3
若C(sL(x))=Opt{C(s(x)),s(x)∈N(x)},若C(sL(x))<A(s,x),令 x=sL(x),转Step5(注:Step3的作用破禁检查)
终止准则
利用禁忌搜索算法求解无时限单向配送车辆优化调度问题时,算法 的终止准则可采用迭代一定步数终止的准则、频率控制准则、目标值变 化控制等准则。除以上准则外,还可以采用下述的目标值偏离程度终止 准则:记一个问题目标函数值的下界为ZLB,目标值为f(x),对给定的 充分小的正数e,当f x −ZLB≤e 时,终止计算,这表示目前计算得到 的解与最优解已经非常接近。
禁忌搜索算法的主要思路
算法的原理
禁忌搜索算法是解决组合优化问题的一种优化方法。该算法是局 部搜索算法的推广,其特点是采用禁技术,即用一个禁忌表记录下已经 到达过的局部最优点,在下一次搜索中,利用禁忌表中的信息不再或有 选择地搜索这些点,以此来挑出局部最优点。 在禁忌搜索算中,首先按照随机方法产生一个初始解作为当前解, 然后在当前解的领域中搜索若干个解,取其中的最优解作为新的当前解。 为了避免陷入局部最优解,这种优化方法允许一定的下山操作(使解的 质量变差)。另外,为了避免对已搜索过的局部最优解的重复,禁忌搜 索算法使用禁忌表记录已搜索的局部最优解的历史信息,这可在一定程 度上使搜索过程避开局部极值点,从而开辟新的搜索区域。
禁忌搜索算法的主要思路
算法的特点
禁忌——禁止重复前面的工作。跳出局部最优点。
禁忌搜索算法的要素设计
禁忌对象的确定
禁忌对象是指禁忌表中被禁的那些变化元素。由于解状态的变化 可以分为解的简单变化、解向量分量的变化和目标值变化三种情况,则 在确定禁忌对象时也有相对应的三种禁忌情况。一般来说,对解的简单 变化进行禁忌比另两种的受禁范围要小,因此可能早能造成计算时间的 增加,但其优点是提供了较大的搜索范围。 根据配送车辆优化调度问题的特点,可采用对解的简单变化进行禁 忌的方法。举例进行说明:当解从x变化到y时,y可能是局部最优解, 为了避开局部最优解,禁忌y这一解再度出现,可采用如下禁忌规则: 当y的领域中有比它更优的解时,选择更优的解;当y为其领域的局部最 优解时,不再选y,而选比y稍差的解。
禁忌搜索算法的实例
①初始表
初始编码:2-5-7-3-4-6-1 C(x)=10 x*=x A(s,x)=C(x*)=10
移动S(x) 5,4 7,4 3,6 2,3 △C(x) 6 4 2 0
1 2 3 T表 φ φ φ
T=φ
4,1
......
-1
......
禁忌搜索算法的实例
②迭代1
编码:2-4-7-3-5-6-1 C(x)=16 x*=x A(s,x)=C(x*)=16
移动S(x) 3 ,1 2 ,3 3 ,4 7 ,1 6 ,1 ...... △C(x) 2 1
1 T表 4,5 φ φ
-1 -2 -4 ......
2 3
禁忌搜索算法的实例 ③迭代2
编码:2-4-7-1-5-6-3 C(x)=18 x*=x A(s,x)=C(x*)=18
移动S(x) 1,3 2,4 7,6 △C(x) -2 -4 -6
禁忌搜索算法的步骤
Step4
若C(sL(x))=Opt{C(s(x)),s(x)∈N(x)\T},令x=sk(x);(注: Step4的作用邻域选优)
Step5
若C(x)<C(x*),令x*=x,C(x*)=C(x), A(s,x)=C(x*);(注:Step5的作用选优并记录历史最好点,更渴望 更新水平)
Step6
更新T表,转Step2.(注:x存入T表中的第一个位置)
禁忌搜索算法的实例
问题提出
由7层不同的绝缘材料构成的一种绝缘体,应如何排 列顺序,可获得做好的绝缘性能?
禁忌搜索算法的实例
2.算法设计
•编码方式:顺序编码 •初始值的产生:随机产生,如2-5-7-3-4-6-1 •适值函数:极大化目标值 •邻域移动方式:2-OPT,即两两交换 •其他参数:禁忌对象为邻域移动方式,T表长度设为3, NG设为5
-5 -6 -8 ......
2 3
禁忌搜索算法的实例 ⑥迭代5
编码:5-2-1-7-4-6-3 C(x)=20
T表 1 2 3 1,7 4,5 2,4
结论:迭代已到5辞,得到最优解 5-2-7-1-4-6-3和5-2-1-7-4-6-3 C(x*)=20
禁忌搜索算法
谢谢!
TEXT
1,3
2,6 ......
-3
-6 ......
禁忌搜索算法的实例 ⑤迭代4
编码:5-2-7-1-4-6-3 C(x)=20 x*=x A(s,x)=C(x*)=20
移动S(x) 7 ,1 4 ,3 6 ,3 5 ,4 2 ,6 ...... △C(x) 0 -3
1 T表 4,5 2,4 1,3
禁忌搜索算法的要素设计
候选集合的确定
候选集合由领域中的邻居组成,常规的方法是从领域中选择若干个 目标函数值或评价值最佳的邻居。 由于上述常规方法的计算量太大,一般不在领域的所有邻居中选择, 而是在领域中的一部分邻居中选择若干个目标值或评价值最佳的解;也 可以采用随机选取的方法实现部分邻居的选取。
禁忌搜索算法
软件三班 余莎莎 李小娟
LOGO
禁忌搜索算法
1
禁忌搜索算法的主要思路
算法的提出 算法的特点 算法的原理
2
禁忌搜索算法的要素设计
禁忌对象的确定 禁忌长度的确定 候选集合Βιβλιοθήκη Baidu确定 终止准则
3 4
禁忌搜索算法的步骤
禁忌搜索算法的实例
禁忌搜索算法的主要思路 算法的提出
人类在选择过程中具有记忆功能,比如走迷宫时,当发现有可能 又回到某个地点的时候总会有意识的避开先前选择的方向而选择其他 的可能性,这样就可以确定性的避开迂回搜索。 借鉴人类的智能思考特性,采用禁忌策略尽量避免迂回搜索就构 成了TS算法。 Glover在1997年提出TS。相对于LS,TS的优点是能够通过接受劣 解来逃离局优,在90年代除开始受到广泛的关注。
2 3
4,5 φ
4,5
5,3 ......
-7
-9 ......
禁忌搜索算法的实例 ④迭代3
编码:4-2-7-1-5-6-3 * C(x)=14 TEXT A(s,x)=C(x TEXT TEXT )=18
移动S(x) 4,5 5,3 7,1 △C(x) 6 2 0
1 2 3 T表 2,4 1,3 4,5
禁忌搜索算法的要素设计
禁忌长度的确定
禁忌长度是指被禁对象不允许被选取的迭代步数,一般是给被禁忌 对象x一个数l(称为禁忌长度),要求x在l步迭代内被禁,在禁忌表中 采用Tabu(x)=l记忆,每迭代一步,该指标做运算Tabu(x)=l-1,直到 Tabu(x)=0时解禁。关于禁忌长度l的选取,可归纳为以下几种情况。 (1)l为常数,可取l=10、l=n (n为领域中邻居的总个数)。这种规 则容易在算法中实现。 (2)l∈ lmin,lmax 。此时,l是可以变化的数,其变化的依据是 被禁对象的目标函数值和领域的结构。lmin、lmax是确定的数,确定的 常用方法是根据问题的规模N,限定变化区间 a N ,b N (0<a<b);也可 以用领域中邻居的个数n确定变化区间 a n ,b n (0<a<b)。 禁忌长度的选取同实际问题和算法设计者的经验有紧密联系,同时 它也会影响计算的复杂性,过短会造成循环的出现,过长又会造成计算 时间的增加。
禁忌搜索算法的步骤
Step1
选一个初始点x(x∈X),令x*=x,T=φ ,渴望水平A(s,x)=C(x*),迭代 指令k=0;
Step2
若N(x)\T=φ ,则停止;否则令K=K+1;若k>NG(其 中NG为最大迭 代数),则停止;
Step3
若C(sL(x))=Opt{C(s(x)),s(x)∈N(x)},若C(sL(x))<A(s,x),令 x=sL(x),转Step5(注:Step3的作用破禁检查)
终止准则
利用禁忌搜索算法求解无时限单向配送车辆优化调度问题时,算法 的终止准则可采用迭代一定步数终止的准则、频率控制准则、目标值变 化控制等准则。除以上准则外,还可以采用下述的目标值偏离程度终止 准则:记一个问题目标函数值的下界为ZLB,目标值为f(x),对给定的 充分小的正数e,当f x −ZLB≤e 时,终止计算,这表示目前计算得到 的解与最优解已经非常接近。
禁忌搜索算法的主要思路
算法的原理
禁忌搜索算法是解决组合优化问题的一种优化方法。该算法是局 部搜索算法的推广,其特点是采用禁技术,即用一个禁忌表记录下已经 到达过的局部最优点,在下一次搜索中,利用禁忌表中的信息不再或有 选择地搜索这些点,以此来挑出局部最优点。 在禁忌搜索算中,首先按照随机方法产生一个初始解作为当前解, 然后在当前解的领域中搜索若干个解,取其中的最优解作为新的当前解。 为了避免陷入局部最优解,这种优化方法允许一定的下山操作(使解的 质量变差)。另外,为了避免对已搜索过的局部最优解的重复,禁忌搜 索算法使用禁忌表记录已搜索的局部最优解的历史信息,这可在一定程 度上使搜索过程避开局部极值点,从而开辟新的搜索区域。
禁忌搜索算法的主要思路
算法的特点
禁忌——禁止重复前面的工作。跳出局部最优点。
禁忌搜索算法的要素设计
禁忌对象的确定
禁忌对象是指禁忌表中被禁的那些变化元素。由于解状态的变化 可以分为解的简单变化、解向量分量的变化和目标值变化三种情况,则 在确定禁忌对象时也有相对应的三种禁忌情况。一般来说,对解的简单 变化进行禁忌比另两种的受禁范围要小,因此可能早能造成计算时间的 增加,但其优点是提供了较大的搜索范围。 根据配送车辆优化调度问题的特点,可采用对解的简单变化进行禁 忌的方法。举例进行说明:当解从x变化到y时,y可能是局部最优解, 为了避开局部最优解,禁忌y这一解再度出现,可采用如下禁忌规则: 当y的领域中有比它更优的解时,选择更优的解;当y为其领域的局部最 优解时,不再选y,而选比y稍差的解。
禁忌搜索算法的实例
①初始表
初始编码:2-5-7-3-4-6-1 C(x)=10 x*=x A(s,x)=C(x*)=10
移动S(x) 5,4 7,4 3,6 2,3 △C(x) 6 4 2 0
1 2 3 T表 φ φ φ
T=φ
4,1
......
-1
......
禁忌搜索算法的实例
②迭代1
编码:2-4-7-3-5-6-1 C(x)=16 x*=x A(s,x)=C(x*)=16
移动S(x) 3 ,1 2 ,3 3 ,4 7 ,1 6 ,1 ...... △C(x) 2 1
1 T表 4,5 φ φ
-1 -2 -4 ......
2 3
禁忌搜索算法的实例 ③迭代2
编码:2-4-7-1-5-6-3 C(x)=18 x*=x A(s,x)=C(x*)=18
移动S(x) 1,3 2,4 7,6 △C(x) -2 -4 -6
禁忌搜索算法的步骤
Step4
若C(sL(x))=Opt{C(s(x)),s(x)∈N(x)\T},令x=sk(x);(注: Step4的作用邻域选优)
Step5
若C(x)<C(x*),令x*=x,C(x*)=C(x), A(s,x)=C(x*);(注:Step5的作用选优并记录历史最好点,更渴望 更新水平)
Step6
更新T表,转Step2.(注:x存入T表中的第一个位置)
禁忌搜索算法的实例
问题提出
由7层不同的绝缘材料构成的一种绝缘体,应如何排 列顺序,可获得做好的绝缘性能?
禁忌搜索算法的实例
2.算法设计
•编码方式:顺序编码 •初始值的产生:随机产生,如2-5-7-3-4-6-1 •适值函数:极大化目标值 •邻域移动方式:2-OPT,即两两交换 •其他参数:禁忌对象为邻域移动方式,T表长度设为3, NG设为5
-5 -6 -8 ......
2 3
禁忌搜索算法的实例 ⑥迭代5
编码:5-2-1-7-4-6-3 C(x)=20
T表 1 2 3 1,7 4,5 2,4
结论:迭代已到5辞,得到最优解 5-2-7-1-4-6-3和5-2-1-7-4-6-3 C(x*)=20
禁忌搜索算法
谢谢!
TEXT
1,3
2,6 ......
-3
-6 ......
禁忌搜索算法的实例 ⑤迭代4
编码:5-2-7-1-4-6-3 C(x)=20 x*=x A(s,x)=C(x*)=20
移动S(x) 7 ,1 4 ,3 6 ,3 5 ,4 2 ,6 ...... △C(x) 0 -3
1 T表 4,5 2,4 1,3
禁忌搜索算法的要素设计
候选集合的确定
候选集合由领域中的邻居组成,常规的方法是从领域中选择若干个 目标函数值或评价值最佳的邻居。 由于上述常规方法的计算量太大,一般不在领域的所有邻居中选择, 而是在领域中的一部分邻居中选择若干个目标值或评价值最佳的解;也 可以采用随机选取的方法实现部分邻居的选取。
禁忌搜索算法
软件三班 余莎莎 李小娟
LOGO
禁忌搜索算法
1
禁忌搜索算法的主要思路
算法的提出 算法的特点 算法的原理
2
禁忌搜索算法的要素设计
禁忌对象的确定 禁忌长度的确定 候选集合Βιβλιοθήκη Baidu确定 终止准则
3 4
禁忌搜索算法的步骤
禁忌搜索算法的实例
禁忌搜索算法的主要思路 算法的提出
人类在选择过程中具有记忆功能,比如走迷宫时,当发现有可能 又回到某个地点的时候总会有意识的避开先前选择的方向而选择其他 的可能性,这样就可以确定性的避开迂回搜索。 借鉴人类的智能思考特性,采用禁忌策略尽量避免迂回搜索就构 成了TS算法。 Glover在1997年提出TS。相对于LS,TS的优点是能够通过接受劣 解来逃离局优,在90年代除开始受到广泛的关注。