BO kompendium Amaltai

Transkrypt

BO kompendium Amaltai
Badania Operacyjne
Notatki
by Amatalai™
UWAGA! - w ten sposób oznaczam ewentualne różnice jeśli algorytm z ćwików jest inny niż u JJ
Autor nie ponosi odpowiedzialności za ewentualne błędy w notatkach.
PDF tworzony z myślą o osobach na których MI zależy, proszę go nikomu nie udostępniać bez
mojej zgody (ani nie pytać o zgodę bo i tak jej nie wyrażę).
Streszczenie może zawierać śladowe ilości orzeszków.
Programowanie liniowe:
Mały warsztat naprawia 2 rodzaje urządzeń B1, B2.
Każde urządzenie zawiera 3 podstawowe elementy E1,E2,E3.
Naprawa polega na montażu lub demontażu w zależności od technologii. Tabela przedstawia
przebieg każdej naprawy, zysk oraz zapas elementów w firmie.
Element
E1
E2
B1
3
-2
B2
-1
4
7
12
gdzie x1 i x2 są ilością danych urządzeń.
Określić z punktu widzenia zysków plan napraw.
Urządzenie
Całkowity zysk:
przy ograniczeniach: l. el. E1 :
l. el. E2 :
l. el. E3 :
E3
-4
3
10
Zysk [$/szt]
-1
3
x1
x2
-x1+3x2  max
3x1-x2  7
-2x1+4x2  12
D
-4x1+3x2  10
x1,x2  0
x1, x2  D
Rozwiązanie graficzne:
Sprawdza się głównie dla 2 zmiennych.
Obszar wspólny jest zbiorem rozwiązań.
Jeśli istnieje rozwiązanie optymalne będzie ono w jednym z wierzchołków (lub w pewnych
przypadkach może być to cała krawędź). Jeśli nie ma rozwiązania optymalnego to zbiór
będzie pusty.
1
Prostą kierunku wyznacza się funkcją celu i przesuwa tak długo jak mamy punkt wspólny z
obszarem rozwiązań dopuszczalnych, po czym odczytujemy wartości z osi x 1 i x2.
W celu otrzymania dokładnego wyniku obliczamy układ równań dla prostych, które
przecinają się w wyznaczonym wierzchołku:
3x1-x2=7
-2x1+4x2=12
W rozpatrywanym zadaniu 4,5 .
Interpretacja
-x1+3x2  max
-4+3*5=11$
2
Zadanie programowania liniowego:
Urządzenie
B1
B2
B3
zapas
E1
3
-1
2
7
-x1+3x2-2x3  max
p.o.
3x1
-x2
-2x1 +4x2
-4x1 +3x2
x1,x2,x3  0
Element
E2
-2
4
0
12
+2x3
+8x3
Zysk [$/szt]
E3
-4
3
8
10
-1
3
-2
x1
x2
x3
7
 12
 10
Metoda sympleks:
Złożoność: 2(m+n)
Teoretycznie złożoność wykładnicza, ale w większości przykładów metoda jest sprawna.
Problem programowania liniowego:
zmaksymalizować funkcję, która ma postać: z 
n
c x
j
j 1
n
a x
przy ograniczeniach:
j 1
ij
j
(1)
j
 bi i  1,..., m
x j  0 i  1,..., n
Zapis wektorowy:
cx
c  c1 ... cn 
 x1 
x   ... 
 xn 
Ax  b
 a11 ... a1n 
A   ... ... ... 
am1 ... amn 
 b1 
b   ... 
bn 
3
(2)
(3)
Nazewnictwo:
n
z   c j x j - funkcja celu
j 1
n
a x
j 1
ij
j
 bi i  1,..., m
ograniczenia
x j  0 i  1,..., n
x j - zmienne decyzyjne
a, b, c- parametry
Programowanie liniowe należy do modeli deterministycznych.
Wszystkie wektory x, które spełniają ograniczenia są rozwiązaniem dopuszczalnym.
Rozwiązaniem dopuszczalnym problemu programowania liniowego (1)-(3) jest wektor
x  x1 x2 ... xn  spełniający warunki (2) i (3).
W programowaniu liniowym w kroku pierwszym chcemy znaleźć rozwiązanie, które leży w
wierzchołku. Z punktu widzenia algebraicznego musieli byśmy znaleźć punkt w przestrzeni
nieco większej (chcemy aby ograniczenia były spełnione ze znakiem równości).
s1,s2,s3 - zmienne uzupełniające, oznaczają nieużyte elementy E1,E2,E3.
3x1
-x2
+2x3
-2x1
+4x2
-4x1
+3x2 +8x3
x1,x2,x3,s1,s2,s3  0
+s1
+s2
+s3
=7
=12
=10
Dla tego układu równań szukamy rozwiązania w wierzchołku sympleksu.
 x1  0 
x 0
 2

 x3  0 
Rozwiązanie bazowe: 
 leży w wierzchołku sympleksu.
 s1  7 
 s2  12


 s3  10 
Rozwiązaniem bazowym układu równań (2) nazywamy rozwiązanie układu powstałego przez
przyrównanie do zera n-m zmiennych przy założeniu, że wyznacznik współczynników pozostałych m
zmiennych jest niezerowy.
m zmiennych nazywamy zmiennymi bazowymi (zmienne niewyzerowane). Jeśli wszystkie zmienne
bazowe są ściśle dodatnie to rozwiązanie nazywamy niezdegenerowanym.
Rozwiązanie maksymalne to rozwiązanie dopuszczalne, które maksymalizuje funkcję celu.
4
Jeśli funkcja celu jest maksymalizowana, ograniczenia celu mają postać równań oraz prawe
strony ograniczeń są nieujemne to problem jest w postaci standardowej.
Problem w postaci (1) do (3) nazywamy problemem w postaci kanonicznej.
Jeśli funkcja celu jest minimalizowana to aby zamienić ją na maksymalizowaną należy
pomnożyć ją przez -1.
Jeśli x1+x2  3 to zmienne uzupełniające dodajemy.
Jeśli x1+x2  3 to zmienne uzupełniające odejmujemy.
Jeśli po prawej stronie znajduje się liczba ujemna to obustronnie mnożymy przez -1.
5
Algorytm sympleks (dla maksymalizacji funkcji celu):
1. Sprowadzamy problem do postaci standardowej
2. Znaleźć dopuszczalne rozwiązanie bazowe.
3. Zbudować początkową tablicę sympleks.
//Postaram się tego typu rzeczy rozpisywać łopatologicznie w wielu krokach.
Najpierw z równań ograniczających w pola oznaczone kolorem żółtym wpisujemy
współczynniki przy odpowiednich zmiennych, a pola koloru fioletowego prawą stronę
równania.
Z rozwiązania bazowego w pola koloru niebieskiego wpisujemy zmienne tworzące
bazę(zmienne bazowe).
3x1
-2x1
-4x1
i
1
2
3
4
-x2
+4x2
+3x2
B
s1
s2
s3
X
+2x3
+8x3
CB
+s1
+s2
+s3
x1
3
-2
-4
=7
=12
=10
x2
-1
4
3
x3
2
0
8
s1
1
0
0
s2
0
1
0
s3
0
0
1
RHS
7
12
10
X
Następnie z funkcji celu:
-x1+3x2-2x3  max
-x1+3x2-2x3+0s1+0s2+0s3  max
-x1+3x2-2x3+0s1+0s2+0s3  max
w pola czerwone wpisujemy współczynniki funkcji celu zmiennych bazowych, a w pola
zielone współczynniki funkcji celu kolejnych zmiennych.
i
1
2
3
4
B
s1
s2
s3
X
B
C
0
0
0
X
-1
x1
3
-2
-4
3
x2
-1
4
3
-2
x3
2
0
8
6
0
s1
1
0
0
0
s2
0
1
0
0
s3
0
0
1
RHS
7
12
10
Wiersz czwarty tej tabelki jest wierszem wskaźnikowym. Jego wartości oblicza się na
podstawie wzoru
i
1
2
3
4
B
s1
s2
s3
X
c j  z j gdzie z j   ci xij
iB
B
C
0
0
0
X
-1
x1
3
-2
-4
3
x2
-1
4
3
-2
x3
2
0
8
0
s1
1
0
0
0
s2
0
1
0
0
s3
0
0
1
RHS
7
12
10
Dla większej przejrzystości oznaczyłem ci,cj oraz xij kolejno kolorami żółtym, zielonym i
czerwonym.
Przykładowo:
-1 = -1 – (0*3 + 0*(-2) + 0*(-4))
-1
3
-2
0
i
B
CB
x1
x2
x3
s1
1
s1
0
3
-1
2
1
2
s2
0
-2
4
0
0
3
s3
0
-4
3
8
0
4
X
X
-1
(UWAGA! Wersja z ćwików: 1 = (0*3 + 0*(-2) + 0*(-4))- (-1))
i
1
2
3
4
B
s1
s2
s3
X
B
C
0
0
0
X
3 = 3 – (0*(-1) + 0*4 + 0*3)
-1
3
-2
x1
x2
x3
3
-1
2
-2
4
0
-4
3
8
-1
3
0
s2
0
1
0
0
s3
0
0
1
RHS
7
12
10
0
s1
1
0
0
0
s2
0
1
0
0
s3
0
0
1
RHS
7
12
10
0
s1
1
0
0
0
0
s2
0
1
0
0
0
s3
0
0
1
0
RHS
7
12
10
0
Co ostatecznie daje nam:
i
1
2
3
4
B
s1
s2
s3
X
CB
0
0
0
X
-1
x1
3
-2
-4
-1
3
x2
-1
4
3
3
-2
x3
2
0
8
-2
W wierszu wskaźnikowym wartość wierszy bazowych musi być równa 0. W innym wypadku
oznacza to błąd.
7
4. Wybrać największy element wiersza wskaźnikowego:
5. Jeżeli
xm1,k
xm1,k  0 to tablica przedstawia rozwiązanie optymalne, w przeciwnym razie:
a) wyznaczyć element
xl ,k
ten element wybrany
xl ,k
b j ,k
dla którego iloraz

