基于遗传算法的PARAMICS可变限速仿真参数自动标定

基于遗传算法的PARAMICS可变限速仿真参数自动标定
基于遗传算法的PARAMICS可变限速仿真参数自动标定

基于遗传算法的PARAMICS可变限速

仿真参数自动标定*

张美慧 李志斌 陈若昀 闵 静

(东南大学交通学院 南京210096

)摘 要 仿真技术被广泛应用于可变限速控制技术的研究中。为保证可变限速控制的仿真结果与真实情况相符,采用遗传算法对PARAMICS仿真模型中可变限速控制参数标定进行研究。阐述了可变限速控制路段的交通流参数采集,提出了在PARAMICS仿真模型中针对可变限速控制的参数自动标定流程,

分析了基于遗传算法的可变限速控制参数标定结果。实验表明提出的参数标定方法能够有效的确定可变限速控制仿真过程中关键参数取值,参数标定后的仿真结果与真实数据更为接近,提高了仿真精度。

关键词 可变限速;参数标定;遗传算法;PARAMICS

;仿真模型中图分类号:U495 文献标志码:A doi:10.3963/j

.issn 1674-4861.2012.05.028收稿日期:2012-6-25 修回日期:2012-08-

08 *东南大学优秀博士学位论文基金项目(

批准号:YBJJ1150)资助第一作者简介:张美慧(1991),本科生.研究方向:智能运输系统与交通安全E-mail:zhang

mh0.16@mail.cim0 引 言

可变限速控制技术是一项近年来在发达国家得到广泛关注的高速公路交通控制技术,它通过检测道路交通流运行状态,针对变化的道路交通情况计算当前合理限速值,将限速信息发布给驾驶员,

从而改善交通流运行状态,提高交通安全。PARAMICS微观仿真模型被广泛应用于可变限

速控制效果分析中[

1-

4]。在测试可变限速控制策略时,仿真技术有以下优点:费用低廉;不改变实际交通环境,不影响实际交通流运行;可避免测试可能增加事故风险的控制策略时导致的不良后果。采用PARAMICS仿真模型进行可变限速控制策略研究前,应进行仿真模型参数标定工作,确保仿真结果与真实相符。

参数标定是指基于实测交通流数据对仿真模型中部分参数取值进行调整,保证仿真模型预测结果和实际交通条件一致。影响仿真结果的主要参数有驾驶员反应时间和目标车辆的车头时

距[

1,3]

。若仿真模型未经参数标定或该环节出错,则仿真结果可能与真实情况有偏差,导致相关推论不符合现实。

参数标定在仿真模型中的重要性已被广泛认

可,

但以往研究中没有对仿真模型参数标定给予重视。Adobe-Aty等[1]

采用不同核心参数值进行

多次PARAMICS仿真测试,得到核心参数推荐值为:平均车头时距1.0s,平均反应时间0.42s,排队车速12.87km/h(8mile/h),排队距离2.74

m(9ft)。Lee等[3]

提出可变限速控制下驾驶员

行为由驾驶员激进度和注意力决定,

但没有提供如何设置核心参数值的相关信息。Lee等[4]

提出

PARAMICS中影响仿真结果的关键参数为平均车头时距及平均反应时间,但未阐述标定过程与

参数取值。Park和Yadlapati[5]及Allaby等[6]亦

没有阐述核心参数标定的相关信息。

仿真模型参数标定主要有2种方法,分别是“多次试验法”和“遗传算法”。在“多次试验法”中,根据每次仿真结果的精度反复调节模型中的核心参数值。此法耗时耗力,

精度不高,且得到的最佳参数集可能是局部最优解。而“遗传算法”是将参数标定过程视为寻求满足目标函数参数集的组合优化问题,得到的最优解满足参数标定精度要求。以往研究中对于基于遗传算法的PARAMICS

仿真模型参数标定算法进行了研究[

7-

14]。以往对仿真模型参数标定的研究侧重参数标定的通用算法,

无针对高速公路可变限速控制的0

31交通信息与安全 2012年5期 第30卷 总171期

遗传算法参数调整实验报告(精)

遗传算法参数调整实验报告 算法设计: 编码方案:遍历序列 适应度函数:遍历路程 遗传算子设计: 选择算子:精英保留+轮盘赌 交叉算子:Pxover ,顺序交叉、双亲双子, 变异算子:Pmutation ,随机选择序列中一个染色体(城市)与其相邻染色体交换 首先,我们改编了我们的程序,将主函数嵌套在多层迭代之内,从外到内依此为: 过程中,我们的程序将记录每一次运行时种群逐代进化(收敛)的情况,并另外记录总体测试结果。 测试环境: AMD Athlon64 3000+ (Overclock to 2.4GHz)

