Linköpings universitet

Relevanta dokument
Artificiell intelligens

729G43 Artificiell intelligens. Introduktion. Introduktion. Kursöversikt. Kursens organisation. Arne Jönsson HCS/IDA

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

Imperativ programmering

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

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Program & programmering

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Datastrukturer och algoritmer

Linköpings universitet

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

Vad behövs för att skapa en tillståndsrymd?

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Kognitionsvetenskap Kandidatprogrammet

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

Datastrukturer och algoritmer

Asymptotisk komplexitetsanalys

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

Genicore AB. Modellbaserad ansats. En liten firma i Göteborg som gör stora datasystem. Systemspråk - När modellen är systemet. torsdag 10 maj 2012

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Imperativ programmering. Föreläsning 2

Objektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

Föreläsning 1. Introduktion. Vad är en algoritm?

TENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Kunskapsrepresentation

Algoritmanalys. Inledning. Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016

Algoritmer, datastrukturer och komplexitet

Kognitionsvetenskapligt kandidatprogram

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

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

CS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008)

Kognitionsvetenskapligt kandidatprogram Bachelor Programme in Cognitive Science 180 Högskolepoäng

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 3 Jody Foo,

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

PROGRAMMERINGSMETODIK

Sökning och sortering

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

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

el o;; Utbildningsplan för Kognitionsvetenskapligt kandidatprogram Bachefor Programmein Cognitive Science 180 Högskolepoäng

Dataabstraktion. TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap

TDDI16 Datastrukturer och algoritmer. Algoritmanalys

Grundkurs i programmering - intro

DATORER OCH PROGRAM. Datorn är en symbolmaskin

Linköpings universitet

DATORER OCH PROGRAM. Programmerade maskiner Program beteendeplan och beteendegenerator Generalitet och portabilitet Datorn är en symbolmaskin

Varför är logik viktig för datavetare?

Funktionell programmering

Föreläsning 5 Innehåll

Problemlösning. Planering av program. Konstruktion. Programmeringsmetaforer. Problemlösning. Programmering = Problemlösning

Algoritmer, datastrukturer och komplexitet

TDP002 Imperativ programmering

TDP002 - Imperativ programmering

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige

Språkteknologi (SV2122) Föreläsning 3: Programmering i Python

Föreläsning 13. Träd

Imperativ programmering. Föreläsning 4

Turingmaskinen - en abstrakt datormodell

PROGRAMMERINGSMETODIK

TDP002 - Imperativ programmering

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall

729G06 Föreläsning 1 Objektorienterad programmering

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

Föreläsning 8: Aritmetik och stora heltal

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

TDIU01 (725G67) - Programmering i C++, grundkurs

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Sätt att skriva ut binärträd

Tentamen: Programutveckling ht 2015

PROGRAMMERING ÅK 9 INTRODUKTION

Artificial Intelligence

Objektorienterad programmering

Föreläsning 2 Datastrukturer (DAT037)

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

PROBLEMLÖSNING. ! GPS! Mål medel analys! Problemlösning i programmering. Lars-Erik Janlert 2007

Föreläsning 9 Datastrukturer (DAT037)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Dataabstraktion. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap

Algoritmer och effektivitet. Föreläsning 5 Innehåll. Analys av algoritmer. Analys av algoritmer Tidskomplexitet. Algoritmer och effektivitet

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Problemlösning och algoritmer

Inledande programmering med C# (1DV402) Introduktion till programmering

Programmering för språkteknologer II, HT2014. Rum

Kandidatprogrammet i kognitionsvetenskap

TDDC74 Programmering, abstraktion och modellering. Tentamen

Probabilistisk logik 1

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

Transkript:

