FEN 2013-01-30Rekursion og induktion1 Induktion og (især) rekursion Mange begreber defineres ud fra en basis og så en gentagen anvendelse af et antal regler.

Slides:



Advertisements
Lignende præsentationer
Relationer En relation mellem to mængder er en generaliseret funktion
Advertisements

Vektorer i planen Regneregler Definition Begreber Definition af:
Parabler, 2. gradspolynomier og 2.gradsligninger
1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.
Funktioners parametre Beviser
Udsagn (propositioner)
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Königs uendelighedslemma
1 Rekursion og algoritmedesign. 2 Rekursion Rekursiv definition af X: X defineres i termer af sig selv. Rekursion er nyttig, når en generel version af.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Sammenligning af to grupper
Induktionsbevis AM INDUKTION – generalisering ud fra specialtilfælde Eks. I Fremskrivningsformlen ved en fast vækstrate r pr. trin. Startværdi =
GP10, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 10 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Parabler, 2. gradspolynomier og 2.gradsligninger
FEN Diskret matematik/Seminar 3 - proofs 1 Beviser Et bevis er en argumentation, som overbeviser om, at en påstand er sand, påstanden kaldes.
1 Bevisteknikker. 2 Bevisteknikker (relevant både ved design og verifikation) Teorem: Der findes uendeligt mange primtal Bevis: Antag at der findes et.
1 UNION-FIND. 2 inddata: en følge af heltalspar (p, q); betydning: p er “forbundet med” q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel.
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal.
Induktion og rekursion
GP12, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 12 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Datastrukturer og Collections Rasmus D. Lehrmann DM
Multi-vejs hobe med ekstra bytes Foredrag: Claus Jensen Projektmedlemmer: Jyrki Katajainen, Fabio Vitale, Claus Jensen.
FEN Prædikater/Seminar 11 Prædikatslogik eller Kvantificerede udtryk Prædikater udvider propositionslogikken på to måder: –Vi tillader variable.
Afledet funktion Her har jeg tegnet f(x) og f’(x)=g(x)
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel 2.3, , problem 30.1.c] Gerth Stølting Brodal.
FEN Sprog1 Lidt om sprog Definition: Et sprog over et endeligt alfabet  (sigma) er en mængde af strenge dannet af tegn fra . Eksempel: Lad.
Mængder: Begreber og notation
Sproghistorie Syntaks (struktur) Semantik (Indhold)
Lektion 7 Læsestof: Kopier fra Caranno
1 Design, analyse og verifikation. 2 Algoritmebegrebet Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær.
Fundamentale datastrukturer
Per P. Madsen- Proces1 Algoritmer og datastrukturer Grundprincipper og analyse af algoritmer. MM1 Lister, stakke og køer. MM2 Træer, og Hash-tabeller.
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
Design, verifikation og analyse
1 Design, analyse og verifikation. 2 Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær søgning Verifikation.
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
1 Sortering. 2 Sortering ved fletning (merge-sort) 7 2 | 9 4  | 2  2 79 | 4   72  29  94  4.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
FEN KbP/seminar1: ProgUdsagn1 Kontraktbaseret programmering Seminar 1 Programudsagn og programbeviser.
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Paradigmer i Programmering 1. Program for idag : Funktioner og udtryk i SML : Øvelse : Frokost – 14.00: Deklarative.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
FEN KbP/seminar2: design21 Kontraktbaseret programmering Seminar 2 Klassedesign: Immutable lister Queue Shallowcopy og alkvantoren.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal Aarhus Universitet.
Paradigmer i Programmering 1. Plan for kurset 4 x Mads R, 4 x Torben B, 2 x opgave MR: Funktionsprogrammering, SML TB: Logikprogrammering, Prolog Opgave:
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Jörg ZellerFOL-modul31 Slutning: Logik som tænknings-model En hovedgrund for konstruktionen af et logisk sprog er at kunne give en præcis definition af.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Basics: Binære variable, logiske operationer
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
I o p o DAIMI, AU, December 1999Introducerende objektorienteret programmering14A.1 Del, løs og kombinér.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
I o p o DAIMI, AU, November 1999Introducerende objektorienteret programmering9D.1 Del, løs og kombinér.
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
Del, løs og kombinér Et algoritmemønster.
Union-Find [CLRS, kapitel ]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 2
Induktionsbevis AM 2010.
Grundlæggende Algoritmer og Datastrukturer
Præsentationens transcript:

FEN Rekursion og induktion1 Induktion og (især) rekursion Mange begreber defineres ud fra en basis og så en gentagen anvendelse af et antal regler. Nogle eksempler:

FEN Rekursion og induktion2 De naturlige tal Basis: ZERO Regel: hvis n er et naturligt tal, så er SUCC(n) det også: ZERO SUCC(ZERO) SUCC(SUCC(ZERO)) SUCC(SUCC(SUCC(ZERO))) SUCC(SUCC(SUCC(SUCC(ZERO))))... Standard-notationen: ZERO skrives 0 SUCC(n) skrives 1 + n decimal notation for hvert af tallene. SUCC(SUCC(SUCC(ZERO))) skrives f.eks. 3. Rekursiv definition: 1.0  N 2.For alle n  N, så n+1  N Vi siger kort, at N indeholder 0 og er lukket mht. succ-operationen

