470 likes | 535 Views
Explore a formalization framework for diagnoses based on conflict sets, minimizing diagnostic inefficiencies in DNSB models. Learn about hitting sets and efficient diagnosis derivation techniques.
E N D
College 10:Berekenen van diagnoses Derivation from Normal Structure and Behaviour diagnosis DNSB-diagnose-model • nieuwe formalisatie • Hittingsets algoritme Artikel: A Theory of Diagnosis from First Principles R. Reiter
Herhaling DNSB Diagnositisch redeneersysteem op basis van “first principles”: • beschrijving van het systeem • structuurmodel • gedragsmodellen van de componenten • observaties • geen heuristische info over foutgedrag
Herhaling DNSB Diagnoseprobleem: discrepantie tussen(1) voorspelde gedrag van het systeem als alle componenten correct zijn verondersteld(2) geobserveerd gedrag Probleem identificeren van “niet-correcte” componenten die de discrepantie verklaren. NB: - meerdere alternatieve diagnoses - multiple fault diagnoses
Berekenen van diagnoses • alle diagnoses voor (SD,COMP,OBS) • generatie/test-mechanisme: • genereer alle diagnoses mbv. COMP, eerst de diagnoses met minamale cardinaliteit. • test consistentie van diagnose :SD OBS {ab(c)c COMP \ } Probleem: te inefficiënt bij groot aantal componten Nu: nieuwe formalisatie van diagnoses op basis van “conflict sets”.
Definities • conflict set:een set componenten die niet samen normaal kunnen functioneren gegeven (OBS,SD,COMP)SD OBS {ab(ci), …,ab(ck)} is inconsistent merk op: superset van een conflict set is een conflict set • => minimal conflict sets
2 mult-1 12 4 add-1 3 mult-2 12 2 add-2 mult-3 3 Voorbeeld conflict set: {mult-1,mult2,add-1}, {mult-3,mult-2,add-2} geenconflict set: {mult-1}, {add-1}
Alternatieve diagnose-definitie diagnose is een minimale set zodanig dat COMP\ geen conflict set is (en dus samen correct zijn).SD OBS {ab(c)c COMP \ }is consistent
2 mult-1 12 4 add-1 3 mult-2 12 2 add-2 mult-3 3 Voorbeeld eenminimale is {mult-1,mult-3} COMP \ is{mult-2,add-1,add-2} isgeen conflict{mult-2, add-1, add-2} kunnen samen normaal werken
Hittingsets • Def: hittingset van {S1,…,Sn} bevat van iedere set Si minstens 1 element. • H: hittingset van CC: set van sets: {S1,…,Sn}S: {ci,…ck}H S zodat HS • minimale hittingset S C
Voorbeeld hittingset Wat is een hittingset van {{a,b},{b,c,d},{e}}? • {a,c,e} • {a,d,e} • {a,c} • {b,e} • {e} • {a,b,c,d,e}
Diagnose-definitie • is een diagnoseiff is een minimale hittingset voor de conflicts van (SD,OBS,COMP) • is een diagnoseiff is een minimale hittingset voor de minimale conflicts van (SD,OBS,COMP)
1 XOR1 XOR2 1 0 1 AND2 OR1 0 AND1 Voorbeeld • (min.) conflict sets: {xor1,xor2},{xor1,and2,or1} • SD OBS {ab(xor1), ab(xor2)}is inconsistent • SD OBS {ab(xor1), ab(and2), ab(or1)}is inconsistent
1 XOR1 XOR2 1 0 1 AND2 OR1 0 AND1 Voorbeeld hittingset: Wat zijn de minimale hittingsets van de set van minimale conflicts? Dus: Wat zijn de diagnoses van(SD,COMP,OBS)? Minimale hittingsets van {{xor1,xor2},{xor1,and2,or1}}?
Berekenen van hittingsets • bepalen van een minimale hittingset voor een willekeurige set. Merk op: algemene technische benadering (hittingsets) toegepast op diagnose “willekeurige set” minimale conflicts“minimale hittingset” diagnose
HS-tree F is een verzameling van verzamelingen: {{..},{..},…,{..}} HS-tree voor F is: de kleinste boom met de eigenschappen: (1) als n een knoop is van T dan H(n) = verzameling labels van het pad n root (2) als n een knoop is met label √ dan zijn er geen opvolgers
HS-tree HS-tree voor F is: de kleinste boom met de eigenschappen: (1) als n een knoop is van T dan H(n) = verzameling labels van het pad n root (2) als n een knoop is met label √ dan zijn er geen opvolgers (3) als label(n)=, waarbij F, dan is er voor iedere een opvolger vanuit n (n) met label(n n)=. • label(n)= S, waarbij S F zodat S H(n )= {}. • label (n) = √ als er geen S is, waarbij S F zodat S H(n )= {}
{2,4,5} 2 4 5 {1,3,5} {2,3,5} {2,4,6} 1 2 4 6 2 3 5 3 5 v {1,6} {1,6} {1,3,5} {1,6} {1,2,3} {1,6} {1,2,3} {1,6} 1 6 1 6 1 3 3 5 1 6 1 2 1 6 1 6 1 2 3 v v v v v v {1,6} {1,6} v v v {1,6} {1,6} v v v {1,2,3} {2,4} {2,4} v 1 1 6 1 6 1 6 4 2 1 6 3 2 2 4 v v v v v v v v v v v v v v v HS-tree voor F={{2,4,5},{1,2,3},{1,3,5},{2,4,6},{2,4},{2,3,5},{1,6}}
Resultaat • als n een knoop is met label √ danH(n) is een hittingset voor F • iedere minimale hittingset voor F is een H(n), waarbij label(n)=√ NB: H(n) met label(n)=√ zijn niet alle hittingsets, maar bevatten wel alle minimale hittingsets.
HS-tree voor F={{2,4,5},{1,2,3},{1,3,5},{2,4,6},{2,4},{2,3,5},{1,6}} {2,4,5} 2 4 5 minimale hittingset {1,3,5} {2,3,5} {2,4,6} 1 2 4 6 2 3 5 3 5 v {1,6} {1,6} {1,3,5} {1,6} {1,2,3} {1,6} {1,2,3} {1,6} 1 6 1 6 1 3 3 5 1 6 1 2 1 6 1 6 1 2 3 v v v v v v {1,6} {1,6} v v v {1,6} {1,6} v v v {1,2,3} {2,4} {2,4} v 1 1 6 1 6 1 6 4 2 1 6 3 2 2 4 v v v v v v v v v v v v v v v hittingsetgeen minimale hittingset
Algoritme voor HS-tree Doel: zoeken naar een algoritme voor het genereren van HS-tree Eigenschappen: • zo klein mogelijke HS-tree • HS-tree met alle minimale hittingsets • minimaliseren van het aantal aanroepen naar F voor het genereren van een subtree Aanroep naar F: = bepalen van een label van een knoop = zoeken van een S zodanig dat S H(n)= {}.
Diagnose-toepassing • F is set van alle conflicts voor (SD,COMP,OBS) aanroep naar F is duur! • F niet expliciet gegeven, maar impliciet • Aanroep naar F is een berekening van een conflict set
Verminderen van F-aanroepen Minder aanroepen door: • herbruiken van knoop-labels • geen redundante F-aanroepen • eigenschap van hittingset
S S Verminderen van F aanroepen 1. Herbruiken van knoop-labels idee: gebruik dezelfde S indien dat mogelijk is (scheelt opzoeken van een nieuwe S)
{2,4,5} 2 4 5 {1,3,5} {2,3,5} {2,4,6} 1 2 4 6 2 3 5 3 5 v {1,6} {1,6} {1,3,5} {1,6} {1,2,3} {1,6} {1,2,3} {1,6} 1 6 1 6 1 3 3 5 1 6 1 2 1 6 1 6 1 2 3 v v v v v v {1,6} {1,6} v v v {1,6} {1,6} v v v {1,2,3} {2,4} {2,4} v 1 1 6 1 6 1 6 4 2 1 6 3 2 2 4 v v v v v v v v v v v v v v v 1. herbruiken van knoop-labels HS-tree voor F={{2,4,5},{1,2,3},{1,3,5},{2,4,6},{2,4},{2,3,5},{1,6}} {1,3,5} X
Verminderen van F-aanroepen 2. Redundantie Als er een knoop ni met een labelis en nj heeft nog geen label en H(ni) = H(nj) nj is redundant, dus “sluiten”
{2,4,5} 2 4 5 {1,3,5} {2,3,5} {2,4,6} 1 2 4 6 2 3 5 3 5 v {1,6} {1,6} {1,3,5} {1,6} {1,2,3} {1,6} {1,2,3} {1,6} 1 6 1 6 1 3 3 5 1 6 1 2 1 6 1 6 1 2 3 v v v v v v {1,6} {1,6} v v v {1,6} {1,6} v v v {1,2,3} {2,4} {2,4} v 1 1 6 1 6 1 6 4 2 1 6 3 2 2 4 v v v v v v v v v v v v v v v 2. redundantie van knopen HS-tree voor F={{2,4,5},{1,2,3},{1,3,5},{2,4,6},{2,4},{2,3,5},{1,6}} H(n)={2,5} H(n)={4,5} v v
Verminderen van F-aanroepen:3a. eigenschap van hitting set gebruiken Knoop n met label is een hittingset voor F. Knoop n’ met H(n) H(n’) kan geen minimale hittingset zijn! n’ knoop “sluiten”
{2,4,5} 2 4 5 {1,3,5} {2,3,5} {2,4,6} 1 2 4 6 2 3 5 3 5 v {1,6} {1,6} {1,3,5} {1,6} {1,2,3} {1,6} {1,2,3} {1,6} 1 6 1 6 1 3 3 5 1 6 1 2 1 6 1 6 1 2 3 v v v v v v {1,6} {1,6} v v v {1,6} {1,6} v v v {1,2,3} {2,4} {2,4} v 1 1 6 1 6 1 6 4 2 1 6 3 2 2 4 v v v v v v v v v v v v v v v label(n)= en H(n) H(n’) HS-tree voor F={{2,4,5},{1,2,3},{1,3,5},{2,4,6},{2,4},{2,3,5},{1,6}} H(n)={2,1} X geen F-aanroep voor bepalen van “v”! H(n)={2,3,1}
Verminderen F-aanroepen3b. eigenschap van hitting set gebruiken • Gebruik eigenschap van min. hitting sets:S F S’ F S S’ F \ {S’} heeft dezelfde min. hitting sets als F her-labellen van een boom zodra je zo’n knoop S tegenkomt (kan overigens niet wanneer conflicts minimaal zijn). Een hele subboom van S’ is redundant! F eerst scannen op subsets? Nee, we willen juist niet eerst alle conflict sets genereren!
{2,4,5} 2 4 5 {1,3,5} {2,3,5} {2,4,6} 1 2 4 6 2 3 5 3 5 v {1,6} {1,6} {1,3,5} {1,6} {1,2,3} {1,6} {1,2,3} {1,6} 1 6 1 6 1 3 3 5 1 6 1 2 1 6 1 6 1 2 3 v v v v v v {1,6} {1,6} v v v {1,6} {1,6} v v v {1,2,3} {2,4} {2,4} v 1 1 6 1 6 1 6 4 2 1 6 3 2 2 4 v v v v v v v v v v v v v v v Gebruik van hittingset-eigenschap HS-tree voor F={{2,4,5},{1,2,3},{1,3,5},{2,4,6},{2,4},{2,3,5},{1,6}}
Algoritme voor HS-tree (1) genereer breadth-first, left-to-right (2) herbruik knoop-labels (3) tree “pruning” • als label(n)= en H(n)H(n’) dan “sluit” n’ • als knoop n en n’ zijn gegenereerd en H(n’) = H(n) dan “sluit” n’ (X) • als label(n)=S en label(n’)=S’ en S S’ danvoor alle S’ \ S is een redundante subboom. (-cutting-)
{2,4,5} 2 4 5 {1,3,5} {2,3,5} {2,4,6} 1 2 4 6 1 3 5 3 5 v {1,6} {1,6} {2,3,5} {1,6} {1,6} x {1,2,3} x 1 6 1 6 2 3 3 5 1 6 1 6 1 x v x v x v v v {1,2,3} v {2,4} x 1 2 minimale hittingsets x x NB: aantal F-aanroepen van 47 naar 13! Algoritme HS-tree voor F={{2,4,5},{1,2,3},{1,3,5},{2,4,6},{2,4},{2,3,5},{1,6}} Cutting {1,3,5} x 3 x
algoritme HS-tree • F: {{..},{..},…,,{..}} • T: “pruned” HS-tree voor F {H(n) | n is een knoop van T en label(n)= } = set van minimale hittingsets voor F = set van diagnoses
Berekenen van diagnoses (1) bereken F: alle conflict sets voor (SD,OBS,COMP) (2) gebruik methode van “pruned” HS-tree voor berekenen van minimale hittingsets. (3) return {H(n) | n is knoop met label } Probleem: onmogelijk berekenen van alle conflicten F berekenen tijdens constructie HS-tree
Label geven aan een knoop • herbruiken van de vorige S-label voor n indien H(n) S = {} • doorzoeken van F voor S zodat H(n) S = {}. aanroep naar F Niet noodzakelijk: expliciet gegeven F
TP-functie (Theorem Prover) TP-functie: • input: SD,COMP,OBS • output: a conflict set S for SD,COMP,OBS Eigenschap: TP(SD,COMP\H(n),OBS) levert een conflict set S voor (SD,COMP,OBS) waarbij H(n) S = {}
In algoritme Aanroep naar F • label n: TP(SD,COMP\H(n),OBS)H(n): knopen van n root zijn al abnormaal (al deel van de diagnose) NB: TP genereert een `volgorde’ van conflicts.
Diagnose-algoritme diagnose(SD, Comp, OBS) Stap 1: • Gebruik methode van “pruned” HS-tree voor berekenen van minimale hittingsets. • Vervang de F-aanroep met een TP-aanroep(Comp\H(n)) Stap 2: • return minimale hittingsets van HS-tree.Dus return: {H(n) | n is knoop met label }
1 XOR X1 XOR X2 1 0 TP(SD,{X1,X2,A1,A2,O1},OBS) 1 AND A2 OR O1 0 AND A1 TP(SD,{X1,A1,A2,O1},OBS) {X1,X2} X2 X1 v {X1,A2,O1} TP(SD,{X2,A1,A2,O1},OBS) diagnose X1 O1 A2 pruning regel x v v TP(SD,{X1,A1,A2},OBS) TP(SD,{X1,A1,O1},OBS) Voorbeeld NB: 5 aanroepen naar TP boom afhankelijk van TP-functie
Diagnoses • wanneer HS-tree breath-first gegenereerd wordt diagnoses worden in volgorde van groeiende cardinaliteit gegenereerd • single fault diagnoses
Eigenschappen Single fault diagnose • {c} is een single fault diagnose van (SD,OBS,COMP)iffc is in iedere minimale conflict set van (SD,OBS,COMP)= knopen op nivo 1 met label • C is een conflictset voor (SD,OBS,COMP).{c} is een single fault diagnose van (SD,OBS,COMP)iff c C SD OBS {ab(k)k COMP \ {c}}is consistent= het bepalen van alle single fault diagnoses gegeven één conflict set
Alternatieve diagnoses • extra meetingen (MEAS) nodig voor discrimineren van de alternatieve diagnoses Wat is de relatie tussen: • de diagnoses van (SD,COMP, OBS) • de diagnoses van (SD,COMP, OBS MEAS)
Extra meetingen Voorspellingen • SD OBS {ab(k)k } {ab(k)k COMP \ }|-- • SD OBS {ab(k)k COMP \ }|-- • als geen enkele diagnose voorspelt dan geeft(SD,COMP,OBS ) dezelfde diagnoses als (SD,COMP,OBS) slechte test!
Voorbeeld (diagnose-discriminatie) 3 M1 2 10 A1 3 M2 12 2 A2 2 M3 3 mogelijke diagnoses: {M1}: voorspelling out(M2)=6 out(M1)=4 {M2,M3}: voorspelling out(M2)=4 out(M1)=6 output van M1 of M2zijn goede testen
Extra meetingen • Alle diagnoses van (SD,COMP,OBS) die voorspellen zijndiagnoses van (SD,COMP,OBS ) • Alle diagnoses van (SD,COMP,OBS) die voorspellen zijn geen diagnoses van (SD,COMP,OBS ) meeting die niet bevestigd wordt kan alleen diagnoses verwerpen!!
diagnoses voor “OBS ” De diagnoses van (SD,COMP,OBS ) zijn: • de diagnoses van(SD,COMP,OBS) die voorspelde • niet de diagnoses van (SD,COMP,OBS) die voorspelde • mogelijk “nieuwe” diagnoses (Dit zijn dan supersets van diagnoses van (SD,COMP,OBS) die voorspelden)
Vandaag • hittingset algoritme • extra meetingen voor discriminatie van alternatieve diagnoses Volgende keer: • laatste uit de serie “correctmodellen” General Diagnostic Engine(een bekend diagnostisch systeem gebaseerd op correctmodellen) • Raamwerk voor diagnostische methoden