Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Kényszerkielégítési problémák Constraint Satisfaction Problems (CSP)

Hasonló előadás


Az előadások a következő témára: "Kényszerkielégítési problémák Constraint Satisfaction Problems (CSP)"— Előadás másolata:

1 Kényszerkielégítési problémák Constraint Satisfaction Problems (CSP)

2 2 Keresés: -1 ágens (nincs ellenfél) - determinisztikus cselekvések (nincs bizonytalanság) - a világ teljesen megfigyelhető - a keresési tér diszkrét Kényszerkielégítési problémák

3 3 Keresés ► Tervezés: cselekvések sorozata (pl. hogyan kijutni a labirintusból). ► Nem csak a megoldást keressük, hanem inkább az odavezető utat (tervezés). ► Az utaknak költségük, mélységük,... van. ► A keresés gyorsitásához heurisztikát használunk (pl. A*).

4 4 Keresés ► A keresés másik osztálya az identifikációs feladatok (a változókhoz értékeket rendelünk). ► Fontos a cél, nem pedig az odavezető út. ► A CSP-k az identifikációs feladatok megoldására szolgálnak.

5 5 Keresés TervezA célt keresi

6 6 Alkalmazások: ► Hozzárendelési feladatok (pl. ki melyik tantárgyat fogja oktatni) ► Órarendkészítés (mikor és melyik labiban lesz melyik tantárgy) ► Szállítás – ütemezés ► Gyárban: termelés ütemezése... Kényszerkielégítési problémák

7 7 ► A CSP nem más mint keresés, a megoldáshoz keresőalgoritmusokat használunk. ► Elemek:  Állapot – részleges hozzárendelés  Inicializáció – üres hozzárendelés: { }  Állapotátmenet függvény: nem hozzárendelt változóhoz értéket rendel  Célteszt – A pillanatnyi hozzárendelés teljes? Ki van-e elégítve az összes kényszer? Kényszerkielégítési problémák

8 8 A keresés speciális esete. Egy állapotot az Xi változók definiálnak. A változók értékei egy D dómenból vehetik fel értékeiket. A célteszt: kényszerek halmaza melyek a változók kombinációinak lehetséges értékeit jelölik. CSP algoritmusokkal a keresési feladatokat hatékonyabban lehet megoldani.

9 9 N-királynő 1. módszer: A tábla minden mezőjének egy változó felel meg (X ij ). X ij jelöli hogy mi történik az adott mezőn. Dómen:{0,1} Kényszerek:

10 10 N-királynő 2. módszer: Változók: Q k (minden sornak egy változója van) Dómen:{1, 2, 3,..., N} Minden sor tartalmaz királynőt (Q 1 az első sor változója, azt jelöli hogy hol a királynő az 1. sorban) 1. sorban) Kényszerek: Implicit:Explicit: nem támadják egymást

11 11 Példa: Térképszínezés ► Változók: WA, NT, Q, NSW, V, SA, T ► Dómenok: D={piros, zöld, kék} ► Kényszerek: a szomszédos területek nem lehetnek egyforma színűek Implicit: WA ≠ NT Ekszplicit: (WA, NT) € {(piros,zöld), (piros,kék),...} ► A megoldás a változók olyan hozzárendelése amely az összes kényszert kielégíti, pl.: {WA=piros, NT=zöld, Q=piros, NSW=zöld, V=piros, SA=kék, T=zöld} A megoldás nem egyértelmű, van más helyes hozzárendelés is.

12 12 Példa: Térképszínezés Kényszertipusok: ► Unáris kényszerek: csak egy változót érintenek (pl. SA ≠ zöld) ► Bináris kényszerek: két változót érintenek (pl. SA ≠ WA) ► Magasabb rendű kényszerek

13 13 Kényszergráf ► Bináris CSP: minden kényszer (legfeljebb) két változót hoz összefüggésbe. ► Bináris kényszergráf: a csomópontok a változók, az élek mutatják a kényszereket. ► Az általános célú CSP algoritmusok a keresés gyorsításához gráfot használnak (Taszmánia különálló részfeladat).

14 14 Példa: kriptoaritmetika ► Változók: F, T, U, W, R, O, X1, X2, X3 ► Dómenok: {0,1,2,3,4,5,6,7,8,9} ► Kényszerek: alldiff (F,T,U,W,R,O) O + O = R + 10 * X1... A négyzetek magasabbrendű kényszereket jelölnek.

15 15 Példa: kriptoaritmetika ► Változók: F, T, U, W, R, O, X1, X2, X3 ► Dómenok: {0,1,2,3,4,5,6,7,8,9} ► Kényszerek: alldiff (F,T,U,W,R,O) O + O = R + 10 * X A négyzetek magasabbrendű kényszereket jelölnek.

16 16 Példa: kriptoaritmetika

17 17 CSP ► Szélességi keresés A megoldások az legalsó mélységen vannak!

18 18 CSP ► Mélységi keresés Gyorsan lejut a legalsó szintre és megtalál egy teljes hozzárendelést (nem biztos, hogy kielég í ti a kényszereket).

19 19 CSP - DFS

20 20 CSP - DFS

21 21 CSP - DFS

22 22 CSP - DFS

23 23 CSP - DFS Most kezdjük ellenőrizni a kényszereket.

24 24 CSP - DFS...

25 25 CSP - DFS ► A klasszikus DFS csak nagyon hosszú idő után vezet megoldásra. ► Miután leraktuk a második királynőt, észrevettük, hogy van támadás, de a rossz stratégia ellenére haladtunk tovább....