目标:寻求最优Px 、Pm 组合 方式:popsize = 50 maxgen = 500 \ 10000 \ 15000 Px = 0.1~0.9(0.05) Pm = 0.01~0.1(0.01) count = 50 测试情况:运行近2万次,时间约30小时,产生数据文件总共5.8GB 测试结果:Px, Pm 对收敛结果的影响,用灰度表示结果适应度,黑色为适应度最低 结论:Px = 0.1 ,Pm = 0.01为最优,并刷新最优结果19912(之前以为是20310),但20000次测试中最优解只出现4次,程序需要改进。 Maxgen = 5000 Pm=0.01 Px = 0.1 Maxgen = 10000 0.1 0.9 Px = 0.1 0.9 0.1

目标:改进程序,再寻求最优参数 方式:1、改进变异函数,只保留积极变异; 2、扩大测试范围,增大参数步进 popsize = 100 \ 200 \ 400 \ 800 maxgen = 10000 Px = 0.1 \ 0.5 \ 0.9 Pm = 0.01 \ 0.04 \ 0.07 \ 0.1 count = 30 测试情况:运行1200次,时间8小时,产生数据文件600MB 测试结果: 结论:Px = 0.1,Pm = 0.01仍为最优,收敛情况大有改善,10000代基本收敛到22000附近,并多次达到最优解19912。变异函数的修改加快了整体收敛速度。 但是收敛情况对Pm并不敏感。另外,单个种群在遗传过程中收敛速度的统计,将是下一步的目标。

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)

用遗传算法实现PID参数整定

用遗传算法实现PID参数整定 作者:万佑红, 李新华 作者单位:万佑红(南京邮电学院,电子工程系,江苏,南京,210003), 李新华(安徽大学,电子工程系,安徽,合肥,230001) 刊名: 自动化技术与应用 英文刊名:TECHNIQUES OF AUTOMATION AND APPLICATIONS 年,卷(期):2004,23(7) 被引用次数:17次 参考文献(5条) 1.Bennet S Development of the PID controllers 1993(02) 2.张晓缋;方浩;戴冠遗传算法的编码机制研究 1997(02) 3.薛定宇控制系统计算机辅助设计 1996 4.赵洁基于神经网络-遗传算法的双轴运动PID控制[期刊论文]-自动化技术与应用 2003(07) 5.陶永华;尹怡欣;葛芦生新型PID控制及其应用 1998 本文读者也读过(6条) 1.席育凡.曾光.张静刚.XI Yu-fan.ZENG Guang.ZHANG Jing-gang基于改进遗传算法的数字PID参数整定[期刊论文]-西安理工大学学报2006,22(4) 2.陈永红.朱从乔.王基基于自适应在线遗传算法的PID参数整定与优化[会议论文]- 3.李俊丽.张光辉.LI Jun-li.ZHANG Guang-hui鲁棒PID控制器参数整定与仿真[期刊论文]-自动化与仪表 2005,20(3) 4.谢勤岚.陈红基于遗传算法的PID控制器优化设计[期刊论文]-光学与光电技术2003,1(3) 5.宋洪法.靳其兵.赵梅.SONG Hong-fa.JIN Qi-bing.ZHAO Mei基于改进遗传算法的PID参数整定策略[期刊论文]-北京化工大学学报(自然科学版)2005,32(2) 6.陈敏.谭思云.黄玉清.CHEN Min.TAN Si-yun.HUANG Yu-qing遗传算法在PID参数整定中的应用[期刊论文]-仪表技术2010(5) 引证文献(17条) 1.张付祥.付宜利.王树国基于遗传算法的多PID控制器参数整定[期刊论文]-制造业自动化 2005(5) 2.唐锐.文忠波.文广一种基于遗传PID控制的力反馈双向伺服系统研究[期刊论文]-机床与液压 2009(4) 3.刘国联.谭冠政.何燕基于改进人工免疫算法的PID参数优化研究[期刊论文]-计算机工程与应用 2008(19) 4.赵语涛.张健成二次速度调节中的遗传PID控制方法[期刊论文]-液压与气动 2005(10) 5.邓长春.朱儒明.李咏霞.许波一种求解TSP问题的多种群并行遗传算法[期刊论文]-计算机仿真 2008(9) 6.唐锐.文忠波.文广一种基于BP神经网络的模糊PID控制算法研究[期刊论文]-机电产品开发与创新 2008(2) 7.张建平.刘庆滨生物制氢过程实现温度控制的解决方案[期刊论文]-自动化技术与应用 2005(5) 8.董红生基于多点频率特性辨识的自整定 PID控制器的研究[期刊论文]-自动化技术与应用 2005(5) 9.张索峰.李平基于改进粒子群算法的PID参数整定[期刊论文]-工业仪表与自动化装置 2010(2) 10.张俐基于小生境遗传算法的MTSP问题求解[期刊论文]-系统工程 2009(7) 11.吴春富基于遗传算法优化的模糊PID控制研究[期刊论文]-自动化技术与应用 2005(7) 12.乔志杰.程翠翠基于遗传算法优化的模糊PID控制研究及其仿真[期刊论文]-皖西学院学报 2009(5) 13.乔志杰.程翠翠基于遗传算法优化的模糊PID控制研究及其仿真[期刊论文]-安徽电气工程职业技术学院学报

遗 传 算 法 详 解 ( 含 M A T L A B 代 码 )

遗传算法入门(上)代码中的进化学说与遗传学说 写在之前 算法所属领域 遗传算法的思想解析 为什么要用遗传算法? 科研现状 应用现状 遗传算法入门系列文章: (中篇)遗传算法入门(中)实例,求解一元函数最值(MATLAB版)(下篇)遗传算法入门(下)实例,求解TSP问题(C++版) 写在之前 说明:本想着用大量篇幅写一篇“关于遗传算法的基本原理”作为本系列入门的第一篇,但是在找寻资料的过程中,看到网络上有大量的关于遗传算法的介绍,觉得写的都挺好,所以本文我就简单写点自己的理解。 推荐几篇关于遗传算法的介绍性文章: 遗传算法详解(GA)(个人觉得很形象,很适合初学者) 算法所属领域 ? 相信每个人学习一门知识之前,都会想知道这门知识属于哪一门学科范畴,属于哪一类技术领域? ? 首先对于这种问题,GA是没有绝对的归属的。算法的定义是解决问题的一种思想和指导理论。而遗传算法也是解决某一问题的一种思想,用

某一编程语言实现这种思想的程序具有很多特点,其中一个便是智能性和进化性,即,不需要大量的人为干涉,程序本身能够根据一定的条件自我筛选,最终得出令人满意的结果。所以按照这种特性,把它列为人工智能领域下的学习门类毫无疑问是可以的。遗传算法的思想是借鉴了达尔文的进化学说和孟德尔的遗传学说,把遗传算法说成是一门十足的仿生学一点都不过分。然而从应用的角度出发,遗传算法是求最优解问题的好方法,如信号处理中的优化、数学求解问题、工业控制参数最优解、神经网络中的激活函数、图像处理等等,所以把遗传算法说成优化范畴貌似也说的过去。为了方便理解,我们可以暂时将其定位为人工智能–智能优化,这也是很多书中描述遗传算法的惯用词汇。 遗传算法的思想解析 遗传算法(gentic algorithms简称GA)是模拟生物遗传和进化的全局优化搜索算法 ? 我们知道,在人类的演化中,达尔文的进化学说与孟德尔的遗传学说起着至关重要的理论指导。每个人作为一个个体组成一个人类种群,正是经历着物竞天择,才会让整个群体慢慢变的更好,即更加适应周围的环境。而每一代正是靠着基因交叉与变异才能繁衍出更加适应大自然规律的下一代个体。总之,在漫长的迭代进化中,一个不适应环境的群体,在物竞天择和交叉变异中慢慢变的适应了环境。 ? GA的思想完全模拟了生物的进化和遗传方式。我们在求解一个问题的最优解时,先人为的产生很多任意的解,组成一个解集(一个解是一个个体,一个解集是一个种群),这些解有好有坏。我们的最终目的是让这

遗传算法的流程图

一需求分析 1.本程序演示的是用简单遗传算法随机一个种群,然后根据所给的交叉率,变异率,世代数计算最大适应度所在的代数 2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的命令;相应的输入数据和运算结果显示在其后。3.测试数据 输入初始变量后用y=100*(x1*x1-x2)*(x1*x2-x2)+(1-x1)*(1-x1)其中-2.048<=x1,x2<=2.048作适应度函数求最大适应度即为函数的最大值 二概要设计 1.程序流程图 2.类型定义 int popsize; //种群大小 int maxgeneration; //最大世代数 double pc; //交叉率 double pm; //变异率 struct individual

{ char chrom[chromlength+1]; double value; double fitness; //适应度 }; int generation; //世代数 int best_index; int worst_index; struct individual bestindividual; //最佳个体 struct individual worstindividual; //最差个体 struct individual currentbest; struct individual population[POPSIZE]; 3.函数声明 void generateinitialpopulation(); void generatenextpopulation(); void evaluatepopulation(); long decodechromosome(char *,int,int); void calculateobjectvalue(); void calculatefitnessvalue(); void findbestandworstindividual(); void performevolution(); void selectoperator(); void crossoveroperator(); void mutationoperator(); void input(); void outputtextreport(); 4.程序的各函数的简单算法说明如下: (1).void generateinitialpopulation ()和void input ()初始化种群和遗传算法参数。 input() 函数输入种群大小,染色体长度,最大世代数,交叉率,变异率等参数。 (2)void calculateobjectvalue();计算适应度函数值。 根据给定的变量用适应度函数计算然后返回适度值。 (3)选择函数selectoperator() 在函数selectoperator()中首先用rand ()函数产生0~1间的选择算子,当适度累计值不为零时,比较各个体所占总的适应度百分比的累计和与选择算子,直到达到选择算子的值那个个体就被选出,即适应度为fi的个体以fi/∑fk的概率继续存在; 显然,个体适应度愈高,被选中的概率愈大。但是,适应度小的个体也有可能被选中,以便增加下一代群体的多样性。 (4)染色体交叉函数crossoveroperator() 这是遗传算法中的最重要的函数之一,它是对个体两个变量所合成的染色体进行交叉,而不是变量染色体的交叉,这要搞清楚。首先用rand ()函数产生随机概率,若小于交叉概率,则进行染色体交叉,同时交叉次数加1。这时又要用rand()函数随机产生一位交叉位,把染色

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

实验十遗传算法与优化问题 一、问题背景与实验目的 遗传算法(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 变异染色体水平上基因变化编码的某些元素被改变

遗传算法的参数整定报告

基于遗传算法的PID控制器参数整定报告 一、遗传算法。 遗传算法(GAs)是基于自然界生物进化机制的搜索寻优技术。用遗传算法来整定PID参数,可以提高优化性能,对控制系统有良好的控制精度、动态性能和鲁棒性。 一般的,Gas包括三个基本要素:复制、交叉和突变。 二、PID Optimal-Tuning PID控制:对偏差信号e(t)进行比例、积分和微分运算变换后形成的一种控制规律。 (1) 可调参数:比例度δ(P)、积分时间Ti(I)、微分时间Td(D)。 通常,PID控制准则可以写成下面传递函数的形式: ) 1( ) (s T T s K s G d i p + + =(2) Kp、Ti和Td分别是比例放大率、积分时间常量和微分时间常量。 1)比例控制(P):是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误 差(Steady state error),比例度减小,稳态误差减小; 2)积分(I)控制:在积分控制中,控制器的输出与输入误差信号的积分成正比关系。 3)微分(D)控制:在微分控制中,控制器的输出与输入误差信号()()()()? ? ? ? ? ? + + =?t e dt d T d e T t e K t u d t i p0 1 τ τ

