Wspomaganie Decyzji II Roman Sowiski Zakad Inteligentnych Systemw
- Slides: 31
Wspomaganie Decyzji II Roman Słowiński Zakład Inteligentnych Systemów Wspomagania Decyzji Instytut Informatyki Politechniki Poznańskiej Roman Słowiński
Specjalne problemy programowania liniowego n Problemy decyzyjne modelowane w kategoriach programowania matematycznego, sprowadzalne do programowania liniowego n Problem programowania ilorazowego Transformacja Charnesa-Coopera 2
Specjalne problemy programowania liniowego n Problem programowania celowego 3
Specjalne problemy programowania liniowego n Problem programowania min-max (problem Czebyszewa) 4
Specjalne problemy programowania liniowego n Problem transportowy m – liczba punktów nadawczych (magazyny) n – liczba punktów odbiorczych (klienci) cij – koszt transportu jednostki towaru z magazynu i do odbiorcy j dj – zapotrzebowanie odbiorcy j si – ilość towaru w magazynie i Należy zminimalizować łączne koszty transportu Zmienna decyzyjna: xij – ilość towaru przesłana z magazynu i do odbiorcy j 5
Specjalne problemy programowania liniowego n Problem transportowy Problem ten można rozwiązać metodą sympleksów 6
Specjalne problemy programowania liniowego n Problem przydziału m – liczba zadań (programy) m – liczba wykonawców (procesory) cij – koszt wykonania zadania i przez wykonawcę j Elementy cij tworzą macierz efektywności C=[cij] o wymiarach m m Każde zadanie może być wykonywane przez co najwyżej jednego wykonawcę Każdy wykonawca może wykonać tylko jedno zadanie Należy tak przydzielić zadania do wykonawców, by zminimalizować łączny koszt wykonania wszystkich zadań 7
Specjalne problemy programowania liniowego Zmienna decyzyjna: Jest to problem 0 -1 programowania liniowego Jest to także przypadek szczególny problemu transportowego, gdzie si = dj = 1, n=m i zmienna decyzyjna jest 0 -1 8
Specjalne problemy programowania liniowego n Problem transportowy ma tę korzystną własność, że jeżeli si i dj są liczbami całkowitymi i istnieje choćby jedno rozwiązanie dopuszczalne, to istnieje rozwiązanie optymalne, w którym xij są wszystkie liczbami całkowitymi lub zerami n Metoda sympleksowa znajduje to całkowitoliczbowe rozwiązanie optymalne n Dzieje się tak dlatego, gdyż macierz współczynników ograniczeń A problemu transportowego jest unimodularna (wyznacznik dowolnej podmacierzy kwadratowej macierzy A jest = 0, 1 lub -1), a wektor prawych stron ograniczeń b jest złożony z liczb całkowitych (x=B-1 b) n Problem przydziału ma zatem tę samą własność n Istnieje jednak prostsza metoda rozwiązania problemu przydziału 9
Specjalne problemy programowania liniowego n Macierz efektywności C=[cij] o wymiarach m m wykonawcy cij n zadania 2 10 9 7 15 4 14 8 13 14 16 11 4 15 13 9 przydział niedopuszczalny Przydział wykonawcy do zadania polega na wyborze konkretnego elementu cij n Tych m wybranych elementów cij ma dać minimalną sumę 10
Specjalne problemy programowania liniowego Operacje arytmetyczne na macierzy efektywności C=[cij] nie powodujące zmiany rozwiązania optymalnego: cij wykonawcy n zadania 2 10 9 7 15 4 14 8 13 14 16 11 4 15 13 9 Dodanie lub odjęcie dowolnej stałej od dowolnego wiersza lub kolumny macierzy C=[cij] Np. odejmując 3 od wiersza i oraz dodając 2 do kolumny j otrzymamy: , tzn. funkcja celu ulega tylko przesunięciu o pewna stałą 11
Specjalne problemy programowania liniowego Odejmijmy zatem najmniejszy element różny od zera w każdym wierszu i w każdej kolumnie: cij wykonawcy n zadania 2 10 9 7 -2 15 4 14 8 -4 13 14 16 11 -11 4 15 13 9 -4 12
Specjalne problemy programowania liniowego Odejmijmy zatem najmniejszy element różny od zera w każdym wierszu i w każdej kolumnie: cij wykonawcy n zadania 0 8 7 5 11 0 10 4 2 3 5 0 0 11 9 5 -5 13
Specjalne problemy programowania liniowego n Otrzymujemy macierz efektywności C=[cij] z co najmniej m elementami zerowymi: wykonawcy cij n zadania 0 8 2 5 11 0 5 4 2 3 0 0 0 11 4 5 Warunkiem koniecznym optymalnego przydziału jest dokonanie go według współrzędnych elementów zerowych macierzy C=[cij] n Warunkiem dostatecznym optymalnego przydziału jest niezależność m wybranych elementów zerowych macierzy C=[cij], według których nastąpił przydział (para elementów niezależnych = elementy w dwóch różnych wierszach i w dwóch różnych kolumnach) 14
Specjalne problemy programowania liniowego n Twierdzenie Königa: Maksymalna liczba niezależnych elementów zerowych dowolnej macierzy C równa jest minimalnej liczbie linii koniecznych do pokrycia wszystkich elementów zerowych tej macierzy wykonawcy cij n zadania 0 8 2 5 11 0 5 4 2 3 0 0 0 11 4 5 Na powyższych elementach zerowych macierzy C nie da się stworzyć optymalnego przydziału (3 linie = 3 elementy zerowe niezależne < 4) 15
Specjalne problemy programowania liniowego n Algorytm metody węgierskiej (dla minimalizacji łącznego kosztu przydziału) 1. W każdym wierszu wyznacz minimalny element i odejmij go od każdego elementu tego wiersza. zadania cij 2 10 9 7 -2 15 4 14 8 -4 13 14 16 11 -11 4 15 13 9 -4 wykonawcy cij zadania 0 8 7 5 11 0 10 4 2 3 5 0 0 11 9 5 16
Specjalne problemy programowania liniowego 2. W każdej kolumnie wyznacz minimalny element i odejmij go od każdego elementu tej kolumny. zadania cij 0 8 7 5 11 0 10 4 2 3 5 0 0 11 9 5 wykonawcy cij zadania 0 8 2 5 11 0 5 4 2 3 0 0 0 11 4 5 -5 3. Jeśli w danym wierszu jest dokł. jedno nienaznaczone zero, to naznacz je symbolem i skreśl inne zera w odpowiadającej mu kolumnie. 4. Jeśli w danej kolumnie jest dokł. jedno nienaznaczone zero, to naznacz je symbolem i skreśl inne zera w odpowiadającym mu wierszu. 17
Specjalne problemy programowania liniowego Kroki 3 – 4 powtarzaj do wyczerpania. Jeśli znaleziono przydział 5. do m zer, to jest on optymalny STOP. Jeśli są jeszcze nienaznaczone zera, to naznacz jedno z nich 6. symbolem („północno-zachodnie”) i skreśl inne zera w odpowiadającej mu kolumnie i wierszu zadania cij # # # 0 0 0 # # wykonawcy np. c ij zadania 0 8 2 5 11 0 5 4 2 3 0 0 0 11 4 5 7. Zaznacz wiersze bez przydziału . 8. Zaznacz kolumny, które mają zero w dowolnym zaznaczonym wierszu. 9. Zaznacz wiersze, które mają przydział w zaznaczonych kolumnach. 10. Powtarzaj kroki 8 – 9 do wyczerpania. 18
Specjalne problemy programowania liniowego liniami niezaznaczone wiersze i zaznaczone kolumny. wykonawcy cij zadania cij 0 8 2 5 11 0 5 4 2 3 0 0 0 11 4 5 wykonawcy 11. Pokryj zadania 0 8 2 5 11 0 5 4 2 3 0 0 0 11 4 5 -2 -2 +2 12. Jeśli liczba linii pokrywających wszystkie zera jest równa liczbie naznaczonych zer, to znajdź minimalny niepokryty element, odejmij go od niepokrytych (zaznaczonych) wierszy i dodaj do pokrytych (zaznaczonych) kolumn, po czym wróć do kroku 3. W przeciwnym razie przejdź do kroku 13. 19
Specjalne problemy programowania liniowego liniami niezaznaczone wiersze i zaznaczone kolumny. wykonawcy cij 12. Jeśli zadania cij 0 8 2 5 11 0 5 4 2 3 0 0 0 11 4 5 wykonawcy 11. Pokryj zadania 0 6 0 3 13 0 5 4 4 3 0 0 0 9 2 3 liczba linii pokrywających wszystkie zera jest równa liczbie naznaczonych zer, to znajdź minimalny niepokryty element, odejmij go od niepokrytych (zaznaczonych) wierszy i dodaj do pokrytych (zaznaczonych) kolumn, po czym wróć do kroku 3. W przeciwnym razie przejdź do kroku 13. 20
Specjalne problemy programowania liniowego Kroki 3, 4, 5: zadania cij 0 6 0 3 13 0 5 4 4 3 0 0 0 9 2 3 Optymalny przydział: wykonawcy cij zadania 0 6 0 3 13 0 5 4 4 3 0 0 0 9 2 3 wykonawca zadanie koszt w 1 z 3 9 w 2 z 2 w 3 z 4 11 w 4 z 1 4 + + 28 21
Specjalne problemy programowania liniowego 13. Skonstruuj graf skierowany o 2 m+2 wierzchołkach: s, w 1, …, wm, z 1, …, zm, t. Dla każdego naznaczonego zera ( ) o współrzędnych (i, j) utwórz łuk zj wi ; dla zer skreślonych ( ) o współrzędnych (i, j) – łuk wi zj ; dla wierszy i bez przydziału – łuk s wi ; dla kolumn j bez przydziału – łuk zj t. np. 7 13 7 7 13 13 zadania cij 0 6 0 0 6 6 wykonawcy cij wykonawcy zadania wykonawcy cij zadania 0 6 0 0 6 6 Konieczne są 4 linie do pokrycia wszystkich zer, czyli istnieją 4 zera niezależne, a przydziału dokonano tylko do 3 zer. 22
Specjalne problemy programowania liniowego 13. Skonstruuj graf skierowany o 2 m+2 wierzchołkach: s, w 1, …, wm, z 1, …, zm, t. Dla każdego naznaczonego zera ( ) o współrzędnych (i, j) utwórz łuk zj wi ; dla zer skreślonych ( ) o współrzędnych (i, j) – łuk wi zj ; dla wierszy i bez przydziału – łuk s wi ; dla kolumn j bez przydziału – łuk zj t. wykonawcy cij zadania 0 6 0 0 6 6 s w 1 z 1 w 2 z 2 t w 3 z 3 w 4 z 4 wiersz kolumna (wykonawca) (zadanie) 23
Specjalne problemy programowania liniowego 13. Skonstruuj graf skierowany o 2 m+2 wierzchołkach: s, w 1, …, wm, z 1, …, zm, t. Dla każdego naznaczonego zera ( ) o współrzędnych (i, j) utwórz łuk zj wi ; dla zer skreślonych ( ) o współrzędnych (i, j) – łuk wi zj ; dla wierszy i bez przydziału – łuk s wi ; dla kolumn j bez przydziału – łuk zj t. wykonawcy cij zadania 0 6 0 0 6 6 s w 1 z 1 w 2 z 2 t w 3 z 3 w 4 z 4 wiersz kolumna (wykonawca) (zadanie) 24
Specjalne problemy programowania liniowego 13. Skonstruuj graf skierowany o 2 m+2 wierzchołkach: s, w 1, …, wm, z 1, …, zm, t. Dla każdego naznaczonego zera ( ) o współrzędnych (i, j) utwórz łuk zj wi ; dla zer skreślonych ( ) o współrzędnych (i, j) – łuk wi zj ; dla wierszy i bez przydziału – łuk s wi ; dla kolumn j bez przydziału – łuk zj t. wykonawcy cij zadania 0 6 0 0 6 6 s w 1 z 1 w 2 z 2 t w 3 z 3 w 4 z 4 wiersz kolumna (wykonawca) (zadanie) 25
Specjalne problemy programowania liniowego 14. Z otrzymanego grafu utwórz sieć warstwową: do pierwszej warstwy wstaw wierzchołek s, do warstwy i+1 wstaw każdy wierzchołek, którego nie ma w warstwie wcześniejszej, i do którego dochodzi łuk z dowolnego wierzchołka warstwy i. W ostatniej warstwie znajdzie się wierzchołek t. wykonawcy cij zadania 0 6 0 0 6 6 s w 1 z 1 w 2 z 2 t w 3 z 3 w 4 z 4 wiersz kolumna (wykonawca) (zadanie) 26
Specjalne problemy programowania liniowego 14. Z otrzymanego grafu utwórz sieć warstwową: do pierwszej warstwy wstaw wierzchołek s, do warstwy i+1 wstaw każdy wierzchołek, którego nie ma w warstwie wcześniejszej, i do którego dochodzi łuk z dowolnego wierzchołka warstwy i. W ostatniej warstwie znajdzie się wierzchołek t. s s w 1 z 1 w 2 z 2 w 3 z 3 w 4 z 4 w 4 t sieć warstwowa z 1 w 1 z 2 w 3 z 3 w 2 z 4 t 27
Specjalne problemy programowania liniowego 15. Przesuwając się po dowolnej ścieżce od t do s utwórz tzw. ścieżkę powiększającą przepływ. Naznacz ( ) zera skreślone o współrzędnych (i, j), odpowiadające łukowi wi zj na tej ścieżce; cofnij ( ) przydział zer naznaczonych o współrzędnych (i, j), odpowiadających łukowi zj wi na tej ścieżce. W poniższej sieci są 4 ścieżki powiększające przepływ sieć warstwowa s w 4 z 1 w 1 z 2 w 3 z 3 w 2 z 4 t 28
Specjalne problemy programowania liniowego 15. Przesuwając się po dowolnej ścieżce od t do s utwórz tzw. ścieżkę powiększającą przepływ. Naznacz ( ) zera skreślone o współrzędnych (i, j), odpowiadające łukowi wi zj na tej ścieżce; cofnij ( ) przydział zer naznaczonych o współrzędnych (i, j), odpowiadających łukowi zj wi na tej ścieżce. ścieżka powiększająca przepływ s w 4 z 1 w 1 z 3 w 2 z 4 t 29
Specjalne problemy programowania liniowego 15. Przesuwając się po dowolnej ścieżce od t do s utwórz tzw. ścieżkę powiększającą przepływ. Naznacz ( ) zera skreślone o współrzędnych (i, j), odpowiadające łukowi wi zj na tej ścieżce; cofnij ( ) przydział zer naznaczonych o współrzędnych (i, j), odpowiadających łukowi zj wi na tej ścieżce. znaleziono przydział do m zer, to jest on optymalny STOP. do kroku 7. cij zadania wykonawcy 17. Wróć 0 6 0 0 6 6 w 4 z 1 w 1 z 3 w 2 z 4 z 1 w 1 z 3 w 2 cij wykonawcy 16. Jeśli zadania 0 6 0 0 6 6 0 0 13 6 Przydział optymalny 30
Specjalne problemy programowania liniowego n Uwagi uzupełniające: n Ten sam algorytm można zastosować dla problemu maksymalizacji funkcji celu (zysku), jeśli zamieni się znaki elementów macierzy C=[cij] na przeciwne. n Jeśli macierz C=[cij] nie jest kwadratowa, to można ją uzupełnić elementami zerowymi w kolumnach lub wierszach, tak aby uzyskać macierz kwadratową. n Jeśli przydział wykonawcy i do zadania j jest zakazany, to przyjmujemy cij = . 31
- Agata kocia
- Wspomaganie rozwoju mowy dziecka w wieku przedszkolnym
- Wczesne wspomaganie rozwoju rozporządzenie
- Rozporządzenie o wwr
- Komputerowe wspomaganie projektowania
- Zasada trwałości decyzji ostatecznych
- Przeniesienie decyzji o środowiskowych uwarunkowaniach
- Elementy decyzji administracyjnej
- Rodzaje decyzji administracyjnych
- Decyzja administracyjna
- Typy decyzji
- System wspomagania decyzji wop
- Zasada trwałości decyzji ostatecznych
- Komformizm
- Proces decyzyjny
- Roman republic vs roman empire
- Bizantine empire map
- Stiinta si tehnica in epoca moderna
- Lesson 3 the early roman empire
- What is roman fever disease
- Sheri roman
- Miroase a roman
- Gladiatorious
- Irski pevec roman
- Apollo god
- Spanish empire
- Roman empire 60 bc
- Penitential act prayer
- Teodora si suita sa
- Mdcl roman numerals
- List of roman contributions
- Roman twelve tables laws