korlátkielégítési problémák
DESCRIPTION
Korlátkielégítési problémák. Autonóm és hibatűrő információs rendszerek Kocsis Imre ikocsis @ mit.bme.hu 2013.09.30. Minimum set cover. legyen: minimalizáljuk: és legyen igaz szintén: minden. Kényszerek. D iagnosztika. OK/hibás Single fault assumption?. Kényszerek. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/1.jpg)
Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék
Korlátkielégítési problémák
Autonóm és hibatűrő információs rendszerek
Kocsis [email protected]
2013.09.30.
![Page 2: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/2.jpg)
Minimum set cover legyen:
minimalizáljuk:
és legyen igaz szintén: minden
Kényszerek
![Page 3: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/3.jpg)
Diagnosztika
o OK/hibás
Single fault assumption?
Kényszerek
![Page 4: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/4.jpg)
Diagnosztika, mint korlátkielégítés Constraint Satisfaction Problems
A diagnosztika egyik klasszikus mérnöki eszköze
Probléma-definíció és hatékony (keresés-alapú) megoldás szétcsatolásao Kész, hatékony kereskedelmi és nyílt/ingyenes
eszközök
![Page 5: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/5.jpg)
CSP
A CSP(X) séma:o X adattartomány és azon értelmezett o korlátok (relációk) X-en
Példák X-reo X = Q vagy R
• lineáris egyenlőségek/egyenlőtlenségek • következtetés: Gauss elimináció és szimplex módszer
o X = FD • korlátok = aritmetikai és kombinatorikus relációk• következtetés: MI CSP–módszerek
o X = B• korlátok = ítéletkalkulusbeli relációk • Következetés: SAT-solving
(a BME Nagyhatékonyságú Logikai Programozás kurzusának jegyzete alapján)
![Page 6: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/6.jpg)
CSP(FD) Formálisan:
o CSP = < X,D,C >o X változók halmazao D értékek doménjeo C korlátok halmazao Korlát: <t, R>, ahol t változó n-es és R egy |t| szignatúrájú
relációo Változók egy lekötése: v: X Do Egy lekötés kielégít egy <(x1, …, xn), R> korlátot, ha (v(x1), …,
v(xn)) Ro Egy megoldás egy olyan lekötés, mely minden korlátot kielégít
o FD: D véges halmaz
![Page 7: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/7.jpg)
8-queens Cél: 8 királynő, egyik se
támadja valamely másikat
Változók: királynő pozíciója a sorokban vagy oszlopokban
Domainek: 1…8
Korlátok?o xi != xj
o xi – xj != i-jo xj – xi != i-j
![Page 8: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/8.jpg)
Kényszertípusok Unáris kényszerek
oMegfigyelés: Bináris kényszerek
… Globális kényszerek: „kényszerek konjunkciójából
képezett kényszerek”
o Struktúra; hatékony filterek
![Page 9: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/9.jpg)
Egy példa Forráskód
![Page 10: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/10.jpg)
Choco 3: Int korlátok Eclipse
![Page 11: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/11.jpg)
CSP(FD): kényszerek ábrázolása Explicit reláció Algebrai kifejezések Propozicionális formulák Kényszer-gráf
o Bináris esetben egyszerű gráf („trükkök” nélkül)
A reláció-algebra operációi egyszerűen adódnak!
![Page 12: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/12.jpg)
CSP megoldás
visszalépéses iteratív keresés (backtracking)o „trashing” veszélye!o Vezérlés?
korlát-terjesztés (constraint propagation)o „tightening”o kényszerhez kötött szűrésen keresztül (filtering)o minél jobb, annál költségesebb
lokális keresés (local search)
a gyakorlatban ezek együttműködése Általánosságban: NP-teljes probléma
![Page 13: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/13.jpg)
CSP megoldás - visszalépéses iteratív keresés
Változó kiválasztása Döntési pont: változó lehetséges értékei
o Mélységi keresés Lekötés, konzisztenciaellenőrzés Fail: backtracking
Több változato Változó-sorrendezéso Keresési stratégiák
![Page 14: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/14.jpg)
Visszalépéses keresés - példa
Webreq = WebPing OR WebS WebPing = R OR WebHW 1 >= R + WebHW Webreq = 1
![Page 15: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/15.jpg)
Visszalépéses keresés - példa{}
{Webreq=1}
{Webreq=1,Webping = 0}
{Webreq=1,Webping = 0,
WebS=0}
{Webreq=0}X
X{Webreq=1,
Webping = 0,WebS=1}
{Webreq=1,Webping = 0,
WebS=1,R=0}
{Webreq=1,Webping = 0,
WebS=1,R=0,
WebHW=0}
![Page 16: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/16.jpg)
Hogyan tegyük ezt hatékonyabbá? Keresés előtt
o Konzisztencia-algoritmusok (N.B. Nem csak előtte)o Alkalmas (fix) változósorrendezés
Keresés közbeno „Előrenéző” megoldások• Értékrendezés („legkevésbé megszorító” érték választása)• Változórendezés (a „legjobban megszorító” változó
választása)o „Hátranéző” megoldások• ...
![Page 17: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/17.jpg)
CSP-megoldás - konzisztencia Változók/korlátok egy csoportja valamilyen
konzisztenciájának fenntartásao Cél: keresési tér szűkítése
Csomópont (node): unáris korlát teljesül az érintett változó doménjéno X < 23
Él (arc): egy változó élkonzisztens egy másikkal, ha minden megengedett értékéhez létezik a másiknak megengedett értéke
![Page 18: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/18.jpg)
Konzisztencia i-konzisztencia: i-1 változó konzisztens egy i-
edikkel, ha az i-1 minden konzisztens lekötése az i-edikben konzisztensen kiterjeszthetőo i-ben exponenciálisan bonyolulto Erős i-konzisztencia: minden j <= i-re j-konzisztencia
Terjesztés: (informálisan) a konzisztencia kikényszerítésének szükségessége változóról változóra „terjed”o Lehet „előre”...o ... vagy minden keresési lépés előtt
![Page 19: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/19.jpg)
c sémája (vált. sorozat)
n-es
Probléma-domén
![Page 20: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/20.jpg)
Korlát-logikai programozás (kitekintés)
LP: Prolog rezolúció + visszalépés általános modell CSP: korlát-tár
o új korlát felvétele: predikátum híváso "osztott" változóko közös visszalépés• Prolog meghiúsulás: a tár is visszalép• tár inkonzisztenssé válása: visszalépés a legutolsó Prolog
choicepoint-igo tár-konzisztencia: automatikuso keresés: speciális predikátumok (pl. „labeling”)
![Page 21: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/21.jpg)
CLP(FD) Prolog-ban (kitekintés) Domének: egész számok véges halmazai beépített korlátok
o Aritmetikai, domén/tagsági, propozicionális, kombinatorikaio felhasználói kiterjesztések
• indexikálisok• globális korlátok
monoton következtetés belső megvalósítás
![Page 22: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/22.jpg)
Rövid példa: diagnosztika TMR modell felett Rövid GNU Prolog demo
+ az eredeti példánk CLP(FD)-ben
![Page 23: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/23.jpg)
CSP alkalmazása - példák Önálló
o Pl. IBM ILOG CP
Imperatív nyelvbe ágyazvao Java: Choco, Koalog, Jacop, …o C++: Mistral, Minion, GeCode…o Google or-tools
Deklaratív nyelvbe ágyazvao Sicstus és GNU Prolog, ...o…
![Page 24: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/24.jpg)
JSR331: Constraint Programming API
![Page 25: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/25.jpg)
„Global Constraint Catalog” http://www.emn.fr/z-info/sdemasse/gccat/ Példa: atleast_nvalue
![Page 26: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/26.jpg)
MiniZinc
![Page 27: Korlátkielégítési problémák](https://reader035.vdocuments.mx/reader035/viewer/2022062800/56814093550346895dac25b4/html5/thumbnails/27.jpg)
Hivatkozások [1] Rossi, F., Beek, P. Van, & Walsh, T. (Eds.).
(2006). Handbook of Constraint Programming (Vol. 2). Elsevier.
[2] A Choco CSP solver honalpja: http://www.emn.fr/z-info/choco-solver/
[3] A MiniZinc és FlatZinc leírónyelvek honlapja: http://www.minizinc.org/