【问题标题】:Relaxing Binary Variable on Cplex在 Cplex 上放松二进制变量
【发布时间】:2017-06-04 13:49:24
【问题描述】:

我需要帮助。我已经在 CPLEX 上编写了我的模型,现在我想通过将其中一个二进制变量更改为浮动一段时间来解决相同的问题。让我举个例子,对于 10 个时间周期,前两个周期的变量是二进制的,但在最后 8 个周期它将是连续的(松弛的)。我正在尝试解决它 opl 流控制,但我在变量转换方面遇到了一些问题。如果你能帮助我,我会很高兴的

提前谢谢你

【问题讨论】:

    标签: cplex opl


    【解决方案1】:
    dvar float x[1..5] in 0..9.2;
    
    
        dvar int intx[1..5];
    
    
    
        maximize sum(i in 1..5) x[i];
        subject to
        {
        forall(i in 1..5)ctx:intx[i]-x[i]==0;
    
    
        }
    
        execute
        {
        writeln("x  : ",x);
        }
    
        main
        {
        writeln("solve model");
    
        thisOplModel.generate();
        cplex.solve();
        thisOplModel.postProcess();
    
        writeln("relax integrity constraint on x for 1 and 2 and solve model");
        cplex.setLb(thisOplModel.ctx[1],-Infinity);
        cplex.setLb(thisOplModel.ctx[2],-Infinity);
    
        cplex.solve();
        thisOplModel.postProcess();
    
        writeln("put back integrity constraint on x and solve model");
        cplex.setLb(thisOplModel.ctx[1],0);
        cplex.setUb(thisOplModel.ctx[2],0);
        cplex.solve();
        thisOplModel.postProcess();
        } 
    

    给予

    solve model
    x  :  [9 9 9 9 9]
    relax integrity constraint on x for 1 and 2 and solve model
    x  :  [9.2 9.2 9 9 9]
    put back integrity constraint on x and solve model
    x  :  [9 9.2 9 9 9] enter code here
    

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      • 1970-01-01
      • 2012-06-25
      相关资源
      最近更新 更多