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

Storlek: px
Starta visningen från sidan:

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

Transkript

1 MikaelSkagenholtLinköpingsUniversitet 729G11 Genetikimusik Enanalysavgenetisktinspireradprogrammeringochdesskapacitet tillmusikskapande MikaelSkagenholt I1091 ArtificiellIntelligensII 729G11 ProjektarbeteHT2012 LinköpingsUniversitet 1

2 MikaelSkagenholtLinköpingsUniversitet 729G11 Abstract I rapporten beskrivs metoden genetisk programmering, som genom evolutionsliknande operationer utvecklar syntaktiskt korrekta och körbara program baserat på de krav och syften som ställs av användaren. Denna metod jämförs med genetiska algoritmer, en närbesläktad metod, och båda utvärderas sedan i sin förmåga att skapa musik. Genetisk programmering förklaras därefter djupgående i relation till musikskapande och praktiska exempel visas med hjälp av systemet GP-music av Brad Johanson och Riccardo Poli (1998). Vidare analyseras Johanson och Polis utvärderingssystem, i form av ett artificiellt neuralt nät, och dess bakomliggande träningsprocess som låter datorn avgöra musikstyckets kvalitet utan mänsklig inblandning. 2

3 MikaelSkagenholtLinköpingsUniversitet 729G11 Innehållsförteckning 1.#Introduktion#...#4 # 1.1Evolutionsteoretiska#uttryck#...#5 # 1.2Musikteoretiska#uttryck#...#5 # 1.3Föregående#forskning#...#6 # 1.4Evolutionsbaserad#mjukvara#...#6 2.#Genetisk#programmering#...#10 ###########2.1#Terminal#och#functional#sets#...#10 ###########2.2#GPImusic#...#13 ########################2.2.1#Genetiska#operatorer#...#14 ########################2.2.2#Fitness#...#16 3.#Diskussion#...#20 4.#Källförteckning#...#22 3

4 MikaelSkagenholtLinköpingsUniversitet 729G11 1.Introduktion Musikskapande och andra kreativa uttrycksformer har länge ansetts vara unikt mänskliga aktiviteter. Man skulle kunna hävda att kreativitet är en av de högsta formerna av intelligens och att det är en så avancerad, ogripbar process att den aldrig kan simuleras av maskiner som enbart följer instruktioner. Allteftersom fältet för artificiell intelligens har vuxit fram under det senaste dryga halvseklet har man dock börjat inse hur kraftfull och omfattande datorns kapacitet är, förutsatt att vi angriper problemen på rätt sätt. Datorn har med AI-forskningens hjälp gått från en förhärligad miniräknare till konstnärens värsta fiende- en maskin som aldrig upplever skrivkramp och i all oändlighet kan producera kreativt material. Evolutionskonceptet, som presenterades för allmänheten i Charles Darwins bok Om arternas uppkomst år 1859, är en av de starkaste grunderna till människans avtagande tro på Gud. Genom detta verk avmystifierades vårt ursprung och man fann den process som låg bakom livet på Jorden. På samma sätt rör vi oss inom datavetenskapen mot en punkt där vi kan simulera, och avmystifiera, den mänskliga kreativa processen. Kan den egenskap många anser vara så unikt mänsklig faktiskt vara en produkt av idéer som likt evolutionsprocessen kombineras, muteras och slumpas i långa händelsekedjor? Jag har i detta projektarbete valt att kombinera evolutionskonceptet och musik för att se om något kreativt faktiskt kan uppstå ur ren utveckling och anpassning till de krav som ställs. Anledningen till att jag har valt att fokusera på musik är att det har varit en stor del av mitt liv under de senaste sju åren, i form av gitarr-, trum- och pianospelande. Det är därför den kreativa uttrycksform som jag känner mig mest bekant med. Hur kombinerar vi då dessa koncept så att de är relevanta för AI? Svaret finns i genetisk programmering. I det här projektarbetet kommer jag att fördjupa mig i denna metod och tillämpningen GP-music av Brad Johanson och Riccardo Poli (1998), för att se hur det faktiskt går till när musiken skapas genetiskt. 4

5 MikaelSkagenholtLinköpingsUniversitet 729G Evolutionsteoretiskauttryck Genetisk programmering har i sin utformning inspirerats mycket av evolutionen. Man har därför döpt många operationer efter den faktiska evolutionära processen de efterliknar. Vilka operationer som används i GP-music presenteras mer ingående i ett senare skede av rapporten; nedan följer dock en kort, generell beskrivning av de för rapporten relevanta evolutionsteoretiska uttrycken: Gen (Collins, 2012): en ärftlig enhet som finns i kromosomen och påverkar hur genotypen är uppbyggd Genotyp (Collins, 2012): en organisms genetiska struktur Fitness (Woodward, 1997): en organisms möjlighet för överlevnad i den givna miljön Generation (Heitkötter och Beasley, 2000): en population av organismer som har uppstått (genom reproduktion) till följd av en hög fitness i föräldragenerationen Population (Heitkötter och Beasley, 2000): en grupp individer som för någon form av interaktion med varandra Förökning (Heitkötter och Beasley, 2000): skapandet av en ny individ från två föräldraindivider genom någon form av reproduktion 1.2 Musikteoretiskauttryck I denna rapport förekommer några musikteoretiska uttryck med avsikt att förklara hur musikskapandet faktiskt går till. Av denna anledning är det viktigt att introducera och skapa en enkel förståelse för följande uttryck som har hämtats från Virginia Tech Multimedia Music Dictionary (Cole och Schwartz, 1996): Ton: ett musikaliskt ljud som går att beskriva i längd och tonhöjd 5

6 MikaelSkagenholtLinköpingsUniversitet 729G11 Skala: en samling toner i en bestämd ordning, som antingen kan vara stigande eller fallande och börjar samt slutar på samma ton Ackord: två eller fler toner som spelas samtidigt Intervall: avståndet i tonhöjd mellan två toner Takt: en enhet som bygger på att ha enhetligt många toner i varje sektion av ett musikstycke. För exempelvis en 4/4-takt består varje takt av fyra taktslag på formen En fjärdedelsnot (en ton som spelas under en fjärdedel av hela takten) ryms på ett taktslag, vilket innebär att fyra fjärdedelsnoter ryms i en takt. Oktav: en ton som ligger åtta steg över ursprungstonen och har en dubbelt så hög frekvens 1.3 Föregåendeforskning Det har framförallt sedan nittiotalet utförts mycket forskning inom genetiska algoritmer och genetisk programmering i olika kreativa ämnen. Mest relevant för denna rapport är ansatsen som kommer att analyseras och beskrivas som exempel på evolutionsbaserad mjukvara (genetiska algoritmer och genetisk programmering): GP-music (Johanson och Poli, 1998). Som jämförelse och informationskälla har även den genetisk algoritm-baserade GenJam (Biles, 1994) använts. Ytterligare inspiration har hämtats från Alfonseca et al. (2007) samt Burton och Vladimirova (1997) och deras forskning på utvärderingsmetoder (fitness raters) som hjälper datorn att på egen hand utvärdera kvaliteten i musiken som skapas. 1.4 Evolutionsbaseradmjukvara I samlingsordet evolutionsbaserad mjukvara väljer jag att sätta begreppen genetiska algoritmer och genetisk programmering för att undvika missförstånd med liknande ansatser såsom evolutionär programmering eller evolutionära 6

