(CSP – Constraint Satisfaction Problems) Jiˇr´ı
(CSP – Constraint Satisfaction Problems) Jiˇr´ı (CSP – Constraint Satisfaction Problems) Jiˇr´ı
Základy umělé inteligence 3. Problémy s omezujícími podmínkami (CSP – Constraint Satisfaction Problems) Jiˇrí Kubalík Katedra kybernetiky, ČVUT-FEL http://cw.felk.cvut.cz/doku.php/courses/y33zui/start
- Page 2 and 3: pProblémy s omezujícími podmínk
- Page 4 and 5: pPˇríklad: Barvení grafu :: Barv
- Page 6 and 7: pGraf omezení :: Vizualizace CSP g
- Page 8 and 9: pCharakteristiky CSP: Typy omezení
- Page 10 and 11: pInkrementální formulace CSP :: C
- Page 12 and 13: pKomutativnost problému :: Poznám
- Page 14 and 15: pBacktracking pro CSP: Ukázka :: N
- Page 16 and 17: pZv´yˇsení efektivity algoritm˚
- Page 18 and 19: pVolba proměnné: Minimum Remainin
- Page 20 and 21: pV´yběr hodnoty: Least-Constraini
- Page 22 and 23: pVyuˇzití omezení pro zefektivn
- Page 24 and 25: pPropagace omezení (constraint pro
- Page 26 and 27: pEfekt propagace omezení: 4 dámy
- Page 28 and 29: pEfekt propagace omezení: 4 dámy
- Page 30 and 31: pEfekt propagace omezení: 4 dámy
- Page 32 and 33: pBackjumping :: Návrat pˇrímo k
- Page 34 and 35: pLokální prohledávání pro CSP
- Page 36 and 37: pStruktura problému :: Dekompozice
- Page 38 and 39: pStromové CSP :: CSP s grafem omez
- Page 40: pLiteratura Stuart Russell and Pete
Základy umělé inteligence<br />
3. Problémy s omezujícími podmínkami<br />
(<strong>CSP</strong> <strong>–</strong> <strong>Constraint</strong> <strong>Satisfaction</strong> <strong>Problems</strong>)<br />
Jiˇrí Kubalík<br />
Katedra kybernetiky, ČVUT-FEL<br />
http://cw.felk.cvut.cz/doku.php/courses/y33zui/start
pProblémy s omezujícími podmínkami<br />
(<strong>Constraint</strong> <strong>Satisfaction</strong> <strong>Problems</strong> <strong>–</strong> <strong>CSP</strong>)<br />
:: Standardní prohledávací problém<br />
stav je černá skˇríňka s neznámou (a nevyuˇzitou) strukturou,<br />
na kter´y se aplikují funkce následník (expanze), heuristická funkce a cílov´y test.<br />
Problémy s omezujícími podmínkami
pProblémy s omezujícími podmínkami<br />
(<strong>Constraint</strong> <strong>Satisfaction</strong> <strong>Problems</strong> <strong>–</strong> <strong>CSP</strong>)<br />
:: Standardní prohledávací problém<br />
stav je černá skˇríňka s neznámou (a nevyuˇzitou) strukturou,<br />
na kter´y se aplikují funkce následník (expanze), heuristická funkce a cílov´y test.<br />
:: <strong>CSP</strong><br />
mnoˇzina proměnn´ych X1, X2, . . . , Xn; kaˇzdá proměnná Xi nab´yvá hodnot z oboru Di,<br />
mnoˇzina omezení C1, C2, . . . , Cm; kaˇzdé omezení Cj se t´yká určité podmnoˇziny proměnn´ych<br />
a určuje pˇrípustné kombinace hodnot těchto proměnn´ych,<br />
stav je definován jako pˇriˇrazení hodnot proměnn´ym (vˇsem anebo pouze někter´ym), napˇr.<br />
{Xi = vi, Xj = vj, . . . },<br />
Pˇriˇrazení, které splňuje vˇsechna omezení se naz´yvá konzistentní (pˇrípustné).<br />
Pˇriˇrazení, ve kterém mají vˇsechny proměnné pˇriˇrazenu nějakou hodnotu se naz´yvá úplné.<br />
ˇReˇsení <strong>CSP</strong> je úplné pˇriˇrazení, které vyhovuje vˇsem omezením,<br />
některé <strong>CSP</strong> navíc hledají takové ˇreˇsení, které maximalizuje jistou účelovou funkci.<br />
Problémy s omezujícími podmínkami
pPˇríklad: Barvení grafu<br />
:: Barvení grafu<br />
proměnné: W A, NT, SA, Q, NSW, V, T ,<br />
domény: Di = {red, green, blue},<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
omezení: Sousední oblasti musí b´yt jiné barvy.<br />
Definice v´yčtem: pro WA<strong>–</strong>NT {(red, green), (red, blue), (green, red), (green, blue),<br />
(blue, red), (blue, green)}<br />
Definice podmínkou: {W A = NT }<br />
Problémy s omezujícími podmínkami
pPˇríklad: Barvení grafu 2<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
ˇReˇsení: {W A = red, NT = green, Q = red, NSW = green, V = red, SA = blue, T = red}<br />
Problémy s omezujícími podmínkami
pGraf omezení<br />
:: Vizualizace <strong>CSP</strong> grafem omezení<br />
uzly <strong>–</strong> proměnné,<br />
hrany <strong>–</strong> omezení.<br />
:: V´yhody <strong>CSP</strong><br />
standardní reprezentace stav˚u umoˇzňuje<br />
− aby funkce následníka a cílov´y test byly<br />
navrˇzeny obecně,<br />
− návrh efektivních a obecn´ych heuristik,<br />
nevyˇzadujícíhc ˇzádnou problémověspecifickou<br />
znalost.<br />
struktura grafu omezení umoˇzňuje dekompozici<br />
problému.<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
Problémy s omezujícími podmínkami
pCharakteristiky <strong>CSP</strong>: Typy proměnn´ych<br />
:: Diskrétní proměnné<br />
konečné obory hodnot Di<br />
− barvení grafu, 8-královen, . . .<br />
− boolovské <strong>CSP</strong> <strong>–</strong> proměnné nab´yvají pouze hodnot true a false, napˇr. 3SAT (NP-complete),<br />
nekonečné obory hodnot (integers)<br />
− napˇr. rozvrhování úloh <strong>–</strong> proměnné jsou startovní časy jednotliv´ych úloh,<br />
− nutn´y jazyk pro popis omezení (v´yčet není moˇzn´y) <strong>–</strong> StartJob1 + 5 ≤ StartJob3,<br />
− někdy moˇzno transformovat nekonečné obory hodnot na konečné (napˇr. definováním horní<br />
meze pro StartJobi jako suma trvání vˇsech úloh),<br />
− algoritmy pro ˇreˇsení lineárních <strong>CSP</strong> s integer proměnn´ymi, pro nelineární <strong>CSP</strong> neexistují.<br />
:: Spojité proměnné<br />
velice časté reálné úlohy <strong>–</strong> plánování akcí Hubblova teleskopu,<br />
<strong>CSP</strong> s lineárními omezeními jsou ˇreˇsitelné pomocí metod lineárního programování.<br />
Problémy s omezujícími podmínkami
pCharakteristiky <strong>CSP</strong>: Typy omezení<br />
:: unární omezení <strong>–</strong> omezuje hodnoty jedné proměnné napˇr. obyvatelé Jiˇzní Austrálie nesnáˇsejí<br />
zelenou; toto lze vˇzdy oˇsetˇrit redukcí oboru hodnot dané proměnné.<br />
:: binární omezení <strong>–</strong> vztah mezi dvěmi proměnn´ymi, napˇr. SA = NSW .<br />
:: omezení vyˇsˇsího ˇrádu <strong>–</strong> relace tˇrí a více<br />
proměnn´ych.<br />
Kaˇzdé takové omezení lze transformovat na<br />
mnoˇzinu binárních omezení, za pouˇzití pomocn´ych<br />
proměnn´ych.<br />
Pˇr.: Mějme <strong>CSP</strong> s omezeními<br />
X + Y = Z,<br />
X < Y ,<br />
X ∈ {1, 2}, Y ∈ {3, 4} a Z ∈ {5, 6}<br />
:: preference <strong>–</strong> určují, jaká ˇreˇsení jsou preferována; optimalizační problém s omezeními.<br />
Napˇr. pˇri vytváˇrení ˇskolního rozvrhu víme, ˇze Kubalík straˇsně nerad učí v pátek odpoledne. Potom<br />
rozvrh, kde má Kubalík naplánovánu pˇrednáˇsku na páteční podvečer, ale kter´y splňuje vˇsechna<br />
absolutní omezení, bude stále platn´ym ˇreˇsením, ikdyˇz neoptimálním.<br />
Problémy s omezujícími podmínkami
pPˇríklad: Kryptogram<br />
proměnné <strong>–</strong> F, T, U, W, R, O,<br />
domény <strong>–</strong> {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},<br />
omezení <strong>–</strong> kaˇzdé písmeno je nahrazeno jinou číslicí;<br />
omezení ˇsesti proměnn´ych Alldiff(F, T, U, W, R, O),<br />
anebo kolekce binárních omezení typu F = T ,<br />
navíc: O + O = R + 10X1, X1 + W + W = U + 10X2, X2 + T + T = O + 10X3, X3 = F<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
Problémy s omezujícími podmínkami
pInkrementální formulace <strong>CSP</strong><br />
:: <strong>CSP</strong> formulován jako standardní prohledávací problém<br />
počáteční stav <strong>–</strong> reprezentován prázdn´ym pˇriˇrazením {},<br />
funkce následníka <strong>–</strong> pˇriˇradí hodnotu doposud nepˇriˇrazené proměnné tak, aby nevznikl konflikt<br />
s ˇzádnou uˇz pˇriˇrazenou proměnnou,<br />
cílov´y test <strong>–</strong> pˇriˇrazení je úplné,<br />
cena cesty <strong>–</strong> konstantní (tj. 1) pro vˇsechny kroky.<br />
:: Poznámky<br />
vˇsechna ˇreˇsení jsou v hloubce n, takˇze prohledávání do hloubky m˚uˇze b´yt s v´yhodou<br />
pouˇzito,<br />
nezáleˇzí na cestě =⇒ úplná formulace <strong>CSP</strong>, kde kaˇzd´y stav je úpln´y (m˚uˇze a nemusí b´yt<br />
konzistentní), takˇze m˚uˇzeme pouˇzít lokální prohledávací algoritmy (hill-climbing).<br />
Problémy s omezujícími podmínkami
pKomutativnost problému<br />
:: Poznámka k velikosti prohledávaného stromu<br />
větvicí faktor v koˇrenovém uzlu je<br />
b = nd,<br />
kde n je počet proměnn´ych a d počet hodnot, kter´ych proměnné mohou nab´yvat.<br />
V dalˇsí vrstvě je to b = (n − 1)d, atd.<br />
Celkem tedy máme strom s n! · d n listy !!!<br />
Pˇritom evidentně existuje pouze d n úpln´ych ohodnocení !!!<br />
Problémy s omezujícími podmínkami
pKomutativnost problému<br />
:: Poznámka k velikosti prohledávaného stromu<br />
větvicí faktor v koˇrenovém uzlu je<br />
b = nd,<br />
kde n je počet proměnn´ych a d počet hodnot, kter´ych proměnné mohou nab´yvat.<br />
V dalˇsí vrstvě je to b = (n − 1)d, atd.<br />
Celkem tedy máme strom s n! · d n listy !!!<br />
Pˇritom evidentně existuje pouze d n úpln´ych ohodnocení !!!<br />
:: Naˇstěstí je <strong>CSP</strong> komutativní <strong>–</strong> poˇradí akcí, generujících ˇreˇsení, nemá vliv na v´ysledek.<br />
Takˇze W A = red potom NT = green<br />
je stejné jako<br />
NT = green potom W A = red.<br />
Proto vˇsechny <strong>CSP</strong> prohledávací algoritmy uvaˇzují pˇri generování následníka uzlu n r˚uzná<br />
pˇriˇrazení pouze pro jednu proměnnou.<br />
S tímto omezením uˇz dostáváme očekávan´y počet list˚u (d n ).<br />
Problémy s omezujícími podmínkami
pBacktracking pro <strong>CSP</strong>: Algoritmus<br />
:: Prohledávání s backtrackingem<br />
pouˇzívá prohledávání do hloubky,<br />
generuje r˚uzná pˇriˇrazení pouze jedné proměnné v daném uzlu a<br />
navrací se, kdyˇz nelze pˇriˇradit ˇzádnou hodnotu dané proměnné, aniˇz by nebylo poruˇseno některé<br />
z absolutních omezení.<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
Problémy s omezujícími podmínkami
pBacktracking pro <strong>CSP</strong>: Ukázka<br />
:: Na kaˇzdé úrovni a v kaˇzdém uzlu se ˇreˇsí pouze jedna proměnná v poˇradí <strong>–</strong> WA, NT, Q, ...<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
Problémy s omezujícími podmínkami
pBacktracking pro <strong>CSP</strong>: Ukázka<br />
:: Na kaˇzdé úrovni a v kaˇzdém uzlu se ˇreˇsí pouze jedna proměnná v poˇradí <strong>–</strong> WA, NT, Q, ...<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
:: Funguje to, ale je to neefektivní (neinformované prohledávání).<br />
Problémy s omezujícími podmínkami
pZv´yˇsení efektivity algoritm˚u prohledávání pro <strong>CSP</strong><br />
:: Sloˇzitost <strong>CSP</strong><br />
ˇspatná zpráva - <strong>CSP</strong> zahrnuje NP-complete problémy, takˇze nelze očekávat, ˇze se nám<br />
podaˇrí obecně ˇreˇsit tyto problémy v lepˇsím neˇz exponenciálním čase.<br />
dobrá zpráva <strong>–</strong> Existují obecné algoritmy pro <strong>CSP</strong>, které umí sníˇzit časovou náročnost<br />
prohledávání o několik ˇrád˚u.<br />
Problémy s omezujícími podmínkami
pZv´yˇsení efektivity algoritm˚u prohledávání pro <strong>CSP</strong><br />
:: Sloˇzitost <strong>CSP</strong><br />
ˇspatná zpráva - <strong>CSP</strong> zahrnuje NP-complete problémy, takˇze nelze očekávat, ˇze se nám<br />
podaˇrí obecně ˇreˇsit tyto problémy v lepˇsím neˇz exponenciálním čase.<br />
dobrá zpráva <strong>–</strong> Existují obecné algoritmy pro <strong>CSP</strong>, které umí sníˇzit časovou náročnost<br />
prohledávání o několik ˇrád˚u.<br />
:: Obecné (nezávislé na konkrétním problému) metody se zaměˇrují na tyto otázky:<br />
která proměnná má b´yt pˇriˇrazena jako následující?<br />
jaké jsou d˚usledky jiˇz zvolen´ych pˇriˇrazení pro ostatní nepˇriˇrazené proměnné?<br />
m˚uˇzeme dopˇredu detekovat nevyhnutelné selhání?<br />
m˚uˇzeme se nějak vyhnout opětovnému vygenerování nesplnitelného stavu?<br />
m˚uˇzeme nějak vyuˇzít strukturu problému?<br />
Problémy s omezujícími podmínkami
pVolba proměnné: Minimum Remaining Values (MRV)<br />
:: Minimum remaining values <strong>–</strong> heuristika, která volí proměnnou s nejmenˇsím počtem<br />
pouˇziteln´ych hodnot.<br />
V´yběr proměnné, u které je největˇsí pravděpodobnost, ˇze zp˚usobí konflikt.<br />
Pokud je nějaká proměnná s prázdnou mnoˇzinou ”pˇriˇraditeln´ych” hodnot, bude vybrána pro<br />
pˇriˇrazení a tím bude detekován konflikt.<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
:: MRV nám nepom˚uˇze pˇri v´yběru počáteční proměnné.<br />
Problémy s omezujícími podmínkami
pVolba proměnné: Degree heuristic (DH)<br />
:: Degree heuristic <strong>–</strong> heuristika, která volí proměnnou svázanou největˇsím počtem omezení s<br />
ostatními doposud nepˇriˇrazen´ymi proměnn´ymi<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
MRV je obvykle silnějˇsí pravidlo, ale DH b´yvá pouˇzívána pro ˇreˇsení nerozhodn´ych situací u<br />
MRV.<br />
Problémy s omezujícími podmínkami
pV´yběr hodnoty: Least-Constraining-Value (LCV)<br />
:: Least-Constraining-Value <strong>–</strong> heuristika, která volí takovou hodnotu, která co nejméně omezí<br />
počet moˇzn´ych hodnot u jeˇstě nepˇriˇrazen´ych sousedních proměnn´ych<br />
:: Pˇríklad<br />
máme částečné pˇriˇrazení W A = red a NT = green a chceme zvolit hodnotu pro Q (red<br />
nebo blue?),<br />
pokud zvolíme Q = blue, potom SA uˇz nelze ohodnotit,<br />
ale pokud zvolíme Q = red, poˇrád jeˇstě m˚uˇzeme pˇriˇradit SA = blue.<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
Je to jedno, kdyˇz chceme najít vˇsechna ˇreˇsení, anebo kdyˇz ˇreˇsení neexistuje.<br />
Problémy s omezujícími podmínkami
pVyuˇzití omezení pro zefektivnění prohledávání<br />
:: Forward checking <strong>–</strong> pˇri kaˇzdém pˇriˇrazení hodnoty některé proměnné X, vymaˇzeme ze vˇsech<br />
doposud neohodnocen´ych sousedních (v grafu omezení) proměnn´ych vˇsechny hodnoty nekonzistentní<br />
s hodnotou pˇriˇrazenou proměnné X.<br />
redukce faktoru větvení u později zpracovávan´ych proměnn´ych,<br />
ukončí prohledávání, kdyˇz uˇz nějaká proměná nemá ˇzádnou pˇrípustnou hodnotu,<br />
efektivní zp˚usob získávání informace, kterou vyuˇzívá MRV.<br />
Problémy s omezujícími podmínkami
pVyuˇzití omezení pro zefektivnění prohledávání<br />
:: Forward checking <strong>–</strong> pˇri kaˇzdém pˇriˇrazení hodnoty některé proměnné X, vymaˇzeme ze vˇsech<br />
doposud neohodnocen´ych sousedních (v grafu omezení) proměnn´ych vˇsechny hodnoty nekonzistentní<br />
s hodnotou pˇriˇrazenou proměnné X.<br />
redukce faktoru větvení u později zpracovávan´ych proměnn´ych,<br />
ukončí prohledávání, kdyˇz uˇz nějaká proměná nemá ˇzádnou pˇrípustnou hodnotu,<br />
efektivní zp˚usob získávání informace, kterou vyuˇzívá MRV.<br />
:: Závěr <strong>–</strong> forward checking detekuje hodně nekonzistencí, ale ne vˇsechny.<br />
Co NT = SA = blue ?<br />
Problémy s omezujícími podmínkami
pPropagace omezení (constraint propagation)<br />
:: Základní myˇslenka<br />
propagovat d˚usledky omezení u jedné proměnné na dalˇsí relevantní proměnné,<br />
a potˇrebujeme to dělat rychle.<br />
:: Hranová konzistence (arc consistency)<br />
hrana <strong>–</strong> orientovaná hrana z jednoho uzlu do druhého v grafu omezení (napˇr. SA → NSW ),<br />
hrana X → Y je konzistentní pˇri aktuálních doménách Dx a Dy, jestliˇze pro kaˇzdou<br />
hodnotu x ∈ Dx existuje alespoň jedna hodnota y ∈ Dy konzistentní s x.<br />
Jak se to dá napravit?<br />
Pˇríklad: Uvaˇzujme hrany SA → NSW a NSW → SA<br />
pˇri DSA = {blue}, DNSW = {red, blue}<br />
SA → NSW je konzistentní:<br />
pro SA = blue ex. NSW = red<br />
NSW → SA není konzistentní:<br />
pro NSW = blue neex. ˇzádné povolené pˇriˇrazení pro SA<br />
Problémy s omezujícími podmínkami
pPropagace omezení (constraint propagation)<br />
:: Základní myˇslenka<br />
propagovat d˚usledky omezení u jedné proměnné na dalˇsí relevantní proměnné,<br />
a potˇrebujeme to dělat rychle.<br />
:: Hranová konzistence (arc consistency)<br />
hrana <strong>–</strong> orientovaná hrana z jednoho uzlu do druhého v grafu omezení (napˇr. SA → NSW ),<br />
hrana X → Y je konzistentní pˇri aktuálních doménách Dx a Dy, jestliˇze pro kaˇzdou<br />
hodnotu x ∈ Dx existuje alespoň jedna hodnota y ∈ Dy konzistentní s x.<br />
Jak se to dá napravit?<br />
Pˇríklad: Uvaˇzujme hrany SA → NSW a NSW → SA<br />
pˇri DSA = {blue}, DNSW = {red, blue}<br />
SA → NSW je konzistentní:<br />
pro SA = blue ex. NSW = red<br />
NSW → SA není konzistentní:<br />
pro NSW = blue neex. ˇzádné povolené pˇriˇrazení pro SA<br />
Odstraněním blue z DNSW. Co odhalí test hranové konzistence SA → NT ?<br />
Problémy s omezujícími podmínkami
pHranová konzistence: Sloˇzitost algoritmu<br />
:: Po vyjmutí hodnoty z domény proměnné Xi (ve snaze odstranit nekonzistenci) se m˚uˇze vyskytnout<br />
nová nekonzistence na hranách směˇrujících do proměnné Xi =⇒ hranová konzistence<br />
musí b´yt kontrolována opakovaně, dokud nejsou odstraněny vˇsechny nekonzistence.<br />
:: Algoritmus AC-3<br />
algoritmus AC-3 udrˇzuje seznam hran, které mají b´yt zkontrolovány,<br />
po vyjmutí hodnoty z domény proměnné Xi, vˇsechny hrany (Xk, Xi) musí b´yt pˇridány do<br />
seznamu,<br />
na konci algoritmu jsou bu ˇ d vˇsechny hrany konzistentní anebo některá proměnná má prázdnou<br />
doménu, coˇz značí, ˇze prohledávání je v nesplnitelné větvi.<br />
:: Sloˇzitost algoritmu AC-3: n proměnn´ych, kaˇzdá m˚uˇze nab´yvat d r˚uzn´ych hodnot<br />
Graf omezení pro binární <strong>CSP</strong> obsahuje maximálně O(n 2 ) hran,<br />
kaˇzdá hrana (Xk, Xi) m˚uˇze b´yt vloˇzena do seznamu kontrolovan´ych hran maximálně d-krát,<br />
protoˇze Xi má maximálně d hodnot k odstranění,<br />
kontrola konzistence hrany m˚uˇze b´yt provedena v čase O(d 2 ).<br />
Celkov´y čas bude v nejhorˇsím pˇrípadě O(n 2 d 3 ).<br />
:: Kontrola hranové konzistence se i pˇres poměrně značnou časovou náročnost vyplatí.<br />
Problémy s omezujícími podmínkami
pEfekt propagace omezení: 4 dámy na ˇsachovnici<br />
:: Čtyˇri dámy na ˇsachovnici<br />
Promenné X1, X2, X3, X4 vyjadrují rádkovou pozici dámy v n-tém sloupci.<br />
Domény: D1 = D2 = D3 = D4 = 1, 2, 3, 4<br />
počáteční konfigurace graf omezení<br />
Problémy s omezujícími podmínkami
pEfekt propagace omezení: 4 dámy na ˇsachovnici<br />
:: Pro X1 = 1:<br />
počáteční konfigurace po ověˇrení konzistence Xn → X1<br />
Problémy s omezujícími podmínkami
pEfekt propagace omezení: 4 dámy na ˇsachovnici<br />
:: Pro X1 = 1:<br />
po ověˇrení konzistence Xn → X1<br />
po ověˇrení konzistence X3 → X2<br />
Problémy s omezujícími podmínkami
pEfekt propagace omezení: 4 dámy na ˇsachovnici<br />
:: Pro X1 = 1:<br />
po ověˇrení konzistence X3 → X2<br />
po ověˇrení konzistence X4 → X3<br />
Problémy s omezujícími podmínkami
pEfekt propagace omezení: 4 dámy na ˇsachovnici<br />
:: Postup prohledávání s propagací omezení <strong>–</strong> v´yrazné sníˇzení počtu expandovan´ych uzl˚u,<br />
Problémy s omezujícími podmínkami
pNev´yhody Backtrackingu<br />
:: Chronologick´y backtracking<br />
Kdyˇz selˇze prohledávání v nějakém uzlu, zkusí jinou hodnotu proměnné o úroveň v´yˇse.<br />
Ovˇsem problémy jsou často zp˚usobeny ohodnocením jiné proměnné, neˇz té o úroveň v´yˇse.<br />
Pˇr.:<br />
proměnné:<br />
X1 = {f, a}<br />
X2 = {a, c}<br />
X3 = {d, e}<br />
X4 = {b, f}<br />
X5 = {e, d}<br />
X6 = {a, b, f}<br />
omezení: ˇ Zádné dvě proměnné<br />
nemohou mít stejnou hodnotu.<br />
Problémy s omezujícími podmínkami
pBackjumping<br />
:: Návrat pˇrímo k proměnné, která zp˚usobila selhání.<br />
black list(i) <strong>–</strong> pro kaˇzdou proměnnou si udrˇzujeme seznam proměnn´ych, které zp˚usobily<br />
selhání pˇri<br />
1. pokusech o její ohodnocení<br />
Do seznamu black list(i) se uloˇzí proměnné, které jiˇz byly ohodnoceny a jejichˇz ohodnocení<br />
je nekonzistentní s nějakou z moˇzn´ych hodnot pro proměnnou i.<br />
2. pˇri snaze o ohodnocení následujících proměnn´ych<br />
Pokud se nepodaˇrilo ohodnotit proměnnou j, tak se navraˇt na nejbliˇzˇsí jiˇz ohodnocenou<br />
proměnnou k ze seznamu black list(j) a uprav její black list(k) takto<br />
black list(k) ←− black list(k) ∪ black list(j) − {k}<br />
Proměnná k si tedy rozˇsíˇrí seznam black list(k) o podezˇrelé proměnné, které mohly b´yt<br />
zodpovědné za neúspěˇsné ohodnocení následujících proměnn´ych.<br />
Pokud vˇsechny moˇznosti ohodnocení proměnné i jsou neúspěˇsné, tak se odskočí na proměnnou<br />
ze seznamu black list(i), která je nejblíˇze proměnné i.<br />
Problémy s omezujícími podmínkami
pBackjumping<br />
1. Algoritmus úspěˇsně ohodnocuje<br />
proměnné aˇz k<br />
proměnné X6.<br />
2. Návrat na proměnnou X4,<br />
která je z proměnn´ych v<br />
black list(X6) = {X1, X2, X4}<br />
nejblíˇze X6.<br />
3. Nové ohodnocení X4 = f<br />
selˇze, proto<br />
black list(X4) = {X1}.<br />
4. black list(X4) se upraví<br />
a pro návrat se vybere X2.<br />
5. Prohledávání pokračuje nov´ym<br />
ohodnocením proměnné X2.<br />
black list(X4) ←− {X1} ∪ {X1, X2, X4} − {X4}<br />
Problémy s omezujícími podmínkami
pLokální prohledávání pro <strong>CSP</strong><br />
:: Algoritmy lokálního prohledávání <strong>–</strong> iterativní optimalizační algoritmy<br />
pracují s úpln´ymi stavy <strong>–</strong> vˇsechny proměnné mají pˇriˇrazenu nějakou hodnotu,<br />
funkce následník mění hodnotu jedné proměnné.<br />
Pˇríklad: 8-královen na ˇsachovnici<br />
1. počáteční stav je dán náhodn´ym vygenerováním pozic 8 královen v 8 sloupcích; funkce<br />
následník mění libovolně pozici jedné královny v jejím sloupci.<br />
2. počáteční stav je dán náhodn´ym rozmístěním 8 královen, kaˇzdá v jednom sloupci, v permutaci<br />
8 ˇrádk˚u; funkce následník prohodí dvěma královnám jejich ˇrádkové souˇradnice.<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
Problémy s omezujícími podmínkami
pHeuristika minimalizace konflikt˚u<br />
:: Minimalizace konflikt˚u (min-conflicts) <strong>–</strong> pˇri v´yběru nové hodnoty dané proměnné se snaˇzí<br />
minimalizovat počet konflikt˚u s ostatními proměnn´ymi<br />
pro problém n-královen je její časová sloˇzitost nezávislá na n,<br />
ˇreˇsí milion-královen v pr˚uměru na 50 krok˚u,<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
vhodné pro problémy s mnoha ˇreˇseními hustě rozloˇzen´ymi ve stavovém prostoru.<br />
v 90-t´ych letech tento úspěch zp˚usobil boom ve v´yzkumu lokálních opt. algoritm˚u,<br />
plánování akcí Hubbleova teleskopu; redukce času v´ypočtu ze tˇrí t´ydn˚u na 10 minut!!!<br />
efektivní zp˚usob nalezení ˇreˇsení problému pˇri změněn´ych počátečních podmínkách (pˇreplánování).<br />
Problémy s omezujícími podmínkami
pStruktura problému<br />
:: Dekompozice problému<br />
rozdělení problému <strong>CSP</strong> na nezávislé podproblémy<br />
<strong>CSP</strong>i, identifikovatelné jako souvislé komponenty grafu<br />
omezení; pˇr. Tasmánie a Austrálie.<br />
:: Co tím získáme?<br />
Pˇredpokládejme <strong>CSP</strong> s n proměnn´ymi a kaˇzd´y podproblém <strong>CSP</strong>i má c proměnn´ych.<br />
Máme tedy n/c podproblém˚u; kaˇzd´y z nich o velikosti stavového prostoru d c .<br />
Takˇze celková v´ypočetní náročnost je O(d c · n/c), coˇz je lineární sloˇzitost vzhledem k n.<br />
Bez dekompozice je v´ypočetní náročnost O(d n ), coˇz je exponenciální sloˇzitost vzhledem k n.<br />
Pˇríklad: Celkov´y <strong>CSP</strong> o n = 80 je rozdělen na čtyˇri podproblémy, kaˇzd´y o c = 20 proměnn´ych.<br />
Pˇredpokládejme, ˇze umíme spočítat 10 6 uzl˚u/s. Potom dostaneme:<br />
− 4 · 2 20 =⇒ 4s,<br />
− 2 80 =⇒ 4 miliardy let.<br />
Problémy s omezujícími podmínkami
pStruktura problému<br />
:: Dekompozice problému<br />
rozdělení problému <strong>CSP</strong> na nezávislé podproblémy<br />
<strong>CSP</strong>i, identifikovatelné jako souvislé komponenty grafu<br />
omezení; pˇr. Tasmánie a Austrálie.<br />
:: Co tím získáme?<br />
Pˇredpokládejme <strong>CSP</strong> s n proměnn´ymi a kaˇzd´y podproblém <strong>CSP</strong>i má c proměnn´ych.<br />
Máme tedy n/c podproblém˚u; kaˇzd´y z nich o velikosti stavového prostoru d c .<br />
Takˇze celková v´ypočetní náročnost je O(d c · n/c), coˇz je lineární sloˇzitost vzhledem k n.<br />
Bez dekompozice je v´ypočetní náročnost O(d n ), coˇz je exponenciální sloˇzitost vzhledem k n.<br />
Pˇríklad: Celkov´y <strong>CSP</strong> o n = 80 je rozdělen na čtyˇri podproblémy, kaˇzd´y o c = 20 proměnn´ych.<br />
Pˇredpokládejme, ˇze umíme spočítat 10 6 uzl˚u/s. Potom dostaneme:<br />
− 4 · 2 20 =⇒ 4s,<br />
− 2 80 =⇒ 4 miliardy let.<br />
:: Bohuˇzel, reálné problémy neb´yvají takto ”čistě” dekomponovatelné.<br />
Problémy s omezujícími podmínkami
pStromové <strong>CSP</strong><br />
:: <strong>CSP</strong> s grafem omezení neobsahujícím cykly je ˇreˇsiteln´y v lineárním čase O(n).<br />
Pro obecn´y <strong>CSP</strong> je nejhorˇsí časová sloˇzitost (O(d n )).<br />
:: Algoritmus pro stromové <strong>CSP</strong><br />
1. Zvol jednu proměnnou za koˇren stromu (proměnná A) a seˇrad proměnné tak, ˇze kaˇzd´y<br />
rodičovsk´y uzel pˇredchází svoje potomky. Proměnné jsou nyní označeny X1, . . . , Xn, podle<br />
jejich poˇradí v posloupnosti.<br />
2. Projdi proměnné od konce, tj. v poˇradí j = n, . . . , 2, a pro kaˇzdou hranu (Xi, Xj), kde Xi je<br />
rodič Xj, prove ˇ d kontrolu konzistence hrany (Odstraň nevyhovující hodnoty z domény DXi ).<br />
3. Projdi proměnné od začátku, tj. v poˇradí j = 1, . . . , n, a pˇriˇra ˇ d proměnné Xj libovolnou<br />
hodnotu x ∈ DXj , konzistentní s hodnotou Xi, kde proměnná Xi je rodič Xj.<br />
Problémy s omezujícími podmínkami
pJak zaˇrídit stromov´y graf omezení<br />
:: Cycle cutset <strong>–</strong> redukuje obecn´y graf na strom vyloučením co nejmenˇsího počtu uzl˚u<br />
1. Vyber z celkové mnoˇziny proměnn´ych S nejmenˇsí (?) podmnoˇzinu uzl˚u Sa tak, ˇze v´ysledn´y<br />
graf je strom.<br />
2. Pro vˇsechna moˇzná ohodnocení proměnn´ych mnoˇziny Sa, která vyhovují omezením na Sa<br />
odstraň z domén ostatních proměnn´ych Sb = S \ Sa vˇsechny hodnoty, které nevyhovují<br />
ohodnocení proměnn´ych z Sa,<br />
ˇreˇs strom Sb algoritmem pro stromové <strong>CSP</strong>. Pokud je nalezeno konzistentní ˇreˇsení pro<br />
Sb, je v´ysledné ˇreˇsení dáno sjednocením aktuálního ohodnocení proměnn´ych mnoˇziny Sa a<br />
nalezeného ˇreˇsení pro Sb.<br />
c○Russel, Norvig: Artificial Intelligence: A Modern Approach.<br />
Problémy s omezujícími podmínkami
pLiteratura<br />
Stuart Russell and Peter Norvig: Artificial Intelligence: A Modern Approach<br />
Part II Problem Solving<br />
5 <strong>Constraint</strong> <strong>Satisfaction</strong> <strong>Problems</strong> (http://aima.cs.berkeley.edu/2nd-ed/)<br />
Problémy s omezujícími podmínkami