x j ,k
bi ,k
xi ,k
gdzie
i  1..n , xi ,k  0
nazywamy elementem centralnym przekształcenia tablicy
sympleks.
b)przekształcić tablicę sympleks stosując następujące wzory:
xlj ' 
Dla wierszy:
xlj
xlk
j  1..n  1
xik  xlj
xij '  xij 
xlk
i  l , j  1..n  1
c)wrócić do kroku 4
Przykład:
Wybieramy największy element wiersza wskaźnikowego:
-1
3
-2
0
0
0
i
B
CB
x1
x2
x3
s1
s2
s3
RHS
1
s1
0
3
-1
2
1
0
0
7
2
s2
0
-2
4
0
0
1
0
12
3
s3
0
-4
3
8
0
0
1
10
4
X
X
-1
3
-2
0
0
0
0
(UWAGA! Wersja z ćwików: wybieramy najmniejszy element wiersza wskaźnikowego)
Jest nim 3. Ponieważ 3>0 wyznaczamy element centralny przekształcenia tablicy sympleks
wybierając najmniejszą wartość:
7 / -1 = -7
odpada ponieważ liczba przez którą dzielimy musi być > 0
12 / 4 = 3
10 / 3 = 3 13
i
1
2
3
4
B
s1
s2
s3
X
CB
0
0
0
X
-1
x1
3
-2
-4
-1
3
x2
-1
4
3
3
-2
x3
2
0
8
-2
W nowej bazie element s2 zostanie zastąpiony przez x2
8
0
s1
1
0
0
0
0
s2
0
1
0
0
0
s3
0
0
1
0
RHS
7
12
10
0
Przekształcamy tablicę sympleks:
-1
B
i
B
C
x1
1
s1
0
3
2
s2
0
-2
3
s3
0
-4
4
X
X
-1
3
x2
-1
4
3
3
-2
x3
2
0
8
-2
0
s1
1
0
0
0
0
s2
0
1
0
0
0
s3
0
0
1
0
RHS
7
12
10
0
-1
x1
8)
1)
15)
3
x2
9)
2)
16)
-2
x3
10)
3)
17)
0
s1
11)
4)
18)
0
s2
12)
5)
19)
0
s3
13)
6)
20)
RHS
14)
7)
21)
i
1
2
3
4
B
s1
x2
s3
X
B
C
0
3
0
X
Zgodnie ze wzorem
1)-2 /
2)4 /
3)0 /
4)0 /
5)1 /
6)0 /
7)12/
4 = -1/2
4 = 1
4 = 0
4 = 0
4 = 1/4
4 = 0
4 = 3
oraz wzorem
xlj
xlj ' 
xlk
j  1..n  1
xik  xlj
xij '  xij 
xlk
i  l , j  1..n  1
8) 3 - (-1) * (-2) / 4 = 5/2
9) -1 - (-1) * 4 / 4 = 0
10) 2 - (-1) * 0 / 4 = 2
11) 1 - (-1) * 0 / 4 = 1
12) 0 - (-1) * 1 / 4 = 1/4
13) 0 - (-1) * 0 / 4 = 0
14) 7 - (-1) * 12 / 4 = 10
15) -4 - 3 * (-2) / 4 = -5/2
16) 3 - 3 * 4 / 4 = 0
17) 8 - 3 * 0 / 4 = 8
18) 0 - 3 * 0 / 4 = 0
19) 0 - 3 * 1 / 4 = -3/4
20) 1 - 3 * 0 / 4 = 1
21) 10- 3 * 12 / 4 = 1
9
Otrzymujemy więc:
i
1
2
3
4
B
s1
x2
s3
X
CB
0
3
0
X
-1
x1
5/2
-1/2
-5/2
3
x2
0
1
0
-2
x3
2
0
8
0
s1
1
0
0
0
s2
1/4
1/4
-3/4
0
s3
0
0
1
RHS
10
3
1
Obliczamy wartości wiersza wskaźnikowego:
i
1
2
3
4
B
s1
x2
s3
X
B
C
0
3
0
X
-1
x1
5/2
-1/2
-5/2
1/2
3
x2
0
1
0
0
-2
x3
2
0
8
-2
0
s1
1
0
0
0
0
s2
1/4
1/4
-3/4
-3/4
0
s3
0
0
1
0
RHS
10
3
1
9
-1
x1
1
0
0
0
3
x2
0
1
0
0
-2
x3
4/5
2/5
10
-12/5
0
s1
2/5
1/5
1
-1/5
0
s2
1/10
3/10
-1/2
-4/5
0
s3
0
0
1
0
RHS
4
5
11
11
Kolejna iteracja:
i
1
2
3
4
B
x1
x2
s3
X
B
C
-1
3
0
X
Największy element wiersza wskaźnikowego spełnia założenie
Jest to rozwiązanie optymalne.
Wartość zmiennych decyzyjnych:
x1=4
x2=5
x3=0
s1=0
s2=0
s3=11
z*=11
10
xm1,k  0 .
Metoda sztucznej bazy:
2x1+x2+x3  max
p.o. x1+3x2+x3  3
2x1+x2+2x3  5
2x1+2x2+x3  2
x1,x2,x3  0
x1
2x1
2x1
+3x2
+x2
+2x2
+x3
+2x3
+x3
-s1
+s2
-s3
=3
=5
=2
Ponieważ nie wszystkie zmienne bazowe są ściśle dodatnie należy wprowadzić zmienne
sztuczne.
a1,a3 - zmienne sztuczne
2x1+x2+x3-Ma1-Ma3max
x1
+3x2 +x3
-s1
2x1
+x2
+2x3
2x1
+2x2 +x3
x1,x2,x3,s1,s2,s3,a1,a3  0
+a1
+s2
-s3
+a3
=3
=5
=2
Algorytm sympleks:
B
i
1
2
3
4
B
a1
s2
a3
X
C
-M
0
-M
X
i
1
2
3
B
x2
s2
a3
CB
1
0
-M
4
X
X
2
1
x1
x2
1
3
2
1
2
2
2+3M 1+5M
1
x3
1
2
1
1+2M
0
s1
-1
0
0
-M
0
s2
0
1
0
0
0
s3
0
0
-1
-M
-M
a1
1
0
0
0
-M
a3
0
0
1
0
RHS
3
5
2
-5M
2
x1
1/3
5/3
4/3
5/3+
4/3M
1
x3
1/3
5/3
1/3
2/3+
1/3M
0
s1
-1/3
1/3
2/3
1/3+
2/3M
0
s2
0
1
0
0
s3
0
0
-1
-M
a1
-M
a3
0
0
1
RHS
1
4
0
0
-M
0
1
1
x2
1
0
0
0
11
X
i
1
2
3
4
i
1
2
3
4
B
B
x2
s2
x1
X
C
1
0
2
X
B
x2
s3
x1
X
B
C
1
0
2
X
2
x1
0
0
1
0
1
x2
1
0
0
0
1
x3
1/4
5/4
1/4
1/4
0
s1
-1/2
-1/2
1/2
-1/2
0
s2
0
1
0
0
0
s3
1/4
5/4
-3/4
5/4
-M
a1
-M
a3
X
X
2
x1
0
0
1
0
1
x2
1
0
0
0
1
x3
0
1
1
-1
0
s1
-2/5
-2/5
1/5
0
0
s2
-1/5
4/5
3/5
-1
0
s3
0
1
0
0
-M
a1
-M
a3
X
X
RHS
1
4
0
1
RHS
1/5
16/5
12/5
5
Opis algorytmu:
Wprowadzamy k  m zmiennych sztucznych. Zmienne te są nieujemne a ich współczynniki w
funkcji celu przyjmują wartość (-M), gdzie M jest dużą liczbą dodatnią.
Tablicę simpleks ze sztucznymi wektorami przekształcamy jak zwykłą tablicę dopóki:
 wszystkie sztuczne wektory zostaną wyeliminowane z bazy, tj. mamy bazę
dopuszczalną pierwotnego zagadnienia
 -brak dodatnich współczynników przy M w wierszu wskaźnikowym:
o jeżeli sztuczna część f.celu jest dodatnia, to zagadnienie nie ma rozwiązania
dopuszczalnego
o jeśli sztuczna część f.celu jest równa zero, to mamy zdegenerowane
rozwiązanie dopuszczalne pierwotnego zagadnienia, które zawiera co
najwyżej jeden sztuczny wektor. Przekształcamy tablicę simpleks
wprowadzając do bazy wektor, który odpowiada największemu dodatniemu
elementowi wiersza wskaźnikowego przy zerowej wartości współczynnika M.
Kolumny odpowiadające zmiennym sztucznym, które opuściły bazę można wyeliminować z
obliczeń.
Po otrzymaniu bazy dopuszczalnej zagadnienia pierwotnego kontynuujemy realizację
algorytmu simpleks aż do otrzymania rozwiązania problemu pierwotnego.
12
Problem dualny:
Urządzenie
B1
B2
B3
zapas
E1
3
-1
2
7
Element
E2
-2
4
0
12
zminimalizować 7y1+12y2+10y3
p.o.
3y1-2y2-4y3  -1
-1y1+4y2+3y3  3
2y1+8y3  -2
y1,y2,y3  0
y1 - cena jednostokowa elementu E1
y2 - cena jednostokowa elementu E2
y3 - cena jednostokowa elementu E3
Zagadnienie pierwotne (prymalne):
max c x
p.o. A x  b
 3  1 2
