当前位置:首页 » 操作系统 » 遗传算法罚函数

遗传算法罚函数

发布时间: 2022-05-10 01:44:29

1. 遗传算法中在进行轮盘选择之前按适应度函数进行排名,请问不可行解怎么排序详细点儿

一般来说,三种方法可以处理不可行解,一种是直接删除,一种是修复编码,一种是采用罚函数惩罚不可行解的适应度值。
直接删除会导致种群规模缩减,减少种群多样性,导致早熟,除非对小规模问题求解,否则一般不采用
修复编码需要自己根据具体问题研究修复的方法,最好不要将所有的不可行解修复成基本一样,这样会减小多样性,导致早熟,建议采用多种修复方法并用,可以扩大搜索范围。实际上,对于多数问题,修复方法一般很难确定,所以比较难以应用。
罚函数法是处理不可行解比较好的办法,不可行解的适应度值加以惩罚,使之变小,不仅可以使得不可行解渐渐被淘汰,还可以充分利用不可行解中的优秀基因,扩大种群多样性。唯一问题在于需要确定惩罚方法以及惩罚强度,过高的惩罚强度导致寻优过程变成寻找可行解过程,而过低的惩罚强度会导致无法淘汰不可行解。

实际上,对多数问题,可以有很多的编码方式,需要充分研究编码方式及交叉和变异的操作方法。在这上面做文章可以大大改善不可行解的问题。
举个例子,组合优化问题中一般采用0-1编码,切点交叉,及0-1换位变异,但如果约束中要求固定数目,则经过基因操作后会产生其他数目的组合解,成为不可行解。
对此,可以采用位置编号编码,则可固定数目。

2. 地下水管理模型求解方法研究进展

在通常情况下,无论是地下水系统的状态方程,还是管理模型的目标函数或约束条件,圴常具有非线性、多峰性、不连续等特征,这给求解管理模型带来了困难;而传统的优化方法首先要将非线性问题进行线性近似,使得其解强烈依赖于管理模型目标函数的初值和梯度[52]。当目标函数不连续或不可导时,尤其是在分布参数地下水管理模型中涉及经济或环境因素,会使模型更为庞大而复杂,以致传统的优化方法无法解决[53]

近年来,最优化技术有了很大的进展,一些基于试探式具有全局寻优特点的求解方法被应用于地下水管理之中,如遗传算法、模拟退火算法、人工神经网络算法、禁忌搜索算法以及一些混合智能算法等。

1.2.3.1 遗传算法(Genetic Algorithm,GA)

遗传算法是20世纪70年代初期由Holland等人创立,并由Goldberg发展完善起来的一种新型寻优方法[54]。遗传算法求解地下水管理模型时,不要求地下水系统必须是线性的,因而更适合求解复杂地下水系统的管理问题。目前,国内外已将遗传算法应用到地下水管理的各个领域。

McKinney等[55]用遗传算法求解了3个地下水管理问题:含水层最大抽水量,最低抽水费用及含水层修复的最低费用;Katsifarakis等[56,57]结合边界元法和遗传算法求三类经常遇到的地下水流和溶质运移问题的最优解,即确定导水系数、最小化抽水费用及污染羽的水动力控制;Morshed等[58]综述了遗传算法在地下水管理方面的应用,并提出了一些改进方法;Cai等[59]将遗传算法和线性规划相结合,求解大型非线性水资源管理模型,先用遗传算法识别出复杂的变量,这些变量不变时,问题趋于线性化,然后用线性规划分段求解水资源管理模型;Zheng等[60]采用遗传算法求解由响应矩阵法建立的地下水修复系统优化设计模型;Ines等[61]结合遥感和遗传算法对灌区的水管理进行优化。近年来,国内学者邵景力等[62]以山东省羊庄盆地地下水非线性管理模型为例,介绍了应用遗传算法求解这类问题的具体步骤;崔亚莉等[63]以山东省羊庄盆地3个水源地总抽水量最大为目标建立了地下水管理模型,采用遗传算法进行求解。

需要指出的是,遗传算法是一种近似算法和全局优化算法,其收敛速度和解的精度受控于该算法的某些参数选取;对于大规模、多变量的地下水管理问题,其收敛速度较慢,计算时间长,这是遗传算法在求解复杂地下水管理模型的不足之处。