7 MikaelSkagenholtLinköpingsUniversitet 729G11 algoritmer. Metoden som används av båda ansatserna till evolutionsbaserad mjukvara är snarlik i teorin, men genererar sina lösningar på olika sätt. För att genomföra en evolution med hjälp av genetiska algoritmer måste man först förse datorn med information att utgå från. Inom räckvidden för denna rapport kommer jag endast att förklara hur detta går till vid skapandet av musikstycken. Informationen som används representeras med hjälp av bitsträngar. En bitsträng är en samling bit, eller binary digit, som är den grundläggande enheten för datarepresentation inom informationsteknologi (Daintith, 2004). Flera enkla bitar kan kombineras till mer avancerade datamängder och därmed representera ett musikstycke. Representationen av ett musikstycke i GP-music sker genom XM, extended module format (Johanson och Poli, 1998). Det är ett filformat för musik som använder 255 olika värden, där toner, tonhöjd och pauser beskrivs och representeras som bitsträngar (Huss, 1994). När man väl har representerat sin initialpopulation av musikstycken i bitsträngar körs den genetiska algoritmen och genomför olika genetiska operationer, där bitsträngarna delas, sammanfogas och muteras. Det resulterar så småningom i en generation där användaren är nöjd med resultatet och väljer att stoppa förökningen. Resultatet blir en mer eller mindre slumpartad kombination av ursprungsmaterialet. Vid implementationen av andra problem är det möjligt att skapa helt slumpartade initialpopulationer, men eftersom man här strävar efter att skapa så bra musikstycken som möjligt så bör man ange något för datorn att sträva efter. Datorn vet trots allt inte vad som låter bra eller dåligt och sannolikheten för att den i de första hundra generationerna skulle skapa något som ens låter musikaliskt är nästan obefintlig. Vid skapandet av ett musikstycke utgår man därför gärna från ett eller flera referensverk. Genetisk programmering är i själva verket baserad på genetiska algoritmer, men skapar istället trädlika representationer av musikstycken som sedan modifieras av den evolutionära processen. För att kunna skapa en initialpopulation av musikstycken 7

8 MikaelSkagenholtLinköpingsUniversitet 729G11 måste man ange syntaktiska regler som sedan används för att skapa slumpmässiga (men regelbundna) organismer (Koza, 2003). Den stora skillnaden mellan genetiska algoritmer och genetisk programmering är därför att man i den genetiska programmeringen inte behöver implementera någon initialpopulation, eftersom den skapas slumpmässigt med hjälp av det syntaktiska regelverk som har implementerats. Varför kan man här låta bli att använda sig av ett referensverk? Vi finner svaret i skillnaden mellan metodernas representation av individer. För en genetisk algoritm har varje individs bitsträng en bestämd längd. Individer som skapats genom genetisk programmering har inte denna begränsning och kan därför innehålla mycket mer information. Efter ett fåtal generationer kan till exempel pauser och repetition naturligt uppstå hos en individ och överföras till nästkommande generationer (Johanson och Poli, 1998). Slutresultatet blir att man fortare kan skapa individer som låter som musik med hjälp av genetisk programmering, men å andra sidan enklare skapar musik i en viss stil eller generellt mer korrekta stycken med genetiska algoritmer (som följer ett referensverk). Figur 1: En möjlig skillnad i bitlängd för de olika metoderna Figur 1 visar hur individer (kvadrater) i genetisk programmering kan kombineras till nya individer av varierande längd. För genetiska algoritmer kombineras de olika individerna endast till en blandning mellan dessa, det vill säga att två stycken individer med längden åtta bitar skapar en tredje, åtta bitar lång individ. När det väl är dags att kombinera dessa individer för att skapa ett helt musikstycke kan individerna i genetisk programmering ha en helt slumpmässig storleksfördelning, medan individerna i genetiska algoritmer alltid kommer att vara lika stora (se figur 2). 8

9 MikaelSkagenholtLinköpingsUniversitet 729G11 Figur 2: En möjlig skillnad i storlek för varje individ (olikfärgade kvadrater är olika individer) i de olika metoderna Av detta exempel kan vi dra slutsatsen att genetiska algoritmer fungerar väl på rent matematiska problem, där man snabbt kan optimera en sträng till en önskad lösning. Problemet med musik är dock att det är en högst subjektiv konstform och inte kan angripas på samma sätt som ett matematiskt problem. Här blir därför den genetiska programmeringens utforskande tillvägagångssätt, med färre restriktioner och möjligheten att redan efter några få generationer skapa avancerade kombinationer av individer, en bättre lämpad metod. Självklart beror valet av metod på problemet man står inför; att skapa ett nytt musikstycke i Mozart-stil kan ses som att optimera flera av hans gamla verk till en ny lösning, och då låter genast genetiska algoritmer som den perfekta metoden. 9

10 MikaelSkagenholtLinköpingsUniversitet 729G11 2.Genetiskprogrammering Den genetiska programmeringen bygger på att skapa populationer av syntaktiskt korrekta datorprogram (Koza, 2003). Genom att ställa upp en grundläggande samling regler som specificerar hur den slutgiltiga lösningen ska se ut kan man forma programmets evolutionära utveckling. I GP-music, som jag kommer att fördjupa mig senare i denna rapport, hanteras musikstycket som ett program med en samling funktioner som definierar tillgängliga operationer för tonhjöd och rytm. För att kunna skapa syntaktiskt korrekta program behövs ett programspråk som har en så pass enkel syntax att man utan svårigheter kan sammanfoga bitar av kod, utan att stöta på stora problem. Man kan med fördel använda språket LISP tack vare dess prefixnotation (Koza och Poli, 2005) eftersom det liknar strukturen hos ett programträd (figur 3). För musikskapande är det relevant att definiera syntaktiska regler som på olika sätt kombinerar olika toner. Figur 3: En jämförelse av representation i träd och representation i LISP-aktig pseudokod. Här spelas två toner samtidigt och bildar ett C5-ackord. Programmet arbetar sig uppåt från barnnoderna till föräldranoden. 2.1Terminalochfunctionalsets Terminal och functional sets utgör det syntaktiska regelverk som hittills har diskuterats. De används i genetisk programmering för att definiera tillgängliga operationer (för matematiska problem till exempel addition och subtraktion) och vilka variabler och konstanter som får användas (Koza, 2003). Ett kort exempel presenteras för att visa hur detta fungerar i praktiken (figur 4). 10

