Wykład 2: Upraszczanie, optymalizacja i implikacja
Upraszczanie, optymalizacja i implikacja Upraszczanie więzów Projekcja Upraszczacze więzowe Optymalizacja Implikacja i równoważność
Upraszczanie więzów Dwa równoważne więzy reprezentują tę samą informację, ale Jeden może być prostszy od drugiego Usuwanie nadmiarowych więzów, przepisywanie więzów bazowych, zmiana kolejności, podstawianie używiające równości zachowują równoważność
Więzy nadmiarowe Więz C1 implikuje C2 jeśli rozwiązania C1 są podzbiorem rozwiązań C2 C2 jest nadmiarowy wzgl. C1 Piszemy
Więzy nadmiarowe Można usunąć więz bazowy, który jest nadmiarowy wzgłedem reszty więzów. Powstają prostsze więzy
Solwery form rozwiązanych Ponieważ solwer form rozwiązanych tworzy równoważne więzy służyć do upraszczania Przykładowo, gdy używamy solwera termowego Dla solwera Gaussa-Jordana
Projekcja Upraszczanie staje się ważniejsze, gdy interesują nas jedynie niektóre zmienne. Uproszczone wzgl. V oraz I
Projekcja Projekcją więzu C na zmienne V jest więz C1 taki, że C1 zawiera zmienne jedynie z V Każde rozwiązanie C jest rozwiązaniem C1 Rozwiązanie C1 może być rozszerzone by dać rozwiązanie C
Algorytm Fouriera Usuń zmienną y z nierówności liniowych C Zapisz każdą nier. z y po jednej stronie Dla każdej pary stwórz nową nier. Wynikiem są wszystkie nowe nierówności oraz te nierówności z C, które nie zawierają y
Algorytm Fouriera. Przykład Projekcja. Eliminowanie Y Wynik (zawiera tylko X)
Projekcja więzów termowych Możemy również wykonać projekcję na więzach termowych projekcja na {X,Z} to Ale jak dokonać projekcji X = cons(Y,Z) na X? Odpowiedź: nie ma takiego więzu!
Upraszczanie więzów więzy C1 i C2 są równoważne ze względu na V jeśli gdy weźmiemy dowolne rozwiązanie jednego i ograniczymy je do zmiennych s V, to to ograniczone rozwiązanie może być rozszerzone aby być rozwiązaniem drugiego Przykładowo X=succ(Y) i X=succ(Z) wzgl {X}
Definicja upraszczacza Upraszczaczem więzów jest funkcja simpl która bierze więz C oraz zbiór zmiennych V i zwraca więz C1 równoważny C wzgl. V Możemy utworzyć upraszczacz dla nierówności liniowych bazujący na algorytmie Fouriera.
Upraszczacz więzów drzewowych Zastosuj solwer termowy do C otrzymując C1 if C1 = false then return false foreach równanie x=t w C1 if x jest w V then if t jest zmienną spoza V podstaw x za t w C1 i w wyniku else dodaj x=t do wyniku return result
Przykład upraszczania drzew Wiezy drzewowe upraszczane wzgl. {Y,T} Równoważny więz z solwera drzewowego Pomiń pierwsze dwa równania, zachowaj trzecie i użyj ostatnie do zamiany U na T
Własności upraszczacza Pożądanymi własnościami są: rzutowanie: słabe rzutowanie: dla wszystkich więzów C2 które są równoważne z C1 wzgl. V słabo rzutujący solwer nigdy nie używa więcej zmiennych niż to konieczne Obydwie te własności pozwalają by upraszczacz użyty był jako solwer
Optymalizacja Często mając problem modelowany przez pewne więzy chcemy otrzymać nie ,,jakieś’’ rozwiązanie, ale rozw. ,,najlepsze’’ To jest problem optymalizacyjny Potrzebujemy funkcji celu do oceny rozwiązań, czyli funkcji biorącej rozwiązanie i zwracającej liczbę rzeczywista
Problem optymalizacji Problem optymalizacji (C,f) składa się z więzu C oraz funkcji celu f Wartościowanie v1 jest lepsze niż v2 jeśli f(v1) < f(v2) Rozwiązanie optymalne to takie, że nie ma od niego lepszego.
Przykład na optymalizację Problem optymalizacyjny Znajdź najbliższy pocz. układu punkt spełniający C. Niektóre rozwiązania wraz z wartością f. Rozwiązanie optymalne
Optymalizacja Pewne problemy optymalizacyjne nie mają rozwiązania. Więzy nie mają rozwiązanie Problem nie ma optimim Od każdego rozwiązania istnieje lepsze
Algorytm Simplex Najpowszechniej używany algorytm optymalizacyjny Optymalizuje funkcję liniową wzgl. więzów liniowych Związany z eliminacją Gaussa-Jordana
Algorytm Simplex Problem optymalizacyjny (C, f) ma postać simpleksową jeśli: C jest koniunkcją CE oraz CI CE jest koniunkcją równań liniowych CI ogranicza wszystkie zmienne z C, by były nieujemne f jest linowym wyrażeniem nad zmiennymi z C
Simplex. Przykład Problem optymalizacyjny w postaci simplesowej Dowolny problem można przekształcić do postaci simpl. Zastępując niezwiązane zm X przez nowe zm. wyrażając za pomocą nowej zm. s
Rozwiązana postać simpleksowa Simpleksowy problem optymalizacyjny jest w podstawowej wykonywalnej postaci jeśli: Równania są w postaci rozwiązanej Każda stała po prawej stronie jest nieujemna W funkcji celu znajdują się jedynie parametry Postawowe wykonywalne rozwiązanie otrzymujemy podstawiając 0 za każdy parametr, a stałą z równania za każdy nie-parametr
Simplex. Przykład Problem równoważny poprzedniemu w postaci bfs Możemy odczytać rozwiązanie i odpowiadającą mu funkcję celu
Algorytm simplex Zacznij od problemu w postaci bfs repeat Wybierz zmienną y z ujemnymi wsp. w funkcji celu Znajdź równanie x = b + cy + ... gdzie c<0 i -b/c jest minimalne Przepisz równanie with y the subject y = -b/c + 1/c x + ... Podstaw -b/c + 1/c x + ... za y we wszystkich równ. i f-cji celu. until nie ma takiej y lub nie ma takiego równania if nie ma y to znaleźliśmy optimum else nie ma rozwiązania optymalnego
Simpleks. Przykład Choose variable Z, the 2nd eqn is only one with neg. coeff Choose variable Y, the first eqn is only one with neg. coeff No variable can be chosen, optimal value 2 is found
Inny przykład Równoważną postacią simpleksową jest: Problem optymalizacyjny pokazujący poziomice funkcji celu
Inny przykład Basic feasible solution form: circle Choose S3, replace using 2nd eq Rozwiązanie optymalne: kwadrat
Brakująca część Jak obliczyć początkowe rozwiązanie (bfs)? Rozwiąż inny problem simpleksowy Dodaj sztuczne zmienne, aby rozwiązania znalazły się w bfs Minimalizuj sumę sztucznych więzów Gdy suma jest zero, możemy zbudować bfs dla oryginalnego problemu.
Przykład z brakującą częścią Original simplex form equations With artificial vars in bfs form: Objective function: minimize
Przykład z brakującą częścią II Problem after minimization of objective function Removing the artificial variables, the original problem
Implikacja i równoważność Innymi ważnymi operacjami na więzach są: implikacja: sprawdź czy C1 implikuje C2 impl(C1, C2) odpowiada true, false lub unknown równoważność: sprawdź czy C1 i C2 są równoważne equiv(C1, C2) odpowiada true, false lub unknown
Implikacja. Przykład Czy dla więzu CH, stan B musi być osiągnięty po stanie C? Odpowiedź jest aIe, jeżeli dołożymy wymaganie, by dom zbudować w 15 dni, to
Implikacja i równoważność Można użyc impl by zdefiniować equiv i vice versa Możemy skorzystać z solwera dla prostych testów z impl e.g.
Simplification, Optimization and Implication Summary Equivalent constraints can be written in many forms, hence we desire simplification Particularly if we are only interested in the interaction of some of the variables Many problems desire a optimal solution, there are algms (simplex) to find them We may also be interested in asking questions involving implication