Induktion og rekursion

Slides:



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

Funktioner Grundbegreber.
1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.
Ligninger af første grad i en variabel
Funktioners parametre Beviser
Udsagn (propositioner)
Anvendt Statistik Lektion 4
Illustration fra Kort om kræft figur 4.1.
Lidelse, sygdom og forbøn.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
2. gradspolynomier og parabler
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.
Sammenligning af to grupper
1 Går fra at vil maksimere dækning til at minimere omkostning Det kender vi fra den anden bog Omkostningen er afstanden gange antal enheder der skal transporteres.
Induktionsbevis AM INDUKTION – generalisering ud fra specialtilfælde Eks. I Fremskrivningsformlen ved en fast vækstrate r pr. trin. Startværdi =
Hubbles lov. To linier fra Calcium II følges Fig p599.
Anden information Bettina Dahl Søndergaard Lektor Hvad er svært ved beviser for gymnasieelever - og kan vi gøre noget ved det? Fredag den 18. marts 2011.
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.
Økonometri 1: Specifikation og dataproblemer1 Økonometri 1 Specifikation, og dataproblemer 4. november 2005.
1 Nordjyllands Erhvervakademi Lektion 6 Opsamling på opgaver Mere om rekursion: –Del&Hersk –Sortering –Kompleksitet (effektivitet – ”Store O”) Abstrakte.
Hubbles lov. To linier fra Calcium II følges Fig p599.
Østjysk rapport om udligning og tilskud Seminar om udligning den 26. April 2010 Job og Økonomidirektør Asbjørn Friis Jensen, Favrskov.
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.
Begreber og Redskaber 8. Plan for idag Sortering fortsat Comparable Søgning –Lineær søgning –Binær søgning.
Søgning & sortering Intro søgning Lineær søgning Binær søgning
Areal og bestemt integral
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.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
Dagsorden: 15:15-16:30 TULE gennemgang og dialog 16:30-16:45 Pause 16:45-18:00 Evaluering af opdeling af funktioner mellem matriklerne. 18:00-18:30 Pause.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
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.
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
Datastrukturer og Collections Rasmus D. Lehrmann DM
Statistik – Lektion 2 Uafhængighed Stokastiske Variable
FEN Prædikater/Seminar 11 Prædikatslogik eller Kvantificerede udtryk Prædikater udvider propositionslogikken på to måder: –Vi tillader variable.
1 Borgerpanelet i Silkeborg Kommune.
Løsning – mergeSort (Effektivitet af sortering) Definition af t(n): t(n)= 2t(n) + n.
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
1 Vi ser nu på en general graf Men antager at alle afstande er heltallige (Det er ikke så restriktivt) Algoritmen leder efter den mindst mulige dækningsdistance.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel 2.3, , problem 30.1.c] Gerth Stølting Brodal.
1 Algoritmik ved Keld Helsgaun. 2 Plan Algoritmebegrebet et simpelt eksempel Et eksempel på algoritmedesign.
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.
Grunde til at jeg elsker dig
Mængder: Begreber og notation
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
1 PC baseret dataanalyse og simulering Week2 A. 2 SAS input/output filer Inddata -textfil - SAS-program -textfil- SAS datasæt SAS system SAS listing -print.
1 Design, analyse og verifikation. 2 Algoritmebegrebet Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær.
Fundamentale datastrukturer
Statikstik II 2. Lektion Lidt sandsynlighedsregning
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
1 Design, analyse og verifikation. 2 Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær søgning Verifikation.
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.
10.mar. 15 Udvikling i løn, priser og konkurrenceevne Dansk Industri.
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.
Begreber og Redskaber 8. Plan for idag Sortering fortsat Comparable Søgning –Lineær søgning –Binær søgning.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal Aarhus Universitet.
Grundlæggende programmering Forår 2002
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2
Induktionsbevis AM 2010.
Grundlæggende Algoritmer og Datastrukturer
Præsentationens transcript:

