Kunnskapsbaserte agenter
Agentene i kapittel 2–10 hadde kunnskapen bygget inn i algoritmen: en heuristikk, en evalueringsfunksjon, en liste med begrensninger. En kunnskapsbasert agent skiller kunnskapen fra resonneringen. Den har en kunnskapsbase (knowledge base, KB), en mengde setninger skrevet i et formelt språk, og en inferensmekanisme som utleder nye setninger fra de gamle.
Agenten snakker med kunnskapsbasen gjennom to operasjoner, TELL og ASK. TELL legger en ny setning inn i KB, for eksempel det agenten nettopp har observert. ASK stiller et spørsmål, for eksempel hvilken handling som er best nå, og svaret må følge av det som er fortalt tidligere. I hvert tidssteg forteller agenten KB hva den oppfatter, spør hva den bør gjøre, og forteller KB hvilken handling den valgte.
Dette kalles den deklarative tilnærmingen: du forteller agenten hva som er sant, og lar inferensen finne ut hva som skal gjøres. Den prosedyrale tilnærmingen er å kode oppførselen direkte. I praksis kombineres de, men en deklarativ KB har en stor fordel: den kan utvides med nye fakta uten at noe annet i agenten skrives om.
Sjekk deg selvAgenten har fått vite «er det glatt, kjører bussen sakte» og «det er glatt». Hvilken operasjon gir svaret på om bussen kjører sakte?Vis svarSkjul svar
ASK. Begge setningene er lagt inn med TELL, og svaret følger av dem uten at noen har programmert det inn.
Hvorfor logikk og ikke vanlig tekst? Fordi et formelt språk har to ting tekst mangler: en presis grammatikk som sier hva som er en setning, og en presis regel for når en setning er sann. Det er syntaksen og semantikken i de neste stegene, og sammen gjør de det mulig å avgjøre mekanisk om noe følger.
Lærebøker bruker gjerne en liten spillverden for å vise ideen. Her er vår egen. En inspeksjonsrobot går gjennom en tunnel med luker nummerert 1–8, og den ser ikke bak lukene. Den kan bare måle temperaturen der den står. Regelen «det er varmt ved en luke hvis og bare hvis det lekker bak den luka eller en av nabolukene» lagres som setninger. Har roboten målt kaldt ved luke 3 og varmt ved luke 4, vet den at det ikke lekker bak luke 2, 3 eller 4. Lekkasjen må da være bak luke 5, uten at roboten har sett den.
Hva kjennetegner den deklarative tilnærmingen til en kunnskapsbasert agent?