2012-11-05 27 views
0

我正在嘗試查找帶有函數的CPLEX的小工作示例。不好的例子here怎麼不行。在CPLEX中如何定義函數?如何在CPLEX中執行功能?

P.s.我正在爲阿爾託大學的線性優化 - 課程2.3140 here提交工作。

+0

如果你沒有使用它,就不會有標籤線性優化 – Mark

回答

1

你把它寫成一個數學問題,你有一個索引超出界限的錯誤。

// Decision variables 
dvar float+ z[0..4]; 
dvar float a[0..4]; 
dvar float+ x[0..5]; 
dvar float+ v[0..5]; 


minimize sum(myZ in 0..4) z[myZ]; 

subject to { 

    startX: x[0]==0; 
    startV: v[0]==0; 
    endX: x[4]==1; 
    x[5]==1; 
    endV: v[4]==0; 
    v[5]==0; 


    forall(t in 0..4){ 
    a[t]<=z[t]; 
    -a[t]<=z[t]; 
    x[t+1]==x[t]+v[t]; 
    v[t+1]==v[t]+a[t]; 
    } 
} 

這是解決方案:

// solution (optimal) with objective 0.666666666666667 
// Quality There are no bound infeasibilities. 
// There are no reduced-cost infeasibilities. 
// Maximum Ax-b residual    = 1.11022e-016 
// Maximum c-B'pi residual   = 1.11022e-016 
// Maximum |x|      = 1 
// Maximum |slack|     = 0.666667 
// Maximum |pi|      = 1.66667 
// Maximum |red-cost|     = 1 
// Condition number of unscaled basis = 2.1e+001 
// 

z = [0.33333 
     0 0 0.33333 0]; 
x = [0 0 0.33333 0.66667 1 1]; 
v = [0 0.33333 0.33333 0.33333 0 0]; 
a = [0.33333 0 0 -0.33333 0]; 

相關

  1. What is wrong with this forall -statement in CPLEX?

  2. IBM有一定的幫助here