Badania operacyjne to dyscyplina

Transkrypt

Badania operacyjne to dyscyplina
Wprowadzenie
Badania operacyjne to dyscyplina, której zadaniem jest wspomaganie podejmowania trafnych
decyzji.
Badania operacyjne to dyscyplina naukowa związana z teorią decyzji, pozwalająca wyznaczyć metodę
i rozwiązanie określonych problemów związanych z podejmowaniem optymalnych decyzji.
Operations Research, Operational Research….
Metodologia badań operacyjnych sprowadza się do następujących etapów:
I.
II.
III.
IV.
V.
VI.
VII.
Formułowanie problemu decyzyjnego
Budowa modelu matematycznego lub jego odpowiednika w wersji symulacyjnej
Pozyskanie i przetwarzanie informacji niezbędnej do ustalenia parametrów modelu
Procedura obliczeniowa lub postępowanie symulacyjne za pomocą wybranego algorytmu
Analiza jakości rozwiązań modelu
Weryfikacja modelu, sprawdzenie jego adekwatności
Wdrożenie rozwiązania
Podstawowym przedmiotem badań operacyjnych są decyzje.
Z podjęciem decyzji wiąże się jakiś skutek – wynik decyzji, który zależy od zaistniałego stanu natury.
Stan natury jest niezależny od woli decydenta.
Klasyfikacja problemów decyzyjnych (związana z informacją dotyczącą stanów natury):
I.
II.
III.
IV.
Podejmowanie decyzji w warunkach pewności (znany jest wynik każdej decyzji; znane są
stany natury, które mogą wystąpić z pewnością. Problemem jest bardzo duża liczba
możliwych decyzji, które należy przeanalizować). Np. Programowanie matematycznie.
Podejmowanie decyzji w warunkach ryzyka (znane są możliwe stany natury, ale ich
zaistnienie nie jest pewne; znane są prawdopodobieństwa zaistnienia poszczególnych
stanów natury). Np. gry z naturą, analiza decyzyjna – kryterium Bayesa.
Podejmowanie decyzji w warunkach niepewności (nie są znane prawdopodobieństwa
zaistnienia możliwych stanów natury lub znane są tylko niektóre prawdopodobieństwa).
Np. gry z naturą – kryterium Walda, Savage’a, optymistyczne, Hurwicza.
Podejmowanie decyzji w warunkach konfliktu – interakcji (wynik decyzji zależy od decyzji
innych uczestników procesu). Np. gry, teoria gier, gry dwuosobowe o sumie zerowej.
PROGRAMOWANIE MATEMATYCZNE, PROGRAMOWANIE LINIOWE
x - zmienna decyzyjna
f ( x) → opt (max lub min)
g i ( x) ≤ bi
g j ( x) ≥ b j
g k ( x) = bk
3 x1 + 4 x2 → max
x1 + 2 x2 ≤ 10
x1 + x2 ≤ 8
x1 ≥ 0, x2 ≥ 0
Zbiór rozwiązań dopuszczalnych (feasible set) tworzą wszystkie wartości zmiennych decyzyjnych
spełniające warunki ograniczające.
Typowe zadania programowania liniowego:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Zagadnienie optymalnego wykorzystania urządzeń produkcyjnych
Zagadnienie transportowe
Zagadnienie optymalnego załadunku
Zagadnienie optymalnego rozdziału jednorodnych zasobów
Model optymalnego asortymentu produkcji
Model optymalnego składu mieszanki (problem diety)
Zagadnienie optymalnego rozdziału czynności
Zagadnienie optymalnego rozkroju
Wybór optymalnej struktury zasiewów
AD. 8. Zakład ‘RURA’ ma wyprodukować 100 rur o długości 5,5 m i 150 o długości 7,5 m. Zakład ma
do dyspozycji rury o długości 17 m. Jak należy pociąć rury, aby odpad był najmniejszy? Pozostałe rury
długości 5,5 i 7,5 stanowią odpad. Zapisz odpowiedni program liniowy.
Sposób cięcia
I
II
III
Zamówienie
Liczba rur 5,5 m
3
1
0
100
Liczba rur 7,5 m
0
1
2
150
Odpad [m]
0,5
4
2
„Liczba cięć i-tym sposobem”
Xi – liczba rur o długości 17 m, pocięta i-tym sposobem, i=1,2,3.
0,5 ⋅ x1 + 4 ⋅ x2 + 2 ⋅ x3 + 5,5 ⋅ (3 ⋅ x1 + x2 − 100) + 7,5 ⋅ ( x2 + 2 ⋅ x3 − 150) → min
3 ⋅ x1 + x2 ≥ 100
x2 + 2 ⋅ x3 ≥ 150
x1 , x2 , x3 ≥ 0; x1 , x2 , x3 ∈ C
AD. 2. Przedsiębiorstwo przewozowe ‘ STAR ‘ zajmuje się dostarczaniem lodów do sklepów. Dane
dotyczące kosztów przewozu jednostki z magazynu do sklepu oraz wielkości zapasów
i zapotrzebowania zamieszczono w tabeli. Określić plan przewozu minimalizujący koszty.
Zagadnienie transportowe zamknięte (popyt = podaż)
Xij – liczba jednostek (np. kartonów) lodów dostarczonych do i-tego sklepu z j-tego magazynu;
i=1,2,3,4,5; j=1,2,3,4.
50 ⋅ x11 + 70 ⋅ x12 + 35 ⋅ x13 + 100 ⋅ x14 +
+ 60 ⋅ x21 + 30 ⋅ x22 + 20 ⋅ x23 + 45 ⋅ x24 +
+ 70 ⋅ x31 + 55 ⋅ x32 + 75 ⋅ x33 + 80 ⋅ x34 +
+ 100 ⋅ x41 + 130 ⋅ x42 + 150 ⋅ x43 + 110 ⋅ x44 +
+ 75 ⋅ x51 + 50 ⋅ x52 + 60 ⋅ x53 + 85 ⋅ x54 → min
4
∑x
j =1
1j
4
2j
= 100
3j
= 300
∑x
j =1
4
∑x
j =1
4
4j
= 1000
5j
= 200
∑x
j =1
4
∑x
j =1
5
∑x
i =1
i1
5
∑x
i =1
i2
5
∑x
i =1
i3
5
∑x
i =1
= 500
i4
= 300
= 700
= 600
= 500
xij ≥ 0; xij ∈ C
DUALNOŚĆ W PROGRAMOWANIU LINIOWYM
Program liniowy (PL) – program pierwotny
c1 ⋅ x1 + c2 ⋅ x2 + ... + cn ⋅ xn → max
a11 ⋅ x1 + a12 ⋅ x2 + ... + a1n ⋅ xn ≤ b1
...
ai1 ⋅ x1 + ai 2 ⋅ x2 + ... + ain ⋅ xn ≤ bi
cT x → max
Ax ≤ b
x≥0
...
am1 ⋅ x1 + am 2 ⋅ x2 + ... + amn ⋅ xn ≤ bm
cT x → min
-> Ax ≥ b
x≥0
x1 , x2 ,..., xn ≥ 0
Każdemu programowi PL odpowiada program dualny. Z każdym programem liniowym sprzężony jest
inny program, zwany programem dualnym.
I.
II.
III.
IV.
V.
VI.
W programie dualnym jest tyle zmiennych ile ograniczeń w programie pierwotnym.
Każdemu ograniczeniu w programie pierwotnym odpowiada zmienna dualna.
W programie dualnym jest tyle ograniczeń ile zmiennych w programie pierwotnym. Każdej
zmiennej w programie pierwotnym odpowiada ograniczenie w programie dualnym.
Wagi funkcji celu programu pierwotnego są wyrazami wolnymi w programie dualnym.
Wyrazy wolne programu pierwotnego są wagami funkcji celu w programie dualnym.
Macierz współczynników programu dualnego jest transpozycją macierzy współczynników
programu pierwotnego.
Jeżeli program pierwotny jest na maksimum, to program dualny na minimum. I odwrotnie.
Program pierwotny
Program dualny
x - zmienna pierwotna
y - zmienna dualna
c x → max
T
Ax ≤ b
T
<-> b y → min
x≥0
AT y ≥ c
y≥0
Program pierwotny
Program dualny
x - zmienna pierwotna
y - zmienna dualna
c x → min
T
Ax ≥ b
x≥0
T
<-> b y → max
AT y ≤ c
y≥0
1. Jeżeli i-ty warunek w PL jest równością, to odpowiadająca mu zmienna yi nie ma ograniczeń.
2. Jeżeli i-ty warunek w PL jest nietypową nierównością, to odpowiadająca mu zmienna dualna
jest mniejsza lub równa zero yi ≤ 0 .
3. Jeżeli w PL na zmienną nie nałożono ograniczeń, to odpowiadający jej warunek (ograniczenie)
dualny jest równością.
4. Jeżeli w PL zmienna jest mniejsza lub równa 0, to odpowiadający jej warunek dualny jest
nietypową nierównością.
I.
Dla każdego rozwiązania dopuszczalnego (PL - max i PD - min) prawdziwa jest zależność:
c T x ≤ bT y . Dla rozwiązania optymalnego (x* i y*) prawdziwa jest zależność:
c T x* = bT y * .
II.
Jeżeli i-ty warunek PD w rozwiązaniu optymalnym jest spełniony z nierównością (ostro),
to odpowiadająca mu zmienna w PL, w rozwiązaniu optymalnym przyjmuje wartość 0.
Zakład ‘RURA’ ma wyprodukować 100 rur o długości 5,5 m i 150 o długości 7,5 m. Zakład ma do
dyspozycji rury o długości 17 m. Jak należy pociąć rury, aby odpad był najmniejszy?
Sposób cięcia
I
II
III
Zamówienie
Liczba rur 5,5 m
3
1
0
100
Liczba rur 7,5 m
0
1
2
150
Xi – liczba rur o długości 17 m, pocięta i-tym sposobem, i=1,2,3.
0,5 ⋅ x1 + 4 ⋅ x2 + 2 ⋅ x3 → min
3 ⋅ x1 + x2 ≥ 100
x2 + 2 ⋅ x3 ≥ 150
x1 , x2 , x3 ≥ 0; x1 , x2 , x3 ∈ C
Odpad [m]
0,5
4
2
Rolnik posiada dwa pola o powierzchniach odpowiednio 15 ha i 30 ha. W związku ze specjalizacją
produkcji zamierza wprowadzić jedynie trzy uprawy: szparagi, kapustę pekińską oraz orzeszki ziemne.
W zależności od rodzaju uprawy zmienia się koszt uprawy jednego hektara. Dla szparagów wynosi on
1500 zł, dla kapusty 1000 zł, dla orzeszków 1200 zł. Na wydajność z hektara ma wpływ pogoda. W
przypadku pogody umiarkowanej wydajność kształtuje się na poziomie 2 q/ha, 3 q/ha i 2,5 q/ha
odpowiednio dla szparagów, kapusty, orzeszków stanowiąc jednocześnie poziom odniesienia dla
pozostałych wydajności. W przypadku wystąpienia upałów wydajność zmniejsza się o 15%, w
przypadku deszczy wydajność spada do 65% założonych wydajności dla umiarkowanej pogody. Cena,
za jaką rolnik sprzedaje swoje uprawy jest stała, niezależna od pogody i wynosi odpowiednio dla
szparagów, kapusty, orzeszków :100 zł/q, 80 zł/q i 70 zł/q. Rolnik uznaje, że opłaca mu się uprawiać
ziemię, kiedy jego oczekiwany zysk jest nie mniejszy niż 10000 zł. Długoterminowa prognoza zakłada,
że deszcze wystąpią z prawdopodobieństwem 0,15, upały – 0,35 ,a pogoda umiarkowana – 0,5.
Zapisać program linowy pomocny w podjęciu decyzji o uprawach.
Xi – wielkość powierzchni uprawy i-tego płodu rolnego (i=1, szparagi; i=2, kapusta pekińska; i=3,
orzeszki ziemne) [ha]
(2 ⋅ 0,5 + (2 − 0,15 ⋅ 2) ⋅ 0,35 + (0,65 ⋅ 2) ⋅ 0,15) ⋅ X 1 ⋅100 − 1500 ⋅ X 1 +
+ (3 ⋅ 0,5 + (3 − 0,15 ⋅ 3) ⋅ 0,35 + (0,65 ⋅ 3) ⋅ 0,15) ⋅ X 2 ⋅ 80 − 1000 ⋅ X 2 +
+ (2,5 ⋅ 0,5 + (2,5 − 0,15 ⋅ 2,5) ⋅ 0,35 + (0,65 ⋅ 3) ⋅ 0,15) ⋅ X 3 ⋅ 70 − 1200 ⋅ X 3 − 10000 → max
X 1 + X 2 + X 3 ≤ 15 + 30
X1, X 2 , X 3 ≥ 0
Wartość funkcji celu powinna być nieujemna, aby rolnik podjął decyzję o podjęciu uprawy.
Rolnik nie powinien podejmować się uprawy.
PROGRAMOWANIE DYNAMICZNE
Jest jedną z metod wspomagania decyzji wieloetapowych. Do rozwiązywania wieloetapowych
problemów decyzyjnych.
Richard Bellman – opracował metodę programowania dynamicznego.
Oznaczenia:
di – decyzja, którą należy podjąć na i-tym etapie;
si – stan przed podjęciem decyzji di; stan na początku i-tego etapu;
si+1 – stan po podjęciu decyzji di; stan na końcu i-tego etapu;
Di – zbiór decyzji dopuszczalnych w i-tym etapie;
Si – zbiór stanów, które mogą wystąpić na początku i-tego etapu.
Ciąg decyzji {d1, d2, …, dn} to strategia.
F(d1, d2, …, dn, s1, s2, …, sn) – globalna funkcja kryterium.
Wymogiem stosowania programowania dynamicznego jest własność Markowa tzn. decyzje
optymalne na pewnym etapie procesu, nie zależą od wcześniejszych decyzji, jedynie od stanu
wynikającego z ich podjęcia.
Z własności Markowa wynika zasada optymalności Bellmana, na której oparto metodę
programowania dynamicznego.
Globalna funkcja kryterium powinna być dekomponowana na etapy np.:
n
F (d1 ,..., d n , s1 ,..., sn ) = ∑ f i (d i , si ) .
i =1
Wtedy poszukujemy optymalnej strategii, dla której funkcja globalna osiąga np. maksimum zgodnie z
zasadą optymalności Bellmana. Zasada ta opiera się o tzw. ciąg równań funkcyjnych Bellmana. Dla
rozważanego przykładu, ciąg ten ma następującą postać:
g n ( sn ) := max{ f n (d n , sn )}
d n∈Dn
sn∈S n
g k ( sk ) := max{ f k (d k , sk ) + g k +1 ( sk +1 )} k = 1,2,..., n − 1
d k ∈Dk
sk ∈S k
Problem 1.
Pewna firma chce opracować program produkcji elementów na kolejne 3 miesiące. Znany jest popyt
na te elementy wynoszący 3 elementy w każdym z kolejnych trzech miesięcy. Firma może produkować
maksymalnie 5 takich elementów miesięcznie. Koszty produkcji zależne od liczby wyprodukowanych
elementów podano w tabeli:
Liczba elementów
Koszty w [jp]
0
0
1
15
2
3
4
17 19 21
5
23
Jednostkowy koszt przechowywania zapasów jest stały w okresie planistycznym i wynosi 1 jednostkę
pieniężną (koszty magazynowania w i-tym miesiącu obliczamy według stanu na koniec miesiąca).
Maksymalnie magazyn może pomieścić 4 elementy. W chwili obecnej w magazynie znajdują się 2
elementy. Pod koniec trzeciego miesiąca magazyn ma pozostać pusty.
Rozwiązanie.
Przyjmijmy oznaczenia dla i=1,2,3:
- poziom zapasów na początku i-tego miesiąca,
si
pi
- popyt w i-tym miesiącu,
hi(j)
- koszt magazynowania j elementów (0 ≤ j ≤ 4) w i-tym miesiącu,
Ki(xi) - koszt produkcji xi elementów (0 ≤ xi ≤ 5) w i-tym miesiącu,
fi(xi,si) - koszty produkcji i magazynowania w i-tym miesiącu.
Zauważmy, że
fi(xi,si) = Ki(xi) + hi(si+1), gdzie 0 ≤ si+1 = si + xi – pi ≤ 4, i=1,2,3 oraz s4 = 0.
Łączne koszty magazynowania i produkcji wynoszą
f1(x1,s1) + f2(x2,s2) + f3(x3,s3).
Koszty te mają być najmniejsze.
Korzystając z równań funkcyjnych Bellmana możemy zapisać:
Krok 1. (miesiąc 3)
g3(s3) = min (f3(x3,s3)) dla 0 ≤ s3 ≤ 4
0 ≤ x3 = p3–s3
Krok 2. (miesiąc 2)
g2(s2) = min (f2(x2,s2) + g3(s3)) dla 0 ≤ s2 ≤ 4
p2-s2 ≤ x2 ≤ 4+p2–s2
Krok 3. (miesiąc 1)
g1(s1) = min (f1(x1,s1) + g2(s2)) dla s1=2.
p1–s1 ≤ x1 ≤ 4+p1–s1
Z treści zadania wynika, że
s1 = 2, p1 = p2 = p3 = 3
s4 = s3 + x3 – 3 = 0 stąd x3 = 3 – s3.
Mamy zatem:
Krok 1. (miesiąc 3)
g3(s3) = min f3(x3,s3)
0 ≤ x3=3–s3
s3
x3
s4
f3(x3,s3)
g3(s3)
0
3
0
19+0
19
1
2
0
17+0
17
2
1
0
15+0
15
3
0
0
0+0
0
Krok 2. (miesiąc 2)
g2(s2) = min (f2(x2,s2)+g3(s3)) dla 0 ≤ s2 ≤ 4
3–s2 ≤ x2 ≤ 7–s2
s2
x2
s3
f2(x2,s2)
g3(s3)
f2(x2,s2)+g3(s3)
0
3
0
19+0
19
38
0
4
1
21+1
17
39
0
5
2
23+2
15
40
1
2
0
17+0
19
36
1
3
1
19+1
17
37
1
4
2
21+2
15
38
1
5
3
23+3
0
26
2
1
0
15+0
19
34
2
2
1
17+1
17
35
2
3
2
19+2
15
36
2
4
3
21+3
0
24
3
0
0
0
19
19
3
1
1
15+1
17
33
3
2
2
17+2
15
34
3
3
3
19+3
0
21
4
0
1
0+1
17
18
4
1
2
15+1
15
32
4
2
3
17+3
0
20
g2(s2)
38
26
24
19
18
Krok 3 (miesiąc 1)
g1(s1) = min (f1(x1,2)+g2(s2)) = min (f1(x1,2)+g2(s2))
1≤ x1 ≤ 5
3-2≤ x1 ≤ 4+3-2
s1
2
2
2
2
2
x1
1
2
3
4
5
s2
0
1
2
3
4
f1(x1,s1)
15+0
17+1
19+2
21+3
23+4
g2(s2)
38
26
24
19
18
f1(x1,s1)+g2(s2)
53
44
45
43
45
g1(s1)
43
Optymalna strategia ma postać
x1 = 4, x2 = 0, x3 = 3.
Koszty poniesione przez firmę są wtedy najniższe i wynoszą 43 jp.
Problem 2.
Rozdzielić produkcję energii 100 MWh między dwie elektrownie tak, aby koszty zużycia paliwa były
najniższe. Koszty opisane są funkcją: F ( x, y ) = 2 ⋅ (− x + 1) 2 + 3 ⋅ ( y − 3) 2 , gdzie x oznacza zużycie
paliwa w elektrowni I, y zużycie paliwa w elektrowni II. Wiadomo, że z tony paliwa elektrownia I
uzyskuje 3 MWh, a elektrownia II 2 MWh.
2
Etap 1. (Elektrownia 1). f1 (d1 , s1 ) = 2 ⋅ (− x + 1) , 0 <=d1 <=100, x =
Etap 2. f 2 (d 2 , s2 ) = 3 ⋅ ( y − 3) 2 , 0 <=d2 <=100, y =
d1
d
⇒ f1 (d1 , s1 ) = 2 ⋅ (− 1 + 1) 2
3
3
d2
d
⇒ f 2 (d 2 , s2 = 100 − d1 ) = 3 ⋅ ( 2 − 3) 2 .
2
2
Krok 1. (Etap2)
g 2 ( s2 ) = min{3 ⋅ (
d 2 = s2
d2
S
− 3) 2 } = 3 ⋅ ( 2 − 3) 2 .
2
2
Krok 2. (Etap 1)
g1 ( s1 ) = min {2 ⋅ (−
0≤ d1 ≤100
100 − d1
d1
S
d
+ 1) 2 + 3 ⋅ ( 2 − 3) 2 } = min {2 ⋅ (− 1 + 1) 2 + 3 ⋅ (
− 3) 2 } = min F (d1 )
0≤ d1 ≤100
0≤ d1 ≤100
3
2
3
2
∂F
d
1
100 − d1
1
35
419
= 4 ⋅ (− 1 + 1) ⋅ (− ) + 6 ⋅ (
− 3) ⋅ (− ) = ... = ⋅ d1 −
∂d1
3
3
2
2
18
3
∂ 2 F 35
= >0
∂d12 18
=
0 ⇒ d1 ≈ 71,83
Aby koszty zużycia paliwa były najniższe należy przydzielić pierwszej elektrowni produkcję 71,83
MWh energii, a elektrowni drugiej 28,17 MWh.
METODA SIMPLEKS
3 x1 + 4 x2 → max
x1 + 2 x2 ≤ 10
x1 + x2 ≤ 8
x1 ≥ 0, x2 ≥ 0
Postać bazowa programu liniowego – wszystkie ograniczenia są równościami, nierówności
przekształca się za pomocą zmiennych bilansujących.
3 x1 + 4 x2 + 0 x3 + 0 x4 + → max
x1 + 2 x2 + x3
x1 + x2
= 10
+ x4 = 8
x1 ≥ 0, x2 ≥ 0
Na tej podstawie buduje się tablicę simpleksową
cj
3
4
0
0
x3
cB
0
x1
1
x2
2
x3
1
x4
0
10
x4
0
1
1
0
1
8
zj=cBTaij
0
0
0
0
0
dj=cj-zj
3
4
0
0
Baza
b
bi/aik
Jeżeli wartości wszystkich wskaźników optymalności (dj) są niedodatnie, to rozpatrywane
rozwiązanie jest optymalne (dla funkcji minimalizowane nieujemne). W przeciwnym wypadku
otrzymane rozwiązanie można poprawić.
Ze wskaźników optymalności wybieramy największy (dla min najmniejszy) – odpowiadająca mu
zmienna wchodzi do bazy. Jeśli jest kilka wartości maksymalnych (minimalnych) to wprowadzamy
dowolną odpowiadającą im zmienną.
cj
3
4
0
0
x3
cB
0
x1
1
x2
2
x3
1
x4
0
10
x4
0
1
1
0
1
8
zj=cBTaij
0
0
0
0
0
dj=cj-zj
3
4
0
0
Baza
b
bi/aik
Oblicza się ilorazy kolejnych wyrazów wolny (kolumna b) przez odpowiadające im dodatnie elementy
kolumny zmiennej wprowadzanej do bazy. Bazę opuszcza zmienna, dla której iloraz jest najmniejszy
3
4
0
0
b
x3
cB
0
x1
1
x2
2
x3
1
x4
0
10
5
x4
0
1
1
0
1
8
8
zj=cBTaij
0
0
0
0
0
dj=cj-zj
3
4
0
0
cj
Baza
bi/aik
Przejście do kolejnego rozwiązania bazowego. Elementy tablicy simpleksowej są przekształcane za
pomocą eliminacji Jordana-Gaussa (operacje elementarne na macierzach)
Aby otrzymać macierz jednostkową z kolumn zmiennych bazowych, pierwszy wiersz dzielimy przez
2, a następnie od drugiego wiersza odejmujemy pierwszy podzielony przez 2. Dalej wypełniamy
tabelę uzupełniając wartości…
3
4
0
0
x2
cB
4
x1
0,5
x2
1
x3
0,5
x4
0
5
x4
0
0,5
0
-0,5
1
3
zj=cBTaij
2
4
2
0
20
dj=cj-zj
1
0
-2
0
cj
Baza
b
bi/aik
Otrzymujemy kolejne rozwiązanie bazowe x2=5, x4=3 , pozostałe zmienne poza bazą równają się 0.
Wartość funkcji celu 20.
Ponieważ nie wszystkie wskaźniki są niedodatnie, to można jeszcze poprawić rozwiązanie.
cj
Baza
3
4
0
0
x1
b
bi/aik
x3
0,5
x4
0
5
10
6
x2
cB
4
0,5
x2
1
x4
0
0,5
0
-0,5
1
3
zj=cBTaij
2
4
2
0
20
dj=cj-zj
1
0
-2
0
Zmienna x1 wchodzi do bazy, a zmienna x4 opuszcza bazę.
Aby otrzymać macierz jednostkową z kolumn zmiennych bazowych, mnożymy drugi wiersz razy 2 i
odejmujemy od pierwszego wiersza drugi (wartości przed mnożeniem) . Dalej wypełniamy tabelę
uzupełniając wartości…
3
4
0
0
x2
cB
4
x1
0
x2
1
x3
1
x4
-1
2
x1
3
1
0
-1
2
6
zj=cBTaij
3
4
1
2
26
dj=cj-zj
0
0
-1
-2
cj
Baza
b
bi/aik
Wszystkie wskaźniki optymalności są niedodatnie, więc otrzymane rozwiązanie jest rozwiązaniem
optymalnym, x2=2, x1=6, wartość funkcji celu 26.
ZMIENNE SZTUCZNE, minimalizacja, rozwiązanie alternatywne
3x1 + 2 x2 + 2 x3 → min
x1 + x2 + x3 ≥ 15
x1 + 2 x2 + x3 ≤ 40
2 x1 + x2 + x3 = 20
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
Dla problemów minimalizacji rozwiązanie można poprawić, jeśli występuje przynajmniej jeden
nieujemny wskaźnik optymalności.
W celu zbudowania postaci bazowej programu należy:
1. od lewej strony ograniczeń typu „≥” odjąć zmienną bilansującą oraz dodać zmienną sztuczną
(sk),
2. do lewej ograniczeń typu „=” dodać sztuczną zmienną,
3. (M – metoda) współczynniki w funkcji celu przy zmiennych sztucznych są bardzo dużymi
wartościami dodatnimi w przypadku minimalizacji (M) lub ujemnymi w przypadku
maksymalizacji (-M),
3x1 + 2 x2 + 2 x3 + 0 x4 + 0 x5 + Mx6 + Mx7 → min
x1 + x2 + x3 − x4 + x6 = 15
x1 + 2 x2 + x3 + x5 = 40
2 x1 + x2 + x3 + x7 = 20
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
Do pierwszej tablicy simpleksowej wchodzą zmienne sztuczne, a gdzie nie występują tam zmienne
bilansujące.
cj
3
2
2
0
0
M
M
b
bi/aik
0
0
15
40
15
0
1
20
10
0
M
M
35M
M
0
0
0
2
0
0
M
M
Baza
cB
x1
x2
x3
x4
x5
x6
x7
x6
x5
M
0
1
1
1
2
1
1
-1
0
0
1
1
0
x7
M
2
1
1
0
0
zj = cBTaij
3M
2M
2M
-M
dj=cj-zj
3-3M
2-2M
2-2M
3
2
cj
b
bi/aik
-0,5
-0,5
5
30
10
20
0,5
10
20
Baza
cB
x1
x2
x3
x4
x5
x6
x7
x6
x5
M
0
0
0
0,5
1,5
0,5
0,5
-1
0
0
1
1
0
x1
3
1
0,5
0,5
0
0
0
zj = cBTaij
3
0,5M+1,5 0,5M+1,5
-M
0
M
-0,5M+1,5 5M+30
dj=cj-zj
0
0,5-0,5M 0,5-0,5M
M
0
0
1,5M-1,5
cj
40
3
2
2
0
0
M
M
b
Baza
cB
x1
x2
x3
x4
x5
x6
x7
x2
x5
2
0
0
0
1
0
1
-1
-2
3
0
1
2
-3
-1
1
10
15
x1
3
1
0
0
1
0
-1
1
5
zj = cBTaij
3
2
2
-1
0
1
1
35
dj=cj-zj
0
0
0
1
0
M-1
M-1
bi/aik
Wszystkie wskaźniki optymalności są nieujemne, rozwiązania nie można już poprawić. Wartość
funkcji celu wynosi 35, x1=5, x2=10, x3=0.
Wskaźnik optymalności dla zmiennej niebazowej x3 wynosi 0, oznacza to że, wprowadzenie jej do
bazy nie poprawi funkcji celu, ale też nie pogorszy. Wskazuje to na rozwiązanie alternatywne.
cj
3
2
2
0
0
M
M
b
bi/aik
-1
1
10
15
10
-1
1
5
0
1
1
35
1
0
M-1
M-1
2
0
0
M
M
Baza
cB
x1
x2
x3
x4
x5
x6
x7
x3
x5
2
0
0
0
1
0
1
-1
-2
3
0
1
2
-3
x1
3
1
0
0
1
0
zj = cBTaij
3
2
2
-1
dj=cj-zj
0
0
0
cj
3
2
b
Baza
cB
x1
x2
x3
x4
x5
x6
x7
x3
x5
2
0
0
0
1
1
1
0
-2
1
0
1
2
-1
-1
0
10
25
x1
3
1
0
0
1
0
-1
1
5
zj = cBTaij
3
2
2
-1
0
1
1
35
dj=cj-zj
0
0
0
1
0
M-1
M-1
bi/aik
Wartość funkcji celu wynosi 35, x1=5, x2=0, x3=10.
Rozwiązanie alternatywne wskazuje, że dla dwóch wierzchołków (simpleksa) zbioru rozwiązań
dopuszczalnych wartość funkcji celu przyjmuje wartość optymalną. Oznacza to, że zbiór rozwiązań
optymalnych jest odcinkiem łączącym te dwa wierzchołki. W badanym przypadku będzie to zbiór:
{x1 , x2 , x3 | 2 x1 + x2 + x3 = 20 ∧ x1 = 5 ∧ x2 ∈ 0,10 } .
Rozwiązanie x1=5, x2=5, x3=5 jest więc również rozwiązaniem optymalnym.
Brak ograniczeń na nieujemność zmiennych, zmienne niedodatnie, nieograniczony
zbiór rozwiązań dopuszczalnych, zagadnienie sprzeczne
•
Jeżeli na k-tą zmienną nie nałożono ograniczeń na nieujemność, to należy dokonać
przekształcenia tej zmiennej w dwie inne: xk = xk − xk , xk ≥ 0, xk ≥ 0 .
•
Dla zmiennej niedodatniej zamieniamy znak w programie, wtedy zmienna staje się
nieujemna.
Przy nieograniczonym zbiorze rozwiązań dopuszczalnych w tablicy simpleksowej dla
wprowadzanej zmiennej wszystkie wartości w kolumnie rozwiązującej [aik] są niedodatnie.
Nie można obliczyć żadnego ilorazu bi/aik. Zmienna ta może więc zwiększać lub zmniejszać
wartość funkcji celu w nieskończoność.
Zagadnienie sprzeczne – w rozwiązaniu optymalnym, zmienna sztuczna jest niezerową
zmienną bazową.
•
•
Rozwiązanie zdegenerowane, metoda perturbacji