Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -----------------------------
- # Modellfil till Heltalsuppgift 1
- # Lägg till variabler, målfunktion och bivillkor
- # -----------------------------
- param m; # antal avverkningsområden
- param n; # antal massafabriker
- param k; # antal terminaler
- param T;
- set AVVERKNINGSOMRADEN := 1..m;
- set MASSAFABRIKER := 1..n;
- set TERMINALER := 1..k;
- set TAGLANKAR within (TERMINALER cross TERMINALER);
- param f{TERMINALER};
- param cL;
- param cT;
- param l{AVVERKNINGSOMRADEN,MASSAFABRIKER};
- param lT{TAGLANKAR};
- param lA{AVVERKNINGSOMRADEN,TERMINALER};
- param lB{TERMINALER,MASSAFABRIKER};
- param s{AVVERKNINGSOMRADEN};
- param d{MASSAFABRIKER};
- #Variabeldef
- var x{TERMINALER} binary; #om tagterminal oppnar
- var Y{TAGLANKAR}>=0 integer; #tag mellan terminal p och terminal q
- var Q{AVVERKNINGSOMRADEN, TERMINALER}>=0 integer; #flödet från avverkning till terminal
- var V{TERMINALER, MASSAFABRIKER}>=0 integer; #flödet från terminal till massafabrik
- var R{AVVERKNINGSOMRADEN, MASSAFABRIKER}>=0 integer; #transport från avverkning till massafabrik
- minimize z: sum{a in TERMINALER} x[a]*f[a] + sum{b in AVVERKNINGSOMRADEN,a in TERMINALER} lA[b,a]*cL*Q[b,a]+sum{a in TERMINALER, c in MASSAFABRIKER} lB[a,c]*V[a,c]*cL + sum{b in AVVERKNINGSOMRADEN, c in MASSAFABRIKER} l[b,c]*cL*R[b,c] + sum{(p, q) in TAGLANKAR} lT[p,q]*Y[p,q]*cT;
- subject to
- Bivillkor1{(p,q) in TAGLANKAR}: Y[p,q] <= T; #tågets maxkapacitet
- Bivillkor2{a in TERMINALER}: sum{b in AVVERKNINGSOMRADEN} Q[b,a] <= T*x[a] ; #terminal måste vara öppen för att kunna lasta på
- Bivillkor3{a in TERMINALER}: sum{c in MASSAFABRIKER} V[a,c] <= T*x[a] ; #terminal måste vara öppen för att kunna lasta av
- Bivillkor4{r in MASSAFABRIKER}: sum{a in TERMINALER}V[a,r] + sum{b in AVVERKNINGSOMRADEN}R[b,r] = d[r] ; #efterfrågan måste uppfyllas på varje massafabrik
- Bivillkor5{ (p,q) in TAGLANKAR}: Y[p,q] = sum{i in 1..p}(sum{b in AVVERKNINGSOMRADEN}Q[b,i] - sum{r in MASSAFABRIKER}V[i,r]) ; #ser till att rätt mängd fraktas på rätt sträcka
- Bivillkor7{ (p,q) in TAGLANKAR}: sum{r in MASSAFABRIKER}(V[q,r]) <= Y[p,q]; #inte skall kunna lasta av mer än det finns på tåget
- Bivillkor8{i in AVVERKNINGSOMRADEN}: sum{r in MASSAFABRIKER}(R[i,r]) + sum{a in TERMINALER}(Q[i,a]) <= s[i]; #Maxkapacitet för avverkningsområdena.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement