27
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek 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.

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

  • Upload
    morela

  • View
    38

  • Download
    3

Embed Size (px)

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 Presentation

Citation preview

Page 1: Korlátkielégítési  problémák

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

Minimum set cover legyen:

minimalizáljuk:

és legyen igaz szintén: minden

Kényszerek

Page 3: Korlátkielégítési  problémák

Diagnosztika

o OK/hibás

Single fault assumption?

Kényszerek

Page 4: Korlátkielégítési  problémák

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

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

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

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

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

Egy példa Forráskód

Page 10: Korlátkielégítési  problémák

Choco 3: Int korlátok Eclipse

Page 11: Korlátkielégítési  problémák

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

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

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

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

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

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

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

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

c sémája (vált. sorozat)

n-es

Probléma-domén

Page 20: Korlátkielégítési  problémák

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

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

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

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

JSR331: Constraint Programming API

Page 25: Korlátkielégítési  problémák

„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

MiniZinc

Page 27: Korlátkielégítési  problémák

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/