A rendszerszintű diagnosztika alapjai
Alapfogalmak Diagnosztika: több jelentés, ált. kontextus tisztázza Aspektusok Detektálás: hibahatás(/hibaok) jelenlétének felismerése Lokalizálás: hibaokok lehetséges halmazának szűkítése Izoláció: specifikus hibaok feltárása Ált. javító akciók granularitásáig Rendszerszintű diagnosztika: hierarchia!
Diagnosztika A diagnosztika támogatására teszteket használunk Az elméletileg lehetséges tesztek száma általában igen nagy Elektronika vs szoftverrendszerek? Offline vs online? Szekvenciális vs párhuzamos tesztelés? |I| teszt, m kimenet mindegyiknél. Lehetséges szekvenciák száma?
Diagnosztika Hány hibafát tudunk felállítani |I| teszt, m kimenet esetén? c = | C | konklúzió (hibaok esetén) esetén hány többszörös konklúzió lehetséges?
Diagnózis, mint információfúzió Összes diagnosztika válasz domainje Test a-val konzisztens konklúziók Test c-vel konzisztens konklúziók Test b-vel konzisztens konklúziók Mindhárommal konzisztens
Diagnózis, mint információfúzió F: konklúziók halmaza H: lehetséges konklúziók bármely pillanatban Kezdetben: F = H Hi: F ti-re vonatkozó részhalmaza Igaz-e ez… A „single failure” feltételezés sérülésekor? False alarm-ok? Diagnosztikai konklúziók nem megfelelő leképezése? …
Diagnózis, mint információfúzió Összes diagnosztika válasz domainje Test a-val konzisztens konklúziók Test c-vel konzisztens konklúziók Test b-vel konzisztens konklúziók
Diagnózis, mint információfúzió Bármely teszt által gyanún kívül helyezett hipotézisek eldobása (praktikusan: mi az, ami biztosan nem romlott el?)
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ása Kész, hatékony kereskedelmi és nyílt/ingyenes eszközök Itt: rövid bevezetés, CLP kitekintéssel
CSP A CSP(X) séma: Példák X-re X adattartomány és azon értelmezett korlátok (relációk) X-en Példák X-re X = Q vagy R lineáris egyenlőségek/egyenlőtlenségek következtetés: Gauß elimináció és szimplex módszer X = FD korlátok = aritmetikai és kombinatorikus relációk következtetés: MI CSP–módszerek 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)
CLP(FD) = LP + 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éges halmaz
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
EPA: CLP(FD) reprezentáció Változók Bemeneti/kimeneti szindrómák Belső hibamódok Domének Bementi/kimeneti szindrómanyelvek Belső hibamódhalmazok Korlátok Terjesztési szabályok belső hibamódokkal modulálva Topológia: kimenetek és bementek egyenlősége Megoldás Lehetséges teljes diagnosztikai kép részleges diagnosztikai képből Vagy teljesebb részleges részlegesből CSP-ben nincs „előre” és „visszafele” következtetés! Hatásanalízis és diagnosztika keverhető
CSP megoldás visszalépéses iteratív keresés (backtracking) korlát-terjesztés (constraint propagation) lokális keresés (local search) a gyakorlatban ezek együttműködése Általánosságban: NP-teljes probléma
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 Lekötés, konzisztenciaellenőrzés Backtracking vagy CALL változó kiválasztása Több változat Változó-sorrendezés Keresési stratégiák Kiaknázhatóságuk?
CSP-megoldás - korlát-terjesztés Változók/korlátok egy csoportja valamilyen konzisztenciájának fenntartása Cél: keresési tér szűkítése Általános lokális konzisztencia-megoldások 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 i-konzisztencia: i-1 lokálisan konzisztens változó konzisztens minden az i-1 változó és bármely i-edik változó közötti korláttal i-ben exponenciálisan bonyolult Terjesztés: (informálisan) a konzisztencia kikényszerítésének szükségessége változóról változóra „terjed”
Korlát-logikai programozás (kitekintés) LP: Prolog rezolúció + visszalépés általános modell CSP: korlát-tár új korlát felvétele: predikátum hívás "osztott" változók 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-ig tár-konzisztencia: automatikus keresés: speciális predikátumok (pl. „labeling”)
CLP(FD) Prolog-ban (kitekintés) Domének: egész számok véges halmazai beépített korlátok Aritmetikai, domén/tagsági, propozicionális, kombinatorikai felhasználói kiterjesztések indexikálisok globális korlátok monoton következtetés belső megvalósítás
Rövid példa: diagnosztika TMR modell felett Rövid GNU Prolog demo