A   2 4 0


 4 3 8
7
b  12
 
10
c   1 3  2
 x1 
x   x2 
 
 x3 
Zagadnienie dualne:
min y b
p.o. A y  C
T
A,b,c
y   y1
y2
T
y3 
T
- transponowane
13
E3
-4
3
8
10
Zysk [$/szt]
-1
3
-2
Para zagadnień dualnych:
Jeżeli zagadnienie pierwotne(dualne) ma skończone rozwiązanie optymalne to odpowietnie
zagadnienie dualne(prymalne) ma również skończone rozwiązanie optymalne i ekstrema
tych funkcji celi są równe, to znaczy:
cx*=y*b (wektory)
Jeżeli rozwiązanie optymalne jednego z zagadnień jest nieograniczone to odpowiadające mu
zagadnienie nie ma rozwiązań dopuszczalnych.
Dla optymalnych rozwiązań dopuszczalnych zagadnień prymalnego i dualnego jeżeli tylko
występuje nierówność w k-tej zależności dowolnego układu (odpowiednia zmienne
osłabiająca jest dodatnia) to k-ta zmienna w jego układzie dualnym jest równa zero.
Jeżeli k-ta zmienna jest dodatnia w dowolnym układzie to k-ta nierówność w jego układzie
dualnym jest równością (odpowiednia zmienna osłabiająca jest równa zero).
Zależność między rozwiązaniem prymalnym a dualnym:
Ostatnia iteracja problemu prymalnego:
-1
3
B
i
B
C
x1
x2
1
x1
-1
1
0
2
x2
3
0
1
3
s3p
0
0
0
4
X
X
0
0
Ostatnia iteracja problemu dualnego:
-7
-12
B
i
B
C
y1
y2
1
y2
-12
0
1
2
y1
-7
1
0
3
s3d
0
0
0
4
X
X
0
0
-2
x3
4/5
2/5
10
12/5
-10
y3
1/2
-1
-10
11
x1 = s1d
x2 = s2d
x3 = s3d
y1 = s1p
y2 = s2p
y3 = s3p
14
0
s1d
-1/10
-2/5
-4/5
4
0
s1p
2/5
1/5
1
1/5
0
s2d
-3/10
-1/5
-2/5
5
0
s2p
1/10
3/10
-1/2
4/5
0
s3d
0
0
1
0
0
s3p
0
0
1
0
-M
a2
X
X
RHS
4
5
11
11
RHS
4/5
1/5
12/5
-11
Metoda płaszczyzn odcinających (metoda Gomory’ego):
Czyli sympleks ze zmiennymi, które mają być liczbami całkowitymi.
Algorytm:
1. Rozwiąż metodą sympleks zadanie programowania liniowego bez warunku
dyskretności zmiennych.
2. Jeżeli otrzymane rozwiązanie jest całkowitoliczbowe to jest ono rozwiązaniem
wyjściowego zadania całkowitoliczbowego programowania liniowego.
3. Wyeliminuj wszystkie zmienne sztuczne z tablicy sympleks po czym wybierz zmienną
xk, która ma wartość ułamkową w ostatnim rozwiązaniu.
4. W ostatniej tablicy sympleks wybierz wiersz l odpowiadający zmiennej x k. Zastąp
współczynniki i stałą w l-tym równaniu ich częściami ułamkowymi.
5. Dodaj do każdego ujemnego ułamka w kroku 4 wartość 1.
6. Odejmij zmienną osłabiającą i dodaj sztuczną sprowadzając równanie do postaci
standardowej.
7. Dodaj równanie do ostatniej tablicy sympleks i rozwiąż zadanie.
8. Po otrzymaniu rozwiązania optymalnego przejdź do kroku 2.
Przykład:
max z = x1 + x2
p.o. 2x1+x2  6
4x1+5x2  20
x1,x2  0
x1,x2  C
1. Rozwiązujemy sympleks normalnie
i
1
2
3
B
1
x1
2
4
1
1
x2
1
5
1
0
s1
1
0
0
0
s2
0
1
0
RHS
6
20
0
1
x2
1/2
3
1/2
0
s1
1/2
-2
-1/2
0
s2
0
1
0
RHS
3
8
3
1
x2
0
1
0
0
s1
5/6
-2/3
-1/6
0
s2
-1/6
1/3
B
s1
s2
X
C
0
0
X
i
1
2
3
B
x1
s2
X
B
C
1
0
X
1
x1
1
0
0
i
1
2
3
B
x1
x2
X
CB
1
1
X
1
x1
1
0
0
-1/6
RHS
5/3
8/3
13/3
2. Rozwiązanie nie jest całkowitoliczbowe.
3. Nie ma zmiennych sztucznych do wyeliminowania więc wybieramy dowolną zmienną
ułamkową (w przykładzie wybrana została x2).
15
4. Bierzemy wiersz odpowiadający wybranej zmiennej
2
1
8
0 x1  1x2  s1  s2 
3
3
3
Zastępujemy współczynniki oraz stałą, częściami ułamkowymi w następujący sposób:
8
2
2
2 
3
3
3
W rezultacie otrzymujemy:
2
1
2
 s1  s 2 
3
3
3
//1x2 znikło ponieważ 1 nie ma części ułamkowej
5. Do ujemnych ułamków dodajemy 1 w następujący sposób:
2
1
 1 
3
3
i zapisujemy w postaci nierówności co daje nam:
1
1
2
s1  s 2 
3
3
3
s1  s2  2
6. Odejmujemy zmienną uzupełniającą i dodajemy sztuczną:
s1  s2  1s3  a1  2
7. Dodajemy otrzymane równanie do tabeli sympleks i rozwiązujemy ją:
i
1
2
3
B
x1
x2
a1
CB
1
1
-M
1
x1
1
0
0
1
x2
0
1
0
4
X
X
0
0
B
x1
x2
s2
X
B
1
x1
1
0
0
0
1
x2
0
1
0
0
i
1
2
3
4
C
1
1
0
X
0
s1
5/6
-2/3
1
-1/6
+M
0
s2
-1/6
1/3
1
0
s3
0
0
-1
-M
a1
0
0
1
-1/6
+M
-M
0
0
s1
1
-1
1
0
0
s2
0
0
1
0
s3
-1/6
1/3
-1
-1/6
-M
a1
8. Wracamy do punktu 2.
2. Rozwiązanie jest całkowitoliczbowe.
16
0
X
RHS
5/3
8/3
2
13/3
-2M
RHS
2
2
2
4
Programowanie nieliniowe:
Przykład zadania:
Producent drewnianych kwietników zakupił 700 desek. Każdy kwietnik składa się ze
wspornika i 2-8 półek. Na wspornik potrzeba 2 deski, na 1 półkę 1 deskę. Jednak przy
większym zamówieniu można użyć odpadków i lepiej wykorzystać materiał.
Ceny to 60zł za wspornik i 45zł za półkę, ale przy większym zamówieniu można zyskać
progresywny rabat 0,1% za każdy element.
x1- liczba wsporników
x2- liczba półek
0,5
Liczba desek na wspornik = 1,5 
0,998  0,002 x1
0,5
Liczba desek na półkę = 0,5 
0,998  0,004 x1  0,002 x2
max 60 x1 (0,999) x1  45x2 (0,999) x2
0,5
0,5
p.o
x1 (1,5 
)  x2 (0,5 
)  700
0,998  0,002 x1
0,998  0,004 x1  0,002 x2
2 x1  x2  8x1
x1  0
Ogólne sformułowanie problemu programowania matematycznego (nieliniowego):
max z  f 0 ( x)
p.o.
f i ( x)  0
i=1,…,m
f0 , fi : Rn  R
i=1,…,m
xR
n
Zapis z podkreśleniem oznacza: f 0 ( x)  f 0 ( x1 ,..., xn )
Zbiór rozwiązań dopuszczalnych:
s  {x : f i ( x)  0, i  1,..., m}
otoczenie punktu x *
  {x : 0 || x*  x ||  }
E  S
Norma: || x ||
 R
n
 (x )
i 1
2
i
17
Funkcja f 0 ma w punkcie x * minimum lokalne jeśli istnieje
  0 x  (  S ) f 0 ( x* )  f 0 ( x)
f0 ( x )
  0
 x  (  S )
właściwe
lokalne
  0
 x  (  S )
minimum
f 0 ( x )  f 0 ( x)
maximum
f 0 ( x )  f 0 ( x)
słabe lokalne
*
*
*
  0
x  S
właściwe
globalne
  0
x  S
f 0 ( x )  f 0 ( x)
f 0 ( x )  f 0 ( x)
f 0 ( x )  f 0 ( x)
f 0 ( x )  f 0 ( x)
f 0 ( x )  f 0 ( x)
f 0 ( x )  f 0 ( x)
*
*
słabe globalne
*
*
*
*
Gradient funkcji:
Wektor pochodnych cząstkowych funkcji f ( x), f : R n  R ze względu na x1 ,..., xn nazywa
się gradientem funkcji f (x) i oznacza się go przez f (x)
 f ( x) 
 x 
 1 
f ( x)   ... 
 f ( x) 
 xn 


Stwierdzenie:
x jest punktem stacjonarnym funkcji f (x) wtedy i tylko wtedy gdy f ( x)  0
Hesjan funkcji:
Hesjanem funkcji f : R n  R nazywamy wyznacznik następującej macierzy drugich pochodnych
cząstkowych:
  2 f ( x)
 2 f ( x) 
...


2
x1xn 
 x1
H ( x)   ...
...
... 
2
2

f
(
x
)

f ( x) 

 x x ...
xn2 
 n 1

Dla dowolnej macierzy M o wymiarach n x n i wektora z o długości n
 dodatnio okreslona 
 0 


dodatnio
polokreslo
na
 0 


 


T
M jest 
jest

