【代码】matlab-遗传算法工具箱

遗传算法最经典的应用在于规划类问题(其实根本是求最值),由于直接编程太过于复杂,这里结合MATLAB工具包,说说GA算法的用法

例:求f(x)的最小值,f(x)如下所示:

代码:

主函数

matlab 复制代码
%主程序:本程序采用遗传算法接力进化,
%将上次进化结束后得到的最终种群作为下次输入的初始种群
function main()

clc
clear
close all

%进化的代数
T=100;
optionsOrigin=gaoptimset('Generations',T/2);
[x,fval,reason,output,finnal_pop]=ga(@func_tar,2,optionsOrigin);
%进行第二次接力进化
options1=gaoptimset('Generations',T/2,'InitialPopulation',finnal_pop,'PlotFcns',@gaplotbestf);
[x,fval,reason,output,finnal_pop]=ga(@func_tar,2,options1);
Bestx=x
BestFval=fval

func_tar.m

matlab 复制代码
%子函数:适应度函数同时也是目标函数
function f=func_tar(x)
g1=1.5+x(1)*x(2)-x(1)-x(2);
g2=-x(1)*x(2);
if(g1>0||g2>10)
    f=100000;
else
    f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);
end
相关推荐
xxp432112 分钟前
Qt 网络编程 TCP通信
开发语言·qt
T***u33329 分钟前
PHP在电商中的会员管理
开发语言·wireshark·php·ue4·jina
张丶大帅37 分钟前
JS案例合集
开发语言·javascript·笔记
2301_795167201 小时前
Python 高手编程系列八:缓存
开发语言·python·缓存
8***29312 小时前
Go基础之环境搭建
开发语言·后端·golang
Yue丶越2 小时前
【C语言】自定义类型:联合体与枚举
c语言·开发语言
csbysj20202 小时前
DOM 节点
开发语言
小尧嵌入式3 小时前
C++基础语法总结
开发语言·c++·stm32·单片机·嵌入式硬件·算法
@游子3 小时前
Python学习笔记-Day2
开发语言·python
qq_336313933 小时前
java基础-集合进阶
java·开发语言·windows