簡體   English   中英

CPLEX 中的 LP 松弛

[英]LP relaxation in CPLEX

當我在我的 model 下編寫以下代碼時,我可以獲得一個寬松的值嗎? 當我這樣做時,我沒有任何決策變量結果。 我需要改變什么嗎?

main {
  var status = 0;
  thisOplModel.generate();
  if (cplex.solve()) {
    writeln("Integer Model");   
    writeln("OBJECTIVE: ",cplex.getObjValue());   
    if (cplex.getObjValue() != 1) {
      status = -1;
    }
  } 

  thisOplModel.convertAllIntVars();
  if (cplex.solve()) {
    writeln("Relaxed Model");   
    writeln("OBJECTIVE: ",cplex.getObjValue());  
    if (cplex.getObjValue() != 0.5) {
      status = -1;
    }
  } 
   
(status);
}

當然。

放松完整性約束和使優化變得簡單中的雙重價值的完整示例

int nbKids=300;
float costBus40=500;
float costBus30=400;
 
dvar int+ nbBus40;
dvar int+ nbBus30;
 
minimize
 costBus40*nbBus40  +nbBus30*costBus30;
 
subject to
{
 ctKids:40*nbBus40+nbBus30*30>=nbKids;
}
main {
  var status = 0;
  thisOplModel.generate();
  if (cplex.solve()) {
    writeln("Integer Model");   
    writeln("OBJECTIVE: ",cplex.getObjValue());   
    
  }
  // relax integrity constraint
  thisOplModel.convertAllIntVars();
 
  if (cplex.solve()) {
    writeln("Relaxed Model");   
    writeln("OBJECTIVE: ",cplex.getObjValue());  
    
    writeln("dual of the kids constraint = ",thisOplModel.ctKids.dual);
  }
   
 
}

這使

Integer Model
OBJECTIVE: 3800
Relaxed Model
OBJECTIVE: 3750
dual of the kids constraint = 12.5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM