HKGBB0, Artificiell intelligens Kortfattade lösningsförslag till tentan 3 november 2005 Arne Jönsson 1. Vad karaktäriserar dagens AI-forskning jämfört med den AI-forskning som bedrevs perioden 1960-1985. (2) Typiskt för modern AI-forskning är att man inte längre bara kan visa att man kan åstadkomma något som verkar intelligent i en liten leksaksvärld. Istället måste man arbeta med verkliga problem och visa att ens lösning fungerar utanför laboratoriet. Dessutom måste man formellt bevisa egenskaperna hos den artefakt man skapat och t.ex. studera dess komplexitet. Man måste också bygga sina modeller på empiriska studier av såväl den verklighet man vill modellera som att den modell man skapat verkligen fungerar. 2. Förlara begreppet asymptotiskt beteende? En algoritm har följande tidskomplexitet T (n 5 + 50n 2 + 40n + 60). Vilken asymptotisk komplexitet har algoritmen, dvs skriv om T () till O()? Asymptotiskt beteende innebär att man undersöker algoritmens beteende för stora tal, stora n i exemplet. T (n 5 + 50n 2 + 40n + 60) får då en komplexitet som bara beror av det största talet, dvs O(n 5 ). 3. Beskriv djupbegränsad sökning, dess tillämpbarhet och begränsningar. Redogör för dess egenskaper (komplett, optimal, samt tids- och minnesåtgång). Djupbegränsad sökning fungerar som djupet först med den skillnaden att man sätter ett maxdjup, l, som är det maximala sökdjupet. När detta nås avslutas alltså djupsökningen och sökalgoritmen backar uppåt i trädet och söker ner till l igen osv. Vi får då en sökstrategi som har djupet försts minneskomplexitet b l men fortfarande har tidskomplexiteten b l, dvs exponentiellt. Om l inte är för litet är metoden komplett men inte nödvändigtvis optimal. Är l för litet är metoden inte heller komplett. 4. Förklara hur genetiska algoritmer fungerar. Beskriv de olika stegen, tre olika sätt att skapa nya individer samt hur man kan värdera olika tillstånd. Visa gärna med ett exempel hur det hela fungerar. kan ses som en iterativ sökmetod som utgår från de bästa tillstånden, vanligen kallade kromosomer, och förbättrar dessa med operatorer inspirerade från naturlig genetisk variation och naturligt urval. Man arbetar parallellt med flera sökrymder, populationer. En genetisk algoritm börjar med att initialisera populationen och sen följer en loop som utvärderar, väljer föräldrar för reproduktion, korsar och muterar tills dess att en extern utvärdering anser att resultatet är tillfredställande. Föräldrarna väljs ofta slumpmässigt med hänsyn till kromosomutvärdering. Viktigt är också att införa slumpmässiga kromosomförändringar som t.ex. mutationer, då några bitar (2) 1
slumpmässigt byts ut och korsningar, då man väljer ut positioner i två kromosomer och låter delarna byta plats. Om man t.ex. har enkla kromosomer bestående av sex binära siffror och vill ha bara sex ettor kan man börja med att skapa en mängd kromosomer med slummässigt satta värden: 111000 010001 000111 101011 algoritmen räknar hur många ettor det finns, i exemplet ovan blir det 3, 2, 3 respektive 4. Algoritmen väljer sedan vilka individer som skall gå vidare, samt vilka som skall reproduceras och hur de skall korsas. Vi kan låta de två bästa gå vidare och de två nästbästa korsa sig och låta den sämsta gå vidare med tre bitar muterade. Vi skulle då kunna få 101011 (bästa kromosomen från förra populationen) 111000 (en av de två nästbästa) 111111 (de två nästbästa korsade mitt i) 100100 (den sämsta muterad i position 1, 3 och 6) och kan vi förvånat konstatera att vi redan fått en lösning. 5. Gör rimliga antaganden och översätt följande meningar till predikatlogiska uttryck: Alla nystartade partier som är kontroversiella synas av massmedia Det är inte lätt att vara kontroversiell och synas av massmedia IFF är ett nystartat parti som har det lätt och visa med resolution att: IFF är inte kontroversiella (4) (1) p NystartatParti(p) Kontroversiell(p) Massmediasynas(p) (2) q Kontroversiell(q) Massmediasynas(q) HaLätt(q) NystartatParti(IFF) HaLätt(IFF) (4) Kontroversiell(IFF) efter konvertering och negering fås: (1) NystartatParti(p) Kontroversiell(p) Massmediasynas(p) (2) Kontroversiell(q) Massmediasynas(q) HaLätt(q) (3a) NystartatParti(IFF) (3b) HaLätt(IFF) (4) Kontroversiell(IFF) och sen ger resolution t.ex. (4) + (1) med {p/iff} (5) NystartatParti(IFF) Massmediasynas(IFF) (5) + (3a) ger (6) Massmediasynas(IFF) (6) + (2) med {q/iff} ger (7) Kontroversiell(IFF) HaLätt(q) (7) + (3b) ger (8) Kontroversiell(IFF) (8) + (4) ger en tom klausul 2
6. Hur kan man representera tid och tidsintervall i en generell ontologi? Visa hur minst två temporala relationer representeras. Man definierar tidsintervall i termer av när de börjar respektive slutar med ett predikat Time som tar predikat Start resp. End. Det finns fyra principiellt olika fall: Meet(i,j), Before(i,j)=After(j,i), During(i,j) och Overlap(i,j). i,j Meet(i,j) Time(End(i)) = Time(Start(j)) i,j Before(i,j) Time(End(i)) < Time(Start(j)) i,j During(i,j) Time(Start(j)) Time(Start(i)) Time(End(i)) Time(End(j)) i,j Overlap(i,j) k During(k,i) During(k,j) 7. Vad är succesor-state axiom? Visa hur man representerar handlingar med succesor-state axiom. Diskutera problem som succesor state-axiom löser och problem som kvarstår. Ett successor-state axiom är ett sätt att representera såväl handlingar som frameaxiom i situationskalkyl. Succesor-state axiom löser representationsproblemet men inte qualification-problemet, dvs att räkna upp alla förutsättningar för att lyckas utföra en handling, eller ramification-problemet, dvs problemet att räkna upp alla implicita konsekvenser av en handling. Man representerar vad som påverkas av handlingen och vad som inte påverkas av handlingen Sann i nästa situation handling utförs som gör sann redan sann och ingen handling som gör falsk utförs t.ex. x,a,s Partiledare(x,Result(a,s)) Valbar(x,s) a=väljs Partiledare(x,s) a Avsätts 8. Konstruera ett Bayesianskt nätverk med villkorssannolikhetstabeller för följande probabilistiska samband. P(a b)=0,5, P(a b)= P(b)=, P(c)=, P(d b c)=, P(d b c)=, P(d b c)=, P(d b c)=0,2 Räkna ut P(a b c d) (Det räcker att teckna uttrycket). (4) P(B) B C P(C) b b P(A) 0,5 A D b c b c b c b c P(D) 0,2 P(a b c d) = *0,6**=0,0216 3
9. Visa hur planeringsgrafen, med mutexlänkar, ser ut vid planering från initialtillståndet Init(Läst(Tenta) Skrivit(Tenta)) till måltillståndet Goal(Klara(Tenta)) med handlingen OP(Action:Skriva(Tenta), Precond:Läst(Tenta), Effect: Skrivit(Tenta) Klara(Tenta)). Skrivit(Tenta) Skrivit(Tenta) Skriva(Tenta) Skrivit(Tenta) Klara(Tenta) Läst(Tenta) Läst(Tenta) 10. Förklara inlärningsmetoden Version Space. Förklara hur metoden hanterar positiva respektive negativa exempel och hur hypotesrymden påverkas. Version Space hittar både den mest specifika och den mest generella beskrivning som täcker alla positiva exempel och inget negativt. Metoden arbetar med två hypotesmängder S och G. S är de mest specifika hypoteser som täcker alla positiva exempel och inget negativt medan G är de mest generella hypoteser som täcker alla positiva exempel och inget negativt. Vid inlärning presenteras omväxlande positiva och negativa exempel. När ett positivt exempel p presenteras börjar algoritmen med att ta bort de hypoteser ur G som inte matchar p. Sedan ersätts alla hypoteser i S som inte matchar p med de mest specifika generaliseringar som matchar p, är mer specifika än någon hypotes i G och inte är mer generella än någon hypotes i S. Om det är ett negativt exempel n så gör man tvärtom, i princip. Först tar algoritmen bort de hypoteser ur S som matchar n. Sen ersätter den alla hypoteser i G som matchar n med de mest generella specialiseringar som inte matchar n, är mer generella än någon hypotes i S och inte är mer specifik än någon hypotes i G På så sätt bygger man en tolkningsrymd där G är den mest generella beskrivningen och S den mest specifika utifrån de exempel som presenterats. 11. Beskriv gradient backpropagation algoritmen. När kan den användas? Hur fungerar den? Gradient backpropagation används för inlärning av neurala nät. Man matar in indata till nätet, aktiverar nätet och får ett resultat. Detta resultat jämförs med ett förväntat resultat och det fel som uppstår används för att träna nätet. Nätet tränas genom att justera vikterna. För utdatalagret justeras vikterna genom att för varje utdatanod ändra vikterna på noderna in beroende på hur stort fel man hade multiplicerat med hur stor inverkan den dolda noden hade och sen multipliceras detta med en förstärkningsfaktor för att inte inlärningen skall svänga för mycket. För dolda lager räknas felet ut genom att man antar att den dolda nodens fel är proportionellt mot hur stort felet var i lagret ovan, dvs för det dolda lagret närmast utdatalagret räknar man det fel som fanns vid jämförelse med förväntad signal och summerar över felet från alla utdatanoder med sin vikt från den dolda noden och för dolda lager där under räknas pss fast då baserat på felet som den dolda noden fick. Man går hela tiden bakifrån utadatalagret mot indatalagret som är det sista som uppdateras. Detta upprepas tills dess att man är nöjd med resultatet. Nöjd betyder inte att man vill ha noll fel, eftersom det kan leda till överinlärning. Gradient i algoritmnamnet betyder att felet man får när man tar skillnaden mellan förväntad och erhållen multipliceras med derivatan av hela nätets utdatafunktion. 4
12. Vad är en diskursenhet? Vad innebär det att hantera lokal diskurs med diskursenheter och en historielista? Förklara hur man kan hantera följande diskurs med diskursenheter och historielista: Den feta pudeln skällde ilsket på lärarna. De blev irriterade och skällde tillbaks. Då tystnade den och lommade lojt bort i natten. En diskursenhet representerar de konstituenter i diskursen som senare kan refereras, utgöra antecedenter i refererande uttryck, oftast substantiv. Man representerar diskursenhetens individuella restriktioner och eventuella mängdrestriktioner. Att hantera lokal diskurs med historielista innebär att man lagrar diskursenheter i en lista och temporalt och väljer den första diskursenhet i historielistan vars individuella restriktioner och mängdrestriktioner passar. I diskursen ovan får vi för första meningen: DE IR SR P P = 1 {p Fet(p)} L L > 1 - I nästa yttrande kommer pronominat De att co-referera den första plural DE, dvs L. I sista yttrandet kommer sen den att co-referera första DE i singular, dvs P. Sista meningen innehåller också natten som skulle kunna ge upphov till ytterligare en diskursenhet. 5