Genetiskt Programmerad Musik

Storlek: px
Starta visningen från sidan:

Download "Genetiskt Programmerad Musik"

Transkript

1 Genetiskt Programmerad Musik Function Set: play_two, add_space, play_twice, shift_up, shift_down, mirror, play_and_mirror Terminal Set: Notes: C-4, C#4, D-4, D#4, E-4, F-4, F#4, G-4, G#4, A-5, A#5, B-5 Pseudo-Chords: C-Chord, D-Chord, E-Chord, F-Chord, G- Chord, A-Chord, B-Chord Other: RST

2 Abstrakt Kan man förena artificiell intelligens och musik? De beskrivs ofta väldigt olika, musik är kopplat till känslor och kreativitet medan intelligens oftast beskrivs som det motsatta, rationellt, mer logik i form av algoritmer. Forskningen kring musik är inte liten, dock är det svårt att avgöra vilket system som bäst lyckas representera musik. Därför går den här rapporten inte in på djupet, i mer än ett system, som försökt representera musik. Rapporten bygger på den studie gjord av Brad Johnson och Riccardo Poli;, "{GP}-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness Raters". I artikeln beskrivs hur deras genetiskt programmerade musiksystem fungerar i interaktion med människa, samt hur det fungerar i samspel med ett neuralt nätverk. Resultaten från körningarna är intressanta och relativt bra, men det finns fortfarande mycket att förbättra. 2

3 1. Inledning Vad är genetisk programmering? Representation av GP Funktioner Trädstruktur Parametrar Fitness system Körningar Problem och förbättringar Automatisk rankning Neurala Nätverk Automatisk rankningslista Körningar Diskussion Referenser..14 3

4 1. Inledning Dagens forskning kring kombinationen av musik och AI vänder sig främst till att undersöka om en dator kan skapa musik på egen hand. För att kunna skapa musik måste man även kunna avgöra vad som är bra respektive dålig, det är inte något som är helt enkelt för en dator. I en människas öron är musik skapat ur känslor, kreativitet, erfarenhet och ens personliga musik varierar för varje person. Hur ska en dator, som fungerar nästintill tvärtemot människan, kunna skapa musik på egen hand? Det har funnits flera försök till att skapa program som kan generera musik, med olika tillvägagångssätt och resultat. Bland annat så har Biles konstruerat ett musikprogram som använder sig utav genetiska algoritmer för att skapa korta jazzsolon är JamGem. Det fungerar på så sätt att lyssnaren får avgöra om musiken är bra eller dålig, programmet fungerar hyfsat bra, tyvärr blir själva processen för den som får rangordna musiken rätt påfrestande. [1] Ett annat försök till att återskapa musik är EMI [2]. Cope, grundaren till EMI, har utvecklat ett program utefter sin egna kompositionsstil. EMI lyckas känna igen olika musikstilar genom att den får ett tidigare komponerat stycke, som den sedan plocka isär och sen sätta ihop fast annan logisk ordning. Även neurala nätverk har applicerats i ett försök att efterlikna musik, genom att översätta det till formellt språk. Forskning gjort av Kippen (et al.), har man använt sig utav Bol Processorn för att strukturera och översätta musik till formell grammatik [3] Men den här rapporten kommer att fokusera på att se om det går att skapa musik i form av genetisk programmering. Det mesta bygger på artikeln, "{GP}-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness Raters skriven av Brad Johnson och Riccardo Poli [4]. I artikeln beskriver de hur de har utvecklat ett musikprogram som kan skapa korta musikslingor, bestående av toner och pauser, både med hjälp av människan och utav automatiska rankningssystem. Systemet bygger på en sammansättning av genetisk programmering och genetiska algoritmer, ett system utvecklat av Kozak [5]. Nedan följer en kort grundintroduktion av vad genetisk programmering är. 1.2 Vad är genetiskt programmering? Genetisk programmering är ett sätt att automatiskt generera datorprogram. Det bygger på vår evolutionsteori, Survival of the Fittest [5-6]. I stora drag fungerar genetisk programmering till en början så att man skapar en population av individer, utifrån förbestämda terminaler och funktioner. Terminalerna är det indatavärde man har och funktioner är de möjliga utföranden man kan göra på det värde man har. I genetisk programmering bör man även bestämma vilken struktur man vill att ens individ ska ha, för att bäst kunna lösa problemet. Allt som oftast representeras individerna genom en trädstruktur, men man kan även använda sig utav linjära eller grafiska strukturer. Nästa steg i programmeringen är att man testar sedan sina individer och väljer ut de som fungerar bäst. Fitnessfuntionen, är till för att avgöra hur nära målet individen är, låter de som lyckats bäst föröka sig. Förökningen sker med hjälp av genetiska operatorer och sedan 4

5 upprepar man proceduren X-antal populationer tills man har fått den absolut bästa populationen. För att få ett så bra resultat som möjligt bör man alltså fundera kring vilka operatorer man bör använda sig utav. De vanligaste genetiska operatorer som används är mutering; då en del av populationen slumpmässigt förändras och ersätts, reproduktion; fördubbling av en individ och korsning; då två individer kapas och byter plats med varandra. Jämförelsen med genetiska algoritmer och genetisk programmering är att man med genetisk programmering kan variera längden, i och med att den kan ta funktioner. Det mesta av den genetiska programmeringen går ut på att avla fram så många individer ur så många populationer som möjligt, på så kort tidsintervall som möjligt. 5

