文章目录

  • 1. 问题
  • 2. 程序
    • 2.1 目标函数
    • 2.2 约束条件
    • 2.3 主函数
  • 3. 附录

摘要
本文以一个双变量的目标函数优化问题为例,借助MATLAB内置的遗传算法进行优化分析。

1. 问题

最小化如下包含两个变量的目标函数
min⁡xf(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} xmin​f(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. ⎩⎪⎨⎪⎧​​x1​x2​+x1​−x2​+1.5≤010−x1​x2​≤00≤x1​≤1 and 0≤x2​≤13​(2)

2. 程序

依托MATLAB,定义目标函数和约束函数

图 1 函数定义与代码对应关系

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 遗传算法求解约束优化问题相关推荐

  1. 【生产优化】基于matlab遗传算法求解帐篷工序问题【含Matlab源码 2145期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [生产优化]基于matlab遗传算法求解帐篷工序问题[含Matlab源码 2145期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  2. 【GA MTSP】基于matlab遗传算法求解多旅行商问题(多且同始终点)【含Matlab源码 1339期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[MTSP]基于matlab遗传算法求解多旅行商问题[ ...

  3. 【GA TSP】基于matlab遗传算法求解旅行商问题【含Matlab源码 1337期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab遗传算法求解旅行商问题[含Matlab源码 1337期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  4. MATLAB遗传算法求解超市物流配送选址问题实例

    遗传算法编程问题实例: MATLAB遗传算法求解超市物流配送中心选址问题代码实例 添加链接描述 在范围为(0,0)到(100,100)的矩形区域内,散布着40个连锁超市,各个连锁超市的坐标及需求量见表 ...

  5. MATLAB遗传算法求解曲面拟合和多参数优化问题代码实例

    MATLAB遗传算法求解曲面拟合和多参数优化问题代码实例 MATLAB遗传算法求解曲面拟合和多参数优化问题代码实例 数据拟合和多参数优化问题实例: 已知一组观测数据(x, y, z)满足一定的函数关系 ...

  6. MATLAB遗传算法求解带过程时间窗和同时取送货的车辆调度问题(VRPSPDTW)代码实例

    MATLAB遗传算法求解带过程时间窗和同时取送货的车辆调度问题(VRPSPDTW)代码实例 实例问题描述:现有一配送中心向14个客户点配送牛奶,并取回奶桶.配总中心和客户点坐标及每个客户点的服务时间如 ...

  7. MATLAB遗传算法求解物流配送中心选址问题优化代码实例

    1.简介 物流分配中心选址问题是指一定数量的客户,它们有不同数量的货物需求,有一定数量的备选中心作为配送中心.配送中心向客户提供货物的配送服务,现需要选择合适的配送中心位置(选址数量一定)或合适的配送 ...

  8. 【GA TSP】基于matlab遗传算法求解旅行商问题【含Matlab源码 1909期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[GA TSP]基于matlab遗传算法求解旅行商问题[含Matlab源码 1909期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...

  9. 【优化充电】基于matlab遗传算法求解电动汽车充电统一管理优化问题(含负荷功率曲线对比图及充电计划)【含Matlab源码 2300期】

    ⛄一.遗传算法求解电动汽车充电统一管理简介 0 引言 电动汽车是一个发展迅速的新兴产业, 它的优势在于性能良好.节能.环保, 近几年受到了科学研究人员和各国政府的广泛关注.但是, 伴随着电动汽车产生的 ...

  10. vrp量子遗传matlab,遗传算法求解VRP问题的技术报告

    利用遗传算法来求解VRP问题. 遗传算法求解VRP问题的技术报告 摘要:本文通过遗传算法解决基本的无时限车辆调度问题.采用车辆和客户对应排列编码的遗传算法,通过种群初始化,选择,交叉,变异等操作最终得 ...

最新文章

  1. Spring中配置DataSource数据源的几种选择
  2. 将整本《绿野仙踪》存入纳米级DNA中,高效准确,读取无压力
  3. 联想电脑怎么进入Android,联想电脑怎么连接手机
  4. boost::foreach模块右值 const_r的测试程序
  5. python网站框架下载_Python搭建网站框架
  6. 分布式Zookeeper安装搭建详解
  7. mysql数据库模糊查询简介
  8. python str函数isdigit、isdecimal、isnumeric的区别
  9. 使用MongoDb连接数据库服务器
  10. 电子元器件自动测试系统
  11. 计算机桌面快捷win10,win10系统桌面计算机快捷图标不见了的修复方案
  12. 配置静态路由和VLAN
  13. Ubuntu Qt 无法覆盖文件 错误解决方法
  14. matlab如何打开word文档,matlab操作word
  15. java输出26个字母_Java语言:输出26个英文字母(从键盘输入)
  16. 实战技法 - 短线操盘 (10)
  17. BT源代码学习心得(六):跟踪服务器(Tracker)的代码分析(初始化) -- 转贴自 wolfenstein (NeverSayNever)
  18. Bat 批处理之 for/f 详解
  19. Flink实操 : DataSource操作
  20. BT下载不死!Magnet(磁力链接)开创网络BT2.0时代!!

热门文章

  1. 计算机无法播放flash,电脑中已安装Flash网页视频还是提示未安装Flash播放器怎么办...
  2. 越南无线网dns服务器设置,越南dns 服务器地址
  3. 计算机虚拟仿真专业,计算机虚拟仿真实验教学中心
  4. python实训报告万能模板_实验报告总结万能模板
  5. zblog仿站教程 - 常用模板标签
  6. python实现文件管理系统_Python - 文件管理系统
  7. “win+PrtSc”图片没有保存到图片文件夹中的问题
  8. 如何通过Python实现蒙特卡罗模拟算法
  9. 一个动态路由OSPF配置实例(eNSP)
  10. php搭建可道云,腾讯云+kodexplorer可道云搭建私有云盘