Wspomaganie Decyzji Roman Słowiński Zakład Inteligentnyc Systemów Wspomagania Decyzji Instytut Informatyki Politecniki Poznańskiej Roman Słowiński
Problem decyzyjny Istnieje cel lub cele do osiągnięcia Istnieją alternatywne sposoby osiągnięcia tego celu (celów) Wybór najlepszego sposobu nie jest trywialny 2
Modele problemów decyzyjnyc Modele teorio-decyzyjne (matematyczne): optymalizacyjny (badania operacyjne) wielokryterialny (wielokryterialne wspomaganie decyzji) Modele sztucznej inteligencji: logiczny (maszynowe uczenie się) neuronowy (sztuczne sieci neuronowe) 3
Modele problemów decyzyjnyc Modelowanie matematyczne: Reprezentacja problemu decyzyjnego z użyciem funkcji rzeczywistyc (której argumentami są zmienne modelu), lub z użyciem relacji porządkującyc Forma reprezentacji: programowanie matematyczne, relacja preferencji w zbiorze wariantów decyzyjnyc Modele sztucznej inteligencji: Budowanie reprezentacji problemu decyzyjnego na drodze analizy przykładów decyzji (przykładów uczącyc) Forma reprezentacji: funkcje rzeczywiste, reguły decyzyjne, drzewa decyzyjne, sieci semantyczne
Modelowanie problemów decyzyjnyc a niedoskonałość informacji Racunek prawdopodobieństwa i statystyka matematyczna [Bernoulli, 7] niepewność wynikająca z przypadkowej zmienności parametrów (werystyczna) Aksjomat o addytywności prawdopodobieństw zdarzeń rozłącznyc: P(A) + P( A) Teoria zbiorów rozmytyc [Zade, 9] niepewność natury subiektywnej (posybilistyczna) i nieostrość pojęć: ( ) + µ ( ) µ A A Teoria zbiorów przybliżonyc [Pawlak, 982] niepewność wynikająca z granularności informacji (niespójność, dwuznaczność): obiekt albo na pewno należy, albo być może należy, albo na pewno nie należy do zbioru A
Model programowania matematycznego ) rozwiązanie (wariant decyzyjny): [,..., n ] 2) funkcja celu (kryterium): f(,..., n ) 3) ograniczenia definiujące zbiór A rozwiązań dopuszczalnyc (wariantów decyzyjnyc): g i (,..., n ), i,...,m Problem programowania matematycznego: Należy: z f(,..., n ) MIN (lub MAX) przy ograniczeniac: g i (,..., n ) (lub ) b i, i,...,m
Problem programowania liniowego (PL) 7 { },...,n j,...,m i b,, a MIN c z j i n j j ij n j j j,, przy ograniczeniac:
Wielokryterialny problem PL (WPL) 8 { },...,n j,...,m i b,, a MIN c z c z j i n j j ij n j j k j k n j j j,, przy ograniczeniac:
Problemy decyzyjne modelowane w kategoriac programowania matematycznego, sprowadzalne do programowania liniowego Problem programowania ilorazowego c + c z d + d MIN przy ograniczeniac : A b, d + d > gdzie c T [,..., n], b [ b,...,bm ] [ c,...,c ], d [ d,...,d ] n n T Transformacja Carnesa-Coopera 9
Transformacja Carnesa-Coopera Wprowadzamy zmienne pomocnicze: u d + d u d + d, czyli u,...,n Podstawiając te zmienne do funkcji celu i ograniczeń, otrzymujemy: j j, j d + d c + c c + c d + d d + d d + d A b A b d + d d + d u d + d ponieważ d + d >, to d + cu + c d u Au bu > u >
Transformacja Carnesa-Coopera Ponadto dla powiązania u i u : u d d + d + u d d + d d + d du + du d + d Otrzymaliśmy następujący problem zastępczy równoważny problemowi programowania ilorazowego: z cu + cu MIN przy ograniczeniac : Au bu du + du u, u >
Transformacja Carnesa-Coopera Problem ten byłby problemem PL, gdyby u, a nie u > Tw. Jeżeli istnieje rozwiązanie optymalne problemu zastępczego ( ) z warunkiem u (czyli problemu PL) postaci u,u, takie że ( ), to wektor u > u,u jest rozwiązaniem optymalnym wyjściowego problemu programowania ilorazowego W zagadnieniac praktycznyc zazwyczaj spełniony jest warunek u >, dlatego stosowanie metody Carnesa-Coopera i rozwiązywanie problemu zastępczego jako problemu PL kończy się powodzeniem. 2
Problem programowania celowego z przy A gdzie c k w c ograniczeniac : b MIN T [,..., n], b [ b,...,bm ] [ c,...,c ],,...,k n c gdzie c są wartościami pożądanymi funkcji c,,..,k (cele) T 3
Wprowadzamy zmienne oznaczające odcyłki od celów: Mamy Otrzymujemy zastępczy równoważny problem PL: { } { } k,..., c,c ma y c,c ma y,, +,...,k y y y y y y c c y y c c,,, + + + + + ( ),...,k,y y b A y y c c ograniczeniac : przy MIN y y w z k,, + + + +
+ ( ) Tw. Jeśli, y, y jest rozwiązaniem optymalnym zastępczego problemu PL, to + y y,,...,k
Problem programowania min-ma (problem Czebyszewa) z przy A gdzie c MAX,...,k { w ( c c )} ograniczeniac : b MIN T [,..., n], b [ b,...,bm ] [ c,...,c ],,...,k n T
Wprowadzamy zmienną pomocniczą: funkcji typu α c można także sprowadzić do problemu PL w podobny sposób, wprowadzając dla każdej z tyc funkcji osobną zmienna typu α c c c,,...,k Otrzymujemy zastępczy równoważny problem PL: α MIN przy ograniczeniac : α,,..,k A b (zmienna α nie musi być nieujemna) Problem, w którym należy minimalizować sumę skończonej liczby MAX,...,k { w ( c c )} 7
Problem transportowy m liczba punktów nadawczyc (magazyny) n liczba punktów odbiorczyc (klienci) koszt transportu jednostki towaru z magazynu i do odbiorcy j d j zapotrzebowanie odbiorcy j s i ilość towaru w magazynie i Należy zminimalizować łączne koszty transportu Zmienna decyzyjna: ij ilość towaru przesłana z magazynu i do odbiorcy j 8
Problem transportowy z ij n j m i gdzie m i m n i j przy ograniczeniac : i,...,m, j,...,n s i ij ij s d i j c n j ij d MIN i,...,m j,...,n j ij Problem ten można rozwiązać metodą sympleksów 9
Problem przydziału m liczba zadań (programy) m liczba wykonawców (procesory) koszt wykonania i przez wykonawcę j Elementy tworzą macierz efektywności C[ ] o wymiarac 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ć do wykonawców, by zminimalizować łączny koszt wykonania wszystkic zadań 2
Zmienna decyzyjna: ij,, gdy wykonawca i nie w przeciwnym razie jest przydzielony do j z m m i j c ij ij MIN przy ograniczeniac : m j ij i,...,m m i ij j,...,m ij {, } i,...,m, j,..., m Jest to problem - programowania liniowego Jest to także przypadek szczególny problemu transportowego, gdzie s i d j, nm i zmienna decyzyjna jest - 2
Problem transportowy ma tę korzystną własność, że jeżeli s i i d j są liczbami całkowitymi i istnieje coćby jedno rozwiązanie dopuszczalne, to istnieje rozwiązanie optymalne, w którym ij są wszystkie liczbami całkowitymi lub zerami Metoda sympleksowa znajduje to całkowitoliczbowe rozwiązanie optymalne Dzieje się tak dlatego, gdyż macierz współczynników ograniczeń A problemu transportowego jest unimodularna (wyznacznik dowolnej podmacierzy kwadratowej macierzy A jest, lub -), a wektor prawyc stron ograniczeń b jest złożony z liczb całkowityc (B - b) Problem przydziału ma zatem tę samą własność Istnieje jednak prostsza metoda rozwiązania problemu przydziału 22
Macierz efektywności C[ ] o wymiarac m m 2 9 7 8 3 3 9 przydział niedopuszczalny Przydział do polega na wyborze konkretnego elementu Tyc m wybranyc elementów ma dać minimalną sumę 23
Operacje arytmetyczne na macierzy efektywności C[ ] nie powodujące zmiany rozwiązania optymalnego: 2 9 7 8 3 3 9 Dodanie lub odjęcie dowolnej stałej od dowolnego wiersza lub kolumny macierzy C[ ] Np. odejmując 3 od wiersza i oraz dodając 2 do kolumny j otrzymamy: z gdyż m i j m m j c ij ij ij 3 m i ij m j ij + 2 m i ij m i j 3 + 2, tzn. funkcja celu ulega tylko przesunięciu o pewna stałą m c ij ij 2
Odejmijmy zatem najmniejszy element różny od zera w każdym wierszu i w każdej kolumnie: 2 3 9 3 7 8 9-2 - - - 2
Odejmijmy zatem najmniejszy element różny od zera w każdym wierszu i w każdej kolumnie: 2 8 3 7 9-2
Otrzymujemy macierz efektywności C[ ] z co najmniej m elementami zerowymi: 2 8 3 2 Warunkiem koniecznym optymalnego przydziału jest dokonanie go według współrzędnyc elementów zerowyc macierzy C[ ] Warunkiem dostatecznym optymalnego przydziału jest niezależność m wybranyc elementów zerowyc macierzy C[ ], według któryc nastąpił przydział (para elementów niezależnyc elementy w dwóc różnyc wierszac i w dwóc różnyc kolumnac) 27
Twierdzenie Königa: Maksymalna liczba niezależnyc elementów zerowyc dowolnej macierzy C równa jest minimalnej liczbie linii koniecznyc do pokrycia wszystkic elementów zerowyc tej macierzy 8 2 2 3 Na powyższyc elementac zerowyc macierzy C nie da się stworzyć optymalnego przydziału (3 linie 3 elementy zerowe niezależne < ) 28
Algorytm metody węgierskiej (dla minimalizacji łącznego kosztu przydziału). W każdym wierszu wyznacz minimalny element i odejmij go od każdego elementu tego wiersza. 2 3 9 3 7 8 9-2 - - 8 7 2 3-9 29
2. W każdej kolumnie wyznacz minimalny element i odejmij go od każdego elementu tej kolumny. 2 8 3 7 9 2 8 3 2-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.. Jeśli w danej kolumnie jest dokł. jedno nienaznaczone zero, to naznacz je symbolem i skreśl inne zera w odpowiadającym mu wierszu. 3
. Kroki 3 powtarzaj do wyczerpania. Jeśli znaleziono przydział do m zer, to jest on optymalny STOP.. Jeśli są jeszcze nienaznaczone zera, to naznacz jedno z nic symbolem ( północno-zacodnie ) i skreśl inne zera w odpowiadającej mu kolumnie i wierszu np. # # # # # # # # # # 2 8 3 2 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 zaznaczonyc kolumnac.. Powtarzaj kroki 8 9 do wyczerpania. 3
. Pokryj liniami niezaznaczone wiersze i zaznaczone kolumny. 2 8 3 2 2 8 3 2-2 -2 +2 2. Jeśli liczba linii pokrywającyc wszystkie zera jest równa liczbie naznaczonyc zer, to znajdź minimalny niepokryty element, odejmij go od niepokrytyc (zaznaczonyc) wierszy i dodaj do pokrytyc (zaznaczonyc) kolumn, po czym wróć do kroku 3. W przeciwnym razie przejdź do kroku 3. 32
. Pokryj liniami niezaznaczone wiersze i zaznaczone kolumny. 2 8 3 2 3 3 9 2 3 3 2. Jeśli liczba linii pokrywającyc wszystkie zera jest równa liczbie naznaczonyc zer, to znajdź minimalny niepokryty element, odejmij go od niepokrytyc (zaznaczonyc) wierszy i dodaj do pokrytyc (zaznaczonyc) kolumn, po czym wróć do kroku 3. W przeciwnym razie przejdź do kroku 3. 33
Kroki 3,, : 3 3 9 2 3 3 3 3 9 2 3 3 Optymalny przydział: wykonawca zadanie koszt w z3 9 + w2 z2 + w3 z + w z 28 3
3. Skonstruuj graf skierowany o 2m+2 wierzcołkac: s, w,,w m, z,,z m, t. Dla każdego naznaczonego zera ( ) o współrzędnyc (i,j) utwórz łuk z j w i ; dla zer skreślonyc ( ) o współrzędnyc (i,j) łuk w i z j ; dla wierszy i bez przydziału łuk s w i ; dla kolumn j bez przydziału łuk z j t. np. 7 3 7 7 3 3 7 7 7 7 3 3 7 7 3 3 Konieczne są linie do pokrycia wszystkic zer, czyli istnieją zera niezależne, a przydziału dokonano tylko do 3 zer. 3
3. Skonstruuj graf skierowany o 2m+2 wierzcołkac: s, w,,w m, z,,z m, t. Dla każdego naznaczonego zera ( ) o współrzędnyc (i,j) utwórz łuk z j w i ; dla zer skreślonyc ( ) o współrzędnyc (i,j) łuk w i z j ; dla wierszy i bez przydziału łuk s w i ; dla kolumn j bez przydziału łuk z j t. w z s w2 w3 w z2 z3 z t wiersz (wykonawca) kolumna (zadanie) 3
3. Skonstruuj graf skierowany o 2m+2 wierzcołkac: s, w,,w m, z,,z m, t. Dla każdego naznaczonego zera ( ) o współrzędnyc (i,j) utwórz łuk z j w i ; dla zer skreślonyc ( ) o współrzędnyc (i,j) łuk w i z j ; dla wierszy i bez przydziału łuk s w i ; dla kolumn j bez przydziału łuk z j t. w z s w2 w3 w z2 z3 z t wiersz (wykonawca) kolumna (zadanie) 37
3. Skonstruuj graf skierowany o 2m+2 wierzcołkac: s, w,,w m, z,,z m, t. Dla każdego naznaczonego zera ( ) o współrzędnyc (i,j) utwórz łuk z j w i ; dla zer skreślonyc ( ) o współrzędnyc (i,j) łuk w i z j ; dla wierszy i bez przydziału łuk s w i ; dla kolumn j bez przydziału łuk z j t. w z s w2 w3 w z2 z3 z t wiersz (wykonawca) kolumna (zadanie) 38
. Z otrzymanego grafu utwórz sieć warstwową: do pierwszej warstwy wstaw wierzcołek s, do warstwy i+ wstaw każdy wierzcołek, którego nie ma w warstwie wcześniejszej, i do którego docodzi łuk z dowolnego wierzcołka warstwy i. W ostatniej warstwie znajdzie się wierzcołek t. w z s w2 w3 w z2 z3 z t wiersz (wykonawca) kolumna (zadanie) 39
. Z otrzymanego grafu utwórz sieć warstwową: do pierwszej warstwy wstaw wierzcołek s, do warstwy i+ wstaw każdy wierzcołek, którego nie ma w warstwie wcześniejszej, i do którego docodzi łuk z dowolnego wierzcołka warstwy i. W ostatniej warstwie znajdzie się wierzcołek t. w z s w2 z2 t w3 z3 w z sieć warstwowa s w z w z3 w2 z t z2 w3
. 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ędnyc (i,j), odpowiadające łukowi w i z j na tej ścieżce; cofnij ( ) przydział zer naznaczonyc o współrzędnyc (i,j), odpowiadającyc łukowi z j w i na tej ścieżce. W poniższej sieci są ścieżki powiększające przepływ sieć warstwowa s w z w z3 w2 z t z2 w3
. 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ędnyc (i,j), odpowiadające łukowi w i z j na tej ścieżce; cofnij ( ) przydział zer naznaczonyc o współrzędnyc (i,j), odpowiadającyc łukowi z j w i na tej ścieżce. ścieżka powiększająca przepływ s w z w z3 w2 z t 2
. 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ędnyc (i,j), odpowiadające łukowi w i z j na tej ścieżce; cofnij ( ) przydział zer naznaczonyc o współrzędnyc (i,j), odpowiadającyc łukowi z j w i na tej ścieżce.. Jeśli znaleziono przydział do m zer, to jest on optymalny STOP. 7. Wróć do kroku 7. w z w z3 w2 z z w z3 w2 3 Przydział optymalny 3
Uwagi uzupełniające: Ten sam algorytm można zastosować dla problemu maksymalizacji funkcji celu (zysku), jeśli zamieni się znaki elementów macierzy C[ ] na przeciwne. Jeśli macierz C[ ] nie jest kwadratowa, to można ją uzupełnić elementami zerowymi w kolumnac lub wierszac, tak aby uzyskać macierz kwadratową. Jeśli przydział i do j jest zakazany, to przyjmujemy.