1.2.3.2 模拟退火算法(Simulated Annealing Algorithm,SAA)

模拟退火算法是局部搜索算法的扩展,它不同于局部搜索算法之处是以一定的概率选择邻域中目标函数值好的状态。理论上来说,它是一个全局优化算法,它通过模拟金属物质退火过程与优化问题求解过程的相似性,另辟了求解优化问题新途径[64]。模拟退火算法已被应用到地下水管理领域。

Wang等[65]分别用遗传算法和模拟退火算法求解了地下水管理模型,并通过与线性规划、非线性规划和微分动态规划方法的计算结果相对比,评价了两种算法的优缺点。Dougherty等[66]介绍了模拟退火算法在地下水管理中的应用。Rizzo等[67]用模拟退火算法求解了多时段地下水修复的管理问题,并应用了一个价值函数以加速算法搜索速度。Cunha[68]用模拟退火算法求解了地下水管理问题,使在满足需求的条件下选择供水设备,使总安装费用和经营费用最低。Kuo等[69]提出了基于田间灌水制度和模拟退火算法的模型进行农业水资源管理。Rao等[70,71]运用SEAWAT建立了地下水流和溶质运移模型,并采用模拟退火算法求解地下水管理问题。

模拟退火算法的实验性能具有质量高、初值鲁棒性强、通用易实现的优点,但为寻到最优解,模拟退火算法往往优化时间比较长,这也是此算法最大的缺点[72]

1.2.3.3 人工神经网络算法(Artificial Neural Network,ANN)

人工神经网络算法是一门新兴的学科,从20世纪40年代提出基本概念以来得到了迅速的发展。人工神经网络法属于集中参数模型,是模拟人脑工作模式的一种智能仿生模型,可以对信息进行大规模并行处理;具有自组织、自适应和自学习能力,以及具有非线性、非局域性等特点;而且善于联想、概括、类比和推理,能够从大量的统计资料中分析提炼实用的统计规律[73]

在地下水管理中,由于含水层性质的空间变异性所导致的数据多变性和参数的不确定性以及水文地质数据的不完备性,使得一些精确分析方法在表达地下水资源系统各部分之间的非线性关系上具有很大的局限性。ANN技术的引入,对地下水管理模型的应用研究有着很大的促进作用。1992年,Rogers在博士论文中首先提出利用人工神经网络技术进行地下水优化管理,并在模型训练与识别中使用了遗传算法。此后,陆续有些学者在这一领域进行了大量研究。Ranjithan等[74]用人工神经网络模型对渗透系数不确定性条件下的地下水回灌方案进行优化研究;Coppola等[75]成功地把人工神经网络运用到3种地下水预测问题中,求解复杂地下水管理问题;Parida等[76]用人工神经网络预测水资源管理中的径流系数。

需要强调的是,ANN模型并不是对非线性过程的真实描述,不能反映系统的真实结构,因而不能最终完全替代系统的机理模型。ANN模型的这一本质是在建立各类地下水非线性系统管理模型时都必须首先考虑的。目前我国在地下水资源管理研究中对ANN技术的应用和研究还比较少,特别是在地下水资源管理中ANN技术的综合应用方面,与国外相比,还有一定的差距。

1.2.3.4 禁忌搜索算法(Tabu Search Algorithm,TSA)

禁忌搜索算法的逐步寻优思想最早由Glover[77]提出,它是对局部邻域搜索的一种扩展,是一种全局算法,是对人类智力过程的一种模拟。禁忌搜索算法通过引入一个灵活的存储结构和相应的禁忌准则来避免迂回搜索,并通过藐视准则来赦免一些被禁忌的优良状态,进而保证多样化的有效探索以最终实现全局优化。

Zheng等[78]联合禁忌搜索算法和线性规划方法求解了地下水污染的修复设计问题,主要应用了禁忌搜索的优点(在优化离散井位时更有效)和线性规划的优点(在优化连续抽水量时更有效);Zheng等[79]分别用禁忌搜索算法和模拟退火算法进行最优参数结构识别,并评价和比较了两种方法的有效性和灵活性;Lee等[80]给出了八种求解非线性整数规划问题的启发式算法的经验比较,在监测网设计中的应用结果表明,模拟退火算法和禁忌搜索算法表现比较突出;杨蕴和吴剑锋等[81]将禁忌搜索算法和遗传算法分别应用于求解地下水管理模型,其结果表明禁忌搜索计算效率高于遗传算法。

