(CSP – Constraint Satisfaction Problems) Jiˇr´ı

(CSP – Constraint Satisfaction Problems) Jiˇr´ı (CSP – Constraint Satisfaction Problems) Jiˇr´ı

cw.felk.cvut.cz
from cw.felk.cvut.cz More from this publisher

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!