Linear programming LPSolve-指定常数系数

Linear programming LPSolve-指定常数系数,linear-programming,lpsolve,Linear Programming,Lpsolve,我正在使用LPSolve IDE解决一个LP问题。我必须根据大约10或20组不同的参数测试模型,并进行比较 我有没有办法保留通用模型,但按照我的意愿指定常量?例如,如果我有以下约束: A>=[c]*B 我想测试模型在[c]=10、[c]=20等情况下的行为。目前,我只是通过搜索和替换来准备不同的.lp文件,但是: a) 这似乎不太有效 b)在某个时刻,我需要考虑格式 A>=b/[c]/=(1/[c]*b)< /代码>的约束。然而,LPSolve似乎没有识别除法运算符。每次直接指定1/[c]是唯

我正在使用LPSolve IDE解决一个LP问题。我必须根据大约10或20组不同的参数测试模型,并进行比较

我有没有办法保留通用模型,但按照我的意愿指定常量?例如,如果我有以下约束:

A>=[c]*B

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

a) 这似乎不太有效


b)在某个时刻,我需要考虑格式<代码> A>=b/[c]/=(1/[c]*b)< /代码>的约束。然而,LPSolve似乎没有识别除法运算符。每次直接指定

1/[c]
是唯一的选项吗?

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

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

  • 您可以从另一种语言(例如python、bash等)生成lp文件。这是一种“快速而肮脏”的解决方案:运行时速度非常慢,但实现起来可能更快

  • 正如我所知道的每一个lp解算器一样,lp_solve都有几个建模接口:例如,您可以使用,而不是当前的。它可以识别乘法、除法、条件等(您要查找的所有内容,请参阅第3.1节“数值表达式”)

  • 最后,您可以从另一种编程语言(例如C)直接使用lp_solve接口,这将是最灵活的选择,但可能需要更多的工作

  • 有关支持的输入格式和API参考的更多详细信息,请参阅