的微分(即误差的变化率)成正比关系。 文中,性能指标是误差平方的时间加权积分,表示为: ),,1,0(,0 2n k dt e t J i t k ==? (3) 其中n 是非负整数,i t 是积分周期。此外,其他标准项如超调量、上升时间和稳定时间也被一个合成性能指标选择: ))(1(s s r r c t c t c os J ++= (4) s r os t t 、、分别代表超调量、上升时间和稳定时间。s r c 、c 两个系数有用户定义或决定。预期的性能指标的最下化可以认为是小的超调量、短的上升时间和稳定时间。 三个PID 参数的编码方式如下: 10101011:S 1010100011100111 p K i K d K p K 、i K 和d K 都是八位二进制字符格式。 自适应函数的选择关系到性能指标,如: 101)(J J F F == (5) 实际上,)(J F 可以是任何一个能切实表达F 和J 关系的非线性函数。 遗传操作是模拟生物基因遗传的操作,从优化搜索的角度而言,遗传操作可使问题的解一代一代地优化,并逼近最优解,主要包括三个遗传算子:选择、交叉和变异。关于他们的具体方法这里不在赘述。 三、 计算机实现 作者编程使用的事TURBO C 。程序包括两个部分:一个是仿真PID 控制系统的闭环阶跃响应;另一个是实施对一代所有成员的遗传算法的仿真,这里遗传算法将一代作为一个整体。在第一代生物的二进制代码随机产生之后,这个过程重复直至迭代次数达到预选的次数。 步长、PID 参数X 围、性能指标、自适应函数和方法得时间延迟都是从一个文件中读取。而遗传算法的的参数,诸如世代数、交叉概率、变异概率、选择概率等通过菜单选择。 整个闭环系统仿真的完成可以用四阶龙格库塔法或直接时域计算。在程序中,复制的实现是通过轮盘赌博法的线性搜索,面积加权于上一代成员的适应值。交叉发生在每一对复制产生的成员。 交叉操作是将一个随机产生的一个在0到1之间数与交叉概率比较决定是否需要交叉。如果需要交叉,则在1到47之间随机产生一个交叉位置代码。变异,对新一代所有成员都随机产生一个0到1之间的数与变异概率比较,然后再决定是否改变代码的一位。同理,反转也是这样判定和操作的。另一需要说明的事,两个反转位置代码是在1~48之间随机选择的。同样,

遗传算法的数据挖掘综述

基于遗传算法的数据挖掘综述 朱玲 (江西理工大学信息工程学院,赣州市中国 341000) 摘要:本文定义了遗传算法概念和理论的来源,介绍遗传算法的研究方向和应用领域,解释了遗传算法的相关概念、编码规则、三个主要算子和适应度函数,描述遗传算法计算过程和参数的选择的准则,并且在给出的遗传算法的基础上结合实际应用加以说明。 关键词:数据挖掘;遗传算法 Data Mining Based on Genetic Algorithm Zhu Ling (College of Information Engineering, Jiangxi University of Science and Technology, Ganzhou, China 341000) Abstract:This paper defines the concept of genetic algorithm and the source of the theory, introduces the research direction and application field of genetic algorithm, explains the related concepts, coding rules, three main operators and fitness functions of genetic algorithm, describes the genetic algorithm calculation process and Parameter selection criteria, and in the given genetic algorithm based on the combination of practical applications to be explained. Key words: data mining; genetic algorithm 前言 遗传算法(genetic algorithm,GAs)试图计算模仿自然选择的过程,并将它们运用于解决商业和研究问题。遗传算法于20世界六七十年代由John Holland[1] 发展而成。它提供了一个用于研究一些生物因素相互作用的框架,如配偶的选择、繁殖、物种突变和遗传信息的交叉。在自然界中,特定环境限制和压力迫使不同物种竞争以产生最适应于生存的后代。在遗传算法的世界里,会比较各种候选解的适合度,最适合的解被进一步改进以产生更加优化的解。 遗传算法借助了大量的基因术语。遗传算法的基本思想基于达尔文的进化论和孟德尔的遗传学说,是一类借鉴生物界自然选择和自然遗传机制的随机搜索算法。生物在自然界的生存繁殖,显示对其自然环境的优异自适应能力。受其启发,人们致力于对生物各种生存特性的机制研究和行为模拟。通过仿效生物的进化与遗传,根据“生存竞争”和“优胜劣汰”的原则,借助选择、交叉、变异等操作,使所要解决的问题从随机初始解一步步逼近最优解。现在已经广泛的应用于计算机科学、人工智能、信息技术及工程实践。[2]在工业、经济管理、交通运输、工业设计等不同领域,成功解决了许多问题。例如,可靠性优化、流水车间调度、作业车间调度、机器调度、设备布局设计、图像处理以及数据挖掘等。遗传算法作为一类自组织于自适应的人工智能技术,尤其适用于处理传统搜索方法难以解决的复杂的和非线性的问题。 1.遗传算法的应用领域和研究方向 1.1遗传算法的特点 遗传算法作为一种新型、模拟生物进化过程的随机化搜索方法,在各类结构对象的优化过程中显示出比传统优化方法更为独特的优势和良好的性能。它利用其生物进化和遗传的思想,所以它有许多传统算法不具有的特点[3]: ※搜索过程不直接作用在变量上,而是作用于由参数集进行了编码的个体上。此编码操作使遗传算法可以直接对结构对象进行操作。 ※搜索过程是从一组解迭代到另一组解,采

最新最全的遗传算法工具箱及说明

最新最全的遗传算法工具箱Gaot_v5及说明 Gaot_v5下载地址:https://www.360docs.net/doc/c31205109.html,/mirage/GAToolBox/gaot/gaotv5.zip 添加遗传算法路径: 1、 matlab的file下面的set path把它加上,把路径加进去后在 2、 file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下,就OK了

遗传算法工具箱Gaot_v5包括许多实用的函数,各种算子函数,各种类型的选择方式,交叉、变异方式。这些函数按照功能可以分成以下几类:

主程序 ga.m提供了 GAOT 与外部的接口。它的函数格式如下: [x endPop bPop traceInfo]=ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps, selectFn,selectOps,xOverFNs,xOverOps,mutFNs,mutOps) 输出参数及其定义如表 1 所示。输入参数及其定义如表 2 所示。 表1 ga.m的输出参数 输出参数 定义 x 求得的最好的解,包括染色体和适应度 endPop 最后一代染色体(可选择的) bPop 最好染色体的轨迹(可选择的) traceInfo 每一代染色体中最好的个体和平均适应度(可选择的) 表2 ga.m的输入参数 表3 GAOT核心函数及其它函数

核心函数: (1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数 【输出参数】 pop--生成的初始种群 【输入参数】 num--种群中的个体数目 bounds--代表变量的上下界的矩阵 eevalFN--适应度函数 eevalOps--传递给适应度函数的参数 options--选择编码形式(浮点编码或是二进制编码)[precision F_or_B],如 precision--变量进行二进制编码时指定的精度 F_or_B--为1时选择浮点编码,否则为二进制编码,由precision指定精度) (2)function [x,endPop,bPop,traceInfo] = ga(bounds,evalFN,evalOps,startPop,opts,... termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)--遗传算法函数 【输出参数】 x--求得的最优解 endPop--最终得到的种群 bPop--最优种群的一个搜索轨迹 【输入参数】

遗传算法与组合优化.

第四章 遗传算法与组合优化 4.1 背包问题(knapsack problem ) 4.1.1 问题描述 0/1背包问题:给出几个尺寸为S 1,S 2,…,S n 的物体和容量为C 的背包,此处S 1,S 2,…,S n 和C 都是正整数;要求找出n 个物件的一个子集使其尽可能多地填满容量为C 的背包。 数学形式: 最大化 ∑=n i i i X S 1 满足 ,1C X S n i i i ≤∑= n i X i ≤≤∈1},1,0{ 广义背包问题:输入由C 和两个向量C =(S 1,S 2,…,S n )和P =(P 1,P 2,…,P n )组成。设X 为一整数集合,即X =1,2,3,…,n ,T 为X 的子集,则问题就是找出满足约束条件∑∈≤T i i C X ,而使∑∈T i i P 获得最大的子集T ,即求S i 和P i 的下标子集。 在应用问题中,设S 的元素是n 项经营活动各自所需的资源消耗,C 是所能提供的资源总量,P 的元素是人们从每项经营活动中得到的利润或收益,则背包问题就是在资源有限的条件下,追求总的最大收益的资源有效分配问题。 广义背包问题可以数学形式更精确地描述如下: 最大化 ∑=n i i i X P 1 满足 ,1C X S n i i i ≤∑= n i X i ≤≤∈1},1,0{ 背包问题在计算理论中属于NP —完全问题,其计算复杂度为O (2n ),若允许物件可以部分地装入背包,即允许X ,可取从0.00到1.00闭区间上的实数,则背包问题就简化为极简单的P 类问题,此时计算复杂度为O (n )。

4.1.2 遗传编码 采用下标子集T 的二进制编码方案是常用的遗传编码方法。串T 的长度等于n(问题规模),T i (1≤i ≤n )=1表示该物件装入背包,T i =0表示不装入背包。基于背包问题有近似求解知识,以及考虑到遗传算法的特点(适合短定义距的、低阶的、高适应度的模式构成的积木块结构类问题),通常将P i ,S i 按P i /S i 值的大小依次排列,即P 1/S 1≥P 2/S 2≥…≥P n /S n 。 4.1.3 适应度函数 在上述编码情况下,背包问题的目标函数和约束条件可表示如下。 目标函数:∑==n i i i P T T J 1 )( 约束条件:C S T n i i i ≤∑=1 按照利用惩罚函数处理约束条件的方法,我们可构造背包问题的适应度函数f (T )如下式: f (T ) = J (T ) + g (T ) 式中g (T )为对T 超越约束条件的惩罚函数,惩罚函数可构造如下: 式中E m 为P i /S (1≤i ≤n )i 的最大值,β为合适的惩罚系数。 4.2 货郎担问题(Traveling Salesman Problem ——TSP ) 在遗传其法研究中,TSP 问题已被广泛地用于评价不同的遗传操作及选择机制的性能。之所以如此,主要有以下几个方面的原因: (1) TSP 问题是一个典型的、易于描述却难以处理的NP 完全(NP-complete )问题。有效地 解决TSP 问题在可计算理论上有着重要的理论价值。 (2) TSP 问题是诸多领域内出现的多种复杂问题的集中概括和简化形式。因此,快速、有效 地解决TSP 问题有着极高的实际应用价值。 (3) TSP 问题因其典型性已成为各种启发式的搜索、优化算法的间接比较标准,而遗传算法 就其本质来说,主要是处理复杂问题的一种鲁棒性强的启发式随机搜索算法。因此遗传算法在TSP 问题求解方面的应用研究,对于构造合适的遗传算法框架、建立有效的遗传操作以及有效地解决TSP 问题等有着多方面的重要意义。

遗传算法工具箱识别(GA)Bouc-Wen模型参数辨识-识别

Bouc-Wen模型因数字处理方便简单而得到较为广泛的应用,力可以表示为: 利用遗传算法工具箱(GA)对Bouc-Wen模型进行参数识别。 实验数据来源于对磁流变阻尼器(MR damper)进行性能测试,试验获得的数据包括力F,位移x,采用频率已知,速度和加速度可以由位移求导得出。 参数识别出现程序如下:(文件名:Copy_0_of_BoucWen) function j=myfung(x) y0=[0]; yy=y0; tspan=[]'; s=[]'; v=[]'; Ft=[]'; rr=max(size(s));%计算数据个数 i=1; while (i1e5))%%判断是否出现奇异点,具体忘了。。 [t y]=ode45(@uubird,[tspan(i),tspan(i+1)],y0,[],v(i),x);%参考论坛的 y0=y(end,:); yy=[yy;y0]; i=i+1;

