问题标签 [cplex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cplex - 通过改变方向和优先级找到多种解决方案
使用 cplex,我想多次解决 SAT 问题,并通过更改变量的方向 (IloCplex.BranchDirection.Up | IloCplex.BranchDirection.Down) 和优先级来获得不同的解决方案。但是,我总是得到相同的解决方案(存在数千个)。
我或多或少做了以下事情:
我想在每次迭代中为每个变量获得不同的(如果可行的话)值。有人知道我的错在哪里吗?我尝试了所有solver.clear* 方法来重置它,但这并没有帮助。
java - java.lang.UnsatisfiedLinkError:java.library.path 中没有 cplex122
编译时,我收到以下注释:
注意:某些输入文件使用或覆盖已弃用的 API。
注意:使用 -Xlint:deprecation 重新编译以获取详细信息。
注意:某些输入文件使用未经检查或不安全的操作。
注意:使用 -Xlint:unchecked 重新编译以获取详细信息。
然后我使用以下命令运行:
它返回:
我很困惑,因为我确实已经包含了路径。路径是对的,我使用相同的路径运行其他程序,它可以工作。会有什么问题?谢谢。
java - CPLEX 多维阵列
我有变量xijm
,它可以是 0 或 1。我知道我应该这样做,IloArray<>
但我需要在 java 中查看一个示例。我找到了这个,但我使用的是 java。这个想法我不清楚!你能给我举个例子吗?
matlab - 在 Matlab 中调用 CPLEX 时出错
我正在使用带有 win7(32 位)和 Matlab 2009a(32 位)的 cplex12.5(x86-32)学术版。我在 Matlab 中使用 cplexlp 函数尝试了一个简单的线性问题。出现以下错误:
有什么问题?有什么办法可以解决吗?
感谢您提供任何信息。
c++ - 通过c ++访问精确的整数变量的值
cplex.getvalue(x) 返回浮点值,当我将值放入 int 时,它与初始值不同。有没有更好的方法来访问整数变量的值?
现在我只是用一种幼稚的方式,我不知道它是否正确
c++ - 在 C++ CPLEX 中使用变量边界和目标函数的问题
我正在用 C++ 编写一个线性编程模型,不使用 cplex 的音乐会技术。
我像这样声明模型的变量和目标函数:
EPS 是一个小常数,因为我希望变量严格大于 0.25 且严格小于 1.0。
目标函数应该只是最大化所有变量的总和,但是每当我尝试这样做时,解决方案中的变量的值都会超出我的限制(例如小于 0.25 或太大),我看不到任何保留变量的可能性在他们的范围内的值。
有人可以帮帮我吗?我可能犯了一些错误,因为它不应该那么复杂。谢谢!
python - CPLEX Python API 性能开销?
更新
这个问题已经在我交叉发布的OR exchange上进行了彻底的讨论和更新。
原始问题
当我从命令行运行 CPLEX 12.5.0.0 时:
在 19056.99 个刻度中找到了一个最优整数解。
但是通过 Python API,在同一个实例上:
现在所需的时间为 97407.10 个滴答声(慢了 5 倍多)。
在这两种情况下,模式都是并行的、确定的、最多 2 个线程。想知道这种糟糕的性能是否是由于一些 Python 线程开销造成的,我尝试了:
需要 46513.04 滴答(即,使用一个内核比使用两个内核快两倍!)。
作为 CPLEX 和 LP 的新手,我发现这些结果非常令人困惑。有没有办法提高 Python API 的性能,或者我应该切换到一些更成熟的 API(即 Java 或 C++)?
附件
以下是 2 线程解决方案的完整详细信息,首先是(通用)序言:
命令行的结果:
Python API 的结果:
c++ - 如何检查 CPLEX C++ 中是否已存在约束?
我有一些形式 Sizes[i1] + Sizes[i2] + Sizes[i3]<=1 的约束,我添加了
对于一些特定的索引 i1,i2,i3。稍后我想为所有其他索引组合添加约束
是否有一些不错的方法可以做到这一点,例如检查模型中是否已经存在约束?
也许我可以存储由 IloModel::add 函数返回的句柄(例如,作为 ILOExtracableArray 甚至 IloConstraintArray?),但即便如此,我也不知道如何检查约束是否已经存在。谢谢
cplex - 在 CPLEX java API 的填充方法中最大化二进制变量的多样性,并限制最优性
我正在尝试为 CPLEX 中的混合整数问题生成许多解决方案,其中所有整数变量都是二进制的。该问题有大约 1000 个连续变量和 1000 个二元变量,作为指标,大约有 2500 个线性约束。
我的目标函数是指标变量的最小化,我想产生许多接近最优的解决方案,它们在为二元变量选择的值方面彼此不同。我当前的代码可以总结为-
其中 N、K 和 D 是所需解决方案数量的缩写名称,分别是我愿意在求解时缩放生成的解决方案数量的因素,以及我愿意从最优最小化中接受的相对差距。我还使用了其他几个似乎与问题无关的 CPLEX 参数。
我的问题是解决方案的多样性是在所有变量中测量的,包括连续变量,而我只对二进制变量值不同的解决方案感兴趣。这意味着我得到的大多数结果共享二进制变量的相同值,并且对我来说无法区分(因为我只对二进制值感兴趣)。我目前的解决方法是通过设置 -
T 通常为 50,然后(希望)从解决方案池中选择 N 个结果,这些结果在二进制变量的值上彼此不同。
我已经检查了多样性过滤器作为将多样性计算限制为二进制变量的一种方式,但我看不出它如何用于在解决方案之间强制执行多样性,而不是在每个解决方案和参考解决方案之间。除此之外,我不知道还能做什么。
帮助表示赞赏。另外,这是我的第一个问题,如果格式错误,我深表歉意。
visual-studio-2008 - Cplex Visual Studio 2008 错误示例
我是在 Visual Studio 中使用 Cplex 的初学者。
我安装了它们并按照手册的步骤进行操作。
当我尝试从这里获取的示例时:示例
我有这些错误:
致命错误 C1083:无法打开包含文件:'ilcplex/ilocplex.h':没有这样的文件或目录
我试图找到解决方案,但我找不到任何解决方案。
你有什么建议吗?