Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI 12. Globální metody Dekompozice a kompozice Dynamické programování jako globální metoda Rozděl a panuj jako globální metoda Vlastnosti a třídy dekompozice Kombinované globální metody
Terminologie aneb co všechno je globální optimalizace techniky, které hledají globální optimum za přítomnosti lokálních optim už jich známe spoustu techniky, které rovnoměrně prohledávají stavový prostor náhodné starty lokálních metod diverzifikace v lokálních metodách atd. metody, které nejsou založeny na pojmu stavového prostoru 2
Globální a lokální metody lokální metody: stav, stavový prostor aktuální stav okolí, prohledávání okolí globální metody instance dekompozice instance na podinstance kompozice řešení podinstancí rekurze řešení triviálních instancí hrubou silou 3
Dekompozice a kompozice dekompozice řešení kompozice I 1 Y 1 I Y I 2 Y 2 instance problému menší instance problému řešení I 1 a I 2 řešení I 4
Příklad: dynamické programování problému batohu I=(W, C, M) instance problému batohu X řešení problému batohu cost (X) cena řešení X=KNAP(W, C, M) procedura, řešící instanci I exaktní metoda function KNAP (W, C, M) if istrivial (W, C, M) return trivialknap (W, C, M); X0 = KNAP (W-{w n }, C-{c n }, M); X1 = KNAP (W-{w n }, C-{c n }, M-w n ); if cost(x1)+c n return X0.0; triviální případ hrubou silou > cost(x0) return X1.1; kompozice function istrivial (W, C, M) return (isempty (W) or M=0 or M<0); I 1 dekompozice I 2 5
Příklad: řešení problému diskrétního rozmístění Dáno: množina n modulů K={k 1,,k n } množina m pozic P={p 1,,p m }, m n propojení modulů jako hypergraf G (K, N), kde N je množina spojů n cenová funkce W (R, n), která pro každé přiřazení R: K P odhadne cenu realizace spoje n. Nalézt: prosté přiřazení R: K P (rozmístění), které minimalizuje součet ohodnocení W (R, n) přes všechny spoje. 6
Příklad: řešení problému diskrétního rozmístění rozmisťovací prostor I 1 hypergraf propojení rozdělení na poloviny I 2 min. bisekce hypergrafu (např. Kernighan-Lin) kompozice: sjednocení množin 7
Vlastnosti dekompozice I I 1 I 2 Y 1 není řešení existuje řešení Y např. dekompozice pro batoh I I 1 I 2 Y 1 není řešení není řešení např. dekompozice diskrétního rozmístění 8
Přibližná dekompozice I I 1 přibližná dekompozice (approximate decomposition): Y 1, Y 2 optimální řešení I 1, I 2 Y 1, Y 2 neexistují nevíme nic I 2 Y 1 Y 2 Y Y je řešení I konstruktivní problémy: Y 1, Y 2 řešení I 1, I 2 Y je řešení I Y 1, Y 2 neexistují nevíme nic 9
Čistá dekompozice I I 1 Y 1 Y I 2 Y 2 čistá dekompozice (pure decomposition): přibližná dekompozice taková, že Y 1, Y 2 optimální řešení I 1, I 2 Y je optimální řešení I Y 1, Y 2 neexistují Y neexistuje konstruktivní problémy: Y 1, Y 2 řešení I 1, I 2 Y je řešení I Y 1, Y 2 neexistují Y neexistuje 10
Přesná dekompozice přesná dekompozice I 2 Y 2 (proper decomposition): čistá dekompozice taková, že každé optimální řešení Y se dá složit z nějakých optimálních řešení Y 1, Y 2 (ze všech optimálních Y 1, Y 2 se dají složit všechny optimální Y) konstruktivní problémy: každé řešení Y se dá složit z nějakých řešení Y 1, Y 2... I I 1 Y 1 Y 11
Vlastnosti globálních metod pouze přesná dekompozice všechna optimální řešení přesná a čistá dekompozice alespoň jedno optimální řešení přesná, čistá a přibližná dekompozice nelze zaručit vlastnosti řešení 12
Redukce Dekompozice taková, že jedna z dekomponovaných instancí je triviální: redukce přesná redukce čistá redukce přibližná redukce 13
Dynamické programování čistá dekompozice dekomponované instance se dají charakterizovat malým objemem hodnot řešení dekomponovaných instancí se dají indexovat těmito hodnotami dekomponované instance se dají rozdělit do disjunktních tříd (stupňů) tak, že k výpočtu instancí jednoho stupně je třeba jen instancí právě jednoho jiného stupně 14
Problém batohu KNAP (V, C, M) váha charakteristika podinstance: n, M KNAP (V-{v n }, C-{c n }, M) KNAP (V-{v n }, C-{c n }, M-v n ) M 0 n-3 n-2 n-1 n věci triviální 15
Formulace dynamického programování Rekurzivní: vyjít ze zadané instance stanovit, které podinstance je třeba řešit, až se dosáhne triviálních instancí jasná souvislost s globálními metodami ale v praxi se nepoužívá Dopředná vyjít z triviální instance (triviálních instancí) spočítat všechny složitější podinstance, až se dosáhne zadané instance a tak se to dělá 16
Stupně váha M 0 n-3 n-2 n-1 n věci stupeň n-3 stupeň n-2, k výpočtu instancí stačí instance stupně n-3, není nutno skladovat více 17
Dopředný výpočet váha C[i,j]+c i+1 M j+w i+1 max. cena ve sloupci n j triviální i i+1 n věci 18
Použití dynamického programování Formulovat řešení jako rekurzivní algoritmus Stanovit minimální charakterizaci podinstancí a organizaci paměti mezihodnot Tak ukázat, že podinstancí je polynomiálně mnoho Stanovit stupně a pořadí řešení tak, aby všechny mezihodnoty byly k dispozici 19
Co může být výhodné řešit dynamickým programováním Problémy, které mají omezený počet mezihodnot n! permutací měst TSP, ale n(n-1)/2 souvislých podřetězů řetězu, určených počátkem a koncem n(n-1)/2 podstromů binárního vyhledávacího stromu, určených minimálním a maximálním klíčem Problémy s přirozeným uspořádáním prvků 20
Rozděl a panuj Algoritmy založené na přibližné dekompozici Opakované řešení dekomponovaných instancí je řídké Zvláštní případ: je potřeba řešit jen jednu z dekomponovaných instancí - zmenši a panuj (např. binární hledání), někdy jen použití přibližné redukce 21
Globální metody, složené z různých dekompozic Princip: rekurzivní procedura V každé úrovni se použije nejlepší možná dekompozice (přesná, čistá, přibližná) Možné výsledky: nalezeno řešení řešení neexistuje nevíme nic Tam, kde je možno provést více dekompozic stejného druhu, udržujeme seznam těch, které nevedly k výsledku 22
Y=GlobalSolve(I) istrivial (I)? - + I 1,I 2 = ProperDecomp (I, hist) I 1,I 2? - + return SolveTrivial(I) I hist return nevíme I 1,I 2 = PureDecomp (I, hist) I 1,I 2? - + I 1,I 2 = ApproxDecomp (I, hist) I 1,I 2? - + Y 1 =GlobalSolv (I 1 ) Y 2 =GlobalSolv (I 2 ) Y=Compose (Y 1, Y 2 ) Y? - + Y 1 =GlobalSolv (I 1 ) Y 2 =GlobalSolv (I 2 ) Y=Compose (Y 1, Y 2 ) Y? return Y + Y existuje - return Y nemůže existovat 23
Problém splnitelnosti booleovské formule (SAT) Dáno: n proměnných X = (x 1, x 2,... x n ) Booleovská formule F(X) v konjunktivní normální formě (součin součtů), např. F(X) = (x 1 +x 2 +x 3 ) (x 1 +x 2 ) (x 1 +x 3 ) Nalézt: Ohodnocení Y = (y 1, y 2,...y n ) proměnných x 1, x 2,... x n takové, že F(Y) = 1 24
Dekompozice DPLL Davis, Putnam, Logemann, Loveland 1962 Označme C = {c 1, c 2, c m } množinu klauzulí formule F, tedy F(X) = (x 1 +x 2 +x 3 ) (x 1 +x 2 ) (x 1 +x 3 ) = c 1 c 2 c 3 Instance I dána množinou proměnných a množinou klauzulí, I=(X, C) Dekompozice podle proměnných nechť X = X 1 X 2 (nikoli nutně disjunktní) indukuje instance I 1 =(X 1, C 1 ) I 2 =(X 2, C 2 ) kde C 1 resp. C 2 je množina klauzulí obsahujících proměnné z X 1 resp. X 2 25
Dekompozice DPLL: splitting rule Dekompozice zvolit proměnnou x i nechť C i resp. C i je množina klauzulí C s ohodnocením y i =1 resp. y i =0 I 1 =(X-{x j }, C i ) I 2 =(X-{x j }, C i ) je přesná dekompozice Kompozice pokud I 1 nebo I 2 je splnitelná, je I splnitelná, jestliže ani I 1 ani I 2 není splnitelná, není ani I splnitelná. 26
Dekompozice DPLL: unity propagation Redukce Nechť existuje klauzule c i o jediném literálu x j resp. x j. nechť C i resp. C i je množina klauzulí C s ohodnocením y i =1 resp. y i =0 Dekompozice I 1 =(X-{x j }, c i ) triviální I 2 =(X, C i ) resp. I 2 =(X, C i ) je přesnou redukcí. Kompozice: je-li I 2 splnitelná, je I splnitelná. 27
Dekompozice Servít-Zamazal Vážený problém splnitelnosti každá proměnná má kladnou váhu, minimum součtu vah proměnných ohodnocených 1 Dekompozice podle proměnných jako v předchozím případě Y 1 řešení I 1 =(X 1, C 1 ) Y 2 řešení I 2 =(X 2, C 2 ) Jestliže ohodnocení proměnných z X 1 X 2 v Y 1 a Y 2 se shoduje, pak kompozice Y = Y 1 Y 2 je řešením I (přibližná dekompozice). Jestliže Y 1 a Y 2 jsou jediná minimální řešení I 1 a I 2, ohodnocení proměnných z X 1 X 2 v Y 1 a Y 2 je 1, pak kompozice Y = Y 1 Y 2 je minimálním řešením I (přesná dekompozice). 28