FEN Rekursion og induktion3 Eksempel: sum Summen af de første n naturlige tal kan defineres ved følgende rekursive funktion: sum(n) = 0for n= 0 sum(n) = n + sum(n-1)for n>0 Fx: sum(2)= 2 + sum(1) sum(1) = 1 +sum(0) sum(0) = 0 sum(2)= = 3

FEN Rekursion og induktion4 I fx Java int sum(int n) {//PRE n>= 0 if (n==0) return 0; else return n + sum(n-1); }

FEN Rekursion og induktion5 Sekvenser Sekvenser over en mængde A: Basis:NIL, den tomme sekvens Regel:hvis a  A, og s er en sekvens over A, så er CONS(a; s), dvs. a efterfulgt af s, også en sekvens over A. Fx: A= {a, b} sekvenserne over A: NIL CONS(a; NIL) CONS(b; NIL) CONS(a; CONS(a; NIL)) CONS(a; CONS(b; NIL)) CONS(b; CONS(a; NIL)) CONS(b; CONS(b; NIL)) CONS(a; CONS(a; CONS(a; NIL))) CONS(a; CONS(a; CONS(b; NIL)))... Den tomme sekvens skrives  (stort lambda), (lille lambda) eller (lille epsilon)  CONS(a; s) skrives normalt blot as. Den sidste sekvens ovenfor skrives normalt aab, idet det afsluttende NIL udelades.

FEN Rekursion og induktion6 Binære træer Et binært træ T er enten tomt eller består af en rod med to referencer: lChild og rChild, som selv er binære træer: TT lChild rChild

FEN Rekursion og induktion7 Generelle træer Består af –en enkelt knude eller –en rodknude med et vilkårligt antal subtræer Kan ikke implementeres på samme måde som binære træer, da antallet af subtræer kan variere meget Fx: Som selv er træer…

FEN Rekursion og induktion8 Som selv er træer… …eller blade – rekursionen skal terminere

FEN Rekursion og induktion9 Træstruktur - objektmodel Abstrakt træ Blad Træ 0..* Composite Pattern

FEN Rekursion og induktion10 Kædet implementation – generaliseret liste (A, (B, (E, F, G), C, (D, (H, I))

Også sprog kan defineres rekursivt: Sproget Expr: lovlige regneudtryk med identifieren a, de binære operationer + og * samt parenteser (fx strenge som a, a+a*a og (a+a*(a+a))): Rekursiv definition: 1.a  Expr 2.For alle x  Expr og alle y  Expr, så x+y  Expr og x*y  Expr 3.For alle x  Expr, så (x)  Expr. FEN Rekursion og induktion11

Kan Bal defineres rekursivt? Sproget Bal: strenge indeholdende parenteser, hvor parenteserne balancerer (fx strenge som , (), (a+a*a) og (a+a*(a+a)), men også ((()))). FEN Rekursion og induktion12

Closure – eller transitiv aflukning af en relation (eller en graf) Lad R være en relation over en endelig mængde S. For et givet element s  S kan vi definere en delmænge af S: r(s) som indeholder alle de elementer, der er forbundet med s ved: 1.s  r(s) 2.For alle c  r(s) og alle d  S, hvor cRd, så er d  r(s) Mængden r(s) kaldes closure eller transitiv aflukning. Fx kan S være alle personer på facebook, og R kan være relationen ”er ven med”, så er r(s) alle s’ venner, venners venner, venners venners venner etc. Man taler om den transitive aflukning af grafer (sammenhængende komponenter). FEN Rekursion og induktion13

FEN Rekursion og induktion14 Øvelse: Specificér en rekursiv funktion, som opløfter et tal x til en potens n (heltal  0): Udvid definitionen til alle heltal Realiser i Java

FEN Rekursion og induktion15 Induktionsbeviser Anvendes til bevis af udsagn, som vedr. heltal: –Bevis udsagnet for startværdien (induktionsbasis) –Antag, at udsagnet gælder for en vilkårlig værdi, n, (induktionshypotesen) –Bevis, at under forudsætning af hypotesen, så gælder udsagnet for n+1 Heraf konkluderes, at udsagnet gælder for alle heltal Anvendes direkte på rekursive algoritmer Anvendes indirekte på iterative algoritmer Vise: n= 1 Antag n Vise: n+1 Basis Induktionsskridt Induktionshypotese

FEN Rekursion og induktion16 Et induktionsbevis Sætning for alle naturlige tal n Bevis: Induktionsstart: For n = 1 reducerer formlen til 1 = 1 hvilket jo passer.

FEN Rekursion og induktion17 Et induktionsbevis - fortsat Induktionsskridtet: Vi antager, at og skal bevise, at :

FEN Rekursion og induktion18 Øvelser 1.Vis ved induktion på n: For alle naturlige tal n>2 gælder: n+1< n 2 2.Vis ved induktion på antal elementer n, at antal elementer i 2 A er 2 n, når A har n elementer. løsning