Agenter som resonnerer logisk 1 Jørn - simulert annealing TSP Gå igjennom oppgave 3.4 og 3.9 vi har vist hvordan vi kan representere et problem og søke etter løsning, nå skal vi utvide agenten slik at den kan ha kunnskap og gjøre litt resonnering. (ved søk hadde ikke agenten noen kunnskap eller noe minne, vi så bare på teknikker agenten kan bruke for problemsløsning) kunnskapsbaserte agenter - kunnskapsbase, KB: et sett med fakta om verdenen (omgivelsene) beskrevet i setninger - kunnskapsrepresentasjonsspråk - operasjoner på KB: TELL - ny kunnskap legges til KB ASK - spørre KB - slutningsmekanisme (inferensmekanisme) prosessen med å endre KB etter en TELL - figur 6.1, initiell kunnskap = bakgrunnskunnskap - kunnskapsnivå, logisk nivå, implementasjonsnivå - vi kan konstruere en kunnskapsbasert agent ved å fortelle den hva den trenger å vite (deklarativt, i motsetning til lærende) - wumpus verdenen (figur 6.2): hva skal agenten gjøre, vi trenger en beskrivelse, ss 154-55 - figur 6.3, 6.4, enklere representasjon enn 6.2, hva resonnerer agenten? - kunnskapsrepresentasjon (en logikk): syntaks - alle mulige konfigurasjoner av setninger semantikk - bestemmer faktaene som setningene beskriver (semantikken gjør at en agent kan "tro" noe) - figur 6.5 - entailment: (opprettelse av stamgods, arv etc...(helt på jordet)) på grunnlag av setninger i KB som er sanne, genereres nye sanne setninger, forholdet mellom dem kalles entailment KB |= (alfa) - inferensprosedyre kan gjøre to ting: 1. generere nye setninger som stammer fra KB (entailed av KB) 2. sjekke om en setning er entailed av KB KB |-i (alfa) - VIDEO - eksempel feil logikk.... representasjon - naturlig språk er bra for kommunikasjonmen ikke for representasjon, da er programmeringsspråk bedre (representere wumpus verdenen som 4x4) - naturlig språk lider av tvetydighet ("små hunder og katter"), dette løses i mange språk med presedens (operator-presedens) semantikk - alle språk vi bryr oss om er komponerte (meningen av en setning er en funksjon av delsetningene - en setning kan være sann eller usann: en setning er sann viss under en bestemt tolkning tilstanden den representerer er tilfelle inferens - en setning kan være gyldig, tilfredstillbar, ikke-tilfredstillbar (hjelper oss ved design av en inferensprosedyre) logikk - vi skal bry oss om erklærende logikk og første ordens predikat logikk - figur 6.7 EVALUER 2 erklærende logikk: enkel logikk - BNF: 4 deler (ss 854) 1. terminal symboler 2. ikke-terminale symboler 3. start symbol 4. produksjonsregler (tenk betydningen av lisp som symbolsk programmeringsspråk) - syntaks definert som en grammatikk, figur 6.8 - semantikk, definerer en sannhetstabell, figur 6.9 - inferens, premisser => mulig konkulsjon (systemet kan trekke konklusjoner uten å vite hva de betyr, men bare på grunnlag av sannehetstabeller for premissene) - modell av en setning: setningen er sann under en bestemt tolkning - inferensregler for erklærende logikk, figur 6.13 - en logikk er monoton viss if KB1 |= (alfa) then (KB1 U KB2) |= (alfa) - erklærende logikk og første ordens predikat logikk er monotone - eks. wumpus-agent s 174-176 - kunnskapsbasert agent med erklærende logikk, figur 6.16 3 oppgave 4.1, 4.2 b,c , 4.3