禁忌搜索算法对初始解有较强的依赖性,好的初始解可使禁忌搜索在解空间搜索到好的解,而较差的初始解则会降低禁忌搜索的收敛速度。禁忌搜索能否在实际问题中应用好,要充分考虑初始解对优化结果的影响,这方面还有待于进一步的研究。此外,迭代搜索过程是串行的,仅是单一状态的移动,而非并行搜索,这就使得算法的优化时间往往较长,为了改善寻优效率,目前的趋势是把禁忌搜索与其他启发式方法结合起来,比如把禁忌搜索算法与遗传算法结合等[82,83]

1.2.3.5 混合智能算法

模拟退火遗传算法(SAGA)是将遗传算法与模拟退火算法相融合而产生的一种优化算法。Sidiropoulos等[84]用模拟退火算法和遗传算法研究了以抽水费用最小为目标的地下水管理问题,最后提出了地下水管理模型更有效的解法——模拟退火遗传算法;Shieh等[85]应用模拟退火遗传算法进行了原位生物修复系统的最优化设计研究;韩万海等[86]用模拟退火遗传算法进行了石羊河流域的水资源优化配置研究;潘林[87]等应用模拟退火遗传算法对某灌区的灌溉水量进行了最优分配;吴剑锋等[88]运用遗传算法,同时用模拟退火罚函数方法处理约束条件,求解了地下水管理模型,并将该方法成功地应用于徐州市地下水资源评价与管理模型之中,取得了较为满意的结果。模拟退火遗传算法不但克服了基于梯度寻优算法的缺点,而且通过模拟退火过程,保证能够有效地求得问题在可行域上的最优解(或接近最优解)。然而在求解大型的多决策地下水优化管理问题时,如何减少群体规模,从而有效地提高遗传算法的寻优速度,还有待于进一步深入研究。

人工神经网络算法和遗传算法相结合来求解地下水管理模型的研究也很多。Rogers等[89]用人工神经网络算法和遗传算法进行最优地下水修复设计,用人工神经网络预测水流和溶质模拟结果;Aly等[90]提出了不确定条件下含水层净化系统最优设计的方法——人工神经网络算法和遗传算法;Brian[91]等将遗传算法与人工神经网络算法相结合求解了具有线性目标函数的含水层系统水质管理问题,并将该方法与基于梯度函数的传统算法进行了比较。

此外,其他一些混合算法也常应用于地下水管理问题中。Tung等[92]使用模式分类和禁忌搜索算法相结合的方法研究了地下水开采管理问题;Hsiao等[93]应用遗传算法与约束微分动态规划相结合的混合算法求解了非承压地下水含水层修复优化问题;Mantawy等[94]将遗传算法、禁忌搜索算法和模拟退火算法相结合求解单位运输问题,算法的核心是遗传算法,用禁忌搜索产生新种群,用模拟退火法加速收敛速度。

地下水管理模型求解的方法有很多,除文中提及的优化算法外,近年来快速发展的智能方法,如混沌优化算法、蚁群算法等都为解决这一问题提供了新的思路。地下水资源系统本身是一个高度复杂的非线性系统,其功能与作用是多方面、多层次的;模型的输入有确定的,也有随机的。因此,为实现地下水更科学有效的管理,地下水管理模型的求解方法也必须更具有准确性和实用性。

3. ISIGHT中多岛遗传算法配置参数问题

多岛遗传算法是针对遗传算法早熟premature而提出的一个解决方法之一(把目标函数是个多极值的函数,遗传算法容易找到局部最优点,如果这样就被成为“早熟”)。

多岛遗传算法是在遗传算法的基础上增加了许多个“岛”,每个岛上会有一些个体indivial,也就是是sub-population,并假设个体可以在每个岛之间迁徙,具有迁徙能力的都是优秀的个体,也就是精英elite,这些个体具有优秀的基因,能帮助算法跳出局部最优点,达到全局最优。想象下人类,人类在各个大陆之间迁徙,杂交,后代肯定比本地的聪明。

number of lslands就是岛的数量,generations就是整个算法的代数,crossover和mutation和经典遗传算法意义一样,还有个迁徙率migration rate,迁徙率越高,那么更多的个体会参与岛和岛之间的杂交,tourament就是轮盘赌法,penalty就是罚函数,用于处理边界条件。

