当前位置:文档之家› 多峰函数优化的混合遗传算法

多峰函数优化的混合遗传算法

多峰函数优化的混合遗传算法
多峰函数优化的混合遗传算法

 2005年7月重庆大学学报(自然科学版)Jul.2005 第28卷第7期Journal of Chongqing University(N tur l Science Editi on)Vol.28 No.7

文章编号:1000-582X(2005)07-0051-04

多峰函数优化的混合遗传算法3

张 琳1,郑 忠1,高小强2

(重庆大学1.材料科学与工程学院;2.经济与工商管理学院,重庆 400030)

摘 要:研究了2种基于最速下降法和遗传算法的求解多峰函数优化问题的混合遗传算法,以Schaffer函数的全局优化问题和收敛概率、平均收敛时间和平均收敛值等评价指标检验了混合算法的性能.结果表明混合算法的性能优于单独的遗传算法或最速下降法,采用随机方式选择局部优化个体的混合遗传算法性能在总体上优于从每代群体中选择适应度高的个体进行局部优化的混合遗传算法.

关键词:遗传算法;最速下降法;多峰函数优化

中图分类号:TP18文献标识码:A

遗传算法是J.Holland[1]提出的一种基于“适者生存”思想的优化算法,具有高度并行、随机和自适应的特点,能在庞大的搜索空间中从一组初始可行解出发,在知道目标函数值的情况下,对种群反复进行复制、交叉和变异等一系列遗传操作产生新一代种群,通过逐步进化使种群达到包含全局最优解的状态.遗传算法具有良好的全局搜索能力和易于实现等优点,但也具有收敛速度缓慢、局部搜索能力差和容易早熟收敛等不足,特别是解决连续可微复杂多峰函数的优化问题时,常常不能得到满意解.扩大种群规模和改进遗传算子可以提高局部搜索能力,但会使算法运行效率降低[2].

最速下降法[3]作为一种传统的数值优化算法具有很强的局部搜索能力,对求解连续可微单峰函数的优化问题具有收敛速度快、精度高的特点,但容易陷入局部优点而难以获得全局最优解.

将遗传算法与局部搜索方法结合是改进遗传算法性能的一种有效途径,这不仅能模拟生物种群的学习过程,而且也能模拟种群的个体在其生命周期内具有学习行为的现象[4-5].为此,笔者结合遗传算法的全局搜索能力和最速下降法的局部搜索能力,以Schaffer 函数[6]作为测试函数对求解连续可微复杂多峰函数全局优化问题的2种混合遗传算法进行了计算实验研究.

1 混合遗传算法

混合遗传算法的基本思想是结合遗传算法的全局搜索能力和最速下降法的局部搜索能力,利用最速下降法提高遗传算法的局部搜索能力和运行效率,同时利用遗传算法帮助最速下降法跳出局部最优.最速下降法采用确定性的规则指导其搜索方向,在混合算法中起局部优化的作用;遗传算法采用概率的变迁规则指导其搜索方向,在混合算法中主要起全局优化的作用.从每代群体中首先选择部分个体用最速下降法进行局部优化,然后将这部分经局部优化后的个体取代其父个体加入父代种群中,再对种群实施遗传操作进行全局搜索,混合算法中局部搜索和全局搜索交替进行互为补充最终达到全局优化的目的.

1.1 编码方法

采用浮点数编码,直接用变量的真实值表示个体的一个基因,染色体长度等于变量个数,这样可以以小的个体长度来实现足够的计算精度.

1.2 适应度函数

遗传算法的搜索过程仅以适应度函数为依据,基于线性排序的适应度分配方法是将种群按个体目标值排序,个体的适应度只取决于它在种群序列中的位序[7].若种群规模为N,个体在种群中的位序为i,则其适应度Fit1可按式(1)计算,式(1)中,p为选择压力,表示种群中最佳个体被选中的概率与平均选中概率的比值.

Fit1(i)=2-p+

2(p-1)(i-1)

N-1

,

1≤p≤2,1≤i≤N.(1) 随着进化的逐代进行,在迭代过程的后期,大量个体会逐渐趋同,从生物学的角度看,种群趋同会造成后代的近亲繁殖和其他物种的消亡.为了达到遗传迭代

3收稿日期:2005-03-16

作者简介:张琳(1979-),男,山东莱芜人,重庆大学硕士研究生,从事冶金系统工程与信息工程的研究.

过程中种群的多样性,需要在维持某一物种的存活不使其消亡的同时也要限制某些物种的过度扩张,调整

适应度可以实现这一目的[8]

.基于这种思想,笔者对适应度函数进行了改进,改进后的适应度函数Fit2如式(2)所示.

Fit2(i )=2-p

+2(p -1)(i -1)

N -1

?

1-φsin π(i -1)

T

,

1≤i ≤N ,0≤ψ≤1,1≤p ≤2,1≤T ≤N -1.

(2)

种群经过排序后,个体序列中相邻个体的适应度是相近或相等的,这样序列中连续个个体可以认为是适应度相近的一类个体的子群体,根据T 的不同取值,种群被划分为不同个数的子群体,在每一个子群体内个体的适应度值是相近或相等的,为了避免单一子群体特别是个体序列中排在最前面的部分个体的过度繁殖,可以在子群体中有选择性地对部分个体进行抑制,这样就能降低一代中同类个体大量存活和繁殖的几率,对维持整个种群的个体多样性具有积极的作用.Fit2可以通过调整T 的大小来改变子群体的划分规模,T 越大则子群体的规模越大,当T 等于1时等价于式(1)所表示单纯的基于排序的适应度函数Fit1;通过ψ调整对个体的抑制程度,ψ越大则对个体的抑制程度越大.该适应度函数同时体现了对种群划分子群体和调整个体适应度提高种群多样性2种原则,而且没有增加算法的复杂性.1.3 遗传算子选择

采用简单的轮盘赌选择法,

交叉操作如式(3)所示.

X ′1=λ1X 1+λ2X 2,

X ′2=λ1X 2+λ2X 1.

 

λ1+λ2=1.(3) 若X 1与X 2为待交叉的2个父代个体,子代个体X ′1和X ′2由式(3)得出,其中λ1与λ2为非负实数,且二者之和为1,这种交叉方式能保证其子代2个体都

在可行域内[7,9]

.

采用随机取代的等价变异方式:若某个体被选中进行变异,则在问题可行域搜索空间中随机等概率产生一新个体取代它.1.4 最速下降算子

最速下降法的具体步骤为:

1)给定精度要求ε>0并令k =1;

2)若‖ f (x (k )

)‖<ε则停止,否则令搜索方向d (k )= f (x (k ));

3)在x (k )处沿方向d (k )作线性搜索得x (k +1)

=x (k )+αk d (k ).

