MATLAB R2018a 全局优化工具箱学习(一)遗传算法_wfanyue的博客-程序员秘密_matlab全局优化工具箱

技术标签: 数学建模  遗传算法  全局优化  MATALB  优化  编程语言学习  


Global Optimization Toolbox
 

在MATLAB R2018a 中发现了全局优化的工具箱以及增加的数据和机器学习工具箱,对于求解全局最优值很是方便。


MATLAB Global Optimization Toolbox 学习:


全局优化工具箱提供了一些函数, 用于寻找包含多个极大值或极小值的问题的全局解。工具箱包括全局搜索、多初始点、模式搜索、遗传算法、多目标遗传算法、模拟退火和粒子群求解。您可以使用这些求解器解决优化问题。通过设置选项和自定义创建、更新和搜索功能, 可以提高规划求解的有效性。您可以使用自定义数据类型与遗传算法和模拟退火求解来表示不容易用标准数据类型表示的问题。混合函数选项使您可以通过在第一个之后应用第二个求解器来改进解决方案。
 

一、ga算法:

遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法。其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解。

[x,fval] = ga(fun,nvars)
[x,fval] = ga(fun,nvars,A,b)
[x,fval] = ga(fun,nvars,A,b,Aeq,beq)
[x,fval] = ga(fun,nvars,A,b,Aeq,beq,lb,ub)
[x,fval] = ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon)
[x,fval] = ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
[x,fval] = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon)
[x,fval] = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon,options)

参数解释:


% x         为所求得的最小值点,而不是最小值

% fval      为对应最小值点x处的最小值

% fun       为目标函数。注:若fun为m文件,要用通过句柄@进行引用

% nvars     为目标函数的未知数个数

% A         线性约束条件:不等式中的系数

% b         线性约束条件:不等式右端的值

%Aeq        线性约束条件:等式中的系数

%beq        线性约束条件:等式右端的值

%lb            x的下界

%ub            x的上界

%nonlcon    非线性约束条件:在MathWorks提供的文档中,是通过函数句柄的方法传入参数,对于约束条件{c<=0;ceq=0},构造一个function,使[c,ceq]作为返回值,c = *(x);ceq = **(x)的形式,nonlcon = @function;

%options    options的用法,相对较为复杂,笔者渣也只是掌握一小部分,以后抽时间再整理出来

%IntCon        整形变量,输入值为变量的位置


说明:在MATLAB的ga函数中,返回值还包括exitflag,scores等。
并且MATLAB中的ga算法,有的时候计算最值并没有粒子群算法等精确,并且由于这些启发式算法在确定初代的时候,初代值一般是随机给出的。因此建议在进行计算的时候,选取多个函数并计算多次,选择合适的值。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wfy_1999/article/details/82053242

智能推荐

计算机开机自检是如何工作的_weixin_33810302的博客-程序员秘密

当你打开PC的电源开关时,PC就会立即开始开机自检(POST,POWER-ON SELT-TEST)过程,POST首先会沿着固定的程序通路向CPU,即微处理器,发出一个电信号,这个电信号会清除CPU内所有的寄存器中遗留的数据,而且还会把CPU中称为程序的计数器的寄存器设置成一个特定的值,程序计数器的值设置为十六进制的F000,程序计数器储存的是CPU将要执行的...

Docker部署RabbitMQ集群(镜像模式+Haproxy)_jiangzhongjie的博客-程序员秘密

一、概念介绍镜像模式:集群模式非常经典的就是Mirror镜像模式,保证100%数据不丢失,在实际工作中也是用的最多的。并且实现集群非常的单间,一般互联网大厂都会构建这种集群模式;Mirror镜像队列,目的是为了保证rabbitmq数据的高可靠性解决方法,主要就是实现数据的同步,一般来是2-3个节点实现数据同步(对以100%数据可靠性解决方案一般是3个节点)集群架构如下:二、部署步骤因为条...

如何在Fragment中使用findViewById呢_android fragment如何findviewbyid_xingyunqi7的博客-程序员秘密