6 2. Representation av GP-musik GP-musik använder sig som sagt enbart av enkla toner och pauser, vilket är väldigt smart i och med att man då slipper ta hänsyn till faktorer som gör processen av att omvandla och tolka musik till ett musikprogram mycket svårare. Man slipper ta hänsyn till exempelvis vilka typer av instrument man bör ha, vilka olika ljudvågformer som de i sin tur skapar, vilken styrka de har, och så vidare. Musikprogrammet är uppbyggt med en trädstruktur som har terminaler och funktioner. Noterna utgör då terminalerna, medan funktionerna säger hur noterna bör utnyttjas. Noterna som används: C, C#, D, D#, E, F, F#, G, G#, A, A#, H 2.1 Funktioner play_two tar två sekvenser och sätter ihop de till en sekvens add_space tar en sekvens och lägger till en paus efter varje ton, gör att hastigheten kan varieras play_twice tar en sekvens och spelar upp den två gånger shift_up tar en sekvens och höjer varje not i den med ett steg shift_down tar en sekvens och sänker varje not i den med ett steg mirror tar en sekvens och spelar den baklänges play_and_mirror tar en sekvens, spelar den och gör sedan som föregående funktion och sätter ihop de två. 2.2 Trädstuktur Här kan man se en musiksekvens representerat i en trädstruktur, överst skrivet i Lispform: (shift-down (add-space (play-and-mirror (play-two (play-two (play-two (play-two B-5 B-5) (shift-down A-5)) (shift-down A-5)) F-4)))) Figur 1. Exempel på musiksekvens 6

7 Figur 2. Samma exempel som figur 1, i en trädstruktur. 2.3 Parametrar De parametrar som Poli och Johnson använder sig av är standard parametrar framtagna av Koza. Det baseras på att man använder 16 individer, över 6 generationer. 70 % av dessa de nya individerna uppkommer genom cross-over, 15% muteras och 15% reproduceras. 2.4 Fitness system Det är tänkt att man med hjälp av en fitnessfunktion ska kunna avgöra vad som är bra respektive dålig musik, men hur ska man kunna skriva en matematisk funktion som beskriver ens musiksmak? Poli och Johnsons första lösning till detta var att låta en människa utföra en rankning av varje musiksekvens som genererades och därmed kunna se vilka individer som borde få gå vidare till nästa generation. Användaren får välja att betygssätta musiken på en skala från beroende på hur bra man tycker att musiken är. Man får höra en sekvens i taget, för att sedan betygsätta musiksekvensen och användaren får själv avgöra när hon eller han vill går vidare. Det är alltså människan som får fungera som fitnessfunktion. 7

8 Figur 3. Hur ett GP-musikprogammet kan se ut för användaren 2.5 Körningar I det första steget användes enbart operatorerna play_two och add_space, man använde så små funktioner och terminaler som möjligt. Den körningen var mest till för att se om systemet vad kunde generera, om det verkligen skulle fungera överhuvudtaget. Man valde därför att enbart låta den generera en oktav, inga pseudo-ackord tilläts. Resultatet riktigt dåligt och var dessutom dåligt strukturerat. Till nästa testkörning lades fler funktioner till och det lät plötsligt mycket trevligare. Att man lade till funktionerna resulterade tydligen i att skillnaden mellan den bästa och den sämsta individen slätades ut, vilket kan ha både bra och dåliga effekter i och med att både den sämsta som den bästa individen försvinner helt och hållet. Till nästa försök introducerades psudo-ackord, det innebar att en viss not tillhör ett ackord. Det bör påpekas att det skiljer sig genom att de spelas sekventiellt, inte samtidigt. Pseudoackorden infördes i ett försök att undvika det faktum att sekvenserna biland blir så korta. Pseudo- Chord Corresponding Note Sequence C-Chord C-4,E-4,G-4 D-Chord D-4,F#4,A-5 E-Chord E-4,G#4,B-5 F-Chord F-4,A-5,C-5 G-Chord G-4,B-5,D-5 A-Chord A-5,C#5,E-5 B-Chord B-5,D#5,F#5 Tabell 1. Pseudo-ackord och notsekvenser 8

9 Man begränsade även noterna till att enbart utnyttja C-dur noter, samtidigt som man ökade djupet från 6 till 9. Resultatet förbättrades anmärkningsvärt, nästintill samtliga körningar fick ett bra resultat. Att man enbart använt sig av C-dur skalan, fick man en bättre ljudmässig sekvens. 2.6 Problem och förbättringar Det som Johnson och Poli insåg från körningarna och genom att titta på användarna när det betygsatte musiken ledde till vissa förbättringar av systemet. För det första insåg de att trots att programmet kan var väl utvecklat, så kan användaren vara den felande länken. Subjektiviteten hos den som sätter betygen, kan variera på hur pass mycket hon/han fokuserar på uppgiften i fråga. Är det enbart en människa som utför betygssättningen dessutom, som i det här fallet, kan processen lätt bli tröttsam och personen i fråga kan snabbt tappa sin koncentration. Långsiktigt sett blir det kanske inte ett så pass bra system som man har tänkt sig från början. Tack vare testkörningarna insåg de även att rankningen mellan generationer inte fungerade. De ändra de i koden, för att undvika fenomenet av att en användare kan få höra samma sekvens två gånger, i två olika generationer, sedan betygsätta samma sekvens fast på två olika sätt. De såg till att alla individer i en generation borde vara betygsatta innan man får gå vidare. Samtidigt kunde man nu gå tillbaka till en tidigare betygsatt generation, om man skulle vilja titta och ändra på den. Ytterliggare ett problem var att vissa sekvenser var för långa eller för korta, därför ändrade de så att användaren själv skulle få bestämma hur långa eller korta sekvenserna skulle få vara. Utifrån den längd som bestämdes, eliminerades, individer som var utanför normen, automatiskt, innan man gick vidare till nästa generation. Ytterliggare en förbättring ljudmässig gjordes, när man ökade från en oktav till två oktaver. Det man ändrade i parametrarna var att införa så kallat Tournament selection, vilket betydde att man kunde jämföra två sekvenser i en typ av utslagning, utan att ta hänsyn till betygsskalan. Detta skulle man senare kunna utnyttja i det neurala nätet, där programmet ska kunna jämföra två sekvenser på egen hand. 9

