7 OOGIET GENTIT Tarkastelemme nyt tietämyskannan (knowledge base, K) omaavia agentteja, joita kutsumme tietämyspohjaisksi toimijoiksi (knowledge-based agents) Tietämyspohjaiset toimijat käyttävät tietämyskantaa tiedon esittämiseen (representation of knowledge) havainnoistaan ja pystyvät tietämyksen avulla tekemään päätelmiä (reasoning) maailman tilasta. Tämä on erityisen tärkeää osittain havaittavissa ympäristöissä, koska päättely voi antaa tietoa myös ei-havaittavista asioista. Tietojen seurauksien päättely mahdollistaa paremman suorituksen kuin heijastetoimijat. yös ihmiset käyttävät päättelyä ja kielen ymmärtämisessä se on välttämätöntä monimerkityksisyyden takia: puhujan intentio ei ole suoraan havaittavissa. Tietämyspohjaiset toimijat ovat joustavia: voivat vaihtaa tehtäviään kun niille annetaan uusia tavoitteita parantavat suoritustaan saadessaan uutta informaatiota ympäristöstä mukautuvat ympäristön muutoksiin päivittämällä tietämystään Keskeinen komponentti tietämyskanta on joukko lauseita (sentences), jotka on ilmaistu tietämyksenesityskielellä (knowledge representation language) Inference engine Knowledge base domain independent algorithms domain specific content luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p./8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p./8 Tietämyskantaa operoidaan komennoilla TE ja K. Kumpikin tehtävä vaatii päättelyä eli uusien lauseiden johtamista vanhoista. erusvaatimus loogiselle toimijalle (logical agent): se mitä saadaan vastaukseksi kysymyksestä (K) täytyy olla seurausta siitä mitä tietämyskannalle on kerrottu (TE). function K-GENT( percept) returns an action static: K, a knowledge base t, a counter, initially, indicating time TE(K, KE-ERCET-ENTENCE( percept, t)) action K(K, KE-CTION-UERY(t)) TE(K, KE-CTION-ENTENCE(action, t)) t t + return action Nyt agenttia voidaan kuvailla ja ohjata tietämystason (knowledge level) termeillä erotuksena loogisen tason ja toteutustason (implementation level) termeistä. lkutietämys syötetään tietämyskantaan TE-komennolla. en jälkeen agentti päivittää kantaa itse havaintojensa perusteella. gentin toiminnan määräämiseksi riittää antaa sen tiedot ja tavoite, ei tarvitse antaa yksityiskohtaisia toimintaohjeita. Tällaista menetelmää kutsutaan deklaratiiviseksi (declarative) erotuksena proseduraalisesta (procedural): tieto esitetään kuvailevina lauseina sen sijaan että ohjelmoitaisiin valmiit toimintaohjeet. Edellinen yksinkertaistaa toimintaa ja on joustavampi, mutta jälkimmäinen ehkä tehokkaampi silloin kun se soveltuu. iemmin kiisteltiin siitä kumpi on oikea lähestymistapa, mutta molempia tarvittaneen. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.3/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.4/8 EIERKKIYÄRITÖ: ÖRKÖI Tämä ympäristö on 4 tench vain osittain havaittava, deterministinen, 3 tench tench Gold sekventiaalinen, staattinen, diskreetti, yhden agentin ympäristö (koska mörkö ei tee mitään). TRT 3 4 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.5/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.6/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.7/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.8/8
luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.9/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p./8 W W luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p./8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p./8 G W W luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.3/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.4/8 OGIIKK ogiikalla tarkoitetaan formaalia kieltä, jonka avulla voidaan esittää tietämystä ja tehdä päättelyä. Tarvitaan: Viimaa ruuduissa (,) ja (,) = ei turvallisia suuntia emua ruudussa (,) = ei turvallista liikkua Voi käyttää pakotusstrategiaa: ammu suoraan eteenpäin mörkö oli siellä = nuoli osui = mörkö ei ollut siellä = syntaksi (kielioppi): aakkosto ja lauseenmuodostussäännöt semantiikka (merkitysoppi): määrää lauseiden totuuden (truth) suhteessa malleihin (mahdollisiin maailmoihin) Esimerkiksi aritmetiikan kielessä x + y on lause; x + y > ei ole lause x + y on tosi joss luku x + ei ole pienempi kuin luku y x + y on tosi maailmassa jossa x = 7, y = x + y on epätosi maailmassa jossa x =, y = 6 objektikieli / metakieli luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.5/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.6/8
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 oogisella seurauksella tarkoitetaan että jokin lause seuraa toisista lauseista. jatellaan K lausejoukoksi ja sanotaan, että lause p seuraa loogisesti tietämyskannasta K K = p Representation World entences emantics Entails entence emantics joss kaikissa malleissa, joissa K on tosi, myös p on tosi. Esimerkiksi jos tietämyskannassa on lauseet HIFK voitti ja Jokerit voitti, niin niistä seuraa loogisesti myös lause HIFK voitti tai Jokerit voitti. spects of the real world Follows spect of the real world Esimerkiksi lauseesta x + y = 4 seuraa loogisesti lause 4 = x + y. ooginen seuraussuhde vallitsee lauseiden eli syntaktisten elementtien välillä, mutta se perustuu semantiikkaan. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.7/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.8/8 Tilanne kun ruudun [,] havainnot on tehty. iirrytään oikealle ja havaitaan viimaa ruudussa [,] Tarkastellaan kuoppien sijaintia ja konstruoidaan mahdolliset mallit.??? 3 totuusarvomuuttujaa 8 mahdollista mallia Viereisen ruudun turvallisuus voidaan saada selville mallintarkistuksen (model checking) avulla: Käydään läpi kaikki mahdolliset mallit ja selvitetään, onko lause josta olemme kiinnostuneet, esim. α, tosi kaikissa niissä malleissa, joissa K on tosi. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.9/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p./8 K K K =mörkömaailman säännöt + tehdyt havainnot K =mörkömaailman säännöt + tehdyt havainnot α = [,] on turvallinen mallintarkistus osoittaa että K = α luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p./8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p./8 K K K =mörkömaailman säännöt + tehdyt havainnot K =mörkömaailman säännöt + tehdyt havainnot α = [,] on turvallinen K = α luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.3/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.4/8
UEOGIIKK: YNTKI Tarkastellaan aluksi lause- eli propositiologiikkaa (propositional logic) ropositiosymbolit,,... ovat lauseita (atomilauseet), lisäksi T ja E ovat lauseita Jos on lause, niin on lause (negaatio) Jos ja ovat lauseita, niin ( ) on lause (konjunktio) Jos ja ovat lauseita, niin ( ) on lause (disjunktio) Jos ja ovat lauseita, niin ( ) on lause (implikaatio) Jos ja ovat lauseita, niin ( ) on lause (ekvivalenssi) ulut voi jättää pois kunhan ei synny monimerkityksisyyttä. idontasäännöt: ensin, sitten, ja lopuksi, UEOGIIKK: ENTIIKK Kukin malli kiinnittää atomilauseiden totuusarvon, lisäksi T on tosi ja E epätosi Yhdistetyt lauseet evaluoidaan suhteessa malliin m seuraavasti: on tosi, joss ei ole tosi. on tosi, joss on tosi ja on tosi. on tosi, joss on tosi tai on tosi. on tosi, joss on epätosi tai on tosi. on tosi, joss on tosi ja on tosi. Totuustaulut: E E T E E T T E T T E T T E T E E E T E E T T E T T T T luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.5/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.6/8 ropositiologiikan semantiikka antaa säännöt lauseiden totuusarvon määräämiseksi mallien suhteen. Olkoon esimerkiksi malli = {, = E,, = E, 3, = T } Nyt lauseen, (, 3, ) totuusarvo mallissa voidaan laskea rekursiivisesti konnektiivien totuustaulujen avulla: T (E T ) = T Tietämyskanta K, joka on muodostettu operaatioin TE(K, ),..., TE(K, n ) on lauseiden,..., n konjunktio: K =... n. K:tä voidaan siis käsitellä loogisena lauseena. Nyt voimme koodata esim. örkömaailman tietämyksen: Valitaan sopivat propositiosymbolit ja niiden tulkinnat: i,j tarkoittaa että ruudussa [i, j] on kuoppa i,j tarkoittaa että ruudussa [i, j] on viimaa. Koodataan yleiset lainalaisuudet, kuten se että ruudussa on viimaa jos ja vain jos viereisessä ruudussa on kuoppa:, (R ), (,, ) (R ), (,3, 3, ) (R 3 ). Kun tehdään havaintoja ympäristöstä, lisätään niitä vastaavat positiiviset tai negatiiviset literaalit:, (R 4 ), (R 5 ) luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.7/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.8/8 Kun kaikki tämä on saatu syötettyä tietämyskantaan TE-komennon avulla, voidaan ryhtyä kyselemään K-komennon avulla päteekö K = α jollekin α. Olisi esimerkiksi hyödyllistä tietää, seuraako tietämyksestämme,. Esimerkissämme kahden ensimmäisen ruudun vierailun aikana relevantteja propositiosymboleja on 7 kpl, joten mahdollisia malleja on 7 = 8 kpl. K on tosi vain kolmessa näistä. allintarkistusalgoritmilla näemme että, on tosi kaikissa näissä kolmessa mallissa, joten ruudussa [, ] ei ole kuoppaa. en sijaan, on tosi kahdessa ja epätosi yhdessä K:n mallissa, joten emme voi vielä päätellä ruudun [, ] kuoppaisuutta.,,,,,, 3, R R R 3 R 4 R 5 K E E E E E E E T T T T E E E E E E E E T T T E T E E............. E T E E E E E T T E T T E E T E E E E T T T T T T T E T E E E T E T T T T T T E T E E E T T T T T T T T E T E E T E E T E E T T E............. T T T T T T T E T T E T E luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.9/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.3/8 function TT-ENTI?(K, α) returns true or false inputs: K, the knowledge base, a sentence in propositional logic α, the query, a sentence in propositional logic symbols a list of the proposition symbols in K and α return TT-CHECK-(K, α, symbols, [ ]) function TT-CHECK-(K, α, symbols, model) returns true or false if ETY?(symbols) then if -TRUE?(K, model) then return -TRUE?(α, model) else return true else do FIRT(symbols); rest RET(symbols) return TT-CHECK-(K, α, rest, EXTEND(, true, model)) and TT-CHECK-(K, α, rest, EXTEND(, false, model)) Tämä mallintarkistukseen perustuva syvyyssuuntainen algoritmi on eheä, koska se perustuu suoraan loogisen seuraamisen määritelmään. e on myös täydellinen, koska se toimii mille tahansa K:lle ja α:lle aina pysähtyen. ahdollisia malleja on äärellinen määrä. Jos K ja α sisältävät yhteensä n symbolia, niin malleja on n kpl, siis aikavaatimus on luokkaa O( n ). Itse asiassa kaikkien tunnettujen lauselogiikan päättelyalgoritmien pahimman tapauksen aikavaativuus on eksponentiaalinen syötteen koon suhteen. auselogiikan loogisen seuraamisen päätösongelma on co-n-täydellinen. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.3/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.3/8
ENTTII KÄITTEITÄ ause β seuraa loogisesti lauseesta α, merkitään α = β, joss kaikissa malleissa, joissa α on tosi, myös β on tosi. auseet α ja β ovat loogisesti ekvivalentteja, merkitään α β, joss α = β ja β = α. ause on loogisesti tosi / validi / pätevä / tautologia, jos se on tosi kaikissa malleissa, siis = α. ause on toteutuva (satisfiable), jos on olemassa malli, jossa se on tosi (malli toteuttaa sen). ause on kumoutuva (refutable), jos on olemassa malli, jossa se on epätosi. ause on loogisesti epätosi / ristiriitainen (unsatisfiable), jos se on epätosi kaikissa malleissa. Yhteys loogisen seurauksen ja materiaalisen implikaation välillä: deduktioteoreema: α = β joss (α β) on loogisesti tosi. YNTKTII KÄITTEITÄ ause α on johdettavissa (derivable) tietämyskannasta tai teoriasta K jollain todistusjärjestelmällä i K i α jos se voidaan todistaa K:n lauseista käyttäen i:n päättelysääntöjä ja aksioomia. ause α on todistuva eli teoreema, jos i α eli se on johdettavissa tyhjästä lausejoukosta. äättelyjärjestelmä i on eheä (sound), joss siitä että K i α seuraa että K = α, siis jos sillä voidaan todistaa ainoastaan tietämyskannan loogisia seurauksia. äättelyjärjestelmä i on täydellinen (complete), joss siitä että K = α seuraa että K i α, siis jos sillä voidaan todistaa kaikki tietämyskannan loogiset seuraukset. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.33/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.34/8 ÄÄTTEY ROOITIOOGIIK ropositiologiikalle on olemassa päättelyjärjestelmiä, jotka ovat sekä eheitä että täydellisiä. Tästä seuraa se, että lauselogiikassa todistuvat lauseet ovat samoja kuin pätevät lauseet eikä siksi aina jakseta tehdä tarkkaa eroa semanttisten ja syntaktisten käsitteiden välille. On kuitenkin syytä tiedostaa ero. Täydellisyyden käsite esiintyy nyt kurssilla uudessa merkityksessä: aiemmin puhuttiin täydellisistä etsintäalgoritmeista, nyt täydellisistä päättelyjärjestelmistä. Näillä on yhteys, sillä päättelyä voidaan tarkastella etsintäprosessina. Jos halutaan olla varmoja päättelyn onnistumisesta, täytyy täydellisen päättelyjärjestelmän yhteydessä käyttää täydellistä etsintämenetelmää! äättelyllä (engl. inference/derivation) voidaan tarkoittaa semanttista tai syntaktista. emanttiset menetelmät perustuvat mallintarkistukseen (kuten edellä), syntaktiset symbolien manipulointiin. Nyt tarkastellaan jälkimmäisiä. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.35/8 äättelyjärjestelmän avulla voimme tutkia, mitkä lauseet ovat todistuvia tietämyskannan perusteella. Tarvitaan päättelysääntöjä (inference rules), kuten esim. α β α odus ponens: β Konjunktion poisto: α β α α β β α β Konjunktion tuonti: α β Nämä säännöt ovat aina eheitä joten niitä voidaan soveltaa suoraan eikä ole tarvetta tehdä mallintarkistusta. Eheitä päättelysääntöjä saadaan esimerkiksi seuraavista tunnetuista ekvivalensseista. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.36/8 Tunnettuja loogisia ekvivalensseja: (α β) (β α) kommutatiivisuus (α β) (β α) kommutatiivisuus ((α β) γ) (α (β γ)) assosiatiivisuus ((α β) γ) (α (β γ)) assosiatiivisuus ( α) α kaksoisnegaation poisto (α β) ( β α) kontrapositio (α β) ( α β) implikaation poisto (α β) ((α β) (β α)) ekvivalenssin poisto (α β) ( α β) de organ (α β) ( α β) de organ (α (β γ)) ((α β) (α γ)) distributiivisuus (α (β γ)) ((α β) (α γ)) distributiivisuus Tavallisia päättelyjärjestelmiä: Hilbert-järjestelmät Gentzenin luonnollisen päättelyn järjestelmät Gentzenin sekvenssikalkyyli Resoluutioon perustuvat järjestelmät luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.37/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.38/8 EIERKKI ÄÄTTEYTÄ Tarkastellaan päättelyä mörkömaailmassa: pyritään todistamaan ettei ruudussa [, ] ole kuoppaa. Olkoon tilanne seuraavanlainen:,4,4 3,4 4,4,3,3 3,3 4,3,, 3, 4,,, 3, 4, (a) = gent = G = Glitter, Gold = afe square = it = tench V = Visited W = Wumpus,4,4 3,4 4,4,3,3 3,3 4,3,, 3, 4,,, 3, 4, V (b) Tietämyskannassa on lauseet R,..., R 5 :, (premissi) (R ), (,, ) (premissi) (R ), (,, 3, ) (premissi) (R 3 ), (premissi) (R 4 ), (premissi) (R 5 ) (, (,, )) ((,, ), ) ( ER ) (R 6 ) (,, ), ) ( ER 6 ) (R 7 ) (, (,, )) (kontrap. R 7 ) (R 8 ) (,, ) ( R 8, R 4 ) (R 9 ),, (de organ R 9 ) (R ) öydettiin siis todistus (proof) sille, ettei ruuduisssa [, ] ja [, ] ole kuoppia. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.39/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.4/8
REOUUTIOENETEÄ Koska päättely propositiologiikassa on N-täydellistä, niin pahimmassa tapauksessa todistuksen etsiminen on yhtä tehotonta kuin mallintarkastus. Käytännössä kuitenkin irrelevanttien tietojen huomiotta jättäminen tekee usein todistamisen tehokkaaksi. Esimerkiksi edellisessä todistuksessa ei tarvinnut huomioida lainkaan säännöissä R, R 3 ja R 5 mainittuja propositiosymboleita,,,,, ja 3, kun taas totuustaulukkomenetelmässä nekin olisi pitänyt ottaa mukaan tarkasteluun. ogiikan monotonisuus: tiedon lisääntyessä loogisten seurausten määrä voi vain kasvaa: jos K = α, niin K β = α. Edellä mainituissa päättelyjärjestelmissä yhdenkin säännön poistaminen rikkoo järjestelmän täydellisyyden. Resoluutiosääntö yhdistettynä täydelliseen hakualgoritmiin antaa (refutaatio)täydellisen päättelyjärjestelmän. Resoluutioaskel kahden literaalin tapauksessa: l l l l 3 l l 3 Tarkastellaan jälleen päättelyä örkömaailmassa:,4,4 3,4 4,4,3,3 3,3 4,3 W!,, 3, 4,,, 3,! 4, V V = gent = G = Glitter, Gold = afe square = it = tench V = Visited W = Wumpus,4,4 3,4 4,4,3 W!,3 3,3 4,3 G,, 3, 4, V V,, 3,! 4, V V (a) (b) luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.4/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.4/8 Ruudussa [, ] agentti aistii löyhkän muttei viimaa:, (R ), (,,,3 ) (R ) Vastaavasti kuin aiemmin, voidaan todeta, ettei ruuduissa [, ] ja [, 3] ole kuoppia:, (R 3 ),3 (R 4 ) Ekvivalenssin poisto (R 3 ) ja (R 5 ) tuottavat disjunktion,, 3, (R 5 ) Nyt voidaan soveltaa resoluutiosääntöä literaalilla, (R 3 ):, 3, (R 6 ) Ja sitten literaalilla, (R ): 3, (R 7 ) Äsken käytettiin yksikköresoluutiota (unit resolution): l... l k m l... l i l i+... l k missä l i ja m ovat toistensa komplementtiliteraaleja, siis toinen on atomilause ja toinen sen negaatio. Yleinen resoluutiosääntö on seuraava: l... l k m... m n l... l i l i+... l k m... m j m j+... m n missä l i ja m j ovat toistensa komplementtiliteraaleja. ääntöä sovellettaessa johtopäätös voi sisältää saman literaalin kaksi kertaa, jolloin toinen esiintymä täytyy poistaa kuten alla: luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.43/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.44/8 Resoluutio on eheä päättelysääntö ja se on myös täydellinen siinä mielessä, että sen avulla voidaan ratkaista mielivaltaisesta propositiologiikan lauseesta, seuraako lause tietokannasta vai ei. Tätä kutsutaan refutaatiotäydellisyydeksi. Resoluutiolla ei siis voi tuottaa automaattisesti kaikkia tietokannasta seuraavia lauseita. Esimerkiksi :sta ei resoluutiolla saada pääteltyä. en sijaan voidaan kyllä testata seuraako lauseesta. Resoluutiomenetelmän idea perustuu todistustapaan nimeltä reductio ad absurdum: kun halutaan todistaa, että jokin lause α seuraa loogisesti tietokannasta K, voidaan muodostaa lause K α ja johtaa siitä ristiriita. Kutsutaan myös nimillä refutation tai proof by contradiction eli epäsuora todistus tai todistaminen ristiriidan kautta. erustelu: α = β joss α β on loogisesti epätosi. Resoluutiomenetelmän käyttö vaatii ensin lauseiden muuntamista konjunktiiviseen normaalimuotoon (CNF) (joka on klausuulien konjunktio): (l,... l,k )... (l n,... l n,m ). Esim., (,, ). Eliminoidaan ekvivalenssit: (, (,, )) ((,, ), ). Eliminoidaan implikaatiot: (,,, ) ( (,, ), ) 3. iirretään negaatiot mahdollisimman syvälle sisään kaksoisnegaation poistolla ja de organin säännöillä: (,,, ) ((,, ), ) 4. ovelletaan distributiivisuutta tarvittaessa: (,,, ) (,, ) (,, ) luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.45/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.46/8 lgoritmi:. uutetaan lause (K α) CNF-muotoon.. Käytetään saatuja lauseita premisseinä resoluutiosäännölle ja lisätään johtopäätökset lauseiden joukkoon. 3. Jatketaan kunnes joko (a) Uusia lauseita ei enää voi lisätä α ei seuraa tietokannasta. (b) Resoluutiosäännön soveltaminen tuottaa ristiriidan eli tyhjän disjunktion α seuraa tietokannasta. function -REOUTION(K, α) returns true or false inputs: K, the knowledge base, a sentence in propositional logic α, the query, a sentence in propositional logic clauses the set of clauses in the CNF representation of K α new { } loop do for each C i, C j in clauses do resolvents -REOVE(C i, C j ) if resolvents contains the empty clause then return true new new resolvents if new clauses then return false clauses clauses new luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.47/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.48/8
EIERKKI K = (, (,, )), α =, Tarkastellaan siis seuraavia konjunktiivisessa normaalimuodossa olevia lauseita: (,,, ), (,, ), (,, ),, ja,.,,,,,,,,,,,,,,,,,,, aadaan ristiriita, joten K = α.,,,, ETEEN- J TKEÄINKETJUTU Resoluutio on täydellinen, mutta siksi myös N-täydellinen. Käytännön tilanteissa on parempi tyytyä heikompaan mutta tehokkaampaan menetelmään. Rajoitetaan päättelyä siten, ettei käsitellä kaikkia lauseita vaan ainoastaan nk. Hornin lauseita (Horn clauses): Ne ovat disjunktioita literaaleista, joista korkeintaan yksi on positiivinen ja muut negatiivisia. Tällaiset muotoa...... n olevat lauseet voidaan esittää loogisesti ekvivalentissa muodossa... n, jossa implikaation etujäsentä kutsutaan lauseen rungoksi (body) ja takajäsentä kärjeksi (head). Jos Hornin lauseella ei ole lainkaan runkoa, niin kyseessä on fakta (fact). luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.49/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.5/8 Tällaiset säännöt ovat helposti ymmärrettäviä ja niiden avulla voidaan kuvata monen erikoisalueen tietämystä. äättely Hornin lauseilla voi perustua joko eteenpäin ketjutukseen (forward chaining) tai taaksepäin ketjutukseen (backward chaining). oogisen seuraamisen tutkimisen aikavaativuus on Hornin lauseilla vain lineaarista tietämyskannan koon suhteen. Eteenpäin ketjutuksessa tutkitaan, minkä kaikkien sääntöjen rungot ovat tosia tunnettujen faktojen perusteella. Niiden kärjet voidaan sitten lisätä uusiksi faktoiksi tietämyskantaan. Tätä jatketaan kunnes haluttu johtopäätös on saatu todistettua tai kun uusia päätelmiä ei enää voida tehdä. function -FC-ENTI?(K, q) returns true or false inputs: K, a set of propositional Horn clauses q, the query, a proposition symbol local variables: count, a table, indexed by clause, in. # of premises while agenda is not empty do p O(agenda) unless inferred[p] do return false inferred, a table, indexed by symbol, each false agenda, a list of symbols, initially the symbols in K inferred[p] true for each Horn clause c in whose premise p appears do decrement count[c] if count[c] = then do if HED[c] = q then return true UH(HED[c], agenda) luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.5/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.5/8 lgoritmin toimintaa voi havainnollistaa J TI-verkon (ND OR graph) avulla:. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.53/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.54/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.55/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.56/8
luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.57/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.58/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.59/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.6/8 äättely on eheää ja myös täydellistä siinä mielessä, että sen avulla voidaan johtaa kaikki atomilauseet jotka seuraavat tietämyskannasta. Kyseessä on datalähtöinen (data driven) päättely: siinä lähdetään liikkeelle tietämyskannan datasta ja todistetaan kaikkea mahdollista kunnes osutaan kiinnostavaan johtopäätökseen. Tavoiteohjattua (goal-directed) päättelyä edustaa taaksepäinketjutus (backward chaining), jossa lähdetään liikkeelle halutusta johtopäätöksestä ja tutkitaan mitä täytyy todistaa johtopäätöksen todistamiseksi. Tätä jatketaan kunnes joko päästään faktoihin tai huomataan ettei johtopäätös todistu. Tämäkin toimii lineaarisessa ajassa ja eroaa eteenpäinketjutuksesta siinä, että se käsittelee vain relevantteja faktoja eikä tuota sokeasti kaikkia. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.6/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.6/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.63/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.64/8
luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.65/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.66/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.67/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.68/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.69/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.7/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.7/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.7/8
TEH ENTIIKKN ERUTUV ÄÄTTEY D-GORITI Tarkastellaan vielä kahta mallintarkistukseen perustuvaa (semanttista) päättelymekanismia: Davis-utnam-algoritmia (D) ja WKT-algoritmia, jotka yrittävät löytää mallin jossa annettu lause on tosi, siis toteutuvuusongelmaa (T), joka tiedetään N-täydelliseksi. Davis-utnam-algoritmi Ottaa syötteenään konjunktiivisessa normaalimuodossa olevan lauseen. erustuu peruuttavaan syvyyssuuntaiseen etsintään, jossa käydään läpi mahdolliset mallit ja tutkitaan toteuttaako jokin niistä annetun lauseen. Käyttää erilaisia kikkoja haarautumisasteen pienentämiseen ja haun lopettamiseen mahdollisimman nopeasti (early termination, pure symbol heuristic, unit clause heuristic). Nopeimpia toteutuvuusongelman ratkaisevia algoritmeja. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.73/8 function D-TIFIE?(s) returns true or false inputs: s, a sentence in propositional logic clauses the set of clauses in the CNF representation of s symbols a list of the proposition symbols in s return D(clauses, symbols, [ ]) function D(clauses, symbols, model) returns true or false if every clause in clauses is true in model then return true if some clause in clauses is false in model then return true, value FIND-URE-YO(symbols, clauses, model) if is non-null then return D(clauses, symbols, [ =value model]), value FIND-UNIT-CUE(clauses, model) if is non-null then return D(clauses, symbols, [ =value model]) FIRT(symbols); rest RET(symbols) return D(clauses, rest, [ =true model])or D(clauses, rest, [ =false model]) luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.74/8 IKIEEN ETINTÄÄN ERUTUVT GORITIT aloitetaan satunnaisesta totuusarvojakelusta ja muutetaan sitä minimoimalla epätosien klausuulien (clause) lukumäärää (vrt. min-conflicts heuristic) paikallisia minimejä on paljon, joten tarvitaan satunnaisuuttakin WKT-algoritmi valitsee jonkin toteutumattoman klausuulin ja vaihtaa jonkin siinä esiintyvän literaalin totuusarvon: literaali valitaan joko satunnaisesti tai minimoimalla epätosia klausuuleja. Jos WKT löytää mallin, niin syötelause on toteutuva, mutta jos se ei palauta mallia, niin se tarkoittaa vain ettei se kyennyt löytämään sellaista, eikä sitä ettei sellaista ole! Iterointia voidaan toki jatkaa äärettömän kauan löytämisen varmistamiseksi, mutta silloin algoritmi ei loogisesti epätosien lauseiden kohdalla pysähdy koskaan. toteutumattomuutta (eli ristiriitaisuutta) ei voi tarkistaa function WKT(clauses, p, max-flips) returns a satisfying model or failure inputs: clauses, a set of clauses in propositional logic p, the probability of choosing to do a random walk move, typically around.5 max-flips, number of flips allowed before giving up model a random assignment of true/false to the symbols in clauses for i = to max-flips do if model satisfies clauses then return model clause a randomly selected clause from clauses that is false in model with probability p flip the value in model of a randomly selected symbol from clause else flip whichever symbol in clause maximizes the number of satisfied clauses return failure luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.75/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.76/8 UEOGIIKKN ERUTUVT GENTIT Koska lauseiden totuutta koskevat ongelmat ovat N-täydellisiä, käytännön ongelmissa lauseen p totuuden tai epätotuuden selvittämiseksi toimitaankin usein rinnakkaisesti: samaan aikaan käytetään mallintarkistajaa etsimään mallia p:lle ja teoreemantodistajaa etsimään todistusta p:lle (jolloin nähtäisiin ettei mallia voi olla olemassa). (Tai vastaavasti jos halutaan tutkia onko p todistuva, käytetään teoreemantodistajaa p:lle ja mallintarkistajaa p:lle.) Ongelmana lauseiden suuri lukumäärä tietämyksen esittämisessä jan ja paikan (muutoksen) huomioonottaminen pahentaa tilannetta entisestään. Yksi mahdollisuus on koodata logiikka laitteistolle. Tätä käsitellään lyhyesti seuraavaksi. Toinen mahdollisuus on siirtyminen ilmaisuvoimaisemman kielen käyttämiseen. Tätä käsitellään seuraavassa luvussa. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.77/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.78/8 OGIIKKIIREIHIN ERUTUVT GENTIT loogiset konnektiivit esitetään porteilla (gates) ja rekisterit koodaavat propositioiden totuusarvot. Tulosteina piireillä on rekisteriarvot, jotka tarkoittavat tekoja. ajan käsittely on helpompaa kuin tavallisessa deklaratiivisessa esityksessä, koska esitystä ei tarvitse kopioida jokaiselle ajanhetkelle vaan piiri vain evaluoidaan kyseisellä ajanhetkellä tench Glitter ump cream, Facingeft, Forward Turneft TurnRight Grab hoot, Forward FacingDown tench Glitter ump cream live Turneft TurnRight Grab hoot Ongelma: kaikilla rekistereillä täytyy aina olla arvot (tosi tai epätosi) kun taas tietämyskannassa kullakin atomilauseella voi olla kolme tilaa: atomilause on kannassa, atomilauseen negaatio on kannassa tai kumpikin puuttuu. Ongelma voidaan kiertää käyttämällä tietopropositioita (knowledge propositions). uita vaatimuksia piirien käytölle: lokaalisuus, syklittömyys luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.79/8 luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.8/8
DEKRTIIVIET J ROEDURIET EITYKET Esityksen tiiviys: iiripohjainen esitys ei vaadi samojen asioiden esittämistä jokaiselle ajanhetkelle erikseen, mutta siinäkin jokaiselle paikalle täytyy olla oma piirinsä askennallinen tehokkuus: äättely voi pahimmassa tapauksessa viedä eksponentiaalisen ajan symboleiden lukumäärään nähden, kun taas piirit voidaan evaluoida lineaarisessa ajassa niiden kokoon nähden. Tosin D toimii yleensä nopeammin ja kaikki päättelyt jotka piiripohjaiset agentit tekevät, voidaan hoitaa myös D:llä lineaarisessa ajassa. Täydellisyys: eriaatteessa piireillä voidaan tehdä kaikki mitä tietämyskantoihin perustuvilla ohjelmillakin, mutta piirit kasvavat eksponentiaalisen suuriksi tietämyskantoihin verrattuna ja hyvin monimutkaisiksi. Tietämyskannalla voidaan tehdä sellaisiakin päättelyitä joita ei ole etukäteen erikseen ohjelmoitu. Konstruoinnin helppous: Deklaratiivista pidetään usein helpompana. luku7.tex 5866-7 Tekoäly (4 ov / 8 op) Raul Hakli 3//5 :8 p.8/8