33
Algoritmer

Algoritmer

Embed Size (px)

DESCRIPTION

Algoritmer. Algoritmer. Ordet kommer från en persisk författare som kom från al’Khowârizmi (engelskans algorithm). Han skrev boken ’Kitab al jabr w’al-muqabala’. Händelsevis kommer ordet algebra härifrån…. Donald Knuths formulering. - PowerPoint PPT Presentation

Citation preview

Page 1: Algoritmer

Algoritmer

Page 2: Algoritmer

Algoritmer

• Ordet kommer från en persisk författare som kom från al’Khowârizmi (engelskans algorithm). Han skrev boken ’Kitab al jabr w’al-muqabala’. Händelsevis kommer ordet algebra härifrån…

Page 3: Algoritmer

Donald Knuths formulering• ”En ändlig uppsättning regler som

bestämmer en följd av operationer som löser en specifik typ av uppgift, och som har följande fem kännetecken;

• Ändlighet• Bestämdhet• Indata• Utdata• Effektivitet

Page 4: Algoritmer

Ändlighet (finiteness)

• Algoritmen måste kunna garanteras bli färdig efter ett ändligt antal steg (oavsett vilka indata är).

• Den tekniska termen är terminera.

Page 5: Algoritmer

Bestämdhet (definiteness)

• Varje steg i algoritmen måste vara entydigt och precist definierad.

Page 6: Algoritmer

Indata (input)

• En algoritm har noll eller fler indata, det vill säga värden som ges algoritmen innan den startas.

Page 7: Algoritmer

Utdata (output)

• En algoritm har ett eller flera utdata, det vill säga värden som produceras av algoritmen.

Page 8: Algoritmer

Effektivitet (effectiveness)

• Varje steg i algoritmen måste vara så elementärt att det i princip kan utföras exakt, och inom en ändlig tidsrymd, av en människa med papper och penna.

Page 9: Algoritmer

Euklides algoritm

• Största gemensamma delaren till två positiva heltal (SGD).

Page 10: Algoritmer

Ändlighet

• Måste vara möjligt att formellt bevisa att algoritmen terminerar för varje möjlig kombination av indata.

• Matematiskt minskar vi värdet på n i euklides för att slutligen komma till 0.

Page 11: Algoritmer

Bestämdhet

• Klara och entydiga aritmetiska operationer.

Page 12: Algoritmer

Indata

• I detta fall 2 indata, m och n.

Page 13: Algoritmer

Utdata

• Ett utdatum i detta fall, det sista värdet av m.

Page 14: Algoritmer

Effektivitet

• I detta fall med heltalsdivision bör det inte vara något problem att utföra det med papper och penna inom en ändlig tidsrymd.

• Detta rör en i viss mån idealiserad version av problemet.

Page 15: Algoritmer

Pseudokod

• Ett datorprogram består oftast av en eller flera algoritmer.

• Oftast använder man någon form av pseudokod för att beskriva funktionen innan man implementerar till valt programmeringsspråk.

• Pseodokod är ett mellanting mellan naturligt språk och programkod.

Page 16: Algoritmer

Euklides algoritm i Java

gcd(e, n) {while (e != 0) {

r = n mod e;n = e;e = r;

} return n;}

Page 17: Algoritmer

Beräkningsbarhet

• Det finns en uppdelning av problem i beräkningsbara och icke beräkningsbara problem.

• Av de beräkningsbara finns det dels hanterliga och dels ohanterliga.

Page 18: Algoritmer

Hanterligt

• Kan man säga om det finns algoritmisk lösning där resursanspråken begränsas av polynomfunktioner av uppgiftens storlek n, för stora n.

• Exempelvis...

Page 19: Algoritmer

Ohanterliga

• Är de problem där man inte känner till en algoritm med polynomisk komplexitet.

• Schemaläggning är ett exempel, Travelling Salesman (TSP) ett annat.

• I många fall finns algoritmer som ger praktiskt användbara resultat.

Page 20: Algoritmer

Alan Turing

• Förutspådde lagringskapaciteter i storleksordningen GigaByte år 2000

• Matematiker• Turingmaskiner, 1936• Teoretisk

beräkningsmaskin/dator

Page 21: Algoritmer

Turingmaskinen

• Centralenhet med läs/skrivhuvud• Ett oändligt band med celler av

fix längd.• Bandet motsvarar maskinens

minne, samt in- och utmatningsenheter.

Page 22: Algoritmer

Turingmaskinen

• Turing ville skapa en abstrakt modell av en mänsklig ’dator’ som arbetade med papper och penna för att lösa problem.

• Han delade upp problemet i mindre och mindre delar till dess han kom fram till att:

Page 23: Algoritmer

Turings definition

• Varje steg skulle bestå av att sudda ut en symbol på papperet som observerades av pennan och skriva en ny i dess ställe.

• Beslutet av vilken symbol som skulle skrivas och vilken symbol som skulle observeras härnäst skulle bara bero på den symbol som observerades av pennan och det sinnestillstånd ’datorn’ befann sig i.

Page 24: Algoritmer

Vad gör den?

• En Turingmaskin kan skapas för varje enskild algoritm som kan lösas av en dator.

• En Turingmaskin terminerar inte nödvändigtvis.

• Har givit upphov till:

Page 25: Algoritmer

Church-Turings tes

• Allt som kan beräknas kan beräknas av någon Turingmaskin.

• Every computer algorithm can be implemented as a Turing machine.

Page 26: Algoritmer

Maskinens delar

• Ett oändligt band med celler av fix storlek.

• Ett läs- och skrivhuvud• (En bandtransport)• Ett regelverk

Page 27: Algoritmer

Regelverket

• Består av en fem-tupel• (S, , , s, H)S motsvarar mängden tillstånd

maskinen kan befinna sig i. motsvarar alfabetet

(symboluppsättningen) som också innehåller startsymbolen , blanksteg men inte pilarna eller .

Page 28: Algoritmer

Regelverket fortsättning

s S där s är starttillståndet och S mängden tillstånd.

H S där H är mängden av halttillstånd

är transitionsfunktionen, eller omvandlingsreglerna

Page 29: Algoritmer

Algoritmer och problem

• Titta på följande:1) om x=1 så stoppa2) låt x få värdet x-2 (x=x-2)3) fortsätt med steg 1

Är detta en algoritm?

Page 30: Algoritmer

Exempel 2

1) om x=1 så stoppa2) om x är jämt så låt x få värdet

x/2 annars låt x få värdet 3x + 1

3) fortsätt med steg 1

Är detta en algoritm?

Page 31: Algoritmer

Terminering

• Om vi backar till Knuths definition av en algoritm så innehöll den ett krav på terminering.

• Detta fanns det krav på att kunna bevisa.

• Kan man skapa en algoritm som kan avgöra om en annan algoritm terminerar?

Page 32: Algoritmer

NEJ

• och det kan bevisas!

Page 33: Algoritmer

Haltproblemet

• Win98