excel - 线性规划 - 非互正约束
问题描述
我正在尝试一个受各种约束的最大化问题。
即最大y = x1 + x2 + x3 + .... + xn
其中每个 xi 是随时间变化的值向量:x1 = (x11, x12, x13,...)
一些约束条件规定 xit 的特定值在同一时间段内不能为正。
即如果(x1t > 0),x2t = 0;如果(x2t > 0),x1t = 0
对于上下文,该约束相当于“最大化一家商店的收入,但您不能在同一天销售产品 A 和 B”
如何在 Excel 中制定 LP 模型(使用求解器)来解决这个问题。
解决方案
这称为互补性约束。对此建模的一种方法是:
x(1,t) * x(2,t) = 0
x(i,t) ≥ 0
然而,这是非线性的(并且以某种令人讨厌的方式)。使用额外的二进制变量 δ 的线性方法可能如下所示:
x(1,t) ≤ UP(1,t) * δ(t)
x(2,t) ≤ UP(2,t) * (1-δ(t))
x(i,t) ∈ [0,UP(i,t)] 'UP is an upper bound on x'
δ(t) ∈ {0,1} 'δ is a binary variable'
推荐阅读
- java - 如何使用spring数据从firestore中的子集合中获取文档
- api - 从 Microsoft Teams 获取所有消息
- ios - Fastlane - 如何获取 podspec 的版本
- javascript - 如何在 php 循环中设置第一个孩子处于活动状态
- search - 这是二叉搜索树吗?中序遍历
- c# - Windows 窗体系统 FileWatcher C#
- spring - reactor.netty.http.client.PrematureCloseException:连接在响应期间过早关闭
- json - 为什么我的转换列由 JpaAttributeTypeInspection 标记并显示错误消息“'Basic' 属性类型不应是地图”?
- node.js - 在NodeJS中执行Ctrl-C时优雅地结束孩子
- excel - 将两个不同工作表中的 2 列转移到第三列