kk=max(size(y)); if kk>150 %微分方程计算,停止是有条件的(具体没去研究),这边设置150次,不管有没有收敛,都停止,不然整个程序运行的实际太久,你也可以改成其他的,慢慢研究 break; end end if (i==rr)&(~isnan(yy(1,1)))==1%判断是否出现奇异点(就是NAN),如果没有出现,就是正常的 F=x(:,4)*yy(:,1)+x(:,5)*(s-ones(size(s))*x(:,6))+x(:,7)*v;%x(:,4)代表alpha 5代表k0,6代表s0 7代表c0 位移s就是公式中的x j=sum((F-Ft).*(F-Ft)); i=i+1; else i<(rr-1)%出现奇异点(NAN) j=1e10;%因为出现奇异值,所以随便给一个目标函数值(这个要足够大),目的是排除这组优化值(也就是这个种群不要) i=rr; end function dy=uubird(t,y,v,x)

遗 传 算 法 详 解 ( 含 M A T L A B 代 码 )

matlab遗传算法工具箱函数及实例讲解(转引) 核心函数:? (1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数?【输出参数】? ?pop--生成的初始种群?【输入参数】? ?num--种群中的个体数目? ?bounds--代表变量的上下界的矩阵? ?eevalFN--适应度函数? ?eevalOps--传递给适应度函数的参数? ?options--选择编码形式(浮点编码或是二进制编码)[precision F_or_B],如? precision--变量进行二进制编码时指定的精度? F_or_B--为1时选择浮点编码,否则为二进制编码,由precision指定精度)? (2)function [x,endPop,bPop,traceInfo] = ga(bounds,evalFN,evalOps,startPop,opts.? ?termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs ,mutOps)--遗传算法函数?【输出参数】? x--求得的最优解? endPop--最终得到的种群?

