Genetiska algoritmer

Storlek: px
Starta visningen från sidan:

Download "Genetiska algoritmer"

Transkript

1 GA Genetiska algoritmer Warwick Tucker Matematiska institutionen Uppsala universitet 1

2 Reseproblem Reseproblem Du önskar att resa inom Europa genom att besöka London, Paris, Rom, Stockholm och Wien. Om du vet biljettpriserna mellan dessa städer, hur hittar du den billigaste resan? 2

3 Reseproblem Reseproblem Du önskar att resa inom Europa genom att besöka London, Paris, Rom, Stockholm och Wien. Om du vet biljettpriserna mellan dessa städer, hur hittar du den billigaste resan? 2-a

4 Naturvetardagarna, Uppsala, Reseproblem Reseproblem Du önskar att resa inom Europa genom att besöka London, Paris, Rom, Stockholm och Wien. Om du vet biljettpriserna mellan dessa städer, hur hittar du den billigaste resan? städer möjliga resor b

5 Naturvetardagarna, Uppsala, Reseproblem En svensk semesterresa... ( orter) 3

6 Reseproblem Naturvetardagarna, Uppsala, En svensk semesterresa... ( orter)... hur manga olika fardv agar finns det? 3-a

7 Tillämpningar av TSP Tillämpningar av TSP 4

8 Tillämpningar av TSP Tillämpningar av TSP Borrning i kretskort ( hål) 4-a

9 Tillämpningar av TSP Tillämpningar av TSP Borrning i kretskort ( hål) Reseplanering för lastbilsfrakt och pakethämtning 4-b

10 Tillämpningar av TSP Tillämpningar av TSP Borrning i kretskort ( hål) Reseplanering för lastbilsfrakt och pakethämtning Utbyggnad/planering av kraftnät 4-c

11 Tillämpningar av TSP Tillämpningar av TSP Borrning i kretskort ( hål) Reseplanering för lastbilsfrakt och pakethämtning Utbyggnad/planering av kraftnät Även små förbättringar ger stora vinster. Vi behöver mer effektiva algoritmer! 4-d

12 Algoritmer Vad är en algoritm? 5

13 Algoritmer Vad PSfragär replacements en algoritm? ingredienser recept cements ingredienser ugn redskap indata recept ugn redskap kaka mjukvara hårdvara kaka utdata 5-a

14 Algoritmer Vad PSfragär replacements en algoritm? ingredienser recept cements ingredienser ugn redskap indata recept ugn redskap kaka mjukvara hårdvara kaka utdata En algoritm är ett recept! 5-b

15 Algoritmer Vad PSfragär replacements en algoritm? ingredienser recept cements ingredienser ugn redskap indata recept ugn redskap kaka mjukvara hårdvara kaka utdata En algoritm är ett recept! Implementerat som ett program 5-c

16 Algoritmer Vad PSfragär replacements en algoritm? ingredienser recept cements ingredienser ugn redskap indata recept ugn redskap kaka mjukvara hårdvara kaka utdata En algoritm är ett recept! Implementerat som ett program Oberoende av språk 5-d

17 Algoritmer Vad PSfragär replacements en algoritm? ingredienser recept cements ingredienser ugn redskap indata recept ugn redskap kaka mjukvara hårdvara kaka utdata En algoritm är ett recept! Implementerat som ett program Oberoende av språk Strikta regler för indata/utdata 5-e

18 Exempel 1 Kan vi alltid hitta effektiva algorimer? 6

19 Exempel 1 Kan vi alltid hitta effektiva algorimer? Exempel 1: (Hitta ett telefonnummer) Indata: en persons namn Utdata: personens telefonnummer Algoritm: halveringsmetoden på telefonkatalogen 6-a

20 Exempel 1 Kan vi alltid hitta effektiva algorimer? Exempel 1: (Hitta ett telefonnummer) Indata: en persons namn Utdata: personens telefonnummer Algoritm: halveringsmetoden på telefonkatalogen Hur många sidor kan vi hantera? 6-b

21 Naturvetardagarna, Uppsala, Exempel 1 Kan vi alltid hitta effektiva algorimer? Exempel 1: (Hitta ett telefonnummer) Indata: en persons namn Utdata: personens telefonnummer Algoritm: halveringsmetoden på telefonkatalogen Hur många sidor kan vi hantera? sidor bisektioner c

22 Naturvetardagarna, Uppsala, Exempel 2 Exempel 2: (Permutationer) Indata: en lista med heltal Utdata: en lista med alla möjliga permutationer Algoritm: generera samtliga permutationer 7

