2015-08-19 73 views
1

我目前正在使用cplex設置Java程序。我想找到具有許多條款的成本函數的最小值。CPLEX最小化分段線性函數

現在事實證明,這些成本項中的一些不應該是線性的,而是分段線性的。我知道CPLEX可以做到這一點 - 但是如何?我幾乎找不到任何信息或教程。

有沒有人有這方面的經驗,可以推薦/給我看一些教程或代碼片段?

這將是超級有用的...在此先感謝! 菲利普

這裏我的代碼:

IloLinearNumExpr toMinimize = cplex.linearNumExpr(); 
for(float hour = start; hour <= end; hour += stepSize){ 
      IloNumVar Purchase = cplex.numVar(0, Double.MAX_VALUE, "Purchase_" + hour); 
      PurchasePerHour.put(hour, Purchase); 
      toMinimize.addTerm(Rate, Purchase); 

      IloNumVar eSale = cplex.numVar(-Double.MAX_VALUE, 0, "Sale_" + hour); 
      SalePerHour.put(hour, Sale); 
      toMinimize.addTerm(SaleRate/4000, eSale); 
/* 
here should be a term similar to the sale/purchase ones above being piecewise linearly dependent from a variable 
*/ 

    } 

cplex.addMinimize(toMinimize); 

回答

0

看一看運輸CPLEX例子。那裏有一個java版本使用分段線性目標函數。

+0

好的!我只是自己找到了...本應該採取更好看,對不起! 這正是我所尋找的...... 儘管如此,非常感謝! – user3060655