遗传算法与蚁群算法简介

合集下载

蚁群算法内容简介

蚁群算法内容简介

蚁群算法内容简介蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法群算法是由意大利学者Dorigo等人于20世纪90年代初期通过模拟自然界中蚂蚁集体寻经的行为而提出的一种基于种群的启发式随机搜索算法,蚁群算法具有并行性、鲁棒性、正反馈性等特点。

蚁群算法最早成功应用于解决著名的旅行商问题以及二次分配问题、车间任务调度问题、图的着色问题、网络路由等许多复杂的组合问题。

蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质.针对PID控制器参数优化设计问题,将蚁群算法设计的结果与遗传算法设计的结果进行了比较,数值仿真结果表明,蚁群算法具有一种新的模拟进化优化方法的有效性和应用价值。

随着人们对效益的要求越来越高,人们发现组合优化的各种方法,但在一些复杂度比较高的问题上,一些传统的方法显示了他的限制,列如计算量上升太快,时间复杂度很高,这就需要一些新的方法来解决这些问题,从而有效地克服传统蚁群算法中容易陷入局部最优解和收敛速度慢的现象。

蚁群系统(Ant Colony System),这种算法是目前国内外启发式算法中的研究热点和前沿课题,被成功地运用于旅行商问题的求解,蚁群算法在求解复杂优化问题方面具有很大的优越性和广阔的前景。

但是,根据观察实验发现,蚁群中的多个蚂蚁的运动是随机的,在扩散范围较大时,在较短时间内很难找出一条较好的路径,在算法实现的过程中容易出现停滞现象和收敛速度慢现象。

在这种弊端的情况下,学者们提出了一种自适应蚁群算法,通过自适应地调整运行过程中的挥发因子来改变路径中信息素浓度,从而有效地克服传统蚁群算法中容易陷入局部最优解和收敛速度慢的现象。

下面是一些最常用的变异蚁群算法精英蚂蚁系统全局最优解决方案在每个迭代以及其他所有的蚂蚁的沉积信息素。

最大最小蚂蚁系统(MMAS)添加的最大和最小的信息素量[ τmax ,τmin ],只有全局最佳或迭代最好的巡逻沉积的信息素。

遗传算法与蚁群算法简介

遗传算法与蚁群算法简介

p1 = [2 6 4 7 3 5 8 9 1]
p1' = [7 3 6 2 9 8 5 1 4]
p2 = [4 5 2 1 8 7 6 9 3]
p2' = [5 7 1 6 2 8 9 3 4]
Non-ABEL群置换操作产生后代方式简单,过分打乱了父串,不利
于保留有效模式
次序交叉(OX)
首先随机确定两个交叉位置,并交换交叉点之间的片段,并从第2 交叉位置起在原先父代个体中删除将从另一父代个体交换过来的
2021/12/11
2021/12/11
2021/12/11
智能优化算法简介 2021/12/11 -常用的智能优化算法
遗传算法(Genetic Algorithm,GA) 演化规划(Evolutionary Programming,EP) 蚁群优化算法(Ant Colony Optimization,ACO) 粒子群优化算法(Particle Swarm Optimization,PSO) 模拟退火算法(Simulated Annealing,SA) 禁忌搜索算法(Tabu Search,TS) 人工神经网络(Artificial Neural Network,ANN) …
线性次序交叉(LOX)
与OX相比,仅填入基因起始位置不同:首先随机确定两个交叉位 置,并交换交叉点之间的片段;在原先父代中删除将从另一父代 个体交换过来的基因,然后从第1个基因位置起依次在两个交叉位 置外填入剩余基因。如父代个体和交叉点同前,则片段[7 3 5 8]和 [1 8 7 6]将交换,在p1中删除[1 8 7 6]后剩余[2 4 3 5 9],然后将其 填入p1',得到 [2 4 3 | 1 8 7 6 | 5 9],相应地p2' = [4 2 1 | 7 3 5 8 | 6 9]

遗传算法与蚁群算法简介47页PPT

