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’.

Slides:



Advertisements
Liknande presentationer
Föreläsning 3 25 jan 2010.
Advertisements

Hur det kom sig att vi började studera generna (arvet)
Talföljder formler och summor
X-mas algebra Är du redo? Klicka!!.
En genomgång av spelet: Dubbelkrig-Grön
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Funktioner och programorganisation
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
DAB752: Algoritmteori Leif Grönqvist
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Föreläsning 7 Analys av algoritmer T(n) och ordo
P-uppgiften: regler, planering och specifikation
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Att hålla en presentation
Algoritmer och datastrukturer
Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist
Växjö 22 april -04Språk & logik: Parsning med kontextfria grammatiker1 DAB760:Språk och logik: 22 aprilParsning Leif Grönqvist
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 6 Asymtotisk analys.
Algoritm analys och rekursiva metoder kap 5,7
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
Programmering B PHP Lektion 2
Detection of similarity between documents Axel Bengtsson Ola Olsson
Programmering B PHP Lektion 3
Vektorer (klassen Vector) Sortering
Algebra och ekvationer
Språkteknologiska metoder Språkteknologisk forskning och utveckling (HT 2006)
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
Grundläggande programmering
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
För utveckling av verksamhet, produkter och livskvalitet. -Algoritmer och Datastrukturer- -Algoritm analys och sökning algoritmer- Kap 5 -Algoritmer och.
Riktade listor i C och Java Lösning till gruppövning 1.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
En mycket vanlig frågeställning gäller om två storheter har ett samband eller inte, många gånger är det helt klart: y x För en mätserie som denna är det.
Programmeringsmetodik
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Datastrukturer och algoritmer
1 Kognitiv modellering inom MDI mekanismer för att kunna förutspå användarens uppträdande härstammar från experimentell psykologi, AI och lingvistik.
Genetiska Algoritmer En översikt Vetenskapsmetodik - CDT Pablo Santibanez Jara, Ulrika Hjälmgården,
Föreläsning 11 Logik med tillämpningar Innehåll u Generell resolution u Kapitel i Ben-Ari.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
Föreläsning 9 Logik med tillämpningar Innehåll u Semantiska tablåer i predikatlogiken u Klausulform u Herbrandmodeller u Kapitel 3.5,
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
Logik med tillämpningar
1 Semantik – introduktion Semantik = läran om mening Tvärvetenskapligt filosofi lingvistik psykologi AI Lingvistik motsägelser mångtydighet metaforer Filosofi.
Föreläsning 14 Logik med tillämpningar Innehåll u Cuts och negation u Input/output u Extralogiska predikat u Interaktiva program, failure-drivna.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Parti och ideologi.
Föreläsning 1 Introduktion till kursen. Algoritmer
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
Frågor om elevinflytande till elever i åk 3 – 9 i grundskolan
Växjö 14 april -04Språk & logik: Finita automater1 DAB760: Språk och logik 14/4:Finita automater Leif Grönqvist Växjö Universitet.
Algoritmer och loopar Algoritmer, beräkningsbarhet
Socialpsykologi.
Utsatta EU-medborgare i Trollhättan. Dagens regelverk är utformade utifrån grundtanken med fri rörlighet och att de personer som kommer hit förutsätts.
Lars Madej  Talmönster och talföljder  Funktioner.
Manada.se Algebra och funktioner. 1.1 Algebra och polynom Förkunskaper: Grundläggande algebra Konjugatregeln och kvadreringsreglerna Andragradsekvationer.
Manada.se Geometrisk summa och linjär optimering.
Populärt brukar algebra ibland kallas för bokstavsräkning
Python.
Algoritmer och datastrukturer Föreläsning 8 Tidskomplexitet (Weiss kap
Programmera dina klasskamrater
Tips för bättre kommunikation
Presentationens avskrift:

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…al’Khowârizmi

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

Ändlighet (finiteness) Algoritmen måste kunna garanteras bli färdig efter ett ändligt antal steg (oavsett vilka indata är). Den tekniska termen är terminera.

Bestämdhet (definiteness) Varje steg i algoritmen måste vara entydigt och precist definierad.

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

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

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.

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

Ä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.

Bestämdhet Klara och entydiga aritmetiska operationer.

Indata I detta fall 2 indata, m och n.

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

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.

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.

Euklides algoritm i Java gcd(e, n) { while (e != 0) { r = n mod e; n = e; e = r; } return n; }

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.

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...

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.Salesman TSP I många fall finns algoritmer som ger praktiskt användbara resultat.

Alan Turing Förutspådde lagringskapaciteter i storleksordningen GigaByte år 2000 Matematiker Turingmaskiner, 1936 Teoretisk beräkningsmaskin/dator

Turingmaskinen Centralenhet med läs/skrivhuvud Ett oändligt band med celler av fix längd. Bandet motsvarar maskinens minne, samt in- och utmatningsenheter.

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:

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.

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:

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.

Maskinens delar Ett oändligt band med celler av fix storlek. Ett läs- och skrivhuvud (En bandtransport) Ett regelverk

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 .

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

Algoritmer och problem Titta på följande: 1)om x=1 så stoppa 2)låt x få värdet x-2 (x=x-2) 3)fortsätt med steg 1 Är detta en algoritm?

Exempel 2 1)om x=1 så stoppa 2)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?

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?

NEJ och det kan bevisas!

Haltproblemet Win98