23 Naturvetardagarna, Uppsala, Exempel 2 Exempel 2: (Permutationer) Indata: en lista med heltal Utdata: en lista med alla möjliga permutationer Algoritm: generera samtliga permutationer 7-a

24 Naturvetardagarna, Uppsala, Exempel 2 Exempel 2: (Permutationer) Indata: en lista med heltal Utdata: en lista med alla möjliga permutationer Algoritm: generera samtliga permutationer Hur långa listor kan vi hantera? 7-b

25 Naturvetardagarna, Uppsala, Exempel 2 Exempel 2: (Permutationer) Indata: en lista med heltal Utdata: en lista med alla möjliga permutationer Algoritm: generera samtliga permutationer Hur långa listor kan vi hantera? längd permutationer c

26 Exempel 3 Exempel 3: (Stopproblemet) Indata: ett datorprogram Utdata: JA om programmet någonsin slutar, NEJ annars Algoritm: det finns ingen! 8

27 Exempel 3 Exempel 3: (Stopproblemet) Indata: ett datorprogram Utdata: JA om programmet någonsin slutar, NEJ annars Algoritm: det finns ingen! PROGRAM 1 input: N (positive) while N > 1 do N := N 2 end PROGRAM 2 input: N (positive) while N > 1 do if N is even N := N / 2 else N := 3N + 1 end 8-a

28 Hagelkornsproblemet Program 2 Hagelkorn 9

29 Hagelkornsproblemet Program 2 Hagelkorn a

30 Naturvetardagarna, Uppsala, Hagelkornsproblemet Program 2 Hagelkorn b

31 Naturvetardagarna, Uppsala, Hagelkornsproblemet Program 2 Hagelkorn c

32 Naturvetardagarna, Uppsala, Hagelkornsproblemet Program 2 Hagelkorn d

33 Naturvetardagarna, Uppsala, Hagelkornsproblemet Program 2 Hagelkorn e

34 Naturvetardagarna, Uppsala, Hagelkornsproblemet Program 2 Hagelkorn f

35 Naturvetardagarna, Uppsala, Hagelkornsproblemet Program 2 Hagelkorn g

36 Naturvetardagarna, Uppsala, Hagelkornsproblemet Program 2 Hagelkorn h

37 Hagelkornsproblemet Program 2 Hagelkorn

38 Hagelkornsproblemet Program 2 Hagelkorn Startvärdet 27 har 111 hagelkorn! 10-b

39 Problemtyper Problemtyper inga algoritmer PSfrag replacements långsamma algoritmer snabba algoritmer 11

40 Problemtyper Problemtyper inga algoritmer PSfrag replacements långsamma algoritmer snabba algoritmer Vi kan inte alltid hitta effektiva algoritmer! 11-a

41 Problemtyper Problemtyper inga algoritmer PSfrag replacements långsamma algoritmer snabba algoritmer Vi kan inte alltid hitta effektiva algoritmer! Faktum är att vi ibland inte ens kan hitta långsamma algoritmer b

42 Algoritmtyper Finns det något hopp? 12

43 Algoritmtyper Finns det något hopp? Exakta algoritmer Måste finna exakta lösningar inom ändlig tid Brukar kräva djup insikt om problemet Kan vara oacceptabelt långsamma 12-a

44 Algoritmtyper Finns det något hopp? Exakta algoritmer Måste finna exakta lösningar inom ändlig tid Brukar kräva djup insikt om problemet Kan vara oacceptabelt långsamma Approximativa (heuristiska) algoritmer Brukar hitta bra lösningar inom ändlig tid Brukar kräva liten insikt om problemet Kan vara snabba 12-b

45 Approximativa algoritmer Approximativa algoritmer finns i två varianter: 13

46 Approximativa algoritmer Approximativa algoritmer finns i två varianter: 1. Alltid snabba, vanligtvis bra lösningar 2. Vanligtvis snabba, alltid bra lösningar 13-a

47 Approximativa algoritmer Approximativa algoritmer finns i två varianter: 1. Alltid snabba, vanligtvis bra lösningar 2. Vanligtvis snabba, alltid bra lösningar Genetiska algoritmer (GA) Introducerades av John Holland under 1960-talet Baseras på teorin för ärftlighet (Mendel ) Simulerar evolutionen hos en population Approximativa algoritmer av typ 1 13-b

48 Genetiska algoritmer En typisk genetisk algoritm 14

49 Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 14-a

50 Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 2. Utvärdera alla individers hälsotillstånd. 14-b

