Rok akademicki |
Tytuł ćwiczenia: |
Data wykonania: |
2006/2007 |
Zadanie 1. Metody Optymalizacji Dyskretnej |
26.02.2007 |
Kierunek studiów |
|
|
ZiIP |
Nazwisko i imię: |
Ocena: |
dzienne |
Żymła Agnieszka |
|
Rok III |
|
|
Zapis modelu matematycznego w AMPL:
param m:=5;
param n:=3;
set M:=1..m;
set N:=1..n;
param a{i in M}; `zdolności produkcyjne hut
param b{j in N}; `zapotrzebowanie fabryk
param c{i in M}; `jednostkowe koszty produkcji
param d{i in M, j in N}; `jednostkowe koszty transportowe
var x{i in M, j in N}>=0 integer; `zmienne x i y
var y{i in M} binary;
minimize koszty: `funkcja celu
sum{i in M}(a[i]*y[i]+sum{j in N}(c[i]+d[i,j])*x[i,j]);
subject to OGR1 {j in N}: `ograniczenia
sum {i in M}x[i,j]>=b[j];
subject to OGR2 {i in M}:
sum {j in N}x[i,j]<=a[i]*y[i];
end;
data;
param d: 1 2 3:=
1 200 300 500
2 500 400 600
3 255 345 123
4 578 123 97
5 156 456 650;
param b:= 1 500 2 500 3 1125; `Σbj = 2125
param : a c:=
1 675 7
2 300 3
3 250 25
4 625 12
5 225 45; `Σai = 2075
end;
Interpretacja otrzymanych wyników:
W przypadku moich danych początkowych zadanie nie ma rozwiązania, ponieważ zdolności produkcyjne wszystkich hut wynoszące 2075 są mniejsze niż zapotrzebowanie fabryk, które wynosi 2125.
Zmieniając dane początkowe otrzymałam:
param b:= 1 500 2 50 3 1125; `Σbj = 1675
param : a c:=
1 675 7
2 300 3
3 250 25
4 625 12
5 225 45; `Σai = 2075
end;
Zdolności produkcyjne wszystkich hut wynoszące 2075 są większe niż zapotrzebowanie fabryk, które wynosi 1675, co oznacza, że zadanie ma rozwiązanie.
Koszty minimalne wynoszą: 351150.
x[1,1] * 275 1 huta dla 1 fabryki produkuje 275 jednostek surowca
x[1,2] * 50 1 huta dla 2 fabryki produkuje 50 jednostek surowca
x[1,3] * 250 1 huta dla 3 fabryki produkuje 250 jednostek surowca
x[3,3] * 250 3 huta dla 3 fabryki produkuje 250 jednostek surowca
x[4,3] * 625 4 huta dla 3 fabryki produkuje 625 jednostek surowca
x[5,1] * 225 5 huta dla 1 fabryki produkuje 225 jednostek surowca
OGR2[1] -100 W hucie 1 nie zostały wykorzystane jej zdolności produkcyjne, gdyż wynoszą one 675, a zapotrzebowanie wszystkich fabryk na surowce z tej huty wynosi 575.
y[1] * 1
y[2] * 0
y[3] * 1
y[4] * 1
y[5] * 1
Z hutą 2 nie zostaje podpisany kontrakt na dostawę surowców.
Zamieniając zmienną binarną yi na zmienną całkowitoliczbową otrzymałam następujące wyniki:
var y{i in M} >=0 integer;
Koszty minimalne wynoszą: 231800.
x[4,2] * 50 4 huta dla 2 fabryki produkuje 50 jednostek surowca
x[4,3] * 1125 4 huta dla 3 fabryki produkuje 1125 jednostek surowca
x[5,1] * 500 5 huta dla 1 fabryki produkuje 500 jednostek surowca
Zamówiono z huty 4 1175 jednostek surowca, a jej zdolności produkcyjne wynoszą 625. Stąd należy podpisać 2 kontrakty (y[4] * 2), aby zrealizować zamówienie. Wówczas zdolność produkcyjna wyniesie 1250, stąd niewykorzystane zdolności wynoszą 75 (OGR2[4] -75).
Zamówiono z huty 5 500 jednostek surowca, a jej zdolności produkcyjne wynoszą 225. Stąd należy podpisać 3 kontrakty (y[5] * 3), aby zrealizować zamówienie. Wówczas zdolność produkcyjna wyniesie 675, stąd niewykorzystane zdolności wynoszą 175 (OGR2[5] -175).