11 MikaelSkagenholtLinköpingsUniversitet 729G11 Figur 4: En grafisk, mycket förenklad representation av innebörden hos terminal och functional sets Låt oss anta att vi ställs inför problemet att lösa en matematisk uppgift som lyder: vad är hälften av tre? Vi definierar då våra (mycket triviala) functional och terminal sets till att innehålla några relevanta operatorer och konstanter. Vårt terminal set innehåller i det här fallet siffrorna 0,5, 2 och 3 och vårt functional set innehåller de matematiska operatorerna multiplikation, division och subtraktion. Figur 4 visar hur man analogt sett kan likna evolutionsprocessen vid en gripklo, som tar upp lämpliga element (cirklar) från behållarna och släpper dem i en tredje behållare. Det utvecklade programmet kan jämföras mot vår frågeställning och vi ser att en korrekt lösning har genererats. Poängen med denna analogi är att visa hur evolutionen begränsas av den ram för möjliga operationer som skapas av terminal och functional sets- alltså skapas ett program som ger en relevant lösning tack vare dessa två värdemängder. När man kör en evolutionsprocess med hjälp av genetiska algoritmer i verkligheten förekommer även korsning och mutation, vilket genererar avsevärt många fler program. I detta exempel kan vi för enkelhetens skull anta att två möjliga lösningar genereras efter ett att ha bearbetats i ett antal generationer (figur 5). 11

12 MikaelSkagenholtLinköpingsUniversitet 729G11 Figur 5: Två möjliga lösningar på exempelproblemet De två givna lösningarna är inte på något sätt avancerade program. Dock illustrerar de hur två helt olika ansatser till en lösning kan skapas och vara lika syntaktiskt korrekta, genom att använda den prefixnotation som används i LISP och genom att begränsa evolutionens möjligheter till rimliga operatorer och konstanter. Vad är det då som bestämmer att en individ är lämplig och får föröka sig? Här spelar konceptet fitness från evolutionsteorin en stor roll. Precis som att organismer i naturen endast kan överleva om de utvecklas lämpligt i förhållande till sin miljö, måste individerna i genetisk programmering utvecklas efter de krav som har ställts av användaren. Figur 6: Functional och terminal sets för GP-music. Bild tagen från Johanson och Poli (1998) Figur 6 illustrerar de olika functional och terminal sets som används i GP-music. Vi kan här se att Johanson och Poli har valt att begränsa sitt spann av toner från C-4 till B-5. Som tillgängliga handlingar finns möjligheten att spela två toner, lägga till pauser, spela samma sak två gånger, gå upp i tonhöjd, gå ner i tonhöjd, spegelvända en sekvens och att först spela en sekvens för att sedan spela upp den spegelvänt. 12

13 MikaelSkagenholtLinköpingsUniversitet 729G11 2.2GPGmusic GP-music presenterades år 1998 av Brad Johanson och Riccardo Poli i rapporten GP-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness Raters. Fram till dess hade musikrelaterade experiment konventionellt sett utförts med genetiska algoritmer eller andra metoder, men här presenterades en ansats för musikskapande som baserades på genetisk programmering. Enligt författarna själva var föredelen med genetisk programmering att man bland annat kunde integrera musikaliska strukturer direkt i individen, då individerna inte var begränsade i längd som motsvarigheterna i genetiska algoritmer (Johanson och Poli, 1998). Det innebär att man snabbt kan börja generera melodier med väldigt lite förkunskap om musikteori (Johanson och Poli, 1998). Figur 7 illustrerar detta på ett enkelt sätt. Figur 7: En överblick över hur individerna kombineras över tre generationer. Individen MUSIK i den tredje generationen innehåller individerna TON och PAUS + TON Skillnaden jämtemot genetiska algoritmer i figuren ovan är att individen i generation 3 är tre gånger så lång som individerna i generation 1, men fortfarande bara en enstaka individ. Detta är inte möjligt med genetiska algoritmer tack vare dess begränsade genotyplängd. Praktiskt sett innebär det att individen MUSIK, som jag har valt att låta bestå av ton-paus-ton, kan kombineras i sin fullständiga form med andra individer och snabbt skapa väldigt avancerade strukturer. Låt oss anta att 13

14 MikaelSkagenholtLinköpingsUniversitet 729G11 individen MUSIK hamnar i samma generation som en individ bestående av delarna paus-ton-paus. Vi kan kalla denna individ MUSIK_2. Båda individerna genomgår då mutation och kombination för att skapa individen MUSIK_3, som består av byggstenarna ton-ton-paus-ton. Vi har därmed i en enda individ lyckats representera fyra diskreta, musikaliska händelser som för en genetisk algoritm skulle kräva fyra separata individer. Den slutsatsen ger en indikation på hur fort man kan skapa något som faktiskt låter musikaliskt godtagbart med hjälp av genetisk programmering Genetiskaoperatorer De genetiskt inspirerade operatorerna ligger till grunden för hela det evolutionära konceptet inom såväl genetiska algoritmer som genetisk programmering. I följande del kommer jag att avgränsa mig till att beskriva operatorerna som förekommer i GPmusic. GP-music använder, i Johanson och Polis genomförande, operatorerna reproduction, crossover och mutation. Reproduction I vanlig reproduktion definieras ett probabilistiskt värde som avgör hur stor del av den nuvarande generationen som kan gå vidare till nästa generation (Koza, 1992). I GPmusic användes värdet 0,15 (Johanson och Poli, 1998). Det innebär att 15 % av individerna sannolikt (men inte nödvändigtvis) har en chans att gå vidare till nästa generation. Reproduktionsoperatorn kan alltså ses som en direkt kopiering av individer från en generation till nästa. Figur 8: Reproduktion från en generation till nästa 14

15 MikaelSkagenholtLinköpingsUniversitet 729G11 Crossover Den genetiska operation som ska likna sexuell förökning. Här skapas två nya individer från två föräldraindivider, och består av delar från de båda föräldrarna (Koza, 1992). Se figur 9. Figur 9: Ett exempel på crossover. Två föräldraindivider ger upphov till två avkommor. En crossover sker inte helt slumpmässigt. Ofta tilldelas individerna ett probabilistiskt värde (i GP-music-exemplet används värdet 0,7) som kan avgöra hur individerna kombineras. Visar sig kombinationen uppnå kraven som användaren har fastslagit, går den vidare till nästa generation där den kan fortsätta att förökas. Värdet 0,7 innebär att 70 % av individerna har chansen att gå vidare till nästa generation. Det innebär dock inte att 7/10 individer automatiskt går vidare till nästa generation- likväl kan 9/10 eller 2/10 gå vidare, även om sannolikheten för att det skulle inträffa är relativt liten (Koza, 1992). När en crossover genomförs så väljs först och främst en punkt på föräldraindividerna ut. Denna punkt representerar det kvarvarande arvet, det vill säga den data som blir kvar från föräldern i avkomman (Koza, 1992). I figur 8 har det första värdet i individernas strängar, alltså röd och blå, valts som arv till nästa generation. När crossover-operatorn utför sitt arbete resulterar det därför i att det första värdet är kvar i vardera avkomma, och att position 2 och 3 är de som förändras. Mutation Muteringsoperatorn finns i första hand till för att undvika likformighet bland individerna i en generation. När användaren utvärderar musikstyckena som genereras, är det inte helt orimligt att anta att snarlika exempel kommer att värderas lika högt. Det innebär att evolutionen kommer att gå mot att skapa väldigt lika stycken med lite 15

