首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CPLEX作为求解器的MATLAB中解值的参考

使用CPLEX作为求解器的MATLAB中解值的参考
EN

Stack Overflow用户
提问于 2020-08-14 04:53:50
回答 1查看 66关注 0票数 0

我正在考虑使用MATLAB对问题建模,并使用CPLEX作为求解器来解决优化问题。一切正常,我能够得到我的解决方案。然而,假设我有3个不同大小的优化变量,当我得到解时,我得到了1个变量中所有变量的值,现在我必须通过它来获得每个独立变量的值。现在,如果我在python中这样做,并且我的一个变量是x,我会使用value.x来获取x变量的值。有没有一种类似的方法来获得单个优化变量的值,而不必自己手动寻找。这是我用来获得解决方案的方法:

代码语言:javascript
复制
options = cplexoptimset('cplex');
options.timelimit = 300;
[sol3,fval3, exitflag3, output3] = cplexmiqp(PP.H, PP.f, PP.Aineq, PP.bineq, ...
PP.Aeq, PP.beq,[], [], [], PP.lb, PP.ub, ctype, [], options);

如果我有3个optim。变量x1,x2和x3,它们不是标量,而是数组,我的解决方案是作为x1 x2 x3存储在sol3中。我只想引用每个变量,而不需要手动操作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-14 12:42:37

对于CPLEX来说,变量只是一个索引,CPLEX不知道变量的子集是以数组、列表、矩阵等形式组织的。因此,一般来说,答案是“你不能这样做”。但是,您使用的是工具箱API,它被设计为matlab工具箱函数的插件替代品,因此功能有限。

您可以切换到class API。使用此API,您可以逐个显式创建变量,或逐个数组显式创建变量,并保留各种变量的索引。这有点类似于在Python中执行的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63403077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档