http://blog.csdn.net/NoMasp/article/details/49742475如果你为Fragment在XML文件中创建了什么控件,但findViewById方法却只能被用在Activity类中,所以,有没有办法在Fragment中使用它呢?当然可以,使用getView()方法就OK了,因为这个方法最终会返回当前fragment的根视图。Button btn = (But...

分布式链路追踪-skywalking_skywalking降低采样率会漏采吗?_爱喝酸奶Ooo的博客-程序员秘密

分布式链路追踪-skywalkingskywalking分布式链路追踪-skywalking前言一、skywalking特点1.接入方式2.性能高二、架构设计1.架构图2.实现原理前言目前市面上常见的调用链产品有EagleEye、zipkin、pinpoint、skywalking以及cat,本文以skywalking为主介绍,一个专为云原生结构、微服务和k8s容器和设计的软件。一、skywalking特点1.接入方式采用插件化和java探针的方式,进行字节码增强,实现对接入端无代码入侵。

RK3288 GPIO_weixin_30340775的博客-程序员秘密

简介GPIO, 全称 General-Purpose Input/Output(通用输入输出),是一种软件运行期间能够动态配置和控制的通用引脚。RK3288有9组 GPIO bank: GPIO0,GPIO1, ..., GPIO8。每组又以 A0~A7, B0~B7, C0~C7, D0~D7 作为编号区分(不是所有 bank 都有全部编号,例如 GPIO5 就只有 B0~B7, C0~C3)。...

随便推点

java aviator_Aviator——让表达式飞起来_你十分甜的博客-程序员秘密

《飞行大亨》是我很喜欢的一部电影,不过这里我想介绍的是一个叫Aviator的开源的Java表达式求值器。一、轮子的必要性表达式的求值上,java的选择非常多,强大的如Groovy、JRuby,N年没维护的beanshell,包括javaeye上朋友的IKExpression。为什么还需要Aviator?或者说Aviator的特点是什么?我将Aviator定位在Groovy这样全功能的脚本和IKEx...

Ubuntu16.04用命令释放内存_lxlong89940101的博客-程序员秘密

1、使用下列命令 free  -m 查看,或者使用htop查案(使用sudo apt-get install htop 安装)2、使用下列命令清理内存(效果不是特别的明显)sudo sh -c 'echo 1 &amp;gt; /proc/sys/vm/drop_caches'sudo sh -c 'echo 2 &amp;gt; /proc/sys/vm/drop_caches'sudo sh...

关于 该设备或资源(127.0.0.1)未设置为接受端口 的解决办法_未设置为接受端口26501_Wrysmile0308的博客-程序员秘密

今天谷歌浏览器突然无法进入 GitHub ,然后我诊断了一下网络,提示 该设备或资源(127.0.0.1)未设置为接受端口"10810"上的连接然后查了一下,发现可能和自己以前搭过梯(he)子(xie)动过代理有关,具体处理办法如下:在 设置-高级-系统-打开您计算机的代理设置 中将 自动检测 开关打开即可正常进入,如下图:...

C++开源库大全_c++ im 开源 box_DreamhighMacy的博客-程序员秘密

原文地址:http://www.cnblogs.com/chengyuanchun/p/5107978.html 程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard

SQL语句——聚合函数、分组、子查询及组合查询_刘五分的博客-程序员秘密

一、聚合函数聚合函数:SQL中提供的聚合函数可以用来统计、求和、求最值等等。分类:COUNT:统计行数量SUM:获取单个列的合计值AVG:计算某个列的平均值MAX:计算列的最大值MIN:计算列的最小值首先,创建数据表如下: 1. 执行列、行计数(count):标准格式SELECT COUNT(<计数规范>) FROM <表名>其中,计数规范包括:* :计数所有选择的行,包括NULL值

技术学到多厉害,才能顺利进入BAT?_技术可以有多强_软件供应链安全的博客-程序员秘密

GitChat 作者:天千 原文:如何学好 Linux、C++,并搞定 BAT 面试 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术【不要错过文末彩蛋】简介本科的时候对 Linux 特别感兴趣,心中向往成为一名运维工程师,就开始没日没夜的看相关的书籍,到了大约2013年前后的时候发现 DevOps 开始流行起来了,就开始学习 Python 希望成为一名 DevOps

推荐文章

热门文章

相关标签