运筹学_4.整数规划

文章目录

  • 引言
  • 4.1 分枝定界方法求解整数规划问题
    • 整数规划的分类
    • 整数规划解法概述
    • 分支定界法
  • 4.2 0-1整数规划
    • 0-1整数规划的数学模型
    • 隐枚举法求解0-1规划问题
  • 4.3 指派问题(分配问题)的匈牙利解法
    • 指派问题的数学模型
    • 指派问题的匈牙利解法

引言

规划中的决策变量(全部或部分)限制为整数,称为整数规划。根据变量的取值性质,又可以分为全整数规划,混合整数规划,0-1整数规划等。在整数规划中,如果所有变量都限制为整数,则称为纯整数规划;如果仅一部分变量限制为整数,则称为混合整数规划。整数规划的一种特殊情形是0-1规划,它的决策变量仅限于0或1。整数规划是数学规划中一个较弱的分支,目前只能解决中等规模的线性整数规划问题,而非线性整数规划问题,还没有好的办法。同时不同于前面的线性规划问题,整数规划和0-1规划问题至今尚未找到一般的多项式解法。

4.1 分枝定界方法求解整数规划问题

整数规划的分类

整数规划是决策变量部分或全部取整数的规划问题,有以下分类:

  • 整数线性规划(ILP)
    目标函数:线性
    约束条件:都是线性的
    决策变量:都是整数变量

  • 混合整数线性规划(MILP)
    目标函数:线性
    约束条件:都是线性的
    决策变量:包含两种类型 ①连续变量(可以取任意实数值)②整数变量(只能取整数值,通常包括二进制变量,即0或1)

  • 整数非线性规划(INLP)
    目标函数:非线性
    约束条件:可以是线性或非线性的
    决策变量:都是整数变量

  • 混合整数非线性规划(MINLP)
    目标函数:非线性的
    约束条件:可以是线性或非线性的
    决策变量:包含两种类型 ①连续变量(可以取任意实数值)②整数变量(只能取整数值,通常包括二进制变量,即0或1)

整数规划解法概述

  • 当人们开始接触整数规划问题时,常会有如下两种初始想法:因为可行方案数目有限,因此经过一一比较后,总能求出最好方案。仅限于决策变量很少的情况,一旦决策变量增多,无法求解
  • 先放弃变量的整数性要求,解一个线性规划问题,然后用“四舍五入”法取整数解,这种方法,只有在变量的取值很大时,才有成功的可能性,而当变量的取值较小时,特别是0-1规划时,往往不能成功。

分支定界法

  • 原问题的松驰问题:任何整数规划(IP),凡放弃某些约束条件(如整数要求)后,所得到的问题(P)都称为(IP)的松驰问题
    最通常的松驰问题是放弃变量的整数性要求后,(P)成为线性规划问题。

  • 分支定界法步骤:
    求解原问题对应的松驰问题,可能会出现下面几种情况

    • 若所得的最优解的各分量恰好是整数,则这个解也是原整数规划的最优解,计算结束
    • 若松驰问题无可行解,则原整数规划问题也无可行解,计算结束
    • 若松驰问题有最优解,但其各分量不全是整数,则这个解不是原整数规划的最优解,转下一步
      • 分支:从不满足整数条件的基变量中任选一个xl进行分枝,它必须满足 x 1 ≤ [ x 1 ] x_1≤[x_1] x1[x1] x 1 ≥ [ x 1 ] + 1 x_1≥[x_1]+1 x1[x1]+1中([ ]表示取整)的一个,把这两个约束条件加进原问题中,形成两个互不相容的子问题(两分法)
      • 定界:把满足整数条件各分枝的最优目标函数值作为上(下)界,用它来判断分枝是保留还是剪枝
      • 剪枝:把那些子问题的最优值与界值比较,凡不优或不能更优的分枝全剪掉,直到每个分枝都查清为止
  • 例子
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

4.2 0-1整数规划

0-1整数规划的数学模型

在这里插入图片描述

隐枚举法求解0-1规划问题

在这里插入图片描述

4.3 指派问题(分配问题)的匈牙利解法

指派问题的数学模型

  • 定义
    有n项不同任务,恰好分配n个人分别完成,每个人完成各项任务的效率不同;现假设必须指派每一人去完成一项任务,需考虑怎样把n项任务指派给n个人,使得完成n项任务的总的效率最高,这就是指派问题

指派问题的匈牙利解法

数学建模(四)整数规划—匈牙利算法

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【备战蓝桥杯】蓝桥杯省一笔记:算法模板笔记(Java)

蓝桥杯 0、快读快写模板1、回文判定2、前缀和3、差分4、二分查找5、快速幂6、判断素数7、gcd&lcm8、进制转换9、位运算10、字符串常用API11、n的所有质因子12、n的质因子个数13、n的约数个数14、n阶乘的约数个数15、n的约数和16、阶乘 & 双阶乘17、自定义升序降序18、动…

2024盘古石初赛(服务器部分)

赛后总结 这次初赛就有20道服务器部分赛题,做的情况一般,错了5道题这样,主要原因就是出在第二个网站服务器没有重构起来 今天来复现一下 这次的服务器部分我直接用仿真仿起来就开找了 第一台IM前期配置 先把网配置好,然后ssh…

如此简单,一文带你玩转接口自动化上(Python + Pytest + Requests + Allure )

一. 前言 哈喽大伙们好,好久不见距离上次更新博客已经有一年之久了,这将近一年的时间小编主要的时间都花在了实习和24届校招上面了,最终也是收获满满,选择了一个还不错的offer,感谢一路走来的自己和身边朋友的帮助&…

基于Three.js实现的3D立方体动画

