【代码】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
相关推荐
我材不敲代码几秒前
Python实现打包贪吃蛇游戏
开发语言·python·游戏
身如柳絮随风扬1 小时前
Java中的CAS机制详解
java·开发语言
韩立学长2 小时前
【开题答辩实录分享】以《基于Python的大学超市仓储信息管理系统的设计与实现》为例进行选题答辩实录分享
开发语言·python
froginwe113 小时前
Scala 循环
开发语言
m0_706653233 小时前
C++编译期数组操作
开发语言·c++·算法
故事和你913 小时前
sdut-Java面向对象-06 继承和多态、抽象类和接口(函数题:10-18题)
java·开发语言·算法·面向对象·基础语法·继承和多态·抽象类和接口
Bruk.Liu3 小时前
(LangChain实战2):LangChain消息(message)的使用
开发语言·langchain
qq_423233903 小时前
C++与Python混合编程实战
开发语言·c++·算法
m0_715575344 小时前
分布式任务调度系统
开发语言·c++·算法
csbysj20204 小时前
选择(Selectable)
开发语言