关于参数,推荐使用默认参数,这些都是通过大量论文实践出来的。遗传算法虽然好,但是缺点也是明显的:参数太多!只有在积累大量的经验后才可以灵活地调整这些参数,你现阶段明白啥意思就好。

想彻底理解遗传算法不难,亲自在Matlab里面编写一遍就差不多了。

4. 遗传算法中罚函数的应用

哈哈哈,搞笑,一楼的回答原封不动地Copy了我之前在另外一个问题的答案,详细见参考资料:
M越大F就越大那是正常的,因为是对不满足约束的惩罚。
如果你的个体都是可行解,那么F就等于f了。
对了,你是不是在遗传算法QQ群里跟我讨论了老半天那位?

5. 遗传算法中中约束条件怎么处理呢

只要你的遗传算子选对,进化过程中上下限约束就能满足;
若是其它连续性变量的线性或非线性约束,可采用罚函数法将这些约束加入目标函数(适应度函数)中,这样就能保证最优解在约束范围内。
若是存在0-1的变量(主要是在规划中,某个东西建或不建),则进化过程就会产生较多不可行解,采用直接丢弃的方法固然可以,但是当不可行解多时,这种方法就使遗传算法失去它的优势;所以就有学者提出了不可行解的修复策略,将不可行解通过某种方法转换为可行解。那么不同的优化问题解的修复策略都可能会不同,如果你设计了一个针对你所做问题的修复策略,那也就成了你的创新点之一了。
当然也有设计进化策略的研究,但这方面比较修复策略而言有难度。

6. 优化作用的概述

优化作用的概述
ISIGHT中存在大量的优化算法,每种优化算法根据不同的分类,可以解决不同类型的问题。今天我们来看看ISIGHT都提供了哪些优化算法,主要包括:AMGA、ASA、DownhillSimplex、Evol、Hooke-Jeeves、LSGRG、MISQP、MMFD、MOST、Multi-Island GA、Multi-Objective Particle Swarm、NCGA、NLPQL、NSGA-II、Pointer、Stress Ratio等,今天先总体简单介绍一下,后续我会对每种优化算法一一进行详细介绍,敬请期待。
ISIGHT中的优化技术分为三类:
1.数值型优化技术(Numerical Optimization Techniques)
2.探索型优化技术(Exploratory Techniques)
3.专家系统技术(Exper System Techniques)
下面对这些优化技术中的优化方法一一进行介绍。
数值型优化技术
数值型优化技术通常假定参数空间是单峰的、凸的和连续的,ISIGHT中使用了如下的数值型优化技术如下,而数值型优化技术又分为直接法和罚函数法:
(1)直接法,在搜索过程中直接处理约束。
ADS(Automated Design Synthesis)-based Techniques
修正可行方向法(Modified Method of Feasible Directions)
连续线性规划(Sequential Linear Programming)
广义既约梯度法(Generalized Reced Gradient-LSGRG2)
可行方向法-CONMIN(Method of Feasible Directions-CONMIN)
混合整型优化-MOST(Mixed Integer Optimization-MOST)
连续二次规划法-DONLP(Sequential Quadratic Programming-DONLP)
连续二次规划法-NLPQL(Sequential Quadratic Programming-NLPQL)
逐次逼近法(Successive Approximation Method)
(2)罚函数法,给目标函数增加惩罚项,将约束问题转换成无约束问题。
ADS(Automated Design Synthesis)-based Techniques
外点罚函数法(Exterior Penalty)
Hooke-Jeeves直接搜索法(Hooke-Jeeves Direct Search Method)
探索型优化技术
探索型优化技术避免了集中在局部区域的搜索,这些技术遍历整个参数空间搜索全局最优设计点。ISIGHT中的这种技术包括:
遗传算法(Genetic Algorithm)
批处理遗传算法(Genetic Algorithm with Bulk Evaluation)
模拟退火算法(Simulated Annealing)
专家系统技术
专家系统技术使优化沿着用户定义的方向进行改变,改变哪一项?怎么改变?什么时候改变?这些都有用户自己定义。
ISIGHT中这样的技术为指导启发式搜索方法(Directed Heuristic Search-DHS)。如果用户知道输入怎样影响输出结果的话,可以试试这种方法,效率很高。
至此,ISIGHT中的优化算法概述就基本介绍到这,敬请期待优化算法详述……