10 3. Automatisk rankning Hur ska man nu kunna skapa ett program som skapar musik utan att ha med människoaspekten? Johanson och Poli beslöt sig för att använda sig av neurala nätverk, genom att ha en backpropagation som tränar nätverket. Det är ett flexibelt system som bygger på vikter och kan var ett bra sätt att representerar musik på. I varje kontakt till en nod, har de sin egna specifika vikt, som kan justeras genom backpropagation. Ett nätverk som använder delade vikter, kan en del noder ha samma vikt, detta leder till att vikten kommer att ändras flera gånger under back-propagation. Det här är alltså ett bra sätt att utnyttja då det kommer till genetiskt programmerad musik, där indata inte alltid har lika långa sekvenser. Vikterna kan alltså justeras och ändras så att de passar in i alla nät. Det automatiska rankningssystemet använder en skala på Neurala nät Figur 2. Hur det neurala nätverket kan se ut Det finns två lager i det automatiska neurala nätet, bottennivån N är närmast indata, och den övre nivån N+1 är närmast utdata. Varje nod i den övre nivån får alltså indata via bottenivån. Level Spread avgör hur många noder som går vidare till nästa nivå, som ni kan se är det 4 stycken i det här fallet. Level Delta avgör, om det är några som överlappar, hur många det då skulle vara. I det här nätverket är det 2 stycken, det vill säga att den första noden på den övre nivån får indata genom noden från den lägsta nivån, medan nästa nod på den övre nivån får indata genom den 10

11 tredje lägsta nivå noden. Om man minskar värdet på Level Data så ökar överlappningen och korrelationen för noderna mellan de olika nivåerna. Om man istället ökar Level Data desto mer autonomt agerar noderna för de högre nivåerna. Vikterna på de högre nivåerna för Level Spread delas med de undre nivåerna. Detta betyder att vikten är densamma för det första indata som kommer in, till varje övre nod och i backpropagation så modifieras vikterna på den undre noden och alla noder den har kontakt med. 3.2 Automatisk rankningslista Precis som människoanvändaren sker här en bedömning på en skala från Original topologin har 5 lager; 3 dolda, två indata och ett utdata lager. Nätverket fungerar så att för varje ny individ som ska evalueras, byggs ett ny nätverk upp, detta eftersom varje sekvens som ska betygsättas varierar i längd. För att hålla nätverket konsistent så lagras och används de delade vikterna i varje nätverk som skapas. Nätverket är byggt så att först skapas en indata nod för varje paus i sekvensen som evalueras. Sedan lagras värdet på den not, i den platsen i sekvensen, till indata noden på följande sätt; För noter delas värdet med 72 och laddas in i noden. Värdet av noten är 13 gånger oktaven, plus notens egna värde, där exempelvis C-0 är 1, C#0 är 2 osv. För pauser laddas a-1 in i noden, -1 hjälper att skilja mellan noter och pauser. Man bör även komma ihåg att det måste skapas tillräckligt många noder för att täcka hela sekvensen, givet efter vilket Level Spread och Level Delta den har. En sekvens på 6 noter/pauser har en Level Spread 4 och ett Level Delta 2, kräver 2 noder. Om det inte blir jämnt, avrundas antalet noder uppåt. Sedan skapas kontakten mellan noderna och fortsätter upp i nätverket tills varje nod har kontakt med alla noder i den högsta nivån. Utdata ger ett värde mellan 0 och 1, som sedan multipliceras med 100 för att få skala Man började med ett nät med enbart 1 utdata, men efter att testerna inte gav det resultat man 11

12 ville ökade man till ett med 7 utdata. Man kan alltså ändra i hur stor utdata man vill ha; 1 eller 7, hur stort Level Spread och Level Delta man vill ha; 1, 2 eller 3. Nätet tränas med hjälp av back-propagation, som justerar vikterna bakåt i lagren från utdatanoden tills den nått indatanoden. 3.3 Körningar Det sista testet från körningarna generade av människorankningen, var till för att kunna skapa en grund att basera träningen av de neurala näten, därför gjorde man en extra stor körning med över tjugo individer i varje population och lät den jobba över tio generationer. Djupet lades till 12. Man började med samma parametrar som i tidigare körningar, men utökade det till 50, 100 och 500 individer. Det ledde till ett väldigt varierande resultat. Det man dessutom hade förutom själva testgruppen, var en kontrollgrupp. Många tester gjordes, med många olika parametrar och de tränades på många olika sätt med hjälp av back-propagation. Det man såg från statistiken var att skillnaden mellan kontrollgrupp och tränade nätverket inte var så stort och musiksekvenserna lät inte så annorlunda om man jämförde, den mänskliga från den automatiserade, sekvensen. 12

13 4. Diskussion Johanson och Polis egna uppfattning av systemet var att det går att generera korta musikstycken med hjälp av genetiskt programmering, då människan är med och betygsätter. Människoelementet i systemet inte alltid är en fördel, då ett för stort system kan bli för krävande för en användare att betygsätta. De diskuterar även att det finns mycket man kan förbättra i både den automatiska och den människobaserade systemet, som bland annat parametrar, funktioner och terminaler så. Så trots att de har fått ett hyfsat bra resultat finns där fortfarande många brister. Själv anser jag att det är intressant att se att det går att skapa musik med genetisk programmering. Tveksamt om det inte kommer att finnas flera olika användningsområden för GP-musik i framtiden. Det kan till en början vara ett bra sätt att få ingång ens musikaliska kreativitet och se på lösningar i ett nytt ljus. Vår tolkning av musik kan även komma att ändras. Implementerar man exempelvis systemen i musikundervisning kan det kanske kommat att ändra vår grundsyn på hur musik bör skapas? Musik är så pass lättillgängligt idag, kanske kommer skapandet av musik vara lika självklart som lyssnandet, i framtiden. Kombinationen av genetiska och neurala strukturer kan säkert också komma att ändra vår syn på hur man kan utveckla olika system, kan vara till stor hjälp i system som inte alltid har självklara lösningar på problem. Forskningen kring musik visar enkelt vilken bred tolkning som kan göras kring beskrivandet av vad det är och hur man kan skapa musik. Men det kanske är en åtanke man bör ha inför framtiden, att man istället för att begränsa sig till enbart ett sätt, försöker hitta lösningar på ett mer tvärvetenskapligt synsätt. 13