z
M
z
  dla z  0

ujemnie polokreslona
 0 


 0 
 ujemnie okreslona 


18
Stwierdzenie:
Jeżeli x jest punktem stacjonarnym funkcji f (x) to zachodzą następujące implikacje:
1. H (x) jest dodatnio określona  x jest właściwym minimum lokalnym.
2. H (x) jest dodatnio półokreślona dla wszystkich x w pewnym otoczeniu x  x jest
minimum lokalnym.
3. x jest minimum lokalnym  H (x) jest dodatnio półokreślona
19
Metoda Lagrange’a:
Problem programowania matematycznego gdzie ograniczenia mają postać równań:
min f 0 ( x)  ( x1  1) 2  x22  1
1
p.o.
f1 ( x)  x1  x22  0
4
Twierdzenie Lagrange’a:
Niech dany będzie następujący problem nieliniowego programowania matematycznego:
min f 0 ( x)
p.o. f i ( x)  0 i=1,…,m
Jeżeli x jest lokalnym optimum problemu nieliniowego programowania matematycznego
i n>m
i f i mają pierwsze pochodne ze względu na x i

i f 0 x są liniowo niezależne

m

to istnieje wektor u  [u1 ,..., um ]T , taki że f 0 x   ui f i x  0
i 1
Liczby ui nazywa się mnożnikami Lagrange’a
Metoda Lagrange’a:
1. Sprawdzić czy n>m i każda funkcja f i (x) ma ciągłe pochodne cząstkowe
m
2. Sformułować funkcję Lagrange’a: Lx, u   f 0 x    ui f i x 
i 1
3. Znaleźć wszystkie rozwiązania x, u  następującego układu równań:


m
f 0 x   ui f i x  0
(n równań)
Lx, u 
 f i x   0
ui
(m równań)
i 1
i=1,…,m
Są to warunki Lagrange’a. Punkty x, u  nazywamy punktami Lagrange’a
4. Zbadaj każdy punkt x, u  sprawdzając czy jest to maximum czy minimum.


Jeżeli x * ,u * jest punktem Lagrange’a i hesjan H i ( x* ) funkcji Lagrange’a w punkcie x * dla
 
u  u spełnia warunek x H i x x  0 dla wszystkich x takich, że x f i x   0 i=1,…,m to x
jest minimum lokalnym
T
*
*
T
Jeżeli założenia twierdzenia Lagrange’a są spełnione i nie istnieje u takie, że
 
m
 
f 0 x   ui f i x  0 w punkcie x , to w tym punkcie na pewno nie występuje
*
i 1
*
*
minimum.
20
Postać ogólna:
min f 0 x 
p.o.
f i x   0
i=1,…,m
Przykładowe zadanie:
min f 0 x   x1  14  x2  11
2
p.o.
2
f1 x   x1  11  x2  13  7 2  0
2
2
f 2 x   x1  x2  19  0
Ograniczenie f1 jest nieaktywne.
Na wykładzie wynikało to z ograniczeń rozrysowanych metodą graficzną.
21
Metoda Karusha-Kuhna-Tuckera (Metoda KKT):
Warunki:
1. Warunek Gradientowy:
Gradient ograniczenia aktywnego = 0
L
j=1,…,n
0
x j
2. Warunek Ortogonalności:
ui f i x   0 i=1,…,m
3. Warunek Dopuszczalności:
f i x   0
i=1,…,m
4. Warunek Nieujemności:
ui  0
i=1,…,m
Twierdzenia KKT:
Niech będzie dany problem w postaci kanonicznej:
min f 0 x 
p.o.
f i x   0
i=1,…,m
Warunki konieczne:
Jeżeli f i i=1,…,m jest różniczkowalna i x jest lokalnym minimum i f i x  są liniowo
niezależne to istnieje wektor u taki, że x, u  spełnia warunki KKT.
Warunki dostateczne:
Jeżeli x, u  spełnia warunki KKT i f i i=1,…,m jest funkcją wypukłą to x jest minimum
globalnym.
Inne:
H x  jest dodatnio półokreślona dla wszystkich wartości x  f x  jest funkcją wypukłą.
H x  jest dodatnio określona dla wszystkich wartości x  f x  jest funkcją ściśle wypukłą.
Metoda KKT:
1. Sformułować funkcję Lagrange’a: Lx, u   f 0 x  
m
 u f x 
i 1
i i
2. Znaleźć wszystkie rozwiązania x, u  następującego układu równań i nierówności:
L
0
x j
ui f i x   0
f i x   0
ui  0
j=1,…,n
i=1,…,m
i=1,…,m
i=1,…,m
3. Jeżeli f i i=0,…,m są wypukłe to x jest globalnym minimum. W przeciwnym razie
każde rozwiązanie x, u  należy sprawdzić czy jest ono minimum lokalnym.
22
Przykładowe zadanie:
1
min f 0 x   3x1  x22
2
2
p.o.
f1 x   x1  x22  1  0
f 2 x    x1  0
f 3 x    x2  0
Warunki Dopuszczalności
(f)
(g)
(h)
Formułujemy funkcję Lagrange’a:
1
Lx, u    3x1  x22  u1 ( x12  x22  1 )  u2 (  x1 )  u3 (  x2 )
2
Warunki Gradientowe:
L
(a)
 3  2u1 x1  u 2  0
x1
L
(b)
 x2  2u1 x2  u3  0
x2
Ten pdf dotyczy BO a nie analizy matematycznej, jak ktoś nie umie liczyć pochodnych to już
jego problem.
Warunki Ortogonalności:
u1 ( x12  x22  1 )  0
u 2 (  x1 )  0
u 3 (  x2 )  0
(c)
(d)
(e)
Warunki nieujemności:
u1  0
u2  0
u3  0
(k)
(l)
(m)
W warunku (d) załóżmy, że u 2  0 wtedy x1  0 . Z (a)  3  u 2  0 zatem u 2  3 co jest
sprzeczne z (l), a zatem u 2  0 .
W (e) niech x2  0 to u3  0 i z (b) otrzymujemy x2 1  2u1   0  u1  0 zatem x2  0 .




Z (c) x12  x22  1  0 to wtedy u1  0 i z (a) u 2  3 co jest sprzeczne zatem x12  x22  1  0
co po podstawieniu x2  0 oraz uwzględnieniu (g) daje nam x1  1 .
Z (a) wychodzi, że u1 
3
.
2
23
Przypadek z równościami w ograniczeniach:
2
2
13  
1

min f 0 x    x1     x2    x3
3 
2

5
p.o.
f1 x   x1  x2  10  0
3
2
f 2 x   x2  2  x3  4  0
1. Sprawdzamy warunki:
n- liczba zmiennych
n=3
m-liczba ograniczeń
m=2
n>m
Gradienty ograniczeń:
 1 
f1 x   5 / 3
 0 
 0 
f 2 x   2x2  2
 1 
 f i  x  


 x1 
f  x 
Skąd to się bierze f i  x    i 
 x2 
 f  x  
 i 
 x3 
f i
są ciągłe i mają ciągłe pierwsze pochodne (cokolwiek to znaczy).
x j
2. Funkcja Lagrange’a:
2

2
13  
1
5



2
Lx, u    x1     x2    x3  u1  x1  x2  10   u2 x2  2  x3  4
3 
2
3



3. Układ równań:
L
13 

 2 x1    u1  0
(a)
x1
3

L
1 5

 2 x2    u1  2x2  2u2  0
(b)
x2
2 3

L
u2  1
(c)

 1  u 2  0
x3
5
L
5
(d)

x1   x2  10
 x1  x2  10  0
3
u1
3
L
2
(e)
 x2  2  x3  4  0
u2
z (b) i (f)
z (h) i (a)
1 5

2 x2    u1  2x2  2  0
2 3

5
13 

210  x2    u1  0
3
3

24


12
x2
5
34 10
u1    x2
3 3
u1  3 

(f)
(h)
(g)
(k)
34 10
12
 x2  3  x2
3 3
5
z (g) i (k)

z (g) i (i)
u1  3
z (a)
2 x1 
z (e)
5

  2   x3  4  0
2

26
3  0
3

x2 
5
2

x1 
35
6

x3 
15
4
2
(i)
Punkt Lagrange’a:
 35 
6
5
 3
x 
u 
2
1
 15 
 4 
4. Gradient funkcji celu:
 
13 
2 x1  3 

 
1

f 0  x    2 x2   
 
2

1 




5. Hesjan
 2 0 0
