优化模型:MATLAB整数规划

一、整数规划介绍

1.1 整数规划的定义

若规划模型的所有决策变量只能取整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。

1.2 整数规划的分类

整数规划模型大致可分为两类:

(1)变量全限制为整数时,称纯(完全)整数规划。

(2)变量部分限制为整数时,称混合整数规划。

1.3 求解方法分类

  • 分支定界法——可求纯或混合整数线性规划。
  • 割平面法——可求纯或混合整数线性规划。
  • 隐枚举法——求解0-1整数规划
    • 过滤隐枚举法
    • 分枝隐枚举法
  • 匈牙利法——解决指派问题
  • 蒙特卡洛法——求解各类规划问题

1.4 整数规划的数学模型

min ⁡ x f T x \underset{x}{\min}\boldsymbol{f}^T\boldsymbol{x} xminfTx

s . t . { x ( i n t c o n ) A ⋅ x ⩽ b A e q ⋅ x = b e q l b ⩽ x ⩽ u b s.t.\left\{ \begin{array}{c} \boldsymbol{x}\left( intcon \right)\\ \boldsymbol{A}\cdot \boldsymbol{x}\leqslant \boldsymbol{b}\\ Aeq\cdot \boldsymbol{x}=beq\\ lb\leqslant \boldsymbol{x}\leqslant ub\\ \end{array} \right. s.t. x(intcon)AxbAeqx=beqlbxub
式中: f \boldsymbol{f} f, x \boldsymbol{x} x, b \boldsymbol{b} b,beq,lb,ub为列向量; A \boldsymbol{A} A,Aeq为矩阵。

二、案例分析

Matlab求解混合整数线性规划的命令为

[x,fval]=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)这里是引用

例1:利用matlab求解该整数线性规划模型。
max ⁡ z = 100 x 1 + 60 x 2 \max z=100x_1+60x_2 maxz=100x1+60x2
s . t . { 5 x 1 + 2 x 2 ⩽ 270 4 x 1 + 3 x 1 ⩽ 250 3 x 1 + 4 x 2 ⩽ 200 x 2 = 4 x 1 x 1 , x 2 为非负整数 s.t.\left\{ \begin{array}{c} 5x_1+2x_2\leqslant 270\\ 4x_1+3x_1\leqslant 250\\ 3x_1+4x_2\leqslant 200\\ x_2=4x_1\\ x_1,x_2\text{为非负整数}\\ \end{array} \right. s.t. 5x1+2x22704x1+3x12503x1+4x2200x2=4x1x1,x2为非负整数
MATLAB代码:

clc,clear
f=[-100;-60];
intcon=[1,2];
A=[5,2;4,3;3,4];
b=[270;250;200];
aeq=[-4,1];
beq=0;
lb=[0;0];
ub=[inf;inf];
[x,fval]=intlinprog(f,intcon,A,b,aeq,beq,lb,ub)
disp("x1值:" + x(1))
disp("x2值:" + x(2))
disp("最大值:" + (-fval))

求解结果:

例2:利用matlab求解下列混合整数规划问题。
min ⁡ z = − 3 x 1 − 2 x 2 − x 3 \min z=-3x_1-2x_2-x_3 minz=3x12x2x3
s . t . { x 1 + x 2 + x 3 ⩽ 7 4 x 1 + 2 x 2 + x 3 = 12 x 1 , x 2 ≫ 0 x 1 = 0 或 1 s.t.\left\{ \begin{array}{c} x_1+x_2+x_3\leqslant 7\\ 4x_1+2x_2+x_3=12\\ x_1,x_2\gg 0\\ x_1=0\text{或}1\\ \end{array} \right. s.t. x1+x2+x374x1+2x2+x3=12x1,x20x1=01
MATLAB代码:

clc,clear
f=[-3;-2;-1];
intcon=3;%只有第3个变量为整数变量
A=ones(1,3);
b=7;
aeq=[4,2,1];
beq=12;
lb=zeros(3,1);
ub=[inf;inf;1];
[x,fval]=intlinprog(f,intcon,A,b,aeq,beq,lb,ub)

求解结果:

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

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

相关文章

HAL库的常用库函数(根据学习而更新)

目录 一、常用的GPIO相关HAL库函数 1、GPIO的初始化 2、配置GPIO引脚输出电平 3、切换指定引脚的电平,电平的翻转 4、读取指定GPIO引脚的电平 5、结构体 GPIO_InitTypeDef (引脚)定义: 6、高低电平的表示 7、延时函数&…

Java架构师系统架构需求分析实战

目录 1 导语2 需求分析实战3 核心方法论-架构立方体4 功能性模型-模块定义5 功能性模型-模块关系图6 功能性模型-模块细化 想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导语 架构设计的实战和思维方法的讨论,主要聚焦于需求分析的重要性和方…

buuctf-Misc 题目解答分解97-99

97.[BSidesSF2019]zippy 下载完就是一个流量包 追踪tcp nc -l -p 4445 > flag.zip unzip -P supercomplexpassword flag.zip Archive: flag.zip 压缩包密码 supercomplexpassword 保存为 flag.zip 解压得到flag 98.[GUET-CTF2019]虚假的压缩包 先从虚假的压缩包入手 &am…

逆向P1P2总结

字节八位 word 16位 deword 32 位 00 00 00 e8 是存储32位信息的起点 不是程序运行的起点 为什么电脑有32位与64位之分 寻址宽度 以字节为单位 0xfffffff 1 就是最大容量 转为十进制为 4294967296 / 1024 (k)/1024 (kb)/ 1…

软件测试面试八股文——基础篇

5)错误推测法:是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法 6)正交实验法 7)判定表法 8)测试大纲法 3、提交缺陷的八大要素 1)缺陷编号&#xff1a…