51 Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 2. Utvärdera alla individers hälsotillstånd. 3. Utse en ny population för avel, baserat på individernas hälsa. 14-c

52 Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 2. Utvärdera alla individers hälsotillstånd. 3. Utse en ny population för avel, baserat på individernas hälsa. 4. Tillämpa genetiska operatorer på medlemmarna i avelspopulationen. 14-d

53 Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 2. Utvärdera alla individers hälsotillstånd. 3. Utse en ny population för avel, baserat på individernas hälsa. 4. Tillämpa genetiska operatorer på medlemmarna i avelspopulationen. 5. Konstruera en ny generation bestående av avkomman. 14-e

54 Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 2. Utvärdera alla individers hälsotillstånd. 3. Utse en ny population för avel, baserat på individernas hälsa. 4. Tillämpa genetiska operatorer på medlemmarna i avelspopulationen. 5. Konstruera en ny generation bestående av avkomman. 6. Om generationen är tillräckligt frisk slutar vi. Annars återvänder vi till punkt f

55 Naturvetardagarna, Uppsala, Genetiska algoritmer 1. Kräver en representation (kodning) av individer som beror på det specifika problemet. Varje kromosom utgörs av flera gener från ett särskilt alfabet, t.ex.. 15

56 Naturvetardagarna, Uppsala, Genetiska algoritmer 1. Kräver en representation (kodning) av individer som beror på det specifika problemet. Varje kromosom utgörs av flera gener från ett särskilt alfabet, t.ex. 2. Hälsan skall mäta hur nära en individ är att lösa problemet. Kan viktas mer eller mindre aggressivt.. 15-a

57 Naturvetardagarna, Uppsala, Genetiska algoritmer 1. Kräver en representation (kodning) av individer som beror på det specifika problemet. Varje kromosom utgörs av flera gener från ett särskilt alfabet, t.ex. 2. Hälsan skall mäta hur nära en individ är att lösa problemet. Kan viktas mer eller mindre aggressivt. 3. Ändra skalan så att populationens totala hälsopoäng blir 100. Dela ett ruletthjul i proportionerliga delar och snurra.. Individen som kommer upp väljs ut för avel. 15-b

58 Genetiska algoritmer 4. Två elementära typer: korsning och mutation. ag replacements korsning ag replacements mutation Olika kodningar av det genetiska materialet kräver olika genetiska operatorer. 16

59 Genetiska algoritmer 4. Två elementära typer: korsning och mutation. ag replacements korsning ag replacements mutation Olika kodningar av det genetiska materialet kräver olika genetiska operatorer. 6. Stoppkriterium, t.ex. Flera generationer utan hälsoförbättring. Ett specifikt mål har uppnåtts. 16-a

60 Genetiska algoritmer Styrkan med genetiska algoritmer 17

61 Genetiska algoritmer Styrkan med genetiska algoritmer De är väl anpassade för många beräkningskrävande problem. 17-a

62 Genetiska algoritmer Styrkan med genetiska algoritmer De är väl anpassade för många beräkningskrävande problem. Adaptiva; fortsätter att prestera bra i en föränderlig miljö. 17-b

63 Genetiska algoritmer Styrkan med genetiska algoritmer De är väl anpassade för många beräkningskrävande problem. Adaptiva; fortsätter att prestera bra i en föränderlig miljö. Kräver endast begränsad matematisk förståelse av problemet. 17-c

64 Genetiska algoritmer Styrkan med genetiska algoritmer De är väl anpassade för många beräkningskrävande problem. Adaptiva; fortsätter att prestera bra i en föränderlig miljö. Kräver endast begränsad matematisk förståelse av problemet. Mycket lämpade för parallellberäkningar. 17-d

65 Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. 18

66 Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker 18-a

67 Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker Frasen består av 25 tecken, inklusive blanka. 18-b

68 Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker Frasen består av 25 tecken, inklusive blanka. Genalfabetet består av 26 gemener och en blank: 27 olika tecken. 18-c

69 Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker Frasen består av 25 tecken, inklusive blanka. Genalfabetet består av 26 gemener och en blank: 27 olika tecken. Antalet olika kromosomer med längd 25 är således: 18-d

70 Naturvetardagarna, Uppsala, Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker Frasen består av 25 tecken, inklusive blanka. Genalfabetet består av 26 gemener och en blank: 27 olika tecken. Antalet olika kromosomer med längd 25 är således: 18-e