Induktion og rekursion Induktionsbeviser anvendes til at bevise påstande, som involverer de naturlige tal Fx De består af to dele: Basis Induktionsskridtet FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Induktionsprincippet (det svage) Vi vil vise påstanden P(n) for alle n  N. Basis: Vise P(n0) for en eller anden startværdi n0 (ofte 0 eller 1) Induktionsskridt: Vise (n  n0  P(n))  P(n+1) Heraf konkluderes:  n  N (P(n)) Vise: n= 1 Antag n Vise: n+1 Konkluder: nN: P(n) FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Diskret matematik/Seminar 3 - induction Eksempel Teorem: For ethvert naturligt tal n går 3 op i n3 + 2n Bevis: Vise: P(n): 3 går op i n3 + 2n Basis: P(0): 3 går op i 03 + 20 = 0 Antagelse: P(n): 3 går op i n3 + 2n Skridt: Vise: (n>0  P(n)) P(n+1) P(n+1): 3 går op i (n+1)3 + 2(n+1) FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Ifølge antagelsen, så går 3 op i (n3 + 2n), Vi regner: (n+1)3 + 2(n+1) = (n+1)(n+1)2 + 2(n+1) = (n+1)(n2+2n+1) + 2(n+1) = n3 + 2n2 + n + n2 + 2n + 1 + 2n + 2 = n3 + 2n + 3n2 + n + 1 + 2n + 2 = (n3 + 2n) + 3n2 + 3n + 3 = (n3 + 2n) + 3(n2 + n + 1) Ifølge antagelsen, så går 3 op i (n3 + 2n), og det ses tydeligt at 3 går op i resten. QED Leder efter P(n): 3 går op i n3+2n Antagelsen siger, at 3 går op i n3+2n FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Diskret matematik/Seminar 3 - induction Øvelser: 1. KH 4.2 (Bemærk fejl i opgaven) Vis for alle reelle tal a  1 gælder: 2. Martin 3rd Ed. 2.9 FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Det stærke induktionsprincip I visse situationer har vi brug for at udvide induktionsprincippet, så vi antager, at påstanden P(n) er sand for alle værdier, k mindre end eller lig n og ikke bare for n, når vi vil vise P(n+1) Vi vil vise påstanden P(n) for alle n  N. Basis: Vise P(n0) for en eller anden startværdi n0 Induktionsskridt: Vise:  n  n0:( n0  k  n ( P(k)))  P(n+1) Heraf konkluderes:  n  N (P(n)) Vise: n= 1 Antag for alle kn Vise: n+1 Konkluder: nN: P(n) FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Svag og stærk induktion Vise: n= 1 Antag n Vise: n+1 Konkluder: nN: P(n) Vise: n= 1 Antag for alle kn Vise: n+1 Konkluder: nN: P(n) FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Fibonacci-ting (øv. 5.1) Der gælder bl.a. om Fibonacci-tal, at Bevis: fib(n)  (5/3)n for n  0 Bevis: Her bruger vi, at både fib(n) og fib(n-1) er sande FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Diskret matematik/Seminar 3 - induction Eksempel (Martin 1.24) Teorem: Ethvert n>1 er enten et primtal eller et produkt af to eller flere primtal Bevis: Basis: n = 2 er et primtal Antagelse: For alle n>1 og alle k: 2  k  n gælder sætningen Vise: n+1 er et primtal eller et produkt FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Diskret matematik/Seminar 3 - induction Martin ex. 1.24 Hvis n+1 er et primtal, så gælder sætningen trivielt, ellers eksisterer der positive heltal r og s, som hverken er 1 eller n+1, så n+1 = r * s og 2  r  n og 2  s  n. Af induktionshypotesen er r og s følgelig enten primtal eller produkter af to eller flere primtal. Derfor er deres produkt også et produkt af to eller flere primtal. Q.E.D. FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Rekursion og induktion Hanois tårne: Flyt(n, kilde, mål, hjælp){ if(n==1) flytEnSkive; else{ flyt(n-1, kilde, hjælp, mål); flyt(n-1, hjælp, mål, kilde); } Effektivitet? FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Diskret matematik/Seminar 3 - induction Effektivitet t(n) betegner køretiden for at flytte n skiver, og er givet ved rekurensligningen: t(1) = 1 t(n) = 2t(n-1) + 1 for n > 1 Vis ved induktion, at t(n) = 2n - 1 FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Diskret matematik/Seminar 3 - induction Vise: t(n) = 2n - 1 Bevis: induktion på n: Basis: t(1) = 1= 21 – 1= 1 Antagelse: Gælder for n: t(n) = 2n - 1 Vise: For n+1: t(n+1) = 2t(n) + 1 = 2(2n - 1) +1 = 2n+1 - 2 + 1 = 2n+1 - 1 QED Brug antagelsen FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Strukturel induktion: fx sprog defineret 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: a  Expr For alle x  Expr og alle y  Expr, så x+y  Expr og x*y  Expr For alle x  Expr, så (x)  Expr . (Martin bruger xy i stedet for x + y og xy i stedet for x*y) FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Strukturel induktion - fortsat Rekursiv definition: a  Expr For alle x  Expr og alle y  Expr, så x+y  Expr og x*y  Expr For alle x  Expr, så (x)  Expr . Hvis vi vil vise et eller andet udsagn om af formen P(x) er sand for alle x  Expr , så skal vi vise: P(a) er sand (Basis) For alle x, y  Expr hvis P(x) og P(y) er sande, så er P(x+y) P(x*y) sande. For alle x  Expr hvis P(x) er sand, så er P((x)) sand. FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Diskret matematik/Seminar 3 - induction Øvelse: 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: Vis ved induktion, at højden altid er mindre end eller lig med antal knuder T T lChild rChild FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Diskret matematik/Seminar 3 - induction Mergesort sort(sequence s, int f, int l, s’){ if(s.len>1){ int m = (f+l)/2; sort(s, f, m, s’1); sort(s, m+1, l, s’2); merge(s’1, s’2 , s’); } FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Diskret matematik/Seminar 3 - induction Øvelse: Effektivitet Effektiviteten af en rekursiv sorteringsalgoritme, fx mergesort, er bestemt ved følgende rekursive funktion (for nemheds skyld betragter vi kun værdier af n, som er 2-potenser, dvs. k(n = 2k)): t(n) = a for n  1 t(n) = t(n/2) + t(n/2) + n + b for n > 1 hvor a og b er konstanter. Sæt for nemheds skyld a og b lig 0 og beregn t(32). Beregn 32log2(32). FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Øvelse: Effektivitet af mergeSort løsning FEN 2013-01-30 Diskret matematik/Seminar 3 - induction

Diskret matematik/Seminar 3 - induction Øvelse Martin 1.45 Bemærk: Martin, ex. 1.23 er lidt underligt, se min version i stedet. vi springer Martin, ex. 1.27 over. FEN 2013-01-30 Diskret matematik/Seminar 3 - induction