16 MikaelSkagenholtLinköpingsUniversitet 729G11 utrymme för förändring. Mutationen används därmed främst för att återställa förlorad mångfald i en population (Koza, 1992). Precis som i crossover så blir en slumpmässig punkt på en individ vald (men endast en enstaka individ i taget) för mutation och ersätts slumpartat med annan data. I GP-music är sannolikheten för mutation 0,15, alltså att 15% av individerna sannolikt sett kan muteras. Se figur 10. Figur 10: Mutation från en generation till nästa 2.2.2Fitness För att kunna göra ett urval av lämpliga individer måste man ha någon form av standard som avgör huruvida en individ är lämplig för att överleva eller inte. I GPmusic sköts detta manuellt av en människa, som genom ett grafiskt gränssnitt värderar kvaliteten i de genererade styckena (se figur 11). Johanson och Poli utförde därtill experiment med en så kallad auto rater, eller ett tränat artificiellt nät som på egen hand skulle bedöma musiken på ungefär samma grunder som den mänskliga användaren. 16

17 MikaelSkagenholtLinköpingsUniversitet 729G11 Figur 11: Det grafiska utvärderingsgränssnittet i GP-music. Bild tagen från Johanson och Poli (1998) Efter att en initialpopulation slumpmässigt har skapats är det upp till användaren att betygsätta resultaten. Det ger i sin tur upphov till the fitness bottleneck, det vill säga att människan som utvärderar musiken blir en flaskhals i systemet till följd av att denne måste avsätta mycket tid till att överväga varje individ i varje generation. När användaren har sorterat ut olämpliga individer från en generation genomgår resterande individer någon av de tillgängliga genetiska operationerna. Sannolikt sett innebär detta att 70 % av de resterande individerna genomgår en crossover, att 15 % av individerna muteras samt att 15 % av individerna reproduceras. Artificiella neurala nät Johanson och Poli menade att det subjektiva värdet hos musiken inte gick att beräkna med hjälp av en matematisk funktion och valde därför att inte implementera någon sådan (Johanson och Poli, 1998). Istället ville de se om man kunde träna datorn till att se och följa mönster och riktlinjer i människans bedömning av musiken som genereras. Därför implementerade man ett artificiellt neuralt nät. I praktiken är ett artificiellt neuralt nät inspirerat av mänskliga nervsystem (Bermúdez, 2010). Det innebär att information skickas mellan olika noder; från ett perceptuellt stadie där det först uppfattas, till ett slutstadie där informationen omvandlas till någon form av handling. I GP-music använder man ett nät med så kallade delade vikter och en algoritm som kallas back propagation. Därför kommer jag att avgränsa beskrivningen av artificiella neurala nät till dessa relevanta koncept. 17

18 MikaelSkagenholtLinköpingsUniversitet 729G11 Den absolut enklaste modellen av ett artificiellt neuralt nät tar emot indata och skickar det vidare längs en kedja av artificiella neuroner. Man kan med enkelhet inse att det i fallet GP-music inte skulle generera någon form av inlärning och därmed tillåta all genererad musik att obehindrat passera. För att komma runt problemet implementerar man vikter, eller tröskelvärden som begränsar information från att gå vidare. Se figur 12. Att vikterna är delade innebär i sin tur att flera noder delar vikter med varandra, vilket är ett rationellt beslut att ta i och med att varje indata-nod representerar en ton eller paus (Johanson och Poli, 1998). Skulle man därför sätta ett tröskelvärde för varje enskild ton eller paus så skulle man snabbt göra nätverket extremt specifikt och oförmöget att generalisera. Om exempelvis tröskelvärdet för en paus skulle definieras till att vara oönskat i nätverket, skulle pauserna i princip helt och hållet försvinna från de genererade musikstyckena. Genom att ha delade vikter kan man därför värdera hela individer och kombinationer på en gång och därför göra nätverket generellt anpassat till att utvärdera resultatet av den genetiska processen. Figur 12: En del av ett artificiellt neuralt nätverk. Indatan med värde 1 kan inte gå vidare i nätverket eftersom vikten (tröskelvärdet) hos neuronen är >1 Vikterna definierar vad som får och inte får passera vidare i nätverket, men vad definierar vilka vikter som är lämpliga? Johanson och Poli valde att använda sig av algoritmen back propagation, som innebär att all data till en början släpps igenom, men att informationsflödet så småningom stryps beroende på hur användaren värderar musiken. Det innebär att dåliga fitnesspoäng propageras, eller skickas, bakåt i det neurala nätverket; från noderna som hanterar utdatan till noderna som hanterar indatan (Bermúdez, 2010). Tack vare att att användaren värderar utdatan kan back propagation-algoritmen träna nätverket, det vill säga att den definierar korrekta vikter i det neurala nätverket. Se figur

19 MikaelSkagenholtLinköpingsUniversitet 729G11 Figur 13: Efter att musiken har värderats av användaren, skickas information om vikternas värde tillbaka till början av nätverket För att träna auto rater-nätverket genomförde först en människa utvärdering på totalt 200 individer, som sedan delades in i två kategorier: ett träningsset och ett kontrollset (Johanson och Poli, 1998). Träningssetet användes sen för ytterligare träning av nätverket. När nätverket testades med kontrollsetet, som det inte hade tränats på tidigare, blev inte felmarginalen speciellt mycket större än för träningssetet (Johanson och Poli, 1998). Slutligen konstaterade Johanson och Poli att genetisk programmering var en lämplig metod för korta melodislingor och att resultatet från datorns utvärdering av musikstyckena visade stor potential. Trots detta är kvaliteten på musikstyckena generellt lägre än när de utvärderas av en människa, och frågan är om datorn någonsin kommer att kunna utveckla ett subjektivt sinne för smak och komposition snarare än att kopiera en människas beslutsprocess. 19

