簡體   English   中英

CPLEX 中的分段線性規划

[英]Piecewise linear programming in CPLEX

我在 CPLEX 中構建運輸成本的表達式時遇到問題。 特別是,它是物料流的分段線性 function,反映了規模經濟。 考慮從工廠到倉庫的運輸成本,我們將 T[f][j][m] 和 Qf1[f][j][m][r] 表示為從工廠 j 運輸家庭 f 的產品的基准運輸成本分別到倉庫 m 和產品族 f 的物料從工廠 j 到倉庫 m 的流動。 r代表流所屬的范圍。 這是代碼

sum(f in Fa, j in Pl, m in Wh, r in ra)
piecewise(t in 1..NbPieces-1)  {Coef[t]*T[f][j][m] -> Breakpoint[t]; Coef[NbPieces]*T[f][j][m]} Qf1[f][j][m][r];

這是 my.dat 文件

 NbPieces=4;
 Coef=[1, 0.95, 0.89, 0.8];
 Breakpoint=[40, 100, 1000];

但是,程序無法提取表達式。 有人可以幫我解決這個錯誤嗎?

你有越界錯誤,但如果你改變

sum(f in Fa, k in DC, l in CZ, r in ra) 
piecewise(t in 1..NbPieces-1) {Coef[t]*T3[f][k][l] -> Breakpoint[t]; Coef[NbPieces]*T3[f][k][l]} Qf2[f][k][l][r];

進入

sum(f in Fa, k in DC, l in CZ, r in ra) 
piecewise(t in 1..NbPieces-1) {Coef[t]*T3[f][k][l] -> Breakpoint[t]; Coef[NbPieces]*T3[f][k][l]} Qf3[f][k][l][r];

然后它工作。 你確定這里有 Qf2 嗎? Qf3 工作正常

暫無
暫無

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

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