线性规划 - 等于表达式符号的变量

2023-12-20

我正在尝试编写一个线性程序,需要一个等于 x-c 符号的变量 z,其中 x 是另一个变量,c 是常数。

我考虑过z = (x-c)/|x-c|。不幸的是,如果 x=c,则会除以 0。

我不能使用 z=x-c,因为我不想通过 x 和 c 之间的差异大小来对其进行加权。

有谁知道表达 z 的好方法,使其成为 x-c 的符号?

感谢您的任何帮助和建议!


你不能建模z = sign(x-c)与线性程序完全一样(因为 LP 中的约束仅限于变量的线性组合)。

但是,您可以建模sign如果您愿意将线性程序转换为混合整数程序,您可以使用以下两个约束对其进行建模:

 L*b <= x - c <= U*(1-b)
 z = 1 - 2*b

Where b是一个二元变量,并且L and U是数量的下限和上限x-c. If b = 0, 我们有0 <= x - c <= U and z = 1. If b = 1, 我们有L <= x - c <= 0 and z = 1 - 2*1 = -1.

您可以使用像这样的求解器Gurobi http://gurobi.com解决混合整数规划。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性规划 - 等于表达式符号的变量 的相关文章

  • 尽管显然存在可行的答案,但 scipy.optimize.linprog 无法找到可行的起点

    向量 k 似乎满足所有约束 我在这里缺少什么吗 谢谢 import numpy as np from scipy optimize import linprog A ub 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 添加许多约束时 PuLP 非常慢

    我正在尝试使用 PuLP 但它需要50秒添加 4000 个约束 包含 67 个变量 解决问题只需要几分之一秒的时间 我们希望使用 PuLP 轻松测试大量问题的多个求解器 PuLP 应该花这么长时间吗 直接使用 PyGLPK 只需要几分之一秒
  • C++ 除以 0

    我正在运行长时间模拟 我将结果记录到向量中以计算有关数据的统计信息 我意识到 从理论上讲 这些样本可能是除以零的结果 这只是理论上的 我很确定事实并非如此 为了避免修改代码后重新运行模拟 我想知道这种情况下会发生什么 我能知道是否发生了除以
  • 整数线性规划 (ILP) 的运行时间复杂度是多少?

    运行时间复杂度是多少整数线性规划 ILP 问题时 有N变量的数量和R约束数量 出于编码目的 我使用 Matlabintlinprog功能 任何参考都会有帮助 整数规划是 NP 完全的 如中所述这个链接 中使用的一些启发式方法intlinpr
  • 整数线性编程 Java:有多种开源和商业工具可用。使用哪一个?

    我需要为我的应用程序使用整数线性编程 API 工具 虽然我的应用程序是用 Java 编写的 但我不介意从 Java 调用 EXE 工具 使用文件 MPS 等 提供输入 我的搜索分析如下 有多种开源和商业工具可用于解决 ILP 以下问题 我发
  • gurobipy 中的反向指标约束

    我是 gurobipy 的初学者 我想添加一个反向指标约束 指标约束只不过取决于约束是否成立的二元变量 在 gurobipy 中 这写为 model addConstr x 1 gt gt y z lt 5 其中 x 是二进制变量 y 和
  • 为什么 scipy.optimize.linprog 返回不满足约束的解决方案?

    我做错了什么还是这是一个错误 c np array 1 0 0 0 0 0 0 0 0 A ub np array 1 724 911 551 555 896 478 80 293 1 566 42 937 233 883 392 909
  • Scipy:稀疏矩阵的线性规划

    我想用 python 求解线性规划 变量的数量 从现在起我将其称为 N 非常大 50000 并且为了以这种方式表述问题scipy optimize linprog需要它 我必须构造两个 N x N 矩阵 A and B以下 LP 可以写为
  • 如何在 Ortools 中定义约束以设置不同值的限制

    我试图定义一个约束来限制求解器生成的唯一值的数量 它可以生成尽可能多的重复项来解决问题 但唯一值有限制 为每个值创建一个布尔变量selected value这是正确的 当且仅当至少为它分配了一个值 为此 您将需要 2 组约束 从左到右 se
  • “大多数 C 系统提供逻辑上无限的浮点值”是什么意思?

    最初我将变量 x 和 y 声明为 int 类型 include
  • iOS 线性规划库

    我正在寻找一个 iOS 库 可以为我正在开发的应用程序解决 LP IP BIP MIP 问题 我找到了 GLPK 但不知道如何为 iOS 编译它 在网上搜索了一段时间后 我没有找到任何有趣的东西 如果有人可以帮助我如何编译适用于 iOS 的
  • 我可以在每次除法发生时禁用检查零除法吗?

    为了更好地理解 Rust 的恐慌 异常机制 我编写了以下代码 feature libc extern crate libc fn main let mut x i32 unsafe x libc getchar let y x 65 pri
  • 为分配/指派问题建立线性规划

    我在线性程序方面遇到了一些麻烦 我已经解决并使用 Excel 但现在我想在 R Python 中执行它 因为我已经达到了 Excel 和求解器的限制 因此 我就这个特定主题寻求帮助 我通过改变 lp assign 函数尝试使用 lPsovl
  • PuLP目标函数中ABS()的数学运算

    我正在尝试在 PuLP 中构建 LP 问题 因为我是 python 新手 想知道如何使用绝对值运算编写目标函数 到目前为止 我一直在使用 AMPL 来制定问题 现在想将整个模型转换为 Python 谁能帮我理解如何编码 SUM ABS x
  • 如何从一组 N 个对象中选择 n 个对象,最大化它们之间的成对距离之和

    您有一组 N 400 个对象 每个对象在 19 维空间中都有自己的坐标 您计算 欧几里德 距离矩阵 所有成对距离 现在您想要选择 n 50 个对象 使得所选对象之间所有成对距离的总和最大 我设计了一种通过线性编程来解决这个问题的方法 下面的
  • 我应该使用哪些库在 python 中进行线性编程? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 快速搜索 python 线性编程 会出现很多搜索结果 例如this one http wiki pyt
  • 安全浮点除法

    我的代码中有一些地方我想确保 2 个任意浮点数 32 位单精度 的除法不会溢出 目标 编译器不保证 足够明确 对 INF INF 的良好处理 并且 不完全保证 IEEE 754 的异常值 可能未定义 并且目标可能会改变 另外 我无法对这几个
  • 最佳开源混合整数优化求解器[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 CPLEX 来解决巨大的优化模型 超过 100k 个变量 现在我想看看是否可以找到开源替代
  • 浮点除以零的行为

    Consider include
  • 除以零:C 和/或 C++ 中定义的未定义行为或实现?

    关于除以零 标准规定 C99 6 5 5p5 运算符的结果是第一个操作数除以第二个操作数所得的商 运算符的结果是余数 在这两个操作中 如果第二个操作数的值为零 则行为未定义 C 03 5 6 4 二元 运算符产生商 二元 运算符产生第一个表

随机推荐