20 MikaelSkagenholtLinköpingsUniversitet 729G11 3.Diskussion Som musiker ställer jag mig, som så många andra, tveksam till att den kreativa process som krävs för att skriva bra musik kan uttryckas algoritmiskt. Genetisk programmering är dock en i allra högsta grad värdig metod för att försöka genomföra detta. Att hitta kreativitetens källa och beskriva hur hela processen går till har gäckat folk sedan urminnes tider. Vad säger att vi inte har hittat en passande analogi i genetiken? Vi vet trots allt inte med säkerhet hur man steg för steg går från ett tomt notblad till en hyllad symfoni- och kanske är det därför tanken på att automatisera stegen däremellan skrämmer oss? Räds vi tanken att vi som lägger tid och energi för att skapa något unikt och uppskattat blir överflödiga? Det känns inte helt orimligt att efter en analys som denna börja försöka se kreativt tänkande som en produkt av flera lämpliga frön, som kombinerats och rekombinerats, påverkats av omvärlden och muterats när ramarna för världsuppfattningen stegvis har brutits ned, för att slutligen bilda en produkt av kreativa idéer. Huruvida ett sådant synsätt på saken är korrekt eller inte är inget jag kan säga, men GP-music har visat att det är en möjlig förklaring av den kreativa processen. I sin nuvarande form är GP-music ett fantastiskt verktyg för inspiration till nya kompositioner. Med det sagt, anser jag att det ännu inte kan ses utgöra ett hot mot mänskliga kompositörer. Detta säger jag av en anledning: subjektiv smak. GP-music kan tack vare sina artificiella neurala nätverk tränas till att värdera musiken snarlikt, om än nästan exakt likandant, som människan vars träning ligger till grund för nätverket. Dagen då datorn går från att säga det här skulle människan tycka är bra till det här skulle människan tycka är bra, men jag tycker att är den dag då människan på allvar borde börja överväga om vi är redo för att potentiellt väljas bort ur högen på skivbolagschefens skrivbord, till fördel för en grå, rektangulär låda. Sent omsider kommer frågan om intelligens. Är GP-music, och genetisk programmering överlag, intelligent? Det enda som i själva verket sker i den genetiska processen är att en samling individer, lämpliga för syftet och styrda av ett ramverk, utvecklas till en punkt där de består av en tydlig helhet. Precis på samma sätt tar jazzgitarristen en samling lämpliga toner, testar olika kombinationer tills han når fram 20

21 MikaelSkagenholtLinköpingsUniversitet 729G11 till den mest välljudande och handlar utefter sin kunskap om musikteori och sitt instrument. Kan man då verkligen hävda att datorn inte genomför någon intelligent handling? Den kan trots allt skapa något från grunden som är helt unikt och inte hade kunnat skapas av en människa. Datorn genomgår därmed en kreativ process av något slag, och vad säger egentligen att den inte är precis likadan som vår? [ ]computers themselves can do things internally which even the human beings who designed them do not understand. Humans do not completely understand consciousness, and probably never will; but now who is to say that humans cannot design a self-evolving mesh of silicon which evolves into a self-conscious organism? - Atool Varma och Nathan Erhardt (1997). 21

22 MikaelSkagenholtLinköpingsUniversitet 729G11 4.Källförteckning Tryckta källor Bermúdez, J.L. (2010). Cognitive science: an introduction to the science of the mind. Cambridge: Cambridge University Press. Burke, E. K., & Kendall, G. (2005). Search Methodologies: Introductory Tutorials in Optimization and Decision Support Techniques. Använder utdrag ur kapitel 5 av Riccardo Poli och John R. Koza. (E. Burke & G. Kendall, Eds.)Internis (Vol. 47, p. vi, 620 p.). Springer. Johanson, B., & Poli, R. (1998). GP-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness Raters. (John R Koza, W. Banzhaf, K. Chellapilla, K. Deb, M. Dorigo, D. B. Fogel, M. H. Garzon, et al., Eds.)Genetic Programming 1998 Proceedings of the Third Annual Conference, (CSRP-98-13), Morgan Kaufmann. Koza, J R. (1992). Genetic Programming: On the Programming of Computers by Means of Natural Selection. (M. I. T. Press, Ed.)Springer (Vol. 229, p. 819). MIT Press. doi: /bf Internetkällor Cole, R., & Schwartz, E. (2007). Virginia Tech Multimedia Music Dictionary. Virginia Polytechnic Institute and State University. Hämtad 9/9/2012 från Collins, D. (1996). Genetics Glossary. University of Kansas Medical Center. Hämtad 7/9/2012 från Daintith, J. (2004). Bit. A Dictionary of Computing. Hämtad 9/9/2012 från 22

23 MikaelSkagenholtLinköpingsUniversitet 729G11 Heitkötter, J., & Beasley, D. (2000). Hitch Hiker s Guide to Evolutionary Computation, Issue 8.1. The Hitch-Hiker s Guide to Evolutionary Computation. Hämtad 9/9/2012 från Huss, F. (1994). The Unofficial XM File Format Specification: FastTracker II, ADPCM and Stripped Module Subformats. Hämtad 13/9/2012 från Koza, J.R. (2003). Preparatory Steps of Genetic Programming. Genetic Programming Inc. Hämtad 9/9/2012 från Varma, A., & Erhardt, N. (1997). Genetic Algorithms. Kenyon College. Hämtad 14/9/2012 från den Woodward, S.L. (1997). Glossary for Biogeography. Radford University. Hämtad 9/9/2012 från 23

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

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

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

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

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

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

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

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

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

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

Genetiskt Programmerad Musik

Genetiskt Programmerad Musik 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

Läs mer

Mångfald inom en art. Genotyp. Genpool. Olika populationer. Fig En art definieras som

Mångfald inom en art. Genotyp. Genpool. Olika populationer. Fig En art definieras som Mångfald inom en art Population och art. Vad är skillnaden? Vad är en art? Genetisk variation Genetiskt olika populationer Tillämpningar av genetisk variation Etiska problem En art En art definieras som

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

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

Mångfald inom en art. Genotyp. Genpool. Olika populationer. Fig En art definieras som

Mångfald inom en art. Genotyp. Genpool. Olika populationer. Fig En art definieras som Mångfald inom en art Population och art. Vad är skillnaden? Vad är en art? Genetisk variation Genetiskt olika populationer Tillämpningar av genetisk variation Etiska problem En art En art definieras som

Läs mer

Sammanfattning Arv och Evolution

Sammanfattning Arv och Evolution Sammanfattning Arv och Evolution Genetik Ärftlighetslära Gen Information om ärftliga egenskaper. Från föräldrar till av komma. Tillverkar proteiner. DNA (deoxiribonukleinsyra) - DNA kan liknas ett recept

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

Three Monkeys Trading. Tärningar och risk-reward

Three Monkeys Trading. Tärningar och risk-reward Three Monkeys Trading Tärningar och risk-reward I en bok vid namn A random walk down Wall Street tar Burton Malkiel upp det omtalade exemplet på hur en apa som kastar pil på en tavla genererar lika bra

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

Den evolutionära scenen

Den evolutionära scenen Den evolutionära scenen Det finns en del att förklara Där allt händer Skapande Evolutionsteorin Gibboner Orangutang Gorilla Människa Schimpans Bonobo Naturligt urval Artbildning Livet har en historia Gemensamt

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

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

RÖDA TRÅDEN MUSIK ÅK 1 ÅK

RÖDA TRÅDEN MUSIK ÅK 1 ÅK RÖDA TRÅDEN MUSIK ÅK 1 ÅK 5 ÅK 1 Musicerande och musikskapande ÅK 2 Sång i olika former, unison sång, kanon och växelsång Spel i olika former, ensemblespel Imitation och improvisation med rörelser, rytmer

Läs mer

Föreläsning 13. Träd

Föreläsning 13. Träd Föreläsning 13 Träd Träd Ett träd är en datastruktur som tillåter oss att modellera sådant som vi inte kan modellera med linjära datastrukturer. Ett datavetenskapligt träd består av noder med pilar emellan.

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

