MATLAB 遗传算法求解约束优化问题
文章目录
- 1. 问题
- 2. 程序
- 2.1 目标函数
- 2.2 约束条件
- 2.3 主函数
- 3. 附录
摘要
本文以一个双变量的目标函数优化问题为例,借助MATLAB内置的遗传算法进行优化分析。
1. 问题
最小化如下包含两个变量的目标函数
minxf(x)=100(x12−x2)2+(1−x1)2(1)\min_x f(x) = 100(x_1^2-x_2)^2 + (1-x_1)^2 \tag{1} xminf(x)=100(x12−x2)2+(1−x1)2(1)
满足的非线性约束条件和边界条件为:
{x1x2+x1−x2+1.5≤010−x1x2≤00≤x1≤1and 0≤x2≤13(2)\left\{ \begin{aligned} &x_1x_2 + x_1 - x_2 + 1.5 \le 0 \\ &10 - x_1x_2 \le 0 \\ &0 \le x_1 \le 1 \ \text{and} \ 0 \le x_2 \le 13 \end{aligned} \tag{2} \right. ⎩⎪⎨⎪⎧x1x2+x1−x2+1.5≤010−x1x2≤00≤x1≤1 and 0≤x2≤13(2)
2. 程序
依托MATLAB,定义目标函数和约束函数
![]() |
2.1 目标函数
在MATLAB中编写目标函数
function y = myFitness(x)
% 目标函数
% 输入:
% x-对应优化的变量,x(1)-x1, x(2)-x2
% 输出:
% y-对应优化值
y = 100 * (x(1)^2 - x(2))^2 + (1 - x(1))^2;
end
可在命令行键入 myFitness([1,2])
, 检查函数是否正确,正确的输出结果为 100
.
2.2 约束条件
在MATLAB中编写约束条件
function [c,c_eq] = myConstraints(x)
% 约束函数
% 输入:
% x-对应优化的变量,x(1)-x1, x(2)-x2
% 输出:
% c—不等式约束
% c_eq—等式约束
c = [1.5 + x(1)*x(2) + x(1) + x(2);-x(1)*x(2) + 10];
c_eq = [];
end
可在命令行键入 [c, c_eq] = myConstraints([1,2])
, 检查函数是否正确,正确的输出结果为 c = [2.5000 8.0000]',c_eq = []
.
2.3 主函数
在MATLAB中编写主函数,调用内置的GA算法
%% 主函数
% 利用GA(Genetic Algorithm)最小化目标函数
ObjFcn = @myFitness; % 利用@传输目标函数句柄
nvars = 2; % 变量数目
LB = [0,0]; % 变量下限
UB = [1,13]; % 变量上限
ConsFcn = @myConstraints; % 利用@传输约束函数句柄
[x,fval] = ga(ObjFcn,nvars,[],[],[],[],LB,UB,ConsFcn); % 调用遗传算法,x为最优值对应的变量取值,fval为最优值
本例的正确结果为x=[0.8122 12.3166],fval=1.3588e+04
3. 附录
Constrained Optimization with Genetic Algorithm - A MATLAB Tutorial for Beginners
在matlab中使用遗传算法执行最优化
MATLAB 遗传算法求解约束优化问题相关推荐
- 【生产优化】基于matlab遗传算法求解帐篷工序问题【含Matlab源码 2145期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [生产优化]基于matlab遗传算法求解帐篷工序问题[含Matlab源码 2145期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- 【GA MTSP】基于matlab遗传算法求解多旅行商问题(多且同始终点)【含Matlab源码 1339期】
一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[MTSP]基于matlab遗传算法求解多旅行商问题[ ...
- 【GA TSP】基于matlab遗传算法求解旅行商问题【含Matlab源码 1337期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab遗传算法求解旅行商问题[含Matlab源码 1337期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- MATLAB遗传算法求解超市物流配送选址问题实例
遗传算法编程问题实例: MATLAB遗传算法求解超市物流配送中心选址问题代码实例 添加链接描述 在范围为(0,0)到(100,100)的矩形区域内,散布着40个连锁超市,各个连锁超市的坐标及需求量见表 ...
- MATLAB遗传算法求解曲面拟合和多参数优化问题代码实例
MATLAB遗传算法求解曲面拟合和多参数优化问题代码实例 MATLAB遗传算法求解曲面拟合和多参数优化问题代码实例 数据拟合和多参数优化问题实例: 已知一组观测数据(x, y, z)满足一定的函数关系 ...
- MATLAB遗传算法求解带过程时间窗和同时取送货的车辆调度问题(VRPSPDTW)代码实例
MATLAB遗传算法求解带过程时间窗和同时取送货的车辆调度问题(VRPSPDTW)代码实例 实例问题描述:现有一配送中心向14个客户点配送牛奶,并取回奶桶.配总中心和客户点坐标及每个客户点的服务时间如 ...
- MATLAB遗传算法求解物流配送中心选址问题优化代码实例
1.简介 物流分配中心选址问题是指一定数量的客户,它们有不同数量的货物需求,有一定数量的备选中心作为配送中心.配送中心向客户提供货物的配送服务,现需要选择合适的配送中心位置(选址数量一定)或合适的配送 ...
- 【GA TSP】基于matlab遗传算法求解旅行商问题【含Matlab源码 1909期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[GA TSP]基于matlab遗传算法求解旅行商问题[含Matlab源码 1909期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...
- 【优化充电】基于matlab遗传算法求解电动汽车充电统一管理优化问题(含负荷功率曲线对比图及充电计划)【含Matlab源码 2300期】
⛄一.遗传算法求解电动汽车充电统一管理简介 0 引言 电动汽车是一个发展迅速的新兴产业, 它的优势在于性能良好.节能.环保, 近几年受到了科学研究人员和各国政府的广泛关注.但是, 伴随着电动汽车产生的 ...
- vrp量子遗传matlab,遗传算法求解VRP问题的技术报告
利用遗传算法来求解VRP问题. 遗传算法求解VRP问题的技术报告 摘要:本文通过遗传算法解决基本的无时限车辆调度问题.采用车辆和客户对应排列编码的遗传算法,通过种群初始化,选择,交叉,变异等操作最终得 ...
最新文章
- Spring中配置DataSource数据源的几种选择
- 将整本《绿野仙踪》存入纳米级DNA中,高效准确,读取无压力
- 联想电脑怎么进入Android,联想电脑怎么连接手机
- boost::foreach模块右值 const_r的测试程序
- python网站框架下载_Python搭建网站框架
- 分布式Zookeeper安装搭建详解
- mysql数据库模糊查询简介
- python str函数isdigit、isdecimal、isnumeric的区别
- 使用MongoDb连接数据库服务器
- 电子元器件自动测试系统
- 计算机桌面快捷win10,win10系统桌面计算机快捷图标不见了的修复方案
- 配置静态路由和VLAN
- Ubuntu Qt 无法覆盖文件 错误解决方法
- matlab如何打开word文档,matlab操作word
- java输出26个字母_Java语言:输出26个英文字母(从键盘输入)
- 实战技法 - 短线操盘 (10)
- BT源代码学习心得(六):跟踪服务器(Tracker)的代码分析(初始化) -- 转贴自 wolfenstein (NeverSayNever)
- Bat 批处理之 for/f 详解
- Flink实操 : DataSource操作
- BT下载不死!Magnet(磁力链接)开创网络BT2.0时代!!
热门文章
- 计算机无法播放flash,电脑中已安装Flash网页视频还是提示未安装Flash播放器怎么办...
- 越南无线网dns服务器设置,越南dns 服务器地址
- 计算机虚拟仿真专业,计算机虚拟仿真实验教学中心
- python实训报告万能模板_实验报告总结万能模板
- zblog仿站教程 - 常用模板标签
- python实现文件管理系统_Python - 文件管理系统
- “win+PrtSc”图片没有保存到图片文件夹中的问题
- 如何通过Python实现蒙特卡罗模拟算法
- 一个动态路由OSPF配置实例(eNSP)
- php搭建可道云,腾讯云+kodexplorer可道云搭建私有云盘