遗传算法与蚁群算法简介47页PPT
遗传算法与蚁群算法简介
51、没有哪个社会可以制订一部永远 适用的 宪法, 甚至一 条永远 适用的 法律。 ——杰 斐逊 52、法律源于人的自卫本能。——英 格索尔
53、人们通常会发现,法律就是这样 一种的 网,触 犯法律 的人, 小的可 以穿网 而过, 大的可 以破网 而出, 只有中 等的才 会坠入 网中。 ——申 斯通 54、法律就是法律它是一座雄伟的大 夏,庇 护着我 们大家 ;它的 每一块 砖石都 垒在另 一块砖 石上。 ——高 尔斯华 绥 55、今天的法律未必明天仍是法律。 ——罗·伯顿
25、学习是劳动,是充满思想的劳动。——乌申斯基
谢谢!
ห้องสมุดไป่ตู้
21、要知道对好事的称颂过于夸大,也会招来人们的反感轻蔑和嫉妒。——培根 22、业精于勤,荒于嬉;行成于思,毁于随。——韩愈
23、一切节省,归根到底都归结为时间的节省。——马克思 24、意志命运往往背道而驰,决心到最后会全部推倒。——莎士比亚

蚂蚁算法和蚁群算法

蚂蚁算法和蚁群算法

蚂蚁算法(Ant Colony Algorithm)和蚁群算法(Ant Colony Optimization)是启发式优化算法,灵感来源于蚂蚁在觅食和建立路径时的行为。

这两种算法都基于模拟蚂蚁的行为,通过模拟蚂蚁的集体智慧来解决组合优化问题。

蚂蚁算法和蚁群算法的基本原理类似,但应用领域和具体实现方式可能有所不同。

下面是对两者的简要介绍:蚂蚁算法:蚂蚁算法主要用于解决图论中的最短路径问题,例如旅行商问题(Traveling Salesman Problem,TSP)。

其基本思想是通过模拟蚂蚁在环境中寻找食物的行为,蚂蚁会通过信息素的释放和感知来寻找最优路径。

蚂蚁算法的核心概念是信息素和启发式规则。

信息素(Pheromone):蚂蚁在路径上释放的一种化学物质,用于传递信息和标记路径的好坏程度。

路径上的信息素浓度受到蚂蚁数量和路径距离的影响。

启发式规则(Heuristic Rule):蚂蚁根据局部信息和启发式规则进行决策。

启发式规则可能包括路径距离、路径上的信息素浓度等信息。

蚂蚁算法通过模拟多个蚂蚁的行为,在搜索过程中不断调整路径上的信息素浓度,从而找到较优的解决方案。

蚁群算法:蚁群算法是一种更通用的优化算法,广泛应用于组合优化问题。

除了解决最短路径问题外,蚁群算法还可应用于调度问题、资源分配、网络路由等领域。

蚁群算法的基本原理与蚂蚁算法类似,也是通过模拟蚂蚁的集体行为来求解问题。

在蚁群算法中,蚂蚁在解决问题的过程中通过信息素和启发式规则进行路径选择,但与蚂蚁算法不同的是,蚁群算法将信息素更新机制和启发式规则的权重设置进行了改进。

蚁群算法通常包含以下关键步骤:初始化:初始化蚂蚁的位置和路径。

路径选择:根据信息素和启发式规则进行路径选择。

信息素更新:蚂蚁在路径上释放信息素,信息素浓度受路径质量和全局最优解的影响。

全局更新:周期性地更新全局最优解的信息素浓度。

终止条件:达到预设的终止条件,结束算法并输出结果。

简单蚁群算法的实现-遗传算法-瞎整技术

简单蚁群算法的实现-遗传算法-瞎整技术

简单蚁群算法的实现-遗传算法-瞎整技术简单蚁群算法的实现 很久没有写博客了,⼀直都在忙着⽹站和论⽂的事,最近看了⼏篇蚁群算法的论⽂挺有意思的,总结了⼀下写成⼀篇论⽂附上重要部分的代码,顺便也完成了遗传算法的课程报告,有兴趣的朋友可以看看。

⼀引⾔蚁群算法(ant colony optimization,ACO),⼜称蚂蚁算法,是⼀种⽤来在图中寻找优化路径的机率型技术。

它由Marco Dorigo于1992年在他的博⼠论⽂中引⼊,其灵感来源于蚂蚁在寻找⾷物过程中发现路径的⾏为。

