• Nie Znaleziono Wyników

Badania Operacyjne

N/A
N/A
Protected

Academic year: 2021

Share "Badania Operacyjne"

Copied!
63
0
0

Pełen tekst

(1)

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.

(2)

1

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.

Urządzenie Element

Zysk [$/szt]

E1 E2 E3

B1 3 -2 -4 -1 x1

B2 -1 4 3 3 x2

7 12 10

gdzie x1 i x2 są ilością danych urządzeń.

Określić z punktu widzenia zysków plan napraw.

Całkowity zysk: -x1+3x2max

przy ograniczeniach: l. el. E1 : 3x1-x27 l. el. E2 : -2x1+4x212 l. el. E3 : -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.

D

(3)

2

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 x1 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$

(4)

3

Zadanie programowania liniowego:

Urządzenie Element

Zysk [$/szt]

E1 E2 E3

B1 3 -2 -4 -1 x1

B2 -1 4 3 3 x2

B3 2 0 8 -2 x3

zapas 7 12 10

-x1+3x2-2x3max

p.o. 3x1 -x2 +2x3 7 -2x1 +4x2 12 -4x1 +3x2 +8x3 10 x1,x2,x30

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ć: j n

j j

x c

z

1

(1)

przy ograniczeniach: j i

n

j

ij

x b

a

1

i  1 ,..., m

(2)

 0

x

j

i  1 ,..., n

(3)

Zapis wektorowy:

x

c

c

c1 ... cn





xn

x x ...

1

b x A





mn m

n

a a

a a

A

...

...

...

...

...

1

1 11





bn

b b ...

1

(5)

4 Nazewnictwo:

j n

j j

x c

z

1

- funkcja celu

i j n

j

ij

x b

a

1

i  1 ,..., m

 0

x

j

i  1 ,..., n

xj - 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 x xn

x1 2 ... 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 +s1 =7

-2x1 +4x2 +s2 =12

-4x1 +3x2 +8x3 +s3 =10 x1,x2,x3,s1,s2,s30

Dla tego układu równań szukamy rozwiązania w wierzchołku sympleksu.

Rozwiązanie bazowe:

















10 12 7

0 0 0

3 2 1 3 2 1

s s s x x x

leży w wierzchołku sympleksu.

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.

ograniczenia

(6)

5

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.

(7)

6

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 -x2 +2x3 +s1 =7 -2x1 +4x2 +s2 =12 -4x1 +3x2 +8x3 +s3 =10

i B CB x1 x2 x3 s1 s2 s3 RHS

1 s1 3 -1 2 1 0 0 7

2 s2 -2 4 0 0 1 0 12

3 s3 -4 3 8 0 0 1 10

4 X 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.

-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

(8)

7

Wiersz czwarty tej tabelki jest wierszem wskaźnikowym. Jego wartości oblicza się na podstawie wzoru

c

j

z

j gdzie

B i

ij i

j

c x

z

-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

Dla większej przejrzystości oznaczyłem ci,cj oraz xijkolejno kolorami żółtym, zielonym i czerwonym.

Przykładowo:

-1 = -1 – (0*3 + 0*(-2) + 0*(-4))

-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

(UWAGA! Wersja z ćwików: 1 = (0*3 + 0*(-2) + 0*(-4))- (-1)) 3 = 3 – (0*(-1) + 0*4 + 0*3)

-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

Co ostatecznie daje nam:

-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

W wierszu wskaźnikowym wartość wierszy bazowych musi być równa 0. W innym wypadku oznacza to błąd.

(9)

8

4. Wybrać największy element wiersza wskaźnikowego:

x

m1,k

5. Jeżeli

x

m1,k

 0

to tablica przedstawia rozwiązanie optymalne, w przeciwnym razie:

a) wyznaczyć element

x

l,k dla którego iloraz

k i

k i k j

k j

x b x

b

, , ,

,

gdzie

i 1 .. n

,

x

i,k

 0

ten element wybrany

x

l,k nazywamy elementem centralnym przekształcenia tablicy sympleks.

b)przekształcić tablicę sympleks stosując następujące wzory:

Dla wierszy:

lk lj

lj

x

x '  x

j  1 .. n  1

lk lj ik ij

ij

x

x x x

x

' il , 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

31

-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

W nowej bazie element s2 zostanie zastąpiony przez x2

(10)

9 Przekształcamy tablicę sympleks:

-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

-1 3 -2 0 0 0