TDDI16: Datastrukturer och algoritmer

TDDI16: Datastrukturer och algoritmer TDDI16: Datastrukturer och algoritmer Lab 3: Ordkedjor Höstterminen 2018 2018-05-14 1 Upplägg Första delen av instruktionen, avsnitt 2 till 6, innehåller en fullständig beskrivning av problemet utan några

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

Evolution. Hur arter uppstår, lever och försvinner

Evolution. Hur arter uppstår, lever och försvinner Evolution Hur arter uppstår, lever och försvinner Aristoteles 384-322 f.kr Idéhistoria Carl von Linné 1707-1778 Georges de Buffon 1707-1788 Jean Babtiste Lamarck 1744-1829 Idéhistoria Cuvier Malthus Lyell

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

RÖDA TRÅDEN MUSIK ÅK 1 ÅK

RÖDA TRÅDEN MUSIK ÅK 1 ÅK RÖDA TRÅDEN MUSIK ÅK 1 ÅK 5 ÅK 1 Musicerande och musikskapande ÅK 2 Sång i olika former, unison sång, kanon och växelsång Spel i olika former, ensemblespel Imitation och improvisation med rörelser, rytmer

Läs mer

Evolution. Hur arter uppstår, lever och försvinner

Evolution. Hur arter uppstår, lever och försvinner Evolution Hur arter uppstår, lever och försvinner Aristoteles 384-322 f.kr Idéhistoria Carl von Linné 1707-1778 Georges de Buffon 1707-1788 Jean Babtiste Lamarck 1744-1829 De fem rikena Växter Djur Svampar

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

Evolution, del 1: Evolution och naturlig selektion. Jessica Abbott Forskare Evolutionär Ekologi

Evolution, del 1: Evolution och naturlig selektion. Jessica Abbott Forskare Evolutionär Ekologi Evolution, del 1: Evolution och naturlig selektion Jessica Abbott Forskare Evolutionär Ekologi Kanada Peterborough liftlocks Johnson Hall University of Guelph Lund Ekologihuset Erik Svensson Ischnura elegans

Läs mer

RÖDA TRÅDEN MUSIK ÅK 1 ÅK

RÖDA TRÅDEN MUSIK ÅK 1 ÅK RÖDA TRÅDEN MUSIK ÅK 1 ÅK 5 ÅK 1 Musicerande och musikskapande ÅK 2 Sång i olika former, unison sång, kanon och växelsång Spel i olika former, ensemblespel Imitation och improvisation med rörelser, rytmer

Läs mer

Fördjupningsuppgift 729G43 Linköpings Universitet alelo408. Genetisk börshandel. Att hitta mönster i börsmarknaden med genetiska algoritmer

Fördjupningsuppgift 729G43 Linköpings Universitet alelo408. Genetisk börshandel. Att hitta mönster i börsmarknaden med genetiska algoritmer Genetisk börshandel Att hitta mönster i börsmarknaden med genetiska algoritmer Alexander Löfstrand HT 2017 1. Inledning 1.1. Bakgrund Börsmarknaden är full av möjligheter att tjäna pengar, men även på

Läs mer

Evolution. Hur arter uppstår, lever och försvinner

Evolution. Hur arter uppstår, lever och försvinner Evolution Hur arter uppstår, lever och försvinner Aristoteles 384-322 f.kr Idéhistoria Carl von Linné 1707-1778 Georges de Buffon 1707-1788 Jean Babtiste Lamarck 1744-1829 1. Eukaryoter Tre domäner 2.

Läs mer

An#bio#karesistens Kan det vara e2 sä2 a2 undervisa om naturligt urval?

An#bio#karesistens Kan det vara e2 sä2 a2 undervisa om naturligt urval? An#bio#karesistens Kan det vara e2 sä2 a2 undervisa om naturligt urval? Gustav Bohlin Visuellt Lärande och Kommunika#on Medie- och Informa#onsteknik Ins#tu#onen för Teknik och Naturvetenskap E2 ökande

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

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

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

Vad behövs för att skapa en tillståndsrymd? 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

Använda kunskaper i biologi för att granska information, kommunicera och ta ställning i frågor som rör hälsa, naturbruk och ekologisk hållbarhet.

Använda kunskaper i biologi för att granska information, kommunicera och ta ställning i frågor som rör hälsa, naturbruk och ekologisk hållbarhet. Arvet och DNA Lokal pedagogisk planering årkurs 9 Syfte Naturvetenskapen har sitt ursprung i människans nyfikenhet och behov av att veta mer om sig själv och om sin omvärld. Kunskaper i biologi har stor

Läs mer

Centralt innehåll. I årskurs 1.3

Centralt innehåll. I årskurs 1.3 3.5 Matematik Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan.

Läs mer

Vad är mönsterspråk?

Vad är mönsterspråk? Vad är mönsterspråk? Språk består av meningsbärande byggstenar på olika nivåer. Texter Meningar Ord Orden har vi en överenskommen betydelse för. Men den kan vara väldigt tvetydig och mångtydig. Orden är

Läs mer

Studenter i lärarprogrammet GF(11GF20) 46 p G: 28 p VG: 38 p

Studenter i lärarprogrammet GF(11GF20) 46 p G: 28 p VG: 38 p 11GF20 MaI Provmoment: Ladokkod: Tentamen ges för: Matematik 0,5 hp Studenter i lärarprogrammet GF(11GF20) 15 högskolepoäng TentamensKod: Tentamensdatum: 18-05-22 Tid: 09.00-13.00 Hjälpmedel: Inga hjälpmedel

Läs mer

Om du går in på Wikipedia kan du se några av tavlorna och lyssna på dem.

Om du går in på Wikipedia kan du se några av tavlorna och lyssna på dem. HUR LÅTER BILDEN? WIKIPEDIA: Tavlor på en utställning är en berömd pianosvit av den ryske tonsättaren Modest Mussorgsky. Verket skrevs 1874 som en pianosvit i tio delar och utgör en "musikalisk illustration"

Läs mer

Genetiska algoritmer. vem raggar på vem? Petter Bergqvist, kogvet 2

Genetiska algoritmer. vem raggar på vem? Petter Bergqvist, kogvet 2 Genetiska algoritmer vem raggar på vem?, kogvet 2 petbe082@student.liu.se petbe082@student.liu.se 2(13) Jag har valt att skriva om genetiska algoritmer för att jag finner metoden ytterst intressant, att

Läs mer

Objektorienterad programmering, allmänt

Objektorienterad programmering, allmänt Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 juni 2005 1 Vilka egenskaper vill vi att program ska ha? Förslag (en partiell lista): De ska... gå snabbt att skriva vara

Läs mer

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha? Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 mars 2005 1. Korrekthet 2. Robusthet 3. Utökbarhet 4. Återanvändbarhet 5. Kompatibilitet

Läs mer

FARLIGA TANKAR EVOLUTIONEN

