2017-04-03 110 views
0

我正在尝试使用CPLEX读取.lp文件,并且它给了我一个错误1615,它无法读取“(”或甚至“[”。我是不满意的话,因为我有什么需要读取必须对自己的括号以下是我有:如何使用CPLEX读取括号或括号

[NUM1 + NUM2 + NUM3 + num4 + num5] * 1/12

首先, ,我不知道CPLEX将如何采取乘号所以,相反,我有:

[NUM1 + NUM2 + NUM3 + num4 + num5] 1/12

然后,它可能无法读取分数或分标志。我甚至不知道如何写这个,以便它读取它。除非CPLEX成功读取文件,否则我无法解决问题。

现在,同样我也使用LPsolve,它也不能读取圆括号,分数,乘号和除号。这些对我来说目前都是无用的。在LPsolve中,我只需将内容复制并粘贴到窗口中,然后运行它。

如果您有任何人有另一种方法来编写上述声明或者CPLEX或LPsolve读取它的方法,那么这将非常有用。

回答

0

以下不是对LP文件格式有效语法:

[NUM1 + NUM2 + NUM3 + num4 + num5] 1/12

方括号([])是仅允许用二次表达式。相反,你可以做这样的事情:

0.083333 NUM1 + 0.083333 NUM2 + 0.083333 NUM3 + 0.083333 num4 + 0.083333 num5

(请注意,你可能会失去一些精度这样做的1/12不能准确地表示作为浮点数)。

请参阅CPLEX LP格式文档here。另外,请记住,根据供应商,LP文件格式可能有不同的实现(即LPsolve可能不适用于CPLEX,反之亦然)。