【问题标题】:Does Cplex support using of ln or exponential function for a decision variable?Cplex 是否支持对决策变量使用 ln 或指数函数?
【发布时间】:2020-10-15 15:49:27
【问题描述】:

我正在尝试使用 ln 和 exp 函数编写约束,但收到 Cplex 无法提取表达式的错误。

forall (t in time)
   Gw_C["Mxr"] == 20523 + 17954 * ln(maxl(pbefore[t]));

  Ed_c ["RC"]== 0.0422* exp(0.1046* (maxl(pbefore[t])));
   
   Gw_C["RC"] == 3590* pow((maxl(pbefore[t]), 0.6776);

是否有任何其他可能的方式来对 cplex 上的这些约束进行编码? 谢谢

【问题讨论】:

    标签: function cplex exp ln


    【解决方案1】:

    如果您依赖 CPLEX 中的约束编程,则可以使用 exp 和 log:

    using CP;
    
    int scale=1000;
    
    dvar int scalex in 1..10000;
    dexpr float x=scalex/scale;
    
    maximize x;
    
    subject to
    {
      exp(x)<=100;
    }
    
    execute
    {
      writeln("x=",x);
    }
    

    工作正常并给出:

    x=4.605
    

    但是对于 CPLEX 中的数学编程,您不能像那样使用 exp。

    如果通过linearization,你可以做什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 2015-02-04
      • 1970-01-01
      • 2016-09-18
      • 1970-01-01
      相关资源
      最近更新 更多