2014-08-25 Översikt Kognitionsvetenskaplig introduktionskurs Föreläsning lgoritmer, Turingmaskiner, Programmering, rtificiell Intelligens mm lgoritmer Beräkningsbarhet Turingmaskiner Komplexitet atorer och program Symbolmaskin nnika Silvervarg Beskriva och orsaka beteende CiltLab/HCS/I (Programmeringsspråk) rtificiell Intelligens Intelligenta agenter Sökning som problemlösning Shakey ett exempel på planering En algoritm Beskriver en process Löser ett (en typ av) problem Implementeras vanligtvis i datorprogram Fungerar för en begränsad typ av indata En algoritm - onald Knuth Ett algoritmiskt problem består av en beskrivning av alla möjliga indata och önskad utdata för dessa Kan ses som en funktion: lgoritm(indata) = utdata Flödesdiagram En ändlig uppsättning regler som bestämmer en följd av operationer som löser en specifik typ av uppgift Kännetecken: Ändlighet Bestämdhet Indata Utdata Effektivitet The Friendship lgorithm Start Instruktion loop Instruktion J Villkor NEJ Instruktion Stop 7 Linköpings universitet 1

The Friendship lgorithm Multiplikation som addition 0 * 3 = 0 1 * 3 = 3 2 * 3 = 3 + 3 3 * 3 = 3 + 3 + 3 4 * 3 = 3 + 3 + 3 + 3 9 En (rekursiv) algortim för multiplikation En (rekursiv) funktion för multiplikation In: Två positiva tal, a och b Ut: Produkten av talen, c lgoritm: Om a = 0 så är c = 0 Om a = 1 så är c = b I annat fall är c = b + produkten av (a 1) och b I python def multiply(a, b): if (a == 1): return b elif (a == 0): return 0 else: return b + multiply(a - 1, b) 10 11 Beräkningsbarhet Turingmaskin 1936 beskrev lan Turing en enkel abstrakt maskin som kan beräkna alla rekursuva funktioner 1936 visade lonso Church att allt som kan beräknas kan beräknas med rekursiva funktioner Church-Turings tes: llt som kan beräknas kan beräknas av en Turingmaskin Ett oändligt långt band med celler (fungerar som minne, indata och utdata) I varje cell en symbol En cell kan läsas En cell kan ändra innehåll Ett tillstånd Instruktioner/program <Tillstånd, In, NyttTillstånd, Ut, Förflyttning> <S1, ä, S2, ae, 1R> Linköpings universitet 2

Turingmaskin Turingmaskin instruktion 5 elements current state current symbol new symbol move new state move right 1 1 1R # 1 1 1 + 1 1 # # # # # # Turingmaskin - additionsprogram current current new move state symbol symbol new state Universella Turingmaskiner = En dator Skip first number 1 1 1R En turingmaskin som har instruktionerna för en turingmaskin på ett eller samma band som används för indata/utdata Kräver ca 20 instruktioner Change middle + 1 1R Reached end # # 1L B elete last B 1 # halt B B B # 1 1 1 + 1 1 1 # # # # # # # Beräkningsbarhet lgoritmer Komplexitet lla algortimer terminerar inte et finns ingen algortim för att avgöra om en algoritm terminerar eller ej (The halting problem) lla algoritmer kan inte beräknas med rimliga resurser Minnes- och tidsåtgång ntal variabler, storlek på och antal datastrukturer etc ntal ( enkla ) operationer Programmeringsspråkberoende Ordo-notation Ett problem flera algoritmer Vilken algoritm som väljs beror på resursförbrukning Tid Minne Snabba algoritmer kräver ofta mer minne och minnessnåla algoritmer tar ofta längre tid Linköpings universitet 3

Effektivitetsklasser O(logN) logaritmisk O(N) linjär O(N logn) O(n 2 ) polynomisk O(2 n ) exponentiell (kombinatorisk explosion) 50 45 40 35 30 25 20 1000 900 800 700 600 500 400 15 300 10 200 5 100 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 N O(log N) O(N) O(N log N) O(N²) O(2N) N O(log N) O(N) O(N log N) O(N²) O(2N) 24 Effektivitetsklasser Vad är program och programmering Indata = n O(log n) O(n) O(n 2 ) O(2 n ) 10 1 10 100 1024 100 2 100 10000 10 31 1000 3 1000 1000000 10 301 10000 4 10000 100000000 10 3010 100000 5 100000 10000000000 Overflow atorn är en symbolmaskin, en processor av symbolisk information atorn har gränssnitt till omgivningen Symboliska (tangentbord och datorskärm), eller Fysiska (sensorer och motorer) Indata (tangentbord, mus, mikrofon, pekplatta, scanner ), och Utdata (dataskärm, högtalare, skrivare ) Vad är program och programmering Ett program efinierar och representerar ett avsett beteende Orsakar beteendet e händelser som leder från representationen till beteendet är instrumentella, de är ej bestämda av programmet ndra effekter som orsakas av programmet men varken är representerade eller instrumentella kallas sidoeffekter Vad är program och programmering Programmering är att Utforma ett beteende Representera beteendet i ett lämpligt programmeringsspråk etta ställer krav på: Fullständighet Exakthet dvs att program måste vara tydliga och precisa, utan utrymme för tolkning eller oklarheter Linköpings universitet 4

Naturliga kontra Formella språk Programmeringsspråk (nivåer) Naturliga språk Växt fram Oändliga Flertydiga, vaga Föränderliga Svåra att fomalisera Formella språk Konstruerade för visst syfte Relativt små Precisa, explicita, entydiga Oföränderliga Kontrollerbara (Formaliserbara) Programmeringsspråk (nivåer) Programmeringsspråk (paradigm) Maskinspråk atorns språk Binärkod med 1 och 0 ssemblerspråk Mnemoniskt maskinspråk t ex MOV.#0FFH Högnivåspråk Programmerarens språk Ett formellt språk besläktat med naturligt språk Manipulativa/imperativa Kronologiskt ordnade kommandon T ex Fortran (54), Cobol (59), Basic (64), Pascal (71), C (72) Funktionella och relationella Utgår ifrån matematiska funktioner och relationer t ex LISP (58), ML (72), Prolog (72) Objektorienterade Objekt med egenskaper och beteenden t ex Simula (67), Smalltalk (76), C++ (83), Java (95) Programmering i kognitionsvetenskap Vad är I? studiet av kognition hos naturliga och artificiella system verktyg för undersökning av modeller I Kognitiv modellering Språkteknologi Verktyg för protoyper och systemutveckling Interaktionsprogrammering Webbprogrammering och databaser Verktyg för analys och empiriska undersökning Kognitionspsykologiska laborationer Språkvetenskaplig databehandling Empiriska undersökningar enkäter, statistik etc rtificial Intelligence is the art of making computers work the way they do in the movies rtificial Intelligence is the study of how to make computers do things at which, at the moment, people are better. (Elaine Rich) rtificial Intelligence is the study of mental faculties through the use of computational models. (Eugene Charniak & rew Mcermott) Understand and build intelligent entities (Russel & Norvig) 37 Linköpings universitet 5

Mål med I Stark vs Svag I System som kan: Tänka som en människa Tänka rationellt Stark I Maskiner kan tänka, dvs vara intelligenta Svag I Maskiner kan bete sig intelligent, dvs simulera intelligens Handla som en människa Handla rationellt 38 45 Intelligenta agenter Intelligent agent Vad är en intelligent agent? ar för intelligenta agenter Typer av intelligenta agenter Enkel reflexstyrd Modellbaserad Målstyrd Nyttostyrd (Sjäv)lärande Rationell Handla så bra som möjligt Mäta agentens utförande Mappa från varseblivningssekvenser till handlingar Vad agenten vet om omgivningen Varseblivningshistoria Handlingar utonom gentens handlingar beror bara på agentens kunskap samt vad den varseblir 46 47 Rationell agent Ex. ammsugaragent gent Percept genttyp Utförandemått Handlingar gentprogram ammsugaragent Städa rent och gå hem, effektivt Rum, damm, hinder Suga, framåt, vänster, höger, stäng av Väggsensor, dammsensor, hemmasensor Handlingar 48 49 Linköpings universitet 6