H  0 2 0
0 0 0
Żeby było łatwiej go policzyć można wziąć gradient i dla każdego wiersza policzyć
pochodną po kolejnych zmiennych x1 , x2 , x3
Następnie bierzemy niezerowy wektor z  z1
różna od 0) i wykonujemy obliczenia:
zH z  z1
T
z2
2 0 0  z1 
z3 0 2 0  z2   2 z1
0 0 0  z3 
2 z2
z2
z3  (co najmniej 1 współrzędna
 z1 
0 z2   2 z12  2 z22  0  0
 z3 
Hesjan dodatnio półokreślony czyli funkcja ma minimum lokalne.
25
Procesy nieregularne:
Pojęcie:
Pod pojęciem procesu nieregularnego rozumieć będziemy przedsięwzięcie
wieloczynnościowe, na ogół jednorazowe o nietypowej strukturze i przebiegu, np.:
 procesy technicznego przygotowania produkcji
 przedsięwzięcie badawczo-rozwojowe
 modernizacja zakładów przemysłowych
 duże przedsięwzięcie inwestycyjne
 niektóre przedsięwzięcia organizacyjne
 wyprodukowanie złożonego wyrobu na zamówienie
 realizacja złożonych projektów
1. Jak modelować projekty (Battersby 1967):
a) Dyskretny i skończony zbiór czynności (zadań)
b) Zbiór ograniczeń kolejnościowych
c) Dyskretny i skończony zbiór atrybutów opisujących każdą czynność, takich jak czas
realizacji, koszty czy zapotrzebowanie na zasoby
2. Jak oceniać projekty?
1. Dyskretny i skończony zbiór kryteriów, np. całkowity czas realizacji, całkowity koszt
realizacji, ryzyko, zaktualizowana wartość netto(NPV).
3. Jak wydzielać zasoby i monitorować realizację projektu?
Lista czynności związanych z wprowadzeniem na rynek nowego wyrobu:
<1,3> Badanie popytu na rynku
<1,2> Nabycie surowców na prototypy
<3,4> Wyprodukowanie prototypów i ocena ich jakości
<4,5> Wybór opakowań
<4,6> Nabycie surowców do produkcji
<5,9> Nabycie opakowań
<6,7> Analiza kosztów produkcji
<6,10> Reklama i zbieranie zamówień
<7,8> Analiza ekonomicznych parametrów decyzji
<8,9> Proces produkcji wyrobu
<9,10> Pakowanie produktu gotowego
<10,11> Wysyłka do handlu
26
Czynności będziemy umieszczać na łukach (Activity on Arc)
Zdarzenie - punkt na osi czasu, nie trwa
Czynność - trwa określoną ilość czasu.
Czynność pozorna nie jest związana z upływem czasu. Łączy zdarzenia między, którymi nie
jest wymagane wydatkowanie środków, lecz istnieje następstwo czasowe.
Siecią czynności nazywamy sieć określoną na spójnym grafie Berge’a bez pętli i dróg
cyklicznych, w której funkcje przyporządkowane łukom (czynnościom) i wierzchołkom
(zdarzenia) reprezentują parametry o charakterze techniczno-ekonomicznym, związane z
realizacją danego przedsięwzięcia.
Parametry te mogą wynikać z:
 ograniczeń technologicznych
 ograniczeń o charakterze czasowym
 niepodzielności i nie substytucyjności zasobów.
 ograniczeń zasobowych o charakterze bilansowym
27
Algorytm porządkowania warstwowego:
1. Dla określonej sieci czynności tworzymy binarną macierz przejść P B.
2. Do warstwy w0 zaliczamy te zdarzenia, które odpowiadają zerowym kolumnom macierzy
przejść.
3. Wykreślamy z macierzy PB zerowe kolumny oraz wiersze o tych samych numerach, co
kolumny wykreślone.
4. Do wk zaliczamy zdarzenia odpowiadające zerowym kolumnom w zredukowanej
macierzy przejść.
5. Powtarzamy czynności z punktu 3 i 4 aż do wyczerpania całego zbioru zadań.
Jak to wygląda w praktyce:
Tworzymy macierz przejść:
Ponieważ ze zdarzenia 6 czynności wychodzą do zdarzeń 2 i 3 to w wierszu 6 wstawiamy
wartość 1 w kolumnach 2 i 3 a pozostałe uzupełniamy wartością 0 itd.
1
2
3
4
5
6
1
0
0
0
1
0
0
2
1
0
1
0
1
0
3
1
0
0
0
0
0
4
0
0
0
0
0
0
5
1
0
0
1
0
0
6
0
1
1
0
0
0
Wybieramy kolumnę zerową
w0={6}
i wykreślamy tę kolumnę oraz wiersz o tym samym numerze.
28
W kolejnych iteracjach:
1
2
3
4
5
1
3
4
5
1
0
0
0
1
0
1
0
0
1
0
2
1
0
1
0
1
3
1
0
0
0
0
3
1
0
0
0
4
0
0
0
0
0
4
0
0
0
0
5
1
0
0
1
0
5
1
0
1
0
1
4
1
0
1
4
0
0
4
4
0
Co w efekcie daje nam:
w0={6}
w1={2}
w2={3,5}
w3={1}
w4={4}
Teraz kolejność zdarzeń można dodać do grafu (jeśli w jednej warstwie znajduje się kilka
zdarzeń to ich kolejność jest obojętna):
29
Metoda Ścieżki Krytycznej (Critical Path Method - CPM):
Założenia algorytmu:




1 zdarzenie początkowe
1 zdarzenie końcowe
zdarzenia są ponumerowane zgodnie z ich następstwem w czasie
termin wystąpienia zdarzenia początkowego = 0
Oznaczenia:
Mamy czynność <i,j>
tij - czas trwania czynności <i,j>
TiW - najwcześniejszy termin wystąpienia zdarzenia i
T jP - najpóźniejszy termin wystąpienia zdarzenia j
 j1 - zbiór poprzedników j

T jW  max TiW  tij

, i   j1
i - zbiór następników i

Ti P  min T jP  tij
3
4
, j  i
1- numer zdarzenia
2- TiW
1
2

3- Ti P
4- Luz zdarzenia Li  Ti P  TiW
30
Rozwiązywanie zadania
2
5
1
5
2
7
0
3
9
6
2
2
0
7
4
12
3
Wyznaczamy najwcześniejsze terminy wystąpienia zdarzeń:
max{0+5}=5
max{0+9}=9
max{0+12}=12
max{5+2;9+0}=9
max{9+2}=11
2
9
5
1
7
0
3
9
9
0
5
2
5
max{9+7;11+2;12+3}=16
6
2
11
16
4
12
3
12
31
7
2
16
Wyznaczamy najpóźniejsze terminy wystąpienia zdarzeń oraz luzy zdarzeń(dół=prawa
ćwiartka-lewa ćwiartka; nie zaznaczałem tego kolorami)
min{7-5; 9-9; 13-12}=0
min{9-2}=7
min{9-0; 14-2}=9
min{16-3}=13
2
9
9
2
5
0
7
0
1
3
9
6
9
9
0
0
5
2
7
5
min{16-7}=9
min{16-2}=14
2
0
0
14
11
7
2
3
16
16
0
4
12
3
13
12
1
Ścieżką krytyczną nazywamy taką drogę <i0;i1><i1;i2>,…,<in-1;in> łączące zdarzenie początkowe
i0=1 ze zdarzeniem końcowym in=n dla której czas jest najdłuższy:
   ti
k 1ik

W danej sieci może istnieć więcej niż 1 ścieżka krytyczna.
Czynności, które leżą na ścieżce krytycznej nazywamy czynnościami krytycznymi.
Długość ścieżki krytycznej określa najkrótszy możliwy czas realizacji całego projektu:
  TnP  T1W