26 26 Backtrack (visszalépéses keresés) Alapvető nem-informált keresés a CSP megoldására. Első ötlet: egyszerre csak egy változóhoz rendelünk értéket. Második ötlet: a kényszereket menet közben ellenőrizzük. DFS + Első ötlet + Második ötlet = Backtrack

27 27 Backtrack (visszalépéses keresés)

28 28 Backtrack Hatékonyság javítása ► Ordering (sorbaállítás): - melyik változóhoz rendeljünk értéket? - milyen sorrendben próbáljuk hozzárendelni az értékeket? ► Filtering (szűrés): - menet közben detektálni hogy nem lesz megoldás. - A nem hozzárendelt változók dómenjében megkeresni azokat az elemeket amelyeket biztonságosan el lehet távolítani.

29 29 Forward checking ► Szűrés: nyilvántartjuk a nem hozzárendelt változók dómenjét, és eliminálunk (szűrünk). ► Forward Checking-nél azokat az értékeket húzzuk ki amelyek megszegik a kényszert. ► Kezdetben egy változó sincs hozzárendelve.

30 30 Forward checking Az SA dómenje üres. Ha SA-hoz akármit rendelünk, backtrack következik.

31 31 Szűrés: kényszer propagáció (továbbítás) A forward checking a hozzárendelt változóktól továbbítja az információt a nem hozzárendeltek felé, de nem garantálja az összes hiba korai detektálását. NT és SA nem lehetnek mind a ketten kékek!!!

32 32 Minden változónak van még engedélyezett értéke (egy mező sem üres). NT és SA is csak kék lehet (kényszer megszegés). Jó volna már most detektálni, hogy hiba lesz és azonnal backtrack-elni, nem pedig később. Megoldás: ARC CONSISTENCY (ág-konzisztencia). Szűrés: kényszer propagáció (továbbítás)

33 33 Ág-konzisztencia (arc consistency - AC) ► Szűrési algoritmusoknál használjuk ► X Y konzisztens vagy nem? ► Egy ág akkor konzisztens ha nincs kényszer- megszegés Definició. Az X Y ág akkor és csak akkor konzisztens ha minden x értékre a kezdőpontból létezik olyan y a csúcsban amelyhez értéket lehet rendelni anélkül, hogy megszegnénk egy kényszert csúcskezdőpont

34 34 Ág-konzisztencia (arc consistency - AC) A megjelölt ág nem konzisztens (piros), de konzisztenssé tehetjük (töröljük a pirosat). Mindig a kezdőpont-ból törlünk!!!

35 35 ► Ez az ág konzisztens (nem kell konzisztenssé tenni) mert egy értékre se a kezdőpontból nem lesz kényszer megszegés. Ág-konzisztencia (arc consistency - AC)

36 36 Ág-konzisztencia (arc consistency - AC) Ellenőrizzük, hogy a csomagtérben van-e valami ami megszegi valamelyik kényszert. Ha van, akkor kivesszük. Mindig a kezdőpontból törlünk!

37 37 A teljes CSP konzisztenciája ► A CSP akkor konzisztens ha az összes ág konzisztens. ► A forward checking nem detektálta a hibát (NT és SA nem lehetnek egyszerre kékek).

38 38 ► Leellenőrizzük az összes ág konzisztenciáját, és ha az ág nem konzisztens, törlünk a kezdőpontból hogy konzisztenssé tegyük. ► Ez az ág konzisztens. A teljes CSP konzisztenciája

39 39 ► Ez az ág is konzisztens. A teljes CSP konzisztenciája ► Ez az ág nem konzisztens (kék - kitöröljük).

40 40 ► Am í g nem töröltük ki a kéket, ez az ág konzisztens volt, de többé nem konzisztens mert értéket vesztett a csúcsból. ► Ahhoz hogy az ág újra konzisztens legyen, a V dómenjéből törölni kell a pirosat. A teljes CSP konzisztenciája

41 41 ► A forward checking ezt nem detektálta, az AC viszont korábban észrevette hogy ellentmondás lesz (töröljük SA dómenjéből a kéket). ► Amikor egy változó dómenje üres marad, backtrack következik. A teljes CSP konzisztenciája

42 42 ► Ha az X változó értéket veszít a dómenjéből, a szomszédait újra kell ellenőrizni. ► Az AC korábban detektálja a hibát mint a Forward Checking. ► Többet kell ellenőrizni mint a Forward Checking-nél (minden lépés le van lassítva), de kevesebbet kell backtrack-elni. ► Összesítve gyorsabban jutunk el a megoldásig. A teljes CSP konzisztenciája

43 43 ► A megismert algoritmus csak bináris CSP-re vonatkozik ahol egy kényszer csak két változót foglal magába. A teljes CSP konzisztenciája

44 44 Az AC korlátai

45 45 Az AC korlátai ► Mi történhet az AC kényszeritése után: Egy megoldás marad. Több megoldás marad. Nem marad megoldás (és ezt nem tudjuk).

46 46 Az AC korlátai ► Minden ág konzisztens (a teljes CSP konzisztens), 2 megoldás van. ► Minden ág konzisztens (a teljes CSP konzisztens), nincs megoldás. ► Az AC a hibák csak egy részét detektálja. Megoldás: k-konzisztencia.


Letölteni ppt "Kényszerkielégítési problémák Constraint Satisfaction Problems (CSP)"

Hasonló előadás


Google Hirdetések