某些情况下,最速下降法需要大量迭代才能达到

规定的精度ε[3,10]

.在混合遗传算法中设置最速下降

法的最大迭代次数K,若在K 代仍不能满足精度ε则

停止迭代.

混合遗传算法的计算步骤如下:

1)参数初始化,初始化遗传算法参数、最速下降法参数和局部优化比率S 等;

2)种群初始化,根据种群规模N 在函数的搜索空间内随机选取初始化种群P (0)={p 1(0),p 2(0),…,p N (0)};

3)个体评价,根据定义的适应度函数Fit2对当前种群P (t )中的个体进行评价;

4)群体分组,根据局部优化比率S 计算进行局部优化的个体数目M (M =N ?S ),从种群P (t )中选择相应数目的个体到个体集合P 1(t )中,其余个体在个体集合P 2(t )中;

5)局部搜索,把个体集合P 1(t )中的每一个体作为初始迭代点用最速下降法进行局部优化得到新的个体集合P ′1(t );

6)全局搜索,将P 2(t )与P ′1(t )中的个体合并成

为本代的过渡种群P ′

(t ),对过渡种群P ′(t )执行遗传操作,遗传操作后的子代种群即为混合算法的下一代初始种群P (t +1);

7)终止判断,当满足下列条件之一时计算结束,a .从1)开始算法运行时间达到规定值;b .当迭代次数达到预先设置的最大数T;c .种群P (t +1)中最佳个体表示的函数值与函数的理论最优值的误差小于或等于设定误差.若不满足上面条件则令t =t +1,转3).

从种群P (t )中选择局部优化个体集合P 1(t )有HG A1和HG A22种方式.其中,HG A1为选择每代群体中适应度最高的若干个个体进行局部优化;HG A2是从群体中随机选择部分个体进行局部优化,这相当于在遗传算法中添加另外一种变异算子.

2 计算实验

为了检验和比较具有2种局部优化个体选择方法的混合遗传算法的性能,采用最大运行时间T 作为算法终止准则,比较不同算法或同一算法不同参数下在相同时间内找到全局最优解的情况.同时设置收敛精度,若在规定时间内某代群体的最佳个体所表示的函数值达到设定的收敛精度,则认为搜索成功,停止搜索并记录从开始搜索到此刻的时间差作为搜索时间;相反搜索失败是指在规定时间T 内进化的最后一代种群中没有满足规定精度的个体,这种情况下的搜索时间是大于T 的未知数.2.1 算法评价指标

定义收敛概率来衡量算法的收敛性和求解质量,对同一实验重复N e 次,若有N s 次搜索成功,则将N s /N e 称为收敛概率,将N e 个收敛概率的平均值称为平均收敛概率.收敛概率越接近1说明算法能收敛到

25重庆大学学报(自然科学版) 2005年

全局最优的概率越大、求解质量越高.

将∑t s/N s称为平均收敛时间,其中t s表示一次成功搜索的搜索时间,若在规定时间T内N

s

=0,即N e 次实验中没有一次成功收敛,把这种情况下的平均收

敛时间定义为T+1,表示这时的平均收敛时间是大于规定时间T的.平均收敛时间说明算法的收敛速度或运行效率,值越小说明运行效率越高,能越快的收敛到全局最优.

混合遗传算法的性能可以由收敛概率和平均收敛时间来评价,收敛概率越大且平均收敛时间越小说明算法性能越好.

定义了种群的平均距离来描述算法性质特别是遗传算法进化过程中种群的状态.随着遗传算法的进化,群体逐渐集中于搜索空间中某一极值点的附近,在每代群体中若把其中的最佳个体认为是搜索空间中的某

一极值点,则对群体中任一个体到最佳个体的距离d

i (对二元函数d i=(x i-x0)2+(y i-y0)2,(x0,y0)为最佳个体在搜索空间的坐标)说明了它靠近这一极值点的程度,对进化过程中的任意一代种群D=∑d i/N 能描述种群中最佳个体与其余个体的亲密程度并在一

定程度上反映了个体的多样性.对同一实验重复N

e 次,每次实验取最后一代计算其D

i

,把D a=∑D i/N

称为种群的平均距离,D

a

越小说明种群经过相同时间的进化达到更聚集和趋同的状态,反之亦然.

2.2 测试函数

选择如式(4)所示的Schaffer函数为测试函数, Schaffer函数在可行域内有无数个局部极小点,只有一个全局极小点f(0,0)=0[6-7].

f(x,y)=0.5+(sin2x2+y2-0.5)/ [1+0.001(x2+y2)]2,x,y∈[-100,100].

(4) 2.3 实验结果与讨论

在Schaffer函数的搜索空间内随机产生100个点作为初始点,采用最速下降法,所有初始点在经过2步降迭代后都陷入局部极小点,没有点收敛到全局最优.

在种群规模为100、最大迭代步数为500、交叉概率为0.7、变异概率为0.1的情况下单独用遗传算法对Schaffer函数进行全局寻优,实验100次结果全部解都停止于10-3附近,收敛精度差,收敛概率为0,而且在最大迭代次数为1000的情况下收敛概率仍没有明显提高.因此,对于Schaffer函数,遗传算法很容易早熟收敛陷入局部极小点.

对Schaffer函数应用混合遗传算法,首先从每代群体中分别以对应HG A1和HG A22种方法选择局部优化个体进行最速下降法中的线性搜索运算,然后将这部分经最速下降后的子代个体取代其父个体加入父代种群中,再对种群实施遗传操作.为了比较2种局部优化个体选择算法及不同局部优化比率S对混合算法性能的影响,计算实验中,S取从0开始以0.02为间隔直到0.9以及1共47个值.对S的每个取值,分别采用HG A1和HG A2算法各进行重复实验20次,当终止准则为T=2s,收敛精度为10-6,分别计算关于

HG A1和HG A2算法的收敛概率

、平均收敛时间、种群平均距离和平均收敛值如图1

-4所示.

图1 2种混合算法的收敛概率

图2 2种混合算法的平均收敛时间

图3 2种混合算法的种群平均距离

图4 2种混合算法的平均收敛值

由图1和图2可见,在局部优化比率S的取值范围内,混合算法HG A1的收敛概率都小于算法HG A2的收敛概率,而HG A1算法的平均收敛时间则总体上大于算法HG A2的收敛时间.由图4可知算法HG A1的平均收敛值大于算法HG A2的平均收敛值.因此可以认为对于Schaffer函数,混合遗传算法HG A2比

35

第28卷第7期 张 琳,等: 多峰函数优化的混合遗传算法

HG A1具有更高的搜索效率和求解质量.

在算法HG A1中,每代选择群体中适应度最高的部分个体运用最速下降法进行局部搜索,个体i代表状态空间中的一个解,把它包含一个局部极值点的邻域记为S