Aby wyznaczyć czynności krytyczne obliczamy zapas czasu Li  Ti P  TiW
32
Całkowity zapas czasu:
Zijc  T jP  TiW  tij
Zapas swobody:
Zijs  T jW  TiW  tij
Zapas niezależny:
Zijn  T jW  Ti P  tij
Zijc  Zijs  Z ijn  0
Twierdzenie
Warunkiem koniecznym i dostatecznym na to aby czynność była czynnością krytyczną jest
Z ijc  0
33
Metoda PERT (prawdopodobieństwo ujemnych luzów - możliwość
niezrealizowania zadań w terminie):
m- najbardziej prawdopodobny czas trwania czynności
a- optymistyczny czas trwania czynności
b- pesymistyczny czas trwania czynności
f (t )  H (t  a) p1 (b  t ) q 1
Konkluzja (!@#$ wie skąd):
Rozkład czasu czynności jest rozkładem  dla którego średnia czasu może być wyznaczona
jako:
T
W
i
te 
m
 t
k 1
T 
e
k
W
i
I
T  t
P
i
2
a  4m  b

b  a
2
, natomiast  
6
36
k 1
T 
e
k
P
i
m

k 1
2
tk
I

k 1
2
tk
„Bez zbędnych wyprowadzeń dochodzimy do:”

P
W
N T i  T i ,  T2W   T2P
P
W

T

T

i
i
PLi  0  P Ti P  TiW  0    

 T2 P   T2W
i
i



 - dystrybuanta rozkładu normalnego o parametrach N(0,1).
34
i





i

Przykład:
5
2
1
6
3
7
4
<i,j>
aij
mij
bij
t ije
 ij2
<1,2>
<1,3>
<1,4>
<2,5>
<2,6>
<3,6>
<4,7>
<5,7>
<6,7>
5
5
1
2
4
10
11
4
8
8
6
3
4
8
11
14
5
10
11
10
8
12
12
12
20
6
15
8
6,5
3,5
5
8
11
14,5
5
10,5
1,0
0,7
1,4
2,8
1,8
0,1
2,3
0,1
1,4
Wartości kolumn aij mij oraz bij mogą znajdować się przy strzałkach grafu zamiast w tabelce.
Wartości pozostałych 2 kolumn wylicza się wzorami:
te 

2
a  4m  b
6
2

b  a

36
35
i
Ti
 T2
Ti
 T2
1
2
3
4
5
6
7
0
8
6,5
3,5
13
17,5
28
0
1
0,7
1,4
3,8
0,8
2,2
2
11,5
8,5
15,5
25
19,5
30
2,2
3,2
1,5
2,3
0,1
1,4
0
W
P
W


Ti Ti
Ui  

 T2 P   T2W
i
i

P
W
i
Li  T i  T i
Ui
 U i 
2
3,5
2
12
12
2
2
-1,35
-1,7
-1,35
-6,25
-6,09
-1,35
-1,35
0,09
0,04
0,09
0,0
0,0
0,09
0,09
P
P
i
W





P
W
T i oraz T i obliczamy tak samo jak CPM z tą różnicą, że jako czas poszczególnych czynności
bierzemy wyliczone wcześniej
te .
Wariancje  T2W oraz  T2 P są sumą wariancji z czynności, które prowadzą do danego zdarzenia.
i
i
(Łopatologicznie: dla danego zdarzenia dodajemy wariancje ze strzałek które wybieraliśmy za
pomocą CPM po drodze do tego zdarzenia)
Przykład:
 T2  0   12,3   32,6  0  0,7  0,1  0,8
W
6
 T2  0   62,7  0  1,4  1,4
P
6
Najważniejsza różnica w stosunku do normalnego CPM: TnW  TnP , gdzie n to końcowe
zdarzenie… chodzi o to, że jeśli zadanie mówi żeby zbadać, np. czy w czasie równym 30
można wykonać dany projekt to wtedy do TnP wpisujemy te 30 zamiast wartości które wyszła
w TnW
36
Algorytm kompresji:
Algorytm:
1.
2.
3.
4.
Zestawić czynności, podać ich gradienty kosztów s oraz czasy graniczne t gr
Wyeliminować z zestawienia te czynności, dla których t gr=tn
Proces skracania rozpocząć od czynności krytycznej o najniższym gradiencie kosztów.
Przy skracaniu trwania czynności należy starać się skrócić jej czas o jak największą
liczbę jednostek.
Występują tu 2 ograniczenia:
-czas graniczny danej czynności tgr
-pojawienie się nowej ścieżki krytycznej
5. Przy istnieniu dwóch lub więcej ścieżek krytycznych należy skracać czas o tę samą
wielkość na wszystkich równoległych ścieżkach krytycznych.
6. Najkrótszy termin wykonania programu uzyskuje się, gdy wszystkie czynności na
ścieżce krytycznej osiągają czasy graniczne.
7. Koszty przyśpieszenia czynności oblicza się mnożąc liczbę jednostek czasu, o które
czynności została skrócona przez jej gradient kosztów.
tn - czas normalny wykonania zadania
tgr - czas graniczny wykonania zadania
kn - koszt normalny wykonania zadania
kgr - koszt graniczny wykonania zadania
kr - koszt przyspieszenia czynności
s - średni gradient kosztu
s
k gr  k n
t n  t gr
37
Przykład:
8
3
6
2
14
17
8
9
9
23
3
12
1
6
0
0
35
0
0
4
10
10
0
<i j>
<1,2>
<1,4>
<2,3>
<3,6>
<4,5>
<5,6>
tp
8
10
6
12
15
10
35
3
5
10
3
25
25
0
15
tgr
6
5
4
10
15
2
10
kn
280
100
300
260
150
200
kgr
400
150
400
300
150
300
s
kr
Wartości w tabelce są wzięte z dupy (znaczy muszą być podane w zadaniu), oprócz t p które
pokrywa się z wartościami czynności powyższego CPM (wartości znad strzałek).
Usuwamy wiersze dla których tp=tgr .
Obliczamy s.
Zaznaczę również ścieżkę krytyczną, tak żeby łatwiej było ją odróżnić.
<i j>
<1,2>
<1,4>
<2,3>
<3,6>
<4,5>
<5,6>
tp
8
10
6
12
15
10
tgr
6
5
4
10
15
2
kn
280
100
300
260
150
200
38
kgr
400
150
400
300
150
300
s
60
10
50
20
20
kr
Następnie wybieramy czynność krytyczną dla której s jest najmniejsze (w tym przypadku
s<1,4> = 10) i skracamy ją pamiętając o ograniczeniach z punktu 4 algorytmu.
Czyli aby nie przekroczyć tgr: tp-tgr=10-5=5 możemy skrócić tą czynność maksymalnie o 5.
Ścieżka nie będąca krytyczną ma luzy większe niż ta wartość dlatego skracamy <1,4> o 5.
6
2
8
3
23-5
14
17-5
8
12
9-5
9-5
6
1
0
0
35-5
35-5
0
0
4
10-5=5
5
10-5
10-5
0
<i j>
<1,2>
<1,4>
<2,3>
<3,6>
<4,5>
<5,6>
tp
8
10
6
12
15
10
15
tgr
6
5
4
10
15
2
25-5
25-5
10
0
kn
280
100
300
260
150
200
kgr
400
150
400
300
150
300
s
60
10
50
20
kr
5*s=50
20
Wybieramy kolejną czynność krytyczną o najniższym s, tym razem <5,6>:
tp-tgr=10-2=8 zatem czynność tę możemy skrócić maksymalnie o 8
Ponieważ w ścieżce nie będącą krytyczną pozostaje jedynie 4 luzu, skracamy czynność <5,6>
jedynie o 4.
39
Co w efekcie daje nam:
14
14
8
8
8
3
6
2
12
0
0
1
6
0
0
26
26
0
0
4
5
5
5
5
0
<i j>
<1,2>
<1,4>
<2,3>
<3,6>
<4,5>
<5,6>
tp
8
10
6
12
15
10
20
20
0
15
tgr
6
5
4
10
15
2
kn
280
100
300
260
150
200
kgr
400
150
400
300
150
300
Pojawienie się nowej ścieżki krytycznej kończy algorytm.
Łączny koszt projektu po przyśpieszeniu czynności krytycznych to:
k  k
n
r
10-4=6
 1290  130  1420
40
s
60
10
50
20
kr
50
20
4*s=80
Teoria masowej obsługi:
U - odstęp czasu między kolejnymi klientami - zmienna losowa o rozkładzie wykładniczym
f t   e t
t0
t
t
0
0


 
PU  t   F t    f x dx   e x dx   e x 0  e t   e0  1  e t


0
0

E U    xf x dx   te dt   te
t

  e
t 
0
t
t

dt   te

 t 
0
0
X(t) - liczba klientów którzy przybyli do systemu w okresie [0,t)
oznaczamy PX t   n  Pn t 
P0 t   PU  t   1  PU  t   1  (1  et )  et
x 2 x3 x 4
e  1  x     ...
2! 3! 4!
x
e
2
3

 t   t 
 1  t 

 ...
t
2!
3!
ot 
lim ot 
0
t  0 t
P 0 t   1  t  ot 
p - prawdopodobieństwo, że w czasie t przybędzie 1 klient
p2 - prawdopodobieństwo, że w czasie t przybędzie 2 klientów
pk - prawdopodobieństwo, że w czasie t przybędzie k klientów

 P t   1
k 0
k


k 0
k 1
 Pk t   P0 t    Pk t   1
1  t  ot   1  p  p 2  p3  ...  1  1
t  ot  
p
t
t  1
1
1
1 p
 ot 
1
t  ot 
1  (t )
 1  t  1
p
41

lim   1  1 1
 1

  e t  
 t   
 
 0 t    e   
p  t  t   t   t   ...  ot 
2
3
4
ot 
P1 t   t  ot 
P1 t 

t  0 t
lim
Reasumując: !@#$ wie o co chodzi
Proces sygnałowy
Proces losowy xt , t  (0, ) gdzie x(t) jest liczbą zdarzeń losowych o przedziale (0,t)
nazywamy procesem sygnałowym.
xt  N
t1<t2 to xt1   xt2 
xt2   xt1  N
P X 0  0  1
Proces Poissona
Proces sygnałowy o przyrostach niezależnych nazywamy procesem Poissona gdy t  X t 
ma rozkład Poissona.
n  N
x0
p X t   n   e  t 
xt   xt  t 
Przybyło 1 zgłoszenie:
Przybyło 0 zgłoszeń:
 t 
n!
t  0
P1 xt  t   xt   1  t  ot 
Jak dojść do x(t)=1
P0 xt  t   xt   1  t  ot 
Pn t  t   P(w przedziale o długości t przybyło (n-1) zgłoszeń, a w przedziale t przybyło 1
zgłoszenie) + P(w przedziale o długości t przybyło n zgłoszeń, a w przedziale t przybyło 0 zgłoszeń)
Pn1 t t  ot   Pn t 1  t  ot   Pn1 t t  Pn t   Pn t t  ot 
Pn t  t   Pn t   P n1 t t  Pn t t  ot 
lim
Pn t  t   Pn t 
ot 

Pn1 t   Pn t  
t  0
t  0
t
t
lim
42
0
Pn ' t   Pn1 t   Pn t 
P0 0  1
P1 0  0
P0 t   P1 t   ...  Pn t   1
Pn 0  0
Układ równań różnicowo różniczkowych
n=0
P0 ' t   P1 t   P0 t 
P0 ' t   P0 t   0
dP0 t 
 P0 t 
dt
dP0 t 
 dt
P0 t 
dP0 t 
 P t 
0
   dt
ln P0 t   t
P0 t   e t
n=1
P1 ' t   P0 t   P1 t 
P1 ' t   et  P1 t 
P1 ' t   P1 t   et /* et
P1 ' t et  et P1 t   
P t e '  
 P t e 'dt   dt
t
1
t
1
P1 t et  t
P1 t   te t
Pn t  
t n e t
n!
Stacjonarny proces sygnałowy o przyrostach niezależnych, w którym zgłoszenia przybywają
pojedynczo i błyskawicznie jest stacjonarnym procesem Poissona.
Dla stacjonarnego procesu Poissona odstęp czasu między kolejnymi zgłoszeniami ma rozkład
wykładniczy:

t 0 t
FU t   PU  t   1  PU  t   1  P0 t   1 
e  1  e t
0!
43
Jednostanowiskowy system obsługi:
Przelew (po zapełnieniu poczekalni)
źródło zgłoszeń
STANOWISKO
OBSŁUGI
POCZEKALNIA
wyjście
FIFO
Zgłoszenia od zadań przerwanych
System kolejkowy:
c-zgłoszenie
s-stanowisko obsługi
źródło zgłoszeń
c
c
c
c
c
c
c
c
c
cccc…cccc
c
POCZEKALNIA
44
s
s
s
s
s
s
s
s
s
c
c
c
…
SO
c
Charakterystyka systemu kolejkowego:
1
)


