2015-08-19 39 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