14 5. Referenser [1] Biles, John A. GenJam: A Genetic Algorithm for Generating Jazz Solos ; Information Technology Department / Rochester Institute of Technology. (1994) [2] [3] Bel, B & Kippen, J. (1992). Modelling music with grammars: Formal language representation in the Bol processor. Academic Press, 1992, pp [4] Bradley E Johanson and Riccardo Poli,"{GP}-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness Raters", "University of Birmingham, School of Computer Science",1998", ftp://ftp.cs.bham.ac.uk/pub/tech-reports/1998/csrp ps.gz, nford.edu/~bjohanso/gp-music/tech-report [5] J.R. Koza, F.H. Bennett III, David Andre & Matrin A Keane (1999) Genetic Programming III darwinian invention and problem solving, Morgan Kaufmann Publishers Inc, San Fransisco [6] Russel, Stuart & Norvig, Peter (1995) Artificial Intelligence A Modern Approach. Prentice Hall, New Jersey Musikslingor kan hittas: ps.gz. 14

GENETISK PROGRAMMERAD MUSIK OCH

GENETISK PROGRAMMERAD MUSIK OCH GENETISK PROGRAMMERAD MUSIK OCH UTVECKLINGEN AV AUTO FITNESS RATERS Abstract Kan datorer skapa egen musik? Kan datorer lära sig vad som är bra musik? Med hjälp av Genetisk programmering och neurala nät

Läs mer

0XVLNVNDSDQGHJHQRP *HQHWLVN 3URJUDPPHULQJ

0XVLNVNDSDQGHJHQRP *HQHWLVN 3URJUDPPHULQJ 0XVLNVNDSDQGHJHQRP *HQHWLVN 3URJUDPPHULQJ ) UGMXSQLQJVDUEHWHL$, 0XVLNVNDSDQGHRFK*HQHWLVN3URJUDPPHULQJ 6DPPDQIDWWQLQJ I detta arbete har jag valt att undersöka hur musik kan skapas genom ett system grundat

Läs mer

Genetisk programmering i Othello

Genetisk programmering i Othello LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G11 2009-10-09 Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se Innehållsförteckning 1. Inledning... 1

Läs mer

Grundläggande Idéer Algoritmens komponenter Numerisk optimering Genetisk Programmering. Genetiska Algoritmer

Grundläggande Idéer Algoritmens komponenter Numerisk optimering Genetisk Programmering. Genetiska Algoritmer Genetiska Algoritmer 1 Grundläggande Idéer 2 3 4 Exempel Parallell optimering inspirerad av biologisk evolution Parallell optimering inspirerad av biologisk evolution Population av hypoteser Urvalprocess

Läs mer

Artificiell Musik? AI som kompositör 2001-10-18

Artificiell Musik? AI som kompositör 2001-10-18 Artificiell Intelligens HKGBB0 Kognitionsvetenskapliga programmet, HT 2001 Institutionen för Datavetenskap, Linköpings universitet Artificiell Musik? AI som kompositör 2001-10-18 "Musik ska byggas utav

Läs mer

Interaktion med den genetiska algorithmen GenJam

Interaktion med den genetiska algorithmen GenJam Interaktion med den genetiska algorithmen GenJam - Linköpings Universitet HT 2012 Innehållsförteckning Innehållsförteckning... 1 Inledning... 2 Ordtabell... 2 Vad är en Genetisk Algorithm... 2 IGA, Interaktiv

Läs mer

GenJam En musikalisk genetisk algoritm?

GenJam En musikalisk genetisk algoritm? GenJam En musikalisk genetisk algoritm? Kognitionsvetenskapliga programmet Abstract GenJam är en modell av en jazzmusiker som lär sig att improvisera. Det är en interaktiv genetisk algoritm som interagerar

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

Introduktion till programmering

Introduktion till programmering Introduktion till programmering Vad är programmering? Vad gör en dator? Vad är ett datorprogram? 1 (9) Vad är programmering? För att bestämma en cirkels area måste du: 1. Dividera diametern 5 med 2. 2.

Läs mer

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

Inledande programmering med C# (1DV402) Introduktion till programmering Introduktion till programmering Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt

Läs mer

Regression med Genetiska Algoritmer

Regression med Genetiska Algoritmer Regression med Genetiska Algoritmer Projektarbete, Artificiell intelligens, 729G43 Jimmy Eriksson, jimer336 770529-5991 2014 Inledning Hur många kramar finns det i världen givet? Att kunna estimera givet

Läs mer

Genetik'i'musik' En'analys'av'genetiskt'inspirerad'programmering'och'dess'kapacitet' till'musikskapande'

Genetik'i'musik' En'analys'av'genetiskt'inspirerad'programmering'och'dess'kapacitet' till'musikskapande' MikaelSkagenholtLinköpingsUniversitet miksk473@student.liu.seartificiellintelligensii 729G11 Genetikimusik Enanalysavgenetisktinspireradprogrammeringochdesskapacitet tillmusikskapande MikaelSkagenholt

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

A B C D E F A B C D E F (3) Svar: Tabellen ger grafen:

A B C D E F A B C D E F (3) Svar: Tabellen ger grafen: 1. Russel & Norvig menar att man kan utveckla AI-system som antingen tänker som en människa, handlar som en människa, tänker rationellt eller handlar rationellt. Förklara och exemplifiera dessa fyra synsätt.

Läs mer

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann 729G43 Artificiell intelligens / 2015 Maskininlärning 3 Marco Kuhlmann Förra gången: Perceptroninlärning Beslutsregel predicerat y-värde Exempel: AND Välj parametrar θ 0, θ 1, θ 2 sådana att perceptronen

Läs mer

Programmering som språk

Programmering som språk Matematik Grundskola årskurs 1-3 Modul: Algebra, åk 1-3 Del 5: Algebra och programmering som språk Programmering som språk Constanta Olteanu och Lucian Olteanu, Linnéuniversitetet Att arbeta med programmering

Läs mer

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

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

Läs mer

Genetiska algoritmer. Henrik Hansson (hhn00001@student.mdh.se) Rapport, CDT212 Mälardalens Högskola

Genetiska algoritmer. Henrik Hansson (hhn00001@student.mdh.se) Rapport, CDT212 Mälardalens Högskola Genetiska algoritmer Henrik Hansson (hhn00001@student.mdh.se) Rapport, CDT212 Mälardalens Högskola 1 Sammanfattning Genetiska algoritmer har rötter i 60-talet och efterliknar evolutionsteorin på så sätt

Läs mer

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

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs... 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

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

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs... 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

Föreläsning 11. Giriga algoritmer

Föreläsning 11. Giriga algoritmer Föreläsning 11 Giriga algoritmer Föreläsning 11 Giriga algoritmer Användning Växelproblemet Kappsäcksproblemet Schemaläggning Färgläggning Handelsresandeproblemet Giriga algoritmer (Greedy algorithms)

Läs mer

genetiska algoritmer

genetiska algoritmer Introduktion till genetiska algoritmer CT3620 Vetenskapsmetodik 2005-10-21 Ylva egerfeldt ydt01001@student.mdh.se SAMMANFATTNING enna rapport är tänkt som en introduktion till genetiska algoritmer. Först

Läs mer

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

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Handledare: Mikael Goldmann

Handledare: Mikael Goldmann 2012-02- 23 Jacob Rydh Robert Hedin Sudoku Solver Projektspecifikation Handledare: Mikael Goldmann Introduktion Vi ska studera och utforma olika algoritmer för att lösa Sudoku puzzel. Vi kommer testa olika

Läs mer

Neurala nätverk och språkigenkänning. Henrik Linnarsson. Linköping University

Neurala nätverk och språkigenkänning. Henrik Linnarsson. Linköping University Neurala nätverk och språk Henli807!1 Neurala nätverk och språkigenkänning Henrik Linnarsson Linköping University Neurala nätverk och språk Henli807!2 RNN, LSTM och språkigenkänning Inledning Idag är språkigenkänning

Läs mer

Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping

Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping Fuzzy Logic När oskarpa definitioner blir kristallklara Linköpings Universitet Linköping Sammanfattning I denna fördjupningsuppgift har jag fokuserat på Fuzzy Logic och försökt att beskriva det på ett

Läs mer

Genetiska Algoritmer. 10 mars 2014

Genetiska Algoritmer. 10 mars 2014 Genetiska Algoritmer Johan Sandberg Jsg11008@student.mdh.se 10 mars 2014 Niklas Strömberg Nsg11001@student.mdh.se 1 SAMMANFATTNING Genetiska algoritmer är en sorts sökalgoritm som är till för att söka

Läs mer

Imperativ programmering

Imperativ programmering Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk

Läs mer

Symboler och abstrakta system

Symboler och abstrakta system Symboler och abstrakta system Warwick Tucker Matematiska institutionen Uppsala universitet warwick@math.uu.se Warwick Tucker, Matematiska institutionen, Uppsala universitet 1 Vad är ett komplext system?

Läs mer

Ett spel skapat av Albin Wahlstrand

Ett spel skapat av Albin Wahlstrand Viking vs. Demons Ett spel skapat av Albin Wahlstrand 2012-06-03 1 Abstrakt Denna rapport kommer att handla om mina positiva och negativa erfarenheter inom projektet jag jobbat på de senaste 10 veckorna.

Läs mer

KUNGLIGA TEKNISKA HÖGSKOLAN KISTA. Lego Linefollower. Få en robot att följa linjen på golvet!

KUNGLIGA TEKNISKA HÖGSKOLAN KISTA. Lego Linefollower. Få en robot att följa linjen på golvet! KUNGLIGA TEKNISKA HÖGSKOLAN KISTA Lego Linefollower Få en robot att följa linjen på golvet! Felix Ringberg 2012-08-09 felixri@kth.se Introduktionskurs i datateknik II1310 Sammanfattning I den här laborationen

Läs mer

Spekulativ exekvering i CPU pipelining

Spekulativ exekvering i CPU pipelining Spekulativ exekvering i CPU pipelining Max Faxälv Datum: 2018-12-05 1 Abstrakt Speculative execution is an optimisation technique used by modern-day CPU's to guess which path a computer code will take,

Läs mer

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10 Projekt Rapport RaidPlanner Jeanette Karlsson UD10 Abstrakt: Denna rapport handlar om mitt projekt i kursen Individuellt Mjukvaruutvecklings projekt. Rapporten kommer att ta upp hur jag gått tillväga,

Läs mer

SELF- ORGANIZING MAPS

SELF- ORGANIZING MAPS LINKÖPINGS UNIVERSITET Kognitionsvetenskapliga Programmet Examinator: Arne Jönsson SELF- ORGANIZING MAPS - Ett fördjupningsarbete inom Artificiell Intelligens Fack 52 katwa676@student.liu.se Sammanfattning

Läs mer

Genetiska Algoritmer

Genetiska Algoritmer Linköpings Universitet Intutionen för datavetenskap Artificiell Intelligens HKGBB0 HT-2003, oktober Genetiska Algoritmer Som problemlösning Anna Skoglund annsk334@student.liu.se 0 Abstract Genetiska algoritmer

Läs mer

Johanna Bergquist Mittuniversitetet Sundsvall Musik och Ljuddesign LP004G Handledare Jan Thim. Tinnitus och ljudöverkänslighet

