Základy umělé inteligence 3. Problémy s omezujícími podmínkami (CSP Constraint Satisfaction Problems) Jiří Kubaĺık Katedra kybernetiky, ČVUT-FEL http://cw.felk.cvut.cz/doku.php/courses/y33zui/start
pproblémy s omezujícími podmínkami (Constraint Satisfaction Problems CSP) :: Standardní prohledávací problém stav je černá skříňka s neznámou (a nevyužitou) strukturou, na který se aplikují funkce následník (expanze), heuristická funkce a cílový test. Problémy s omezujícími podmínkami
pproblémy s omezujícími podmínkami (Constraint Satisfaction Problems CSP) :: Standardní prohledávací problém stav je černá skříňka s neznámou (a nevyužitou) strukturou, na který se aplikují funkce následník (expanze), heuristická funkce a cílový test. :: CSP množina proměnných X 1, X 2,..., X n ; každá proměnná X i nabývá hodnot z oboru D i, množina omezení C 1, C 2,..., C m ; každé omezení C j se týká určité podmnožiny proměnných a určuje přípustné kombinace hodnot těchto proměnných, stav je definován jako přiřazení hodnot proměnným (všem anebo pouze některým), např. {X i = v i, X j = v j,... }, Přiřazení, které splňuje všechna omezení se nazývá konzistentní (přípustné). Přiřazení, ve kterém mají všechny proměnné přiřazenu nějakou hodnotu se nazývá úplné. Řešení CSP je úplné přiřazení, které vyhovuje všem omezením, některé CSP navíc hledají takové řešení, které maximalizuje jistou účelovou funkci. Problémy s omezujícími podmínkami
ppříklad: Barvení grafu :: Barvení grafu proměnné: W A, NT, SA, Q, NSW, V, T, c Russel, Norvig: Artificial Intelligence: A Modern Approach. domény: D i = {red, green, blue}, omezení: Sousední oblasti musí být jiné barvy. Definice výčtem: pro WA NT {(red, green), (red, blue), (green, red), (green, blue), (blue, red), (blue, green)} Definice podmínkou: {W A NT } Problémy s omezujícími podmínkami
ppříklad: Barvení grafu 2 c Russel, Norvig: Artificial Intelligence: A Modern Approach. Řešení: {W A = red, NT = green, Q = red, NSW = green, V = red, SA = blue, T = red} Problémy s omezujícími podmínkami
pgraf omezení :: Vizualizace CSP grafem omezení uzly proměnné, hrany omezení. :: Výhody CSP standardní reprezentace stavů umožňuje aby funkce následníka a cílový test byly navrženy obecně, návrh efektivních a obecných heuristik, nevyžadujícíhc žádnou problémověspecifickou znalost. struktura grafu omezení umožňuje dekompozici problému. c Russel, Norvig: Artificial Intelligence: A Modern Approach. Problémy s omezujícími podmínkami
pcharakteristiky CSP: Typy proměnných :: Diskrétní proměnné konečné obory hodnot D i barvení grafu, 8-královen,... boolovské CSP proměnné nabývají pouze hodnot true a false, např. 3SAT (NP-complete), nekonečné obory hodnot (integers) např. rozvrhování úloh proměnné jsou startovní časy jednotlivých úloh, nutný jazyk pro popis omezení (výčet není možný) StartJob 1 + 5 StartJob 3, někdy možno transformovat nekonečné obory hodnot na konečné (např. definováním horní meze pro StartJob i jako suma trvání všech úloh), algoritmy pro řešení lineárních CSP s integer proměnnými, pro nelineární CSP neexistují. :: Spojité proměnné velice časté reálné úlohy plánování akcí Hubblova teleskopu, CSP s lineárními omezeními jsou řešitelné pomocí metod lineárního programování. Problémy s omezujícími podmínkami
pcharakteristiky CSP: Typy omezení :: unární omezení omezuje hodnoty jedné proměnné např. obyvatelé Jižní Austrálie nesnášejí zelenou; toto lze vždy ošetřit redukcí oboru hodnot dané proměnné. :: binární omezení vztah mezi dvěmi proměnnými, např. SA NSW. :: omezení vyššího řádu relace tří a více proměnných. Každé takové omezení lze transformovat na množinu binárních omezení, za použití pomocných proměnných. Př.: Mějme CSP s omezeními X + Y = Z, X < Y, X {1, 2}, Y {3, 4} a Z {5, 6} :: preference určují, jaká řešení jsou preferována; optimalizační problém s omezeními. Např. při vytváření školního rozvrhu víme, že Kubaĺık strašně nerad učí v pátek odpoledne. Potom rozvrh, kde má Kubaĺık naplánovánu přednášku na páteční podvečer, ale který splňuje všechna absolutní omezení, bude stále platným řešením, ikdyž neoptimálním. Problémy s omezujícími podmínkami
ppříklad: Kryptogram proměnné F, T, U, W, R, O, domény {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, omezení každé písmeno je nahrazeno jinou číslicí; omezení šesti proměnných Alldiff(F, T, U, W, R, O), anebo kolekce binárních omezení typu F T, navíc: O + O = R + 10X 1, X 1 + W + W = U + 10X 2, X 2 + T + T = O + 10X 3, X 3 = F c Russel, Norvig: Artificial Intelligence: A Modern Approach. Problémy s omezujícími podmínkami
pinkrementální formulace CSP :: CSP formulován jako standardní prohledávací problém počáteční stav reprezentován prázdným přiřazením {}, funkce následníka přiřadí hodnotu doposud nepřiřazené proměnné tak, aby nevznikl konflikt s žádnou už přiřazenou proměnnou, cílový test přiřazení je úplné, cena cesty konstantní (tj. 1) pro všechny kroky. :: Poznámky všechna řešení jsou v hloubce n, takže prohledávání do hloubky může být s výhodou použito, nezáleží na cestě = úplná formulace CSP, kde každý stav je úplný (může a nemusí být konzistentní), takže můžeme použít lokální prohledávací algoritmy (hill-climbing). Problémy s omezujícími podmínkami
pkomutativnost problému :: Poznámka k velikosti prohledávaného stromu větvicí faktor v kořenovém uzlu je b = nd, kde n je počet proměnných a d počet hodnot, kterých proměnné mohou nabývat. V další vrstvě je to b = (n 1)d, atd. Celkem tedy máme strom s n! d n listy!!! Přitom evidentně existuje pouze d n úplných ohodnocení!!! Problémy s omezujícími podmínkami
pkomutativnost problému :: Poznámka k velikosti prohledávaného stromu větvicí faktor v kořenovém uzlu je b = nd, kde n je počet proměnných a d počet hodnot, kterých proměnné mohou nabývat. V další vrstvě je to b = (n 1)d, atd. Celkem tedy máme strom s n! d n listy!!! Přitom evidentně existuje pouze d n úplných ohodnocení!!! :: Naštěstí je CSP komutativní pořadí akcí, generujících řešení, nemá vliv na výsledek. Takže W A = red potom NT = green je stejné jako NT = green potom W A = red. Proto všechny CSP prohledávací algoritmy uvažují při generování následníka uzlu n různá přiřazení pouze pro jednu proměnnou. S tímto omezením už dostáváme očekávaný počet listů (d n ). Problémy s omezujícími podmínkami
pbacktracking pro CSP: Algoritmus :: Prohledávání s backtrackingem používá prohledávání do hloubky, generuje různá přiřazení pouze jedné proměnné v daném uzlu a navrací se, když nelze přiřadit žádnou hodnotu dané proměnné, aniž by nebylo porušeno některé z absolutních omezení. c Russel, Norvig: Artificial Intelligence: A Modern Approach. Problémy s omezujícími podmínkami
pbacktracking pro CSP: Ukázka :: Na každé úrovni a v každém uzlu se řeší pouze jedna proměnná v pořadí WA, NT, Q,... c Russel, Norvig: Artificial Intelligence: A Modern Approach. Problémy s omezujícími podmínkami
pbacktracking pro CSP: Ukázka :: Na každé úrovni a v každém uzlu se řeší pouze jedna proměnná v pořadí WA, NT, Q,... c Russel, Norvig: Artificial Intelligence: A Modern Approach. :: Funguje to, ale je to neefektivní (neinformované prohledávání). Problémy s omezujícími podmínkami
pzvýšení efektivity algoritmů prohledávání pro CSP :: Složitost CSP špatná zpráva - CSP zahrnuje NP-complete problémy, takže nelze očekávat, že se nám podaří obecně řešit tyto problémy v lepším než exponenciálním čase. dobrá zpráva Existují obecné algoritmy pro CSP, které umí snížit časovou náročnost prohledávání o několik řádů. Problémy s omezujícími podmínkami
pzvýšení efektivity algoritmů prohledávání pro CSP :: Složitost CSP špatná zpráva - CSP zahrnuje NP-complete problémy, takže nelze očekávat, že se nám podaří obecně řešit tyto problémy v lepším než exponenciálním čase. dobrá zpráva Existují obecné algoritmy pro CSP, které umí snížit časovou náročnost prohledávání o několik řádů. :: Obecné (nezávislé na konkrétním problému) metody se zaměřují na tyto otázky: která proměnná má být přiřazena jako následující? jaké jsou důsledky již zvolených přiřazení pro ostatní nepřiřazené proměnné? můžeme dopředu detekovat nevyhnutelné selhání? můžeme se nějak vyhnout opětovnému vygenerování nesplnitelného stavu? můžeme nějak využít strukturu problému? Problémy s omezujícími podmínkami
pvolba proměnné: Minimum Remaining Values (MRV) :: Minimum remaining values heuristika, která voĺı proměnnou s nejmenším počtem použitelných hodnot. Výběr proměnné, u které je největší pravděpodobnost, že způsobí konflikt. Pokud je nějaká proměnná s prázdnou množinou přiřaditelných hodnot, bude vybrána pro přiřazení a tím bude detekován konflikt. c Russel, Norvig: Artificial Intelligence: A Modern Approach. :: MRV nám nepomůže při výběru počáteční proměnné. Problémy s omezujícími podmínkami
pvolba proměnné: Degree heuristic (DH) :: Degree heuristic heuristika, která voĺı proměnnou svázanou největším počtem omezení s ostatními doposud nepřiřazenými proměnnými c Russel, Norvig: Artificial Intelligence: A Modern Approach. MRV je obvykle silnější pravidlo, ale DH bývá používána pro řešení nerozhodných situací u MRV. Problémy s omezujícími podmínkami
pvýběr hodnoty: Least-Constraining-Value (LCV) :: Least-Constraining-Value heuristika, která voĺı takovou hodnotu, která co nejméně omezí počet možných hodnot u ještě nepřiřazených sousedních proměnných :: Příklad máme částečné přiřazení W A = red a NT = green a chceme zvolit hodnotu pro Q (red nebo blue?), pokud zvoĺıme Q = blue, potom SA už nelze ohodnotit, ale pokud zvoĺıme Q = red, pořád ještě můžeme přiřadit SA = blue. c Russel, Norvig: Artificial Intelligence: A Modern Approach. Je to jedno, když chceme najít všechna řešení, anebo když řešení neexistuje. Problémy s omezujícími podmínkami
pvyužití omezení pro zefektivnění prohledávání :: Forward checking při každém přiřazení hodnoty některé proměnné X, vymažeme ze všech doposud neohodnocených sousedních (v grafu omezení) proměnných všechny hodnoty nekonzistentní s hodnotou přiřazenou proměnné X. redukce faktoru větvení u později zpracovávaných proměnných, ukončí prohledávání, když už nějaká proměná nemá žádnou přípustnou hodnotu, efektivní způsob získávání informace, kterou využívá MRV. Problémy s omezujícími podmínkami
pvyužití omezení pro zefektivnění prohledávání :: Forward checking při každém přiřazení hodnoty některé proměnné X, vymažeme ze všech doposud neohodnocených sousedních (v grafu omezení) proměnných všechny hodnoty nekonzistentní s hodnotou přiřazenou proměnné X. redukce faktoru větvení u později zpracovávaných proměnných, ukončí prohledávání, když už nějaká proměná nemá žádnou přípustnou hodnotu, efektivní způsob získávání informace, kterou využívá MRV. :: Závěr forward checking detekuje hodně nekonzistencí, ale ne všechny. Co NT = SA = blue? Problémy s omezujícími podmínkami
ppropagace omezení (constraint propagation) :: Základní myšlenka propagovat důsledky omezení u jedné proměnné na další relevantní proměnné, a potřebujeme to dělat rychle. :: Hranová konzistence (arc consistency) hrana orientovaná hrana z jednoho uzlu do druhého v grafu omezení (např. SA NSW ), hrana X Y je konzistentní při aktuálních doménách D x a D y, jestliže pro každou hodnotu x D x existuje alespoň jedna hodnota y D y konzistentní s x. Příklad: Uvažujme hrany SA NSW a NSW SA při D SA = {blue}, D NSW = {red, blue} SA NSW je konzistentní: pro SA = blue ex. NSW = red NSW SA není konzistentní: pro NSW = blue neex. žádné povolené přiřazení pro SA Jak se to dá napravit? Problémy s omezujícími podmínkami
ppropagace omezení (constraint propagation) :: Základní myšlenka propagovat důsledky omezení u jedné proměnné na další relevantní proměnné, a potřebujeme to dělat rychle. :: Hranová konzistence (arc consistency) hrana orientovaná hrana z jednoho uzlu do druhého v grafu omezení (např. SA NSW ), hrana X Y je konzistentní při aktuálních doménách D x a D y, jestliže pro každou hodnotu x D x existuje alespoň jedna hodnota y D y konzistentní s x. Příklad: Uvažujme hrany SA NSW a NSW SA při D SA = {blue}, D NSW = {red, blue} SA NSW je konzistentní: pro SA = blue ex. NSW = red NSW SA není konzistentní: pro NSW = blue neex. žádné povolené přiřazení pro SA Jak se to dá napravit? Odstraněním blue z D NSW. Co odhaĺı test hranové konzistence SA NT? Problémy s omezujícími podmínkami
phranová konzistence: Složitost algoritmu :: Po vyjmutí hodnoty z domény proměnné X i (ve snaze odstranit nekonzistenci) se může vyskytnout nová nekonzistence na hranách směřujících do proměnné X i = hranová konzistence musí být kontrolována opakovaně, dokud nejsou odstraněny všechny nekonzistence. :: Algoritmus AC-3 algoritmus AC-3 udržuje seznam hran, které mají být zkontrolovány, po vyjmutí hodnoty z domény proměnné X i, všechny hrany (X k, X i ) musí být přidány do seznamu, na konci algoritmu jsou buď všechny hrany konzistentní anebo některá proměnná má prázdnou doménu, což značí, že prohledávání je v nesplnitelné větvi. :: Složitost algoritmu AC-3: n proměnných, každá může nabývat d různých hodnot Graf omezení pro binární CSP obsahuje maximálně O(n 2 ) hran, každá hrana (X k, X i ) může být vložena do seznamu kontrolovaných hran maximálně d-krát, protože X i má maximálně d hodnot k odstranění, kontrola konzistence hrany může být provedena v čase O(d 2 ). Celkový čas bude v nejhorším případě O(n 2 d 3 ). :: Kontrola hranové konzistence se i přes poměrně značnou časovou náročnost vyplatí. Problémy s omezujícími podmínkami
pefekt propagace omezení: 4 dámy na šachovnici :: Čtyři dámy na šachovnici Promenné X1, X2, X3, X4 vyjadrují rádkovou pozici dámy v n-tém sloupci. Domény: D1 = D2 = D3 = D4 = 1, 2, 3, 4 počáteční konfigurace graf omezení Problémy s omezujícími podmínkami
pefekt propagace omezení: 4 dámy na šachovnici :: Pro X 1 = 1: počáteční konfigurace po ověření konzistence X n X 1 Problémy s omezujícími podmínkami
pefekt propagace omezení: 4 dámy na šachovnici :: Pro X 1 = 1: po ověření konzistence X n X 1 po ověření konzistence X 3 X 2 Problémy s omezujícími podmínkami
pefekt propagace omezení: 4 dámy na šachovnici :: Pro X 1 = 1: po ověření konzistence X 3 X 2 po ověření konzistence X 4 X 3 Problémy s omezujícími podmínkami
pefekt propagace omezení: 4 dámy na šachovnici :: Postup prohledávání s propagací omezení výrazné snížení počtu expandovaných uzlů, Problémy s omezujícími podmínkami
pnevýhody Backtrackingu :: Chronologický backtracking Když selže prohledávání v nějakém uzlu, zkusí jinou hodnotu proměnné o úroveň výše. Ovšem problémy jsou často způsobeny ohodnocením jiné proměnné, než té o úroveň výše. Př.: proměnné: X1 = {f, a} X2 = {a, c} X3 = {d, e} X4 = {b, f} X5 = {e, d} X6 = {a, b, f} omezení: Žádné dvě proměnné nemohou mít stejnou hodnotu. Problémy s omezujícími podmínkami
pbackjumping :: Návrat přímo k proměnné, která způsobila selhání. black list(i) pro každou proměnnou si udržujeme seznam proměnných, které způsobily selhání při 1. pokusech o její ohodnocení Do seznamu black list(i) se uloží proměnné, které již byly ohodnoceny a jejichž ohodnocení je nekonzistentní s nějakou z možných hodnot pro proměnnou i. 2. při snaze o ohodnocení následujících proměnných Pokud se nepodařilo ohodnotit proměnnou j, tak se navrať na nejbližší již ohodnocenou proměnnou k ze seznamu black list(j) a uprav její black list(k) takto black list(k) black list(k) black list(j) {k} Proměnná k si tedy rozšíří seznam black list(k) o podezřelé proměnné, které mohly být zodpovědné za neúspěšné ohodnocení následujících proměnných. Pokud všechny možnosti ohodnocení proměnné i jsou neúspěšné, tak se odskočí na proměnnou ze seznamu black list(i), která je nejbĺıže proměnné i. Problémy s omezujícími podmínkami
pbackjumping 1. Algoritmus úspěšně ohodnocuje proměnné až k proměnné X6. 2. Návrat na proměnnou X4, která je z proměnných v black list(x6) = {X1, X2, X4} nejbĺıže X6. 3. Nové ohodnocení X4 = f selže, proto black list(x4) = {X1}. 4. black list(x4) se upraví a pro návrat se vybere X2. 5. Prohledávání pokračuje novým ohodnocením proměnné X2. black list(x4) {X1} {X1, X2, X4} {X4} Problémy s omezujícími podmínkami
plokální prohledávání pro CSP :: Algoritmy lokálního prohledávání iterativní optimalizační algoritmy pracují s úplnými stavy všechny proměnné mají přiřazenu nějakou hodnotu, funkce následník mění hodnotu jedné proměnné. Příklad: 8-královen na šachovnici 1. počáteční stav je dán náhodným vygenerováním pozic 8 královen v 8 sloupcích; funkce následník mění libovolně pozici jedné královny v jejím sloupci. 2. počáteční stav je dán náhodným rozmístěním 8 královen, každá v jednom sloupci, v permutaci 8 řádků; funkce následník prohodí dvěma královnám jejich řádkové souřadnice. c Russel, Norvig: Artificial Intelligence: A Modern Approach. Problémy s omezujícími podmínkami
pheuristika minimalizace konfliktů :: Minimalizace konfliktů (min-conflicts) při výběru nové hodnoty dané proměnné se snaží minimalizovat počet konfliktů s ostatními proměnnými pro problém n-královen je její časová složitost nezávislá na n, řeší milion-královen v průměru na 50 kroků, c Russel, Norvig: Artificial Intelligence: A Modern Approach. vhodné pro problémy s mnoha řešeními hustě rozloženými ve stavovém prostoru. v 90-tých letech tento úspěch způsobil boom ve výzkumu lokálních opt. algoritmů, plánování akcí Hubbleova teleskopu; redukce času výpočtu ze tří týdnů na 10 minut!!! efektivní způsob nalezení řešení problému při změněných počátečních podmínkách (přeplánování). Problémy s omezujícími podmínkami
pstruktura problému :: Dekompozice problému rozdělení problému CSP na nezávislé podproblémy CSP i, identifikovatelné jako souvislé komponenty grafu omezení; př. Tasmánie a Austrálie. :: Co tím získáme? Předpokládejme CSP s n proměnnými a každý podproblém CSP i má c proměnných. Máme tedy n/c podproblémů; každý z nich o velikosti stavového prostoru d c. Takže celková výpočetní náročnost je O(d c n/c), což je lineární složitost vzhledem k n. Bez dekompozice je výpočetní náročnost O(d n ), což je exponenciální složitost vzhledem k n. Příklad: Celkový CSP o n = 80 je rozdělen na čtyři podproblémy, každý o c = 20 proměnných. Předpokládejme, že umíme spočítat 10 6 uzlů/s. Potom dostaneme: 4 2 20 = 4s, 2 80 = 4 miliardy let. Problémy s omezujícími podmínkami
pstruktura problému :: Dekompozice problému rozdělení problému CSP na nezávislé podproblémy CSP i, identifikovatelné jako souvislé komponenty grafu omezení; př. Tasmánie a Austrálie. :: Co tím získáme? Předpokládejme CSP s n proměnnými a každý podproblém CSP i má c proměnných. Máme tedy n/c podproblémů; každý z nich o velikosti stavového prostoru d c. Takže celková výpočetní náročnost je O(d c n/c), což je lineární složitost vzhledem k n. Bez dekompozice je výpočetní náročnost O(d n ), což je exponenciální složitost vzhledem k n. Příklad: Celkový CSP o n = 80 je rozdělen na čtyři podproblémy, každý o c = 20 proměnných. Předpokládejme, že umíme spočítat 10 6 uzlů/s. Potom dostaneme: 4 2 20 = 4s, 2 80 = 4 miliardy let. :: Bohužel, reálné problémy nebývají takto čistě dekomponovatelné. Problémy s omezujícími podmínkami
pstromové CSP :: CSP s grafem omezení neobsahujícím cykly je řešitelný v lineárním čase O(n). Pro obecný CSP je nejhorší časová složitost (O(d n )). :: Algoritmus pro stromové CSP 1. Zvol jednu proměnnou za kořen stromu (proměnná A) a seřad proměnné tak, že každý rodičovský uzel předchází svoje potomky. Proměnné jsou nyní označeny X 1,..., X n, podle jejich pořadí v posloupnosti. 2. Projdi proměnné od konce, tj. v pořadí j = n,..., 2, a pro každou hranu (X i, X j ), kde X i je rodič X j, proveď kontrolu konzistence hrany (Odstraň nevyhovující hodnoty z domény D X i ). 3. Projdi proměnné od začátku, tj. v pořadí j = 1,..., n, a přiřaď proměnné X j libovolnou hodnotu x D Xj, konzistentní s hodnotou X i, kde proměnná X i je rodič X j. Problémy s omezujícími podmínkami
pjak zařídit stromový graf omezení :: Cycle cutset redukuje obecný graf na strom vyloučením co nejmenšího počtu uzlů 1. Vyber z celkové množiny proměnných S nejmenší (?) podmnožinu uzlů S a tak, že výsledný graf je strom. 2. Pro všechna možná ohodnocení proměnných množiny S a, která vyhovují omezením na S a odstraň z domén ostatních proměnných S b = S \ S a všechny hodnoty, které nevyhovují ohodnocení proměnných z S a, řeš strom S b algoritmem pro stromové CSP. Pokud je nalezeno konzistentní řešení pro S b, je výsledné řešení dáno sjednocením aktuálního ohodnocení proměnných množiny S a a nalezeného řešení pro S b. c Russel, Norvig: Artificial Intelligence: A Modern Approach. Problémy s omezujícími podmínkami
pliteratura Stuart Russell and Peter Norvig: Artificial Intelligence: A Modern Approach Part II Problem Solving 5 Constraint Satisfaction Problems (http://aima.cs.berkeley.edu/2nd-ed/) Problémy s omezujícími podmínkami