蚁群算法是⼀种模拟进化算法。

初步的研究表明该算法具有许多优良的性质。

针对PID控制器参数优化设计问题,将蚁群算法设计的结果与遗传算法设计的结果进⾏了⽐较,数值仿真结果表明,蚁群算法具有⼀种新的模拟进化优化⽅法的有效性和应⽤价值。

蚁群算法是⼀种求解组合最优化问题的新型通⽤启发式⽅法,该⽅法具有正反馈、分布式计算和富于建设性的贪婪启发式搜索的特点。

正因为蚁群算法有这些优点,很多研究者都在致⼒研究和改过它,本⽂的⽬的正是为了介绍蚁群算法,学习如何编写蚁群算法。

⼆蚁群算法的介绍昆⾍世界中,蚂蚁的组成是⼀种群居的世袭⼤家庭,我们称之为蚁群。

蚂蚁分为世袭制的蚁王(后)和⼯蚁两种,它们具有⾼度组织的社会性,彼此沟通不仅可以借助触觉和视觉的联系,在⼤规模的协调⾏动中还可以借助外激素(有些书称信息素)之类的信息介质。

⾸先我们要理解蚂蚁是如何觅⾷的,蚂蚁平时在巢⽳附近作⽆规则⾏⾛,⼀量发现⾷物并不⽴即进⾷⽽是将之搬回蚁⽳与其它蚂蚁分享,在⾷物⼩时则独⾃搬回蚁⽳,否则就回蚁⽳搬兵,⼀路上会留下外激素,⾷物越⼤外激素的浓度就越⼤,越能吸引其它的蚂蚁过去⼀起搬去⾷物,这样最终就能将⾷物全部搬回蚁⽳。

这个过程⽤程序实现看似⾮常复杂,要编写⼀个“智能”的蚂蚁也看似不太可能,事实上每个蚂蚁只做了⾮常简单的⼯作:检查某个范围内有⽆⾷物,并逐渐向外激素浓的⽅向运动。

遗传算法与蚁群算法结合

遗传算法与蚁群算法结合

遗传算法与蚁群算法结合遗传算法1、基本思想2、算法原理3、代码实现4、结果截图5、总结1·基本思想吸取两个算法的优点,优缺互补,克服两个算法的缺点,利⽤了遗传算法的快速时间效率,优于蚂蚁算法的时间效率。

并且求解精度效率优于遗传算法。

这样就提⾼了两个算法结合的算法时间效率和求解精度。

2、算法原理这个算法的原理是先利⽤遗传算法的快速性、全局收敛性和随机性求出结果,结果产⽣有关问题的初始信息素分布,遗传算法执⾏完在运⽤蚁群算法,在⼀定初始信息素分布的情况下,充分利⽤蚁群算法并⾏性、正反馈性、求解精度效率⾼的特点。

