729G43'Ar*ficiell'intelligens' Kunskapsrepresenta*on' Kunskapsrepresenta*on' Kunskapsbaserade'agenter' Kunskapsbaserad'agent' Arne'Jönsson' HCS/IDA' '
|
|
- Elin Vikström
- för 8 år sedan
- Visningar:
Transkript
1 Kunskapsrepresenta*on' 729G43'Ar*ficiell'intelligens' Kunskapsrepresenta*on' Arne'Jönsson' HCS/IDA' ' Introduk*on' WumpusEvärlden' FOPL,'Inferens' Resolu*on,'Unifiering' Representa*on'av'kunskap' Ontologi' Strukturerad'representa*on/seman*ska'nät' Kunskapsbaserade'agenter' Generell'kunskap'om'världen' Deklara*v'beskrivning'' (jfr'agent'med'procedurell'kunskap)' Resonemang' Flexibla' explicita'mål' ny'kunskap' Par*ellt'observerbara'världar'(jfr'sökning)' Kunskapsbaserad'agent' Har'en'kunskapsbas'som'innehåller'fakta'och' resonemangmekanismer'för'ax'dra'slutsatser'baserat'på' dessa'fakta' Agenten' tolkar'percept'vid'en'*d't' uppdaterar'kb'med'perceptet' väljer'handling'baserat'på'kb' uppdaterar'kb'med'handling'vid't' UZör'handling'och'uppdaterar'*den'
2 Kunskapsbaserad'agent' WumpusEvärlden' KB = [ ] t = 0 def KBagent(percept): tell(kb, makeperceptsentence(percept, t)) action = ask(kb, makeactionquery(t)) tell(kb, makeactionsentence(action, t)) t = t + 1 return action Stank Stank Stank Bris Bris HÅL Bris HÅL Bris Bris HÅL Bris WumpusEvärlden' Percept'(Stank,'Bris,'GliXer,'Bump,'Skrik)' Wumpusen's*nker'en'ruta'ver*kalt'och'horsiontellt' Hål'ger'bris'en'ruta'ver*kalt'och'horisontellt' Guld'gliXrar' Bump'i'vägg' Döende'wumpus'skriker' WumpusEvärlden' Handlingar'(framåt,'(sväng'höger),'(sväng'vänster),'ta,' skjut,'kläxra)' Om'agenten'är'vid'skaXen'innebär' ta 'ax'agenten'har'guldet' Om'agenten'står'riktad'mot'wumpusen'och'skjuter'dör'wumpusen' Om'agenten'är'vid'startplatsen'och'kläXrar'kommer'den'ut' Om'agenten'hamnar'i'hål'eller'hos'wumpusen'dör'den'
3 WumpusEvärlden'resonemang' Om'det'blåser'på'ruta'x'och'ruta'a,'b,'c'och'd'är' angränsande'rutor'så'kan'det'finnas'hål'på'a,'b,'c'och'd' Om'det'inte'blåser'på'ruta'x'och'a,'b,'c'och'd'är' angränsande'rutor'så'kan'det'inte'finnas'hål'på'a,'b,'c' eller'd' Om'det'finns'eX'hål'på'ruta'x'eller'y'och'det'inte'finns'eX' hål'på'x'så'finns'det'ex'hål'på'y' Wumpusvärlden' Percept = [Stench, Breeze, Glitter, Bump, Scream] Action = [Forward, Right, Left, Grab, Shoot, Climb] Representera tid och välja handling Ex Antag Percept([s, b, Glitter, m, c], 5) ask( a bestaction(a, 5)) bör ge Grab tell(grab, 5) Representa*on'av'världen' Rutor'[x,'y]' Närliggande'rutor' x,'y,'z,'w'adjacent([x,'y],[z,'w])' '' [z,'w]' '{[x+1,y],'[xe1,y],'[x,'y+1],'[x,'ye1]}' Lagra'uZorskning,'ex' s,t'at(agent,'s,'t)' 'Breeze(t)' 'Breezy(s)' Diagnosregler'(diagnos*cerar'från'effekter'*ll'fakta)' s'breezy(s)' ' r'adjacent(r,s)' 'Pit(r)' Kausalregler'(modellbaserade'resonemang)' r'pit(r)' '[ s'adjacent(r,s)' 'Breezy(s)]'' Hantera'föränding' Vill'uXrycka'hur'en'handling'påverkar'världen'i'FOPL' Inför'situa*onsvariabel'för'fluents'dvs'sådant'som'ändrar' sig'' Ex'At(Agent,'[1,'1],'S0),'At(Agent,'[1,'2],'S1)' Saker'som'inte'ändrar'sig'behöver'ingen'si*a*onsvariabel,'ex'Wall([0,'1])' Uppdatera'världen.'Inför'Result(ac*on,'situa*on)' Result(Forward,'S0)'='S1' Result(Grab,'S1)'='S2'
4 Situa*onskalkyl' Världen'består'av'en'sekvens'situa0oner2 Handlingar'resulterar'i'nya'situa*oner' Fluents'är'predikat'som'beskriver'rela*oner'eller' egenskaper'som'kan'påverkas'av'handlingar,'' dessa'tar'ex'extra'situa*onsargument' Funk*onen'Result(ac*on,'situa*on)'används'för' representera'övergången'mellan'två'situa*oner' Situa*onskalkyl' 'Exempel' Beskrivning'av'wumpusvärldens'ini*al*llstånd' At(agent,'[1'1],'s0)' Direc*on(agent,'east,'s0)' At(wumpus,'[1'3])' At(pit1,'[3'1])' At(pit2,'[3'3])' At(pit3,'[4'4])' At(gold,'[2'3])' Effektaxiom' Wumpusvärldens'handlingar' s'at(agent,'(x'y),'s)' 'Direc*on(agent,'east,'s)' ' '''''At(agent,'(x+1'y),'Result(forward,'s))' s'direc*on(agent,'east,'s)' ' '''''Direc*on(agent,'north,'Result(turnElen,'s))' s'at(agent,'(x'y),'s)' 'At(gold,'(x'y),'s)' ' '''''Holding(agent,'gold,'Result(grab,'s))' Kallas'effektEaxiom,'beskriver'det'som'förändras' Situa*onskalkyl'E'exempel' Handlingsekvens' s1'='result(forward,'s0)' s2'='result'(turnelen,'s1)' s3'='result(forward,'s2)' s4'='result(forward,'s3)' s5'='result(grab,'s4)'
5 Förändringar'i'världen' Antag'' At(Agent,'[2,3],'S0),'Portable(guld),'Present(guld,'S0)' Grab'ger'Holding(guld,'S1)' Antag'aX'agenten'går'framåt' At(Agent,'[2,3],'Result(Forward,'S1))'ger' At(Agent,'[2,4],'S2)' Men'agenten'har'också'guldet'med'sig,'dvs' a,x,s'holding(x,'s)' '(a Release)' 'Holding(x,'Result(a,'s))' och' a,x,s' Holding(x,s)' '(a Grab)' ' (Present(x,s)' 'Portable(x))' ' Holding(x,'Result(a,s))' Kallas'frameaxiom' Frameproblemet' Hur'representera'vad'som'påverkas''och'vad'som'inte' påverkas'av'en'handling.' Representa*onsproblemet:'representa*on'av'handlingar' Inferensproblemet:'representa*on'av'sekvenser'av'handlingar' Relaterade'problem:' Qualifica*on'problem' Hur'räknar'vi'upp'under'vilka'omständigheter'en'handling'lyckas' Ramifica*on'problem' Hur'räknar'vi'upp'alla'implicita'konsekvenser'av'en'handling' SuccesorEstateEaxiom' Successor5state2axiom2beskriver'hur'fluents'förändras' över'*d' Kombinera'effektEoch'frameaxiom' Handling'som'gör'något'sant' ' redan'sant'och'ingen'handling'som'gör'falskt' s'at(agent,'(x+1'y),'result(a,'s)' ' '''''[(a'='forward' 'At(agent,'(x'y),'s)' '' ''''''Direc*on(agent,'east,'s))]' ' '''''(a' forward' 'At(agent,'(x+1'y),'s))'' Skapa'en'kunskapsbas' 1. Itera*v'process' 2. Iden*fiera'uppginen' 3. Hämta'relevant'domänkunskap' 4. Definiera'en'vokabulär' 'Ontologi' 5. Skriv'axiom'som'beskriver'domänen' 6. Gör'en'problemkodning' 7. Testa'och'använd' 8. Debug'
6 Inferens' Tre'typer:' Framåtsökning' Söker'från'reglerna'framåt' Bakåtsökning' Söker'från'reglerna'bakifrån' Resolu*on' Exempel' 1. Rökning' 'Eld' 'Rök' 2. Rök' 'Rökdetektor' 'Larm' 3. Larm' 'Brandkåren'kommer' 4. Rökning' 'Larm' 'Falsklarm' 5. Brandkåren'kommer' 'Falsklarm' 'Arga'brandmän' 6. Rökning' 7. Rökdetektor' 8. Arga'brandmän?' Framå*nferens' 1. Rökning Eld Rök 2. Rök Rökdetektor Larm 3. Larm Brandkåren kommer 4. Rökning Larm Falsklarm Bakå*nferens' 1. Rökning Eld Rök 2. Rök Rökdetektor Larm 3. Larm Brandkåren kommer 4. Rökning Larm Falsklarm Börja'i'någon'premiss' 5. Brandkåren kommer Falsklarm Arga brandmän 6. Rökning Börja'i'slutsatsen' 5. Brandkåren kommer Falsklarm Arga brandmän 6. Rökning 7. Rökdetektor 8. Arga brandmän? 7. Rökdetektor 8. Arga brandmän? Falsklarm Rökdetektor Rökning Rök Larm Brandkåren Arga brandmän Arga brandmän Brandkåren Larm Rök Rökdetektor Falsklarm Rökning
7 Resolu*on' Mekanisk'bevismetod' Ex,'satslogik' Rökning' 'Rök' Rök' Brandvarnarlarm' Implika*on'transi*v,'dvs'Rökning' 'Brandvarnarlarm' α' 'β'kan'skrivas'som' α' 'β' 'Rökning' 'Rök' ' 'Rök' 'Brandvarnarlarm' Dvs' Rökning' 'Brandvarnarlarm' Kallas'resolvent'' Resolu*on' 1. Konvertera'alla'satser'*ll'konjunk*v'normalform' 2. Negera'vad'som'skall'visas,'konvertera'*ll'konjunk*v' normalform'och'lägg'*ll'kunskapsbasen' 3. Upprepa'*ll'kontradik*on'eller'ingen'förbäXring'eller' annat'stoppvillkor' a. Välj'två'klausuler' b. Resolvera'dessa.'Resolventen'är'disjunk*onen'av'alla'termer' med'lämpliga'subs*tu*oner.' c. Om'resolventen'tomma'mängden'så'returnera'kontradik*on,' annars'lägg'resolventen'*ll'kb' Exempel' 1. Rökning' 'Eld' 'Rök' 2. Rök' 'Rökdetektor' 'Larm' 3. Larm' 'Brandkåren'kommer' 4. Rökning' 'Larm' 'Falsklarm' 5. Brandkåren'kommer' 'Falsklarm' 'Arga'brandmän' 6. Rökning' 7. Rökdetektor' 8. Arga'brandmän?' Gör'om'*ll'konjunk*v'form,'1' 1. (Rökning' 'Eld)' 'Rök' 2. (Rök' 'Rökdetektor)' 'Larm' 3. Larm' 'Brandkåren'kommer' 4. (Rökning' 'Larm)' 'Falsklarm' 5. (Brandkåren'kommer' 'Falsklarm)' 'Arga'brandmän' 6. Rökning' 7. Rökdetektor' 8. Arga'brandmän'
8 Gör'om'*ll'konjunk*v'form,'2' 1. (Rökning' 'Eld)' 'Rök' '( Rökning' ' Eld)' 'Rök' 1. Rökning' 'Rök' 2. Eld' 'Rök' 2. (Rök' 'Rökdetektor)' 'Larm' '( Rök' ' Rökdetektor)' 'Larm'' 1. Rök' ' Rökdetektor' 'Larm' 3. Larm' 'Brandkåren'kommer' 4. (Rökning' 'Larm)' 'Falsklarm' '( Rökning' ' Larm)' ' Falsklarm'' 1. Rökning' ' Larm' 'Falsklarm' 5. (Brandkåren'kommer' 'Falsklarm)' 'Arga'brandmän' 1. Brandkåren'kommer' ' Falsklarm' 'Arga'brandmän' 6. Rökning' 7. Rökdetektor' 8. Arga'brandmän' Konjunk*v'form' 1. Rökning' 'Rök' 2. Eld' 'Rök' 3. Rök' ' Rökdetektor' 'Larm' 4. Larm' 'Brandkåren'kommer' 5. Rökning' ' Larm' 'Falsklarm' 6. Brandkåren'kommer' ' Falsklarm' 'Arga'brandmän' 7. Rökning' 8. Rökdetektor' 9. Arga'brandmän' Härled'en'motsägelse' Plocka'två'satser,'t.ex.'1+2'och'lägg'*ll'KB' Rökning' ' Eld' 'Rök' Eller'3+8'' Rök' 'Larm' 10+11'ger' Rökning' ' Eld' 'Larm' 6+9'ger' Brandkåren'kommer' ' Falsklarm'' 4+13'ger' Larm' ' Falsklarm' 14+5'ger' Rökning' ' Larm' 15+7'ger' Larm' 3+16'ger' Rök' ' Rökdetektor'' 1+17'ger' ' Rökning' ' Rökdetektor'' 18'+'7'ger' Rökdetektor'' 19'+'8'ger'en'motsägelse' 1. Rökning Rök 2. Eld Rök 3. Rök Rökdetektor Larm 4. Larm Brandkåren kommer 5. Rökning Larm Falsklarm 6. Brandkåren kommer Falsklarm Arga brandmän 7. Rökning 8. Rökdetektor 9. Arga brandmän Resolu*on'för'predikatlogik' Variabler'och'kvan*fierare' Ex'' 1. At(Wumpus,'[1,2],'5)' 2. At(Wumpus,'[1,'3],'6)' Ger'resolventen' At(Wumpus,'[1,'3],'6)' 'At(Wumpus,'[1,2],'5)' medan' 3. ' At(Wumpus,'l,'t)'och'1.' med'{l/[1,2],'t/5}'(l'subs*tueras'med'[1,2]'och't'subs*tueras'med'5)' ger'en'motsägelse,'dvs'en'tom'klausul''
9 Unifiering' För'aX'lyckas'med'resolu*on'i'FOPL'behöver'man' använda'unifiering' Variabler'byts'mot'andra'variabler'eller'konstanter,'en' subs*tu*on' Ona'söker'man'den'mest'generella'unifieringen,'MGU' Unifiering' 'Exempel' Gillar(Olga,'x)' x/mask' '''''''''''Gillar(y,'mask)' ' ''''''''''''''''''y/olga' ' Gillar(Olga,'mask)' ' Gillar(Olga,'x)'och'Gillar(y,'mask)'kan'alltså'unifieras'med' hjälp'av'subs*tu*onen'{x/mask,'y/olga)' Subs*tu*oner'propageras' 'Ex' x'hund(x)' 'Skäller(x)'kan'konverteras'*ll' Hund(x)' 'Skäller(x)'om'vi'antar'aX'variabler'all*d'är'allkvan*fierade' Hund(Pluto)' 1+2'med'[x/Pluto]'ger'Skäller(Pluto),'dvs'x'har'subs*tuerats'i'båda' predikaten' Unifiering' 'Exempel' Unifiera'Flagga(blå,x)'med'Flagga(blå,gul)' {Flagga(blå,x)'='Flagga(blå,gul)}' {blå=blå,'x=gul}' {x=gul}'
10 Unifiering' 'Exempel' Unifiera'Flagga(blå,x)'med'Flagga(y,gul)' {Flagga(blå,x)'='Flagga(y,gul)}' {blå=y,'x=gul}' {y=blå,'x=gul}' Unifiering' 'Exempel' Unifiera'Flagga(blå,x)'med'Flagga(y,KomplemenZärg(y))' {Flagga(blå,x)'='Flagga(y,KomplemenZärg(y))}' {blå=y,'x=komplemenzärg(y)}' {y=blå,'x=komplemenzärg(y)}' {y=blå,'x=komplemenzärg(blå)}' Unifiering' 'Exempel' Unifiera'Flagga(blå,x)'med'Flagga(x,gul)' {Flagga(blå,x)'='Flagga(x,gul)}' {blå=x,'x=gul}' {x=blå,'x=gul}' FEL' Unifieringsalgoritmen,'1' def unify(x, y, subst): if subst=="fail": return "Fail" elif x==y: return subst elif variable(x): unifyvar(x, y, subst) elif variable(y): unifyvar(y, x, subst) elif isinstance(x, list) and isinstance(y, list): unify(rest(x), rest(y), unify(first(x), first(y), subst)) else: return "Fail"
11 Unifieringsalgoritmen,'2' def unifyvar(var, x, subst): if getsubst(var, subst): unify(lookup(var, subst), x, subst) elif variable(x) and getsubst(x, subst): unify(var, lookup(x, subst), subst) elif occursin(var, x, subst): return "Fail" else: extendsubst(var, x, subst) Exempel' Unifiera Smelly([1,2]) och Smelly(l) unify([ Smelly, [1,2] ], [ Smelly,l],[]) x = [ Smelly, [1,2] ], y = [ Smelly,l] 1. subst Fail 2. x y 3. x eller y inte variabler 4. x och y listor 5. unify( [1,2], l, unify([ Smelly ], [ Smelly ],[]) 6. x==y alltså inga nya substitutioner 7. l variabel så unify ger anrop till unifyvar(l, [1,2],[]) 8. unifyvar hittar inga substitutioner så 9. extendsubst(l, [1,2], []) returnerar {l/ [1,2] } Större'exempel'(med'förenklingar)' unify([ F,[ G, A, m], [ F, k, m]], [ F, l, [ F, l, [ G, A, B ]]], [ ]) unify([[ G, A, m], [ F, k, m]], [l, [ F, l, [ G, A, B ]]], unify( F, F, [ ])) [ ] unify([[ G, A, m], [ F, k, m]], [l, [ F, l, [ G, A, B ]]], [ ]) unify([ F, k, m], [ F, l, [ G, A, B ]], unify([ G, A, m], l, [ ])) unify-var(l, [ G, A, m], [ ]) [l/[g, A, m]] unify([k, m], [l, [ G, A, B ]], unify( F, F, [l/[g, A, m]] )) [l/[g A m]] unify([k, m], [l, [ G, A, B ]], [l/[g, A, m]] )) unify(m, [ G, A, B ], unify(k, l, [l/[g, A, m]] )) unify-var(k, l, {l/[g, A, m]}) unify(k, [ G, A, m], [l/[g, A, m]] ) unify-var(k, [ G, A, m], [l/[g, A, m]]) [k/[g A m]] unify(m, [ G, A, B ], [k/[g, A, m], l/[g, A, m]] ) unify-var(m, [ G, A, B ], [k/[g, A, m], l/[g, A, m]] ) [m/[g A B]] [m/[g A B], k/[g A m], l/[g A m]] Konvertering'*ll'konjunk*v'normalform' 1. Eliminera'implika*on' 2. Reducera'nega*onernas'räckvidd' xp(x) x P(x),' xp(x) x P(x),' x P(x) xp(x),' x P(x) xp(x)''' 3. Standardisera'variabler' 4. Eliminera'existenskvan*fierare,'skolemisering' 5. Konvertera'*ll'prenex'form' 6. Skippa'prefix' Allt'är'allkvan*fierat' 7. Konvertera'*ll'konjunk*on'av'disjunk*oner' 8. Bilda'klausuler' 'Implicit'konjuk*on'mellan'klausuler' 9. Döp'om'variabler'
12 Skolemisering' ErsäXer'existenskvanifierade'variabler'med'konstant,'eller' funk*on'som'vid'behov'tar'fram'den'individ'för'vilken'uxrycket' gäller' Ex.' xp(x)' 'P(S)'där'S'är'en'skolemkonstant'och'står'för'den' individ's'för'vilken'p(x)' Ex.'Alla'har'eX'hjärta' x'person(x)' ' y'hjärta(y)' 'Har(x,y)' Skolemkonstant'ger' x'person(x)' 'Hjärta(S)' 'Har(x,S),'dvs' alla'har'samma'hjärta'vilket'är'fel' Inför'skolemfunk*on,'g(x),'som'beror'av'allkvan*fierade' variabeln'x'ger' x'person(x)' 'Hjärta(g(x))' 'Har(x,g(x))'' Exempel,'1' x'{p(x)' '( y[p(y)' 'P(f(x,'y))]' ' y[q(x,'y)' 'P(y)])}' ' 1'Eliminera'implika*on' ' x'{ P(x)' '( y[ P(y)' 'P(f(x,'y))]' ' y[ Q(x,'y)' 'P(y)])}' 2'Reducera'nega*onernas'räckvidd' ' x'{ P(x)' '( y[ P(y)' 'P(f(x,'y))]' ' y[q(x,'y)' ' P(y)])}' 3'Standardisera'variabler' ' x'{ P(x)' '( y[ P(y)' 'P(f(x,'y))]' ' z[q(x,'z)' ' P(z)])}' 4'Eliminera'existenskvan*fierare' ' x'{ P(x)' '( y[ P(y)' 'P(f(x,'y))]' '[Q(x,'g(x))' ' P(g(x))])}' 5'Konvertera'*ll'prenex'form' ' x' y{ P(x)' '([ P(y)' 'P(f(x,'y))]' '[Q(x,'g(x))' ' P(g(x))])}' Exempel,'2' 6 Skippa prefix { P(x) ([ P(y) P(f(x, y))] [Q(x, g(x)) P(g(x))])} 7 Konvertera till konjunktion av disjunktioner [ P(x) P(y) P(f(x, y))] [ P(x) Q(x, g(x))] [ P(x) P(g(x))] 8 Bilda klausuler P(x) P(y) P(f(x, y)) P(x) Q(x, g(x)) P(x) P(g(x)) 9 Döp om variabler P(x) P(y) P(f(x, y)) P(z) Q(z, g(z)) P(w) P(g(w)) Exempel' 1. Ber*l'var'pudel' 2. Ber*l'föddes'1955' 3. Ingen'hund'lever'längre'än'50'år'' 4. Pudlar'är'hundar' 5. Alla'hundar'är'däggdjur' 6. Nu'är'det'2015' 7. Visa'aX'det'finns'döda'pudlar'nu'
13 Exempel,'översäX' 1. Ber*l'var'pudel' Pudel(Ber*l)' 2. Ber*l'föddes'1955' Född(Ber*l,'1955)' 3. Ingen'hund'lever'längre'än'50'år' x,s,t'hund(x)' 'Född(x,'s)' 'gt(tes,'50)' 'Död(x,'t)' 4. Pudlar'är'hundar' x'pudel(x)' 'Hund(x)' 5. Alla'hundar'är'däggdjur' x'hund(x)' 'Däggdjur(x)' 6. Nu'är'det'2015' Nu'='2015' 7. Det'finns'döda'pudlar'nu' x'pudel(x)' Död(x,'Nu)' Exempel,'konvertera'1' 1. Pudel(Ber*l)' 2. Född(Ber*l,'1955)' 3. x,s,t'hund(x)' 'Född(x,'s)' 'gt(tes,'50)' 'Död(x,'t)' ' (Hund(x)' 'Född(x,'s)' 'gt(tes,'50))' 'Död(x,t)' ' Hund(x)' ' Född(x,'s)' ' gt(tes,'50)' 'Död(x,t)' 4. s'pudel(x)' 'Hund(x)' Pudel(x)' 'Hund(x)' 5. s'hund(x)' 'Däggdjur(x)' Hund(x)' 'Däggdjur(x)' 6. Nu'='2015' 7. x'pudel(x)' Död(x,'Nu)' ' x'pudel(x)' Död(x,'Nu)' '' x' '(Pudel(x)' Död(x,'Nu))' ' Pudel(x)' ' Död(x,'Nu)' Exempel,'konvertera'2' 1. Standardisera'variabler' 2. Pudel(Ber*l)' 3. Född(Ber*l,'1955)' 4. Hund(x)' ' Född(x,'s)' ' gt(tes,'50)' 'Död(x,t)' 5. Pudel(p)' 'Hund(p)' 6. Hund(h)' 'Däggdjur(h)' 7. Nu'='2015' 8. Pudel(w)' ' Död(w,'Nu)' Resolu*onsstrategier' Ta'bara'satser'med'komplement' Föredra'små'resolventer' Unit'preference' Set'of'support' Behåll'en'bra'delmängd.'Börja'med'slutsatsen' Eliminera'satser'som'subsumeras'av'andra'
14 1. Pudel(Bertil) 1. Pudel(Bertil) 2. Född(Bertil, 1955) 2. Född(Bertil, 1955) Resolu*onsexempel' (7) (1) 3. Hund(x) Född(x, s) gt(t-s, 50) Död(x,t) 4. Pudel(p) Hund(p) 5. Hund(h) Däggdjur(h) 6. Nu = 2015 Resolu*onsexempel,'2' 3. Hund(x) Född(x, s) gt(t-s, 50) Död(x,t) 4. Pudel(p) Hund(p) 5. Hund(h) Däggdjur(h) 6. Nu = 2015 {w/bertil} 7. Pudel(w) Död(w, Nu) 7. Pudel(w) Död(w, Nu) 8. Död(Bertil, Nu) (6) 10. Hund(Bertil) Född(Bertil, s) gt(2015-s, 50) (2) {Nu/2015} (4) {s/1955} 11. Hund(Bertil) gt( , 50) 9. Död(Bertil, 2015) (3) {p/bertil} gt( , 50) gt(60,50) T F {x/bertil, t/2015} (1) 12. Pudel(Bertil) 10. Hund(Bertil) Född(Bertil, s) gt(2015-s, 50) Motsägelse, alltså Det finns en död pudel nu Ontologi' Toppontologi' Kategorier'och'objekt' Fysiska'objekt' SammansaXa'objekt' MåX'och'enheter' Handlingar,'situa*oner'och'händelser' Situa*onskalkyl,'Frameproblemet' Tid,'rum'och'förändring' Händelser'och'processer' Abstrakta Objekt Allt Generaliserade händelser Mängder Tal Repr. Objekt Intervall Platser Fysiska objekt Processer Kategorier Meningar Mått Händelser Saker Materia Tidsintervall' Mentala'objekt'och'uppfaXningar' Tider Vikter Djur Agenter Fast Flytande Gas Människor
15 Exempel'på'genrella'ontologier' CYC' CYC' Thing Stort'(239000'koncept)'AIEKR'projekt' Logikbaserat'representa*onsspråk'CycL' WORDNET' IndividualObject Intangible RepresentedThing Stor'(117000'synsets)'lexikal'taxonomi'' Baserat'på'psykolingvis*ska'studier' Event Stuff IntangibleObject Collection Process IntangibleStuff AtributeValue Relationship Slot WORDNET' {thing, entity} {living thing, organism} {non-living thing, object} {plant, flora} {animal, fauna} {artifact} {food} Kategorier' Resonerar'inte'om'objekt'utan'om'koncept,'kategorier' Ex'Guld,'inte'Guld32' Gör'predikat'*ll'objekt'i'språket' Ex'Guld'refererar'*ll'kategorin'Guld,'x' 'Guld'betyder'aX'x'är'guld.' Kallas'reifica*on'kan'skriva't.ex.'Färg(Guld)'='gul' Kategorier'ärver'egenskaper' Ex'Guld' 'Ädelmetall'betyder'aX'Guld'är'en'subklass'av'Ädelmetall'och' ärver'alla'dess'egenskaper,'t.ex.'ax'vara'värdefull' Ex' x','x' 'Guld' 'GliXrar(x)' 'Dyrt(x)' {person, human being} {natural object} {substance}
16 Händelser' Situa*onskalkyl'är'diskret.'Behöver'en'kon*nuerlig'variant' Ex.'At(Wumpus,'Gold)'säger'inget'om'när'det'är'sant' T(At(Wumpus,'Gold),'t)'säger'aX'det'är'sant'vid'*dpunkten't' Andra'predikat:' Happens(e,'i)'säger'aX'e'händer'under'intervallet'i' Ini*ates(e,'f,'t)'säger'aX'e'får'f'aX'starta'vid'*den't' Terminates(e,'f,'t)'säger'aX'e'får'f'aX'avslutas'vid'*den't' Clipped(f,'i)'säger'aX'f'slutar'aX'vara'sant'i'intervallet'i' Restored(f,'i)'säger'aX'f'blir'sant'nångång'under'intervallet'i' Tid,'intervall'och'handlingar' Allens'temporala'logik' Definierar'eX'intervall' i'intervall(i)' 'Dura*on(i)'='(Time(End(i))E Time(Start(i)))' Huvudsakligen'fyra'olika'rela*oner' Temporala'rela*oner' Strukturerad'representa*on' Meet(i, j) i,j Meet(i,j) Time(End(i)) = Time(Start(j)) i j Frames'och'seman*ska'nät' Egenskapsärvning' Before(i,j) After(j,i) i,j Before(i,j) Time(End(i)) < Time(Start(j)) i j Default'och'undantag' Mul*pel'ärvning' During(i,j) i,j During(i,j) Time(Start(j)) Time(Start(i)) Time(End(j)) Time(End(i)) i j Förändring,'ickemonotonicitet' Overlap(i,j) i,j Overlap(i,j) k During(k,i) During (k,j) i j
17 Strukturerad'representa*on' Seman*ska'nät' Baserat'på'associa*onsteorier,'t.ex.'Quillian'&'Collins' 1969' Experiment.'Ställer'olika'frågor,'t.ex.:' Är'undulaten'en'fågel?' Kan'undulater'flyga?' Kan'undulater'sjunga?' Resultat' Kan'undulater'flyga? ''tar'längre'*d'ax'besvara'än' Kan' undulater'sjunga? '' Hypotes' Människor'lagrar'informa*on'så'abstrakt'som'möjligt' Alla'fåglar'flyger'men'inte'alla'fåglar'sjunger'' Vingar har Fjädrar har är en kan sjunga Undulat Djur har Skinn är ett är ett Fågel kan flyga true Fisk är en true Struts kan flyga false Ärvningshierarki' Undulat Sjunger: T Putte Vän: Instans Fågel Flyger: T Ben: 2 Vän Emu Flyger: F Olga Instans Levande varelse Lever: T Djur RörSig: T Elefant Färg: grå Vikt: 3500 Clyde Färg: vit Däggdjur Ben: 4 Hund Vikt: 5 Bertil Vikt: 10 Typ: Pudel Instans Instans Instans Delfin Ben: 0 Vikt: 500 Flipper AXributEvärdestrukturer' Seman*ska'nät'och'frames'lagrar'kunskapen'aXributE värdestrukturer' AXributen'kan'också'ha'egenskaper,'t.ex.:' Tillåtna'klasser,'ex'aXributet'Inkomst'är'inte'intressant'för'objekt'av' typen'emu' Värdebegränsningar,'ex'Vikt(Hund)'<'500'kg' Default' Regler'för'ärvning' Procedurer'för'aX'räkna'ut'värden,'ex'för'aX'räkna'ut'åldern' Kopplar'procedurer'(demoner)'*ll'aXributen.'Kallas'också' procedural' axachements '
18 Mul*pel'ärvning' Sällskapsfågel Instans Fågel Flyger: T Ben: 2 Emu Flyger: F Instans Sällskapsfågel Fågel Flyger: T Ben: 2 Emu Flyger: F Australisk Emu Västkust Emu Hantering'av'osäker'kunskap' IckeEstandardlogik.' Inte'en'teori'utan'många' Rivaler:'' ' tar'bort'teorem,'t.ex.'a'v' A' Utvidgningar:'' ' lägger'*ll'teorem'som'ona'är'oformulerbara'i'fopl' Olga Instans Olga Instans Väljer den mest specifika Inferensavståndet, dvs undersöker om det finns på vägen IckeEstandardlogik' Rivaler2 Probabilis*sk'logik' logik'baserad'på'sannolikhet' Flervärd'logik' inför'fler'sanningsvärden' Fuzzy'logic' sannolikhet'ax'höra'*ll'en' mängd' Utvidgningar2 Modal'logik' L:'nödvändigt'sann' M:'möjligen'sann' Temporal'logik' *dslogik' IckeEmonoton'logik' *llåter'satser'som'inte' bevisats'
Kunskapsbaserad agent. Kunskapsrepresentation. Wumpus-världen. Wumpusvärlden. Bris. Bris. Bris. Bris. Bris. Bris. Stank. Stank.
Kunskapsrepresentation Kunskapsbaserad agent! Introduktion! Wumpus-världen! FOPL, Inferens! Resolution, Unifiering! Representation av kunskap! Ontologi! Strukturerad representation/semantiska nät def KBagent(percept):
Läs mer729G43 Artificiell intelligens Kunskapsrepresentation. Arne Jönsson HCS/IDA
729G43 Artificiell intelligens Kunskapsrepresentation Arne Jönsson HCS/IDA Kunskapsrepresentation Introduktion Wumpus-världen Logik Satslogik Predikatlogik FOPL, Inferens Resolution, Unifiering Representation
Läs merArtificiell Intelligens Lektion 4
Frames Filmdomän Artificiell Intelligens Lektion 4 Frames (Lab4) Resolution & unifiering Frames system Lagrar hierarkisk information Attribut lagras i attributvärdesstrukturer Attribut kan ha egenskaper
Läs merHKGBB0, Artificiell intelligens
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.
Läs merNormalisering av meningar inför resolution 3. Steg 1: Eliminera alla och. Steg 2: Flytta alla negationer framför atomära formler
Normalisering av meningar inför resolution På samma sätt som i satslogiken är resolution i predikatlogiken en process vars syfte är att vederlägga att en klausulmängd är satisfierbar. Det förutsätter dock
Läs merI en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.
OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet
Läs merGrundläggande logik och modellteori (5DV102)
Tentamen 2013-10-31 Grundläggande logik och modellteori (5DV102) M. Berglund och K. Markström Totalt antal uppgifter 11 Maximalt antal poäng 30 Krav för 3 i betyg 14 poäng Krav för 4 i betyg 19 poäng,
Läs merAsymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.
OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet
Läs merSätt att skriva ut binärträd
Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer
Läs merInnehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar
Innehåll Föreläsning 7 Logik med tillämpningar 99-03-01 Första ordningens predikatlogik Objekt, predikat, kvantifierare Funktioner, termer, wffs Bindning och räckvidd Tolkningar och värderingar Satisfiering,
Läs merAsymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.
OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad för att man skall
Läs mer5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor i Java Först följer frågor av flervalstyp. Frågorna är inte ordnade efter svårighetsgrad. 1. Skillnaden mellan typerna int och
Läs mer*UXSS YQLQJ±/RJLNPHGWLOOlPSQLQJDUYW
*USS YQLQJ±/RJLNPHGWLOOlPSQLQJDUYW 8SSJLIW Här kommer några teoretiska frågor, skriv svaren med egna ord, dvs skriv inte av ohbilderna: a. Vad är en beslutsprocedur? En algoritm som terminerar och som
Läs merArtificiell Intelligens Övningsuppgifter
Sökning - Tentauppg 99-:4 Artificiell Intelligens Övningsuppgifter Sökning Konjunktiv normalform Unifiering Resolution Planering Situationskalkyl Maskininlärning Beskriv sökmetoden A* genom att visa hur
Läs merFöreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Läs merTentamen i Statistik, STA A13 Deltentamen 2, 5p 24 januari 2004, kl. 09.00-13.00
Karlstads universitet Institutionen för informationsteknologi Avdelningen för statistik Tentamen i Statistik, STA A13 Deltentamen, 5p 4 januari 004, kl. 09.00-13.00 Tillåtna hjälpmedel: Ansvarig lärare:
Läs merUtsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section
Föreläsning 1 Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section 1.1-1.3 i kursboken Definition En utsaga (proposition) är ett
Läs merFöreläsning 13 och 14: Binära träd
Föreläsning 13 och 14: Binära träd o Binärträd och allmänna träd o Rekursiva tankar för binärträd o Binära sökträd Binärträd och allmänna träd Stack och kö är två viktiga datastrukturer man kan bygga av
Läs merHSB BRF HAMNEN, ÅSIKTEN ETAPP TVÅ
1 0 01 4 rok 116,0 5 220 5 600 000 1 1 02 4 rok 113,0 5 175 5 475 000 1 1 03 4 rok 116,0 5 220 5 710 000 1 2 04 4 rok 113,0 5 175 5 760 000 1 2 05 4 rok 116,0 5 220 5 900 000 1 3 06 4 rok 113,0 5 175 5
Läs merI en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.
OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet
Läs merProbabilistisk logik 1
729G43 Artificiell intelligens / 2016 Probabilistisk logik 1 Marco Kuhlmann Institutionen för datavetenskap Osäkerhet 1.01 Osäkerhet Agenter måste kunna hantera osäkerhet. Agentens miljö är ofta endast
Läs merFöreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Läs merFöreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1).
Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1). Repetition: I Haskell är mönster-passning (pattern-matchning) jättepraktiskt: När vi gör ett anrop av en funktion med ett visst argument
Läs merLogik för datavetare DVK:Log Tisdagen 28 oktober 2014. Institutionen för dataoch systemvetenskap David Sundgren
Institutionen för dataoch systemvetenskap David Sundgren Logik för datavetare DVK:Log Tisdagen 28 oktober 2014 Skrivtid: 9 00-13 00. Inga hjälpmedel utom formelsamlingen på nästa sida är tillåtna. För
Läs merSubstitution och unifiering
Substitution och unifiering Exempel varför behövs substitution? Substitution Unifiering Den mest generella unifieraren Substitution och unifiering 1 Resolution kräver substitution ett enkelt exempel Gäller
Läs merGrundläggande logik och modellteori
Grundläggande logik och modellteori Kapitel 12: Logikprogrammering Henrik Björklund Umeå universitet 16. oktober, 2014 Prolog Prolog har två klasser av formler. Atomära formler: country(sweden, 9000000).
Läs merC++ - En introduktion
C++ - En introduktion De imperativa grunderna för dig som kan programmera Eric Elfving Institutionen för datavetenskap 1 / 72 Översikt 1 Grunderna 2 Uttryck och satser 3 Funktioner 4 Poster 1 Grunderna
Läs merArtificial Intelligence
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!
Läs merObjektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering
och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering
Läs merProbabilistisk logik 2
729G43 Artificiell intelligens / 2016 Probabilistisk logik 2 Marco Kuhlmann Institutionen för datavetenskap Översikt Probabilistiska modeller Probabilistisk inferens 1: Betingad sannolikhet Probabilistisk
Läs merIntroduktion till Datalogi DD1339. Föreläsning 3 29 sept 2014
Introduktion till Datalogi DD1339 Föreläsning 3 29 sept 2014 Ett lite intelligentare program? Klassen Rectangle Rectangle height width color setheight setwidth getcolor getarea Rectangle public class Rectangle{
Läs merTENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
Läs merKodexempel från Programmering 2 Tobias Wrigstad, Ph.D.
Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D. tobias@dsv.su.se Notera att exemplen är i Python 2.5 För att översätta till Python 3.0, gör följande ändringar print(x,y) istället för print x,y input("ett
Läs merProgrammering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/
Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller
Läs merKurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for
Inför provet Provet skrivs för hand och är uppdelad i två delar. Den första delen är på E-nivå och den andra delen är på C- och A-nivå. För att det ska bli enklare för er att träna inför provet så har
Läs merTENTAMEN OOP
TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs merInom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två
Binära träd Inom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två gånger, talar man om binära träd. Sådana
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs merIntroduktion till programmering SMD180. Föreläsning 12: Klasser och objekt
Introduktion till programmering Föreläsning 12: Klasser och objekt 1 1 Vad är en punkt? Matematikerns definition: en position i ett (tvådimensionellt) plan, karaktäriserad av en x-koordinat och en y-koordinat.
Läs merIntroduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner
Läs merIntroduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion
Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)
Läs merKlasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.
TT Kapitel 3. Husdjur & Fisk Javaklasser Translation by Leif Lourié Java program består av klasser som beskriver saker (objekt) som finns på riktigt. Även om det finns många olika sätt att skriva program
Läs merAntag att följande träd genereras i ett spelförande program om vi applicerar evalueringsfunktionen
1. Komplexiteten hos en agent beror mycket på vilken omgivning den skall verka i. Vad innebär det att en omgivning är stokastisk, episodisk och dynamisk? Ge exempel på en omgivning som är stokastisk, episodisk
Läs merTDDD78, TDDE30, 729A Typhierarkier del 2 Vad krävs? Hur fungerar det?
TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Typhierarkier del 2 Vad krävs? Hur fungerar det? Hur får en subtyp fungera egentligen? Krav på hierarkier 1 3 Får subtypen LinkedList sakna metoder från
Läs merJavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?
Innehåll JavaScript En introduktion till skriptspråket JavaScript och till DOM Scripting Introduktion till JavaScript och DOM JavaScript Syntax DOM och DOM Scripting Händelsehantering och CSS Historia
Läs merTentamen OOP 2015-03-14
Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning
Läs merDataabstraktion. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap
Dataabstraktion TDDD73 Funktionell och imperativ programmering i Python Föreläsning 12 Peter Dalenius Institutionen för datavetenskap 2014-11-19 Översikt Vad är abstraktion? Vad är en abstrakt datatyp?
Läs merSkillnader mellan Python och Java
Java Utvecklat på SUN Microsystems mitten 1990-talet Ursprungligen för Webprogram Nu mycket spritt Massor med läroböcker Vi använder Lewis&Loftus http://javasuncom/javase/6/docs/api/ Skillnader mellan
Läs merIntroduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner med
Läs merOutline. TSFS06 Diagnos och övervakning Föreläsning 10 - Sannolikhetsbaserad diagnos och Bayesianska nätverk. Sneak-peak. Outline
TSFS06 Diagnos och övervakning Föreläsning 10 - och Erik Frisk Institutionen för systemteknik Linköpings universitet erik.frisk@liu.se 2017-05-17 2 Sneak-peak Antag att residualerna r 1 och r 2 larmar
Läs mer1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1
Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Diagnostiskt prov Python-intro: print variabler reserverade ord input kommentarer beräkningar
Läs merF5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander
F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean
Läs merLÖSNINGSFÖRSLAG TENTAMEN
LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND
Läs merFöreläsning 16 Arv. Jan Lönnberg 3.11.2011. T-106.1212 Grundkurs i programmering
Föreläsning 16 Arv Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper 3.11.2011 Varför? I ett studieregister har vi både studenter och lärare.
Läs merMatematisk statistik för D, I, Π och Fysiker
max/min Matematisk statistik för D, I, Π och Fysiker Föreläsning 5 Johan Lindström 25 september 218 Johan Lindström - johanl@maths.lth.se FMSF45/MASB3 F5 1/25 max/min Johan Lindström - johanl@maths.lth.se
Läs merEn uppsats i Språkteknologi av Niklas Vargensten e-post: d99-nva@d.kth.se
Kan datorn förstå någonting egentligen? En uppsats i Språkteknologi av Niklas Vargensten e-post: d99-nva@d.kth.se Sammanfattning I denna uppsats studeras och diskuteras användandet av kunskapsrepresenterande
Läs merEnkla variabler kontra referensvariabel
Enkla variabler kontra referensvariabel En variabel är ett namngivet minnesutrymme i datorns primärminne. En variabel som används för att representera en primitiv datatyp kallas för enkel variabel. Deklarationssatsen
Läs merArtificiell Intelligens
Omtentamen Artificiell Intelligens Datum: 2014-02-20 Tid: 14.00 18.00 Ansvarig: Resultat: Hjälpmedel: Gränser: Anders Gidenstam Redovisas inom tre veckor Inga G 8p, VG 12p, Max 16p Notera: Skriv läsbart!
Läs merNågra inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0
Läs merBankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.
Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen
Läs merFöreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER
Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER Logiska uttryck datatypen boolean Logiska uttryck kan ha två möjliga värden, true eller false. Variabler av typen boolean kan tilldelas
Läs merGrundläggande datalogi - Övning 1
Grundläggande datalogi - Övning 1 Björn Terelius October 30, 2008 Python är ett tolkat språk som kan köras interaktivt. tcs-ray:~/grudat08>python >>> 11+3*4 23 >>> a = 15 >>> b=a >>> print "a =", a, "b
Läs merFilosofisk logik Kapitel 18. Robin Stenwall Lunds universitet
Filosofisk logik Kapitel 18 Robin Stenwall Lunds universitet Dagens upplägg Modeller för FOL Sanning i FOL Tarskis idé Satisfiering Definitionen på sanning i en modell Definitionen på FO-konsekvens Definitionen
Läs merDIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga
203-03-9 203-03-9 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6
Läs merMicroPython Ett textbaserad programmeringsspråk för Micro:bit
MicroPython Ett textbaserad programmeringsspråk för Micro:bit Introduktion till informationsteknologi 1DT051 2018-09-24 karl.marklund@it.uu.se Uppsala universitet Programming, problemlösning och algoritmer
Läs merDataabstraktion. TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap
Dataabstraktion TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12 Peter Dalenius Institutionen för datavetenskap 2013-11-12 Översikt Vad är abstraktion? Vad är en abstrakt datatyp?
Läs mer729G04 Programmering och diskret matematik. Föreläsning 7
729G04 Programmering och diskret matematik Föreläsning 7 Föreläsningsöversikt Information Interaktion via text Läsa från fil Skriva till fil Spara och läsa abstrakta datatyper från fil Information Felaktigt
Läs mer10. Mängder och språk
Objektorienterad modellering och diskreta strukturer 10. Mängder och språk Sven Gestegård Robertz Institutionen för datavetenskap, LTH 2013 Rekaputilation Vi har talat om satslogik, predikatlogik och härledning
Läs merObjektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016
Objektorienterad Programkonstruktion Föreläsning 4 8 nov 2016 Nästade klasser I Java går det att deklarera en klass inuti en annan klass. Vi kallar detta för att en yttre klass innehåller en inre klass.
Läs merUppgifter teknik HT17 (uppdaterad v. 40)
Uppgifter teknik HT17 (uppdaterad v. 40) Uppgifterna bedöms inte, de är bara till för att öva. Samarbeta gärna med andra! Du behöver inte skriva ner svaren, men se till att du förstår lösningarna! 1. Det
Läs merMatematisk statistik 9 hp Föreläsning 4: Flerdim
Matematisk statistik 9 hp Föreläsning 4: Flerdim Johan Lindström 3+4 september 26 Johan Lindström - johanl@maths.lth.se FMS2 F4: Flerdim /5 Transformer Inversmetoden Transformation av stokastiska variabler
Läs merSanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.
MATEMATISK LOGIK Matematisk logik formaliserar korrekta resonemang och definierar formellt bindeord (konnektiv) mellan påståenden (utsagor, satser) I matematisk logik betraktar vi påståenden som antingen
Läs merAnvändarhandledning Version 1.2
Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...
Läs merProgrammering I Tobias Wrigstad fredag, 2009 augusti 28
Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,
Läs merHos vad? och bör därför vara instanseller klassvariabel i vilken klass?
Övningstillfälle 5 Lite kort repetition om klasser och objekt class EnKlass(KlassAttÄrvaFrån): klassvariabel = 5 def init (self) KlassAttÄrvaFrån. init (self) self.instansvariabel = 10 s = 'klassvariabel=
Läs merSF1901: SANNOLIKHETSTEORI OCH FLERDIMENSIONELLA STOKASTISKA STATISTIK VARIABLER. Tatjana Pavlenko. 8 september 2017
SF1901: SANNOLIKHETSTEORI OCH STATISTIK FÖRELÄSNING 5 FLERDIMENSIONELLA STOKASTISKA VARIABLER Tatjana Pavlenko 8 september 2017 PLAN FÖR DAGENS FÖRELÄSNING Repetition av de viktiga begreppen diskret/kontinuerlig
Läs merGrundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 14 I torsdags & fredags: arrayer Deklaration, initiering, åtkomst Arrayer är referenser Arrayer som parametrar och returvärden Exempel
Läs merDet är principer och idéer som är viktiga. Skriv så att du övertygar rättaren att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik II 2013-06-05 Skrivtid: 1400-1700 Hjälpmedel: Java-bok (vilken som helst) Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja
Läs merTENTAMEN OOP
TENTAMEN OOP 2014-03-15 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Läs merArtificiell intelligens En agent som spelar Black Jack Andreas Perjons [andpe813]
1 Artificiell intelligens En agent som spelar Black Jack Andreas Perjons [andpe813] Linköpings Universitet 2019 2 Innehåll Introduktion...3 Metod..4 Programmets komponenter.4 Resultat...5 Diskussion...7
Läs mer2D1418, språkteknologi. Vad är WordNet? Hans Eriksson december Datorpost personnummer:
2D1418, språkteknologi Vad är WordNet? Hans Eriksson 1 19 december 2000 1 Datorpost d97-hae@nada.kth.se, personnummer: 770628 1 WordNet WordNet är ett projekt som syftar till att konstruera ett digitalt
Läs merde var svåra att implementera och var väldigt ineffektiva.
OBS! För flervalsfrågorna gäller att flera alternativ eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad. Totalt kan
Läs merKontraktsprogrammering
Kontraktsprogrammering Programmera med kontrakt Samma som i vardagen Två parter (minst), bägge följer sin del 2 Bilköp Kund Krav Betala varje månad Förtjänst Få en bil Försäljare Ge kunden en bil och serva
Läs merTentamen i Objektorienterad programmering
CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar
Läs mer1 Begrepp och Hypoteser. 2 Inlärning genom sökning. 3 Objektiv inlärning. Inlärning av en boolsk funktion från exempel.
1 Begrepp oc Eempel Begreppsinlärning List-ten-Eliminate Begreppsinlärning 1 Begrepp oc Eempel List-ten-Eliminate Begreppsinlärning (Concept Learning) Inlärning av en boolsk funktion från eempel Kategorier
Läs merAnna: Bertil: Cecilia:
Marco Kuhlmann 1 Osäkerhet 1.01 1.02 1.03 1.04 1.05 Intelligenta agenter måste kunna hantera osäkerhet. Världen är endast delvist observerbar och stokastisk. (Jmf. Russell och Norvig, 2014, avsnitt 2.3.2.)
Läs merTDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 Pelle Evensen, Daniel Wetterbro 5 november 2009 Sammanfattning Denna vecka ska vi titta på abstrakta klasser kontra interface,
Läs merIntroduktion till programmering SMD180. Föreläsning 8: Listor
Introduktion till programmering Föreläsning 8: Listor 1 1 Listor = generaliserade strängar Strängar = sekvenser av tecken Listor = sekvenser av vad som helst Exempel: [10, 20, 30, 40] # en lista av heltal
Läs merDugga Datastrukturer (DAT036)
Dugga Datastrukturer (DAT036) Duggans datum: 2012-11-21. Författare: Nils Anders Danielsson. För att en uppgift ska räknas som löst så måste en i princip helt korrekt lösning lämnas in. Enstaka mindre
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner
732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (
Läs merLösningar: Tentamen i Datavetenskapens grunder för D1, SDU, TDV A
Lösningar: Tentamen i Datavetenskapens grunder för D1, SDU, TDV A Tid och plats: måndagen 2006-11-06 kl 08:00-13:00 i sal L001 Examinator: Lars Karlsson, tel: 30 33 55 Hjälpmedel: penna, suddgummi. Totalt
Läs merPythons standardbibliotek
Pythons standardbibliotek Python 3 skall, enligt standarddokumenten http://docs.python.org/py3k/library/index.html ha stöd för vissa funktioner, typer och datastrukturer Så länge man håller sig till detta
Läs merTDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19
TDDC74 Programmering: Abstraktion och modellering Dugga 2, 2017-04-06, kl 17-19 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i
Läs merTDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16
TDDC74 Programmering: Abstraktion och modellering Dugga 2, 207-04-06, kl 4-6 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.
Läs merMMA132: Laboration 1 Introduktion till MATLAB
MMA132: Laboration 1 Introduktion till MATLAB De flesta numeriska metoder låter oss få en tillräckligt bra lösning på ett matematiskt problem genom att byta ut komplexa matematiska operationer med kombinationer
Läs merFlera kvantifierare Bevis Direkt bevis Motsägelse bevis Kontrapositivt bevis Fall bevis Induktionsprincipen. x y (x > 0) (y > 0) xy > 0 Domän D = R
Föreläsning Flera kvantifierare Bevis Direkt bevis Motsägelse bevis Kontrapositivt bevis Fall bevis Induktionsprincipen För att göra ett påstående av en öppen utsaga med flera variabler behövs flera kvantifierare.
Läs merPython. Datatyper. Mer om datatyper. Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam!
Python Mer om datatyper Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam! Datatyper Dictionaries - {1: camelot,2: shrubbery } Tupler - (1,2,3,) 1 Lite om strängar Strängar innehåller specialtecken
Läs merJava-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }
Föreläsning 3 Arv Kategorisering Stora program leder till många klasser (tänk liknelsen med en affär med många varor). Att dela in saker i kategorier är en vanlig strategi för att hantera stora komplexa
Läs merÖvning 6. Ali Tofigh 24 Oktober, 2006
Övning 6 Ali Tofigh 24 Oktober, 2006 1 Sortering Att sortera behöver man göra väldigt ofta i programmering. Python tillhandahåller bland annat en metod i listor för detta ändamål. Det enda metoden behöver
Läs mer