bPop--最优种群的一个搜索轨迹?【输入参数】? bounds--代表变量上下界的矩阵? evalFN--适应度函数? evalOps--传递给适应度函数的参数? startPop-初始种群? opts[epsilon prob_ops display]--opts(1:2)等同于initializega 的options参数,第三个参数控制是否输出,一般为0。如[1e-6 termFN--终止函数的名称,如['maxGenTerm']? termOps--传递个终止函数的参数,如[100]? selectFN--选择函数的名称,如['normGeomSelect']? selectOps--传递个选择函数的参数,如[0.08]? xOverFNs--交叉函数名称表,以空格分开,如['arithXover heuristicXover simpleXover']? xOverOps--传递给交叉函数的参数表,如[2 0;2 3;2 0]? mutFNs--变异函数表,如['boundaryMutation multiNonUnifMutation nonUnifMutation unifMutation']? mutOps--传递给交叉函数的参数表,如[4 0 0;6 100 3;4 100 3;4 0 0]?注意】matlab工具箱函数必须放在工作目录下?【问题】求f(x)=x+10*sin(5x)+7*cos(4x)的最大值,其中0=x=9?【分析】选择二进制编码,种群中的个体数目为10,二进制编码长度为20,交叉概率为0.95,变异概率为0.08?【程序清单】?

遗传算法的参数整定报告

基于遗传算法的PID 控制器参数整定报告 一、 遗传算法。 遗传算法(GAs )是基于自然界生物进化机制的搜索寻优技术。用遗传算法来整定PID 参数,可以提高优化性能,对控制系统有良好的控制精度、动态性能和鲁棒性。 一般的,Gas 包括三个基本要素:复制、交叉和突变。 二、 PID Optimal-Tuning PID 控制:对偏差信号e(t)进行比例、积分和微分运算变换后形成的一种控制规律。 (1) 可调参数:比例度δ(P )、 积分时间Ti (I )、微分时间Td (D )。 通常,PID 控制准则可以写成下面传递函数的形式: )1()(s T T s K s G d i p ++= (2) Kp 、Ti 和Td 分别是比例放大率、积分时间常量和微分时间常量。 1) 比例控制(P ):是一种最简单的控制方式。其控制器的输出与输 入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误 差(Steady state error ),比例度减小,稳态误差减小; 2) 积分(I )控制:在积分控制中,控制器的输出与输入误差信号 的积分成正比关系。 3) 微分(D )控制:在微分控制中,控制器的输出与输入误差信号 的微分(即误差的变化率)成正比关系。 文中,性能指标是误差平方的时间加权积分,表示为: ),,1,0(,0 2n k dt e t J i t k Λ==? (3) 其中n 是非负整数,i t 是积分周期。此外,其他标准项如超调量、上升时间和稳定时间 ()()()()??????++=? t e dt d T d e T t e K t u d t i p 01ττ

基于遗传算法的参数优化估算模型

基于遗传算法的参数优化估算模型 【摘要】支持向量机中参数的设置是模型是否精确和稳定的关键。固定的参数设置往往不能满足优化模型的要求,同时使得学习算法过于死板,不能体现出来算法的智能化优点,因此利用遗传算法(Genetic Algorithm,简称GA)对估算模型的参数进行优化,使得估算模型灵活、智能,更加符合实际工程建模的需求。 【关键词】遗传算法;参数优化;估算模型 1.引言 随着支持向量机估算模型在工程应用的不断深入。研究发现,支持向量机算法(包括LS-SVM算法)存在着一些本身不可避免的缺陷,最为突出的是参数的选取和优化问题,以往在参数选取方面,一般依靠专家系统或者设定初始值盲目搜寻等等,在实际应用必然会影响模型的精准度,造成一定影响。如何选取合理的参数成为支持向量机算法应用过程中应用中关注的问题,同时也是目前应用研究的重点。而常用的交叉验证试算的方法,不仅耗时,且搜索目的不清,使得资源浪费,耗时耗力。不能有效的对参数进行优化。 针对参选取的问题,本文使用GA算法对模型中的参数设置进行优化。 2.遗传算法 2.1 遗传算法的实施过程 遗传算法的实施过程中包括了编码、产生群体、计算适应度、复制、交换、变异等操作。图1详细的描述了遗传算法的流程。 其中,变量GEN是当前进化代数;N是群体规模;M是算法执行的最大次数。 遗传算法在参数寻优过程中,基于生物遗传学的基本原理,模拟自然界生物种群的“物竞天则,适者生存”的自然规律。把自变量看作生物体,把它转化成由基因构成的染色体(个体),把寻优的目标函数定义为适应度,未知函数视为生存环境,通过基因操作(如复制、交换和变异等),最终求出全局最优解。 2.2 GA算法的基本步骤 遗传算法操作的实施过程就是对群体的个体按照自然进化原则(适应度评估)施加一定的操作,从而实现模型中数据的优胜劣汰,使得进化过程趋于完美。从优化搜索角度出发,遗传算法可使问题的解,一代一代地进行优化,并逼近最优解。 通常采用的遗传算法的工作流程和结果形式有Goldberg提出的,常用的GA 算法基本步骤如下: ①选择编码策略,把参数集合X和域转换为位串结构空间S。常用的编码方法有二进制编码和浮点数编码。 ②定义合适的适应度函数,保证适应度函数非负。 ③确定遗传策略,包括选择群体大小,选择、交叉、变异方法,以及确定交叉概率、变异概率等其它参数。 ④随机初始化生成群体N,常用的群体规模:N=20~200。 ⑤计算群体中个体位串解码后的适应值。 ⑥按照遗传策略,运用选择、交叉和变异算子作用于群体,形成下一代群体。 ⑦判断群体性能是否满足某一个指标,或者以完成预订迭代次数,若满足则

基于遗传算法的PID参数整定

摘要:研究自动控制器参数整定问题,PID参数整定是自动控制领域研究的重要内容,系统参数选择决定控制的稳定性和快速性,也可保证系统的可靠性。传统的PID参数多采用试验加试凑的方式由人工进行优化,往往费时而且难以满足控制的实时要求。为了解决控制参数优化,改善系统性能,提出一种遗传算法的PID 参数整定策略。 在本文里,通过介绍了遗传算法的基本原理,并针对简单遗传算法在PID控制中存在的问题进行了分析,提出在不同情况下采用不同的变异概率的方法,并对其进行了实验仿真。结果表明,用遗传算法来整定PID参数,可以提高优化性能,对控制系统具有良好的控制精度、动态性能和鲁棒性。 关键词:PID控制器;遗传算法;整定PID 1 引言 传统的比例、积分、微分控制,即PID控制具有算法简单、鲁棒性好和可靠性高等优点,已经被广泛用于工业生产过程。但工程实际中,PID控制器的比例、积分和微分调节参数往往采用实验加试凑的方法由人工整定。这不仅需要熟练的技巧,往往还相当费时。更为重要的是,当被控对象特性发生变化,需要控制器参数作相应调整时,PID控制器没有自适应能力,只能依靠人工重新整定参数,由于经验缺乏,整定结果往往达不到最优值,难以满足实际控制的要求。考虑生产过程的连续性以及参数整定费事费力,这种整定实际很难进行。所以,人们从工业生产实际需要出发,基于常规PID控制器的基本原理,对其进行了各种各样的改进。近年来许多学者提出了基于各种智能算法的PID整定策略,如模糊PID,神经元网络PID等…,但这些先进算法都要求对被控对象有很多的先验知识,在实际应用中往往难于做到。随着计算技术的发展,遗传算法有了很大的发展。将遗传算法用于控制器参数整定,已成为遗传算法的重要应用之一。 本文介绍基于遗传算法的PID参数整定设计方法。这是一种寻求全局最优的控制器优化方法,且无需对目标函数微分,可提高参数优化效果,简化计算过程。仿真实例表明该方法与其他传统寻优方法相比,在优化效果上具有一定的优势。 2 遗传算法简介 2.1 遗传算法的基本原理 遗传算法是John H.Holland根据生物进化的模型提出的一种优化算法。自然选择学说是进化论的中心内容。根据进化论,生物的发展进化主要有三个原因:即遗传、变异和选择。遗传算法基于自然选择和基因遗传学原理的搜索方法,将“优胜劣汰,适者生存”的生物进化原理引入待优化参数形成的编码串群体中,按照一定的适应度函数及一系列遗传操作对各个体进行筛选,从而使适应度高的个体被保留下来,组成新的群体;新群体包含上一代的大量信息,并且引入了新的优于上一代的个体。这样周而复始,群体中各个体适应度不断提高,直至满足一定的极限条件。此时,群体中适应度最高的个体即为待优化问题的最优解。 遗传算法通过对参数空间编码并用随机选择作为工具来引导搜索过程朝着更高效的方向发展。正是由于遗传算法独特的工作原理,使它能够在复杂空间进行全局优化搜索,具有较强的鲁棒性。另外,遗传算法对于搜索空问,基本上不需要什么限制性的假设(如连续、可微及单峰等)。而其它优化算法,如解析法,往往只能得到局部最优解而非全局最优解,且需要目标函数连续光滑及可微;枚举

相关文档
最新文档