3、代码实现%mainclear;clc;%%%%%%%%%%%%%%%输⼊参数%%%%%%%%N=50; %%城市的个数M=100; %%种群的个数ITER=500; %%迭代次数%C_old=C;m=2; %%适应值归⼀化淘汰加速指数Pc=0.8; %%交叉概率Pmutation=0.05; %%变异概率%%⽣成城市的坐标pos=randn(N,2);%%⽣成城市之间距离矩阵D=zeros(N,N);for i=1:Nfor j=i+1:Ndis=(pos(i,1)-pos(j,1)).^2+(pos(i,2)-pos(j,2)).^2;D(i,j)=dis^(0.5);D(j,i)=D(i,j);endend%%⽣成初始群体popm=zeros(M,N);for i=1:Mpopm(i,:)=randperm(N);%随机排列,⽐如[2 4 5 6 1 3]end%%随机选择⼀个种群R=popm(1,:);figure(1);scatter(pos(:,1),pos(:,2),'rx');%画出所有城市坐标axis([-3 3 -3 3]);figure(2);plot_route(pos,R); %%画出初始种群对应各城市之间的连线axis([-3 3 -3 3]);%%初始化种群及其适应函数fitness=zeros(M,1);len=zeros(M,1);for i=1:M%计算每个染⾊体对应的总长度len(i,1)=myLength(D,popm(i,:));endmaxlen=max(len);%最⼤回路minlen=min(len);%最⼩回路fitness=fit(len,m,maxlen,minlen);rr=find(len==minlen);%找到最⼩值的下标,赋值为rrR=popm(rr(1,1),:);%提取该染⾊体,赋值为Rfor i=1:Nfprintf('%d ',R(i));%把R顺序打印出来endfprintf('\n');fitness=fitness/sum(fitness);distance_min=zeros(ITER+1,1); %%各次迭代的最⼩的种群的路径总长nn=M;iter=0;while iter<=ITERfprintf('迭代第%d次\n',iter);%%选择操作p=fitness./sum(fitness);q=cumsum(p);%累加for i=1:(M-1)len_1(i,1)=myLength(D,popm(i,:));r=rand;tmp=find(r<=q);popm_sel(i,:)=popm(tmp(1),:);end[fmax,indmax]=max(fitness);%求当代最佳个体popm_sel(M,:)=popm(indmax,:);%%交叉操作nnper=randperm(M);% A=popm_sel(nnper(1),:);% B=popm_sel(nnper(2),:);%%for i=1:M*Pc*0.5A=popm_sel(nnper(i),:);B=popm_sel(nnper(i+1),:);[A,B]=cross(A,B);% popm_sel(nnper(1),:)=A;% popm_sel(nnper(2),:)=B;popm_sel(nnper(i),:)=A;popm_sel(nnper(i+1),:)=B;end%%变异操作for i=1:Mpick=rand;while pick==0pick=rand;endif pick<=Pmutationpopm_sel(i,:)=Mutation(popm_sel(i,:));endend%%求适应度函数NN=size(popm_sel,1);len=zeros(NN,1);for i=1:NNlen(i,1)=myLength(D,popm_sel(i,:));endmaxlen=max(len);minlen=min(len);distance_min(iter+1,1)=minlen;fitness=fit(len,m,maxlen,minlen);rr=find(len==minlen);fprintf('minlen=%d\n',minlen);R=popm_sel(rr(1,1),:);for i=1:Nfprintf('%d ',R(i));endfprintf('\n');popm=[];popm=popm_sel;iter=iter+1;%pause(1);end%end of whilefigure(3)plot_route(pos,R);axis([-3 3 -3 3]);figure(4)plot(distance_min);%交叉操作函数 cross.mfunction [A,B]=cross(A,B)L=length(A);if L<10W=L;elseif ((L/10)-floor(L/10))>=rand&&L>10W=ceil(L/10)+8;elseW=floor(L/10)+8;end%%W为需要交叉的位数p=unidrnd(L-W+1);%随机产⽣⼀个交叉位置%fprintf('p=%d ',p);%交叉位置for i=1:Wx=find(A==B(1,p+i-1));y=find(B==A(1,p+i-1));[A(1,p+i-1),B(1,p+i-1)]=exchange(A(1,p+i-1),B(1,p+i-1));[A(1,x),B(1,y)]=exchange(A(1,x),B(1,y));endend%连点画图函数 plot_route.mfunction plot_route(a,R)scatter(a(:,1),a(:,2),'rx');hold on;plot([a(R(1),1),a(R(length(R)),1)],[a(R(1),2),a(R(length(R)),2)]);hold on;for i=2:length(R)x0=a(R(i-1),1);y0=a(R(i-1),2);x1=a(R(i),1);y1=a(R(i),2);xx=[x0,x1];yy=[y0,y1];plot(xx,yy);hold on;endend%染⾊体的路程代价函数 mylength.mfunction len=myLength(D,p)%p是⼀个排列[N,NN]=size(D);len=D(p(1,N),p(1,1));for i=1:(N-1)len=len+D(p(1,i),p(1,i+1));endend%变异函数 Mutation.mfunction a=Mutation(A)index1=0;index2=0;nnper=randperm(size(A,2));index1=nnper(1);index2=nnper(2);%fprintf('index1=%d ',index1);%fprintf('index2=%d ',index2);temp=0;temp=A(index1);A(index1)=A(index2);A(index2)=temp;a=A;end%适应度函数fit.m,每次迭代都要计算每个染⾊体在本种群内部的优先级别,类似归⼀化参数。