Johanna Bergquist Mittuniversitetet Sundsvall Musik och Ljuddesign LP004G Handledare Jan Thim. Tinnitus och ljudöverkänslighet Johanna Bergquist Mittuniversitetet Sundsvall Musik och Ljuddesign LP004G Handledare Jan Thim Tinnitus och ljudöverkänslighet 1 Innehållsförteckning Sammanfattning Introduktion Teori Metod Implementering

Läs mer

Hantering av hazards i pipelines

Hantering av hazards i pipelines Datorarkitektur med operativsystem Hantering av hazards i pipelines Lisa Arvidsson IDA2 Inlämningsdatum: 2018-12-05 Abstract En processor som använder pipelining kan exekvera ett flertal instruktioner

Läs mer

Genetiska algoritmer

Genetiska algoritmer GA Genetiska algoritmer Warwick Tucker Matematiska institutionen Uppsala universitet warwick@math.uu.se 1 Reseproblem Reseproblem Du önskar att resa inom Europa genom att besöka London, Paris, Rom, Stockholm

Läs mer

Testplanering, test-first, testverktyg

Testplanering, test-first, testverktyg Testplanering, test-first, testverktyg Mats Skoglund Department of Computer and Systems Sciences Stockholm University/Royal Institute of Technology Stockholm, Sweden 12 mars 2007 Mats Skoglund Page 1(33)

Läs mer

Sekvensstyrning Grafcet och IEC

Sekvensstyrning Grafcet och IEC Sekvensstyrning Grafcet och IEC 61131-3 Indtroduktion GRAFCET Tekniken grundades i Frankrike på 1970-talet och ligger till grund för ett standardiserat programspråk i enlighet med standard IEC 61131-3.

Läs mer

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson Minesweeper Individuellt Mjukvaruprojekt Joakim Jonsson 08 06 2013 Abstrakt Nedan följer en slutrapport för projektet inom kursen Individuellt Mjukvaru utvecklingsprojekt. Jag har under dessa 10 veckor

Läs mer

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05 1(15) Bilaga 1 2(15) Neuronnätslaboration Räknare Denna laboration riktar sig till gymnasieelever som går en teknisk utbildning och som helst har läst digitalteknik samt någon form av styrteknik eller

Läs mer

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens 2 2010-10-03 Erik Claesson 880816-1692

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens 2 2010-10-03 Erik Claesson 880816-1692 Beräkning med ord -hur en dator hanterar perception 2010-10-03 Erik Claesson 880816-1692 Innehåll Inledning... 3 Syfte... 3 Kan datorer hantera perception?... 4 Naturligt språk... 4 Fuzzy Granulation...

Läs mer

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

CS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008) CS - Computer science Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008) Vad datateknik INTE är: Att studera datorer Att studera hur man skriver datorprogram Att studera hur man använder

Läs mer

Hyper-Threading i Intelprocessorer

Hyper-Threading i Intelprocessorer Lunds Tekniska Högskola Campus Helsingborg DATORARKITEKTURER MED OPERATIVSYSTEM EITF60 RAPPORT Hyper-Threading i Intelprocessorer 4 december 2017 Rasmus Hanning IDA2 Sammanfattning Det har sedan den första

Läs mer

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

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Är varje påstående som kan formuleras matematiskt*) alltid antingen sant eller falskt? *) Inom Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Exempel: 12 = 13 nej, falskt n! >

Läs mer

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.

Läs mer

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från

Läs mer

Matcha rätt hjärta till rätt patient med AI. Dennis Medved

Matcha rätt hjärta till rätt patient med AI. Dennis Medved Matcha rätt hjärta till rätt patient med AI Dennis Medved Översikt Introduktion IHTSA LuDeLTA Sammanfattning Framtida arbete Introduktion Hjärttransplantation Livräddande operation för patienter med hjärtsvikt

Läs mer

Tentamen: Programutveckling ht 2015

Tentamen: Programutveckling ht 2015 Tentamen: Programutveckling ht 2015 Datum: 2015-11-04 Tid: 09:00-13:00 Sal: Ansvarig: Resultat: Hjälpmedel: Maxpoäng: Betygsgränser: Anslås inom 3 veckor. Inga 40 p 20 p för G, 32 p för VG. Iakttag följande:

Läs mer

Att programmera en Beethoven

Att programmera en Beethoven Linköpings universitet Att programmera en Beethoven Fördjupning inom Neurala nätverk och LSTM 2018-01-03 Innehåll 1 Inledning- Musik och artificiell intelligens... 2 1.1 Historia... 2 1.2 Bakgrund AIVA...

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5 Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor 1 Laboration 5 - Introduktion Syfte: Öva på självständig

Läs mer

UPPGIFT 1 V75 FIGUR 1.

UPPGIFT 1 V75 FIGUR 1. UPPGIFT 1 V75 FIGUR 1. Varje lördag året om spelar tusentals svenskar på travspelet V75. Spelet går ut på att finna sju vinnande hästar i lika många lopp. Lopp 1: 5 7 Lopp 2: 1 3 5 7 8 11 Lopp 3: 2 9 Lopp

Läs mer

Registerforskning Oktober 2018, Stockholm City Conference Centre. Möjligheter med Artificiell Intelligens inom registerforskningen

Registerforskning Oktober 2018, Stockholm City Conference Centre. Möjligheter med Artificiell Intelligens inom registerforskningen Registerforskning 2018 17 Oktober 2018, Stockholm City Conference Centre Möjligheter med Artificiell Intelligens inom registerforskningen Peter Funk Mälardalens Högskola Vem är Peter Funk? Artificiell

Läs mer

Enlagersnät Flerlagersnät Generalisering. Artificiella Neuronnät

Enlagersnät Flerlagersnät Generalisering. Artificiella Neuronnät Artificiella Neuronnät 1 Karaktäristiska egenskaper Användningsområden Klassiska exempel Biologisk bakgrund 2 Begränsningar Träning av enlagersnät 3 Möjliga avbildningar Backprop algoritmen Praktiska problem

