遗传算法案例分析及源代码_第1页
遗传算法案例分析及源代码_第2页
遗传算法案例分析及源代码_第3页
遗传算法案例分析及源代码_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一问题描述:在某一区域内有n个客户,拟建一个物流中心,已知客户j地址坐标为(兀,开)。 确定物流中心的地址坐标(兀,刃,使得该物流中心到几个客户之间的距离最短。假设:简单的用两点z间的距离代替运输距离。目标函数:min 乙=j(x 一兀尸 +(丫一必)2约束条件:x0,1,2,345,6,7,8化0,123,4,5,6,7,8假设某一区域内有5个客户,其位置坐标如下表所示,客户坐标及相关需求量客户x (km)y (km)115228351476583(1) 变量:c:是一个計6数组,每个数组里而是一个6位二进制数,它是遗传算法中的染色体。 new_c:每一轮的新变量cofi rst_c:初始群

2、体矩阵。sur_value:个体适应值的概率值,为01之间的数,所有概率值和为1。 survived:经过选择运算后产生的个体基因型组合。intersects :经过交叉运算后产生的个体基因型组合。 mutation_c:经过变异运算后产生的个体基因型组合。f:最后匸算得到的最大值(2) 程序里面的方程function out = value_function( ci ):价值函数(自适应度函数)。function sur_value = calc_value( c ):计算群体中每一个个体的适应度的值function survived = surviver( sur_value ):利用概率

3、选择函数function intersect_c = intersect( new_c ): 交叉运算function mutation_c ,mutation_value = mutation( intersect_c ): 变异运算(1)遗传算法主程序 %遗传算法的主程序 务初始群体的产生,本例中,群体规模大小取为6,即山6个个体组成,每个个体随机产生。 c = rand (6,6) ;%产生随机群体,c表示个体变量。%第一个6表示个体个体,第二个6表示基因型由6位无符号二进制数组成c (c>0.5) = 1;c (c<0.5) = 0;匕显示初始群体first_c = c;p

4、oints =训的点省一轮算法包括选择,交叉,变异,变异完成后产生新的个体,作为子代群体进行下一轮进化。 一共设置10 0 0次进化for n = 1:1000%设置循环次数sur_value = calc_value(c,points);survived = surviver(sur_value);new_c = zeros (6,6);for ii =1:6new_c(ii,:) = c(survived(ii),:);endintersect_c = intersect (new_c) ; 交.义个体mutation_c = mutation ( intersect_c );%变异个体,

5、作为子彳弋群体 c = mutation_c;% /代群体作为新-轮的个体,继续选择,交叉,变界endf = 0 ;for j j = 1:6b 二 value_funct:ion (new_c (j j , :) , points); iff=b;endend(2)适应度函数计算:适应度函数选择为口标函数的倒数 function distance = value_function( ci,points ) 务遗传算法的价值函数,同时也可以将此口标函数值作为个体的适应度。 x = 4*ci(l)+2*ci(2)+l*ci(3)+l;y = 4*ci(4)+2*ci(5)+l*ci(6)+l;d

6、istance = 0;for ii=l:length(points)distance = distance +(x-points(ii,1)x(2) + (y-points(ii,2)a(2)a(1/2);endendfunction sur_value = calc_value( c,points )务计算群体中每一个个体的适应度的值value = zeros(1,6);for ii = 1: 6 %对于第1到笫6个个体value (ii) = 1 / value_f unction (c (ii , :) ,points) ;% 计算每个个体的适应度值 endsur_value = va

7、lue . / sum (value) ; %将适应度值归一化,即每个个%体被遗传到下一代群体中的概率end(3) 选择计算function survived = surviver( sur_value )%选择个体,采川与适应度成止比的概率來确定各个个体复制到下一代群体中survived = ones(1,6);for ii = 1:6random = rand (1) %随机产生一个0到1的数%判断该随机数出现在哪一个概率区间内,以此來判断哪个个体被选中sur_v_a=0;苗设置最后结果的输岀for j j = 1:6sur_v_a=sur_v_a+sur_value(j j);if ra

8、ndom <sur_v_asurvived(ii) = j j ;break;endendendend(4) 交叉运算随机设置交叉点function r = random5()禺随机设置交叉点位置,一共有5个交叉点位置。6个个体共需3次交叉r = rand(1)*5;r = floor(r)+1;endfunction intersect_c = intersect( new_c )%j进行交叉运算:以某一概率相互交换某两个个体之间的部分染色体% 此处显示详细说明intersect_c =zeros(6,6);for ii = 1:3r5 = random5();intersect_c(

9、ii*2-l,l:r5) = new_c(ii*2;intersect_c(ii*2-l,r5+l:6) = new_c(ii*2,r5+l:6); intersect_c(ii*2,1:r5) =new_c(i i * 2,1:r5);intersect_c(ii*2,r5+l:6) = new_c(ii*2-l,r5+l:6); endend(5) 变异运算,变异概率为0. 05function mutation_c ,mutation_value = mutation( intersect_c 务变界运算:对个体的某一个或某一些基因座上的基因值按某一较小的概率进行改变 %mutation_c = intersect_c; mutation_value = zeros(2,36);count=l;for ii=l:6for j j = 1:6r = rand(1);if r<0.05mutation_c(i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论