简单对比遗传算法与蚁群算法求解旅行商问题

简单对比遗传算法与蚁群算法求解旅行商问题

简单对⽐遗传算法与蚁群算法求解旅⾏商问题简单对⽐遗传算法与蚁群算法求解旅⾏商问题简单对⽐遗传算法与蚁群算法求解旅⾏商问题1、旅⾏商1.1 旅⾏商问题简介旅⾏商问题(Traveling Saleman Problem)⼜称作旅⾏推销员问题、货郎担问题等,简称为TSP问题,是最基本的路线问题,该问题是在寻求单⼀旅⾏者由起点出发,通过所有给定的需求点之后,最后再回到原点的最⼩路径成本。

最早的旅⾏商问题的数学规划是由Dantzig(1959)等⼈提出,规则虽然简单,但在地点数⽬增多后求解却极为复杂。

TSP问题最简单的求解⽅法是枚举法。

它的解是多维的、多局部极值的、趋于⽆穷⼤的复杂解的空间,搜索空间是n个点的所有排列的集合,⼤⼩为(n-1)!。

有研究者形象地把解空间⽐喻为⼀个⽆穷⼤的丘陵地带,各⼭峰或⼭⾕的⾼度即是问题的极值。

求解TSP,则是在此不能穷尽的丘陵地带中攀登以达到⼭顶或⾕底的过程。

1.2 求解TSP⽅法简介旅⾏推销员的问题属于NP-Complete的问题,所以旅⾏商问题⼤多集中在启发式解法。

Bodin(1983)等⼈将旅⾏推销员问题的启发式解法分成三种:1.2.1 途程建构法(Tour Construction Procedures)从距离矩阵中产⽣⼀个近似最佳解的途径,有以下⼏种解法:(1)最近邻点法(Nearest Neighbor Procedure):⼀开始以寻找离场站最近的需求点为起始路线的第⼀个顾客,此后寻找离最后加⼊路线的顾客最近的需求点,直到最后。

(2)节省法(Clark and Wright Saving):以服务每⼀个节点为起始解,根据三⾓不等式两边之和⼤于第三边之性质,其起始状况为每服务⼀个顾客后便回场站,⽽后计算路线间合并节省量,将节省量以降序排序⽽依次合并路线,直到最后。

(3)插⼊法(Insertion procedures):如最近插⼊法、最省插⼊法、随意插⼊法、最远插⼊法、最⼤⾓度插⼊法等。

3 遗传算法与蚁群算法

3 遗传算法与蚁群算法
监控算法已无法改进解的性能时,停止计算 当前最好解
上述几种方法结合
2015/11/10
应用优化技术
15
适应函数
简单适应函数
目标函数的简单变形 max:fitness(x)=f(x) min: fitness(x)=M-f(x) (M>maxf(x)) 可能使算法在迭代过程中出现收敛到一些目标值近 似的不同染色体,难以区别哪个占优
f ( x) f max ——当前最优值 f ( x) f max
适应值 5.376 16.393 25.00 M 概率 5.376/(46.769+M) 16.393/(46.769+M) 25/(46.769+M) M/(46.769+M)
初始迭代时,M同第一大与第二大目标差值的倒数尽量接近, 避免早熟,后期迭代中逐步扩大差距 可以早期迭代中用简单适应函数,后期采用加速适应函数
17
适应函数
非线性加速适应函数
1 fitness( x) f max f ( x) M
x值 1/2 5/8 21/32 23/32 POP(1) 0000 0100 0101 0111 适应值 0.689 0.796 0.817 0.857 概率 0.214 0.248 0.254 0.272
2015/11/10
应用优化技术
22
交配规则
双亲单子
从常规或其他双子法中随机选一个,或优胜劣汰
显性遗传
双亲的基因中,有些具有优超关系,这些基因必将 遗传到下一代 2 在 max f ( x) x 中,在其他位不变的情况下,任何 一位的1永远比同位的0好
1101001 0000010 1101011
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Holland为解释基于二进制编码的基本遗传算法建立了模式 定理和隐含并行性定理 模式定理的含义:在SGA中,阶次低、定义长度短且适配 值超过平均适配值的模式在种群中的数目的期望值以指数 级递增(遗传算法存在找到全局最优解的可能性) 隐含并行性定理:遗传算法所处理的有效模式的总数约与 群体规模的三次方成正比
2015-4-20
北京交通大学计算机与信息技术学院
8
主要内容

