Matlab遗传算法工具箱——一个例子搞懂遗传算法

本文介绍了如何在Matlab中利用遗传算法求解优化问题,包括将问题转换为标准形式,创建目标函数、线性/非线性约束变量,以及设置Solver和Fitnessfunction。详细步骤包括选择遗传算法函数、配置参数和获取最终解。
摘要由CSDN通过智能技术生成

解决问题

我们一般使用遗传算法是用来处理最优解问题的,下面是一个最优解问题的例子在这里插入图片描述

打开遗传算法工具箱

①在Matlab界面找到应用程序选项,点击应用程序(英文版的Matlab可以点击App选项)
在这里插入图片描述
②找到Optimization工具箱,点击打开
在这里插入图片描述

创建所需要的变量

标准形式

首先需要把方程转换为标准形式,也就是所有的方程都需要以的方式连接
目标函数也必须是min类型的,如果是max类型,则需要提取出一个符号后再来求解

创建变量

我们先需要在Matlab的工作区创建以下几个变量:

变量名称变量作用变量形式
f目标函数函数文档形式
A,b线性不等式约束矩阵
Aeq,beq线性不等式约束的左侧系数,右侧约束矩阵
lb,ub决策变量上下界矩阵
c,ceq非线性不等式约束和非线性等式约束函数文档形式

f

在这里插入图片描述

funcition f = optimizations(x)
    f = (x(1)-2)^2 + (x(2)-1)^2 + (x(3)-7)^2 + (x(4)-9)^2
end

A,b

在这里插入图片描述
这里需要注意的是,B矩阵是一个列向量,用来保存所有线性约束的右侧

Aeq,beq

这个例题并未出现线性等式的约束,所以我们可以直接赋值两个空矩阵
在这里插入图片描述

lb,ub

在这里插入图片描述

c,ceq

非线性等式和非线性不等式我们也需要单独用一个函数进行存放
在这里插入图片描述

遗传算法工具箱

在这里插入图片描述

我们需要做以下几个步骤

Solver 是选择函数,我们需要选择最后一个遗传算法的函数
Fitness funcition 是我们的目标函数,用@加上我们创建的函数名即可
Number of variables 是我们变量的个数
Constraints 里面可以填写刚刚我们创建的变量矩阵

需要注意的是,选择整数的那一项我们是无法填写的,因为整数约束会和遗传算法产生冲突
在这里插入图片描述

接着在右侧的Option中,如果我们需要作图,可以勾选前三个选项,如下图
在这里插入图片描述
接着在下面的display to command window改成迭代
在这里插入图片描述
点击Start按键,开始运行遗传算法:
在这里插入图片描述
在最下面的final point可以获得我们的最优解:
在这里插入图片描述
如果需要遗传算法工具箱的源码,可以点击file,找到generate code
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值