FARLIGA TANKAR EVOLUTIONEN FARLIGA TANKAR EVOLUTIONEN Charles Darwin (1809-1882) NÄR VI ÄR KLARA MED DETTA AVSNITT SKALL DU KUNNA: Ge en beskrivning av hur evolutionsteorin växt fram Visa skillnader och likheter mellan riktat och

Läs mer

Grunderna i stegkodsprogrammering

Grunderna i stegkodsprogrammering Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer

Läs mer

Business research methods, Bryman & Bell 2007

Business research methods, Bryman & Bell 2007 Business research methods, Bryman & Bell 2007 Introduktion Kapitlet behandlar analys av kvalitativ data och analysen beskrivs som komplex då kvalitativ data ofta består av en stor mängd ostrukturerad data

Läs mer

Slump och statistik med Scratch. Se video

Slump och statistik med Scratch. Se video Se video I lektionen simuleras hundratals tärningskast på kort tid. Eleverna får skapa en statistikapplikation och lära sig att skapa och modifiera algoritmer. Måns Jonasson, Internetstiftelsen, har arbetat

Läs mer

Att utveckla taluppfattning genom att dela upp tal är mycket vanligt i de

Att utveckla taluppfattning genom att dela upp tal är mycket vanligt i de Jorryt van Bommel Räkna med ägg När elever möter matematikinnehåll genom arbete med konkret och laborativt material är det av vikt att steget från konkret arbete till abstrakt och generell matematik inte

Läs mer

Extramaterial till Matematik X

Extramaterial till Matematik X LIBER PROGRMMERING OCH DIGITL KOMPETENS Extramaterial till Matematik X NIVÅ TRE Programmering LÄRRE I den här uppgiften får du och dina elever en introduktion till programmering. Uppgiften vänder sig först

Läs mer

Kunskapskrav årskurs 6

Kunskapskrav årskurs 6 Kunskapskrav årskurs 6 Kunskapskrav för betyget E i slutet av årskurs 6 Eleven kan delta i gemensam sång och följer då i någon mån rytm och tonhöjd. Eleven kan även spela delar av en enkel anpassad melodi-,

Läs mer

Slump och statistik med Scratch

Slump och statistik med Scratch Lektionen handlar om att simulera tärningskast och skapa en statistikapplikation genom att arbeta med modifiera algoritmer. Lektionsförfattare: Måns Jonasson En digital lektion från https://digitalalektioner.iis.se

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

Trapped in (a) Cage. Per Anders Nilsson PhD/Professor Högskolan för scen och musik Göteborgs universitet

Trapped in (a) Cage. Per Anders Nilsson PhD/Professor Högskolan för scen och musik Göteborgs universitet Trapped in (a) Cage Per Anders Nilsson PhD/Professor Högskolan för scen och musik Göteborgs universitet Projektet provar alternativa förhållningssätt och metoder i ensemblespel i högre utbildning för jazz

Läs mer

Programmering eller Datalogiskt tänkande

Programmering eller Datalogiskt tänkande Programmering eller Datalogiskt tänkande I förskolan handlar programmering om att få en begynnande förståelse vad det kan innebära. Barnen ges ett kreativt utrymme och har möjlighet att forma sin egen

Läs mer

Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?)

Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?) Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?) 1.a November 2011 Innan vi börjar R.I.P. John McCarthy (1924 2011) Grundare av ämnet artificiell

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

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

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

Förslag den 25 september Matematik

Förslag den 25 september Matematik Matematik Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Matematisk

Läs mer

Innehållsförteckning. Installation Inledning Pedagogisk bakgrund Arbeta med Matematik Screening Basnivå Kalkylator Inställningar Namn Period.

Innehållsförteckning. Installation Inledning Pedagogisk bakgrund Arbeta med Matematik Screening Basnivå Kalkylator Inställningar Namn Period. 2 Resultat Innehållsförteckning Installation Inledning Pedagogisk bakgrund Arbeta med Matematik Screening Basnivå Kalkylator Inställningar Namn Period Screeningmoment Talserier Jämnt - udda Tal och obekanta

Läs mer

Finns det vissa typer av människor som du inte gillar?

Finns det vissa typer av människor som du inte gillar? Finns det vissa typer av människor som du inte gillar? Oavsett hur våra fördomar ser ut så har vi preferenser om vad vi tycker om och vad vi inte riktigt gillar. De flesta skulle nog hålla med om att alla

Läs mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Introduktion till formella metoder Programmeringsmetodik 1. Inledning Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur

Läs mer

Artbildning och utdöende

Artbildning och utdöende Artbildning och utdöende Arter Vad är en art? Enkla svaret: Två individer ur olika arter, kan inte få fertil avkomma Lite mer komplicerat: "Art" är en människans definition. Det finns exempel på arter

Läs mer

Tekniska beräkningar. Vad är tekn beräkningar? Vad är beräkningsvetenskap? Informationsteknologi. Informationsteknologi

Tekniska beräkningar. Vad är tekn beräkningar? Vad är beräkningsvetenskap? Informationsteknologi. Informationsteknologi Tekniska beräkningar stefan@it.uu.se Vad är tekn beräkningar? Finns några olika namn för ungefär samma sak Numerisk analys (NA) Klassisk NA ligger nära matematiken: sats bevis, sats bevis, mer teori Tekniska

Läs mer

Företagets slogan eller motto MUSIK

Företagets slogan eller motto MUSIK Företagets slogan eller motto MUSIK GITARREN HUVUD STÄMSKRUVAR HALS KROPP BAND 1 E 2 A STRÄNGARNAS TONNAMN STALL 3 D 4 G 5 B 6 E ÖPPNA ACKORD PIANO/KEYBOARD Tonernas namn kommer från alfabetets a b c d

Läs mer

Du har ett ENKElT bildspråk och man förstår ditt arbetes budskap. Du har använt teknikerna, verktygen och materialen på ett olika och BrA sätt

Du har ett ENKElT bildspråk och man förstår ditt arbetes budskap. Du har använt teknikerna, verktygen och materialen på ett olika och BrA sätt BEDÖMNING ÅK 7-9 E D c B A BIlDsprÅK Hur utvecklat bildspråket är och om man förstår ditt arbetes budskap Du har ett ENKElT bildspråk och man förstår ditt arbetes budskap Du har ett utvecklat bildspråk

Läs mer

Föreläsning 7 Handlande, metaforer och interaktionsstilar. Kapitel i Stone et al.

Föreläsning 7 Handlande, metaforer och interaktionsstilar. Kapitel i Stone et al. Föreläsning 7 Handlande, metaforer och interaktionsstilar Kapitel 10-11 i Stone et al. The Human Action Cycle 1. Målformulering Utförandefas 2. Översätta mål till uppgifter 4. Utföra handlingssekvens Utvärderingsfas

Läs mer

BIOLOGI PROV OCH BEDÖMNING. Jonas Bohlin LIBER