智能优化算法简介
问题的NP-完全特性 常用的智能优化算法

遗传算法-Genetic Algorithm
群智能优化算法
蚁群优化算法-Ant
Colony Optimization Swarm Optimization
粒子群优化算法-Particle …
遗传算法与群智能优 化算法简介
主要内容

智能优化算法简介
问题的NP-完全特性 常用的智能优化算法

遗传算法-Genetic Algorithm
群智能优化算法
蚁群优化算法-Ant
Colony Optimization Swarm Optimization
粒子群优化算法-Particle ...
0.492 0.055 0.309 1.000
根据遗传操作生成下一代种群

假设选择的两对父代个体分别为1和2,2和4
2015-4-20
北京交通大学计算机与信息技术学院
21

交叉过程(假设使用单点交叉,交叉概率pc = 0.95) 位串1、2: 0 1 1 | 0 1 110|00 位串2、4: 1 1 0 | 0 0 100|11 011|00 110|01 110|11 100|00
北京交通大学计算机与信息技术学院
7
智能优化算法简介 -常用的智能优化算法

遗传算法(Genetic Algorithm,GA)
演化规划(Evolutionary Programming,EP)
蚁群优化算法(Ant Colony Optimization,ACO) 粒子群优化算法(Particle Swarm Optimization,PSO) 模拟退火算法(Simulated Annealing,SA) 禁忌搜索算法(Tabu Search,TS) 人工神经网络(Artificial Neural Network,ANN) …
p2' = [5 7 1 6 2 8 9 3 4]
Non-ABEL群置换操作产生后代方式简单,过分打乱了父串,不利 于保留有效模式

次序交叉(OX)

首先随机确定两个交叉位置,并交换交叉点之间的片段,并从第2 交叉位置起在原先父代个体中删除将从另一父代个体交换过来的 基因,然后从第2交叉位置后开始填入剩余基因。 p1' = [4 3 5 | 1 8 7 6 | 9 2] p = [2 6 4 | 7 3 5 8 | 9 1]
15
2015-4-20
北京交通大学计算机与信息技术学院
遗传算法-交叉(续)

Non-ABEL交叉:p1'[i] = p1[p2[i]], p2'[i] = p2[p1[i]]
p1 = [2 6 4 7 3 5 8 9 1]
p2 = [4 5 2 1 8 7 6 9 3]

p1' = [7 3 6 2 9 8 5 1 4]



将问题求解表示为“染色体”,通过选择(selection)、 交叉(crossover)和变异(mutation)操作的迭代,实现 种群的演化,最后终收敛到“最适应环境”的个体,从而 求得问题的最优解(满意解)
北京交通大学计算机与信息技术学院 10
2015-4-20
遗传算法-简单遗传算法

简单遗传算法(Simple Genetic Algorithms,SGA),又称 基本遗传算法、标准遗传算法 基于二进制编码,是最基本的遗传算法,其遗传进化操作 过程简单、容易理解,是其他遗传算法的雏形和基础
1
p2 = [4 5 2 | 1 8 7 6 | 9 3]
2015-4-20
p2' = [2 1 6 | 7 3 5 8 | 9 4]
16
北京交通大学计算机与信息技术学院
遗传算法-交叉(续)

单位置次序交叉(C1)

类似于OX。选择一个交叉位置,保留父代个体p1交叉位置前的基 因,并在另一父代个体p2中删除p1中保留的基因,将剩余基因填入 p1的交叉位置后来产生后代个体p1'。如父代个体同前,交叉位置 为4,则后代个体为p1' =[2 6 4 7 | 5 1 8 9 3],p2' =[4 5 2 1 | 6 7 3 8 9]
2015-4-20
北京交通大学计算机与信息技术学院
2
智能优化算法简介

20世纪80年代以来,一些优化算法得到发展