Läs mer

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit. 2D1432 Artificiella Neuronnät och andra lärande system Lösningsförslag till Tentamen 2003-03-06 Inga hjälpmedel. Uppgift 1 Vilka av följande påståenden är sanna? Korrigera de som är fel. 1. Potentialen

Läs mer

Laboration - Programmering av LEGO Mindstorm robot

Laboration - Programmering av LEGO Mindstorm robot Laboration - Programmering av LEGO Mindstorm robot Ayumi Sjöbergh Miyake 1 september 2012 miyake@kth.se II1310 Introduktionskurs i datateknik 1 Sammanfattning Laborationen gick ut på att hitta och rätta

Läs mer

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

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

TDIU01 (725G67) - Programmering i C++, grundkurs TDIU01 (725G67) - Programmering i C++, grundkurs Introduktion till kursen och programmering Eric Elfving Institutionen för datavetenskap 2 september 2014 Översikt Kursinformation Personal Kursmål Upplägg

Läs mer

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp, Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap I/KF, 5. hp, 215-3-17 Skrivtid: 14 17 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat

Läs mer

ARTIFICIELL INTELLIGENS

ARTIFICIELL INTELLIGENS ARTIFICIELL INTELLIGENS www..se Så fungerar det Artificiell Intelligens (AI) är intelligens som uppvisas av maskiner. Uttrycket användes för första gången 1955 i ett forskningsförslag med syftet att hitta

Läs mer

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering!

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering! Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering! Samlingar Vi kommer att behöva hantera samlingar av objekt - Har oftast använd Array (fält) - Bra om

Läs mer

International Olympiad in Informatics 2011 22 29 July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

International Olympiad in Informatics 2011 22 29 July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor Papegojor Yanee är fågelentusiast. Sedan hon läst om IP over Avian Carriers (IPoAC), har hon spenderat mycket tid med att träna en flock papegojor att leverera meddelanden över långa avstånd. Yanees dröm

Läs mer

Kognitionsvetenskap C, HT-04 Mental Rotation

Kognitionsvetenskap C, HT-04 Mental Rotation Umeå Universitet 041025 Kognitionsvetenskap C, HT-04 Mental Rotation Grupp 3: Christina Grahn, dit01cgn@cs.umu.se Dan Kindeborg, di01dkg@cs.umu.se David Linder, c01dlr@cs.umu.se Frida Bergman, dit01fbn@cs.umu.se

Läs mer

Programmering är för alla en värderingsövning

Programmering är för alla en värderingsövning Programmering är för alla - en värderingsövning Lektionen är en introduktion för att inleda ett arbete med programmering. Genom en värderingsövning får eleverna en möjlighet att synliggöra sina föreställningar

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5 Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor 1 Laboration 4 - Introduktion Syfte: Öva på självständig problemlösning

Läs mer

Hierarchical Temporal Memory Maskininlärning

Hierarchical Temporal Memory Maskininlärning Hierarchical Temporal Memory Maskininlärning Innehåll Sammanfattning... 3 Inledning... 4 Vad är HTM?... 4 Hur fungerar HTM?... 4 Hierarchical... 4 Temporal... 5 Memory... 5 Hitta orsaker i världen... 5

Läs mer

Föreläsning 11. Giriga algoritmer

Föreläsning 11. Giriga algoritmer Föreläsning 11 Giriga algoritmer Föreläsning 11 Giriga algoritmer Användning Växelproblemet Kappsäcksproblemet Schemaläggning Färgläggning Handelsresandeproblemet Uppgifter Giriga algoritmer (Greedy algorithms)

Läs mer

Hösten 2002 Kogvet 2. Berry III. En Applikation av Artificiellt Liv

Hösten 2002 Kogvet 2. Berry III. En Applikation av Artificiellt Liv Berry III En Applikation av Artificiellt Liv Berry III En Applikation av Artificiellt Liv 1. Vad är Artificiellt Liv När jag först bestämde mig för att skriva om artificiellt liv, var jag mest intresserad

Läs mer

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4 Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa

Läs mer

Artificiell Intelligens Lektion 7

Artificiell Intelligens Lektion 7 Laboration 6 Artificiell Intelligens Lektion 7 Neurala nätverk (Lab 6) Probabilistiska resonemang Vad? Mönsterigenkänning Lära ett neuralt nätverk att känna igen siffror Varför? Få ökad förståelse för

Läs mer

Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline

Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline Linda Wapner HT2018 EITF60 Sammanfattning Effektutvecklingen i en processor har länge ökat genom att klockfrekvensen för

Läs mer

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 19 oktober 2016, kl 14 18

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 19 oktober 2016, kl 14 18 TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 19 oktober 2016, kl 14 18 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.

Läs mer

Det musikaliska hantverket

Det musikaliska hantverket Det musikaliska hantverket Kan jag bli för duktig på mitt instrument för att lovsjunga? Behöver jag öva med bandet innan ett lovsångspass? Lars Ekberg, frilansmusiker och pastor i Göteborg Vineyard, undervisar

Läs mer

Programmeringsappar. Av Alex

Programmeringsappar. Av Alex Programmeringsappar Av Alex Omdöme 4/5 40 Kr 10+ År Robot School Robot School kommer från företaget Next is Great I appen Robot School hjälper man roboten R-obbie att nå sitt batteri genom att placera

Läs mer

Problem: FIL File Paths

Problem: FIL File Paths Problem: FIL File Paths swedish BOI 2015, dag 2. Tillgängligt minne: 256 MB. 1.05.2015 Byteasar tycker om att leva farligt. Han springer med saxar, skickar in lösningar på tävlingsproblem utan att testa

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

Läs mer

Programmering, dans och loopar

Programmering, dans och loopar Lektionen är en introduktion till programmering; träna loopar med analog dansprogrammering. Lektionsförfattare: Karin Nygårds Till läraren 1. En loop 2. Varför behövs loopar? En digital lektion från https://digitalalektioner.iis.se

