Datastrukturer och algoritmer Frelsning 5 Algoritmer Analys av

  • Slides: 25
Download presentation
Datastrukturer och algoritmer Föreläsning 5 Algoritmer & Analys av Algoritmer © Anders Broberg, Ulrika

Datastrukturer och algoritmer Föreläsning 5 Algoritmer & Analys av Algoritmer © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Vad söks? ü 5 p. Den glade bagaren i San Remo ü 4 p.

Vad söks? ü 5 p. Den glade bagaren i San Remo ü 4 p. Den persiske matematikerna Muhammed al Khowarzmi 800 -talet e. kr ü 3 p. Datavetaren Donald Knuth ü 2 p. Den grekiske matematikern Euclides ≈ 400 -300 f. kr ü 1 p. Dagens föreläsning üSvar: Algoritm Datastrukturer och algoritmer VT 2005 2 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Innehåll u Algoritmer ØVad är det? ØMer formellt om algoritmer o Beräkningsbarhet ØAtt beskriva

Innehåll u Algoritmer ØVad är det? ØMer formellt om algoritmer o Beräkningsbarhet ØAtt beskriva algoritmer ØAnalysera algoritmer o Exekveringstid, minnesåtgång…. Datastrukturer och algoritmer VT 2005 3 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Algoritm? Ingredienser u Recept som man följer för att lösa ett givet problem på

Algoritm? Ingredienser u Recept som man följer för att lösa ett givet problem på ett strukturerat sätt u Ändlig stegvis beskrivning av en ändlig process Recept Ugn, plåtar, etc Bullar Datastrukturer och algoritmer VT 2005 4 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Algoritm? Ingredienser u Texten som beskriver algoritmen är fix stor u Processen kan variera

Algoritm? Ingredienser u Texten som beskriver algoritmen är fix stor u Processen kan variera i storlek u Kornighet i en algoritm Recept Ugn, plåtar, etc Bullar Datastrukturer och algoritmer VT 2005 5 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Exempel u Antag att vi har en lista på alla anställda på ett företag:

Exempel u Antag att vi har en lista på alla anställda på ett företag: Namn, Pnr, lön, etc. Vi vill räkna ut lönekostanden företaget. 1. Skriv ner talet 0 2. Gå igenom listan, och för varje anställd så adderar man du personens lön till det skrivna talet 3. När man nått slutet på listan så är det ned skrivna talet resultatet Datastrukturer och algoritmer VT 2005 6 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Algoritmer formellt Definition: Algoritm är en noggrann plan, en metod för att stegvis utföra

Algoritmer formellt Definition: Algoritm är en noggrann plan, en metod för att stegvis utföra något Datastrukturer och algoritmer VT 2005 7 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Krav på algoritmer u u u Ändlighet Ø Algoritmen måste sluta Bestämdhet Ø Varje

Krav på algoritmer u u u Ändlighet Ø Algoritmen måste sluta Bestämdhet Ø Varje steg måste vara entydigt Indata Ø Måste ha noll eller flera indata Utdata Ø Måste ha ett eller flera utdata Genomförbarhet Ø Varje steg i algoritmen måste gå att utföra på ändlig tid 23. Donald Knuth Datastrukturer och algoritmer VT 2005 8 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Algoritmer formellt u Algoritmiska problem & beräkningsbarhet ØEn klass av problem ØBeräkningsbar omm det

Algoritmer formellt u Algoritmiska problem & beräkningsbarhet ØEn klass av problem ØBeräkningsbar omm det finns en Turingmaskin som löser problemet Turing maskin Datastrukturer och algoritmer VT 2005 9 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Att (be)skriva algoritmer u Vi behöver ett språk som: ØÄr strukturerat och formellt ØMindre

Att (be)skriva algoritmer u Vi behöver ett språk som: ØÄr strukturerat och formellt ØMindre formellt än programmeringsspråk o Ingen typning o Dynamisk bindning o Räckvidd Datastrukturer och algoritmer VT 2005 10 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Pseudokod u Mix av naturligtspråk och programmeringsspråk u Influenser från matematisk notation används för

Pseudokod u Mix av naturligtspråk och programmeringsspråk u Influenser från matematisk notation används för tilldelning = används för likhetsrelationen u Metoddeklaration ØAlgorithm name(param 1, param 2) Datastrukturer och algoritmer VT 2005 11 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Pseudokod – programkonstruktioner u Besluts strukturer: if…then…[else…] u Villkorsloopar: while…do repeat … until… u

Pseudokod – programkonstruktioner u Besluts strukturer: if…then…[else…] u Villkorsloopar: while…do repeat … until… u Anrop: method(args) object metod(args) u Returnera värden: return value u Räkneloopar: for…do u Arrayindexering: A[i] Datastrukturer och algoritmer VT 2005 12 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Pseudokod – exempel Algorithm array. Max(A, n) input: An array A storing n integers

