729G43'Ar*ficiell'intelligens' Kunskapsrepresenta*on' Kunskapsrepresenta*on' Kunskapsbaserade'agenter' Kunskapsbaserad'agent' Arne'Jönsson' HCS/IDA' '

Storlek: px
Starta visningen från sidan:

Download "729G43'Ar*ficiell'intelligens' Kunskapsrepresenta*on' Kunskapsrepresenta*on' Kunskapsbaserade'agenter' Kunskapsbaserad'agent' Arne'Jönsson' HCS/IDA' '"

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.

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 mer

729G43 Artificiell intelligens Kunskapsrepresentation. Arne Jönsson HCS/IDA

729G43 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 mer

Artificiell Intelligens Lektion 4

Artificiell 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 mer

HKGBB0, Artificiell intelligens

HKGBB0, 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 mer

Normalisering 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 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 mer

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

I 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 mer

Grundläggande logik och modellteori (5DV102)

Grundlä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 mer

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Asymptotisk 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 mer

Sätt att skriva ut binärträd

Sä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 mer

Innehå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. 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 mer

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Asymptotisk 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 mer

5. 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

5. 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

*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 mer

Artificiell Intelligens Övningsuppgifter

Artificiell 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 mer

Föreläsning 3: Booleans, if, switch

Fö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 mer

Tentamen i Statistik, STA A13 Deltentamen 2, 5p 24 januari 2004, kl. 09.00-13.00

Tentamen 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 mer

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section

Utsagor (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 mer

Föreläsning 13 och 14: Binära träd

Fö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 mer

HSB BRF HAMNEN, ÅSIKTEN ETAPP TVÅ

HSB 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 mer

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

I 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 mer

Probabilistisk logik 1

Probabilistisk 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 mer

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Fö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 mer

Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1).

Fö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 mer

Logik för datavetare DVK:Log Tisdagen 28 oktober 2014. Institutionen för dataoch systemvetenskap David Sundgren

Logik 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 mer

Substitution och unifiering

Substitution 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 mer

Grundläggande logik och modellteori

Grundlä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 mer

C++ - En introduktion

C++ - 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 mer

Artificial Intelligence

Artificial 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 mer

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Objektorientering. 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 mer

Probabilistisk logik 2

Probabilistisk 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 mer

Introduktion till Datalogi DD1339. Föreläsning 3 29 sept 2014

Introduktion 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 mer

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN 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 mer

Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D.

Kodexempel 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 mer

Programmering 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. 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 mer

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for

Kurslitteraturen. 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 mer

TENTAMEN OOP

TENTAMEN 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 mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. 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 mer

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å

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å 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 mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. 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 mer

Introduktion till programmering SMD180. Föreläsning 12: Klasser och objekt

Introduktion 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 mer

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

Introduktion 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 mer

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Introduktion 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 mer

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Klasser 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 mer

Antag att följande träd genereras i ett spelförande program om vi applicerar evalueringsfunktionen

Antag 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 mer

TDDD78, TDDE30, 729A Typhierarkier del 2 Vad krävs? Hur fungerar det?

TDDD78, 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 mer

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

JavaScript. 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 mer

Tentamen OOP 2015-03-14

Tentamen 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 mer

Dataabstraktion. 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 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 mer

Skillnader mellan Python och Java

Skillnader 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 mer

Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner

Introduktion 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 mer

Outline. TSFS06 Diagnos och övervakning Föreläsning 10 - Sannolikhetsbaserad diagnos och Bayesianska nätverk. Sneak-peak. Outline

Outline. 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 mer

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

1/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 mer

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

F5 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 mer

LÖSNINGSFÖRSLAG TENTAMEN

LÖ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 mer

Föreläsning 16 Arv. Jan Lönnberg 3.11.2011. T-106.1212 Grundkurs i programmering

Fö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 mer

Matematisk statistik för D, I, Π och Fysiker

Matematisk 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 mer

En uppsats i Språkteknologi av Niklas Vargensten e-post: d99-nva@d.kth.se

En 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 mer

Enkla variabler kontra referensvariabel

Enkla 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 mer

Artificiell Intelligens

Artificiell 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 mer

Nå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. 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 mer

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Bankkonto - ö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 mer

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

Fö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 mer

Grundläggande datalogi - Övning 1

Grundlä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 mer

Filosofisk logik Kapitel 18. Robin Stenwall Lunds universitet

Filosofisk 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 mer

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

DIAGNOSTISKT 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 mer

MicroPython Ett textbaserad programmeringsspråk för Micro:bit

MicroPython 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 mer

Dataabstraktion. 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 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 mer

729G04 Programmering och diskret matematik. Föreläsning 7

729G04 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 mer

10. Mängder och språk

10. 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 mer

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

Objektorienterad 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 mer

Uppgifter teknik HT17 (uppdaterad v. 40)

Uppgifter 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 mer

Matematisk statistik 9 hp Föreläsning 4: Flerdim

Matematisk 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 mer

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.

Sanningsvä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 mer

Användarhandledning Version 1.2

Anvä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 mer

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Programmering 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 mer

Hos vad? och bör därför vara instanseller klassvariabel i vilken klass?

Hos 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 mer

SF1901: SANNOLIKHETSTEORI OCH FLERDIMENSIONELLA STOKASTISKA STATISTIK VARIABLER. Tatjana Pavlenko. 8 september 2017

SF1901: 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 mer

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Grundlä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 mer

Det ä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.

Det ä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 mer

TENTAMEN OOP

TENTAMEN 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 mer

Artificiell intelligens En agent som spelar Black Jack Andreas Perjons [andpe813]

Artificiell 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 mer

2D1418, språkteknologi. Vad är WordNet? Hans Eriksson december Datorpost personnummer:

2D1418, 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 mer

de var svåra att implementera och var väldigt ineffektiva.

de 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 mer

Kontraktsprogrammering

Kontraktsprogrammering 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 mer

Tentamen i Objektorienterad programmering

Tentamen 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 mer

1 Begrepp och Hypoteser. 2 Inlärning genom sökning. 3 Objektiv inlärning. Inlärning av en boolsk funktion från exempel.

1 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 mer

Anna: Bertil: Cecilia:

Anna: 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 mer

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

TDA550 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 mer

Introduktion till programmering SMD180. Föreläsning 8: Listor

Introduktion 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 mer

Dugga Datastrukturer (DAT036)

Dugga 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 mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G 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 mer

Lösningar: Tentamen i Datavetenskapens grunder för D1, SDU, TDV A

Lö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 mer

Pythons standardbibliotek

Pythons 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 mer

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19

TDDC74 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 mer

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16

TDDC74 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 mer

MMA132: Laboration 1 Introduktion till MATLAB

MMA132: 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 mer

Flera kvantifierare Bevis Direkt bevis Motsägelse bevis Kontrapositivt bevis Fall bevis Induktionsprincipen. x y (x > 0) (y > 0) xy > 0 Domän D = R

Flera 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 mer

Python. Datatyper. Mer om datatyper. Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam!

Python. 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 mer

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }

Java-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 Ö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