71 Naturvetardagarna, Uppsala, Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker Frasen består av 25 tecken, inklusive blanka. Genalfabetet består av 26 gemener och en blank: 27 olika tecken. Antalet olika kromosomer med längd 25 är således: Slumpmässig sökning utesluten! 18-f

72 Genetiska algoritmer Konstruktionen av vår genetiska algoritm: 19

73 Genetiska algoritmer Konstruktionen av vår genetiska algoritm: 1. Skapa initialpopulationen genom att skapa slumpkombinationer av gener från alfabetet Samtliga kromosomer skall ha längd a

74 Genetiska algoritmer Konstruktionen av vår genetiska algoritm: 1. Skapa initialpopulationen genom att skapa slumpkombinationer av gener från alfabetet Samtliga kromosomer skall ha längd Definiera hälsan hos en kromosom genom Om har en mer korrekt gen än så är dess hälsa dubbelt så god. 19-b

75 Genetiska algoritmer Konstruktionen av vår genetiska algoritm: 1. Skapa initialpopulationen genom att skapa slumpkombinationer av gener från alfabetet Samtliga kromosomer skall ha längd Definiera hälsan hos en kromosom genom Om har en mer korrekt gen än så är dess hälsa dubbelt så god. 3. Utse kromosomer för rekombination via ruletthjulsmetoden. 19-c

76 Genetiska algoritmer 4. Nya kromosomer skapas genom mutation samt korsning: ag replacements phutetrgdj_uht ti_ernufhdnsir korsning phutetufhdnsir ti_ernrgdj_uht 20

77 Genetiska algoritmer 4. Nya kromosomer skapas genom mutation samt korsning: ag replacements phutetrgdj_uht ti_ernufhdnsir korsning phutetufhdnsir ti_ernrgdj_uht Mutationen är en slumpmässig substitution: Sfrag replacements oeuryg_fyhrbe mutation oeuwyg_fyhrbe 20-a

78 Genetiska algoritmer 4. Nya kromosomer skapas genom mutation samt korsning: ag replacements phutetrgdj_uht ti_ernufhdnsir korsning phutetufhdnsir ti_ernrgdj_uht Mutationen är en slumpmässig substitution: Sfrag replacements oeuryg_fyhrbe mutation oeuwyg_fyhrbe 5. Producera tillräckligt med avkomma för att fylla hela nästa generation. 20-b

79 Genetiska algoritmer 4. Nya kromosomer skapas genom mutation samt korsning: ag replacements phutetrgdj_uht ti_ernufhdnsir korsning phutetufhdnsir ti_ernrgdj_uht Mutationen är en slumpmässig substitution: Sfrag replacements oeuryg_fyhrbe mutation oeuwyg_fyhrbe 5. Producera tillräckligt med avkomma för att fylla hela nästa generation. 6. Stoppkriterium: avsluta programmet så fort en helt korrekt kromosom har skapats. 20-c

80 Genetiska algoritmer Ansats: storlek hos populationen : 500 korsningskvot : 75% mutationskvot : 1,0% 21

81 Genetiska algoritmer time = 0 - average % genes correct : best % genes correct : best chromosome : ngzabbyztu aaywicmr bbpfx Ansats: storlek hos populationen : 500 korsningskvot : 75% mutationskvot : 1,0% time = 1 - average % genes correct : best % genes correct : best chromosome : ngzabbyztu aaywicmr g qqi time = 35 - average % genes correct : best % genes correct : best chromosome : my name is waywick tucker time = 36 - average % genes correct : best % genes correct : best chromosome : my name is warwick tucker 21-a

82 Genetiska algoritmer time = 0 - average % genes correct : best % genes correct : best chromosome : ngzabbyztu aaywicmr bbpfx Ansats: storlek hos populationen : 500 korsningskvot : 75% mutationskvot : 1,0% Vi behövde endast kontrollera hälsan hos = kromosomer! time = 1 - average % genes correct : best % genes correct : best chromosome : ngzabbyztu aaywicmr g qqi time = 35 - average % genes correct : best % genes correct : best chromosome : my name is waywick tucker time = 36 - average % genes correct : best % genes correct : best chromosome : my name is warwick tucker 21-b

83 Evolutionära algoritmer Andra evolutionära metoder 22

84 Naturvetardagarna, Uppsala, Evolutionära algoritmer Andra evolutionära metoder Evolutionär programmering Kromosomrepresentation nära förknippat med problemformuleringen (t.ex. flyttal). Ingen korsning; Mutation med avtagande sannolikhet. 22-a