rozkład wejścia (zmienna losowa U o średniej

rozkład czasu obsługi zadania (zmienna losowa V o średniej




liczba stanowisk obsługi (m)
wymiar źródła zgłoszeń (k)
pojemność poczekalni (L)
regulamin (algorytm obsługi)
Intensywność ruchu:  
1
)



Algorytm FIFO(naturalny):
notacja kendala: X|Y|m|L|k
X = M - rozkład Poissona
Y = M - rozkład Poissona
M - rozkład Poissona
G - rozkład ogólny
D - rozkład jednopunktowy
 - liczby są naturalne
Stan równowagi statystycznej:
Liczba zadań w systemie w chwili t - zmienna N(t) zastąpi zmienną X(t), zatem
Pn  PN t   n
lim
t 
lim
t 
N t   N
Pn t   pn
n=0,1,…
pn - prawdopodobieństwo stacjonarne
45
(Stacjonarny) Strumień prosty jest to strumień zgłoszeń będący stacjonarnym procesem
Poissona.
 - intensywność strumienia zgłoszeń
 - średnia liczba zgłoszeń obsłużonych w jednostce czasu
E V  
E U  
1

1

lim Pn t 

t  0 t
Warunek konieczny i dostateczny osiągnięcia stanu równowagi statystycznej:
 m
  m
dla m=1   
System dla którego warunek jest spełniony nazywamy systemem stabilnym.
46
Systemy obsługi:
czas oczekiwania na obsługę - zmienna losowa W
czas odpowiedzi systemu - zmienna losowa T=W+V
1
T  W V  W 

Skończone wartości średnie w stanie równowagi statystycznej
N  T (wzór Little’a)
FW x | t   PW  x | V  t 
FT x | t   PT  x | V  t 
T t   W t   t
System M|G|1:






rozkład wejścia (zmiennej U - rozkład wykładniczy)
rozkład czasu obsługi zadania (zmiannej V - rozkład normalny)
liczba stanowisk obsługi (m=1)
pojemność poczekalni ( L   )
wymiar źródła zgłoszeń ( k   )
regulamin (algorytm) obsługi - FIFO
Wartość N w systemie M|G|1
N1,N2 - liczba zgłoszeń w systemie po zakończeniu obsługi zgłoszeń z1,z2
R - liczba zgłoszeń, które przybyły w czasie obsługi zgłoszenia z 2
N  0  N2  R
N  0  N 2  N1  R  1

1
0
N 2  N1  R  1  
N1=0
w pozostałych przypadkach
N 2  N1  R  1  
V=v
Rv   v


R   vdF v     vdF v   V   *
0
0
1


0   1  
    1
47
N 2  N1  R  1   | 
2
N 22  N 12  R 2  1   2  2 N1 R  2 N1  2 N1  2R  2R  2 | E

 2   ponieważ przyjmuje tylko wartości ze zbioru {0,1}
N1 - N1 albo  jest równe zero
2
2
2
N 2  N 1  R  1  2 N1 R  2 N1  2R  2R  
2
R R
2
0  R  1  2 N1 R  2 N1  2R  2R  
0  R  1  2 N1  2 N1  2  2 1     1   
2
2
0  R  2 N1  2 N1    2 2
2 N 2 1     R    2 1   
2
N
R2  

21   

R v    r
2
2
n 1


v r ev  v  2v 2
r!

R 2   v  2v 2 dF v   V  2V 2 
0
N


1 
 2   V2  2     2 V2   2

 

  2 V2   2  
2 V2   2
 

21   
21   


N  T   W  V |: V  
N


W
1
V
W N

 1 
1   2 V2



2
1


V
1
V 2   V2  2


(wzór Pollaczka)

V 2
W
21   
48
System M|D|1:
2 0
W


V 21   
v0
v0
W

21    21   
System M|M|1:
1
2  2

W




1   2 V2 
(1  1) 
21   
1 
V 21   

W

1   
*V 


 1   
1     1

1

T  W V 
 

 1      1     1     1   

W M |M |1  1   
2


2
v0
v0
W M |D|1
21   
49
Inne algorytmy obsługi:
1. Algorytmy z priorytetami
a) stałe priorytety
b) zmienne priorytety
2. a) algorytm z przerwaniami (cykliczne)
b) algorytm bez przerwań
Priorytet ustawia albo użytkownik wrzucający zadanie do systemu lub operator albo na
podstawie historii obsługi albo ze względu na rozmiar zadania.
Algorytmy ze stałym priorytetem:
kolejka 1
kolejka 2
…
kolejka b
źródło zgłoszeń
 i - priorytet i
wyjście
i=1...b
i - średnia intensywność zgłoszeń priorytetu i (każdy priorytet może mieć inny rozkład
Poissonowski)
b
   i
i 1
 i - intensywność obsługi priorytetu i
b
   i
i 1
i 
i
i
b
   i