数据通信网络基础华为ICT网络赛道

目录 前言: 1.网络与通信 2.网络类型与网络拓扑 3.网络工程与网络工程师 前言: 数据通信网络基础是通信领域的基本概念,涉及数据传输、路由交换、网络安全等方面的知识。华为ICT网络赛道则是华为公司提出的一种技术路径,旨在通…

合并的单元格如何填充连续的序号

希望你以后碰到合并的单元格,不在一个个输入序号,用以下操作帮你输入连续的序号。 一、操作过程如下 1.有一个基准的单元格在同一列,而且这个基准单元格必须得是序号为1的单元格的上面的一个单元格,这样的话后面才能自动递增&am…

Cesium.js三维地图的实现(依托天地图CDN文件)

零、技术选型: Vue2、VueCli5、天地图、Cesium.js 一、通过天地图官网案例实现 需要引入天地图官方提供的CDN链接访问Cesium.js相关文件 相关文件: https://api.tianditu.gov.cn/cdn/demo/sanwei/static/cesium/Cesium.js https://api.tianditu.gov.cn/…

大数据技术学习笔记(十一)—— Flume

目录 1 Flume 概述1.1 Flume 定义1.2 Flume 基础架构 2 Flume 安装3 Flume 入门案例3.1 监控端口数据3.2 实时监控单个追加文件3.3 实时监控目录下多个新文件3.4 实时监控目录下的多个追加文件 4 Flume 进阶4.1 Flume 事务4.2 Flume Agent 内部原理4.3 Flume 拓扑结构4.3.1 简单…

PyQt5和Qt designer的详细安装教程

Qt designer界面和所有组件功能的详细介绍参考:https://blog.csdn.net/qq_43811536/article/details/135186862?spm1001.2014.3001.5501 目录 0. 写在前面1. Anaconda创建虚拟环境2. 安装PyQt5和Qt designer3. 测试安装成功 0. 写在前面 Qt Designer是Qt提供的一种…

智慧互联网银行引领金融变革,开源网安VulHunter护航数字化发展

某银行作为国内知名的互联网银行,以构建“智慧型互联行”为总体战略目标,始终坚持科技赋能金融的理念。通过AI、大数据、云计算等数字技术与金融业务的探索融合,实现以更低的成本为客户提供便捷、高效和优质体验的互联网金融服务。 架构升级助…

操作无法完成(错误 0x000006ba),Windows 11 PDF打印机无法使用解决办法

操作无法完成(错误 0x000006ba),Windows 11 PDF打印机无法使用解决办法 解决方式一 先重启一次电脑,看看是否可以解决问题。 解决方式二 重新启动 Printer Spooler 服务

【JAVA】黑马MybatisPlus 学习笔记【三】【拓展功能】

3.扩展功能 3.1.代码生成 在使用MybatisPlus以后,基础的Mapper、Service、PO代码相对固定,重复编写也比较麻烦。因此MybatisPlus官方提供了代码生成器根据数据库表结构生成PO、Mapper、Service等相关代码。只不过代码生成器同样要编码使用,…

【QT】可执行文件图标由png格式手动改为ico格式,Qt程序报错原因及解决方案

1问题说明: 在修改可执行文件图标时,由png格式手动改为ico格式,Qt程序会报错。 报错如下: 2解决办法: 登录网页 在线生成透明ICO图标——ICO图标制作,利用ico在线生成透明ICO图标 将生成的ico图标由favicon…

CSRF(Pikachu)

CSRF(get) 首先我们先登录账号 admin 密码是;123456 点击修改个人信息 用F12或者BP 抓包看看我们的url 那么构成的CSRF攻击payload为http://pikachu.shifa23.com/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sexboy&phonenum”手机…

如何申请云闪付支付接口?

随着移动支付的普及,越来越多的商家开始接受各种移动支付方式。而在众多移动支付工具中,云闪付支付接口因其安全、便捷的特点,成为了越来越多商家的首选。那么,如何申请云闪付支付接口呢?本文将为您详细介绍申请云闪付…

PaddleOCR 的使用,极简介绍

安装 参考github的官网就可以: github链接 简单的说,就是两句话: python3 -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple pip install "paddleocr>2.0.1" # 推荐使用2.0.1版本 Python下的使用…

NAT协议的实现方式

在网络通信中,NAT协议(Network Address Translation,网络地址转换)扮演着关键角色,允许内部网络与外部网络之间进行有效的通信。 实现内外网之间网络地址转换的过程中,NAT采用了不同的实现方式,…

FL Studio 21最新版本for mac 21.2.2.3470中文解锁版

FL Studio 21最新版本for mac 21.2.2.3470中文解锁版是最新强大的音乐制作工具。它可以与所有类型的音乐一起创作出令人惊叹的音乐。它提供了一个非常简单且用户友好的集成开发环境(IDE)来工作。这个完整的音乐工作站是由比利时公司 Image-Line 开发的。…

了解OAuth 2.0以及社交登录认证授权流程

1.前言 目前在写一个电商项目,可以通过手机号进行注册登录,为了方便用户使用本平台的系统,引入社交登录功能,这里使用的是gittee。 2.OAuth 2.0介绍 当谈到网络安全和身份验证时,OAuth 2.0(开放授权 2.0&a…