Matlab Optimization Toolbox中的遗传算法工具包(GA)

  • matlab optimization 中使用了GA求解器 默认的是小于等于

找到GA 工具包

  • 找到 APP
  • 选择 Optimization Tool

  • 选择Solver 
    • ga - Genetic Algorithm

应用GA solver

定义适应度函数(Fitness function)与问题约束(Constraints)

example one 

  • 优化函数 sin(x) + 2 * cos(x)
  • 极其重要的 inline 方法

 

  • result 

example two

  • 优化函数 sin(x) + 2 * cos(x) + sin(y) + 3 * cos(y) 
    • min = - 5.39834563766817(无约束)
  • 不等约束
    • A【x;y】>= [-0.7;0.2]
    • A = [-1,-1;1,-1]
    • 注意:
      • 我们得到的结果显然是一个周期性的结果,也就是说我们肯定能找出一个满足这个不等约束的解
      • 为了将解约束到我们想要的值,我们得动点脑筋,不过我就不动了
        • x = -arctan 2 + 2n\pi -\pi/2
        • y = -arctan 3 + 2n\pi -\pi/2
>> f2 = @(x) sin(x(1)) + 2 * cos(x(1)) + sin(x(2)) + 3 * cos(x(2));


  • 等式约束
    • B [x;y] = [1,1;0,0][x;y]=[1;0]
    • 也就是变成了 sin(x) + 2 * cos(x) + sin(1-x) + 3 * cos(1-x)


 

设置遗传算法参数(Options)

  • 其实这个我也不懂就是了。。。。。。

实战案例

  • 我们不可能永远只使用GUI界面

MAIN.m 

fun = @(x) (x(1)-1)^2 + (x(2)-1)^2;

% 定义变量的上下界
lb = [-10, -10];
ub = [10, 10];

% 定义非线性约束
nonlcon = @nonlinearConstraint;

% 使用GA求解器进行优化
options = optimoptions('ga', 'Display', 'iter');
[x, fval] = ga(fun, 2, [], [], [], [], lb, ub, nonlcon, options);
disp(x)
disp(fval)

nonlinearConstraint.m

function [c, ceq] = nonlinearConstraint(x)
    % 非线性约束函数
    f1 = @(m, a)  m.^2 + m
    b = 100;
    c = [x(1)^2 + x(2)^2 - 1;   % x1^2 + x2^2 >= 1
         x(1) + x(2) - 2;       % x1 + x2 <= 2
         integral(@(n) f1(n, x(2)), x(1), b)];      
    ceq = [0;0;0];                  
end

优化问题

  • 这个优化问题绝对足够解决你所会预见的全部问题了。

\begin{matrix} min=(x_1-1)^2+(x_2-1)^2,b=10\\ -10<=x_1<=10\\ -10<=x_2<=10\\ x_1+x_2-2<=0\\ x_1^2+x_2^2-1<=0\\ \int_{x_1}^b (x_2*m^2-m)dm >=300\\ \end{matrix}

几次解

 

 

  • 显然
    • 这个问题的解不太稳定,需要多跑几次 
    • 好吧 跑了也没有 毕竟no feasible point found.......

options 设置

  • MAIN.m

fun = @(x) (x(1)-1)^2 + (x(2)-1)^2;

% 定义变量的上下界
lb = [-10, -10];
ub = [10, 10];

% 定义非线性约束
nonlcon = @nonlinearConstraint;

% 使用GA求解器进行优化
% options = optimoptions('ga', 'Display', 'iter');
% for i = 1:10
%     [x, fval] = ga(fun, 2, [], [], [], [], lb, ub, nonlcon, options);
% end
 

  • nonlinearConstraint.m

function [c, ceq] = nonlinearConstraint(x)
    % 非线性约束函数
    f1 = @(m, a)  a * m.^2 - m
    b = 10;
    c = [x(1)^2 + x(2)^2 - 1;   % x1^2 + x2^2 <= 1
         x(1) + x(2) - 2;       % x1 + x2 <= 2
         ];      
    ceq = [0;0;0];                  
