Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdJasper Jonker Laatst gewijzigd meer dan 10 jaar geleden
1
Automatisch redeneren en stellingen bewijzen
Introductie: logica in AI Automatisch redeneren: Resolutie Unificatie Normalizatie
2
Introductie: Syntax Model semantiek Logisch gevolg
Motiverend voorbeeld Automatisch redeneren Logica: Syntax Model semantiek Logisch gevolg
3
Het AI droombeeld anno ‘60:
In logica kan je vrijwel alles ‘formeel’ uitdrukken. Ook kan je in logica “stellingen” bewijzen uit gegeven informatie. Kunnen we dit uitbaten om een automatische redenerend systeem te bouwen ??
4
Onderliggende premisses:
Logica is de ‘assembler’ van de kennis + ligt heel dicht bij natuurlijke taal. Vrijwel elke vorm van kennis kan je formeel en ondubbelzinnig uitdrukken in logica. Als computers kennis moeten verwerken dan moet die kennis formeel en ondubbelzinnig verwoord zijn. Logische deductie laat toe om op systematische manier nieuwe kennis uit bestaande kennis af te leiden Deductie automatiseren ??
5
Een voorbeeld: Gegeven kennis in natuurlijke taal:
1. Marcus was een man. 2. Marcus was Pompeier. 3. Alle Pompeiers waren Romeinen. 4. Cesar was een heerser. 5. Alle Romeinen waren ofwel loyaal aan Cesar of haatten hem. 6. Iedereen is loyaal aan iemand. 7. Mensen proberen alleen heersers te vermoorden waar ze niet loyaal aan zijn. 8. Marcus probeerde Cesar te vermoorden. Hoe kunnen we automatische vragen beantwoorden als: Was Marcus loyaal aan Cesar? Haatte Marcus Cesar?
6
Conversie naar eerste orde logica:
Feiten representatie: 1. Marcus was een man. man(Marcus) 2. Marcus was Pompeier. Pompeier(Marcus) 4. Cesar was een heerser. heerser(Cesar) 8. Marcus probeerde Cesar te vermoorden. probeervermoord(Marcus, Cesar)
7
Conversie naar eerste orde logica (2):
Algemene representaties (regel representaties): 3. Alle Pompeiers waren Romeinen. x Pompeier(x) Romein(x) 5. Alle Romeinen waren ofwel loyaal aan Cesar of haatten hem. ( ) ~(loyaalaan(x,Cesar) haat(x,Cesar)) XOR x Romein(x) loyaalaan(x,Cesar) haat(x,Cesar) 6. Iedereen is loyaal aan iemand. x y loyaalaan(x,y) 7. Mensen proberen alleen heersers te vermoorden waar ze niet loyaal aan zijn. xy mens(x) heerser(y) probeervermoord(x,y) ~loyaalaan(x,y)
8
De “stelling” ? Was Marcus loyaal aan Cesar?
Probeer bijvoorbeeld te bewijzen dat hij het niet was: ~loyaalaan(Marcus,Cesar) Haatte Marcus Cesar? Bewijs dat hij het was: haat(Marcus,Cesar)
9
Een bewijs door backward-reasoning probleem-reductie:
~loyaalaan(Marcus,Cesar) mens(Marcus) heerser(Cesar) AND probeervermoord(Marcus, Cesar) xy mens(x) heerser(y) probeervermoord(x,y) ~loyaalaan(x,y) + substitutie: x/Marcus y/Cesar mens(Marcus) heerser(Cesar) probeerver-moord(Marcus,Cesar) ~loyaalaan(Marcus,Cesar) + Modus ponens Extra regel: x man(x) mens(x) man(Marcus) Klaar! 8. Klaar! 4. Klaar! 1.
10
Problemen: 1) kennisrepresentatie:
Natuurlijke taal is imprecies / ambigu zie “Mensen proberen alleen …” Evidente informatie wordt gemakkelijk vergeten. zie man <-> mens Sommige informatie is moeilijker voor te stellen in logica. Vb.: “misschien …”, “mogelijk…”, “waarschijnlijk…”, “45% kans dat …”, Logica is niet handig vanuit ‘software engineering’ perspectief. te ‘fine-grained’ (assembler-achtig?)
11
Problemen: 2) Problem solving:
Alle trade-offs die we bij toestandruimte representatie zoekmethodes hadden: backward/forward, boom/grafe, OF-boom/EN-OF, controle aspecten, ... Welke deductieregels zijn in het algemeen nodig? Vb.: bewijs “ haat(Marcus,Cesar) “ x Romein(x) loyaalaan(x,Cesar) haat(x,Cesar) Enige toepasbare regel is: Modus ponens??? Hoe behandelen we x en y ?
12
Problemen: 2) Problem solving (2):
Hoe bereken je in het algemeen de substituties ? xy mens(x) heerser(y) probeervermoord(x,y) ~loyaalaan(x,y) + substitutie: x/Marcus y/Cesar In het algemeen: veel complexer Van welke taak start je? Vb: loyaalaan(Marcus,Cesar) of ~loyaalaan(Marcus,Cesar) Hoe behandel je gelijkheid van objecten? Probleem: combinatorische explosie van afgeleide gelijkheden (reflexiviteit, symmetrie, transitiviteit, …) Hoe garanderen we correctheid/volledigheid?
13
De formele model semantiek van Logica
Wat betekent de notie “Logisch gevolg”?
14
Propositie logica
15
Basis concepten: In propositie logica: ~ connectieven ( )
Het alphabet: ~ connectieven weer_is_regenachtig jos_draagt_paraplu Atomaire proposities ( ) punctuaties jos_draagt_paraplu weer_is_regenachtig ~ weer_is_regenachtig Correct-gevormde formules: Notatie: p, q, r : atomaire proposities.
16
Semantiek (betekenis)
Algemeen (voor elk kennisrepresentatie formalisme): 2 aanpakken voor het vastleggen van semantiek: 1. Intuitieve (natuurlijke) semantiek: Beschrijf de betekenis in termen van natuurlijke taal Vbn. (propositie logica): : “impliceert” ~ : “niet zo dat” : “of” p q : “p als en slechts als q” ~ p r : “niet p en r” elk symbool en elke correct-gevormde formule krijgt betekenis door geassocieerde natuurlijke-taal
17
Semantiek (2) 2. Transformationele semantiek: Logische gevolgen p
Beschrijf de betekenis door omzetting naar een geassocieerd “mathematisch” object In propositie logica : de verzameling van alle propositie symbolen die logisch gevolg zijn van de gegeven formules: Logische gevolgen p p ~ q p q r q r p q p r q r p q r
18
Maar hoe definieren we dan “logisch gevolg” ?
NIET als: Alles wat we kunnen afleiden uit de formules WANT: Op dit ogenblik weten we nog niet: “wat is een volledig stel van afleidingsregels” Dat is net wat we in Automatisch Redeneren willen gaan vastleggen ! WEL door: Interpretaties Modellen
19
Interpretatie: = een functie die aan elke “atomaire” formule een waarheidswaarde toekent Geeft dan ook onrechtstreeks een waarheids-waarde aan elke correct-gevormde formule p q ~p p q p q p q p q T F T T F F T F T T F F T F Waarheidstabel
20
Model Gegeven een stel formules S: een model is een interpretatie die alle formules in S waar maakt p ~ q p q r S Voorbeeld: p q r T F Model: p ~q q r T p
21
Logische gevolg: Gegeven een stel formules S en een formule F: F is logisch gevolg van S ( S |= F ), als elk model van S maakt ook F waar. p ~ q p q r S Voorbeeld: F: r p p q r T F (enige) Model: r p T
22
Predicaten logica
23
Correct-gevormde formules:
Het alphabet: constanten Yvonne Yvette variabelen x y z ~ connectieven functie symbolen g f h quantoren predicaat symbolen q p ( ) punctuaties , Termen: Yvonne y f(x, g(Yvette)) Correct-gevormde formules: p(Yvonne) p(x) ~q(x) z p(z) x y p(x) q(y) p(f(Yvonne, Yvette)
24
Formeler: Een alphabet bestaat uit variabelen, constanten, functie symbolen, predicaatsymbolen (allen gebruikers-gedefinieerd) en uit connectoren, punctuaties en quantoren. Termen zijn ofwel: variabelen, constanten, functie symbolen voorzien met termen als argumenten, zoveel als het functie symbool argumenten verwacht. Correct-gevormde formules worden geconstrueerd uit predicaat symbolen, voorzien met termen als argumenten, en uit connectoren, quantoren en punctuaties - dit volgens de regels die connectoren opleggen.
25
Concreet voorbeeld: { {0}, {x,y}, {s}, {odd,even}, Con, Pun, Quan}
Alphabet: { {0}, {x,y}, {s}, {odd,even}, Con, Pun, Quan} Termen: { 0, s(0), s(s(0)), s(s(s(0))), … x, s(x), s(s(x)), s(s(s(x))), … y, s(y), s(s(y)), s(s(s(y))), … } Correct-gevormde formules: odd(0), even(s(0)), … odd(x), odd(s(y)), … odd(x) even(s(s(x))), … x ( odd(x) even(s(x)) ), … odd(y) x (even( s(x))), ...
26
Interpretatie: A D = N Voorbeeld: = een verzameling D (het domein), en
een functie die constanten in D afbeeldt, en een functie die functie symbolen op functies: D -> D afbeeldt, en een functie die predicaat symbolen op predicaten: D -> boole afbeeldt. A s x y odd Voorbeeld: boole true false “even” D = N 1 2 3
27
Toekenning van waarheidswaarden:
1. Aan gegronde atomaire formules: vorm: p(f(a), g(a,b)) Voorbeeld: I( odd( s ( s( 0 ) ) ) ) ) = ? = I (odd) ( I(s) ( I(s) ( I(0) ) ) ) = “even” ( succ ( succ ( ) ) ) = “even” ( succ ( 1 ) ) = “even” ( 2 ) = true
28
Toekenning van waarheidswaarden (2):
2. Voor gesloten correct-gevormde formules: (= geen niet-gequantificeerde variabelen) x F(x) is waar als: voor alle d D: I( F(d) ) = true x F(x) is waar als: er een d D bestaat zodat: I( F(d) ) = true verder: gebruik van waarheidstabellen. I(x odd( s ( x ) ) odd(x) ) = ? = true als voor alle d in N: I (odd( s (d) ) odd(d) ) = true Voorbeeld: = “even” ( succ(d) ) “even” (d) Neem: d = 0, dan: = false true Waarheidstabellen: false !
29
Semantiek / Logisch gevolg:
Net zoals voor propositie logica ! Gegeven een stel formules S: een model is een interpretatie die alle formules in S waar maakt. Gegeven een stel formules S en een formule F: F is logisch gevolg van S ( S |= F ), als elk model van S maakt ook F waar. Bijkomend: inconsistentie: Gegeven een stel formules S: S is inconsistent als S geen enkel model heeft. Voorbeeld: S = { p(a), ~p(a)}
30
Marcus voorbeeld: A x y V Marcus Cesar C F = man mens heerser Romein
Pompeier haat loyaalaan probeervermoord P boole true false “was_heerser” boole true false “was_pompeier” “Intended” interpretatie: D = wereld van ~40 VC. “Marcus” “Cesar” Is een model ALS ALLE FORMULES CORRECT ZIJN
31
Marcus voorbeeld: A x y V Marcus Cesar C F = man mens heerser Romein
Pompeier haat loyaalaan probeervermoord P N 4 3 I(man) = I(mens)= I(Romein) = “natuurlijk getal” I(probeervermoord) = “ > ” I(Pompeier) = “even getal” I(loyaalaan) = “deelt” I(heerser) = “priemgetal” I(haat) = “deelt niet”
32
Model ?? JA ! 1. Marcus was een man. 4 is een natuurlijk getal
2. Marcus was Pompeier. 4 is een even getal 4. Cesar was een heerser. 3 is een priemgetal 8. Marcus probeerde Cesar te vermoorden > 3 3. Alle Pompeiers waren Romeinen. Even getallen zijn natuurlijk. 5. Alle Romeinen waren ofwel loyaal aan Cesar of haatten hem. Een getal deelt 3 of deelt 3 niet. 6. Iedereen is loyaal aan iemand. Elk getal is deler van een getal. 7. Mensen proberen alleen heersers te vermoorden waar ze niet loyaal aan zijn. Een natuurlijk getal dat groter is dan een priemgetal deelt het priemgetal niet.
33
“Logic is all form, no content”
mens(x) sterfelijk(x) mens(Socrates) sterfelijk(Socrates) januari(x) koud(x) januari(21/1/01) koud(21/1/01) P(x) Q(x) P(A) Q(A) Alleen de onderlinge structuur van een stel logische formules is bepalend voor de conclusies! (Op isomorfisme van de namen na) Maar vanuit een kennisrepresentatie-perspectief is ook de ‘content’ belangrijk.
34
Relatie ten opzichte van andere cursussen:
35
Cursus logica (1e Kan Inf.)
Formele semantiek Beslisbaarheid Bewijzen maken met de hand Propositie logica Eerste-orde predicaten logica
36
Cursus Declaratieve Talen (1e Lic. Inf./2 CW.)
Programmeertalen gebasseerd op logica (Prolog/CLP) Formele semantiek Beslisbaarheid Bewijzen maken met de hand Propositie logica Eerste-orde predicaten logica
37
Artificiele Intelligentie / Kennis-gebaseerde systemen
Propositie logica Eerste-orde predicaten logica Formele semantiek Beslisbaarheid Bewijzen maken met de hand Programmeertalen gebasseerd op logica (Prolog/CLP) Technieken voor automatisch redeneren Representeren van problemen in Logica Overwegend in oefeningen
38
Methodologie voor kennisrepresentatie?
Erg complex. Weinig eenvoudige richtlijnen. Basis: Selecteer een alphabet dat toelaat alle objecten en relaties uit het probleemgebied voor te stellen: Wat zijn de basis objecten, functies en relaties in je probleemdomein ? Ontology: representeer alleen de RELEVANTE informatie Kies constanten, functie- en predicaat symbolen om deze te representeren. Vertaal elke natuurlijke taal zin in een (of meerdere) corresponderende logische formule.
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.