我正在尝试解决最小化问题,我想最小化表达式
a/b
其中a& b是变量。因此,这不是线性问题...... 如何将此函数转换为另一个函数(为线性函数)
答案 0 :(得分:1)
有几种方法可以做到这一点,但最简单的解释要求你解决一系列线性程序。首先,删除目标并添加约束
a <= c * b
其中c是解决方案的已知上限。然后在c上进行二进制搜索,你可以在c_l,c_u范围内找到问题不可行的范围
a <= c_l * b
但可行
a <= c_u * b
答案 1 :(得分:1)
有关如何在lpsolve网站上处理线性规划比率的详细部分。它应该足够普遍适用于AMPL和CPLEX。
答案 2 :(得分:0)
obj的一般形式应该是线性分数函数,类似于f_ {0}(x)=(c ^ Tx + d)/(e ^ Tx + f)。对于您的情况,X =(a,b),c =(1,0),(e = 0,1),d = f = 0。 为了解决这种选择,可以使用称为线性分数编程的东西。它就像线性分数函数的线性约束版本,Charnes-Cooper变换应用于转换为LP。你可以从维基找到主要的想法。许多OR书籍更多地讨论了这一点,例如Boyd的“凸优化”中的pp53,pp165(免费下载)。