Omtentamen Artificial Intelligence Datum: 2014-08-27 Tid: 09.00 13.00 Ansvarig: Resultat: Hjälpmedel: Gränser: Anders Gidenstam Redovisas inom tre veckor Inga G 8p, VG 12p, Max 16p Notera: Skriv läsbart! Oläsligt innebär inga poäng. Numrera och skriv namn på alla sidor. Onödigt krångliga lösningar ger poängavdrag. Lycka Till!
1) Problemrepresentation och sökning i tillståndsrymder. (4p) Kannibaler och missionärer är ett välkänt problem inom AI. Tre kannibaler och tre missionärer befinner sig på en stand A på ena sidan av en å och måste ta sig över till den andra standen B. Till sin hjälp har de en eka som rymmer maximalt 2 personer åt gången. Ingen person kan simma över ån och ekan kan inte flyta över ån av sig själv utan det måste finnas åtminstone 1 person i ekan. Dessutom får det inte finnas fler kannibaler än missionärer på någon utav de två stränderna vid något tillfälle, annars äter kanibalerna upp missionärerna. Generisk Sökalgoritm 1. Placera initialtillståndet S i en tom lista OPEN. 2. Skapa en tom lista CLOSED. 3. Om OPEN är tom, avsluta med misslyckande. 4. Avlägsna den första noden N i OPEN och placera i CLOSED. 5. Om N är en målnod, avsluta med lyckats. 6. Expandera N, dvs använd produktionsreglerna för att hitta en mängd NEW av noder som kan nås från N. Av dessa noder, lägg noderna i OPEN om de inte redan finns i OPEN eller CLOSED. Sortera noderna beroende på vald sökstrategi. 7. Loopa tillbaka till steg 3. a) Ge en lämplig representation av problemet: Hur ser representationen av tillstånden ut? Viket är starttillståndet samt måltillståndet? Hur ser produktionsreglerna ut, dvs vilka är de möjliga (tillåtna) förflyttningarna från ett tillstånd till ett annat? b) Bredden först och djupet först är två vanliga sökstrategier. Förklara med egna ord hur dessa sökstrategierna fungerar samt jämför deras för- och nackdelar. Förklara även hur OPEN listan (i den generiska sökalgoritmen ovan) implementeras (datastruktur) för respektive sökstrategi, dvs hur läggs noderna i NEW till i OPEN listan i steg 6 i den generiska sökalgoritmen för bredden först samt djupet först? c) Rita de två första nivåerna i problemets sökträd för bredden först och djupet först (dvs expandera startnoden samt nästa nivå). För varje nivå, ange hur innehållet i listorna OPEN och CLOSED ser ut (numrera noderna 1..n). Förklara även syftet med de två listorna OPEN och CLOSED. Vad hade hänt om samtliga noder i NEW lades till i OPEN (steg 6) även om vissa noder redan fanns i OPEN eller CLOSED? d) För problem där vissa noder kan vara mer lovande än andra, t.ex. där kostnaden att gå via en barnnod är mindre än en annan, kan sökstrategierna best first samt hill climbing användas. Dessa två sökstrategierna kan användas i den generiska sökalgoritmen ovan (steg 6). Ange om noderna i NEW läggs till först eller sist i OPEN listan samt hur noderna sorteras för respektive sökstrategi (i steg 6). Tips: antigen sorteras NEW innan noderna läggs till i OPEN eller så sorteras hela listan efter att NEW har lagts till i OPEN).
2) Logiska agenter. (4p) En klass av exempelvärldar för logiska agenter som boken tar upp är Wumpusvärldarna. Ett exempel på en sådan värld följer nedan. a) Skriv en PEAS (Performance, Environment, Actuators/Actions, Sensors) beskrivning för en agent i en Wumpusvärld. b) Karakterisera agentens miljö i en Wumpusvärld utifrån dimensionerna Nivå av observerbarhet Deterministisk/Stokastisk Episodisk/Sekventiell Statisk/Dynamisk Diskret/Kontinuerlig En/Flera agenter. c) Definiera följande två predikat i predikatlogik (First-Order Logic) för Wumpusvärldar: Predikatet Breezy(s) som är sant för de rutor s som ligger intill en grop. Predikatet HaveGold(t) som är sant om och endast om agenten bär på guldet vid tiden t. Du kan anta att predikaten Action(a,t) som är sant om agenten utförde handlingen a vid tiden t; Adjacent(a,b) som är sant om rutorna a och b ligger intill varandra; Breeze(t) som är sant om agenten kände drag vid tiden t; Glitter(t) som är sant om agenten såg guldet glittra vid tiden t; Pit(a) som är sant om a är en ruta med en grop; och Stench(t) som är sant om agenten kände lukten av en Wumpus vid tiden t; samt de axiom som krävs för heltalsmatematik finns.
3) Klassisk planering (4p) a) Beskriv de typiska egenskaper (bl.a. utifrån dimensionerna i uppgift 2b) hos ett problem som krävs för att de metoder som inom AI kallas klassisk planering skall vara applicerbara. b) Boken beskriver ett språk för att beskriva planeringsproblem, Planning Domain Definition Language (PDDL). Beskriv språkets delar, hur de tillsammans modellerar problemet samt hur språket förhåller sig till satslogik och predikatlogik, speciellt utifrån uttryckskraften. Notera att svaret inte behöver fördjupa sig i syntaxen eftersom den ändå syns i PDDL exemplet nedan utan fokus skall ligga på semantiken. c) Gör en planeringsgraf för följande flygfraktsproblem som beskrivits i PDDL: Init(At(C1,ESGG) At(C3,EHAM) At(P1,EHAM) At(P2, EHAM) Cargo(C1) Cargo(C2) Plane(P1) Plane(P2) Airport(ESGG) Airport(EHAM)) Goal(At(C1,EHAM) At(C2, ESGG)) Action(Load(c, p, a), PRECOND: At(c, a) At(p, a) Cargo(c) Plane(p) Airport(a) EFFECT: At(c, a) In(c, p)) Action(Unload(c, p, a), PRECOND : In(c, p) At(p, a) Cargo(c) Plane(p) Airport(a) EFFECT : At(c, a) In(c, p)) Action(Fly(p, from, to), PRECOND : At(p, from) Plane(p) Airport(from) Airport(to) EFFECT : At(p, from) At(p, to)) Planeringsgrafen skall innehålla nivåerna S0; A0; S1; A1; S2, etablerade symboler, etablerade negationer av symboler samt applicerbara handlingar (inkl. persistens) med precondition och effekt skall markeras i respektive nivå. Symbolerna Cargo, Plane och Airport behöver inte inkluderas och mutexlänkar behöver inte markeras. Se till att använda tillräckligt med plats, använd två (eller fler) papper i bredd om så krävs.
4) Beslutsfattande under osäkerhet (OBS! Formelsamling finns i bilagan). (4p) Du vill skapa ett eget spamfilter baserat på förekomsten av orden gratis och pengar i dina mejl. Anta att du har sparat undan 10 mejl enligt nedanstående lista, där du har markerat mejlen som spam eller inte spam samt förekomsten av de två orden gratis och pengar i respektive mejl. En "1" betyder att respektive ord förekommer i mejlet samt en "0" att respektive ord inte förekommer mejlet. En "1" i spamkolumnen innebär att respektive mejl är spam medans en "0" innebär att mejlet inte är spam. Gratis Pengar Spam 1 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 Beteckna sannolikheten för spam P(S=1) samt inte spam P(S=0). På samma sätt betecknas sannolikheterna för förekomsten av orden gratis och pengar som P(G=1) respektive P(P=1) samt avsaknaden av de båda orden med P(G=0) respektive P(P=0). Utifrån ovanstående tabell kan ett antal empiriska sannolikheter beräknas. a) Vad är den obetingade sannolikheten för spam P(S=1)? Vad är den betingade sannolikheten för förekomsten av ordet gratis och avsaknaden av ordet pengar givet att ett mejl är spam P(G=1,P=0 S=1)? b) Vad är den betingade sannolikheten för förekomsten av ordet gratis givet att ett mejl är spam P(G=1 S=1) respektive inte spam P(G=1 S=0)? Vad är den betingade sannolikheten för avsaknaden av ordet pengar givet att ett mejl är spam P(P=0 S=1) respektive inte spam P(P=0 S=0)? c) Vad är simultansannolikheten för förekomsten av ordet gratis, avsaknaden av ordet pengar samt inte spam P(G=1,P=0,S=0)? Vad är simultansannolikheten för förekomsten av ordet gratis, avsaknaden av ordet pengar samt spam P(G=1,P=0,S=1)? d) Anta att du får ett nytt mejl som innehåller ordet gratis men inte ordet pengar. Ställ upp formlen för Bayes sats och räkna ut sannolikheten att mejlet är spam givet att ordet gratis men inte ordet pengar förekommer i mejlet P(S=1 G=1,P=0). e) Utför samma beräkning som i uppgift c) men anta att slupvariablerna G och P är oberoende av varandra givet slupvariabeln S, dvs ställ upp formeln för Naive Bayes istället för Bayes sats. Själva svaret behöver inte räknas ut på denna uppgift.
Bilagor Bilaga: Formelsamling sannolikhetsteori Allmänna regler (från Kolmogorovs axiomsystem) 0 P(X = x) 1, P(X = x) = 1, P(X c ) = 1 P(X) x X Simultansannolikhet ("joint probability") P(X = x, Y = y) = P(X = x Y = y)p(y = y) = P(Y = y X = x)p(x = x) P(X = x, Y = y, Z = z) = P(X = x Y = y, Z = z)p(y = y, Z = z) = P(X = x, Y = y Z = z)p(z = z) Betingad/Villkorlig sannolikhet ("conditional probability") P(X = x Y = y) = P(X = x, Y = y) P(Y = y) P(X = x, Y = y, Z = z) P(X = x Y = y, Z = z) = P(Y = y, Z = z) P(X = x, Y = y, Z = z) P(X = x, Y = y Z = z) = P(Z = z) sannolikheten för X = x, givet att Y = y sannolikheten för X = x, givet att Y = y och Z = z sannolikheten för X = x och Y = y, givet att Z = z Lagen om total sannolikhet ("law of total probability") P(X = x) = y Y P(X = x, Y = y) den marginella sannolikheten för X = x (2 variabler) P(X = x) = y Y,z Z P(X = x, Y = y, Z = z) den marginella sannolikheten för X = x (3 variabler) P(X = x, Y = y) = P(X = x, Y = y, Z = z) = P(X = x, Y = y Z = z)p(z = z) z Z z Z Oberoende ("independence") P(X = x, Y = y) = P(X = x)p(y = y) sannolikheten då X och Y är oberoende av varandra Betingat/Villkorligt oberoende ("conditional independence") P(X = x Y = y) = P(X = x) P(X = x Y = y, Z = z) = P(X = x Z = z) sannolikheten då X är oberoende av Y sannolikhet då Xoch Y är oberoende av varandra givet Z P(X = x, Y = y Z = z) = P(X = x Z = z)p(y = y Z = z)