85 Naturvetardagarna, Uppsala, Evolutionära algoritmer Andra evolutionära metoder Evolutionär programmering Kromosomrepresentation nära förknippat med problemformuleringen (t.ex. flyttal). Ingen korsning; Mutation med avtagande sannolikhet Genetisk programmering Utvecklar hela program (vanligtvis skrivna i programmeringsspråket Lisp).. 22-b

86 Naturvetardagarna, Uppsala, Evolutionära algoritmer Andra evolutionära metoder Evolutionär programmering Kromosomrepresentation nära förknippat med problemformuleringen (t.ex. flyttal). Ingen korsning; Mutation med avtagande sannolikhet Genetisk programmering Utvecklar hela program (vanligtvis skrivna i programmeringsspråket Lisp). Klassifikationssystem Använder många olika adaptiva metoder för att skapa inlärning och evolution (t.ex. neurala nät, expertsystem).. 22-c

87 Slutsatser Slutsatser 23

88 Slutsatser Slutsatser Många problem saknar effektiva algoritmer. 23-a

89 Slutsatser Slutsatser Många problem saknar effektiva algoritmer. Approximativa algoritmer kan vara till stor hjälp. 23-b

90 Slutsatser Slutsatser Många problem saknar effektiva algoritmer. Approximativa algoritmer kan vara till stor hjälp. Genetiska algoritmer fungerar på en stor klass av svåra problem. 23-c

91 Naturvetardagarna, Uppsala, Referenser Referenser 1. Biermann, A. W. Great Ideas in Computer Science, 2nd Ed., MIT Press, Flake, G. W. The Computational Beauty of Nature, MIT Press, Harel, D. Computers Ltd. - What they really can t do, Oxford University Press, Holland, J. H. Adaptation in Natural and Artificial Systems, University of Michigan Press, Lagarias, J. C. The (1985), problem and its generalizations, Amer. Math. Monthly 92:1 6. Michalewicz, Z. Genetic Algorithms + Data Structures = Evolution Programs, 3rd Ed., Springer-Verlag, Mitchell, M. An Introduction to Genetic Algorithms, MIT Press,

92 Optimering 2 Yr.1 2 Yr.2 2 Yr.3 2 Yr Yr Yr Yr Yr Yr Yr Yr Yr Yr Yr Yr (0.295, )

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

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

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

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

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

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

Datastrukturer och algoritmer

Datastrukturer och algoritmer Datastrukturer och algoritmer Föreläsning 5 Algoritmer & Analys av Algoritmer Algoritmer Vad är det? Innehåll Mer formellt om algoritmer beräkningsbarhet Att beskriva algoritmer Analysera algoritmer Exekveringstid,

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

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

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

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

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står skrivna: Oändligt

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

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

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

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

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 nyckelbegreppen som ingår i kursen* utföra enklare analys av beräkningsproblem och

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

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

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Föreläsning 9: Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står

Läs mer

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

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall COMPUTABILITY BERÄKNINGSBARHET Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall Den centrala frågan: givet ett problem, kan det ha en algoritmisk lösning?

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

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

Beräkningsvetenskap. Vad är beräkningsvetenskap? Vad är beräkningsvetenskap? stefan@it.uu.se. Informationsteknologi. Informationsteknologi

Beräkningsvetenskap. Vad är beräkningsvetenskap? Vad är beräkningsvetenskap? stefan@it.uu.se. Informationsteknologi. Informationsteknologi Beräkningsvetenskap stefan@it.uu.se 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 beräkningar Mer ingenjörsmässigt,

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

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

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

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

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert 20130122. Problemexempel 1

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert 20130122. Problemexempel 1 Fortsättningskurs i programmering F 2 Algoritmer i Programutveckling Hugo Quisbert 20130122 1 Exempel 1 Problemexempel 1 En souvenirbutik behöver ett datorprogram som omvandlar ett pris i svenska kronor

Läs mer

Språket Python - Del 1 Grundkurs i programmering med Python

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

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

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning Dagens Agenda String [] argv String [] argv Arrayer och Strängar fortsättning Booleska operatorer if, for, while satser Introduktion till algoritmer public static void main(string [] argv) argv är variabelnamnet

Läs mer

Laboration: Whitebox- och blackboxtesting

Laboration: Whitebox- och blackboxtesting Tilda11 höstterminen 2011 Laboration: Whitebox- och blackboxtesting Mål med laborationen Du ska lära dig begreppen white-box testing och black-box testing Du ska öva dig på att konstruera testfall Du ska

Läs mer

Program & programmering

Program & programmering Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,

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

Datorlaboration 4. Pedigree-analys