i B CB x1 x2 x3 s1 s2 s3 RHS

1 s1 0 8) 9) 10) 11) 12) 13) 14)

2 x2 3 1) 2) 3) 4) 5) 6) 7)

3 s3 0 15) 16) 17) 18) 19) 20) 21)

4 X X

Zgodnie ze wzorem

lk lj

lj

x

x '  x

j  1 .. n  1

1)-2 / 4 = -1/2 2)4 / 4 = 1 3)0 / 4 = 0 4)0 / 4 = 0 5)1 / 4 = 1/4 6)0 / 4 = 0 7)12/ 4 = 3

oraz wzorem

lk lj ik ij

ij

x

x x x

x

'  il , 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

(11)

10 Otrzymujemy więc:

-1 3 -2 0 0 0

i B CB x1 x2 x3 s1 s2 s3 RHS

1 s1 0 5/2 0 2 1 1/4 0 10

2 x2 3 -1/2 1 0 0 1/4 0 3

3 s3 0 -5/2 0 8 0 -3/4 1 1

4 X X

Obliczamy wartości wiersza wskaźnikowego:

-1 3 -2 0 0 0

i B CB x1 x2 x3 s1 s2 s3 RHS

1 s1 0 5/2 0 2 1 1/4 0 10

2 x2 3 -1/2 1 0 0 1/4 0 3

3 s3 0 -5/2 0 8 0 -3/4 1 1

4 X X 1/2 0 -2 0 -3/4 0 9

Kolejna iteracja:

-1 3 -2 0 0 0

i B CB x1 x2 x3 s1 s2 s3 RHS

1 x1 -1 1 0 4/5 2/5 1/10 0 4

2 x2 3 0 1 2/5 1/5 3/10 0 5

3 s3 0 0 0 10 1 -1/2 1 11

4 X X 0 0 -12/5 -1/5 -4/5 0 11

Największy element wiersza wskaźnikowego spełnia założenie

x

m1,k

 0

.

Jest to rozwiązanie optymalne.

Wartość zmiennych decyzyjnych:

x1=4 x2=5 x3=0 s1=0 s2=0 s3=11 z*=11

(12)

11

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 +3x2 +x3 -s1 =3

2x1 +x2 +2x3 +s2 =5

2x1 +2x2 +x3 -s3 =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 +a1 =3

2x1 +x2 +2x3 +s2 =5

2x1 +2x2 +x3 -s3 +a3 =2

x1,x2,x3,s1,s2,s3,a1,a3

0 Algorytm sympleks:

2 1 1 0 0 0 -M -M

i B CB x1 x2 x3 s1 s2 s3 a1 a3 RHS

1 a1 -M 1 3 1 -1 0 0 1 0 3

2 s2 0 2 1 2 0 1 0 0 0 5

3 a3 -M 2 2 1 0 0 -1 0 1 2

4 X X 2+3M 1+5M 1+2M -M 0 -M 0 0 -5M

2 1 1 0 0 0 -M -M

i B CB x1 x2 x3 s1 s2 s3 a1 a3 RHS

1 x2 1 1/3 1 1/3 -1/3 0 0

X

0 1

2 s2 0 5/3 0 5/3 1/3 1 0 0 4

3 a3 -M 4/3 0 1/3 2/3 0 -1 1 0

4 X X 5/3+

4/3M 0 2/3+

1/3M

1/3+

2/3M 0 -M 0 1

(13)

12

2 1 1 0 0 0 -M -M

i B CB x1 x2 x3 s1 s2 s3 a1 a3 RHS

1 x2 1 0 1 1/4 -1/2 0 1/4

X X

1

2 s2 0 0 0 5/4 -1/2 1 5/4 4

3 x1 2 1 0 1/4 1/2 0 -3/4 0

4 X X 0 0 1/4 -1/2 0 5/4 1

2 1 1 0 0 0 -M -M

i B CB x1 x2 x3 s1 s2 s3 a1 a3 RHS

1 x2 1 0 1 0 -2/5 -1/5 0

X X

1/5

2 s3 0 0 0 1 -2/5 4/5 1 16/5

3 x1 2 1 0 1 1/5 3/5 0 12/5

4 X X 0 0 -1 0 -1 0 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.

(14)

13

Problem dualny:

Urządzenie Element

Zysk [$/szt]

E1 E2 E3

B1 3 -2 -4 -1

B2 -1 4 3 3

B3 2 0 8 -2