本文由ScriptEcho平台提供技术支持 项目地址:传送门 基于Three.js实现的3D立方体动画 应用场景 该代码段适用于需要在网页中创建交互式3D场景的场景。例如,可以用于展示产品、创建游戏或制作视觉效果。 基本功能 此代码段使用Three.js库创建了一个…

【机器学习】随机森林:深度解析与应用实践

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 随机森林:深度解析与应用实践引言1. 随机森林基础1.1 什么是随机森林…

Android更新优化 - 增量更新是如何节省用户时间和流量的

增量更新和全量更新 我想玩过大型手游的人都知道,手游的安装包非常大,因为资源图片众多。而你每次更新都把所有文件都更新下来,是非常耗时的,对吧。耗时是一个方面,有些人在户外开的是移动网络,动不动就几…

计算机组成原理·海明编码及其实验

前言:海明编码这一块在刚开始的时候没有弄懂,后面通过做实验、复习慢慢摸清了门道。在学习计算机组成原理的过程中,实验实践是很重要的,它会让你去搞清楚事情背后的原理,逼着你学会你没听懂的东西。这篇文章会从海明码…

Check Point 安全网关任意文件读取漏洞复现(CVE-2024-24919)

Check Point 安全网关任意文件读取漏洞复现(CVE-2024-24919) 1.漏洞描述 Check Point Security Gateways 是 Check Point Sofware 提供的一系列 网络安全Q解决方案。这些解决方案包括下一代防火墙(NGFW)、数据中心安全网关和 A1驱动的量子网关,旨在为企业提供针对…

@Value 读取环境变量配置

在项目开发过程中,有必要使用一些灰色规则(即仅用于开发使用过程中的逻辑控制变量)。 比如,本地开发中,一些业务逻辑需要调用第三方代码,但又在本地调不通,怎么办。只能通过 if(本地开发) {mock…

【开源】渔具租赁系统 JAVA+Vue.js+SpringBoot+MySQL

目录 一、项目介绍 1.1渔具档案模块 1.2渔具租赁模块 1.3渔具归还模块 1.4在线留言模块 二、项目截图 三、核心代码 一、项目介绍 Vue.jsSpringBoot前后端分离新手入门项目《渔具租赁系统》,包括渔具档案模块、渔具租赁模块、渔具归还模块、在线留言模块和部…

当新媒体运营开始说真话,这些道理你真的懂么?沈阳新媒体运营培训

运营新人,尤其是刚毕业、啥都不会的大学生,一定要认清的现实就是:虽然新媒体运营这个岗位门槛比较低,薪资也比较香,但绝不是养老型的工作。 平时大家还是很忙的,所以一定要摒弃学生思维,千万别…

02--nginx代理缓存

前言:比较常用的用法反向代理,和缓存的一些操作,用虚拟环境复刻出来,里面参数不用详细记录,用作复习,使用时直接查找即可。环境搭建过程参考前一篇文章nginx基础。 1、基础环境 IP角色作用192.168.189.143…

freertos初体验 - 在stm32上移植

1. 说明 freertos内核 非常精简,代码量也很少,官方也针对主流的编译器和内核准备好了移植文件,所以 freertos 的移植是非常简单的,很多工具(例如CubeMX)点点鼠标就可以生成一个 freertos 的工程&#xff0…

AquaCrop农业水资源管理,模拟作物生长过程中水分的需求与消耗

AquaCrop是由世界粮食及农业组织(FAO)开发的一个先进模型,旨在研究和优化农作物的水分生产效率。这个模型在全球范围内被广泛应用于农业水管理,特别是在制定农作物灌溉计划和应对水资源限制方面显示出其强大的实用性。AquaCrop 不…

VR导航的实现原理、技术优势和应用场景

VR导航通过虚拟现实技术提供沉浸式环境,结合室内定位技术实现精准导航。目前,VR导航已在多个领域展现出其独特的价值和潜力,预示着智能导航系统的未来发展。 一、实现原理 VR导航技术依托于虚拟现实(VR)和室内定位系统。VR技术利用计算机模…

Python考试复习---day5

1.打印商品名 ainput().split() print("商品列表:") for i,name in enumerate(a):print("{}\t{}".format(i,name))enumerate----枚举--利用它可以同时获得索引和值 enumerate多用于在for循环中得到计数 例如: list1 ["这&qu…

Netty SSL双向验证

Netty SSL双向验证 1. 环境说明2. 生成证书2.1. 创建根证书 密钥证书2.2. 生成请求证书密钥2.3. 生成csr请求证书2.4. ca证书对server.csr、client.csr签发生成x509证书2.5. 请求证书PKCS#8编码2.6. 输出文件 3. Java代码3.1. Server端3.2. Client端3.3. 证书存放 4. 运行效果4…

消费者组到底是什么?no.15

Kafka的消费者组。 消费者组,即Consumer Group,应该算是Kafka比较有亮点的设计了。那么何谓Consumer Group呢?用一句话概括就是:Consumer Group是Kafka提供的可扩展且具有容错性的消费者机制。既然是一个组,那么组内必…

JavaScript 贪心算法(Greedy Algo)

贪婪是一种算法范式,它逐步构建解决方案,始终选择提供最明显和直接收益的下一个部分。贪婪算法用于解决优化问题。 如果问题具有以下属性,则可以使用贪心法解决优化问题: 每一步,我们都可以做出当前看来最好的选择&…

路由器的工作原理

5.1路由器的工作原理 如图5-1所示配置IP地址(此处省略,请读者自行配置),配置完成后,我们在R1上分别ping 12.1.1.2 、23.1.1.2、23.1.1.3,我们可以发现,在R1上ping 12.1.1.2可以通,但…