i

,集合P1(t)中任一个体i在经过最速下降法

局部搜索后陷入S

i

内的局部最优点i′.由于遗传算法收敛速度缓慢i′,经过下一步遗传算法进化后可能仍

在邻域S

i

内记为i″,若下一代i″仍被选择进行局部搜索则它将收敛到同一个局部极值点;另外经过局部搜索后i′的适应度值一般要大于其他未经局部搜索的个体,它存活到下一代并继续被选中进行局部搜索的几率较大,这相当于重复上一代的局部搜索,由图3可见算法HG A1的种群平均距离普遍小于HG A2,即HG A1更容易出现种群多样性不足而产生早熟收敛.因此,算法HG A1的运行效率不高,而算法HG A2采用随机选择的方式避免了这种情况的发生,具有较高的性能.

3 结 论

结合遗传算法和最速下降法的混合遗传算法,可以充分发挥遗传算法全局搜索能力和最速下降法的局部搜索能力.计算实验结果表明:对于求解诸如Schaf2 fer函数这样的连续可微复杂多峰函数的全局优化问题,所构建的混合遗传算法具有比遗传算法或最速度下降法更好的性能.当采用收敛概率、平均收敛时间、种群平均距离和平均收敛值来评价算法的运行效率和求解质量时,采用随机方式选择局部优化个体的混合遗传算法HG A2的性能总体上优于从每代群体中选择适应度高的个体进行局部优化的混合遗传算法HG A1.

参考文献:

[1] HOLLAND J H.Adap tati on in Natural and A rtificial Syste m

[M].Ann A rbor:University of M ichigan Press,1975. [2] 刘杰,王媛.一种高效混合遗传算法[J].河海大学学

报,2002,30(2):49-53.

[3] 赵明旺.基于遗传算法和最速下降法的函数优化混合数

值算法[J].系统工程理论与实践,1997,(7):59-65.

[4] ZI TZ LER E,T H I E LE L.M ulti2objective Evoluti onary A lgo2

rith m s:A Comparative Case Study and the Strength Paret o

App r oach[J].I EEE Transacti ons on Evoluti onary Computa2

ti on,1999,3(4):257-271.

[5] I SH I B UCH I H,MURAT A T.A Multi2objective Genetic Lo2

cal Search A lgorith m and Its App licati on t o Fl owshop Sched2

uling[J].I EEE Transacti ons on Syste m s,M an and Cyber2

netics,Part C:App licati on and Revie ws,1998,28(3):

392-403.

[6] 侯格贤,吴成柯.遗传算法的性能分析[J].控制与决

策,1999,14(3):257-260.

[7] 王小平,曹立明.遗传算法理论、应用与软件实现[M].

西安:西安交通大学出版社,2002.73-74.

[8] 郭嗣琮,陈刚.信息科学中的软计算方法[M].沈阳:东

北大学出版社,2001.

[9] 宗敬群.一类混合自适应遗传算法及性能分析[J].系

统工程理论与实践,2001,(4):14-18.

[10] 李文,梁昔明.基于混沌优化和最速下降法的一种混合

算法[J].计算机技术与自动化,2003,22(2):11-14.

Hybri d Geneti c Algor ith m s for M ulti m odal Opti m i zati on

ZHAN G L i n1,ZHEN G Zho ng1,GAO Xi ao2q i a ng2

(1.College ofMaterials Science and Engineering;

2.College of Econom ics and Business Adm inistrati on,Chongqing University,Chongqing400030,China)

Abstract:Hybrid genetic algorithm s,which are based on steepest descent algorith m and genetic algorithm,are investi2 gated for the pur pose of multi m odal op ti m izati on.The perf or mances of the hybrid genetic algorithm s are evaluated with criteria such as convergence p r obability,average convergence ti m e and average convergence value of the functi on in the case of s olving gl obal op ti m izati on f or Schaffer functi on.It is shown that the perf or mances of the hybrid genetic algo2 rithm s are better than steepest decent algorithm or genetic algorithm,and the hybrid genetic algorith m,in which the in2 dividuals used f or l ocal op ti m izati on by steepest decent method are chosen by chance in each generati on populati on,is more efficient than that in which the individuals used f or l ocal op ti m izati on by steepest descent method are selected fr om excellent individuals.

Key words:genetic algorith m;steepest decent algorithm;multi m odal op ti m izati on

(编辑 李胜春) 45重庆大学学报(自然科学版) 2005年

4遗传算法与函数优化

第四章遗传算法与函数优化 4.1 研究函数优化的必要性: 首先,对很多实际问题进行数学建模后,可将其抽象为一个数值函数的优化问题。由于问题种类的繁多,影响因素的复杂,这些数学函数会呈现出不同的数学特征。除了在函数是连续、可求导、低阶的简单情况下可解析地求出其最优解外,大部分情况下需要通过数值计算的方法来进行近似优化计算。 其次,如何评价一个遗传算法的性能优劣程度一直是一个比较难的问题。这主要是因为现实问题种类繁多,影响因素复杂,若对各种情况都加以考虑进行试算,其计算工作量势必太大。由于纯数值函数优化问题不包含有某一具体应用领域中的专门知识,它们便于不同应用领域中的研究人员能够进行相互理解和相互交流,并且能够较好地反映算法本身所具有的本质特征和实际应用能力。所以人们专门设计了一些具有复杂数学特征的纯数学函数,通过遗传算法对这些函数的优化计算情况来测试各种遗传算法的性能。 4.2 评价遗传算法性能的常用测试函数 在设计用于评价遗传算法性能的测试函数时,必须考虑实际应用问题的数学模型中所可能呈现出的各种数学特性,以及可能遇到的各种情况和影响因素。这里所说的数学特性主要包括: ●连续函数或离散函数; ●凹函数或凸函数; ●二次函数或非二次函数; ●低维函数或高维函数; ●确定性函数或随机性函数; ●单峰值函数或多峰值函数,等等。 下面是一些在评价遗传算法性能时经常用到的测试函数: (1)De Jong函数F1: 这是一个简单的平方和函数,只有一个极小点f1(0, 0, 0)=0。