Datorlaboration 4. Pedigree-analys Datorlaboration 4 Pedigree-analys 2. BESKRIVNING AV DATORPROGRAM FÖR DATORLABORATION, PEDIGREE- ANALYS De program som används under denna laboration är inte särskilt användarvänliga (de har tagits fram

Läs mer

Evolution, del 2: Evolutionsprocesser och förändringar i det genetiska materialet. Jessica Abbott Forskare Evolutionär Ekologi

Evolution, del 2: Evolutionsprocesser och förändringar i det genetiska materialet. Jessica Abbott Forskare Evolutionär Ekologi Evolution, del 2: Evolutionsprocesser och förändringar i det genetiska materialet Jessica Abbott Forskare Evolutionär Ekologi Naturlig selektion Alleler som ger bättre överlevnad och/eller reproduktionsförmåga

Läs mer

Föreläsning 9: NP-fullständighet

Föreläsning 9: NP-fullständighet Föreläsning 9: NP-fullständighet Olika typer av problem: 1. Beslutsproblem: A(x) =Ja. 2. Optimeringsproblem: A(x) =m Vanligen max/min. 3. Konstruktionsproblem: A(x) =En struktur. Vanligen lösningen till

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

Installera Anaconda Python

Installera Anaconda Python Maskininlärning Installera Anaconda Python Nummergisslek Vi ska bygga ett litet program, RIDER, som ska gissa vilket nummer som du tänker på. Reglerna är att du tänker på ett heltal mellan 1 och 100. RIDER

Läs mer

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

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera först talet 37 med 2. Använd heltalsdivision. Det ger kvoten

Läs mer

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet Programmering hh.se/db2004 Föreläsning 4: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite om reella tal Vad kan man göra med reella tal? Utöver de

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

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade) Datorsystem 2 CPU Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur CPU Visning av Akka (för de som är intresserade) En dators arkitektur På en lägre nivå kan vi ha lite olika

Läs mer

Genetik en sammanfattning

Genetik en sammanfattning Genetik en sammanfattning Pär Leijonhufvud $\ BY: 3 februari 2015 C Innehåll Inledning 2 Klassisk genentik 2 Gregor Mendel munken som upptäckte ärftlighetens lagar....... 2 Korsningsrutor, ett sätt att

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

LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I

LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I Vt 2002 Mål: Lära sig: Filhantering Stränghantering Vektorer Funktioner Programstruktur Tid: Läroboken: 6 timmars handledd laborationstid. Beräknad klar

Läs mer

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

Problemlösning. Planering av program. Konstruktion. Programmeringsmetaforer. Problemlösning. Programmering = Problemlösning Problemlösning Problemlösning Vad är problemlösning Hur ser ett problem ut? Programmering = Problemlösning Omformulering av ett problem kan i slutändan omsättas i ett program. Ett program består av en,

Läs mer

KAN SKADLIGA GENER UTROTAS?

KAN SKADLIGA GENER UTROTAS? KAN SKADLIGA GENER UTROTAS? Den bärande idén bakom omfattande s.k. genetiska hälsoprogram är att det är möjligt att befria en hundstam från skadliga gener. En diskussion kring utformning av program för

Läs mer

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman Problemlösning Veckodagsproblemet Gissa talet Siffersumman Veckodagsproblemet Vi vill skriva ett program som kan berätta för oss vad det är för veckodag om x dagar. Arbetsgång Förstå problemet Strukturera

Läs mer

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman Problemlösning Veckodagsproblemet Gissa talet Siffersumman Veckodagsproblemet Vi vill skriva ett program som kan berätta för oss vad det är för veckodag om x dagar. Arbetsgång Förstå problemet Strukturera

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

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

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

Introduktion till programmering SMD180. Föreläsning 8: Listor Introduktion till programmering Föreläsning 8: Listor 1 1 Listor = generaliserade strängar Strängar = sekvenser av tecken Listor = sekvenser av vad som helst Exempel: [10, 20, 30, 40] # en lista av heltal

Läs mer

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

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

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

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra

Läs mer

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer 729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser

Läs mer

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc. Introduktion till MATLAB Martin Nilsson Avdelningen för teknisk databehandling Institutionen för informationsteknologi Uppsala universitet MATLAB the Matrix Laboratory utvecklat av MathWorks, Inc. Matematisk

Läs mer

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion Introduktion till programmering D0009E Föreläsning 6: Iteration Multipel tilldelning Helt ok att tilldela en variabel flera gånger: bruce = bruce, bruce = 7 bruce Output: 7 Som tillståndsdiagram: bruce

