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