end


 

  • Population
  • Fitness scaling
  • Selection
  • Reproduction
  • Mutation
  • Crossover
  • Migration
  • Constraint parameters
  • Hybrid function
  • Stopping criteria 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅谈3D隐式表示(SDF,Occupancy field,NeRF)

本篇文章介绍了符号距离函数Signed Distance Funciton(SDF)&#xff0c;占用场Occupancy Field&#xff0c;神经辐射场Neural Radiance Field&#xff08;NeRF&#xff09;的概念、联系与区别。 显式表示与隐式表示 三维空间的表示形式可以分为显式和隐式。 比较常用的显式表…

高并发与性能优化的神奇之旅

作为公司的架构师或者程序员&#xff0c;你是否曾经为公司的系统在面对高并发和性能瓶颈时感到手足无措或者焦头烂额呢&#xff1f;笔者在出道那会为此是吃尽了苦头的&#xff0c;不过也得感谢这段苦&#xff0c;让笔者从头到尾去探索&#xff0c;找寻解决之法。 目录 第一站…

让数据管理由繁至简的低代码开发平台

随着社会数字化能力的快速升级&#xff0c;各行各业正逐渐迈向数字化转型的新时代。尤其是AI的爆发&#xff0c;数据智能技术正在彻底改变着这个行业的面貌&#xff0c;随着越来越多的企业开始将人工智能、机器学习和大数据分析技术应用到其业务中&#xff0c;数据的价值正在得…

VirtualBox Ubuntu无法安装增强功能以及无法复制粘贴踩坑记录

在VirtualBox安装增强功能想要和主机双向复制粘贴&#xff0c;中间查了很多资料&#xff0c;终于是弄好了。记录一下过程&#xff0c;可能对后来人也有帮助&#xff0c;我把我参考的几篇主要的博客都贴上来了&#xff0c;如果觉得我哪里讲得不清楚的&#xff0c;可以去对应的博…

Vue.js2+Cesium 四、模型对比

Vue.js2Cesium 四、模型对比 Cesium 版本 1.103.0&#xff0c;低版本 Cesium 不支持 Compare 对比功能。 Demo 同一区域的两套模型&#xff0c;实现对比功能 <template><div style"width: 100%; height: 100%;"><divid"cesium-container"…

论文笔记:Adjusting for Autocorrelated Errors in Neural Networks for Time Series

2021 NIPS 原来的时间序列预测任务是根据预测论文提出用一阶自回归误差预测 一阶差分&#xff0c;类似于ResNet的残差思路&#xff1f;记为pred&#xff0c;最终的预测结果

Java:Map的getOrDefault()方法结果仍为null

1、问题 今天在工作中遇到一个问题&#xff0c;在一个通用的数据处理方法中&#xff0c;方法会从一个Map类型参数通过key里获取对象value&#xff0c;但方法的调用者并不都会传递value实例&#xff0c;若没有获取到value则需要初始化一个&#xff0c;处理方式是调用了Map的getO…

大牛练成记:用JavaScript徒手写出一个日期选择插件

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;本文已收录于专栏&#xff1a;100个JavaScript的小应用。 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收…

【C语言】初识指针

【C语言】初识指针 一、指针是什么&#xff1f;二、指针和指针类型1. 指针-整数2. 指针的解引用三、野指针1.野指针成因2 .如何规避野指针四、指针运算五、二级指针七、指针数组 &#x1f388;个人主页&#xff1a;库库的里昂&#x1f390;CSDN新晋作者&#x1f389;欢迎 &…

2023年中职组“网络安全”赛项吉安市竞赛任务书

2023年中职组“网络安全”赛项 吉安市竞赛任务书 一、竞赛时间 总计&#xff1a;360分钟 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略配置 A-3 流量完整性保护 A-4 事件监控 A-5 服务加固…

自定义el-slider 滑块的样式

