首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LPSolve -指定常数系数

LPSolve -指定常数系数
EN

Stack Overflow用户
提问于 2013-11-16 11:22:47
回答 1查看 1.2K关注 0票数 1

我正在使用LPSolve IDE来解决一个LP问题。我必须测试模型与大约10或20套不同的参数,并比较它们。

除了按我的意愿指定常量之外,还有什么办法让我保留一般模型吗?例如,如果我有以下约束:

A >= [c]*B

我想测试模型在[c] = 10[c] = 20等情况下的行为。现在,我只是通过搜索和替换准备不同的.lp文件,但是:

( a)这似乎不太有效

( b)在某种程度上,我需要考虑表单A >= B/[c] // =(1/[c]*B)的约束。然而,LPSolve似乎没有对除法操作符进行重新编码。每次直接指定1/[c]是唯一的选择吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-16 23:24:20

目前还不完全清楚您在lp_solve中使用的是什么格式。例如,对于cplex lp格式,没有更好的方法:不能对系数使用除法(甚至乘法),也没有为参数“包含”另一个文件或引入符号名的函数。这是一种非常简单的语言,不适合任何复杂的任务。

对于您的问题,有几种解决方案;这取决于您是否对快速实现的东西感兴趣,或者说“干净”,可重用,并且运行时间短(当然,这是一个折衷方案)。

  1. 您可以从另一种语言(例如python、bash等)生成lp文件。这是一个“快速而肮脏”的解决方案:在运行时非常慢,但可能实现得更快。
  2. 正如我所知道的每一个lp求解器一样,lp_solve提供了几个建模接口:例如,您可以使用GNU mp格式而不是当前的。它能识别乘法、除法、条件句等(所有你要找的东西,见3.1节‘数字表达式’)
  3. 最后,您可以直接使用来自另一种编程语言(例如C)的lp_solve接口,这将是最灵活的选择,但它可能需要更多的工作。

有关支持的输入格式和API引用的更多细节,请参见解文档

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

https://stackoverflow.com/questions/20017818

复制
相关文章

相似问题

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