![管理数学实验—— MATLAB在管理运筹中的应用7_管理数学实验_智能优化计算_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/67af14e8-b525-4dcf-be17-d3710faee44e/67af14e8-b525-4dcf-be17-d3710faee44e1.gif)
![管理数学实验—— MATLAB在管理运筹中的应用7_管理数学实验_智能优化计算_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/67af14e8-b525-4dcf-be17-d3710faee44e/67af14e8-b525-4dcf-be17-d3710faee44e2.gif)
![管理数学实验—— MATLAB在管理运筹中的应用7_管理数学实验_智能优化计算_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/67af14e8-b525-4dcf-be17-d3710faee44e/67af14e8-b525-4dcf-be17-d3710faee44e3.gif)
![管理数学实验—— MATLAB在管理运筹中的应用7_管理数学实验_智能优化计算_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/67af14e8-b525-4dcf-be17-d3710faee44e/67af14e8-b525-4dcf-be17-d3710faee44e4.gif)
![管理数学实验—— MATLAB在管理运筹中的应用7_管理数学实验_智能优化计算_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/67af14e8-b525-4dcf-be17-d3710faee44e/67af14e8-b525-4dcf-be17-d3710faee44e5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Zxf.sme.bit7.1 模拟退火算法模拟退火算法7.2 遗传算法遗传算法7.3 蚁群体智能蚁群体智能7.4 粒子群算法粒子群算法7 7 智能优化计算智能优化计算Zxf.sme.bit7.1 7.1 模拟退火算法模拟退火算法7.1.1 模拟退火算法简介模拟退火算法简介 模拟退火算法主要用于解决组合优化问题,它是模拟物理中晶体物质的退模拟退火算法主要用于解决组合优化问题,它是模拟物理中晶体物质的退火过程而开发的一种优化算法。在对固体物质进行退火处理时,通常先将火过程而开发的一种优化算法。在对固体物质进行退火处理时,通常先将它加温熔化,使其中的粒子可自由运动,然后随着温度的逐渐下降,粒子它加温
2、熔化,使其中的粒子可自由运动,然后随着温度的逐渐下降,粒子也逐渐形成了低能态的晶格。若在凝结点附近的温度下降速率足够慢,则也逐渐形成了低能态的晶格。若在凝结点附近的温度下降速率足够慢,则固体物质一定会形成最低能态的基态。对于组合优化问题来说,它也有这固体物质一定会形成最低能态的基态。对于组合优化问题来说,它也有这样的类似过程。组合优化问题解空间中的每一点都代表一个具有不同目标样的类似过程。组合优化问题解空间中的每一点都代表一个具有不同目标函数值的解。所谓优化,就是在解空间中寻找目标函数最小(大)解的过函数值的解。所谓优化,就是在解空间中寻找目标函数最小(大)解的过程。若把目标函数看成能量函数,
3、某一控制参数视为温度程。若把目标函数看成能量函数,某一控制参数视为温度T,解空间当作,解空间当作形态空间,那么寻找基态的过程也就是求目标函数极小值的优化过程。形态空间,那么寻找基态的过程也就是求目标函数极小值的优化过程。Zxf.sme.bit 先给定以相对位置表征的初始状态先给定以相对位置表征的初始状态 i ,作为固体的当,作为固体的当前状态,该状态的能量为前状态,该状态的能量为 。然后随机选取位移产生一。然后随机选取位移产生一微小变化,得到一个新状态微小变化,得到一个新状态 j ,新状态的能量是,新状态的能量是 。 如果如果 ,则该新状态就可作为,则该新状态就可作为“重要重要”状态状态, 如
4、果如果 ,则考虑到热运动的影响,该新状态是否为,则考虑到热运动的影响,该新状态是否为“重要重要” 状态需要根据固体处于该状态的概率来判断。状态需要根据固体处于该状态的概率来判断。 设固体处于状态设固体处于状态 i 与状态与状态 j 的概率比值为的概率比值为r,r是一个小于是一个小于1的数,用随机数产生器产生一个的数,用随机数产生器产生一个0,1区间的随机数区间的随机数。 若若 r ,则新状态作为重要状态,否则舍去。,则新状态作为重要状态,否则舍去。 jEjiEEjiEEiEjEijEEijEEZxf.sme.bit 若新状态若新状态 j 是重要状态是重要状态,就以就以 j 取代取代 i 成为当
5、前状态,否则仍以成为当前状态,否则仍以 i 为当前为当前状态,再重复以上新状态的产生过程,在固体状态经过大量变换(常状态,再重复以上新状态的产生过程,在固体状态经过大量变换(常称之为迁移)后,系统趋于能量较低的平衡状态。称之为迁移)后,系统趋于能量较低的平衡状态。 上述接受新状态的准则称为上述接受新状态的准则称为Metropolis准则,相应的算法称为准则,相应的算法称为Metropolis算法。研究表明一般情况下算法。研究表明一般情况下 Metropolis算法计算量明显少于算法计算量明显少于 Monte Carlo算法。算法。 通过对固体退火过程的研究可知,高温状态下的物质降温时其内能随通
6、过对固体退火过程的研究可知,高温状态下的物质降温时其内能随之下降,如果降温过程充分缓慢,则在降温过程中物质体系始终处于之下降,如果降温过程充分缓慢,则在降温过程中物质体系始终处于平衡状态。从而降到某一低温时其内能可达最小,称这种降温为退火平衡状态。从而降到某一低温时其内能可达最小,称这种降温为退火过程。模拟退火过程的寻优方法称为过程。模拟退火过程的寻优方法称为模拟退火模拟退火(Simulated anneating,SA)算法。)算法。 Zxf.sme.bit (1) 模拟退火算法(模拟退火算法(SA) 设设 为所有的组合状态,为所有的组合状态,C: 为非负目为非负目标函数,即标函数,即 ,反
7、映了取状态,反映了取状态 为解的代价,则组合为解的代价,则组合优化问题可以形式地描述为寻找优化问题可以形式地描述为寻找 ,使,使 将状态将状态 看成是某一物质体系的微观状态,而将看成是某一物质体系的微观状态,而将 看成该看成该物质体系在状态物质体系在状态 下的能量,并用控制参数下的能量,并用控制参数 表示为让温度表示为让温度 从一个足够高的值慢慢下降,对每一从一个足够高的值慢慢下降,对每一 用用Metropolis采样法模采样法模拟该体系在此拟该体系在此 下的热平衡状态,即下的热平衡状态,即对当前状态对当前状态 做随机扰动做随机扰动以产生一个新的状态以产生一个新的状态 ,计算增量:,计算增量:
8、 C12, , ,kSS SSSR 0iC S iS*SSiSSCSCSi min*iS iC SiSTTTTSSZxf.sme.bit 并以概率并以概率 接受接受 作为新的状态,当这样的随机作为新的状态,当这样的随机扰动重复的次数足够多后,系统将达到该温度下的平衡状态,扰动重复的次数足够多后,系统将达到该温度下的平衡状态,且服从且服从Boltzmann分布。这里分布。这里b即为即为Boltzmann常数。常数。 上述上述Metropolis采样过程与退火过程可通过下列步骤来实现。采样过程与退火过程可通过下列步骤来实现。 expC bTSZxf.sme.bit (2)退火过程实现算法()退火过
9、程实现算法(AP) 1) 任选一初始状态任选一初始状态 作为初始解作为初始解 ,并设初始温度,并设初始温度为为 ,令,令 ; 2) 令令 ,以,以 和和 调用调用Metropolis采样算法,然后返回采样算法,然后返回到当前解到当前解 ; 3) 按一定的方式将按一定的方式将 降温,即令降温,即令 4) 检查退火过程是否结束,结束转至检查退火过程是否结束,结束转至5),否则转到),否则转到 2); 5) 以当前解以当前解 作为最优解输出。作为最优解输出。0S 00SS0T0iiT TiSTiSST11,1;iiiT T TT i i iSZxf.sme.bit (3)Metropolis采样算法
10、(采样算法(M法)法) 用用AP算法调用当前解算法调用当前解 和和 的过程如下:的过程如下:1)令令 时的当前解为时的当前解为 ,而在温度,而在温度 下进行以下步骤;下进行以下步骤;2) 按某一规定方式根据当前解按某一规定方式根据当前解 所处的状态所处的状态 ,产生一个邻近子,产生一个邻近子集集 ,由,由 随机产生一个新的状态随机产生一个新的状态 以作为一个当以作为一个当前解的候选解,并计算前解的候选解,并计算3)若若 ,则接受,则接受 作为下一个当前解;若作为下一个当前解;若 则按概率则按概率 接受接受 作为下一个当前解;作为下一个当前解;4)若若 被接受,则令被接受,则令 。否则令。否则令
11、 ;5) 令令 ,判断是否满足收敛准则,判断是否满足收敛准则6),否则回到,否则回到 2);6) 将当前解将当前解 返回调用它的返回调用它的AP算法。算法。TS0k 0SST S kS N S k N S kS CC SC S k0C0CSSS1S kS1( )S kS k expC bT1k k S kZxf.sme.bit7.1.2 几种典型问题的模拟退火算法几种典型问题的模拟退火算法 模拟退火算法是依据模拟退火算法是依据Metropolis准则接受新解,因此除接受优化准则接受新解,因此除接受优化解外,还在一个限定范围内接受劣解,这正是模拟退火算法与局部搜解外,还在一个限定范围内接受劣解,
12、这正是模拟退火算法与局部搜索算法的本质区别。索算法的本质区别。 Ti 较大,可能接受一些较差的劣解。随着较大,可能接受一些较差的劣解。随着 Ti 的减的减小,只能接受较好的可行解。最后在小,只能接受较好的可行解。最后在 Ti 趋于趋于0 时,就只接受较优的可时,就只接受较优的可行解了,这就使模拟退火有可能从局部最优的行解了,这就使模拟退火有可能从局部最优的“陷阱陷阱”中跳出来,从中跳出来,从而求得整体最优解。研究表明,对大多数组合优化问题而言,模拟退而求得整体最优解。研究表明,对大多数组合优化问题而言,模拟退火算法要优于局部搜索算法。下面仅对几个典型问题给出一个用迭代火算法要优于局部搜索算法。
13、下面仅对几个典型问题给出一个用迭代方法实现的算法描述,以揭示其建立数学模型和新解产生的基本求解方法实现的算法描述,以揭示其建立数学模型和新解产生的基本求解方法。方法。 Zxf.sme.bit 旅行商问题(旅行商问题(TSP) 设有设有n个城市和距离矩阵个城市和距离矩阵D= ,其中,其中 表示城市表示城市 到到城市城市 的距离,的距离, 则问题是要找遍访每个城市恰好一次的则问题是要找遍访每个城市恰好一次的一条回路,且其路径长度为最短。一条回路,且其路径长度为最短。求解的模拟退火算法描述如下:求解的模拟退火算法描述如下: (1)解空间)解空间 解空间解空间 可表为可表为 的所有循环排
14、列的集合,即的所有循环排列的集合,即 其中每一个循环排列表示遍访其中每一个循环排列表示遍访n个城市的一条回路,初始解可个城市的一条回路,初始解可选为选为 。ijdijdijS1,2,n 的循环排列,为nkkkkkSnn21,|,1211,2,nZxf.sme.bit (2)目标函数)目标函数 此时目标函数即为访问所有城市的路径长度或代价函数此时目标函数即为访问所有城市的路径长度或代价函数的极小值,即的极小值,即 其中其中 。而一次迭代步骤由下列三步构成。而一次迭代步骤由下列三步构成。 (3) 新解的产生新解的产生 新解可通过分别或交替使用以下两种方法来产生。新解可通过分别或交替使用以下两种方法
15、来产生。 1) 2变换法变换法 任选序号任选序号 。交换。交换 与与 之间的访问顺序,之间的访问顺序,此时新路径为(不妨设此时新路径为(不妨设 ):): (*)nikkniidkkf111,min11nkk,u vvuuv11111vvvuunukkkkk kkkZxf.sme.bit1111uvwwnuvkkkkkkkk 2) 3变换法变换法 任选序号任选序号 和和 ,将将 和和 之间的路径插到之间的路径插到 之后访问,对应的新路径为(设之后访问,对应的新路径为(设 ):): (*) 在实际中经常将上述两种方法综合交替使用。在实际中经常将上述两种方法综合交替使用。 (4)代价函数差)代价函数
16、差 相应于新解(相应于新解(*)和()和(*)式的代价函数的差分别满足:)式的代价函数的差分别满足: ( )和和, u vwwvuu v w 11111111uvu vi iuuv viinnkkk kkkkkk kk ki ui ufdddddd 111111uvw uv wuuv vw wkkk kk kkkk kk kfdddddd Zxf.sme.bit特别地,当问题对称即距离矩阵特别地,当问题对称即距离矩阵D= 为对称矩阵时,为对称矩阵时,( )式可简化为:)式可简化为: (5)接受准则)接受准则 根据以上的分析,即可写出相应的算法。根据以上的分析,即可写出相应的算法。ijd 111
17、1uvu vuuv vkkk kkkk kfdddd ,其他)/exp(0,1TffpZxf.sme.bit 最大截问题(最大截问题(MCP) 给定带权图给定带权图 ,权矩阵为,权矩阵为 。要将。要将 划分为子划分为子集集 和和 ,使,使 中所有顶点分属中所有顶点分属 和和 的边的权之和最大。的边的权之和最大。 模拟退火算法描述为:模拟退火算法描述为: (1)解空间解空间 解空间可表示为集解空间可表示为集 的所有划分为两个子集的所有划分为两个子集 和和 的分划的分划 的集合,即的集合,即 其中分划其中分划 ( ; ),表示顶点),表示顶点 的初始解选为的初始解选为 , 。,GV
18、E ijWwVV0V0V1V1VV0V1V的一个分划和划分为为将10|VVVS ij1,2,inijvV 0i1,2,in0,1j Zxf.sme.bit(2) 目标函数目标函数 直接取分划所得到的截量直接取分划所得到的截量 其中其中 ,求其最大值。,求其最大值。(3) 新解新解 任选一顶点任选一顶点 ,将其从目前子集移到另一子集中,将其从目前子集移到另一子集中去,即去,即 。(4) 目标函数差目标函数差 根据目标函数与产生新解的方法可知,相应根据目标函数与产生新解的方法可知,相应于新解的目标函数差为于新解的目标函数差为(5) 接受准则接受准则 由于由于MCP为最大优化问题,所以接受准则为:为
19、最大优化问题,所以接受准则为: ,uvfw uv 1uu u V uvuvvuvufww 否则,/exp0, 1TffPZxf.sme.bit 0/1 背包问题(背包问题(ZKP) 一个可装质量一个可装质量M的背包及的背包及n件物品,物品件物品,物品 的质量和价值分别的质量和价值分别为为 和和 ,要选若干件物品装入背包,使其价值之和最大。,要选若干件物品装入背包,使其价值之和最大。 模拟退火算法可描述如下:模拟退火算法可描述如下:(1)解空间解空间 0/1背包问题是一个有约束的优化问题,因此,限背包问题是一个有约束的优化问题,因此,限定解空间为所有可行解的集合,即定解空间为所有可
20、行解的集合,即 (2)目标函数目标函数 求下列函数的最大值:求下列函数的最大值: s.t. iiwic 1 , 0,|,1121innnxMxwxwxxxSnnnxcxcxcxxxf221121, 1 , 0,11innxMxwxwZxf.sme.bit(3)新解的产生新解的产生 随机选取物品随机选取物品 ,若,若 不在背包中,则不在背包中,则将其直接装入背包,或同时从背包中随机取出另一件物将其直接装入背包,或同时从背包中随机取出另一件物品品 ;若;若 已在背包中,则将其取出,并同时随机装入已在背包中,则将其取出,并同时随机装入另一物品另一物品 ,即,即 ,且(或),且(或) 。(4)背包价值
21、差与质量差背包价值差与质量差价值差:价值差: 质量差:质量差: iijij1iixx 1,jjxx ij 装入取出而,将物品取出装入而,将物品直接装入将物品jiccjiccicfijjii,装入取出而,将物品取出装入而,将物品直接装入,将物品jiwwjiwwiwmijjiiZxf.sme.bit(5)接受准则接受准则 1.3 算法程序及算例算法程序及算例采用模拟退火算法计算31个城市之间的TSP问题,需要提供的信息是31个城市的位置坐标,或31个城市间的距离矩阵,算例的MATLAB代码如下:0,1,0exp/,mmMPmmMff T 其他Zxf.sme.bit% 开始模块:准备输入数据,调用模
22、拟退火算法函数,输出结果。% 31个城市位置对应的(x,y)坐标组成31行2列矩阵CitySite,CitySite=1304 2312; 3639 1315; 4177 2244; 3712 1399; 3488 1535; 3326 1556;. 3238 1229; 4196 1044; 4312 790; 4386 570; 3007 1970; 2562 1756;. 2788 1491; 2381 1676; 1332 695; 3715 1678; 3918 2179; 4061 2370;. 3780 2212; 3676 2578; 4029 2838; 4263 2931;
23、 3429 1908; 3507 2376;. 3394 2643; 3439 3201; 2935 3240; 3140 3550; 2545 2357; 2778 2826;. 2370 2975;% 调用模拟退火算法求解TSP的主函数BestPath,totalLength = Fun_SAA_TSP(CitySite);Zxf.sme.bitfunction BestPath,totalLength = Fun_SAA_TSP(Site,DisMat) % 模拟退火算法求解TSP问题的主函数%输出参数:% BestPath 最优路径; % totalLength 路径的总长度;%输入参
24、数:% Site n个城市对应地点坐标的n2矩阵 % DisMat n个城市地点间实际距离nn矩阵 %程序主体部分参数:% DM n个城市之间的的距离矩阵 %模拟退火运算的控制参数T = 1e3; % 初始温度Tstop = 1e-6; % 终止温度Method = 2; % 新路径生产方法 tic % 1、求解TSP问题Zxf.sme.bitfunction BestPath,totalLength = Fun_SAA_TSP(Site,DisMat)% 1、求解TSP问题n,m = size(Site); if nargin =2 lengthM = length(DisMat); DM
25、= DisMat; % n个城市之间的的实际距离矩阵 if (lengthM = n) disp(输入数据不一致!); return endelseif nargin =1% 将城市的坐标矩阵转换为邻接距矩阵 DM = sqrt(Site(:,ones(1,n) - Site(:,ones(1,n).2 + . (Site(:,2*ones(1,n) - Site(:,2*ones(1,n).2); % 计算n个城市间的直线距离矩阵end BestPath = 1,randperm(n-1)+1; % 路径:初始路径totalLength = sumLen_TSP(DM,BestPath);
26、% 路径的总距离:初始路径的总距离Best_Path = BestPath;Best_totalLength = totalLength; figure(1) % 绘制绘制温度与路径长度的曲线的图形窗口 title(温度与路径长度的变化曲线); xlabel(温度);ylabel(路径长度); hold onZxf.sme.bitstableCnt = 0;while T=Tstop stableCnt = 0; % 连续未改变次数 MaxStableCnt = 22 - floor(log(T); % 当前温度下目标函数值最大连续不变次数 plot(T,totalLength,b*) % 绘
27、制温度与路径长度的关系变化情况 while stableCntMaxStableCnt NewPath = NewPath_TSP_SAA(Method,BestPath); % 产生新的路径 NewSumLen = SumLen_TSP(DM,NewPath); % 计算新路径的总距离 % 是否采用新路径 p_threshold = exp(totalLength - NewSumLen)/T); if unifrnd(0,1) NewSumLen) % 判断最优的路径 Best_Path = NewPath; % 记录最优路径 Best_totalLength = NewSumLen; e
28、ndZxf.sme.bit end T = T * 0.9; % 降温end toc BestPath = Best_Path ;totalLength = Best_totalLength ; figure(2) %绘制行走轨迹的图形窗口x = Site(BestPath,1);Site(BestPath(1),1);y = Site(BestPath,2);Site(BestPath(1),2);hold off;plot(x,y,-o);hold on;xmin = min(x);ymax = max(y);plot(Site(BestPath(1),1),Site(BestPath(1
29、),2),-p);text(xmin,ymax,TSP路径及长度:);text(xmin+200,ymax-200,num2str(totalLength); returnZxf.sme.bitfunction NewPath = NewPath_TSP_SAA(Method,Path) % 产生新的路径函数n = length(Path);NewPath = Path;PosA = ceil(unifrnd(1,n); % 计算要交换位置的两个城市PosB = ceil(unifrnd(1,n);while PosA=PosB PosB = ceil(unifrnd(1,n);end swi
30、tch Method case 1 % 两点交换法 tmp = NewPath(PosA); NewPath(PosA) = NewPath(PosB); NewPath(PosB) = tmp; case 2 % 2变换法 if PosA PosB tmp =PosA; PosA = PosB; PosB = tmp; end NewPath(PosA:PosB) = Path(PosB:-1:PosA);Zxf.sme.bitcase 3 % 3变换法 if PosA PosB tmp =PosA; PosA = PosB; PosB = tmp; end PosC = ceil(unif
31、rnd(1,n); while PosA PosC & PosC PosB PosC = ceil(unifrnd(1,n); end legAB = PosB - PosA; if PosC PosA legCA = PosA - PosC; NewPath(PosC+1:PosC+1+legAB) = Path(PosA:PosB); NewPath(PosC+1+legAB+1:PosB) = Path(PosC+1:PosA-1); elseif PosB PosC legBC = PosC - PosB; NewPath(PosA:PosA+legBC-1) = Path(PosB+
32、1:PosC); NewPath(PosA+legBC : PosC) = Path(PosA:PosB); endendreturnZxf.sme.bitfunction SumLen = SumLen_TSP (DisMat,Path) % 计算TSP路径的总距离函数 n = length(DisMat); SumLen = 0.0; n = length(DisMat); SumLen = 0.0; for i = 1:n-1 SumLen = SumLen + DisMat(Path(i),Path(i+1); end SumLen = SumLen + DisMat(Path(n),
33、Path(1);return结果如下结果如下Elapsed time is 103.663556 seconds.BestPath = 1,15,14,12,13,11,23,.5,6,7,10,9,8,2,4,16,. 19,17,3,18,22,21,20,.24,25,26,28,27,30,31,29totalLength = 1.5387e+04100015002000250030003500400045005001000150020002500300035004000TSP路 径 及 长 度 :15387.4549Zxf.sme.bit 7.2 7.2 遗传算法遗传算法 遗传算法是
34、模拟生物在自然环境中的遗传和进化过程而形成的一种自适遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法。它最早由美国密执安大学的应全局优化概率搜索算法。它最早由美国密执安大学的Holland教授提出,教授提出,起源于起源于60年代对自然和人工自适应系统的研究。年代对自然和人工自适应系统的研究。70年代年代De. Jong 基于遗基于遗传算法的思想在计算机上进行了大量的纯数值函数优化计算实验。在一传算法的思想在计算机上进行了大量的纯数值函数优化计算实验。在一系列研究工作的基础上。系列研究工作的基础上。80年代由年代由Goldberg进行总结,形成了遗传算法进行总
35、结,形成了遗传算法的基本框架。其主要特点是群体搜索策略和群体中个体之间的信息交换,的基本框架。其主要特点是群体搜索策略和群体中个体之间的信息交换,搜索不依赖于梯度信息。所以它的应用范围非常广泛,尤其适合于处理搜索不依赖于梯度信息。所以它的应用范围非常广泛,尤其适合于处理传统搜索方法难于解决的复杂和非线性问题,可广泛用于组合优化,机传统搜索方法难于解决的复杂和非线性问题,可广泛用于组合优化,机器学习,自适应控制,规划设计和人工生命等领域,从而确立了它在器学习,自适应控制,规划设计和人工生命等领域,从而确立了它在21世纪的智能计算技术中的关键地位。世纪的智能计算技术中的关键地位。 Zxf.sme.
36、bit7.2.1 7.2.1 遗传算法的基本步骤遗传算法的基本步骤 遗传算法流程图如下:遗传算法流程图如下:集群中个体适应度的检测评估集群中个体适应度的检测评估选择选择交叉交叉变异变异遗传算法的基本流程遗传算法的基本流程编码和初始群体生成编码和初始群体生成生成新一代群体生成新一代群体Zxf.sme.bit、编码、编码 遗传算法主要是通过遗传操作对群体中具有某种结构形式的个体遗传算法主要是通过遗传操作对群体中具有某种结构形式的个体施加结构重组处理,从而不断地搜索出群体中个体间结构相似性,施加结构重组处理,从而不断地搜索出群体中个体间结构相似性,由此可见,遗传算法不能直接处理问题空间
37、参数,必须把它们转由此可见,遗传算法不能直接处理问题空间参数,必须把它们转换成遗传空间的由换成遗传空间的由基因基因按一定结构组成的按一定结构组成的染色体染色体或个体。或个体。这一转这一转换操作就叫做编码换操作就叫做编码。编码方法主要有:二进制编码,。编码方法主要有:二进制编码,Gray编码,编码,动态编码,实数编码,有序串编码,多参数编码,可变长编码等。动态编码,实数编码,有序串编码,多参数编码,可变长编码等。 Zxf.sme.bit (1)一维染色体编码(二值编码)一维染色体编码(二值编码)所谓一维染色体编码是指搜索空间的参数转换到遗传空间过后,所谓一维染色体编码是指搜索空间的参数转换到遗传
38、空间过后,其相应的基因呈一维排列构成的染色体。具体地说,在遗传空间其相应的基因呈一维排列构成的染色体。具体地说,在遗传空间中,用以表示个体的字符集中的要素构成了字符串。如中,用以表示个体的字符集中的要素构成了字符串。如a,b,c,d或或1,2,3,4。一维染色体编码中常用的符号集是二进制符号一维染色体编码中常用的符号集是二进制符号0,1,基于此符号,基于此符号集的个体呈二值码串。二值编码的一般方法是:集的个体呈二值码串。二值编码的一般方法是: (1)根据所需要的精度确定参数的串长;根据所需要的精度确定参数的串长; (2)解码,由二值串转化成实数;解码,由二值串转化成实数; 例如:例如:x=13
39、,可被表示为可被表示为01101。Zxf.sme.bit(2)多映射编码(多参数)多映射编码(多参数) 在优化问题求解中常常会遇见多参数优化问题。其基本思路在优化问题求解中常常会遇见多参数优化问题。其基本思路是将每一个参数进行二值编码得到子串,每个子串对应各自是将每一个参数进行二值编码得到子串,每个子串对应各自的编码参数,然后将子串构成一个完整的染色体串。的编码参数,然后将子串构成一个完整的染色体串。 Zxf.sme.bit、 初始群体的生成初始群体的生成 遗传操作是对于多个体同时进行的。这众多的个体组成了群体。在遗传算法处理流程遗传操作是对于多个体同时进行的。这众多的个体组成了
40、群体。在遗传算法处理流程中,继编码设计后的任务是初始群体的设定,并以此为起点一代代进化直到按某种进化停中,继编码设计后的任务是初始群体的设定,并以此为起点一代代进化直到按某种进化停止准则终止进化过程,由此得到最后一代(或群体)。其中需要考虑到两个因素:初始群止准则终止进化过程,由此得到最后一代(或群体)。其中需要考虑到两个因素:初始群体的设定;进化过程中各代(群体)的规模如何维持?它和交叉概率变异概率等参数一样,体的设定;进化过程中各代(群体)的规模如何维持?它和交叉概率变异概率等参数一样,对于遗传算法效能的发挥是有影响的。对于遗传算法效能的发挥是有影响的。初始群体的设定可采取如下策略:初始群
41、体的设定可采取如下策略: (1)根据问题固有的知识,设法确定最优解所占空间在整个问题空间中的分布范围,然后,)根据问题固有的知识,设法确定最优解所占空间在整个问题空间中的分布范围,然后,在此分布范围内设定初始群体。在此分布范围内设定初始群体。 (2)先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体当中。这种过程)先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体当中。这种过程不断迭代,直到初始群体中个数达到了预先确定的规模。不断迭代,直到初始群体中个数达到了预先确定的规模。Zxf.sme.bit、适应度函数、适应度函数 适应度函数表明个体或解的优劣性。不同问
42、题的适应性函数的定义方式适应度函数表明个体或解的优劣性。不同问题的适应性函数的定义方式也不同。这里借用了也不同。这里借用了达尔文的自然选择原则达尔文的自然选择原则,即个体适应度越高,其被选择,即个体适应度越高,其被选择的个体越多。的个体越多。 遗传算法基本上不用外部信息,仅用目标函数即适应度函数为依据。遗遗传算法基本上不用外部信息,仅用目标函数即适应度函数为依据。遗传函数的目标函数不受连续可微的约束且定义域可以为任意组合。传函数的目标函数不受连续可微的约束且定义域可以为任意组合。对目标函对目标函数的唯一要求是数的唯一要求是,针对输入可计算出能加以比较的非负结果,这一特点使得,针对输入可计算出能
43、加以比较的非负结果,这一特点使得遗传算法运用很广。在具体的应用中适应度函数的设计要结合求解问题本身遗传算法运用很广。在具体的应用中适应度函数的设计要结合求解问题本身的要求而定,要强调的是,适应度函数评估是选择操作的依据,适应度函数的要求而定,要强调的是,适应度函数评估是选择操作的依据,适应度函数的设计直接影响到遗传算法的性能。的设计直接影响到遗传算法的性能。Zxf.sme.bit 目标函数映射成适应度函数目标函数映射成适应度函数 许多问题的目标函数是求费用函数(代价)许多问题的目标函数是求费用函数(代价)g (x) 最小。由于遗传算法最小。由于遗传算法中,适应度函数要比较排序并依此计算选择概率
44、,所以适应度函数的值要中,适应度函数要比较排序并依此计算选择概率,所以适应度函数的值要取正值,并要把一个最小化函数转化为最大化问题。需要以下几种基本方取正值,并要把一个最小化函数转化为最大化问题。需要以下几种基本方法:法:(1)如目标函数为最大化问题:)如目标函数为最大化问题:(2)如目标函数为最小化问题:)如目标函数为最小化问题:(3)当不能保证非负时,进行转换:)当不能保证非负时,进行转换: 其中其中 可以采用目前可以采用目前g(x)出现过的最大值或者当前群体当中出现过的最出现过的最大值或者当前群体当中出现过的最大值,但最好与群体无关。大值,但最好与群体无关。maxC其他情况当0)()()
45、(maxmaxxgCxgCxfit)()(xgxfit)()(xgxfitZxf.sme.bit (4)当求解问题的目标函数采用利润时,为了保证其非负性,可用如)当求解问题的目标函数采用利润时,为了保证其非负性,可用如下变换式:下变换式: 式中系数式中系数 可以是适合的输入值,或是当前一代或者前面几代中的可以是适合的输入值,或是当前一代或者前面几代中的 g(x)的最小值,也可以是群体的方差。的最小值,也可以是群体的方差。 第三、四两种方法是对第一、二两种方法的改进,也有下面两种改进的方法:第三、四两种方法是对第一、二两种方法的改进,也有下面两种改进的方法:(5)若目标函数为最小问题)若目标函数
46、为最小问题:(6)若目标函数为最大问题:)若目标函数为最大问题:m inC其他情况当00)()()(minminCxgCxgxfit0)(, 0,)(11)(xgccxgcxgfit0)(, 0,)(11)(xgccxgcxgfitZxf.sme.bit、遗传操作、遗传操作 遗传操作是模拟生物基因遗传的操作。遗传操作是模拟生物基因遗传的操作。 在遗传算法中,通过编码组成初始群体后,遗传操作的任务就是在遗传算法中,通过编码组成初始群体后,遗传操作的任务就是对群体的个体按照他们对环境适应的程度(适应度评估)施加一定对群体的个体按照他们对环境适应的程度(适应度评估)施加一定的操作,从而
47、实现优胜劣汰的进化过程,从优化搜索的角度而言,的操作,从而实现优胜劣汰的进化过程,从优化搜索的角度而言,遗传操作可以使问题的解,一代又一代地优化,并逼近最优解。遗遗传操作可以使问题的解,一代又一代地优化,并逼近最优解。遗传算法的基本操作包括以下三个基本算子:传算法的基本操作包括以下三个基本算子:选择,交叉,变异选择,交叉,变异。 Zxf.sme.bit (1)选择)选择:从当前群体中选出优良的个体,使它们有机会作:从当前群体中选出优良的个体,使它们有机会作为父代为下一代繁殖子孙。选择的原则是适应性强的个体为下一为父代为下一代繁殖子孙。选择的原则是适应性强的个体为下一代贡献一个或多个后代的概率大
48、。以下是几种常用的选择算子:代贡献一个或多个后代的概率大。以下是几种常用的选择算子:适应度比例方法适应度比例方法 (fitness proportional model) 适应度比例方法是遗传算法中最基本的选择方法,该方法中各个适应度比例方法是遗传算法中最基本的选择方法,该方法中各个个体的选择概率和其适应度成比例。其描述如下:个体的选择概率和其适应度成比例。其描述如下:Zxf.sme.bit 设群体的大小为设群体的大小为n,其中个体,其中个体 I 的适应度值为的适应度值为 ,则,则 i 被选被选择的概率为择的概率为 显然,概率显然,概率 反映个体反映个体 i 的适应度在总和中所占的比例,的适应
49、度在总和中所占的比例,个体的适应度越大,被选择的概率就越高个体的适应度越大,被选择的概率就越高,反之亦然,计,反之亦然,计算出群体中各个个体的选择概率后,就可以决定那些个体算出群体中各个个体的选择概率后,就可以决定那些个体可以被选出。可以被选出。if1niijjpffipZxf.sme.bit 最佳个体保存方法最佳个体保存方法(elitise model) 该方法的思想是把群体中适应度最高的个体不进行配对而直接复制到下该方法的思想是把群体中适应度最高的个体不进行配对而直接复制到下一代中,称复制(一代中,称复制(copy)。其定义如下:)。其定义如下: 设第设第 t 代群体代群体A(t)中为最佳
50、个体。又设中为最佳个体。又设A(t+1)为新一代群体,若为新一代群体,若A(t+1)中不存在中不存在 ,则把,则把 作为作为A(t+1)中的第中的第n+1个个体(其中,个个体(其中,n为群体大为群体大小)。小)。 优点优点:进化中某一代的最优解不被交叉和变异操作所破坏。进化中某一代的最优解不被交叉和变异操作所破坏。 缺点缺点:局部最优个体的基因会急速增加而使进化有可能限于局部解,也就局部最优个体的基因会急速增加而使进化有可能限于局部解,也就是说该方法全局搜索能力差,它更适合单峰性质的搜索空间搜索,而不是多是说该方法全局搜索能力差,它更适合单峰性质的搜索空间搜索,而不是多峰性质的空间搜索。所以此
51、方法都与其他选择方法结合使用。峰性质的空间搜索。所以此方法都与其他选择方法结合使用。 *()a t*()a t*()a tZxf.sme.bit (2)交叉:)交叉:交换是遗传算法中最为主要的遗传操作。在遗交换是遗传算法中最为主要的遗传操作。在遗传算法中使用交叉算子来产生新的个体。对于二进制编码而传算法中使用交叉算子来产生新的个体。对于二进制编码而言,各种交叉算子包括两个基本内容:言,各种交叉算子包括两个基本内容:从由选择操作形成的配对库(从由选择操作形成的配对库(mating pool)中,对个体)中,对个体随机配对,并按预先设定的交叉概率来决定每对是否需要进随机配对,并按预先设定的交叉概率
52、来决定每对是否需要进行交叉操作;行交叉操作; 设定配对个体的交叉点(设定配对个体的交叉点(cross site),并对这些点前后),并对这些点前后的配对个体的部分结构(或基因)进行相互交换。的配对个体的部分结构(或基因)进行相互交换。 Zxf.sme.bit 基本交叉算子如下:基本交叉算子如下:单点交叉单点交叉(one-point crossover),它是指在个体编码串中只随机设),它是指在个体编码串中只随机设置一个交叉点,然后在该点相互交换两个配对个体的部分染色体。置一个交叉点,然后在该点相互交换两个配对个体的部分染色体。双点交叉双点交叉(twopoint crossover)是指在个体编
53、码串中随机设置了)是指在个体编码串中随机设置了二交叉点,然后再进行部分基因交换。双点交叉的具体操作过程是:二交叉点,然后再进行部分基因交换。双点交叉的具体操作过程是:在相互配对的两个个体编码串中随机设置两个交叉点;交换两个个在相互配对的两个个体编码串中随机设置两个交叉点;交换两个个体在所设定的两个交叉点之间的部分染色体。体在所设定的两个交叉点之间的部分染色体。 Zxf.sme.bit(3)变异:)变异:变异首先在群体中随机选择一个个体,对于选中的个变异首先在群体中随机选择一个个体,对于选中的个体以一定的概率随机地改变串结构数据中某个串的值。同生物界体以一定的概率随机地改变串结构数据中某个串的值
54、。同生物界一样,一样,GA中中变异发生的概率很低变异发生的概率很低,通常取值在,通常取值在0.0010.01之间。遗之间。遗传算法导入变异的目的有两个:一是使遗传算法具有局部的传算法导入变异的目的有两个:一是使遗传算法具有局部的随机随机搜索能力搜索能力。二是使遗传算法可维持群体的。二是使遗传算法可维持群体的多样性多样性,以预防出现群,以预防出现群体未成熟收敛现象。体未成熟收敛现象。变异算子的基本内容是对群体中的个体串的某些基因座上的基因变异算子的基本内容是对群体中的个体串的某些基因座上的基因值作变动。就基因字符值作变动。就基因字符0,1的二进制码串而言,变异操作就是把的二进制码串而言,变异操作
55、就是把某些基因座上的基因值取反,一般来说具有以下两个步骤:在群某些基因座上的基因值取反,一般来说具有以下两个步骤:在群体中所有个体的码串范围内随机的确定基因座;以事先设定的变体中所有个体的码串范围内随机的确定基因座;以事先设定的变异概率来对这些基因座的基因值进行变异。异概率来对这些基因座的基因值进行变异。Zxf.sme.bit 基本变异算子基本变异算子 基本变异算子是指对群体中的个体码串随机挑选一个或者多个基基本变异算子是指对群体中的个体码串随机挑选一个或者多个基因座,并对这些基因座的基因值做变动(以变异率因座,并对这些基因座的基因值做变动(以变异率 做变动),做变动),0,1二进制码串中的基
56、本变异操作如下:二进制码串中的基本变异操作如下:逆转变异算子逆转变异算子(inversion operator) 逆转变异算子是变异算子的一种特殊形式。它的基本操作内容是,逆转变异算子是变异算子的一种特殊形式。它的基本操作内容是,在个体码串中随机挑选两个逆转点,然后将两个逆转点基因值以逆转在个体码串中随机挑选两个逆转点,然后将两个逆转点基因值以逆转概率概率 逆向排序。逆向排序。0,1二值码串的逆转操作如下:二值码串的逆转操作如下: mP11011110111010 变 异iP100010011010010101 逆转Zxf.sme.bit7.2.2 7.2.2 遗传算法的模拟计算示例遗传算法的
57、模拟计算示例 例:下面解释用遗传算法求函数例:下面解释用遗传算法求函数 的最大值的的最大值的一些重要步骤,这里只介绍第一代群体的生成过程与结果。一些重要步骤,这里只介绍第一代群体的生成过程与结果。(1)编码编码 由于在该例中由于在该例中 ,因此将变量,因此将变量 编码为编码为5位长的二进制位长的二进制形式。如形式。如 可表示为可表示为 。(2)初始群体的生成初始群体的生成 随机产生初始群体的每个个体,群体的大小为随机产生初始群体的每个个体,群体的大小为4(如下表如下表). 2( ),0,31f xx x0,31xx13x 01101Zxf.sme.bit个体号个体号初始初始群体群体 X的值的值
58、适应适应度度选择选择概率概率适应适应度期度期望值望值实际实际次数次数配对配对交叉交叉位置位置新一新一代群代群体体 X的值的值适应度适应度101101131690.140.561240110012144211000245760.491.9621411001256253010008640.060.240421101127729410011193610.311.241321000016256适应度适应度总和总和11701.004.0041754平均适平均适应度应度2930.251.001439最大适最大适应度应度5760.491.962729Zxf.sme.bit(3)适应度计算适应度计算 将每个个
59、体将每个个体 的函数值的函数值 作为该个体的适应度作为该个体的适应度.如个体如个体01101的的适应度为适应度为 (4)选择选择 计算每个个体的适应度所占的比例计算每个个体的适应度所占的比例 ,并以此作为相应的选,并以此作为相应的选择概率。表的第择概率。表的第5列给出了每个个体的选择概率。由此概率可计算列给出了每个个体的选择概率。由此概率可计算出每个个体选择的次数出每个个体选择的次数.也可采用轮盘赌方式来决定每个个体的选择也可采用轮盘赌方式来决定每个个体的选择份数份数.赌轮按每个个体适应度的比例分配赌轮按每个个体适应度的比例分配,转动赌轮转动赌轮4次次,就可决定各自就可决定各自的选择份数的选择
60、份数.如表中第如表中第7列。结果反映出列。结果反映出,优秀个体优秀个体2获得了最多的生获得了最多的生存繁殖机会存繁殖机会,最差个体最差个体3被淘汰被淘汰.每次选择都对个体进行一次复制每次选择都对个体进行一次复制,由此由此得到的得到的4份复制送到配对库份复制送到配对库,以备配对繁殖以备配对繁殖.x( )f x2(13)13169fijffZxf.sme.bit (5)交叉与变异交叉与变异 简单交叉操作:首先对配对库中的个体进行随机配对;其次,在配简单交叉操作:首先对配对库中的个体进行随机配对;其次,在配对个体中随机设定交叉处,配对个体彼此交换部分信息对个体中随机设定交叉处,配对个体彼此交换部分信
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司向员工借款合同样本简版
- 有机肥采购合同书
- 可持续发展产品认证合同
- 私人住宅租赁合同样本标准
- 事业单位聘用合同范本解析
- 合同范本集:专卖店、超市、商场员工
- 食品生产设备采购与安装合同
- 股权转让合同的重要条款解析
- 《两票制培训资料》课件
- 《领导艺术讲座》课件
- 四年级下册劳动《小小快递站》课件
- 中国妊娠期糖尿病母儿共同管理指南(2024版)解读
- 期末试卷:安徽省宣城市2021-2022学年七年级上学期期末历史试题(解析版)
- 食品抽检核查处置重点安全性指标不合格原因分析排查手册
- 幼儿教师新年规划
- 春节促销活动方案(7篇)
- 五年级数学上册 图形与几何专题测试卷 (含答案)(北师大版)
- 2024年湖南省公务员录用考试《行测》真题及答案解析
- 火灾自动报警及其消防联动系统技术规格书
- 设备管理人员安全培训
- 分布式光伏培训
评论
0/150
提交评论