最近用到了element组件中的滑块&#xff0c;翻看了官网和网上一些案例&#xff0c;感觉和我要的样式都不太一样&#xff0c;下面记录一下我用到的两种自定义滑块。 效果图 第一种自定义画过的间断点样式 起始样式 滑动的样式 第二种自定义拖动滑块的样式 起始样式 滑动的样…

linux环境安装mysql数据库

一&#xff1a;查看是否自带mariadb数据库 命令&#xff1a;rpm -qa | grep mariadb 如果自带数据库则卸载掉重新安装 命令&#xff1a;yum remove mariadb-connector-c-3.1.11-2.el8_3.x86_64 二&#xff1a;下载mysql 命令&#xff1a;wget -i -c http://dev.mysql.com/…

3D Web轻量化渲染开发工具HOOPS Communicator是什么?

HOOPS Communicator是Tech Soft 3D旗下的主流产品之一&#xff0c;具有强大的、专用的高性能图形内核&#xff0c;是一款专注于基于Web端的高级3D工程应用程序。由HOOPS Server和HOOPS Web Viewer两大部分组成&#xff0c;提供了HOOPS Convertrer、Data Authoring的模型转换和编…

软件安全测试和渗透测试的区别在哪?安全测试报告有什么作用?

软件安全测试和渗透测试在软件开发过程中扮演着不同的角色&#xff0c;同时也有不同的特点和目标。了解这些区别对于软件开发和测试人员来说非常重要。本文将介绍软件安全测试和渗透测试的区别&#xff0c;以及安全测试报告在软件开发和测试过程中的作用。 一、 软件安全测试和…

idea集成jrebel实现热部署

文章目录 idea集成jrebel实现热部署下载jrebel 插件包下载jrebel mybatisplus extensition 插件包基础配置信息情况一其次情况三情况四情况五情况六情况七 验证生效与否 Jrebel热部署不生效的解决办法 idea集成jrebel实现热部署 在平常开发项目中&#xff0c;我们通常是修改完…

XCTF_very_easy_sql

简单的进行sql注入测试后发现不简单尝试一下按照提示 结合这句提示应该是内部访问&#xff0c;所以采用的手段应该是ssrf顺便看看包 唯一值得关注的是set-cookie说回ssrf唯一能使用的方式应该是Gopher协议找到了一个POST的python脚本 import urllib.parsepayload ""…

深度学习之反向传播

0 特别说明 0.1 学习视频源于&#xff1a;b站&#xff1a;刘二大人《PyTorch深度学习实践》 0.2 本章内容为自主学习总结内容&#xff0c;若有错误欢迎指正&#xff01; 1 forward&#xff08;前馈运算&#xff09;过程 通过输入相应的x和权重w&#xff08;可能涉及bais偏置…

再探python装饰器

参考视频教学&#xff1a; 可能是b站上最好的Python装饰器教程_哔哩哔哩_bilibili 【python】如何在class内部定义一个装饰器&#xff1f;这里的坑你要么不知道&#xff0c;要么不会填&#xff01;_哔哩哔哩_bilibili 推荐&#xff01;先学习第一个视频&#xff0c;再学习第…

C/C++算法——散列表

1、散列表介绍 散列表的英文叫Hash Table&#xff0c;我们平时也叫它哈希表或者Hash 表。散列表用的是数组支持按照下标随机访问数据的特性&#xff0c;所以散列表其实就是数组的一种扩展&#xff0c;由数组演化而来。可以说&#xff0c;如果没有数组&#xff0c;就没有散列表。…

rdp、ftp协议的密码爆破

远程桌面 rdp协议 3389 文件传输 FTP协议 20 21 攻击方&#xff1a;Kali 测试方&#xff1a;Win7 两台都要在同一网段 密码爆破工具 hydra九头蛇 hydra&#xff08;九头蛇&#xff09;是著名黑客组织thc的一款开源的暴力破解密码工具&#xff0c;功能非常强大&#xff0c;ka…