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

解决问题

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

打开遗传算法工具箱

①在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
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/112708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

jdk对linux cgroup v2容器化环境识别情况

Linux各发行版将cgroups v2作为默认的情况如下: Container-Optimized OS(从 M97 开始)Ubuntu(从 21.10 开始,推荐 22.04)Debian GNU/Linux(从 Debian 11 Bullseye 开始)Fedora&…

GB28181学习(九)——校时

要求 联网内设备支持基于SIP方式或NTP方式的网络校时功能,标准时间为北京时间;系统运行时可根据配置使用具体校时方式; 流程 SIP校时在注册过程中完成,流程同注册和注销流程;在注册成功情况下,注册流程的…

连续/离散的控制系统阶跃测试(包括MATLAB里的step()函数)

阶跃测试 只要是连续时间系统,无论是传递函数还是连续状态空间形式的模型,直接可以用**step()**做阶跃测试;但是对于离散系统而言,不能用step()函数,可以自行编写代码,如下。 1、离散系统:x(k…

leetcode_260. 只出现一次的数字 III

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 解法一:哈希表 typedef struct {int key;UT_hash_handle hh; } HASH_MAP_S;HASH_MAP_S *usrs NULL;int* singleNumber(int* nums, int numsSize, int* returnSize) …

Selenium:Web自动化框架

Selenium自动化入门 1、Selenium概述2、Selenium环境搭建3、Selenium基本操作4、网页元素定位5、操作Cookie6、标签页管理 1、Selenium概述 Selenium(Web Browser Automation)的初衷是Web应用自动化测试。Selenium广泛应用于爬虫,爬虫需要让浏…

短视频矩阵系统源码---开发

一、智能剪辑、矩阵分发、无人直播、爆款文案于一体独立应用开发 抖去推----主要针对本地生活的----移动端(小程序软件系统,目前是全国源头独立开发),开发功能大拆解分享,功能大拆解: 7大模型剪辑法(数学阶乘&#x…

idea 里 没有svn选项的处理办法

总结一下没有svn选项的几种情况: 情况1:IntelliJ IDEA打开带SVN信息的项目不显示SVN信息,项目右键SVN以及图标还有Changes都不显示解决方法 在VCS菜单中有个开关,叫Enabled Version Control Integration,在打开的窗口…

13JVM进阶

JVM内存模型 1、线程私有的数据区 1)、程序计数器 我们知道,线程是CPU调度的基本单位。在多线程情况下,当线程数超过CPU数量或CPU内核数量时,线程之间就要根据 时间片轮询抢夺CPU时间资源。也就是说,在任何一个确定的时刻&#…

掌握 Go 的计时器

简介 定时器是任何编程语言的重要工具,它允许开发人员在特定时间间隔安排任务或执行代码。在 Go 中,定时器是通过 time 包实现的,该包提供了一系列功能来创建、启动、停止和有效处理定时器。我们将探索 Go 中定时器的强大功能,并…

axios发送常见请求方式以及拦截器的封装

一,常见请求 //1.get--传递paramsaxios.get("/test",{params:{}})//2.post--传递paramsaxios.post("/test",{},{params:{}}) //3.post--传递bodyaxios.post("/test",{name:""}) 二,封装请求拦截器 import ax…

[AutoSAR系列] 1.2 AutoSar 综述

AutoSAR是一种汽车工业领域的标准化软件架构,旨在简化不同汽车制造商之间的软件开发和交互。该标准于2003年由一系列欧洲汽车制造商成立的AutoSAR联盟制定并发布,目前已经成为全球范围内的标准。下面将对AutoSAR的概念、架构和实现进行综述。 1. 概述 AutoSAR是汽车电子控制…

全球3小时气象数据集GLDAS Noah Land Surface Model L4 3 hourly 0.25 x 0.25 degree V2.1

简介 全球3小时气象数据集(GLDAS Noah Land Surface Model L4 3 hourly 0.25 x 0.25 degree V2.1,简称GLDAS_NOAH025_3H 2.1),时空分辨率分别为3小时、0.25度。该数据产品于2020年1月重新处理,代替之前版本。前言 – …

npm ERR! exited with error code: 128

1.遇到的问题 报错信息:npm ERR! E:\tools\Gitt\Git\cmd\git.EXE ls-remote -h -t https://github.com/nhn/raphael.git npm ERR! npm ERR! fatal: unable to access https://github.com/nhn/raphael.git/: OpenSSL SSL_read: Connection was reset, errno 10054 …

Python-嗨格式 之音频转换,ncm转mp3

缘由:本想下载一些歌到车机播放,发现大部分是ncm格式的。 查了下才知道是音乐软件限制了,会员下载的音频文件为.ncm格式,目前只能在网易云音乐APP上播放,不支持在其他音频播放软件或音频设备使用。 百度转换软件&…

vscode使用CSScomb插件

1. 安装 在设置中搜索csscomb,把Csscomb: Format On Save勾上 然后去edit in settings.json配置 2.使用 2.1 用官网提供的三种方法 https://github.com/csscomb/csscomb.js/tree/master/config 2.2 自定义 CSS 书写顺序规则可以参考这个荐腾讯 AollyTeam 团队的…

【六:(mock数据)spring boot+mybatis+yml】

目录 1.1、代码编写Demo类User类启动类 APplication 1.2、配置类查询语句的配置 mysql.ymlspringboot的配置 application.yml日志的配置 logback.xml数据库的配置 mybatis-config.xml 1.3、测试:1.3.1、测试获取用户数1.3.2、添加用户1.3.3、数据的更新1.3.4、数据的…

阿里云今年有双十一活动吗?不好说

阿里云今年有双十一活动吗?不好说,因为去年就没有。阿里云双11优惠活动是一项大型的促销活动,每年都有,但是去年没有双十一活动,不知道今年2023年阿里云是否有双11优惠活动。但是阿里云百科aliyunbaike.com猜想&#x…

uni-app:js二维数组与对象数组之间的转换

一、二维数组整理成对象数组 效果 [ ["前绿箭","DI10","RO1"], ["前红叉","DI2","RO2"], ["后绿箭","DI12","RO3"], ["后红叉","DI4","RO6"] ] …

ES6 Generator 函数

Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。 形式上,Generator 函数是一个普通函数,但是有两个特征。一是,function关键字与函数名之间有一个星号;二是,函数体内部使用…