i 1
50
Algorytm bez przerwań (o stałym priorytecie):
Wstawianie do kolejki zadań: na koniec kolejki danego priorytetu (w podkolejkach  FIFO
Ważne! Czas oczekiwania zależy tylko od priorytetów.
W i t   W i 
W0
1   i 1   i 1 
i=1..b-1
b
i    j
j i
b
i Vi 2
i 1
2
W0  
Algorytm cykliczny (ze stałym priorytetem) - Round Robin:
 i - kwant czasu w jakim zadanie o priorytecie  i bez przerwy korzysta z procesora
T t  - nie zależy od rozkładu czasu obsługi, tylko od wartości.
T t  
t
1 
liniowa preferencja zadań krótkich
t
W t  
1 
1
 1   
T
W

 1   

T FIFO t  
t
Identyczne jak M|M|1
 1   
t 
t
 T RR t 
1   
1

W t 
RR
M|M|1

 1   
t

Wnioski: dopóki t 
i 
Ci
j 1
1

RR jest lepszy od M|M|1
Ci>0 - dowolna stała, najczęściej  N
b
 Cj N
t
1
j
51
N j - średnia liczba zadań o priorytecie  j w systemie.
Wi t  
Ti t  
b
 Cj  j 
t 
1     1 
1    j 1  Ci
 
t
1 
b

 Cj  j 
1

    1 
 
 j 1  Ci
i=1..b
i=1..b
Algorytm LIFO:
Kolejka ma postać stosu.
T ,W jak w algorytmie RR, ale z dużo większą wariancją
Algorytmy o zmiennym priorytecie:
(eng. multilevel procesor sharing scheduling elgorithms)
Nieliniowa zależność średniego czasu odpowiedzi, oczekiwania i obsługi zadania.
Nowe zadania trafiają do kolejki o najwyższym priorytecie (z algorytmem FIFO) jeśli 1 kwant
czasu nie starczy to zadanie spada do następnych kolejek (zwykle są 2) z algorytmem RR.
W(t)
t
52
Systemy z  i  zależnymi od stanu systemu:
t
t
N(t)
N (t  t )
t  0
t  ot  - prawdopodobieństwo, że w czasie t do systemu nadejdzie 1 zgłoszenie
(strumień Poissona)
t  ot  - prawdopodobieństwo, że w czasie t system opuści 1 zgłoszenie
N (t  t )  N (t )
0 zgłoszeń wchodzących
0 zgłoszeń wychodzących
1 zgłoszenie wchodzące
1 zgłoszenie wychodzące
N (t  t )  N (t )  1
1 zgłoszenie wchodzące
0 zgłoszeń wychodzących
N (t  t )  N (t )  1
0 zgłoszeń wchodzących
1 zgłoszenie wychodzące
PN t  t   N t  
1  t  ot 1  t  ot 
t  ot t  ot  
1  t  t  ot 
PN t  t   N t   1 
t  ot 1  t  ot  
t  ot 
PN t  t   N t   1 
1  t  ot t  ot  
t  ot 
Pn t  t   Pn1 t t  ot   Pn t 1  t  t  ot   Pn1 t t  ot 
1
i
1
i
- średni czas między przybyciem zgłoszeń jeżeli w systemie jest i zadań
- średni czas obsługi jeżeli w systemie jest i zadań
Pn t  t   Pn1 t n1t  ot   Pn t 1  n t  n t  ot   Pn1 (t )n1t  ot  
n1Pn1t  Pn t   n Pn t t  n Pn t t  n1Pn1 (t )t  ot
lim
Pn t  t   Pn t 
ot 

n1Pn1 t   n Pn t   n Pn t   n1Pn1 t  
t  0
t  0
t
t
lim
Pn ' t   n1Pn1 t   n  n Pn t   n1Pn1 t 
P0 ' t   0 P0 t   1P1 t 
53
W stanie równowagi statystycznej :
pn t   pn
pn ' t   0
n1 pn1  n  n  pn  n1 pn1  0
 0 p0  1 p1  0
p1 
0
p0
1
0 p0  1  1  p1  2 p2  0
0 p0  1  1 
0
1

pn  0
1
p2 
0
p0   2 p2  0
1
1
p0
2
1 n1
...
p0
2 n


 pi  1  p0   pi
i 0
i 1

p0  
i 1
01...i 1
p0  1
1 2 ... n
  n i 1 
p0    

 i 1 i 1 i 
1

W   npn
n 0
T
N

Powyższe rozwiązanie jest słuszne dla dowolnych Poissonowskich na wejściu i wyjściu systemów
obsługi z algorytmami obsługi nie zależnymi od czasu wykonania zadania.
Jeżeli
i  
i=1… 
i  
i=1… 
to
p0  1  
pn   n 1   
54
Załóżmy, że samochody przyjeżdżają do myjni z częstotliwością 12/h, myjnia ma 2 stanowiska oraz 1
miejsce
poczekalnia
  12
źródło zgłoszeń
c
s
c
s
15/h
c
12
0 - brak aut
1 - 1 auto w myjni
2 - 2 auta w myjni
0
3 - +1 w poczekalni
12

n3
 0
n3
n  
12
1
15
15/h
s
12
3
2
30
30
 0 n  0, n  3


 n   15 n  1

30 1  n  3
1
 
    
 12 12 *12 12 *12 *12 
p0  1  0  0 1  0 1 2   1  


 15 15 * 30 15 * 30 * 30 
 1 12 1 2 3 
p0  0.44
12
100
p0 
15
281
12 *12
40
p2 
p0 
15 * 30
281
12 *12 *12
16
p3 
p0 
15 * 30 * 30
281
228
N  1 p1  2 p2  3 p3 
 0.81
281
265
  12 p0  p1  p2   12
 11.3
281
p1 
N  T
T  0.072h  4.3 min
55
1
Systemy M|M|1|  |k:
końcówka

1
2
3
…

obsługa
12
n
W systemie są 2 końcówki generujące zadania dla procesora obie z rozkładem wykładniczym
1
1
  , obsługa  30 min

3
2/3
0
1/3
1
2
2h
p0 
1
1
0 0 1

1 1  2

18
25
2h
p1 
2/3
6
p0 
2
25
8
25
2
1
42
  p0  p1 
3
3
75
N  p1  2 p2 
T
N


4
7
Round Robin M|M|1|  |k :
i
k
k!    
  
p0  
 i 0 k  i !    
n
1

T

1  p0 
1
56
p2 
2 / 3 *1 / 3
1
p0 
2*2
25
Elementy teorii gier:
Wartość gry - wygrana gracza
Grą dwuosobową o sumie zero nazywamy trójkę G=<S,T,W> w której S i T są odpowiednio
zbiorami strategii czystych gracza A i B, a W(s,t) jest funkcją wypłat (wygrana gracza A =
przegrana gracza B) przyjmującą skończone wartości liczbowe i określoną na iloczynie
kartezjańskim S x T zbiorów strategii obu graczy.
Gry zbiory S i T są skończone, macierz A=[aij], gdzie aij=W(si,tj), si  S t j  T nazywamy
macierzą gry, a grę G=<S,T,W> grą macierzową.
Strategia maksyminowa:
Dolną wartością gry G=<S,T,W> nazywamy liczbę v1 
max min
s  S t T
W ( s, t )
Strategia s0 odpowiadająca dolnej wartości gry nazywa się strategią maksyminową.
Jest to strategia gwarantująca graczowi A, że wygra co najmniej v 1.
Strategia minimaksowa:
Górną wartością gry G=<S,T,W> nazywamy liczbę v2 
min max
t T s  S
W ( s, t )
Strategia t0 odpowiadająca górnej wartości gry nazywa się strategią minimaksową.
Jest to strategia gwarantująca graczowi B, że przegra co najwyżej v 2.
Strategia zdominowana:
Jeżeli w grze macierzowej G=<S,T,A> każdy element pewnego wiersza macierzy wypłat
odpowiadającego strategii s k  S gracza A jest mniejszy lub równy od odpowiedniego
elementu innego wiersza to strategia sk nosi nazwę strategii zdominowanej gracza A.
Punktem siodłowym macierzy A=[aij] i=1,…,n j=1,…,n jeżeli taki istnieje nazywamy element
ark który spełnia warunek
aik  ark  arj
Macierz A ma punkt siodłowy wtedy i tylko wtedy, gdy v 1=v2.
Strategią mieszaną (lub zrandomizowaną) gracza A nazywamy skokowy rozkład
prawdopodobieństwa określony na zbiorze S strategii czystych tego gracza, tzn. jest to
wektor xT  x1
x2 ... xm  taki że
m
x
i 1
i
 1,
xi  0
(i  1,2,..., m)
Strategią mieszaną (lub zrandomizowaną) gracza B nazywamy skokowy rozkład
prawdopodobieństwa określony na zbiorze T strategii czystych tego gracza, tzn. jest to
wektor y   y1
y2
... y n  taki że
m
y
i 1
i
 1,
57
yi  0
(i  1,2,..., n)
Mieszanym rozszerzeniem gry macierzowej G=<S,T,A> nazywamy trójkę
 m
  X , Y ,  ( X , Y )  w której zbiór X   x :  xi  1,
 i 1
xi  0,
n

strategii mieszanych gracza A, a zbiór Y   y :  yi  1,
 i 1
m
yi  0,

i  1,2,...m jest zbiorem


i  1,2,...n gracza B.

n
 ( X , Y )   xi aij y j  xT Ay
i 1 j 1
jest wartością oczekiwaną wygranej gracza A.
Górna i dolna wartość gry  :
Dolną wartością gry  nazywamy liczbę k1 
Górną wartością gry  nazywamy liczbę k 2 
max min
x  X y Y
min max
y Y x  X
Własność: v1  k1  k2  v2
Jeżeli v1  v2 to k1  k2
58
xT Ay
xT Ay
Gry mieszane:
Gra polega na tym, że 2 osoby kładą monetę (chodzi o świadomy wybór) wybraną stroną.
Jeżeli oboje wybiorą orła, gracz A przegrywa 3 zł.
Jeżeli oboje wybiorą reszkę gracz A przegrywa 1zł.
Jeśli monety będą różne gracz A wygrywa 2zł.
Niech x oznacza prawdopodobieństwo z jakim gracz B gra orzełka. Wtedy gracz B gra reszkę z
prawdopodobieństwem (1-x).
Gdy gracz A wybierze orła:  3x  2(1  x)  v
Gdy gracz A wybierze reszkę: 2 x  (1  x)  v
-3x+2(1-x)=2x-(1-x)
8x=3
x=3/8
v=-3*3/8+2*5/8=1/8
największa wygrana
Niech y oznacza prawdopodobieństwo z jakim gracz A gra orzełka. Wtedy gracz A gra reszkę
z prawdopodobieństwem (1-y).
Gdy gracz B wybierze orła:  3 y  2(1  y)  v
Gdy gracz B wybierze reszkę: 2 y  (1  y)  v
-3y+2(1-y)=2y-(1-y)
y=3/8
v=1/8
najmniejsza przegrana
Rozwiązanie:
x*=3/8
y*=3/8
v*=1/8
59
Parę strategii x*  X i y*  Y nazywamy strategiami optymalnymi gracza A i B odpowiednio
wtedy i tylko wtedy gdy dla każdego x  X i y  Y zachodzi
xT Ay *  x*T Ay *  x*T Ay
Warunkiem koniecznym i dostatecznym na to, aby para strategii x*  X i y*  Y były parą
strategii optymalnych jest równość k1=k2 czyli równość dolnej i górnej wartości gry.
Przez rozwiązanie gry będziemy rozumieć znalezienie strategii optymalnych (x*,y*) oraz
wartości v*.
Każda gra  będąc mieszanym rozszerzeniem gry macierzowej G=<S,T,A> ma rozwiązanie.
Gra wyjściowa G może, ale nie musi mieć rozwiązania.
Jeżeli istnieje więcej niż jedna strategia optymalna dla danego gracza, to każda wypukła
kombinacja liniowa tych strategii jest strategią optymalną tego gracza.
x*  x1*  (1   ) x2*
Zbiór strategii optymalnych danego gracza jest zbiorem wypukłym.
Rozwiązywanie gier mieszanych:
1. Eliminujemy z macierzy A strategie zdominowane dla graczy (Współrzędne x i y
przyjmują 0).
2. Badamy czy macierz A ma punkt siodłowy. Jeżeli a rk jest punktem siodłowym
macierzy A to rozwiązaniem jest para strategii czystych.
3. Przypadek gdy A ma postać 2xn:
a) rozwiązujemy graficznie układ nierówności gi ( x)  (a1i  a2i ) x  a2i  v
i  1,..., n
b) znajdujemy punkt (x*,v*), usuwamy ze zbioru T strategie dla których
a1k x*  a2k (1  x* )  v*
c) znajdujemy strategie optymalne gracza B rozwiązując problem z macierzą postaci
mx2.
4. Przypadek gdy A ma postać mx2
a) rozwiązujemy graficznie układ nierówności hi  y   ai1  ai 2  y  ai 2  v
b) znajdujemy punkt (y*,v*) i usuwamy ze zbioru T strategie dla których


ar1 y*  ar 2 1  y*  v*
60
i  1,..., m
Kryterium Walda (pesymistyczne):
Stan pogody
Termin siewu
I
II
III
max min
s
t
A
21
28
13
B
15
10
27
C
32
10
25
D
16
20
15
max
min
15
10
13
15
C
32
10
25
D
16
20
15
max
vi
25.2
20.8
21.4
25.2
aij
Wybór: I
Kryterium Hurwitza:
współczynnik ostrożności: 0    1
vi   min aij  (1   ) max aij
  0.4
Stan pogody
Termin siewu
I
II
III
A
21
28
13
B
15
10
27
Wybór: I
Kryterium Bayesa:
wartość oczekiwana przy założeniu znanych rozkładów prawdopodobieństwa stanów natury
n
vi   a0 j * aij  A * ai1  B * ai 2  C * ai 3  D * ai 4
j 1
Termin siewu
I
II
III
A=0.7
21
28
13
Stan pogody/prawdopodobieństwo
B=0.2
C=0.05
D=0.05
15
32
16
10
10
20
27
25
15
max
Wybór: II
61
vi
20.1
25.1
16.5
25.1
Kryterium Savege’a:
Stan pogody
Termin siewu
I
II
III
max
A
21
28
13
28
B
15
10
27
27
C
32
10
25
32
D
16
20
15
20
C
0
22
7
D
4
0
5
min
strataij  max j  aij
Macierz strat:
Stan pogody
Termin siewu
I
II
III
A
28-21=7
28-28=0
28-13=15
B
12
7
0
Wybór: I
62
max
12
22
15
12