(2)De Jong 函数F2: 这是一个二维函数,它具有一个全局极小点f 2(1,1) = 0。该函数虽然是单峰值的函数,但它却是病态的,难以进行全局极小化。 (3)De Jong 函数F3: 这是一个不连续函数,对于]0.5,12.5[--∈i x 区域内的每一个点,它都取全局极小值 30),,,,(543213-=x x x x x f 。

使用遗传算法求解函数最大值

使用遗传算法求解函数最大值 题目 使用遗传算法求解函数 在及y的最大值。 解答 算法 使用遗传算法进行求解,篇末所附源代码中带有算法的详细注释。算法中涉及不同的参数,参数的取值需要根据实际情况进行设定,下面运行时将给出不同参数的结果对比。 定义整体算法的结束条件为,当种群进化次数达到maxGeneration时停止,此时种群中的最优解即作为算法的最终输出。 设种群规模为N,首先是随机产生N个个体,实验中定义了类型Chromosome表示一个个体,并且在默认构造函数中即进行了随机的操作。 然后程序进行若干次的迭代,在每次迭代过程中,进行选择、交叉及变异三个操作。 一选择操作 首先计算当前每个个体的适应度函数值,这里的适应度函数即为所要求的优化函数,然后归一化求得每个个体选中的概率,然后用轮盘赌的方法以允许重复的方式选择选择N个个体,即为选择之后的群体。

但实验时发现结果不好,经过仔细研究之后发现,这里在x、y取某些值的时候,目标函数计算出来的适应值可能会出现负值,这时如果按照把每个个体的适应值除以适应值的总和的进行归一化的话会出现问题,因为个体可能出现负值,总和也可能出现负值,如果归一化的时候除以了一个负值,选择时就会选择一些不良的个体,对实验结果造成影响。对于这个问题,我把适应度函数定为目标函数的函数值加一个正数,保证得到的适应值为正数,然后再进行一般的归一化和选择的操作。实验结果表明,之前的实验结果很不稳定,修正后的结果比较稳定,趋于最大值。 二交叉操作 首先是根据交叉概率probCross选择要交叉的个体进行交叉。

这里根据交叉参数crossnum进行多点交叉,首先随机生成交叉点位置,允许交叉点重合,两个重合的交叉点效果互相抵消,相当于没有交叉点,然后根据交叉点进行交叉操作,得到新的个体。 三变异操作 首先是根据变异概率probMutation选择要变异的个体。 变异时先随机生成变异的位置,然后把改位的01值翻转。

混合群智能优化算法研究及应用

混合群智能优化算法研究及应用 优化问题广泛地存在于科学研究和工程实践中。群智能优化算法是优化算法中最新的一个分支,也是最热门的发展方向。群智能优化算法是通过模拟自然界中生物间相互合作、共享信息等群体行为而建立起来的随机搜索算法,相较于经典优化算法具有结构简单、易于实现等优点。不同的群智能优化算法是模拟不同生物行为形成的,所以它们各具特点和适用场景。然而,单一的群智能优化算法均有其局限性,如搜索精度不够高、收敛速度慢、性能受参数影响较大和容易陷入局部最优等。将不同群智能优化算法有机结合,设计混合群智能优化算法是一种提高算法性能的有效方法,具有重要的研究意义。本文的主要研究内容及创新点包括以下几个方面:(1)针对单目标数值优 化问题提出了一种基于跟随蜂搜索的自适应粒子群算法(Follower Bee Search Based Adapitve Particle Swarm Optimization,F-APSO)。首先在经典粒子群算法粒子飞行轨迹分析的基础上提出了一种自适 应的粒子群算法(Adapitve Particle Swarm Optimization,APSO), 提高了算法在求解单峰问题时的性能。然后提出了一种针对自适应粒子群算法的稳定性分析方法,基于该方法对APSO进行了稳定性分析,给出了能够保证算法稳定的参数取值条件。接着通过引入人工蜂群算法中的跟随蜂搜索,提高了算法的开拓性,并将APSO的稳定性条件拓展到了 F-APSO中。仿真实验表明F-APSO在求解单目标数值优化问题时在解的质量和时间消耗上都具有良好表现。将F-APSO用于解决矿山生产排程优化问题,与原有生产方案相比优化后的方案在不同铁

遗传算法在多目标优化的应用:公式,讨论,概述总括

遗传算法在多目标优化的应用:公式,讨论,概述/总括 概述 本文主要以适合度函数为基础的分配方法来阐述多目标遗传算法。传统的群落形成方法(niche formation method)在此也有适当的延伸,并提供了群落大小界定的理论根据。适合度分配方法可将外部决策者直接纳入问题研究范围,最终通过多目标遗传算法进行进一步总结:遗传算法在多目标优化圈中为是最优的解决方法,而且它还将决策者纳入在问题讨论范围内。适合度分配方法通过遗传算法和外部决策者的相互作用以找到问题最优的解决方案,并且详细解释遗传算法和外部决策者如何通过相互作用以得出最终结果。 1.简介 求非劣解集是多目标决策的基本手段。已有成熟的非劣解生成技术本质上都是以标量优化的手段通过多次计算得到非劣解集。目前遗传算法在多目标问题中的应用方法多数是根据决策偏好信息,先将多目标问题标量化处理为单目标问题后再以遗传算法求解,仍然没有脱离传统的多目标问题分步解决的方式。在没有偏好信息条件下直接使用遗传算法推求多目标非劣解的解集的研究尚不多见。 本文根据遗传算法每代均产生大量可行解和隐含的并行性这一特点,设计了一种基于排序的表现矩阵测度可行解对所有目标总体表现好坏的向量比较方法,并通过在个体适应度定标中引入该方法,控制优解替换和保持种群多样性,采用自适应变化的方式确定交叉和变异概率,设计了多目标遗传算法(Multi Objective Genetic Algorithm, MOGA)。该算法通过一次计算就可以得到问题的非劣解集, 简化了多目标问题的优化求解步骤。 多目标问题中在没有给出决策偏好信息的前提下,难以直接衡量解的优劣,这是遗传算法应用到多目标问题中的最大困难。根据遗传算法中每一代都有大量的可行解产生这一特点,我们考虑通过可行解之间相互比较淘汰劣解的办法来达到最 后对非劣解集的逼近。 考虑一个n维的多目标规划问题,且均为目标函数最大化, 其劣解可以定义为: f i (x * )≤f i (x t ) i=1,2,??,n (1) 且式(1)至少对一个i取“<”。即至少劣于一个可行解的x必为劣解。 对于遗传算法中产生大量的可行解,我们考虑对同一代中的个体基于目标函数相互比较,淘汰掉确定的劣解,并以生成的新解予以替换。经过数量足够大的种群一定次数的进化计算,可以得到一个接近非劣解集前沿面的解集,在一定精度要求下,可以近似的将其作为非劣解集。 个体的适应度计算方法确定后,为保证能得到非劣解集,算法设计中必须处理好以下问题:(1)保持种群的多样性及进化方向的控制。算法需要求出的是一组不同的非劣解,所以计算中要防止种群收敛到某一个解。与一般遗传算法进化到

各种优化算法求解函数优化问题

各种优化算法求解函数优化问题 1.遗传算法的简单介绍及流程 1.1遗传算法的基本原理 遗传算法 ( Genetic Algorithm ,简称 GA) 是近年来迅速发展起来的一种全新的随机搜索优化算法。与传统搜索算法不同 ,遗传算法从一组随机产生的初始解 (称为群体 )开始搜索。群体中的每个个体是问题的一个解 ,称为染色体。这些染色体在后续迭代中不断进化 , 称为遗传。遗传算法主要通过交叉、变异、选择运算实现。交叉或变异运算生成下一代染色体,称为后 代。染色体的好坏用适应度来衡量。根据适应度的大小从上一代和后代中选择一定数量的个 体 ,作为下一代群体 ,再继续进化 ,这样经过若干代之后 ,算法收敛于最好的染色体 ,它很可能就是问题的最优解或次优解。遗传算法中使用适应度这个概念来度量群体中的各个个体在优化计算中有可能达到最优解的优良程度。度量个体适应度的函数称为适应度函数。适应度函数的定义一般与具体求解问题有关。 1.2遗传算法的流程 第一步:确定决策变量及各种约束条件,即确定出个体的表现型X和问题的解空间; 第二步:确定出目标函数的类型,即求目标函数的最大值还是最小值,以及其数学描述形式或量化方法,建立其优化模型; 第三步:确定表示可行解的染色体编码方法,即确定出个体的基因型X和遗传算法的搜 索空间。 第四步:确定解码方法,即确定出个体的基因型 X和个体的表现型 X的对应关系或转换方法; 第五步:确定个体时候适应度的量化评价方法,即确定出由目标函数 f(X) 值到个体适应度F(X) 的转换规则; 第六步:设计遗传算子,即确定出选择运算、交叉运算、变异运算等遗传算子的具体操作方法; 第七步:确定出遗传算法的运行参数,即确定出遗传算法的M、 T、 Pc、 Pm等参数。1.3 遗传算法求解函数优化问题中的参数分析 目前,函数优化是遗传算法的经典应用领域,也是对遗传算法进行性能评价的常用范 例。对于函数优化中求解实数型变量的问题,一般采用动态编码和实数编码的方法来提高其搜

MATLAB实验遗传算法和优化设计

实验六 遗传算法与优化设计 一、实验目的 1. 了解遗传算法的基本原理和基本操作(选择、交叉、变异); 2. 学习使用Matlab 中的遗传算法工具箱(gatool)来解决优化设计问题; 二、实验原理及遗传算法工具箱介绍 1. 一个优化设计例子 图1所示是用于传输微波信号的微带线(电极)的横截面结构示意图,上下两根黑条分别代表上电极和下电极,一般下电极接地,上电极接输入信号,电极之间是介质(如空气,陶瓷等)。微带电极的结构参数如图所示,W 、t 分别是上电极的宽度和厚度,D 是上下电极间距。当微波信号在微带线中传输时,由于趋肤效应,微带线中的电流集中在电极的表面,会产生较大的欧姆损耗。根据微带传输线理论,高频工作状态下(假定信号频率1GHz ),电极的欧姆损耗可以写成(简单起见,不考虑电极厚度造成电极宽度的增加): 图1 微带线横截面结构以及场分布示意图 {} 28.6821ln 5020.942ln 20.942S W R W D D D t D W D D W W t D W W D e D D παπππ=+++-+++?????? ? ??? ??????????? ??????? (1) 其中πρμ0=S R 为金属的表面电阻率, ρ为电阻率。可见电极的结构参数影响着电极损耗,通过合理设计这些参数可以使电极的欧姆损耗做到最小,这就是所谓的最优化问题或者称为规划设计问题。此处设计变量有3个:W 、D 、t ,它们组成决策向量[W, D ,t ] T ,待优化函数(,,)W D t α称为目标函数。 上述优化设计问题可以抽象为数学描述: ()()min .. 0,1,2,...,j f X s t g X j p ????≤=? (2)

遗传算法与优化问题(重要,有代码)

实验十遗传算法与优化问题 一、问题背景与实验目的 遗传算法(Genetic Algorithm—GA),是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,它是由美国Michigan大学的J.Holland教授于1975年首先提出的.遗传算法作为一种新的全局优化搜索算法,以其简单通用、鲁棒性强、适于并行处理及应用范围广等显著特点,奠定了它作为21世纪关键智能计算之一的地位. 本实验将首先介绍一下遗传算法的基本理论,然后用其解决几个简单的函数最值问题,使读者能够学会利用遗传算法进行初步的优化计算.1.遗传算法的基本原理 遗传算法的基本思想正是基于模仿生物界遗传学的遗传过程.它把问题的参数用基因代表,把问题的解用染色体代表(在计算机里用二进制码表示),从而得到一个由具有不同染色体的个体组成的群体.这个群体在问题特定的环境里生存竞争,适者有最好的机会生存和产生后代.后代随机化地继承了父代的最好特征,并也在生存环境的控制支配下继续这一过程.群体的染色体都将逐渐适应环境,不断进化,最后收敛到一族最适应环境的类似个体,即得到问题最优的解.值得注意的一点是,现在的遗传算法是受生物进化论学说的启发提出的,这种学说对我们用计算机解决复杂问题很有用,而它本身是否完全正确并不重要(目前生物界对此学说尚有争议). (1)遗传算法中的生物遗传学概念 由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念. 首先给出遗传学概念、遗传算法概念和相应的数学概念三者之间的对应关系.这些概念如下: 序号遗传学概念遗传算法概念数学概念 1 个体要处理的基本对象、结构也就是可行解 2 群体个体的集合被选定的一组可行解 3 染色体个体的表现形式可行解的编码 4 基因染色体中的元素编码中的元素 5 基因位某一基因在染色体中的位置元素在编码中的位置 6 适应值个体对于环境的适应程度, 或在环境压力下的生存能力可行解所对应的适应函数值 7 种群被选定的一组染色体或个体根据入选概率定出的一组 可行解 8 选择从群体中选择优胜的个体, 淘汰劣质个体的操作保留或复制适应值大的可行解,去掉小的可行解 9 交叉一组染色体上对应基因段的 交换根据交叉原则产生的一组新解 10 交叉概率染色体对应基因段交换的概 率(可能性大小)闭区间[0,1]上的一个值,一般为0.65~0.90 11 变异染色体水平上基因变化编码的某些元素被改变

遗传算法在多目标优化中的作用 调研报告

遗传算法在多目标优化中的作用调研报告 姓名: 学院: 班级: 学号: 完成时间:20 年月日 目录 1 .课题分析................................................................................................................................ 0 2 .检索策略................................................................................................................................ 0 2.1 检索工具的选择................................................................................................................................ ......... 0 2.2 检索词的选择................................................................................................................................ ............. 0 2.3 通用检索式................................................................................................................................ .. 0 3.检索步骤及检索结果 0 3.1 维普中文科技期刊数据库 0 3.2 中国国家知识产权局数据

遗传算法多目标函数优化

多目标遗传算法优化 铣削正交试验结果 说明: 1.建立切削力和表面粗糙度模型 如: 3.190.08360.8250.5640.45410c e p z F v f a a -=(1) a R =此模型你们来拟合(上面有实验数据,剩下的两个方程已经是我帮你们拟合好的了)(2) R a =10?0.92146v c 0.14365f z 0.16065a e 0.047691a p 0.38457 10002/c z p e Q v f a a D π=-????(3) 变量约束范围:401000.020.080.25 1.0210c z e p v f a a ≤≤??≤≤??≤≤? ?≤≤? 公式(1)和(2)值越小越好,公式(3)值越大越好。π=3.14 D=8 2.请将多目标优化操作过程录像(同时考虑三个方程,优化出最优的自变量数值),方便我后续进行修改;将能保存的所有图片及源文件发给我;将最优解多组发给我,类似于下图(黄色部分为达到的要求)

遗传算法的结果:

程序如下: clear; clc; % 遗传算法直接求解多目标优化 D=8; % Function handle to the fitness function F=@(X)[10^(3.19)*(X(1).^(-0.0836)).*(X(2).^0.825).*(X(3).^0.564).*(X(4).^0. 454)]; Ra=@(X)[10^(-0.92146)*(X(1).^0.14365).*(X(2).^0.16065).*(X(3).^0.047691).*( X(4).^0.38457)]; Q=@(X)[-1000*2*X(1).*X(2).*X(3).*X(4)/(pi*D)];

基于遗传算法的库位优化问题

Logistics Sci-Tech 2010.5 收稿日期:2010-02-07 作者简介:周兴建(1979-),男,湖北黄冈人,武汉科技学院经济管理学院,讲师,武汉理工大学交通学院博士研究生,研究方向:物流价值链、物流系统规划;刘元奇(1988-),男,甘肃天水人,武汉科技学院经济管理学院;李泉(1989-),男,湖北 武汉人,武汉科技学院经济管理学院。 文章编号:1002-3100(2010)05-0038-03 物流科技2010年第5期Logistics Sci-Tech No.5,2010 摘 要:应用遗传算法对邯运集团仓库库位进行优化。在充分考虑邯运集团仓库所存放的货物种类、货物数量、出入库频 率等因素的基础上进行库位预分区规划,建立了二次指派问题的数学模型。利用遗传算法对其求解,结合MATLAB 进行编程计算并得出最优划分方案。 关键词:遗传算法;预分区规划;库位优化中图分类号:F253.4 文献标识码:A Abstract:The paper optimize the storage position in warehouse of Hanyun Group based on genetic algorithm.With thinking of the factors such as goods categories,quantities and frequencies of I/O,etc,firstly,the storage district is planned.Then the model of quadratic assignment problems is build,and genetic algorithm is utilized to resolve the problem.The software MATLAB is used to program and figure out the best alternatives. Key words:genetic algorithm;district planning;storage position optimization 1 库位优化的提出 邯郸交通运输集团有限公司(简称“邯运集团”)是一家集多种业务为一体的大型综合性物流企业。邯运集团的主要业务板块有原料采购(天信运业及天昊、天诚、天恒等)、快递服务(飞马快运)、汽贸业务(天诚汽贸)及仓储配送(河北快运)等。其中,邯运集团的仓储配送业务由河北快运经营,现有仓库面积总共40000㎡,主要的业务范围为医药、日用百货、卷烟、陶瓷、化工产品的配送,其中以医药为主。邯运集团库存货物主要涉及两个方面:一个是大宗的供应商货物,如医药,化工产品等;另一方面主要是大规模的小件快递货物,如日用百货等[1]。经分析,邯运集团在仓储运作方面存在如下问题: (1)存储货物繁多而分拣速度低下。仓库每天到货近400箱,有近200多种规格,缺乏一套行之有效的仓储管理系统。(2)货架高度不当而货位分配混乱。现在采用的货架高度在2米以上,而且将整箱货物直接码垛在货架上,不严格按货位摆放。当需要往货架最上层码放货物需要借助梯子,增加操作难度且操作效率较低。货物在拣货区货架摆放是以件为单位的,分拣和搬运速度较慢。 (3)拣货货架设计不当而仓储效率低下。发货前装箱工作主要由人工协同完成,出库效率低,出错率难以控制。 (4)存储能力和分拣能力不能满足需求。根据邯运集团的业务发展现状及趋势,现有的仓库储存和分拣能力远远达不到集团公司对配送业务量的需求。 当前邯运集团的货位分配主要采用物理地址编码的方式,很少考虑货位分配对仓储管理员工作效率的影响。对其进行库位优化设计不仅直接影响到其库存量的大小、出入库的效率,还间接影响到邯运集团的整体经营效益。本文对邯运集团的仓库货位进行优化时,结合考虑仓库所存放的货物种类、货物数量、出入库频率等因素,对仓库货位进行规划,以提高仓储效率。 2库位预分区规划 在进行仓库货位规划时,作如下假设: (1)货物的存放种类已知; (2)货物每种类的单位时间内存放的数量己知; (3) 每一种货物的存取频率已知。 在仓库货位优化中一个重要的环节即预分区。所谓预分区,是指没有存放货物时的分区,分区时只考虑仓储作业人员的速基于遗传算法的库位优化问题 Optimization of Storage Position in Warehouse Based on Genetic Algorithm 周兴建1,2,刘元奇1,李泉1 ZHOU Xing-jian 1,2,LIU Yuan-qi 1,LI Quan 1 (1.武汉科技学院经济管理学院,湖北武汉430073;2.武汉理工大学交通学院,湖北武汉430063) (1.College of Economics &Management,Wuhan University of Science &Engineering,Wuhan 430073,China; 2.School of Transportation,Wuhan University of Technology,Wuhan 430063,China) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 38

遗传算法程序代码--多目标优化--函数最值问题

函数最值问题:F=X2+Y2-Z2, clear clc %%初始化 pc=0.9; %交叉概率 pm=0.05; %变异概率 popsize=500; chromlength1=21; chromlength2=23; chromlength3=20; chromlength=chromlength1+chromlength2+chromlength3; pop=initpop(popsize,chromlength);% 产生初始种群 for i=1:500 [objvalue]=calobjvalue(pop); %计算目标函数值 [fitvalue]=calfitvalue(objvalue);%计算个体适应度 [newpop]=selection(pop,fitvalue);%选择 [newpop1]=crossover(newpop,pc) ; %交叉 [newpop2]=mutation(newpop1,pm) ;%变异 [newobjvalue]=newcalobjvalue(newpop2); %计算最新代目标函数值 [newfitvalue]=newcalfitvalue(newobjvalue); % 计算新种群适应度值[bestindividual,bestfit]=best(newpop2,newfitvalue); %求出群体中适应值最大的个体及其适应值 y(i)=max(bestfit); %储存最优个体适应值 pop5=bestindividual; %储存最优个体 n(i)=i; %记录最优代位置 %解码 x1(i)=0+decodechrom(pop5,1,21)*2/(pow2(21)-1); x2(i)=decodechrom(pop5,22,23)*6/(pow2(23)-1)-1; x3(i)=decodechrom(pop5,45,20)*1/(pow2(20)-1); pop=newpop2; end %%绘图 figure(1)%最优点变化趋势图 i=1:500; plot(y(i),'-b*') xlabel('迭代次数'); ylabel('最优个体适应值'); title('最优点变化趋势'); legend('最优点');

基本遗传算法及其在函数优化中的作用

《人工智能及其应用大作业(一)》 题目:基本遗传算法及其在函数优化中的作用 学号: 姓名:

基本遗传算法及其在函数优化中的应用 摘要: 从遗传算法的编码、遗传算子等方面剖析了遗传算法求解无约束函数优化问题的一般步骤,并以一个实例说明遗传算法能有效地解决函数优化问题。本文利用基本遗传算法求解函数优化问题,选用f(x)=xsin(10πx)+2.0,取值范围在]2,1 [ 中,利用基本遗传算法求解两个函数的最优值,遗传算法每次100代,一共执行10次,根据运算结果分析得到最优解。 关键字:遗传算法选择交叉变异函数优化 1.前言 1.1基本概念 遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。遗传算法是一种群体型操作,该操作以群体中的所有个体为对象。选择(Selection)、交叉(Crossover)和变异(Mutation)是遗传算法的3个主要操作算子,它们构成了所谓的遗传操作(genetic operation),使遗传算法具有了其它传统方法所没有的特性。 1.2 遗传算法的特点 其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。 1.3遗传算法的应用 函数优化,组合优化,机器人智能控制,及组合图像处理和模式识别等。 2.基本遗传算法 2.1简单遗传算法的求解步骤 Step1:参数设置及种群初始化; Step2:适应度评价; Step3:选择操作; Step4:交叉操作; Step5:变异操作; Step6:终止条件判断,若未达到终止条件,则转到Step3; Step7:输出结果。 2.2停机准则

用于函数优化的遗传算法

一、遗传算法介绍 1.综述 遗传算法(Genetic Algorithm)是由美国Michigan 大学Holland 教授和他的学生发展建立起来的,其思想是起源于生物遗传学适者生存的自然规律,是一种新兴的自适应随机搜索方法,它对优化对象既不要求连续,也不要求可微,并具有极强的鲁棒性和内在的并行计算的机制,特别适合于非凸空间中复杂的多极值优化和组合优化问题。 2.基本原理 传统的优化理论都是通过调整模型的参数来得到期望的结果,而遗传优化算法是根据生物界的遗传和自然选择的原理来实现的,它的学习过程是通过保持和修改群体解中的个体特性,并且保证这种修改能够使下一代的群体中的有利于与期望特性相近的个体在整个群体份额中占有的比例越来越多。与基于代数学的优化方法一样,遗传算法是通过连续不断地队群体进行改进来搜索函数的最大值。遗传算法的搜索结果会有很大的差异。遗传学习的基本机理是使那些优于群体中其他个体的个体具有生存、繁殖以及保持更多基因给下一代的机会。遗传算法实质上是在群体空间中寻求较优解。 3.主要构成 遗传算法主要由编码、适应度、遗传算子(选择算子、交叉算子、变异算子)构成,包含的主要进化参数有编码长度、种群规模、交叉概率、变异概率、终止进化代数。 4.基本步骤 (1)初始化:确定种群规模,交叉概率 P,变异概率m P和终止进化准则,随 c 机生成初始种群() X t;置0 t ; (2)个体评价:计算或估计() X t中各个个体的适应度。 (3)选择:从() X t运用选择算子选择出一些母体。 (4)交叉:对所选个体依概率 P执行交叉,形成新的种群。 c (5)变异:随所选个体依概率 P执行变异,形成新的种群。 m 反复执行步骤(2)-(4),直到满足终止进化准则为止。

遗传算法解决函数优化问题

实验一 遗传算法解决函数优化问题 XXX XXX XXXX 一、实验目的 1. 掌握遗传算法的基本原理和步骤。 2. 复习VB 、VC 的基本概念、基本语法和编程方法,并熟练使用VB 或VC 编写遗 传算法程序。 二、实验设备 微机 三、实验原理 遗传算法是一类随机优化算法,但它不是简单的随机比较搜索,而是通过对染色体的评价和对染色体中基因的作用,有效地利用已有信息来指导搜索有希望改善优化质量的状态。 标准遗传算法流程图如图1.1所示,主要步骤可描述如下: ① 随机产生一组初始个体构成初始种群。 ② 计算每一个体的适配值(fitness value ,也称为适应度)。适应度值是对染色体(个体) 进行评价的一种指标,是GA 进行优化所用的主要信息,它与个体的目标值存在一种对应关系。 ③ 判断算法收敛准则是否满足,若满足,则输出搜索结果;否则执行以下步骤。 ④ 根据适应度值大小以一定方式执行复制操作(也称为选择操作)。 ⑤ 按交叉概率p c 执行交叉操作。 ⑥ 按变异概率p m 执行变异操作。 ⑦ 返回步骤②。 四、实验内容及步骤 1. 上机编写程序,解决以下函数优化问题:()221min 10i i i f x x =??=≤ ??? ∑X 2. 调试程序。 3. 根据实验结果,撰写实验报告。

图1.1 标准遗传算法流程图 五、实验程序 % % 清工作空间workspace,清屏幕显示 % clear all; clc; % % tic; % 启动计时器%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 参数赋值 PopSize =30; % 种群规模 Pc =0.65; % 交叉概率 Pm =0.01; % 变异概率 precision =22; % 根据精度要求,二进制字符串长度为22 iterative_thre =20; % 若连续iterative_thre次解无改进,则退出遗传算法 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 初始化变量 fitness = zeros(PopSize,1); % 存放所有染色体的适应度值SelectRate = zeros(PopSize,1); % 存放染色体的选择概率AccumulateRate = zeros(PopSize,1); % 存放染色体的累积概率 num =0; % 结束遗传算法控制量 bestfitness = 0; % 存放进化过程中最优的适应度值 bestX =0; % 存放进化过程中最优解 population = dec2bin(rand(PopSize,1)*(2^precision));

遗传算法解决函数优化问题

实验一 遗传算法解决函数优化问题 一、实验目的 1.掌握遗传算法的基本原理和步骤。 2. 复习VB 、VC 的基本概念、基本语法和编程方法,并熟练使用VB 或VC 编写遗传算法程序。 二、实验内容 1. 上机编写程序,解决以下函数优化问题: ()1021min 100i i i f x x =?? =≤ ? ?? ∑X 2. 调试程序。 3. 根据实验结果,撰写实验报告。 三、实验原理 遗传算法是一类随机优化算法,但它不是简单的随机比较搜索,而是通过对染色体的评价和对染色体中基因的作用,有效地利用已有信息来指导搜索有希望改善优化质量的状态。 标准遗传算法流程图如下图所示,主要步骤可描述如下: ① 随机产生一组初始个体构成初始种群。 ② 计算每一个体的适配值(fitness value ,也称为适应度)。适应度值是对染色体(个体) 进行评价的一种指标,是GA 进行优化所用的主要信息,它与个体的目标值存在一种对应关系。 ③ 判断算法收敛准则是否满足,若满足,则输出搜索结果;否则执行以下步骤。 ④ 根据适应度值大小以一定方式执行复制操作(也称为选择操作)。 ⑤ 按交叉概率p c 执行交叉操作。 ⑥ 按变异概率p m 执行变异操作。 ⑦ 返回步骤②。

图1.1 标准遗传算法流程图四、程序代码 #include #include #include #include #define byte unsigned char #define step 200 //步长 #define MAX 50 #define N 10 //随机数个数 #define Pc 0.74 //被选择到下一代的概率,个数=Pc*N,小于N 下一代数=上一代,不用处理 #define Pt 0.25 //交叉的概率,个数 =Pt*N 舍,小于N 0~(n2+1)随机数,之后部分开始交叉 #define Pm 0.01 //变异的概率,个数 =Pm*N*n2 入,小于N 0~(N*(n2+1))随机数/(n2+1)=个体,0~(N*(n2+1))随机 数%(n2+1)=该个体基因位置 #define n2 15//2的15次方,共16位 #define next_t (int)(Pt*N)//交叉个数#define next_m (int)(Pm*N+1)//变异个数向后约等于 #define e 0.001//次数限制阈值 /* int N=10; //随机数个数 float Pc=0.74; //被选择到下一代的概率,个数=Pc*N,小于N 下一代数=上一代,不用处理 float Pt=0.25; //交叉的概率,个数=Pt*N 舍,小于N 0~(n2+1)随机数,之后部分开始交叉 float Pm=0.01; //变异的概率,个数 =Pm*N*n2 入,小于N 0~(N*(n2+1))随机数/(n2+1)=个体,0~(N*(n2+1))随机 数%(n2+1)=该个体基因位置 */ byte bitary[N][n2+1],bitary0[N][n2+1];//二进制 int src1[N];

用于函数优化的遗传算法

用于函数优化的遗传算法

一、遗传算法介绍 1.综述 遗传算法(Genetic Algorithm )是由美国Michigan 大学Holland 教授和他 的学生发展建立起来的,其思想是起源于生物遗传学适者生存的自然规律,是一种新兴的自适应随机搜索方法,它对优化对象既不要求连续,也不要求可微,并具有极强的鲁棒性和内在的并行计算的机制,特别适合于非凸空间中复杂的多极值优化和组合优化问题。 2.基本原理 传统的优化理论都是通过调整模型的参数来得到期望的结果,而遗传优化算法是根据生物界的遗传和自然选择的原理来实现的,它的学习过程是通过保持和修改群体解中的个体特性,并且保证这种修改能够使下一代的群体中的有利于与期望特性相近的个体在整个群体份额中占有的比例越来越多。与基于代数学的优化方法一样,遗传算法是通过连续不断地队群体进行改进来搜索函数的最大值。遗传算法的搜索结果会有很大的差异。遗传学习的基本机理是使那些优于群体中其他个体的个体具有生存、繁殖以及保持更多基因给下一代的机会。遗传算法实质上是在群体空间中寻求较优解。 3.主要构成 遗传算法主要由编码、适应度、遗传算子(选择算子、交叉算子、变异算子)构成,包含的主要进化参数有编码长度、种群规模、交叉概率、变异概率、终止进化代数。 4.基本步骤 (1)初始化:确定种群规模,交叉概率c P ,变异概率m P 和终止进化准则, 随机生成初始种群() X t ;置0t ; (2)个体评价:计算或估计() X t 中各个个体的适应度。 (3)选择:从()X t 运用选择算子选择出一些母体。 (4)交叉:对所选个体依概率c P 执行交叉,形成新的种群。 (5)变异:随所选个体依概率m P 执行变异,形成新的种群。 反复执行步骤(2)-(4),直到满足终止进化准则为止。

实验 利用遗传算法进行函数优化

实验利用遗传算法进行函数优化 一、实验目的 1 了解及掌握遗传算法的基本操作 2 利用遗传算法解决实际问题 3 熟悉MATLAB编程语言 二、实验内容 编写一个基于遗传算法的函数寻优程序,完成如下任务: 1、在区间[-1,2]上搜索函数f1=x*sin(10πx)+2的最大值。 2、搜索函数f2=x12+x22的最小值 (其中,-5.12

第一题: figure(1); fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]); %画出函数曲线 %定义遗传算法参数 NIND=40; %个体数目 MAXGEN=25; %最大遗传代数 PRECI=20; %变量的二进制位数 GGAP=0.9; %代沟 trace=zeros(2, MAXGEN); %寻优结果的初始值 FieldD=[20;-1;2;1;0;1;1]; %区域描述器 Chrom=crtbp(NIND, PRECI); %初始种群 gen=0; %代计数器 variable=bs2rv(Chrom, FieldD); %计算初始种群的十进制转换 ObjV=variable.*sin(10*pi*variable)+2.0; %计算目标函数值 while gen

遗传算法简单一元函数优化实例

1.遗传算法简单一元函数优化实例 利用遗传算法计算最大值 f(x)=x sin(10*pi*x)+2, x in [-1,2] 选择二进制编码,种群中个体数目为40,每个种群的长度为20,使用代沟为0.9,最大遗传代数为25。 下面为一元函数优化问题的MATLAB代码 figure(1); fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]); %画出函数曲线 %定义遗传算法参数 NIND=40; %个体数目(Number of individuals) MAXGEN=25; %最大遗传代数(Maximum number of generations) PRECI=20; %变量的二进制位数(Precision of variables) GGAP=0.9; %代沟(Generation gap) trace=zeros(2, MAXGEN); %寻优结果的初始值 FieldD=[20;-1;2;1;0;1;1]; %区域描述器(Build field descriptor) Chrom=crtbp(NIND, PRECI); %初始种群 gen=0; %代计数器 variable=bs2rv(Chrom, FieldD); %计算初始种群的十进制转换 ObjV=variable.*sin(10*pi*variable)+2.0; %计算目标函数值 while gen

相关主题
文本预览
相关文档 最新文档