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 Kényszerkielégítési problémák
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

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 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 Keresés Tervez A célt keresi

6 Kényszerkielégítési problémák
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 ...

7 Kényszerkielégítési problémák
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?

8 Kényszerkielégítési problémák
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 N-királynő Kényszerek: 1. módszer:
A tábla minden mezőjének egy változó felel meg (Xij). Xij jelöli hogy mi történik az adott mezőn. Dómen:{0,1} Kényszerek:

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

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 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 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 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 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. 867 + 867 1734

16 Példa: kriptoaritmetika

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

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 CSP - DFS

20 CSP - DFS

21 CSP - DFS

22 CSP - DFS

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

24 CSP - DFS . . .

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 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 Backtrack (visszalépéses keresés)

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 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 Forward checking Az SA dómenje üres. Ha SA-hoz akármit rendelünk,
backtrack következik.

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 Szűrés: kényszer propagáció (továbbítás)
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).

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úcs kezdőpont

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 Ág-konzisztencia (arc consistency - AC)
Ez az ág konzisztens (nem kell konzisztenssé tenni) mert egy értékre se a kezdőpontból nem lesz kényszer megszegés.

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 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 A teljes CSP konzisztenciája
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.

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

40 A teljes CSP konzisztenciája
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.

41 A teljes CSP konzisztenciája
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.

42 A teljes CSP konzisztenciája
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.

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

44 Az AC korlátai

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 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