GA、EP、ACO、PSO、SA、TS、ANN及混合的优化策略等

基本思想:模拟或揭示某些自然现象或过程 为用传统的优化方法难以解决的NP-完全问题提供了有效 的解决途径 由于算法构造的直观性与自然机理,因而通常被称作智能 优化算法(intelligent optimization algorithms),或现代启 发式算法(meta-heuristic algorithms) [智能优化算法及其应用,王凌,清华大学出版社,2001]
2015-4-20
北京交通大学计算机与信息技术学院
9
遗传算法(Genetic Algorithm)

1975年,Holland出版了著名的《Adaptation in Natural and Artificial Systems》,标志着遗传算法的诞生。 在一定程度上解决了传统的基于符号处理机制的人工智能 方法在知识表示、信息处理和解决组合爆炸等方面所遇到 的困难 基于“适者生存”原则,是并行优化算法,其自组织、自 适应、自学习及群体进化的能力适合大规模复杂优化问题
19
遗传算法-函数优化示例

求整数函数f(x) = x2在区间[0, 31]上取最大值的点
用基本遗传算法பைடு நூலகம்解

问题是求最大值点,目标函数可取为x2。 用5位的二进制位串表示个体,对应区间[0, 31]上的32个整数。随 机地选取4个位串作为初始种群,位串与对应的整数如下: 01101 11000 01000 10011 13 24 8 19
f (x )
j
i
p p 锦标赛选择:在父代个体随机选k个,然后选最好的。
j 1 j j 1 j
每一个体分配选择概率(线性、非线性等方式,要求 [0,1] 产生随机数: 好的个体被选择的概率大,所有个体所分配的概率之 选择满足下式的第i个 i 个体:i 1 和为1)


2015-4-20
北京交通大学计算机与信息技术学院
3
智能优化算法简介 - 问题的NP-完全特性

求解n个城市的TSP问题。

典型的组合优化问题,是NP-完全的
要准确求解该问题只能用枚举类的办法 要枚举的解的个数为(n - 1)!
例:n = 24,则要枚举的解的个数为:
23!=25,852,016,738,884,976,640,000
n 24
25
26
27
28
29
30
31
时 间 1s 24s 10m 4.3h 4.9d 136.5d 10.8y 325y
2015-4-20
北京交通大学计算机与信息技术学院
4
2015-4-20
北京交通大学计算机与信息技术学院
5
2015-4-20
北京交通大学计算机与信息技术学院
6
2015-4-20


三种基本操作

选择:通常用比例选择,即选择概率正比于个体的适配值,使适 配值高的个体在下一代中被选中的概率大,提高种群平均适配值

交叉:交换两父代个体的部分信息构成后代个体,使得后代继承 父代的有效模式,有助于产生优良个体
变异:随机改变个体中的某些基因,有助于增加种群多样性,避 免早熟收敛
北京交通大学计算机与信息技术学院 11


循环交叉(CX)
2015-4-20
北京交通大学计算机与信息技术学院
18
遗传算法-变异

二进制或十进制

用另一种基因替换某一位置或某些位置上的基因

实数编码

采用扰动的方式:x‘ = x + ηξ,其中η为扰动幅度,ξ为扰动变量

组合优化

互换、逆序、插入等
2015-4-20
北京交通大学计算机与信息技术学院

变异过程(假设变异概率pm = 0.05,且此处无变异) 编号 1 2 3 4 总计 位串 01100 11001 11011 10000 参数值 12 25 27 16 目标函数值 144 625 729 256 1754
北京交通大学计算机与信息技术学院 22

评价第二代种群
2015-4-20
遗传算法-数学解释
多点交叉:随机选择多个位置,然后对换相应子串。两点交叉:
1 0 0 0
1 1 0 1 0 1
2015-4-20
北京交通大学计算机与信息技术学院
14
遗传算法-交叉(续)

实数编码的GA通常采用算术交叉:

双个体算术交叉:x1、x2为父代个体,α ∈(0, 1)为随机数
x1' = αx1 + (1 - α)x2 x2' = αx2 + (1 - α)x1 多个体算术交叉: x1, …, x2为父代个体; αi ∈(0, 1)且∑αi = 1
相关文档
最新文档