ndra exempel på agenter genttyp Utförandemått Enkel reflexstyrd agent Medicinsk diagnos Frisk patient min. kostnad Satellit bildanalys Riktig kategorisering Plockrobot Interaktiv lärare ntal delar i rätt låda Maximal renhet, avkastning, säkerhet Maximera studentens poäng Patient, sjukhus, personal Bilder från satellit Rullband med delar, lådor Raffinaderi, operatörer Studenter Ställa frågor, Symptom, tester, diagnoser, patientsvar, behandlingar datainmatning Visa kategorisering Robotarm Ventiler, pumpar, displayer, värmare Visa övningar, föreslå, rätta Bildpunkter Kamera, robotsensorer Temperatur, tryck, kemiska sensorer Tangentbord Raffinaderikontroll Villkorshandlingsregler gent Hur världen ser ut nu Vad jag skall göra nu 50 53 Enkel reflexstyrd agent Problem rules = { dirt : suck, bump : turn-left, } genten kan inte gå systematiskt 54 55 Intelligent dammsugaragent Modellbaserad reflexstyrd agent Hur undviker vi att agenten blir stående i ett hörn eller vid ett hinder? Tillstånd För att kunna göra en sväng krävs en sekvens av handlingar därmed behövs ett minne (internt tillstånd) som beskriver vad agenten har gjort och eventuellt planerar att göra Hur världen utvecklas Vad mina handlingar medför Hur världen ser ut nu Villkors-handlingsregler Vad jag skall göra nu gent 56 57 Linköpings universitet 7

Målstyrd dammsugaragent Målstyrd agent Målet är att suga upp all smuts och stänga av sig på hemmarutan Tillstånd Konsekvensen av hypotetiska handlingar (eller sekvenser) prövas Sökning och Planering Helt observerbar omgivning Hur världen utvecklas Vad mina handlingar medför Hur världen ser ut nu Hur den blir om jag gör Mål Vad jag skall göra nu gent 58 59 Nyttobaserad agent Nyttobaserad agent Hur ska agenten välja om det finns flera handlingsekvenser som uppfyller målet? Utgå ifrån nyttan och värdera handlingsaleternativ nvändbart vid Målkonflikt, nyttofunktionen ger ett mått som bas för valet Osäkerhet av utfall, nyttofunktionen kan vägas mot sannolikheten för att målet nås Tillstånd Hur världen utvecklas Vad mina handlingar medför Nytta Hur världen ser ut nu Hur den blir om jag gör Hur glad jag blir i det tillståndet Vad jag skall göra nu gent 61 60 Yttre standard Kritiserare Inlärningselement Återkoppling Utförandeelement Mål gent som lär sig Förändringar Kunskap Sökning som problemlösning Tillståndsrymd med: Initialtillstånd Operationer som beskriver effekten av en handling som en funktion av tillståndsförändringar Måltest Vägkostnad Sökstrategi som genererar en lösning på problemet Problemgenerator gent 62 Linköpings universitet 8

Exempel - Problemformulering Exempel Sökträd 3 missionärer och 3 kannibaler skall korsa en flod i en båt som rymmer 2 personer. et får aldrig finnas fler kannibaler än missionärer för då äter kannibalerna upp missionärerna Exempel på tillståndsformulering Starttillstånd (3, 3, 0, 0, 1) eller hellre (3, 3, 1) Måltillstånd (0, 0, 0) Vägkostnad = 1 64 65 Sökstrategier Kunskapsrepresentation Blind sökning Utan kunskap om målet Heuristisk sökning Utnyttjar en gissning (heuristik) om hur långt från målet en nod är Sökning i spelförande program Minimax lfa-beta cutoff Mänsklig kunskap Representerad i en form som passar datorer Måste kunna representera Fakta Relationer mellan fakta Procedurell kunskap 66 67 Satslogik Predikatlogik Enkel representation Varje symbol står för en sats som svarar mot ett tillstånd i världen Logiska konnektiv,, Inga variabler Exempel: Kogvetare är glada typer: KogvetareÄrGladaTyper et finns inte sura kogvetare: etfinnssurakogvetare Kraftfullare Beskriver objekt, egenskaper hos objekt samt relationer mellan objekt nvänder variabler Kvantifierare,, Ger mer kompakta representationer än satslogik Exempel Kogvetare är glada typer: x Kogvetare(x) Glad(x) Typ(x) et finns inte sura kogvetare: x (Kogvetare(x) Sur(x)) 68 69 Linköpings universitet 9

Områden inom I Planering Shakey Sökning Planering Kunskapsrepresentation Maskininlärning Tillämpning: Språkteknologi Bildigenkänning Expersystem Spel atutvinning. https://www.youtube.com/watch?v=qxdn6ynwpii 70 71 Linköpings universitet 10