- param kotlety; # rodzaje kotletów
- param indyk; # rodzaje indyków
- param mieso; # rodzaje mięs
- param cenai {1..indyk};
- param cenak {1..kotlety};
- param popyt {1..kotlety};
- param zawartosck {1..kotlety, 1..mieso};
- param zawartoscm {1..indyk, 1..mieso};
- var lindyk {1..indyk}, integer >= 0; # liczba indyków
- var mbck {1..kotlety, 1..mieso}; # ilość mięsa w kotlecie danego typu
- maximize z: sum{i in 1..kotlety} cenak[i] * sum{j in 1..mieso} mbck[i,j] - sum{k in 1..indyk} cenai[k] * lindyk[k]; # i sumuje po typach kotletów, natomiast j po typach mięsa
- popytowe{i in 1..kotlety}: sum {j in 1..mieso} mbck[i, j] <= popyt[i];
- zawartosciowe{i in 1..kotlety}: sum {j in 1..mieso} mbck[i,j] * zawartosck[i,j] <= mbck[i,1];
- bilansowe{j in 1..mieso}: sum {k in 1..indyk} zawartoscm[k, j] * lindyk[k] >= sum {i in 1..kotlety} mbck[i,j];
- solve;
- display z;
- data;
- param kotlety:=2;
- param indyk:=2;
- param mieso:=2;
- param cenai:=1 10 2 8;
- param cenak:=1 8 2 6;
- param popyt:=1 50 2 30;
- param zawartosck: 1 2:=
- 1 0.7 0 # kotlet 1 mieso biale, mieso ciemne
- 2 0.6 0; # kotlet 2 mieso biale, mieso ciemne
- param zawartoscm: 1 2:=
- 1 2 2
- 2 1.5 1.5;
- end;
- ________________
- var indyk1 >= 0 integer;
- var indyk2 >= 0 integer;
- var mb1 >= 0;
- var mb2 >= 0;
- var mc1 >= 0;
- var mc2 >= 0;
- maximize z: 8*(mb1 + mc1) + 6*(mb2 + mc2) - 10*indyk1 - 8*indyk2;
- kotlet1: 0.7*(mb1+mc1) <= mb1;
- kotlet2: 0.6*(mb2+mc2) <= mb2;
- popyt1: mb1 + mc1 <= 50;
- popyt2: mb2 + mc2 <= 30;
- mieso1: mb1 + mb2 <= 2*indyk1 + 1.5*indyk2;
- mieso2: mc1 + mc2 <= 2*indyk1 + 1.5*indyk2;
- solve;
- display z, indyk1, indyk2, mb1+mc1, mb2+mc2;
- end;
- ___________________
- var mb1>=0;
- var mb2>=0;
- var mc1>=0;
- var mc2>=0;
- var i1>=0, integer;
- var i2>=0, integer;
- maximize z: 8*(mb1+mc1)+6*(mb2+mc2)-10*i1-8*i2;
- popytK1: mb1+mc1<=50;
- popytK2: mb2+mc2<=30;
- K1: mb1>=0.7*(mb1+mc1);
- K2: mb2>=0.6*(mb2+mc2);
- indyk1: mb1+mb2<=2*i1+1.5*i2;
- indyk2: mc1+mc2<=2*i1+1.5*i2;
- solve;
- display z,i1,i2;
- end;
- ________________________
- var MB1>=0;
- var MB2>=0;
- var MC1>=0;
- var MC2>=0;
- var I1>=0 integer;
- var I2>=0 integer;
- maximize Zysk: 8*(MB1+MC1)+6*(MB2+MC2)-(10*I1+8*I2);
- popytK1: MB1+MC1<=50;
- popytK2: MB2+MC2<=30;
- strukturaK1: MB1>=0.7*(MB1+MC1);
- strukturaK2: MB2>=0.6*(MB2+MC2);
- Indyk1: MB1+MB2<=(2*I1+1.5*I2);
- Indyk2: MC1+MC2<=(2*I1+1.5*I2);
- solve;
- display Zysk,I1,I2;
- end;
- ____________________________
- param n; #liczba produkt?w
- param m; #liczba (ograniczonych) zasob?w wykorzystywanych do produkcji tych produkt?w
- param c {1..n};#ceny (zyski) jednostkowe na produkcie
- param a{1..m,1..n}; #ilos? zasobu na jednostk? produktu
- param d{1..n}; #zapotrzebowanie na produkty
- param z{1..m}; #dost?pne zasoby
- var x{1..n}, integer >=0;
- maximize zysk: sum{j in 1..n}c[j]*x[j];
- subject to
- tv{j in 1..n}: x[j] <= d[j];
- limitzasob{i in 1..m}: sum{j in 1..n}a[i,j]*x[j]<= z[i];
- solve;
- display zysk, sum{j in 1..n}c[j]*x[j],x;
- data;
- param n:=2;
- param m:=1;
- param c:=1 120 2 80;
- param a: 1 2 :=
- 1 20 10;
- param d:= 1 20 2 40;
- param z:= 1 500;
- end;
- _______________________
- param a{1..2,1..6}>=0;
- var x{1..6}>=0 integer;
- maximize liczbapuszek:
- sum{j in 1..6} a[2,j]*x[j];
- bl5: sum{i in 1..3}x[i]<=19000;
- bl8: sum{j in 4..6}x[j]<=21000;
- lp: sum{j in 1..6}a[1,j]*x[j]>=2*sum{j in 1..6}a[2,j]*x[j];
- solve;
- display liczbapuszek, x;
- data;
- param a: 1 2 3 4 5 6:=
- 1 70 15 10 30 20 0
- 2 0 20 30 25 30 50;
- end;
- _________________________
- param c{1..2}; #ceny (zyski) jednostkowe na produkcie
- param a{1..2}; #ilos? zasobu na jednostk? produktu
- param d{1..2}; #zapotrzebowanie na produkty
- param z{1..1}; #dost?pne zasoby
- var x1, integer >=0;
- var x2, integer >=0;
- maximize zysk: c[1]*x1+c[2]*x2;
- subject to #opcjonalne
- tv27: x1 <= d[1];
- tv20: x2 <= d[2];
- limitzasob: a[1]*x1+a[2]*x2<= z[1];
- solve;
- display zysk, x1, x2;
- data;
- param c:=1 120 2 80;
- param a:= 1 20 2 10;
- param d:= 1 20 2 40;
- param z:= 1 500;
- end;
- ___________________
- param a{1..2,1..6}>=0;
- var x{1..6}>=0 integer;
- maximize liczbapuszek:
- sum{j in 1..6} a[2,j]*x[j];
- bl5: sum{i in 1..3}x[i]<=19000;
- bl8: sum{j in 4..6}x[j]<=21000;
- lp: sum{j in 1..6}a[1,j]*x[j]>=2*sum{j in 1..6}a[2,j]*x[j];
- solve;
- display liczbapuszek, x;
- data;
- param a: 1 2 3 4 5 6:=
- 1 70 15 10 30 20 0
- 2 0 20 30 25 30 50;
- end;