BIOLOGI PROV OCH BEDÖMNING. Jonas Bohlin LIBER BIOLOGI PROV OCH BEDÖMNING ÅK 7 Jonas Bohlin LIBER ISBN 978-91-47-12382-7 2017 Jonas Bohlin och Liber AB Projektledare och redaktion: Eva Lundström Grafisk form: Eva Jerkeman Bildredaktör: Mikael Myrnerts

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

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk del. Facit Tentamen TDDC (6) Facit Tentamen TDDC30 2014-08-29 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är skillnaden mellan synligheterna public, private och protected? (1p) Svar:public: Nåbar för

Läs mer

FUZZY LOGIC. Christopher Palm chrpa087

FUZZY LOGIC. Christopher Palm chrpa087 FUZZY LOGIC 900223-1554 Innehållsförteckning INLEDNING...2 HUR DET FUNGERAR...3 Crisp Sets och Fuzzy Sets...3 Operatorer...5 IF THEN regler...7 FUZZY INFERENCE...7 Fuzzification...8 Regelsättning...8

Läs mer

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

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator Viktiga begrepp Den här ordlistan är till för dig som går kursen Om Programmering. Eftersom detta är en grundläggande kurs har vi i vissa fall gjort en del förenklingar. En del begrepp är svåra att förenkla,

Läs mer

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Interaktiva berättelser med Twine

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Interaktiva berättelser med Twine Digitalt lärande och programmering i klassrummet Introduktionsworkshop - Interaktiva berättelser med Twine Introduktion Twine är en spelmotor gjord för textbaserade spel och interaktiva berättelser. I

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

Göra lika i båda leden

Göra lika i båda leden Modul: Algebra Del 6: Sociomatematiska normer Göra lika i båda leden Cecilia Kilhamn, Göteborgs Universitet och Lucian Olteanu, Linnéuniversitetet Ordet algebra kommer från det arabiska ordet al-djabr

Läs mer

Tillämpad experimentalpsykologi [2] Tillämpad experimentalpsykologi [1] Empirisk forskningsansats. Tillämpad experimentalpsykologi [3] Variabler

Tillämpad experimentalpsykologi [2] Tillämpad experimentalpsykologi [1] Empirisk forskningsansats. Tillämpad experimentalpsykologi [3] Variabler Tillämpad experimentalpsykologi [1] Ett tillvägagångssätt för att praktiskt undersöka mänskliga processer Alltså inget forskningsområde i sig! (I motsats till kognitiv, social- eller utvecklingspsykologi.)

Läs mer

Samband och förändringar Olika proportionella samband, däribland dubbelt och hälften.

Samband och förändringar Olika proportionella samband, däribland dubbelt och hälften. MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Matematisk

Läs mer

Centralt innehåll. Problemlösning. Taluppfattning och tals användning. Tid och pengar. Sannolikhet och statistik. Geometri.

Centralt innehåll. Problemlösning. Taluppfattning och tals användning. Tid och pengar. Sannolikhet och statistik. Geometri. MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Matematisk

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad

Läs mer

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

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo, 729G74 IT och programmering, grundkurs Tema 1, Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Kurslogistik Begreppspresentationer Uppgifter i diskret matematik Uppgifter i Python Tema 1:

Läs mer

MATEMATIK 3.5 MATEMATIK

MATEMATIK 3.5 MATEMATIK 3.5 TETIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Matematisk

Läs mer

Kapitel 13. Genetiska algoritmer

Kapitel 13. Genetiska algoritmer Kapitel 13. Genetiska algoritmer Som vi tidigare sett, är det i allmänhet svårt att finna det globala minimet för en funktion av många variabler. Det betyder också att det inte är lätt att hitta på en

Läs mer

Programmeringsteknik F1/TM1

Programmeringsteknik F1/TM1 f1pt Välkommen till Programmeringsteknik F1/TM1 CTH: TIN212 LP 2-3 2016/17 F1 introduktion Erland Holmström erland... at... chalmers.se Data & Informationsteknik Kurshemsida: www.cse.chalmers.se/edu/course/tin212/

Läs mer

Programmering II (ID1019) :00-11:00

Programmering II (ID1019) :00-11:00 ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TRE Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta

Läs mer

Beräkningsvetenskap introduktion. Beräkningsvetenskap I

Beräkningsvetenskap introduktion. Beräkningsvetenskap I Beräkningsvetenskap introduktion Beräkningsvetenskap I Kursens mål För godkänt betyg ska studenten kunna redogöra för de grundläggande begreppen algoritm, numerisk metod, diskretisering maskinepsilon,

Läs mer

År 1-3 År 4-6 År 7-9

År 1-3 År 4-6 År 7-9 MUSIK LGR 11 Musik finns i alla kulturer och berör människor såväl kroppsligt som tanke- och känslomässigt. Musik som estetisk uttrycksform används i en mängd sammanhang, har olika funktioner och betyder

Läs mer

Gränssnitt för FakeGranska. Lars Mattsson

Gränssnitt för FakeGranska. Lars Mattsson Gränssnitt för FakeGranska av Lars Mattsson (larsmatt@kth.se) Innehållsförteckning 1 Introduktion...3 2 Genomförande:...3 3 Användning...5 4 Kända buggar:...6 5 Källförteckning...6 2 1 Introduktion Taken

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

MATEMATIK 5.5 MATEMATIK

MATEMATIK 5.5 MATEMATIK 5.5 TETIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Matematisk

Läs mer

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004 MinMax Algoritmen Implementation och optimering Joakim Östlund 15 juni 2004 1 Samanfattning MinMax är en algoritm som kan användas i turbaserade spel för att skapa en virituell motståndare. Algoritmen

Läs mer

använda kunskaper i biologi för att granska information, kommunicera och ta ställning i frågor som rör hälsa, naturbruk och ekologisk hållbarhet,

använda kunskaper i biologi för att granska information, kommunicera och ta ställning i frågor som rör hälsa, naturbruk och ekologisk hållbarhet, Arbetsområde: Huvudsakligt ämne: Biologi åk 7-9 Läsår: Tidsomfattning: Ämnets syfte Undervisning i ämnet biologi syftar till: länk Följande syftesförmågor för ämnet ska utvecklas: använda kunskaper i biologi

Läs mer

GRUNDLÄGGANDE MUSIKTEORI

GRUNDLÄGGANDE MUSIKTEORI GRUNDLÄGGANDE MUSIKTEORI Puls All musik utgår från en grundpuls. När man spelar tillsammans måste alla känna samma puls om det ska funka. Puls är en serie slag som återkommer med jämna mellanrum. Det är

Läs mer

Tillämpad experimentalpsykologi [2] Tillämpad experimentalpsykologi [1] Tillämpad experimentalpsykologi [3] Empirisk forskningsansats

Tillämpad experimentalpsykologi [2] Tillämpad experimentalpsykologi [1] Tillämpad experimentalpsykologi [3] Empirisk forskningsansats Tillämpad experimentalpsykologi [1] Ett tillvägagångssätt för att praktiskt undersöka mänskliga processer Alltså inget forskningsområde i sig! (I motsats till kognitiv, social- eller utvecklingspsykologi.)

Läs mer