Datastrukturer och algoritmer Frelsning 5 Algoritmer Analys av
- Slides: 25
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. 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 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å 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 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: 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 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 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 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 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 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 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 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 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 Ø Ø 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! 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 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 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 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 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 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 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 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, Lena Kallin Westin, 2003
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
- Datastrukturer och algoritmer
- Datastrukturer och algoritmer liu
- Datastrukturer och algoritmer
- Rapportering och analys
- Romeo och julia handling
- Frelsning
- Frelsning
- Frelsning
- Sumelist
- Datastrukturer chalmers
- Elementre
- Algoritmer multiplikation
- Konkretia
- Likheter mellan hinduism och buddhism
- Positioneringskarta
- Boye kallocain
- Källkritik tendenskriteriet
- Ericsson analys
- Pestle analys
- Haiku 5-7-5 exempel
- Knna
- Den unge werthers lidanden analys
- Gap analys mall
- Gapanalys
- Multivariat analys
- Nu löser solen sitt blonda hår analys