Automatisch redeneren en stellingen bewijzen

Slides:



Advertisements
Verwante presentaties
Voorstellen van en redeneren over kennis
Advertisements

TELLEN IN TAAL: de vorm van rekenen en redeneren
Unleash your productivity with Startup TOOLS today •Configuratie voor de PTC product ontwikkeling omgeving, •Applicaties voor een gecentraliseerd, grafisch.
Natuurlijke-Taalinterfaces
AR voor Horn clause logica Introductie van: Unificatie.
PM zijn de Principia Mathematica. Deze vormen een formeel systeem voor de wiskunde. Ze zijn beschreven door A.N. Whitehead and B. Russell. Gödel bepaalt.
Uitwerking tentamen Functioneel Programmeren 29 januari 2009.
Practica Computerlinguistiek Tekst en uitleg:
Reductiemachine Functionele talen en dus de -calculus, worden vaak geïmplementeerd door een reductiemachine. De elementaire stap is een reductie, en de.
Automatisch redeneren en stellingen bewijzen
Automatische Redeneer-systemen
Automatisch Redeneren in de praktijk
AR: clausale logica De stap naar: resolutie. 2 Clausale vorm  Veralgemeende vorm van de formules:  x1 …  xk A1  A2 …  Am  B1  B2 …  Bn  Horn.
 - congruentie -regel:
1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.
Compositionaliteit, bereik en lambda’s
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Betekenis 2: Compositionaliteit, bereik en lambda’s
Logisch redeneren in wiskunde C
Hogere-orde functies: herhaald patroon? Parametrizeer! product :: [Int]  Int product [ ]= product (x:xs)= 1 product xs x * and :: [Bool]  Bool and [
1 Prof. Dr. Martine De Cock academiejaar Toepassingsgerichte Formele Logica 1.
1 Kennen en kunnen H4 De volgende begrippen kunnen uitleggen: - stelling- tautologie - betrouwbaar- volledig De volgende bewijsmethoden kunnen uitleggen.
1 Prof. Dr. Martine De Cock academiejaar Eenvoudige wiskundige uitdrukkingen.
Natuurlijke-Taalinterfaces week 3 1. evaluatie van een formule in een model 2. vraag-antwoord dialogen 3. Modellen en applicaties.
Geest, brein en cognitie Filosofie van de geest en Grondslagen van de cognitiewetenschap Fred Keijzer.
Natuurlijke-Taalinterfaces week 5 Lambda-termen en Lambda-conversie.
PARADOXEN EN ONBEWIJSBAARHEID
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
AI91  Het Probleem  Grammatica’s  Transitie netwerken Leeswijzer: Hoofdstuk AI Kaleidoscoop College 9: Natuurlijke taal.
Functies als Getallen Jan Martin Jansen.
-calculus.
ProblemenRedeneren met verstekwaarden Gesloten wereld CircumscriptieLogica met verstekwaarden Autoepistemis che logica Redeneren over kennis: herbekeken.
vwo D Samenvatting Hoofdstuk 12
Inhoud (2) Netwerkanalyse Signalen als dragers van informatie
Inleiding CIW 2008 Analysecollege 1. Analysevraag 1 Bekijk de reclame van Bol.com waarbij mensen vragen naar een bepaalde film, maar vervolgens een product.
De Syntax-Semantiekredenering van Searle Doctoraalexamen Eline Spauwen 25 mei 2007 Searles kritiek op Harde KI.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 3 Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 2 Cees Witteveen.
Semantische Interpretatie Jurafsky & Martin (Ed. 1): Hoofdstuk 15
Hoofdstuk 4 Argumentatieleer
Modelleren van XML element content of Hoe doe je dat? Harrie Passier & Bastiaan Heeren TouW-dag 13 november 2010.
Moderne Wiskunde 11e editie inzicht, structuur, vernieuwing.
AI101  Historisch Perspectief Weak Methods Logic Theorist General Problem Solver  Resolution Theorem Proving Leeswijzer: Hoofdstuk 13.0, 13.1, 13.2 AI.
ABC formule Algemeen Voorbeeld: Herleid naar: Nu volgorde veranderen:
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
MBR AtT1 College 9 Diagnose met correctmodellen. Verdieping in de formalisatie. In reader: Characterizing diagnoses and Systems J. de Kleer, A.
Taal en logica Over het gebruik van eerste orde propositie/predikatenlogica voor de analyse van natuurlijke taal.
Semantische Complexiteiten van Natuurlijke Taal Cf. Jurafsky & Martin, Ed. 1: Sectie 14.4 (Ed. 2: Sectie 17.4)
Samenvatting.
Stelsels van vergelijkingen H5 deel 3 Hoofdstuk 10 Opgave 61, 62, 63.
Rekenen en Redeneren met Oneindig Jeroen Spandaw NWD, 5 februari 2016.
Les 3 - Operators Workshop Php Basic. ICT Academy Php Basic Content Operators Wiskundig Toewijzing Vergelijking.
GUI & classes Een Gui in een class steken en het object gebruiken.
Welkom VWO 5..
18 Evalueren van Beweringen en Redenen. Scenariotest
Recursie in de wiskunde
Gameprogrammeren: Expressies
Het 7-stappenplan Er bestaan verschillende modellen en stappenplannen om morele dilemma’s te analyseren en tot een beslissing te komen. Wij gebruiken “het.
Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver
3 vmbo-KGT Samenvatting Hoofdstuk 10
Elektronische schakelingen en logische poorten
Automatische Redeneer-systemen
De stap naar: resolutie
AR voor Horn clause logica
Voorkennis Wiskunde Les 7 Hoofdstuk 2/3: §2.5, 3.1 en 3.2.
G12 2 Bewijs: de hoofdeigenschap van evenredigheden M A R T X I
Software Development fundamentals
toepassingen van integralen
Welkom!.
Transcript van de presentatie:

Automatisch redeneren en stellingen bewijzen Introductie: logica in AI Automatisch redeneren: Resolutie Unificatie Normalizatie

Introductie: Syntax Model semantiek Logisch gevolg Motiverend voorbeeld Automatisch redeneren Logica: Syntax Model semantiek Logisch gevolg

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 ??

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 ??

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?

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)

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. xy mens(x)  heerser(y)  probeervermoord(x,y)  ~loyaalaan(x,y)

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)

Een bewijs door backward-reasoning probleem-reductie: ~loyaalaan(Marcus,Cesar) mens(Marcus) heerser(Cesar) AND probeervermoord(Marcus, Cesar) xy 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.

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?)

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 ?

Problemen: 2) Problem solving (2): Hoe bereken je in het algemeen de substituties ? xy 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?

De formele model semantiek van Logica Wat betekent de notie “Logisch gevolg”?

Propositie logica

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.

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

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

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

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

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

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

Predicaten logica

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)

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.

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))), ...

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

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 ( 0 ) ) ) = “even” ( succ ( 1 ) ) = “even” ( 2 ) = true

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 !

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)}

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

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”

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. 4 > 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.

“Logic is all form, no content” mens(x)  sterfelijk(x) mens(Socrates) sterfelijk(Socrates) januari(x)  koud(x) januari(21/1/16) koud(21/1/16) 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.