Läs mer

PROGRAMMERINGSMETODIK

PROGRAMMERINGSMETODIK PROGRAMMERINGSMETODIK 1 Metaforer för programmering Hierarki, modularitet, överblick Programbyggnadskunskap Utvecklingsprocessen Kategorier av programspråk Programmering som allmän konst Metaforer för

Läs mer

Pedagogisk planering Bi 1 - Individens genetik

Pedagogisk planering Bi 1 - Individens genetik Centralt innehåll Genetik Arvsmassans uppbyggnad samt ärftlighetens lagar och mekanismer. Celldelning, dnareplikation och mutationer. Genernas uttryck. Proteinsyntes, monogena och polygena egenskaper,

Läs mer

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

729G04 Programmering och diskret matematik. Föreläsning 7 729G04 Programmering och diskret matematik Föreläsning 7 Föreläsningsöversikt Information Interaktion via text Läsa från fil Skriva till fil Spara och läsa abstrakta datatyper från fil Information Felaktigt

Läs mer

Träd och koder. Anders Björner KTH

Träd och koder. Anders Björner KTH 27 Träd och koder Anders Björner KTH 1. Inledning. Det är i flera sammanhang viktigt att representera information digitalt (d.v.s omvandla till sviter av nollor och ettor). Beroende på vilka villkor som

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

Start v. Programspråk. Poäng. 03 Institution Institutionen för datavetenskap 7.5. Antal registrerade (män/kvinnor) 59 (54/5)

