Matlab遗传算法
“Matlab遗传算法”相关的资料有哪些?“Matlab遗传算法”相关的范文有哪些?怎么写?下面是小编为您精心整理的“Matlab遗传算法”相关范文大全或资料大全,欢迎大家分享。
遗传算法Matlab源代码
完整可以运行的数值优化遗传算法源代码
function [X,MaxFval,BestPop,Trace]=fga(FUN,bounds,MaxEranum,PopSize,options,pCross,pMutation,pInversion)
% [X,MaxFval,BestPop,Trace]=fga(FUN,bounds,MaxEranum,PopSize,options,pCross,pMutation,pInversion)
% Finds a maximum of a function of several variables.
% fga solves problems of the form:
% max F(X) subject to: LB <= X <= UB (LB=bounds(:,1),UB=bounds(:,2))
% X - 最优个体对应自变量值
% MaxFval - 最优个体对应函数值
% BestPop - 最优的群体即为最优的染色体群
% Trace - 每代最佳个体所对应的目标函数值
% FUN
遗传算法MATLAB程序设计
介绍遗传算法MATLAB程序设计
摘自 Matlab在数学建模中的应用, 北航出版社,2011.4
4.2遗传算法MATLAB程序设计
4.2.1程序设计流程及参数选取 4.2.1.1遗传算法程序设计伪代码
BEGIN
t = 0 ; %Generations NO.
初始化P(t) ; %Initial Population or Chromosomes 计算P(t) 的适应值; while (不满足停止准则) do begin t = t+1 ;
从P(t-1)中选择P(t) ; % Selection
重组P(t) ; % Crossover and Mutation 计算P(t) 的适应值; end END
4.2.1.2遗传算法的参数设计原则
在单纯的遗传算法当中,也并不总是收敛,即使在单峰或单调也是如此。这是因为种群的进化能力已经基本丧失,种群早熟。为了避免种群的早熟,参数的设计一般遵从以下原则[5]:
(1)
遗传算法的MATLAB程序实例
遗传算法的程序实例
f(x)=10*sin(5x)+7*cos(4x) x∈[0,10] 一、初始化(编码)
initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度),
长度大小取决于变量的二进制编码的长度(在本例中取10位)。 代码:
%Name: initpop.m %初始化
function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength));
% rand随机产生每个单元为 {0,1} 行数为popsize,列数为chromlength的矩阵, % roud对矩阵的每个单元进行圆整。这样产生的初始种群。 二、计算目标函数值
1、将二进制数转化为十进制数(1) 代码:
%Name: decodebinary.m
%产生 [2^n 2^(n-1) ... 1] 的行向量,然后求和,将二进制转化为十进制 function pop2=decodebinary(pop)
[px,py]=size(pop);
MATLAB遗传算法PID大作业
遗传算法在调节控制系统参数中的应用
【摘要】自动化控制系统多采用PID控制器来调节系统稳定性和动态性,PID的
Kp,Ki,Kd参数需要合理选择方能达到目标。遗传算法是一种模拟生物进化寻求最优解的有效算法,本文通过利用GAbx工具箱实现对控制电机的PID进行参数优化,利用matlab的仿真功能可以观察控制效果。 1. 直流伺服电机模型 1.1物理模型
图1 直流伺服电机的物理模型
u?---电枢输入电压(V) Ra---电枢电阻(?) LS---电枢电感(H)
uq---感应电动势(V) Tg---电机电磁转矩(N?m) J---转动惯量(kg?m2)
B---粘性阻尼系数(N?m?s) ig---流过电枢的电流(A) ?---电机输出的转角(rad)
1.2传递函数
利用基尔霍夫定律和牛顿第二定律得出电机基本方程并进行拉布拉斯变换
Ua(s)?Uq(s)?Ia(s)?Ra?Las?Ia(s)Tg(s)?Js2??(s)?Bs??(s)Tg(s)?Ia(s)?KtUq(s)?Kes??(s)式中:Kt为电机的转动常数(N?m)A;Ke为感应电动势常数(V?s)rad
Ua(s) Ia(s) 1 Las?RaT
遗传算法MATLAB程序设计
摘自 Matlab在数学建模中的应用, 北航出版社,2011.4
4.2遗传算法MATLAB程序设计
4.2.1程序设计流程及参数选取 4.2.1.1遗传算法程序设计伪代码
BEGIN
t = 0 ; %Generations NO.
初始化P(t) ; %Initial Population or Chromosomes 计算P(t) 的适应值; while (不满足停止准则) do begin t = t+1 ;
从P(t-1)中选择P(t) ; % Selection
重组P(t) ; % Crossover and Mutation 计算P(t) 的适应值; end END
4.2.1.2遗传算法的参数设计原则
在单纯的遗传算法当中,也并不总是收敛,即使在单峰或单调也是如此。这是因为种群的进化能力已经基本丧失,种群早熟。为了避免种
简单的遗传算法MATLAB实现
遗传算法是对达尔文生物进化理论的简单模拟,其遵循“适者生存”、“优胜略汰”的原理。遗传算法模拟一个人工种群的进化过程,并且通过选择、杂交以及变异等机制,种群经过若干代以后,总是达到最优(或近最优)的状态。
自从遗传算法被提出以来,其得到了广泛的应用,特别是在函数优化、生产调度、模式识别、神经网络、自适应控制等领域,遗传算法更是发挥了重大的作用,大大提高了问题求解的效率。遗传算法也是当前“软计算”领域的重要研究课题。
本文首先结合MATLAB对遗传算法实现过程进行详细的分析,然后通过1个实际的函数优化案例对其应用进行探讨。
1. 遗传算法实现过程
现实生活中很多问题都可以转换为函数优化问题,所以本文将以函数优化问题作为背景,对GA的实现过程进行探讨。大部分函数优化问题都可以写成求最大值或者最小值的形式,为了不是一般性,我们可以将所有求最优值的情况都转换成求最大值的形式,例如,求函数f(x)的最大值,
若是求函数f(x)的最小值,可以将其转换成
g(x)=-f(x),然后求g(x)的最大值,
这里x可以是一个变量,也可是是一个由k个变量组成的向量, x=(x1, x2, …, xk)。每个xi, i=1,2,…,k, 其定义域为Di,Di=[ai,
遗传算法选取最优参数MATLAB程序
复制代码
在这里使用启发式算法GA(遗传算法)来进行参数寻优,用网格划分(grid search)来寻找最佳的参数c和g,虽然采用网格搜索能够找到在CV意义下的最高的分类准确率,即全局最优解,但有时候如果想在更大的范围内寻找最佳的参数c和g会很费时,采用启发式算法就可以不必遍历网格内的所有的参数点,也能找到全局最优解。
关于遗传算法这里不打算过多介绍,想要学习的朋友可以自己查看相关资料。
使用GA来进行参数寻优在在libsvm-mat-2.89-3[FarutoUltimate3.0]工具箱中已经实现gaSVMcgForClass.m(分类问题参数寻优)、gaSVMcgForRegress.m(回归问题参数寻优)。
1.
2. 3. 4. 5. 6. 7.
利用GA参数寻优函数(分类问题):gaSVMcgForClass [bestCVaccuracy,bestc,bestg,ga_option]= gaSVMcgForClass(train_label,train,ga_option) 输入:
train_label:训练集的标签,格式要求与svmtrain相同。 train:训练集,格式要求与svmtrain相同。
ga_optio
matlab遗传算法学习和全局化算法
1 遗传算法步骤
1 根据具体问题选择编码方式,随机产生初始种群,个体数目一定,每个个体表现为染色体的基因编码
2 选择合适的适应度函数,计算并评价群体中各个体的适应。
3 选择(selection)。根据各个个体的适应度,按照一定的规则或方法,从当前群体中选择出一些优良的个体遗传到下一代群体
4 交叉(crossover)。将选择过后的群体内的各个个体随机搭配成对,对每一对个体,以一定概率(交叉概率)交换它们中的部分基因。
5 变异(mutation)。对交叉过后的群体中的每一个个体,以某个概率(称为变异概率)改n 变某一个或某一些基因位上的基因值为其他的等位基因
6 终止条件判断。若满足终止条件,则以进化过程中得到的具有最大适应度的个体作为最优解输出,终止运算。否则,迭代执行Step2 至Step5。
适应度是评价群体中染色体个体好坏的标准,是算法进化的驱动力,是自然选择的唯一依据,改变种群结构的操作皆通过适应度函数来控制。在遗传算法中,以个体适应度的大小来确定该个体被遗传到下一代群体中的概率。个体的适应度越大,被遗传到下一代的概率就越大,相反,被遗传到下一代的概率就越小。
1 [a,b,c]=gaopt(bound,fun)其中,b
遗传算法选取最优参数MATLAB程序
复制代码
在这里使用启发式算法GA(遗传算法)来进行参数寻优,用网格划分(grid search)来寻找最佳的参数c和g,虽然采用网格搜索能够找到在CV意义下的最高的分类准确率,即全局最优解,但有时候如果想在更大的范围内寻找最佳的参数c和g会很费时,采用启发式算法就可以不必遍历网格内的所有的参数点,也能找到全局最优解。
关于遗传算法这里不打算过多介绍,想要学习的朋友可以自己查看相关资料。
使用GA来进行参数寻优在在libsvm-mat-2.89-3[FarutoUltimate3.0]工具箱中已经实现gaSVMcgForClass.m(分类问题参数寻优)、gaSVMcgForRegress.m(回归问题参数寻优)。
1.
2. 3. 4. 5. 6. 7.
利用GA参数寻优函数(分类问题):gaSVMcgForClass [bestCVaccuracy,bestc,bestg,ga_option]= gaSVMcgForClass(train_label,train,ga_option) 输入:
train_label:训练集的标签,格式要求与svmtrain相同。 train:训练集,格式要求与svmtrain相同。
ga_optio
使用MATLAB遗传算法工具实例(详细)
最新发布的MATLAB Release 14已经包含了一个专门设计的遗传算法与直接搜索工具箱(Genetic Algorithm and Direct Search Toolbox,GADS)。使用遗传算法与直接搜索工具箱,可以扩展MATLAB及其优化工具箱在处理优化问题方面的能力,可以处理传统的优化技术难以解决的问题,包括那些难以定义或不便于数学建模的问题,可以解决目标函数较复杂的问题,比如目标函数不连续、或具有高度非线性、随机性以及目标函数没有导数的情况。
本章节首先介绍这个遗传算法与直接搜索工具箱,其余各节分别介绍该工具箱中的遗传算法工具及其使用方法。
遗传算法与直接搜索工具箱概述
本节介绍MATLAB的GADS(遗传算法与直接搜索)工具箱的特点、图形用户界面及运行要求,解释如何编写待优化函数的M文件,且通过举例加以阐明。
8.1.1 工具箱的特点
GADS工具箱是一系列函数的集合,它们扩展了优化工具箱和MATLAB数值计算环境的性能。遗传算法与直接搜索工具箱包含了要使用遗传算法和直接搜索算法来求解优化问题的一些例程。这些算法使我们能够求解那些标准优化工具箱范围之外的各种优化问题。所有工具箱函数都是MATLAB的M文件,这些文件由实现特定优化算