Title: Voorstellen en redeneren over kennis: diagnose en uitleg
1Voorstellen en redeneren over kennis diagnose en
uitleg
2Tot nu toe
Vandaag
A
A
B
als
dan
B
B
A
Abductief redeneren
3Mag dat?
- Alle katten zijn sterfelijk.
- Socrates was sterfelijk.
- Dus Socrates was een kat.
- Eugene Ionesco Les Rhinoceros
Maar zo werken de dokters!
4Bij de dokter
- Alle mensen die malaria hebben, hebben
koortsaanvallen, hoofdpijn en braakneigingen. - Socrates heeft koortsaanvallen, hoofdpijn en
braakneigingen. - Dus, Socrates heeft malaria.
5Vlugge Vraag
B. Speurder die een dief probeert te vinden
A. Wetenschapper die nieuwe verbanden zoekt bij
de natuurverschijnselen
6Let op!
Top-down
Abductief
Deductief
Bottom-up
7Diagnose en uitleg
A
B
als
dan
B
A
is een diagnose of een uitleg voor
A
B
8Voorbeeld
- koorts ? malaria.
- koorts ? ontsteking.
- ontsteking ? pneumonie.
- ontsteking ? artritis.
- hoofdpijn ? malaria.
Wij zoeken een uitleg voor koorts
9Wij zoeken een goede uitleg voor koorts
- koorts ? malaria.
- koorts ? ontsteking.
- ontsteking ? pneumonie.
- ontsteking ? artritis.
- hoofdpijn ? malaria.
Is hoofdpijn een goede uitleg? Nee. Koorts kan
niet verklaard worden door deze aanname!
Een goede uitleg a voor een stelling ß (1)
a is voldoende voor ß KB ? a ² ß
10Wij zoeken een goede uitleg voor koorts
- koorts ? malaria.
- koorts ? ontsteking.
- ontsteking ? pneumonie.
- ontsteking ? artritis.
- hoofdpijn ? malaria.
Is false een goede uitleg? Nee. De gegevens
worden inconsistent!
Een goede uitleg a voor een stelling ß (2) a is
niet strijdig met KB KB ? a is consistent
11Wij zoeken een goede uitleg voor koorts
- koorts ? malaria.
- koorts ? ontsteking.
- ontsteking ? pneumonie.
- ontsteking ? artritis.
- hoofdpijn ? malaria.
Is malaria ? artritis een goede uitleg? Nee.
Malaria alleen is voldoende
12Wij zoeken een goede uitleg voor koorts
- koorts ? malaria.
- koorts ? ontsteking.
- ontsteking ? pneumonie.
- ontsteking ? artritis.
- hoofdpijn ? malaria.
- Bijkomende aanname ?kind.
Is malaria ? kind een goede uitleg? Nee. kind is
overbodig!
Een goede uitleg a voor een stelling ß (3) a
moet zo weinig mogelijk termen hebben
13Zo weinig mogelijk?
- Minimaal ten opzichte van ?
- geluk ? goede_gezondheid ? goede_loon
- geluk ? zen
- goede_gezondheid ? goede_loon en zen - beide zijn
minimaal!
14Wij zoeken een goede uitleg voor koorts
- koorts ? malaria.
- koorts ? ontsteking.
- ontsteking ? pneumonie.
- ontsteking ? artritis.
- hoofdpijn ? malaria.
Is ontsteking een goede uitleg? Nee. Te algemeen!
Een goede uitleg a voor een stelling ß (4) a is
over abductieve predicaten (diegene waarop we een
uitleg willen baseren)
15Samenvatting
- Gegeven KB en uit te leggen formule ß
- Een abductieve uitleg a
- a is voldoende voor ß KB ? a ² ß
- KB ? a is consistent
- a telt zo weinig mogelijk conjuncten/disjuncten
- a is over abductieve predicaten
16Vlugge Vraag
- elleboogpijn ? tenniselleboog ? tennisser.
- elleboogpijn ? golfelleboog ? golfspeler.
- elleboogpijn ? gewrichtspijn.
- gewrichtspijn ? artritis ? ?behandeld.
- ?tennisser.
- golfspeler.
- Een abductieve uitleg voor elleboogpijn is
- golfelleboog ? tenniselleboog.
- gewrichtspijn.
- artritis ? ?behandeld.
17Doel berekenen van een abductieve uitleg
- 1. Priemimplicaten
- 2. Berekenen van een uitleg
18Vereenvoudigende opmerkingen
- Uit te leggen ß is een atoom
- Een uitleg a is een conjunctie
19Priemimplicaten
- KB ? a ² ß equivalent met KB ² (?a ? ß)
- Aanname a is een conjunctie
- Dus, ?a is een disjunctie
- Dus priemimplicaat is een disjunctie ?
- KB ² ?
- Voor ieder ? ? ?, KB ² ?
- ? is over de abductieve predicaten
- ? is, dus, ?a ? ß
20Vlugge Vraag
- Priemimplicaat p ? ?q ? r
- Uit te leggen r
- Uitleg voor r
- p ? ?q
- p ? ?q
- ?p ? q
- ?p ? q
21Vlugge Vraag
- Stelling p ? ?p is altijd een priemimplicaat
ongeacht het KB - Waar
- Niet waar
Daarom zijn triviale priemimplicaten ook niet zo
interessant. We nemen aan dat impicaten dus niet
triviaal zijn.
22Berekenen van een uitleg
- Bereken alle priemimplicaten met ß
- Schrap ß van de priemimplicaten
- Voor alle restanten over abductieve predicaten,
bereken hun negaties. - Hoe kunnen we de priemimplicaten berekenen?
23Berekenen van de priemimplicaten
- Resolutie gebaseerd!
- Als KB ² c dan KB c
- Naïef
- bereken alle implicaten mbv resolutie
- kies de priemimplicaten
- gegeven ß gebruik de priemimplicaten om as te
genereren - inefficiënt
24Vlugge Vraag
- Hoeveel priemimplicaten houden En in?
- Ei ? pi ? Oi1.
- Ei ? qi ? Ei1
- Oi ? pi ? Ei1
- Oi ? qi ? Oi1.
- E0
- ?O0
25Bereken priemimplicaten
- Peter Jackson
- PIG
- (Prime Implicate Generator)
Computing Prime Implicates, ACM, 1992
26PIG in de praktijk
c1 elleboogpijn ? tenniselleboog ?
tennisser. c2 elleboogpijn ? golfelleboog ?
golfspeler. c3 elleboogpijn ?
gewrichtspijn. c4 gewrichtspijn ? artritis ?
?behandeld. c5 ?tennisser. c6 golfspeler.
- Welke clausules hebben als hoofd een atoom uit
het lichaam van c1c6?
c1 c2 c3 c4 c5 c6
Partners ? c6 c4 ? ? ?
27PIG in de praktijk
c2 elleboogpijn ? golfelleboog ? golfspeler. c3
gewrichtspijn ? artritis ? ?behandeld. c4
elleboogpijn ? gewrichtspijn. c6 golfspeler.
Twee paren c2-c6 en c3-c4
c1 c2 c3 c4 c5 c6
Partners ? c6 c4 c3 ? c2
28PIG in de praktijk
c1 elleboogpijn ? tenniselleboog ?
tennisser. c2 elleboogpijn ? golfelleboog ?
golfspeler. c3 elleboogpijn ?
gewrichtspijn. c4 gewrichtspijn ? artritis ?
?behandeld. c5 ?tennisser. c6 golfspeler.
- Begin met een clausule met partner en gooi die
weg c2. - Resolvent van c2 en c6 c7 elleboogpijn ?
golfelleboog. - Voeg c7 toe aan het programma.
- Het lichaam van c7 is alleen over abductieve
predicaten - Voeg c7 aan de antwoordenverzameling
29PIG in de praktijk
c3 gewrichtspijn ? artritis ? ?behandeld. c4
elleboogpijn ? gewrichtspijn.
- Herhaal het proces met c3 (en c4). Bereken
- c8 elleboogpijn ? artritis ? ?behandeld.
- Voeg c8 toe aan het programma en aan de
antwoordverzameling.
30PIG in de praktijk
c7 elleboogpijn ? golfelleboog. c8
elleboogpijn ? artritis ? ?behandeld.
- c7 en c8 hebben geen partners.
- alle partners zijn afgehandeld
- Het proces stopt.
- Antwoorden vanuit de antwoordverzameling
- golfelleboog.
- artritis ? ?behandeld.
31Wat hebben we gedaan?
- Kandidaten clausules met partners.
- Kies één van de kandidaten (heuristiek)
- Neem een van zijn partners
- Voeg een resolvent toe aan het programma.
- als het een goede uitleg is, voeg toe aan de
antwoordverzameling. - Herhaal het proces.
- Er zijn wel nog addertjes onder het gras
32Vlugge Vraag
- koorts ? malaria.
- koorts ? ontsteking.
- ontsteking ? pneumonie.
- ontsteking ? artritis.
- hoofdpijn ? malaria.
- Kies één van de kandidaten
- Neem een van zijn partners
- Voeg een resolvent toe aan het programma.
- als het een goede uitleg is, voeg toe aan de
antwoordverzameling. - Herhaal het proces.
Hoeveel resolventen worden door PIG aan het
programma toegevoegd tot dat het proces stopt? A.
1 B. 2 C. 3
33Vlugge Vraag
- Kandidaten clausules met partners.
- Kies één van de kandidaten
- Neem een van zijn partners
- Bereken een resolvent
- Voer de subsumptie-controle uit
- Als die slaagt voeg het aan de verzameling
clausules. - Anders neem een andere partner.
- Herhaal het proces.
- Zonder de subsumptie-controle stopt het algoritme
altijd? - Ja
- Nee
34PIG is leuk maar
- Kunnen we meer dan een uitleg genereren?
- Efficiëntie?
- Wat gebeurt als de formules variabelen inhouden?
- En wat als r(b) een deel uitmaakt van een uitleg
voor r(a)? - En wat als we het in Prolog doen?
- negatie als eindig falen ipv de echte negatie
35Voorbeeld met variabelen
xor-poort(x1). xor-poort(x2). xor-poort(p) ?
?ab(p) ? out(p) xor(in1(p), in2(p))
xor-poort(p) ? ab(p) ? out(p) in2(p)
or-poort(o). or-poort(p) ? ?ab(p) ? out(p)
or(in1(p), in2(p)) or-poort(p) ? ab(p) ?
out(p) in2(p)
and-poort(a1). and-poort(a2). and-poort(p) ?
?ab(p) ? out(p) and(in1(p), in2(p)) Wat
gebeurt er als een and slecht is weten we niet.
out(a1) in2(o)
36Voorbeeld
0 1
1 0 ----- 1
- Gegeven (KB) A 1, B 0, Cin 1.
- Uit te leggen (ß) S 1, Cout 0.
- Ergens is er een fout
Stel x2 foutief is, dan Cin in(x2) out(x2)
S 1. Stel o foutief is en a1 goed. Dan out(a1)
0 en Cout 0.
37Vlugge Vraag
- Wat betekent
- Een abductieve uitleg x2 en o zijn foutief, a1
is goed voor andere poorten? - Alle andere poorten zijn goed.
- Alle andere poorten zijn foutief.
- Het maakt niet uit of andere poorten goed of
foutief zijn.
381
x1
1
x2
0
a2
1
0
o
0
a1
39Er zijn ook andere mogelijkheden
- x1 en o zijn foutief, a1 is goed.
- x1 is foutief, a1 en a2 zijn goed.
- x2 en o zijn foutief, a1 is goed.
40Huiswerk 10
- Kies een van de bestaande technieken voor het
berekenen van een abductieve uitleg. - Wat de techniek samen. Wat is de complexiteit van
het algo? Sterke en zwakke punten? - Aanbevolen
- Eiter, Makino, Generating all abductive
explanations from a propositional Horn theory. - Denecker, De Schreye, SLDNFA an abductive
procedure for normal abductive programs. - Deadline 8 mei 2007
41Abductieve uitleg goede uitleg?
- Doel verklaring voor een abnormaal gedrag.
- Eis (3)
- a telt zo weinig mogelijk
conjuncten
abnormale
? Consistentiegebaseerde uitleg
42Vlugge Vraag
- Een abductieve uitleg x1 en o zijn foutief, a1
is goed - Is dat ook een consistentiegebaseerde uitleg?
- Ja
- Nee
43Foutieve x1 is voldoende!
0
1
1
0
0
1
0
0
44Waarom is ab(x1) geenabductieve uitleg?
0
1
1
0
1
0
45Samenvatting
abductieve consistentiegebaseerde
aanname geen wereld U, sommige elementen zijn abnormaal
formeel KB ? a ² ß KB ? Ab(a)a?a ? ?Ab(a)a?a ? ß ² false
atomen in de uitleg abnormaal en normaal abnormaal
andere atomen maakt niet uit normaal
problemen zwak zonder een model van een abnormaal gedrag kan te veel diagnoses opleveren
46Berekenen van een consistentiegebaseerde uitleg
- Stelling Reiter 1987
- a is een consistentiegebaseerde uitleg desda KB ?
?Ab(a)a?a ? ß ² false - Algoritme (genereer en controleer)
- Bereken alle mogelijke a ? U,
- beginnend met kleine a
- Controleer of KB ? ?Ab(a)a?a ? ß ² false
?
Ab(o)
Ab(a1)
U
47Iets beters?
- Gebaseerd op de noties van
- Conflictverzameling
- Doorsnijdende verzameling
- HS boom
48Vlugge Vraag
- Conflictverzameling ?
- KB ? ß ? ? Ab(d) d?? ² false
- Conflictverzameling?
- A. x1, x2 B. x1, a1 C. x1, a1, a2, o
1
1
0
1
0
49Uitleg vs. conflictverzameling
- Uitleg ?
- KB ? Ab(?)??? ? ?Ab(d)d?? ? ß ² false
- Conflictverzameling ?
-
- KB ? ß ? ?Ab(d) d?? ² false
50Doorsnijdende verzameling
- Doorsnijdende verzameling D voor een collectie
van verzamelingen C - D ? ?S?C S
- ?S?C D ? S ? ?
S1
S2
S3
D
51Uitleg als een doorsnijdende verzameling van
conflicten
Vlugge Vraag
- Stelling Ab(a) is een uitleg desda a is een
minimale doorsnijdende verzameling voor
een collectie van de minimale conflictverzamelinge
n van KB ? ß
x1, x2, x1, a2, o
x1
Is deze uitleg uniek? A. Ja B. Nee
x2,a2
x2,o
52Berekenen van een minimale doorsnijdende
verzameling
- Gegeven een collectie C van verzamelingen
- HS boom
- knopen gemarkeerd met
- of met ?
- of met een verzameling uit C
- kanten gemarkeerd met
- een element van de verzamelingen uit C
53- wortel gemarkeerd met
- ? als C leeg is
- anders, een verzameling uit C
- voor een knoop n
- H(n) markeringen van het pad vanuit de wortel
- n gemarkeerd met ??
- geen kinderen
- anders n gemarkeerd met S?C
- voeg knopen n1, , nS als kinderen van n
- (n, ni) gemarkeerd door een unieke element van S
- voor ieder ni
- Bestaat er een S? C zodanig dat S?H(ni) ??
- Markeer ni met S
- Anders markeer ni met ?
collectie C van verzamelingen
54C 2,4,5,1,2,3,2,4,6, 1,3,5,2,4,2,3,5
,1,6
Reiter
55Vlugge Vraag
- C 1,2, 1,3
- Welke boom is een HS boom voor C?
56C 2,4,5,1,2,3,2,4,6, 1,3,5,2,4,2,3,5
,1,6
Reiter
Een pad naar ? is een doorsnijdende verzameling
en alle minimale doorsnijdende verzamelingen
hebben zon pad!
57- HS boom alle minimale doorsnijdende
verzamelingen voor een gegeven collectie - Kunnen we de boom kleiner maken?
58Verbetering (1)
n8 is overbodig!
59Verbetering (2)
De markering van n9 kan bepaald worden zonder
berekenen H(n9) ? H(n3).
60Verbetering (3)
2,4 ?C 2,4,5 ?C 2,4,5 is overbodig
61Verbetering algo
- Breedte eerst
- Als n met S gemarkeerd is, en H(n) ? S ?,
markeer n met S. - Pruning
- H(n) H(n)
- markeer n met ? en stop!
- n gemarkeerd met ? en H(n) ? H(n)
- markeer n met ? en stop!
- Als markering(n) ? markering(n)
- markeer (n,n) als overbodig )( voor alle n
zodanig dat markering((n,n))?
markering(n)\markering(n). - verwijder de hele boom onder n
62Kleinere boom
Reiter
63Berekenen van een consistentiegebaseerde uitleg
- Bereken alle minimale conflictverzamelingen
- Bereken een doorsnijdende verzameling met behulp
van een HS boom
Do het tegelijkertijd!
64Hulpfunctie TP
- Aanname functie TP zodanig dat
- TP(KB, Comp, ß) ? als
- KB ? ß ? ?Ab(a)a?Comp ² false en
- ? ? Comp is een conflictverzameling
- TP(KB, Comp, ß) ?, anders.
- Opmerking voor C ? U
- TP(KB, U C, ß) ? als
- ? ? U is een conflictverzameling en
- ??C ?
- TP(KB,U - C, ß) ?, anders
65Eindelijk het algoritme
- Bereken de HS boom
- gebruik TP(KB, U H(n), ß) om n te markeren
- Geef H(n) terug voor een met ?gemarkeerde n.
TP(KB, x1,x2, a1, a2, o, ß)
x1,x2
x1
x2
TP(KB, x1, a1, a2, o,ß)
x1,a2, o
o
a2
x1
?
TP(KB, x2, a1, a2, o, ß)
?
?
?
TP(KB, x1,a1,o, ß)
Niet consistent. Aanname TP(KB, x1,x2, a1, a2,
o, ß) x1, x2.
Niet consistent. Aanname TP(KB, x1, a1, a2, o,
ß) x1, a2, o.
Consistent!
Uitleg x1, x2, a2, x2, o
Overbodig prunningregel.
Consistent!
66Vlugge Vraag
0
0
Halve aftrekker
x
1
0
a
n
- Geef een consistentie-gebaseerde uitleg.
67Huiswerk 11
- Abnormale wezens
- Doet denken aan verstekregels
- Lees het artikel van Reiter
- Bespreek de relatie tussen consistentiegebaseerde
uitleg en verstekregels. - Deadline 8 mei 2007
68Wat hebben we gedaan?
- Diagnose en uitleg
- Twee soorten uitleg
- consistentiegebaseerde
- abductieve
- Console, Torasso
- Efficiënte algoritmen om ze te berekenen
Uitleg