Läs mer

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Designmönster Adapter, Factory, Iterator,

Läs mer

Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor

Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor Sammanfattning: Utvecklingen från processor till processor är inte lätt. Det finns många beslut som måste tas när det gäller kompatibilitet,

Läs mer

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Syntaktisk parsning (Jurafsky & Martin kapitel 13) Syntaktisk parsning (Jurafsky & Martin kapitel 13) Mats Wirén Institutionen för lingvistik Stockholms universitet mats.wiren@ling.su.se DH2418 Språkteknologi DA3010 Språkteknologi för datorlingvister Föreläsning

Läs mer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis

Läs mer

Fonologi. Kommutationstest. Minimala par. Hur bestämmer man vilka fonem ett språk har?

Fonologi. Kommutationstest. Minimala par. Hur bestämmer man vilka fonem ett språk har? Hur bestämmer man vilka fonem ett språk har? Fonologi Mattias Heldner KTH Tal, musik och hörsel heldner@kth.se (Morfem = minsta betydelsebärande enhet i ett språk) Fonem = minsta betydelseskiljande ljudenhet

Läs mer

FUZZY LOGIC. - Var går gränsen? Lovisa Rönmark lovro

FUZZY LOGIC. - Var går gränsen? Lovisa Rönmark lovro FUZZY LOGIC - Var går gränsen? Sammanfattning Det här fördjupningsarbetet är gjort I kursen Artificiell Intelligens 2 på Linköpings Universitet. Syftet med arbetet är att ta upp och förklara ämnet Fuzzy

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2009-12-16.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Skriv funktionen create_diagonal som tar emot de två parametrarna R och N. R markerar hur många rader den resulterande matrisen skall få och N markerar

Läs mer

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk RemoteBud Inlämnas: 2005-02-01 Patrik Johnsson, e01pjo Viktor Karlsson, e01vk Abstract Skulle du också vilja styra dina lampor och rulla ner dina persienner med hjälp av din TV-fjärrkontroll? Remotebud

Läs mer

Vid Göteborgs universitet pågår sedan hösten 2013 ett projekt under

Vid Göteborgs universitet pågår sedan hösten 2013 ett projekt under Christina Skodras Muffles truffles Undervisning i multiplikation med systematiskt varierade exempel I Nämnaren 2015:4 beskrivs ROMB-projektet övergripande i Unga matematiker i arbete. Här redovisas och

Läs mer

Slutrapport för Pacman

Slutrapport för Pacman Slutrapport för Pacman Datum: 2011-05-30 Författare: cb222bj Christoffer Bengtsson 1 Abstrakt Jag har under våren arbetat med ett projekt i kursen Individuellt Mjukvaruutvecklingsprojekt. Målet med mitt

Läs mer

Pipelining i Intel Pentium II

Pipelining i Intel Pentium II Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.

Läs mer

Shakey s värld med HTNplanering

Shakey s värld med HTNplanering Shakey s värld med HTNplanering 2010-10-03 Artificiell Intelligens 2, 729G11 Maria Lindqvist Fördjupningsarbete, HT 2010 880913-0506 Linköpings Universitet marli314 2 Innehållsförteckning Inledning...

Läs mer

UPPGIFT 1 WILL ROGERS FENOMEN

UPPGIFT 1 WILL ROGERS FENOMEN UPPGIFT 1 WILL ROGERS FENOMEN Will Rogers (1879-1935) var en amerikansk komiker känd för bland annat följande citat: When the Okies left Oklahoma and moved to California, they raised the average intelligence

Läs mer

Artificiella Neuronnät

Artificiella Neuronnät Artificiella Neuronnät 2 3 4 2 (ANN) Inspirerade av hur nervsystemet fungerar Parallell bearbetning Vi begränsar oss här till en typ av ANN: Framåtkopplade nät med lagerstruktur 3 4 Fungerar i princip

Läs mer

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

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

Algoritmer och problemlösning

Algoritmer och problemlösning Algoritmer och problemlösning Perspektiv på datateknik/datavetenskap - Breddföreläsning 4 Peter Dalenius petda@idaliuse Institutionen för datavetenskap - Linköpings universitet 2005-11-04 Översikt Introduktion:

Läs mer

Ventilen. Nytt på IT- fronten. System som kan göra intelligenta saker, såsom att efterlikna mänskligt beteende och tänkande

Ventilen. Nytt på IT- fronten. System som kan göra intelligenta saker, såsom att efterlikna mänskligt beteende och tänkande Ventilen Nytt på IT- fronten System som kan göra intelligenta saker, såsom att efterlikna mänskligt beteende och tänkande https://www.youtube.com/watch?v=nfneoooeqx4 https://www.youtube.com/watch?v=nfneoooeqx4

Läs mer

AI utmaningar inom kvalitetssäkring. Henrik Emilsson Teststrateg, Nordic Medtest AB

AI utmaningar inom kvalitetssäkring. Henrik Emilsson Teststrateg, Nordic Medtest AB AI utmaningar inom kvalitetssäkring Henrik Emilsson Teststrateg, Nordic Medtest AB Först lite om Artificiell intelligens General AI vs. Narrow AI Maskininlärning Supervised Learning Unsupervised Learning

Läs mer

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

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1. Föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

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

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten. 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

Word2Vec. Högkvalitativa vektorrepresentationer av ord tränat på stora mängder data. Innehåll LINKÖPINGS UNIVERSITET. 1. Inledning...

Word2Vec. Högkvalitativa vektorrepresentationer av ord tränat på stora mängder data. Innehåll LINKÖPINGS UNIVERSITET. 1. Inledning... LINKÖPINGS UNIVERSITET Innehåll 1. Inledning... 2 2. Terminologi... 3 3. Allmänt om Word2Vec... 3 4. Continous Skip-gram model... 4 Word2Vec Högkvalitativa vektorrepresentationer av ord tränat på stora

Läs mer

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

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten. OS! 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