Start v. Programspråk. Poäng. 03 Institution Institutionen för datavetenskap 7.5. Antal registrerade (män/kvinnor) 59 (54/5) TEK/NAT Kursrapport Kurs Kurskod Poäng År Start v. Programspråk 5DV086 7.5 2018 03 Institution Institutionen för datavetenskap Antal registrerade (män/kvinnor) 59 (54/5) Antal aktiva studenter (deltagit

Läs mer

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2 Objektorienterad programmering E Algoritmer Linjär sökning Binär sökning Tidsuppskattningar Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk; dess syntax och semantik, bibliotek

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang)

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang) Tentamen i Programmeringsteori Institutionen for datorteknik Uppsala universitet 1996{08{14 Larare: Parosh A. A., M. Kindahl Plats: Polacksbacken Skrivtid: 9 15 Hjalpmedel: Inga Anvisningar: 1. Varje bevissteg

Läs mer

Ickelinjära ekvationer

Ickelinjära ekvationer Löpsedel: Icke-linjära ekvationer Ickelinjära ekvationer Beräkningsvetenskap I Varför är det svårt att lösa icke-linjära ekvationer? Iterativa metoder Bisektion/intervallhalvering Newton-Raphsons metod

Läs mer

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean

Läs mer

Offentlig kryptering

Offentlig kryptering 127 Offentlig kryptering Johan Håstad KTH 1. Inledning. Denna uppgift går ut på att studera ett offentligt kryptosystem. Med detta menas ett kryptosystem där det är offentligt hur man krypterar, men trots

Läs mer

KUNG. TEKNISKA HÖGSKOLAN. Laboration. Programmering av LEGO-robot

KUNG. TEKNISKA HÖGSKOLAN. Laboration. Programmering av LEGO-robot KUNG. TEKNISKA HÖGSKOLAN Laboration Programmering av LEGO-robot 2012-09-01 E-post: Maxwin@KTH.se Introduktionskurs i datateknik (II1310) Medlaborant: Andreas Bergstrand Sammanfattning I den här rapporten

Läs mer

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

Föreläsning 1. Introduktion. Vad är en algoritm? Några exempel på algoritmer. Föreläsning 1. Introduktion Vad är en algoritm? 1. Häll 1 dl havregryn och ett kryddmått salt i 2 1 2 dl kallt vatten. Koka upp och kocka gröten ca 3minuter. Rör om då och

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Datorteknik TSIU02 Lab 2 Morsesändare v0.7

Datorteknik TSIU02 Lab 2 Morsesändare v0.7 Inledning För att skriva program i något programspråk förenklar det att ha ett strukturerat angreppssätt. I assembler får man strukturen genom omsorgsfull användning av subrutiner. Som exempel på en mer

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

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

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

Datastrukturer och algoritmer

Datastrukturer och algoritmer Innehåll Föreläsning 5 Algoritmer Experimentell komplexitetsanalys Kapitel 2.1-2.2, Kapitel 12.1-12.4 Algoritmer Algoritm Definition: Algoritm är en noggrann plan, en metod för att stegvis utföra något

Läs mer

Algoritmer och interaktiv Python

Algoritmer och interaktiv Python Algoritmer och interaktiv Python Linda Mannila 11.9.2007 Denna föreläsning Räkneövningstider Algoritmer Interaktiv Python Datatyper Variabler Typning Repetition Vad vi än skall göra måste vi veta hur vi

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Introduktion till programmering SMD180. Föreläsning 9: Tupler Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]

Läs mer

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

Dataabstraktion. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap Dataabstraktion TDDD73 Funktionell och imperativ programmering i Python Föreläsning 12 Peter Dalenius Institutionen för datavetenskap 2014-11-19 Översikt Vad är abstraktion? Vad är en abstrakt datatyp?

Läs mer

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

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

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik IT OCH PROGRAMMERING I SKOLAN Jan Erik Moström Peter Vinnervik VILKA ÄR VI OCH VAD KOMMER VI ATT PRATA OM? Jan Erik Moström - undervisar på institutionen för datavetenskap Peter Vinnervik - doktorand vid

Läs mer

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering Föreläsning 3 Programmeringsteknik och C DD1316 Innehåll i listor En lista kan innehålla element av olika typer: [ hej, 151, 10.59] uppdateringsoperatorer listor tupler strängar for-slingor importera moduler

Läs mer

Optimeringslara = matematik som syftar till att analysera och. Optimeringslara ar en gren av den tillampade matematiken.

Optimeringslara = matematik som syftar till att analysera och. Optimeringslara ar en gren av den tillampade matematiken. Optimal = basta mojliga. Optimeringslara = matematik som syftar till att analysera och nna det basta mojliga. Anvands oftast till att nna ett basta handlingsalternativ i tekniska och ekonomiska beslutsproblem.

Läs mer

Uppgifter i TDDC75: Diskreta strukturer Kapitel 8 Ordning och oändlighet

Uppgifter i TDDC75: Diskreta strukturer Kapitel 8 Ordning och oändlighet Uppgifter i TDDC75: Diskreta strukturer Kapitel 8 Ordning och oändlighet Mikael Asplund 19 oktober 2016 Uppgifter 1. Avgör om följande relationer utgör partialordningar. Motivera varför eller varför inte.

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

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 6: Filhantering Henrik Björklund Umeå universitet 13 oktober 2009 Björklund (UmU) Programmeringsteknik 13 oktober 2009 1 / 22 Textfiler Filer är sekvenser

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

tidskrift för politisk filosofi nr årgång 9

tidskrift för politisk filosofi nr årgång 9 tidskrift för politisk filosofi nr 1 2005 årgång 9 Bokförlaget thales om den personliga egalitarismen om den personliga egalitarismen replik till rabinowicz Jonas Gren, Niklas Juth och Ragnar Francén i

Läs mer

Programmeringsmetodik DV1 Programkonstruktion 1. Moment 4 Om rekursion. PK1&PM1 HT-06 moment 4 Sida 1 Uppdaterad

Programmeringsmetodik DV1 Programkonstruktion 1. Moment 4 Om rekursion. PK1&PM1 HT-06 moment 4 Sida 1 Uppdaterad Programmeringsmetodik DV1 Programkonstruktion 1 Moment 4 Om rekursion PK1&PM1 HT-06 moment 4 Sida 1 Uppdaterad 2006-10-17 Summera godtyckligt antal tal (* sumupto n Type: int->int Pre: n >= 0, n

Läs mer

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

Dataabstraktion. TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap Dataabstraktion TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12 Peter Dalenius Institutionen för datavetenskap 2013-11-12 Översikt Vad är abstraktion? Vad är en abstrakt datatyp?

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 6 Anton Grensjö grensjo@csc.kth.se 4 oktober 2017 1 Idag Algoritmkonstruktion (lite blandat) Redovisning och inlämning av labbteori 3 2 Uppgifter Uppgift

Läs mer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded

Läs mer

Agent som lär sig. Maskininlärning. Genetiska algoritmer. Typer av återkoppling. ! Introduktion. ! Genetiska algoritmer!

Agent som lär sig. Maskininlärning. Genetiska algoritmer. Typer av återkoppling. ! Introduktion. ! Genetiska algoritmer! Maskininlärning gent som lär sig! Introduktion Yttre standard/återkoppling! Genetiska algoritmer! Exempelinlärning! eslutsträdsinlärning! Version Space-inlärning Återkoppling Kritiserare Mål Inlärningselement

Läs mer