1 / 27

Korlátkielégítési problémák

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.

morela
Download Presentation

Korlátkielégítési problémák

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Minimum set cover • legyen: • minimalizáljuk: • és legyen igaz szintén: minden Kényszerek

  3. Diagnosztika • OK/hibás • Single fault assumption? Kényszerek

  4. Diagnosztika, mint korlátkielégítés • ConstraintSatisfactionProblems • A diagnosztika egyik klasszikus mérnöki eszköze • Probléma-definíció és hatékony (keresés-alapú) megoldás szétcsatolása • Kész, hatékony kereskedelmi és nyílt/ingyenes eszközök

  5. CSP • A CSP(X) séma: • X adattartományésazonértelmezett • korlátok (relációk) X-en • PéldákX-re • X = Q vagy R • lineárisegyenlőségek/egyenlőtlenségek • következtetés:Gausseliminációésszimplexmódszer • X = FD • korlátok = aritmetikaiéskombinatorikusrelációk • következtetés: MI CSP–módszerek • X = B • korlátok = ítéletkalkulusbelirelációk • Következetés: SAT-solving (a BME Nagyhatékonyságú Logikai Programozás kurzusának jegyzete alapján)

  6. CSP(FD) • Formálisan: • CSP = < X,D,C > • X változók halmaza • D értékek doménje • C korlátok halmaza • Korlát: <t, R>, ahol t változó n-es és R egy |t| szignatúrájú reláció • Változók egy lekötése: v: X  D • Egy lekötés kielégít egy <(x1, …, xn), R> korlátot, ha(v(x1), …, v(xn)) R • Egy megoldás egy olyan lekötés, mely minden korlátot kielégít • FD: D végeshalmaz

  7. 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? • xi != xj • xi – xj!= i-j • xj – xi!= i-j

  8. Kényszertípusok • Unáris kényszerek • Megfigyelés: • Bináris kényszerek • … • Globális kényszerek: „kényszerekkonjunkciójából képezett kényszerek” • Struktúra; hatékony filterek

  9. Egy példa • Forráskód

  10. Choco 3: Int korlátok • Eclipse

  11. CSP(FD): kényszerek ábrázolása • Explicit reláció • Algebrai kifejezések • Propozicionális formulák • Kényszer-gráf • Bináris esetben egyszerű gráf („trükkök” nélkül) • A reláció-algebra operációi egyszerűen adódnak!

  12. CSP megoldás • visszalépésesiteratívkeresés (backtracking) • „trashing” veszélye! • Vezérlés? • korlát-terjesztés (constraint propagation) • „tightening” • kényszerhez kötött szűrésen keresztül (filtering) • minél jobb, annál költségesebb • lokáliskeresés (local search) • a gyakorlatbanezekegyüttműködése • Általánosságban: NP-teljesprobléma

  13. 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 • Mélységi keresés • Lekötés, konzisztenciaellenőrzés • Fail: backtracking • Több változat • Változó-sorrendezés • Keresési stratégiák

  14. Visszalépéses keresés - példa • Webreq = WebPing OR WebS • WebPing = R OR WebHW • 1 >= R + WebHW • Webreq = 1

  15. Visszalépéses keresés - példa

  16. Hogyan tegyük ezt hatékonyabbá? • Keresés előtt • Konzisztencia-algoritmusok (N.B. Nem csak előtte) • Alkalmas (fix) változósorrendezés • Keresés közben • „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) • „Hátranéző” megoldások • ...

  17. CSP-megoldás - konzisztencia • Változók/korlátok egy csoportja valamilyen konzisztenciájának fenntartása • 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én • 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

  18. 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ő • i-ben exponenciálisan bonyolult • 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” • Lehet „előre”... • ... vagy minden keresési lépés előtt

  19. c sémája (vált. sorozat) Probléma-domén n-es

  20. Korlát-logikaiprogramozás (kitekintés) • LP: Prolog rezolúció + visszalépés • általánosmodell • CSP: korlát-tár • újkorlátfelvétele: predikátumhívás • "osztott" változók • közösvisszalépés • Prolog meghiúsulás: a tár is visszalép • tárinkonzisztensséválása: visszalépés a legutolsó Prolog choicepoint-ig • tár-konzisztencia: automatikus • keresés: speciálispredikátumok (pl. „labeling”)

  21. CLP(FD) Prolog-ban (kitekintés) • Domének: egészszámokvégeshalmazai • beépítettkorlátok • Aritmetikai, domén/tagsági, propozicionális, kombinatorikai • felhasználóikiterjesztések • indexikálisok • globáliskorlátok • monotonkövetkeztetés • belsőmegvalósítás

  22. Rövid példa: diagnosztika TMR modell felett • Rövid GNU Prologdemo • + az eredeti példánk CLP(FD)-ben

  23. CSP alkalmazása - példák • Önálló • Pl. IBM ILOG CP • Imperatív nyelvbe ágyazva • Java: Choco, Koalog, Jacop, … • C++: Mistral, Minion, GeCode… • Googleor-tools • Deklaratív nyelvbe ágyazva • Sicstus és GNU Prolog, ... • …

  24. JSR331: ConstraintProgramming API

  25. „Global ConstraintCatalog” • http://www.emn.fr/z-info/sdemasse/gccat/ • Példa: atleast_nvalue

  26. MiniZinc

  27. Hivatkozások • [1] Rossi, F., Beek, P. Van, & Walsh, T. (Eds.). (2006). Handbook of Constraint Programming (Vol. 2). Elsevier. • [2] A Choco CSP solverhonalpja: http://www.emn.fr/z-info/choco-solver/ • [3] A MiniZinc és FlatZinc leírónyelvek honlapja: http://www.minizinc.org/

More Related