Pseudokod – exempel Algorithm array. Max(A, n) input: An array A storing n integers output: The maximum element in A current. Max A[0] for i 1 to n-1 do if current. Max < A[i] then current. Max A[i] return current. Max Datastrukturer och algoritmer VT 2005 13 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Pseudokod u Vi använder oss av pseudokod för att beskriva algoritmer u Det finns

Pseudokod u Vi använder oss av pseudokod för att beskriva algoritmer u Det finns inget universellt språk utan många dialekter u Alla döljer mycket av programspråkens designval, dvs. pseodokoden är programspråksoberoende Datastrukturer och algoritmer VT 2005 14 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Analys av algoritmer u Vad kan analyseras? ØExekveringstid ØMinnesåtgång ØImplementationskomplexitet ØFörstålighet ØKorrekthet Ø Ø

Analys av algoritmer u Vad kan analyseras? ØExekveringstid ØMinnesåtgång ØImplementationskomplexitet ØFörstålighet ØKorrekthet Ø Ø Datastrukturer och algoritmer VT 2005 15 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Varför analysera algoritmer? u Exekveringstid/minnesåtgång ØÄr algoritmen praktiskt körbar ØVi vill ha den snabbaste!

Varför analysera algoritmer? u Exekveringstid/minnesåtgång ØÄr algoritmen praktiskt körbar ØVi vill ha den snabbaste! o Att implementera o Att köra Datastrukturer och algoritmer VT 2005 16 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Beräkningsbar/hanterbar Alla (mattematiska)problem Icke hanterbara superpolynom Beräkningsbara (n!, nn, …) Hanterbara polynom 1+n 2+3*n

Beräkningsbar/hanterbar Alla (mattematiska)problem Icke hanterbara superpolynom Beräkningsbara (n!, nn, …) Hanterbara polynom 1+n 2+3*n 17 Ej beräkningsbara Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Litet räkneexempel u 1 operation tar 1 s u 1*109 element i en lista

Litet räkneexempel u 1 operation tar 1 s u 1*109 element i en lista u Kvadratisk sorteringsalgoritm n 2 Ø 31000år u Logaritmisk sorteringsalgoritm n*log(n) Ø 30000 s ≈ 1 arbetsdag u n 2 och dubbelt så snabb => 15500 år u n 2 och 1000 gånger så snabb => 31år Datastrukturer och algoritmer VT 2005 18 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Exekveringstider 10 20 50 100 300 N 2 1/10000 1/2500 1/400 1/100 9/100 N

Exekveringstider 10 20 50 100 300 N 2 1/10000 1/2500 1/400 1/100 9/100 N 5 1/10 3. 2 sek. 5. 2 min. 2. 8 tim. 28. 1 dag. 2 N 1/1000 1 s 35. 7 år 40000 A 7500 billioner år siffror år NN 2. 8 tim. 3. 3 7000 billioner år siffror år En dator med 1 MIPS, 1*106 op/sek, drygt en miljard s på en dag 1*1025 s sedan ”Big Bang” 19 18500 siffror år 76800 siffror år Datastrukturer och algoritmer © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 VT 2005

Ohanterbarhet u Många triviala att förstå och viktiga att lösa ØSchemaläggning ØHandelsresande u Moore’s

Ohanterbarhet u Många triviala att förstå och viktiga att lösa ØSchemaläggning ØHandelsresande u Moore’s lag förändrar den situationen? ØT(n)=2 n vs. T(n)=2 n u Hur hanterar vi ohanterbarhet? Datastrukturer och algoritmer VT 2005 20 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Hantera ohanterbarhet u Heuristik ØLösa nästan rätt problem o Förenkling ØLösa problemet nästan rätt

Hantera ohanterbarhet u Heuristik ØLösa nästan rätt problem o Förenkling ØLösa problemet nästan rätt o Approximation Datastrukturer och algoritmer VT 2005 21 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

NP-kompletta problem u En speciell klass av ohanterliga problem Icke hanterbara u Har problem

NP-kompletta problem u En speciell klass av ohanterliga problem Icke hanterbara u Har problem X en lösning medsuperpolynom (n!, nn, …) egenskaperna Y u Ekvivalenta: ØTransformeras ØHögst exponentiella ØSaknar bevis för ohanterbarhet Datastrukturer och algoritmer VT 2005 22 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Mäta tidsåtgången u Hur ska vi mäta tidsåtgången? ØExperimentell analys o Implementera algoritmen o

Mäta tidsåtgången u Hur ska vi mäta tidsåtgången? ØExperimentell analys o Implementera algoritmen o Kör programmet med varierande datamängd – Storlek – Sammansättning o Använd metoder för tidtagning så som System. current. Time. Millis() Datastrukturer och algoritmer o Plotta uppmätt data VT 2005 23 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Exempel t(ms) n Datastrukturer och algoritmer VT 2005 24 © Anders Broberg, Ulrika Hägglund,

Exempel t(ms) n Datastrukturer och algoritmer VT 2005 24 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003

Bästa, värsta & medel Värsta Medel Bästa Datastrukturer och algoritmer VT 2005 25 ©

Bästa, värsta & medel Värsta Medel Bästa Datastrukturer och algoritmer VT 2005 25 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003