zapas 7 12 10

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 xb





8 3 4

0 4 2

2 1 3

A





 10 12 7 b

1 3 2

c





3 2 1

x x x x

Zagadnienie dualne:

min yb

p.o. AT yCT A,b,c

y1 y2 y3

y

T- transponowane

(15)

14 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 -2 0 0 0

i B CB x1 x2 x3 s1p s2p s3p RHS

1 x1 -1 1 0 4/5 2/5 1/10 0 4

2 x2 3 0 1 2/5 1/5 3/10 0 5

3 s3p 0 0 0 10 1 -1/2 1 11

4 X X 0 0 12/5 1/5 4/5 0 11

Ostatnia iteracja problemu dualnego:

-7 -12 -10 0 0 0 -M

i B CB y1 y2 y3 s1d s2d s3d a2 RHS

1 y2 -12 0 1 1/2 -1/10 -3/10 0

X

4/5

2 y1 -7 1 0 -1 -2/5 -1/5 0 1/5

3 s3d 0 0 0 -10 -4/5 -2/5 1 12/5

4 X X 0 0 11 4 5 0 X -11

x1 = s1d

x2 = s2d

x3 = s3d

y1 = s1p

y2 = s2p

y3 = s3p

(16)

15

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 xk. 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

1 1 0 0

i B CB x1 x2 s1 s2 RHS

1 s1 0 2 1 1 0 6

2 s2 0 4 5 0 1 20

3 X X 1 1 0 0 0

1 1 0 0

i B CB x1 x2 s1 s2 RHS

1 x1 1 1 1/2 1/2 0 3

2 s2 0 0 3 -2 1 8

3 X X 0 1/2 -1/2 0 3

1 1 0 0

i B CB x1 x2 s1 s2 RHS

1 x1 1 1 0 5/6 -1/6 5/3

2 x2 1 0 1 -2/3 1/3 8/3

3 X X 0 0 -1/6 -1/6 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).

(17)

16 4. Bierzemy wiersz odpowiadający wybranej zmiennej

3 8 3 1 3 1 2

0x1x2s1s2

Zastępujemy współczynniki oraz stałą, częściami ułamkowymi w następujący sposób:

3 2 3 22 3

8 

W rezultacie otrzymujemy:

3 2 3 1 3 2

2

1 

s s

//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:

3 1 1 3 2 

i zapisujemy w postaci nierówności co daje nam:

3 2 3 1 3 1

2

1s

s

2 2

1ss

6. Odejmujemy zmienną uzupełniającą i dodajemy sztuczną:

2 1 3 1

2

1ssa

s

7. Dodajemy otrzymane równanie do tabeli sympleks i rozwiązujemy ją:

1 1 0 0 0 -M

i B CB x1 x2 s1 s2 s3 a1 RHS

1 x1 1 1 0 5/6 -1/6 0 0 5/3

2 x2 1 0 1 -2/3 1/3 0 0 8/3

3 a1 -M 0 0 1 1 -1 1 2

4 X X 0 0 -1/6

+M

-1/6

+M -M 0 13/3

-2M

1 1 0 0 0 -M

i B CB x1 x2 s1 s2 s3 a1 RHS

1 x1 1 1 0 1 0 -1/6

X

2

2 x2 1 0 1 -1 0 1/3 2

3 s2 0 0 0 1 1 -1 2

4 X X 0 0 0 0 -1/6 4

8. Wracamy do punktu 2.

2. Rozwiązanie jest całkowitoliczbowe.

(18)

17

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

Liczba desek na wspornik =

002 1

, 0 998 , 0

5 , 5 0

,

1   x

Liczba desek na półkę =

2 1 0,002 004

, 0 998 , 0

5 , 5 0

,

0   xx

max 60x1(0,999)x145x2(0,999)x2

p.o ) 700

002 , 0 004 , 0 998 , 0

5 , 5 0

, 0 ( 002 )

, 0 998 , 0

5 , 5 0

