Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

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.

Lignende præsentationer


Præsentationer af emnet: "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."— Præsentationens transcript:

1 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. Nogle eksempler:

2 FEN 2013-01-30Rekursion 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

3 FEN 2013-01-30Rekursion 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)= 2+ 1+ 0 = 3

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

5 FEN 2013-01-30Rekursion 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.

6 FEN 2013-01-30Rekursion 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

7 FEN 2013-01-30Rekursion 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…

8 FEN 2013-01-30Rekursion og induktion8 Som selv er træer… …eller blade – rekursionen skal terminere

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

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

11 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 2013-01-30Rekursion og induktion11

12 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 2013-01-30Rekursion og induktion12

13 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 2013-01-30Rekursion og induktion13

14 FEN 2013-01-30Rekursion 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

15 FEN 2013-01-30Rekursion 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

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

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

18 FEN 2013-01-30Rekursion 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


Download ppt "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."

Lignende præsentationer


Annoncer fra Google