【运筹学】整数规划建模技巧

简介: 【运筹学】整数规划建模技巧

整数规划建模中,经常会使用到0-1变量来辅助建模,将模型表述为IP模型或BIP模型,下面是一些常见的整数规划建模技巧

使用辅助0-1变量实现“非此即彼”约束

处理方式如下图,M是一个较大的数,当约束的右边加上M时,无论x1和x2在取在取值范围之内的任意值,式子都是成立的,即该约束无效,没有起到限制变量取值的作用。那么只需要让其中一个约束失效即可,通过在两个约束的右边分别添加M y 1和 My2,并让y 1 + y 2 = 1 来实现

保留N个约束中的K个

image.png

函数有N个可能的值

image.png

固定收费问题

image.png

二进制表示法代替整数变量

当一个模型存在大量0-1变量和少量整数变量时,无法直接使用高效的BIP算法,这时候可以使用二进制表示法将原有的整数变量分解成多个0-1变量。当一个整数x xx的范围为[0,u]时,可以参考下图的方式将其分解为N个0-1变量具体的案例如下图所示


分段函数建模

当一个函数是一个分段分数时,即处于不同区域的x xx,其对应的函数表达式f ( x ) f(x)f(x)是不同的,在处理这种问题的时候,建模的方式如下:

具体的案例如下图所示

分段函数建模

image.png

如果无法理解上面的模型处理方式的话,可以仔细理解下面的图片

目录
相关文章
|
7月前
|
传感器 人工智能 供应链
一场关于物料清单BOM的深度对话
这段对话发生在某科技公司茶水间,新入职的采购专员张薇向供应链总监陈峰请教BOM表的作用。陈峰以乐高说明书为喻,解释BOM是产品的物料清单,涵盖零件型号、用量与供应商信息。他通过实例说明BOM错误可能引发采购、生产和售后等环节的连锁问题,如材料浪费、返工增加及客户索赔。最后,陈峰提出通过源头管控、动态监测和反向追溯优化BOM管理,并强调其准确率对提升企业毛利率的重要性,展现了BOM在现代制造业中“悄然重写利润法则”的核心地位。
178 12
|
供应链 搜索推荐 数据挖掘
1688搜索词推荐API接口:开发应用与收益全解析
在电商数据驱动时代,1688搜索词推荐API接口为开发者、供应商及电商从业者提供强大工具,优化业务流程,提升竞争力。该接口基于1688平台的海量数据,提供精准搜索词推荐,助力电商平台优化搜索体验,提高供应商商品曝光度与销售转化率,同时为企业提供市场分析与商业洞察,促进精准决策与成本降低。通过集成此API,各方可实现流量增长、销售额提升及运营优化,推动电商行业的创新发展。
350 0
|
机器学习/深度学习 Linux 开发者
Python必备工具:pip的安装与管理
Python必备工具:pip的安装与管理
1619 0
|
并行计算 算法 Python
Dantzig-Wolfe分解算法解释与Python代码示例
Dantzig-Wolfe分解算法解释与Python代码示例
|
存储 Shell 网络安全
一文吃透 VS Code+Git 操作(vs code中git的相关配置与使用)(1)
一文吃透 VS Code+Git 操作(vs code中git的相关配置与使用)(1)
6210 0
一文吃透 VS Code+Git 操作(vs code中git的相关配置与使用)(1)
|
数据可视化 搜索推荐 vr&ar
增强现实(AR)技术在教育领域的应用研究
增强现实(AR)技术在教育领域的应用研究
677 0
|
设计模式 算法 Java
【设计模式】springboot3项目整合模板方法深入理解设计模式之模板方法(Template Method)
【设计模式】springboot3项目整合模板方法深入理解设计模式之模板方法(Template Method)
|
设计模式 Java 开发者
springboot-策略和模板模式的思考与实践
前言 在日常的开发过程中,经常会遇到一些复杂的业务场景,那么如何优雅的实现复杂的业务功能,而且使得系统的性能、可靠性、可读性达到最好呢?这里不仅考验着开发者的编程功底,实践能力,还有对局部和全局的把握能力。我们都知道,java 是面向对象编程的语言而非面向过程编程的语言,但是在实际操作中,常常会为了走捷径实现功能,忽略了代码的结构性建设,久而久之项目就是堆砌成屎山,系统性能降低,可读性差,系统的可维护性降低,扩展难度极大。为了解决这样的问题,就需要开发者修炼自己的设计功底,学好并用好设计模式。在本文要谈的就是对策略和模板设计模式使用心得与体会。
|
Oracle Java 关系型数据库
docker 安装 jdk,配置环境变量
本文是博主学习Docker的记录,希望对大家有所帮助。
2872 0
docker 安装 jdk,配置环境变量

热门文章

最新文章