, 1 (

2 1

2 1

1

 

 

x x x

x x

1 2

1 8

2xxx

10 x

Ogólne sformułowanie problemu programowania matematycznego (nieliniowego):

max zf0(x)

p.o. fi(x)0 i=1,…,m R

R f

f0, i: n  i=1,…,m Rn

x

Zapis z podkreśleniem oznacza: f0(x) f0(x1,...,xn) Zbiór rozwiązań dopuszczalnych:

} ,..., 1 , 0 ) ( :

{x f x i m

si  

otoczenie punktu x* }

||

||

0 :

{  * 

x x x R

S E

Norma:

n

i

xi

x

1

)2

(

||

||

(19)

18

Funkcja f0 ma w punkcie x*minimum lokalne jeśli istnieje

0

 x(S) f0(x*) f0(x)

) ( *

0 x f

słabe lokalne właściwe

lokalne słabe globalne właściwe globalne

0



)

( S

x 

  0

)

( S

x 

  0

S x

  0

S x

minimum f0(x*) f0(x) f0(x*) f0(x) f0(x*) f0(x) f0(x*) f0(x) maximum f0(x*) f0(x) f0(x*) f0(x) f0(x*) f0(x) f0(x*) f0(x) Gradient funkcji:

Wektor pochodnych cząstkowych funkcji f(x),f :RnR ze względu na x ,...,1 xnnazywa się gradientem funkcji f(x)i oznacza się go przez f(x)









xn

x f

x x f x f

) ( ...

) (

) (

1

Stwierdzenie:

x jest punktem stacjonarnym funkcji f(x)wtedy i tylko wtedy gdy f(x)0 Hesjan funkcji:

Hesjanem funkcji f :RnRnazywamy wyznacznik następującej macierzy drugich pochodnych cząstkowych:









2 2

1 2

1 2 2

1 2

) ... (

) (

...

...

...

) ... (

) ( )

(

n n

n

x x f x

x x f

x x

x f x

x f x

H

Dla dowolnej macierzy M o wymiarach n x n i wektora z o długości n

M jest z Mz

okreslona ujemnie

na polokreslo ujemnie

na polokreslo dodatnio

okreslona dodatnio

T









jest









0 0 0 0

dla z0

(20)

19 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 xx jest minimum lokalnym.

3. x jest minimum lokalnym  H(x)jest dodatnio półokreślona

(21)

20

Metoda Lagrange’a:

Problem programowania matematycznego gdzie ograniczenia mają postać równań:

min f0(x)(x1 1)2x22 1

p.o. 0

4 ) 1

( 1 22

1 xxx

f

Twierdzenie Lagrange’a:

Niech dany będzie następujący problem nieliniowego programowania matematycznego:

min f0(x)

p.o. fi(x)0 i=1,…,m

Jeżeli xjest lokalnym optimum problemu nieliniowego programowania matematycznego i n>m

i fi mają pierwsze pochodne ze względu na xi i f0

 

x są liniowo niezależne

to istnieje wektor u[u1,...,um]T, taki że

   

0

1

0   

m

i i

i f x

u x

f Liczby ui nazywa się mnożnikami Lagrange’a Metoda Lagrange’a:

1. Sprawdzić czy n>m i każda funkcja fi(x)ma ciągłe pochodne cząstkowe 2. Sformułować funkcję Lagrange’a:

      

m

i i if x u x

f u x L

1

, 0

3. Znaleźć wszystkie rozwiązania

 

x,u następującego układu równań:

   

0

1

0   

m

i i

i f x

u x

f (n równań)

 

,

 

0

f x

u u x L

i i

i=1,…,m (m równań)

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 Hi(x*)funkcji Lagrange’a w punkcie x* dla u*

u spełnia warunek x Hi

 

x* x0

T dla wszystkich x takich, że xTfi

 

x0 i=1,…,m to x jest minimum lokalnym

Jeżeli założenia twierdzenia Lagrange’a są spełnione i nie istnieje u takie, że

   

0

1

*

*

0   

m

i

i

i f x

u x

f w punkcie x*, to w tym punkcie na pewno nie występuje minimum.

(22)

21 Postać ogólna:

min f0

 

x

p.o. fi

 

x 0 i=1,…,m Przykładowe zadanie:

min

    

2

2

2 1

0 xx 14  x 11

f

p.o. f1

  

xx111

 

2x213

272 0

 

1 2 19 0

2 xxx  

f

Ograniczenie f1 jest nieaktywne.

Na wykładzie wynikało to z ograniczeń rozrysowanych metodą graficzną.

(23)

22

Metoda Karusha-Kuhna-Tuckera (Metoda KKT):

Warunki:

1. Warunek Gradientowy:

Gradient ograniczenia aktywnego = 0

0

xj

L j=1,…,n

2. Warunek Ortogonalności:

 

x 0 f

ui i i=1,…,m

3. Warunek Dopuszczalności:

 

x 0

fi i=1,…,m

4. Warunek Nieujemności:

0

ui i=1,…,m Twierdzenia KKT:

Niech będzie dany problem w postaci kanonicznej:

min f0

 

x

p.o. fi

 

x 0 i=1,…,m Warunki konieczne:

Jeżeli fi i=1,…,m jest różniczkowalna i x jest lokalnym minimum i fi

 

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 fi i=1,…,m jest funkcją wypukłą to x jest minimum globalnym.

Inne:

 

x

H jest dodatnio półokreślona dla wszystkich wartości xf

 

x jest funkcją wypukłą.

 

x

H jest dodatnio określona dla wszystkich wartości x f

 

x jest funkcją ściśle wypukłą.

Metoda KKT:

1. Sformułować funkcję Lagrange’a:

      

m

i i if x u x

f u x L

1

, 0

2. Znaleźć wszystkie rozwiązania

 

x,u następującego układu równań i nierówności:

0

xj

L j=1,…,n

 

x 0 f

ui i i=1,…,m

 

x 0

fi i=1,…,m

0

ui i=1,…,m

3. Jeżeli fi 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.

(24)

23 Przykładowe zadanie:

min 0

 

1 22

2 3x 1x x

f  

p.o. f1

 

xx12x2210 (f) Warunki Dopuszczalności

 

1 0

2 x x

f (g)

 

2 0

3 x x

f (h)

Formułujemy funkcję Lagrange’a:

 

x u

L , 1 22

2 3x 1x

 u1( x12x221)u2(x1)u3( x2 )

Warunki Gradientowe:

0 2

3 1 1 2

1

 

u x u

x

L (a)

0 2 1 2 3

2 2

 

x u x u

x

L (b)

Ten pdf dotyczy BO a nie analizy matematycznej, jak ktoś nie umie liczyć pochodnych to już jego problem.

Warunki Ortogonalności:

1(

u x12x221)0 (c)

2(

ux1)0 (d)

3(

ux2 )0 (e)

Warunki nieujemności:

10

u (k)

2 0

u (l)

3 0

u (m)

W warunku (d) załóżmy, że u2 0wtedy x1 0. Z (a) 3u2 0 zatem u2 3co jest sprzeczne z (l), a zatem u2 0.

W (e) niech x2 0to u3 0i z (b) otrzymujemy x2

12u1

0u10 zatem x2 0. Z (c)

22 1

0

2

1x  

x to wtedy u1 0i z (a) u2 3 co jest sprzeczne zatem

22 1

0

2

1x  

x co po podstawieniu x2 0oraz uwzględnieniu (g) daje nam x1 1.

Z (a) wychodzi, że 2 3

1

u .

(25)

24 Przypadek z równościami w ograniczeniach:

min

 

3

2

2 2

1

0 2

1 3

13 x x

x x

f  

 

 

 

 

 

p.o.

 

10 0

3 5

2 1

1 xxx  

f

  

2 2

2 3 4 0

2 xx  x  

f

1. Sprawdzamy warunki:

n- liczba zmiennych n=3 m-liczba ograniczeń m=2 n>m

Gradienty ograniczeń:

 





0 3 / 5

1

1 x

f

   





1 2 2

0

2

2 x x

f Skąd to się bierze

 

 

 

 

















3 2 1

x x f

x x f

x x f

x f

i i i

i

j i

x f

 są ciągłe i mają ciągłe pierwsze pochodne (cokolwiek to znaczy).

2. Funkcja Lagrange’a:

 

10

 

2

4

3 5 2

1 3

, 13 3 1 1 2 2 2 2 3

2

2 2

1    

 

  

 

 

 

 

 

 

x x x u x x u x x

u x L

3. Układ równań:

3 0

2 1 13 1

1



 

 

 

x u

x

L (a)

2

0

3 2 5 2

2 2 1 1 2 2

2



 

 

 

x u x u

x

L (b)

0

1 2

3

 

u

x

L (c)  u2 1 (f)

0 3 10

5

2 1 1

 

x x

u

L (d)  10

3 5

2

1 x

x (h)

2

3 4 0

2 2 2

 

x x

u

L (e)

z (b) i (f) 2

2

0

3 5 2

2 2 1 12 

 

 x u x1 2

5 3 12x

u   (g)

z (h) i (a) 0

3 13 3

10 5

2 2  1

 

  xu1 2

3 10 3

34 x

u   (k)

(26)

25

z (g) i (k) 2 2

5 3 12 3

10 3

34 x   x

 

2 5

2

x (i)

z (g) i (i) u1 3

z (a) 3 0

3

2x126  

6 35

1x

z (e) 2 4 0

2 5

3 2

 

 

  x

4 15

3x

Punkt Lagrange’a:













4 15

2 5 6 35

x

 



1 u 3

4. Gradient funkcji celu:

 















 

 



 

 

1 2 2 1

3 2 13

2 1

0 x

x x

f

5. Hesjan





0 0 0

0 2 0

0 0 2 H

Ż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 z2 z3

(co najmniej 1 współrzędna różna od 0) i wykonujemy obliczenia:

  

2 2 0

2 2 0 0

0 0 0

0 2 0

0 0 2

2 2 2 1

3 2 1

2 1

3 2 1

3 2

1    













z z

z z z z

z z

z z z

z z z H z T

Hesjan dodatnio półokreślony czyli funkcja ma minimum lokalne.

(27)

26

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

(28)

27

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

(29)

28

Algorytm porządkowania warstwowego:

1. Dla określonej sieci czynności tworzymy binarną macierz przejść PB.

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.

(30)

29 W kolejnych iteracjach:

1 2 3 4 5 1 3 4 5 1 4

1 0 0 0 1 0 1 0 0 1 0 1 0 1

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 4 0 0

5 1 0 0 1 0 5 1 0 1 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):

(31)

30 1

2 3

4

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>

W

Ti - najwcześniejszy termin wystąpienia zdarzenia i

P

Tj - najpóźniejszy termin wystąpienia zdarzenia j

1

j - zbiór poprzedników j

ij

W i W

j T t

T max  , ij1

i - zbiór następników i

ij

P j P

i T t

T min  , ji

1- numer zdarzenia 2- TiW

3- TiP

4- Luz zdarzeniaLiTiPTiW

(32)

31

7

16 16

Rozwiązywanie zadania

Wyznaczamy najwcześniejsze terminy wystąpienia zdarzeń:

max{0+5}=5 max{5+2;9+0}=9 max{9+7;11+2;12+3}=16 max{0+9}=9 max{9+2}=11

max{0+12}=12 1

0

2

3

4

5

6 7

5

9

12

2

0

2

3

7

2

1 0

2 5

3 9

4 12

5 9

6 11 5

9

12

2

0

2

3

7

2

(33)

32

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{16-7}=9 min{9-0; 14-2}=9 min{16-2}=14 min{16-3}=13

Ś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:

  

t

ik ik

1

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:

W P

n

T

T

1

 

Aby wyznaczyć czynności krytyczne obliczamy zapas czasu LiTiPTiW 1

0 0

0

2

5 7

2

3

9 9

0

4

12 13

1

5

9 9

0

6

11 14

3

7

16 16

0 5

9

12

2

0

2

3

7

2

Cytaty

Powiązane dokumenty

− zasoby odnawialne (wykorzystywane chwilowo) – udostępniane z powrotem po zakończeniu wykonania operacji, np. maszyna, procesor, pamięć komputerowa, kanał

Jakie jest prawdopodobieństwo, że losowo wybrana permutacja zbioru n-elementowego składa się dokładnie z 2 cyklin. Pokazać, że wraz ze wzrostem n praw- dopodobieństwo to maleje

Do konfiguracji wykorzystuje się najczęściej wspomniane wcześniej pliki .htaccess - dzięki temu unika się restartowania serwera przy zmianie konfiguracji, ponadto

Twierdzenie: „Redukcja” macierzy za pomocą operacji elementarnych (typu E1, E2, E3) jest relacją równoważności.. Wniosek: Wszystkie macierze można podzielić na

Producent farb musi okre´sli´c, ile litrów farby bia÷ej, zielonej, niebieskiej i czerwonej powinien wyprodukowa´c, aby zysk osi ¾ agni ¾ ety ze sprzeda·zy by÷maksymalny.. Z przyj

1.1.1 Warunek konieczny i warunek dostateczny.

Przyjmuje się, że należy zwolnić 25% pracowników, jako kryterium przyjęto staż pracy i zwalniani są pracownicy o najniższym stażu pracy.. Wyznacz staż pracy, do którego

Poluzuj nakrętkę zabezpieczającą linki, która mocuję linkę sprzęgła wrzeciona do wspornika mocowania przełożeń na uchwycie.. Wysuń linkę