【问题标题】:Linear form of function (a/b) for ampl/cplexampl/cplex 的线性函数形式 (a/b)
【发布时间】:2012-07-19 07:19:40
【问题描述】:

我正在尝试解决一个最小化问题,我想最小化一个表达式

a/b

其中 a 和 b 都是变量。因此,这不是一个线性问题...... 如何将此函数转换为另一个函数(作为线性函数)。

【问题讨论】:

    标签: linear-programming cplex ampl


    【解决方案1】:

    lpsolve 网站上有一个关于如何在线性规划中处理比率的详细部分。它应该足够通用以适用于 AMPL 和 CPLEX。

    【讨论】:

    • 非常感谢,很棒的资源:)
    【解决方案2】:

    有几种方法可以做到这一点,但最简单的解释需要您求解一系列线性程序。首先,移除目标并添加约束

    a <= c * b
    

    其中 c 是解的已知上限。然后对c进行二分查找,你可以在c_l、c_u的范围内问题不可行

    a <= c_l * b
    

    但对

    是可行的
    a <= c_u * b
    

    【讨论】:

    • 如果可能的话,也很有趣的是看到那些其他方式...... :) 所以如果你有链接,请分享:)
    【解决方案3】:

    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。您可以从 wiki 找到主要思想。很多 OR 书籍都在讨论这个问题,例如 Boyd 的“凸优化”中的 pp53、pp165(免费下载)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      相关资源
      最近更新 更多