7. 懂罚函数的请进,有约束优化遗传算法的目标函数问题

很显然,f 才是目标函数值,而F只是适应度函数值,用来评价个体优劣的。
加上罚函数,仅仅是为了惩罚那些不满足约束条件的个体,以此来解决约束优化问题。
但真正的目标函数是f,目的是f的值越小越好。

8. 遗传算法优化问题中,有关线性约束(非线性约束)怎么在程序中实现

优化问题中解决约束一般采用罚函数的方法,这样的论文很多,找一篇看看就知道怎么了。大致意思是,要是某个个体离约束很近,或者就在约束上(满足某个约束条件),那算法就“惩罚”他一下,惩罚的措施多样,可以让这个个体参数全部重置,也可以让这个个体等于某个极限值。
其他的约束方法大同小异。

9. 你好 可以把你的实属编码遗传算法的程序让我看看嘛谢谢 我的QQ:631789824、谢谢

function [solution]=NGAschaffer()%基于罚函数的小生境遗传算法,实数编码,线性重组,实值变异
NIND=120; %个体数目(Number of indivials)
NVAR=2; %变量的数目
FieldDR=[-10 -10;10 10];%变量的范围
N=NIND/2; %设置排挤因子
Chrom=crtrp(NIND,FieldDR);%采用实数制随机生成初始种群
ObjV=schaffer(Chrom(:,1),Chrom(:,2));%求出初始种群的目标函数
MAXGEN=500;
gen=0;
Pc=0.8;
Pm=0.1;
L=0.5; %设置小生境之间的距离参数
Penalty=10^(-40);%设置惩罚函数
RememberIndivials=sortrows([Chrom,ObjV],-(NVAR+1));
RememberIndivials=RememberIndivials(1:N,1:NVAR+1);%记忆前N个个体,不参加选择、交叉、变异运算,将优秀个体保留在群体中
while gen<MAXGEN
FitnV=ranking(-ObjV);%计算个体适应度
SelCh=select('rws',Chrom,FitnV);%选择、复制个体
Chrom=recombin('reclin',SelCh,Pc);
Chrom=mutbga(Chrom,FieldDR,Pm);
ObjV=schaffer(Chrom(:,1),Chrom(:,2));%求出重组后种群的目标函数值
ObjV=[RememberIndivials(:,NVAR+1);ObjV];
Chrom=[RememberIndivials(:,1:NVAR);Chrom];
FitnV=ObjV-min(ObjV)+eps;
%对M+N种群个体进行海明距离计算,并运用小生境排挤机制
for i=1:NIND+N-1
for j=i+1:NIND+N
d(i,j)=sqrt(sum((Chrom(i,1:NVAR)-Chrom(j,1:NVAR)).^2));
if d(i,j)<L
if FitnV(i,1)<FitnV(j,1);%对适应度较小的个体施加一个惩罚函数
FitnV(i,1)=Penalty;
else
FitnV(j,1)=Penalty;
end
end
end
end
BigChrom=sortrows([Chrom,ObjV,FitnV],-(NVAR+2));
RememberIndivials=BigChrom(1:N,1:NVAR+1);
Chrom=BigChrom(1:NIND,1:NVAR);
ObjV=BigChrom(1:NIND,NVAR+1);
gen=gen+1;
trace(gen,1)=max(ObjV);
if trace(gen,1)>0.999
break
end
end
plot(trace(:,1));
solution=max(trace(:,1));

热点内容
赛尔编程 发布:2024-10-08 22:30:12 浏览:161
威驰车有哪些配置 发布:2024-10-08 22:19:32 浏览:564
手游源码全套 发布:2024-10-08 21:39:41 浏览:474
大众账号密码是多少 发布:2024-10-08 21:22:18 浏览:890
价格厚道香港多ip服务器 发布:2024-10-08 21:22:16 浏览:283
android适配values 发布:2024-10-08 21:18:36 浏览:240
数控折弯机如何编程 发布:2024-10-08 20:34:40 浏览:62
pod内部修改配置如何生效 发布:2024-10-08 20:25:33 浏览:238
重庆服务器托管市场低价云主机 发布:2024-10-08 20:23:39 浏览:365
运维接触源码 发布:2024-10-08 19:55:44 浏览:486