Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Matematisk Induksjon. Matematisk induksjon Anvendelser - Bevisteknikk GPSContainer 1 2 3 4 5 6 7 Matematisk formel Områder med fargelegging Algoritme-analyse.

Liknende presentasjoner


Presentasjon om: "Matematisk Induksjon. Matematisk induksjon Anvendelser - Bevisteknikk GPSContainer 1 2 3 4 5 6 7 Matematisk formel Områder med fargelegging Algoritme-analyse."— Utskrift av presentasjonen:

1 Matematisk Induksjon

2 Matematisk induksjon Anvendelser - Bevisteknikk GPSContainer Matematisk formel Områder med fargelegging Algoritme-analyse

3 Matematisk induksjon Innledning Matematisk induksjon er en svært kraftfull bevis-teknikk. Denne bevis-teknikken benyttes ikke kun innen matematikk, men også bl.a. innen egenskapsstudier av ulike datastrukturer, algoritmeutforming og effektivitetsberegninger.

4 Matematisk induksjon Teori T et utsagn som vi ønsker å bevise T inkluderer et naturlig tall n, og vi ønsker å bevise at T(n) er sann for alle n. I stedet for å bevise direkte at T er sann for alle n, utføres følgende: 1. Vis at T(1) er sann. 2. Anta at T(k) er sann for en vilkårlig k  Vis at hvis T(k) er sann, så må også T(k+1) være sann. Konklusjonen er at da må T(n) være sann for alle n.

5 Matematisk induksjon Illustrasjon T(1) er sann Anta at T(k) er sann Hvis T(k) er sann, så er også T(k+1) sann 1 kk+1 k Brikke nr 1 faller Anta at brikke nr k faller Brikke nr k+1 faller

6 Matematisk induksjon Teori - Ulike variasjoner Hvis et utsagn T med parameter n, er sann for n = 1, og hvis, for hver k  1, så vil sannheten av T for k medføre sannhet av T for k+1, så vil T være sann for alle naturlige tall. Hvis et utsagn T med parameter n, er sann for n = 1, og hvis, for hver k  1, så vil sannheten av T for alle naturlige tall  k medføre sannhet av T for k+1, så vil T være sann for alle naturlige tall. Hvis et utsagn T med parameter n, er sann for n = 1 og n = 2, og hvis, for hver k  2, så vil sannheten av T for k medføre sannhet av T for k+2, så vil T være sann for alle naturlige tall. Hvis et utsagn T med parameter n, er sann for n = 1, og hvis, for hver k  1, med k en heltallspotens av 2, så vil sannheten av T for k medføre sannhet av T for 2k, så vil T være sann for alle naturlige tall som er heltallspotens av 2.

7 Eksempel 1 Sum av de n første naturlige tall - Hypotese Når vi beregner summen av de 1, 2, 3, 4 og 5 første naturlige tall, får vi som svar henholdsvis 1, 3, 6, 10 og 15. Vi oppdager at hver av disse summene kan skrives som ½ multiplisert med (1 + siste ledd) multiplisert med antall ledd. Derfor er det nærliggende å anta hypotesen vist i nederste linje, men merk at vi her ikke har gjennomført noe bevis. Ellers kan nevnes at summen av de n første ledd i en aritmetisk rekke kan benyttes (her med a 1 = 1 og a n = n).

8 Eksempel 1 Sum av de n første naturlige tall - Induksjonsbevis Bevis: Oppsummering: 1. Vi har vist at T(1) er sann. 2. Deretter har vi antatt at T(k) er sann. 3. Til slutt har vi vist at hvis T(k) er sann, så må også T(k+1) være sann. Konklusjonen er at da må T(n) være sann for alle naturlige tall n. T(n): Summen av de n første naturlige tall er gitt ved:

9 Eksempel 2 Sum … + (2 + 4n) - Hypotese Siden hvert ledd i rekken s er 2 pluss 4 ganger tilsvarende ledd i rekken s 1, er det nærliggende å anta at rekken s har summen: Vi skal beregne følgende sum: Fra eksempel 1 har vi følgende: Vi får derfor følgende hypotese:

10 Eksempel 2 Sum … + (2 + 4n) - Induksjonsbevis Bevis: Oppsummering: 1. Vi har vist at T(1) er sann. 2. Deretter har vi antatt at T(k) er sann. 3. Til slutt har vi vist at hvis T(k) er sann, så må også T(k+1) være sann. Konklusjonen er at da må T(n) være sann for alle naturlige tall n. T(n):

11 Eksempel 3 Sum av de n første oddetall - Hypotese Når vi beregner summen av de 1, 2, 3, 4 og 5 første oddetall tall, får vi som svar henholdsvis 1, 4, 9, 16, 25 og 36 som kan skrives som 1 2, 2 2, 3 2, 4 2, 5 2 og 6 2. Derfor er det nærliggende å anta hypotesen vist i nederste linje, nemlig at summen av de n første oddetall er lik n 2, men merk at vi her ikke har gjennomført noe bevis. Merk at vi i den nest siste linje har skrevet tallet 11 som 2*6-1, dette for at vi lettere i vår hypoteseformel skal gjenkjenne oddetall nr n som 2*n-1.

12 Eksempel 3 Sum av de n første oddetall - Induksjonsbevis Bevis: Oppsummering: 1. Vi har vist at T(1) er sann. 2. Deretter har vi antatt at T(k) er sann. 3. Til slutt har vi vist at hvis T(k) er sann, så må også T(k+1) være sann. Konklusjonen er at da må T(n) være sann for alle naturlige tall n. T(n): Summen av de n første oddetall er gitt ved:

13 Eksempel 4 Ulikhet 1 - Induksjonsbevis T(n): Bevis: Oppsummering: 1. Vi har vist at T(1) er sann. 2. Deretter har vi antatt at T(k) er sann. 3. Til slutt har vi vist at hvis T(k) er sann, så må også T(k+1) være sann. Konklusjonen er at da må T(n) være sann for alle naturlige tall n.

14 Eksempel 5 Ulikhet 2 - Induksjonsbevis T(n): Bevis: Oppsummering: 1. Vi har vist at T(1) er sann. 2. Deretter har vi antatt at T(k) er sann. 3. Til slutt har vi vist at hvis T(k) er sann, så må også T(k+1) være sann. Konklusjonen er at da må T(n) være sann for alle naturlige tall n.

15 Eksempel 6 Sum av hver rad i ’odde-trekant’ - Hypotese Hypotese: 1 = 1 = = 8 = = 27 = = 64 = = 125 = 5 3 ….. Sum av elementene i rad nr n er lik n 3

16 Eksempel 6 Sum av hver rad i ’odde-trekant’ - Hypotese 1 = 1 = = 8 = = 27 = = 64 = = 125 = 5 3 ….. Tilstrekkelig å vise at differensen mellom sum av rad nr n+1 og rad nr n er lik (n+1) 3 – n 3 siden summen n 3 stemmer for n=1 (og n=2,3,4,5). La første element i rad nr n være t. Siden vi i trekanten har påfølgende oddetall og rad nr n inneholder n elementer, vil første element i rad nr n+1 være: t+2n. Differensen mellom første ledd i rad nr n+1 og første ledd i rad nr n er da: (t+2n) – t = 2n. Den samme differensen mellom andre ledd i rad nr n+1 og andre ledd i rad nr n er tilsvarende 2n, og det samme gjentar seg for alle n par av ledd i de to radene. I tillegg kommer siste ledd i rad nr n+1 (dette leddet matcher ikke noen ledd i rad nr n). La u være siste ledd i rad nr n+1. Differansen mellom sum av rad nr n+1 og rad nr n er derfor gitt ved: n*2n + u = u + 2n 2. Det er derfor tilstrekkelig å vise at siste ledd u i rad nr n+1 er gitt ved: u + 2n 2 = (n+1) 3 - n 3 dvs u = n 2 + 3n + 1 eller siste ledd v i rad nr n er gitt ved: v = (n-1) 2 + 3(n-1) + 1

17 Eksempel 6 Sum av hver rad i ’odde-trekant’ - Hypotese 1 = 1 = = 8 = = 27 = = 64 = = 125 = 5 3 ….. Hypotese: Siste ledd v i rad nr n er gitt ved T(n)v(n) = (n-1) 2 + 3(n-1) T(1) er sann siden v(1) = (1-1) 2 + 3*(1-1) + 1 = 1 2. Anta at T(k) er sann for k  1, dvs siste ledd i rad nr k er gitt ved: v(k) = (k-1) 2 + 3(k-1) Skal vise at siste ledd i rad nr k+1 er gitt ved: v(k+1) = ((k+1)-1) 2 + 3((k+1)-1) + 1 = k 2 +3k + 1 Fra forrige side har vi at differensen mellom parvise ledd i henholdvis rad nr k+1 og rad nr k er gitt ved: 2k. Siste ledd i rad nr k+1 vil derfor være 2k + 2 større enn siste ledd i rad nr k. Herav får vi at siste ledd v(k+1) i rad nr k+1 er gitt ved: v(k+1) = v(k) + [2k + 2] = [(k-1) 2 + 3(k-1) + 1] + [2k + 2] = k 2 - 2k k – k + 2 = k 2 + 3k + 1

18 Eksempel 7a Økning av antall områder i planet - Hypotese En mengde av linjer i planet sies å være i generell posisjon hvis ingen par av linjer er parallelle og ingen sett av tre linjer skjærer hverandre i et felles punkt. Vi ønsker å bestemme antall områder i planet dannet av n linjer i generell posisjon. n=1 linje: 2 områdern=2 linjer: 4 områder n=3 linjer: 7 områder For 1  i  3 ser vi at linje nr i øker antall områder med i. 1 n=0 linje: 1 område Hypotese: Addering av en ny linje til n-1 linjer i generell posisjon øker antall områder med n.

19 Eksempel 7a Økning av antall områder i planet - Induksjonsbevis 1. T(1) er sann, siden ingen linjer gir ett område og en linje gir 2 områder, dvs linje nr 1 øker antall områder med 1 (fra 1 til 2). 2. La oss anta at T(k) er sann, dvs addering av en ny linje (linje nr k) til k-1 eksisterende linjer i generell posisjon øker antall områder med k. 3. Vi skal vise at da må T(k+1) være sann, dvs addering av en ny linje (linje nr k+1) til k eksisterende linjer i generell posisjon øker antall områder med k+1. Siden alle linjene er i generell posisjon, kan ikke en linje kun berøre et område i en kant, en linje kan kun enten dele et område i to deler (hvilket medfører at antall områder øker med 1) eller være disjunkt med området. Derfor er det tilstrekkelig å vise at linje nr k+1 går gjennom nøyaktig k+1 områder. linje nr k +1 T(n):Addering av en ny linje til n-1 linjer i generell posisjon i planet øker antall områder med n. R n=0 linjen=1 linje 1 1 2

20 Eksempel 7a Økning av antall områder i planet - Induksjonsbevis La oss nå fjerne linje nr k. I følge induksjonshypotesen (pkt 2), vil nå linje nr k+1 (siden vi med linje nr k+1 nå har k linjer) øke antall områder med k. Derfor er det nå tilstrekkelig å vise at tilstedeværelsen av linje nr k, medfører at linje nr k+1 øker antall områder med 1 i forhold til økningen pga linje nr k+1 når linje nr k ikke er tilstede. Linje nr k og linje nr k+1 skjærer hverandre i et punkt p som må være innenfor et område R. Begge linjene skjærer derfor R. Hver av disse to linjene deler R i to deler, men til sammen deler de R i fire deler. Derfor vil tilstedeværelsen av linje nr k medføre at linje nr k+1 øker antall områder i R med 2 i stedet for 1, dvs en differens på 1. Siden linje nr k og linje nr k +1 kan skjære hverandre kun en gang (her i R), så følger at linje nr k+1 øker antall områder med k + 1. k +1 T(n):Addering av en ny linje til n-1 eksisterende linjer i generell posisjon i planet øker antall områder med n. k k +1 k Økning 1 Økning 2 R

21 Eksempel 7b Antall områder i planet - Induksjonsbevis T(n):Antall områder i planet dannet av n linjer i generell posisjon er gitt ved: Bevis: n=1 linje: 2 områdern=2 linjer: 4 områder n=3 linjer: 7 områder n=0 linje: 1 område Ingen linje gir ett område. Linje nr n medfører en område-økning lik n (første del av eks 7). Videre benyttes (se eks 1) at summen de n første naturlige tall er gitt ved: Herav får vi: n=01 n=11+1 n= n= n=

22 Eksempel 8 Fargelegging - Hypotese Vi har n distinkte linjer i planet (trenger ikke være linjer i generell posisjon). To ulike områder sies å være naboer hvis de har en kant felles. Områdene kalles fargelagt hvis ingen naboer har samme farge. På figuren nedenfor vises områder dannet av henholdsvis 0, 1, 2 og 3 linjer. Områdene er fargelagt med to farger (1 og 2). n=1 linjen=2 linjer n=3 linjer n=0 linje Hypotese:Det er mulig å fargelegge områder dannet av et vilkårlig antall linjer med kun to farger.

23 Eksempel 8 Fargelegging - Induksjonsbevis T(n):Vi har n linjer i planet. Det er mulig, vha kun to farger, å fargelegge områdene dannet av disse linjene. Bevis: T(1) er sann siden vi har to områder og to farger fargelegger disse. 2. Anta at T(k) er sann, dvs alle områder med antall linjer  k kan fargelegges. 3. Vi skal vise at da er T(k+1) sann, dvs alle områder med antall linjer ≤ k+1 kan fargelegges. Strategi: Alle områder på den ene siden av linje nr k+1 beholder farge, alle områder på den andre siden av linje nr k+1 endrer farge. Gyldig fargelegging fordi: Betrakt to nabo-områder P og Q. Hvis de ligger på samme side av linje nr k+1, så hadde de opprinnelig ulik farge, og vil også ha ulik farge etterpå (mulig switching), hvis ikke hadde de opprinnelig samme farge, og vil nå få ulik farge siden en av dem må bytte farge k Områder ’over’ linje nr k+1 beholder farge, områder ’under’ skifter farge.

24 Eksempel 9 Algoritmestudier – Loop invariant – Totallsystemet 16-tallsystemet(hexadesimalt): =D* F*16 0 =DF tallsystemet(desimalt): = 2* * *10 0 = tallsystemet (oktalt): =3* * *8 0 = tallsystemet(binært): =1* * * * * * * *2 0 = n2DIVMOD 239:2= :2=591 59:2=291 29:2=141 14:2=70 7:2=31 3:2=11 1:2= b= Decimal_to_Binary (t) s:=t k:=0 WHILE s > 0 DO b[k]:= s MOD 2 s := s DIV 2 k := k + 1 ENDWHILE RETURN b DIV:Heltallsdivisjon MOD:Divisjonsrest Den binære representasjonen av det desimale tallet t returneres i arrayen b i rutinen Decimal_toBinary, dvs b[0..n] representerer de n+1minst signifikante bit. Hypotese:

25 Eksempel 9 Algoritmestudier – Loop invariant – Totallsystemet - Induksjonsbevis Decimal_to_Binary (t) s:=t k:=0 WHILE s> 0 DO b[k]:= s MOD 2 s := s DIV 2 k := k + 1 ENDWHILE RETURN b DIV:Heltallsdivisjon DIV k :Heltallsdivisjon k ganger MOD:Divisjonsrest T(n): Den binære representasjonen av det desimale tallet t returneres i arrayen b i rutinen Decimal_toBinary, dvs b[0..n] representerer de n+1minst signifikante bit.

26 Eksempel 10 Algoritmestudier – Maks sammenhengende delsekvens Problem Problem: Gitt en sekvens x 1, x 2, …, x n av reelle tall. Finn maksimal sum av sammenhengende delsekvenser. Eks: Gitt sekvensen S = (2, -3, 1.5, -1, 3, -2, -3, 1) Den sammenhengende delsekvensen som gir maksimal sum er S M = (1.5, -1, 3) og summen er 3.5. S M kalles for maksimal sammenhengende delsekvens. S = (2, -3, 1.5, -1, 3, -2, -3, 1)S M = (1.5, -1, 3)

27 Eksempel 10 Algoritmestudier – Maks sammenhengende delsekvens Hypotese T(n): Gitt en sekvens x 1, x 2, …, x n av reelle tall. Vi vet hvordan vi skal finne: Maksimal sammenhengende delsekvens S M og maksimal sum av sammenhengende delsekvenser. T(1) er sann. S = (x 1 ) Hvis x 1 er positiv, lar vi den sammenhengende delsekvensen være S M = (x 1 ) med sum x 1, hvis ikke lar vi delsekvensen være den tomme sekvens med sum = 0. T(k):Vi antar at vi vet hvordan vi skal finne maksimal sammenhengende delsekvens S M for sekvenser av lengde  k. T(k+1):Vi skal vise at vi kan bestemme hvordan vi kan finne maksimal sammenhengende delsekvens S M for sekvenser av lengde  k+1.

28 Eksempel 10 Algoritmestudier – Maks sammenhengende delsekvens Induksjonsbevis T(k+1): Gitt sekvensen S = (x 1, x 2, …, x k+1 ). Iflg induksjonshypotesen T(k) vet vi hvordan vi skal finne maksimal delsekvens i sekvensen S’ = (x 1, x 2, …, x k ). Hvis S’ M er tom, så er alle elementene i S’ negative, og vi trenger kun å studere x k+1. Anta nå at S’ M = (x i, x i+1, …, x j ) 1  i  j  k Hvis j = k (dvs S’ M er en endesekvens), så er det enkelt å finne S M : Hvis x k+1 er positiv, så utvides S’ M til S M, hvis ikke så settes S M = S’ M, Hvis j < k (dvs S’ M er ikke en endesekvens), finnes to muligheter: - S’ M forblir maksimal sammenhengende delsekvens - Det finnes etter utvidelse med x k+1 en annen maksimal delsekvens som ikke er maksimal i S’. Nøkkelen til det siste problemet er å styrke induksjonshypotesen,

29 Eksempel 10 Algoritmestudier – Maks sammenhengende delsekvens Styrket induksjonshypotese Styrket induksjonshypotese: T(k):Gitt sekvensen S’ = (x 1, x 2, …, x k ). Vi vet vi hvordan vi skal finne maksimal delsekvens og hvordan vi skal finne maksimal endesekvens i sekvensen S’ = (x 1, x 2, …, x k ). Algoritmen blir enkel hvis vi kjenner begge delsekvenser. T(k+1):Vi adderer x k+1 til den maksimale endesekvensen. Hvis summen er større enn gjeldende globale maksimum, så har vi en ny maksimal delsekvens og også en ny maksimal endesekvens, hvis ikke beholder vi den forrige maksimale delsekvensen og setter maksimal endesekvens lik den tomme mengde (med sum 0) hvis maksimal endesekvens med addering av x k+1 er negativ.

30 Eksempel 10 Algoritmestudier – Maks sammenhengende delsekvens Algoritme Max_Consecutive_Subsequence (s,n) globalMax := 0 suffixMax := 0 FOR (i := 1 TO n) DO IF (suffixMax + s[i] > globalMax) THEN suffixMax := suffixMax + s[i] globalMax := suffixMax ELSE IF (suffixMax + s[i] > 0) THEN suffixMax := suffixMax + s[i] ELSE suffixMax := 0 ENDIF ENDFOR

31 Eksempel 11 Algoritmestudier – Container - Problem Vi skal pakke en container og ønsker maksimal plass-utnyttelse

32 Eksempel 11 Algoritmestudier – Container - 1-dim - Problem Vi begrenser oss til et en-dimensjonalt problem. Alle objektene har samme grunnflate. Vi ønsker å studere hvorvidt vi kan utnytte container-plassen eksakt. Container H hihi i Gitt et heltall H og n objekter av varierende størrelse med størrelse av objekt nr i lik h i. Finn en delmengde av objekter slik at sumstørrelsen er lik H eller at ingen slik delmengde finnes.

33 Eksempel 11 Algoritmestudier – Container - 1-dim - Induksjon P(i,h):Problem med de første i objekter og totalstørrelse h T(n):Vi vet hvordan vi løser P(n,H) T(1):Sann siden P(1,H) er opplagt. P(1,H) er sann hvis h 1 = H, usann ellers. T(k):Vi antar at vi vet hvordan vi løser P(k,H). T(k+1):Vi skal vise at vi kan løse P(k+1,H). Hvis vi har en løsning av P(k,H), så er løsningen av P(k+1,H) opplagt: Vi lar være å benytte objekt nr k+1. Hvis vi foreløpig ikke har en løsning av P(k,H), så må følgende to problemer løses: P(k,H) og P(k,H-h k+1 ). T(n):Vi vet hvordan vi skal løse P(n,h) for alle 0  h  H Styrket hypotese

34 Eksempel 11 Algoritmestudier – Container - 1-dim - Styrket induksjon Eks T(n):Vi vet hvordan vi skal løse P(n,h) for alle 0  h  H 0:En løsning uten gjeldende objekt er funnet 1:En løsning med gjeldende objekt er funnet -:Ingen foreløpig løsning er funnet :- i siste linje indikerer at ingen løsning for gitt h er funnet h h 1 = h 2 = h 3 = h 4 =

35 Eksempel 11 Algoritmestudier – Container - Algoritme Container (S,n,K) P[0,0].exist := true FOR (k := 1 TO K) DO P[0,k].exist := false ENDFOR FOR (i := 1 TO n) DO FOR (k := 0 TO K) DO P[i,k].exist := false IF (P[i-1,k].exist) THEN P[i,k].exist := true P[i,k].belong := false ELSE IF (k-S[i] >= 0) THEN IF (P[i-1,k-S[i]].exist THEN P[i,k].exist := true P[i,k].belong:= true ENDIF ENDFOR RETURN P P[i,k].existtrue hvis det finnes en løsning med de første i objekter og total-størrelse k P[i,k].belongtrue hvis objekt nr i tilhører denne løsningen

36 Eksempel 12 Algoritmestudier – GPS - Problem Finn korteste reiserute fra A til B

37 Eksempel 12 Algoritmestudier – GPS - Induksjon - Hypotese T(n):Gitt en n x n vektmatrise med alle eventuelle direkteforbindelser mellom ulike steder. Vi vet hvordan vi skal finne: Korteste vei mellom to vilkårlige steder A og B. T(2) er sann (to steder). Hvis det finnes en direkteforbindelse mellom de to stedene A og B, så er korteste vei mellom disse to stedene lik denne direkteforbindelsen, hvis ikke er korteste vei uendelig. T(k):Vi antar at vi vet hvordan vi skal finne korteste vei mellom to steder med antall steder  k. T(k+1):Vi skal vise at vi kan bestemme korteste vei mellom hvordan vi kan finne korteste vei mellom to steder med antall steder  k+1. BAxBAx

38 Eksempel 12 Algoritmestudier – GPS - Induksjon - Induksjonsbevis T(k):Vi antar at vi vet hvordan vi skal finne korteste vei mellom to steder A og B med antall steder  k. k steder Sted nr k+1 T(k+1):Vi skal vise at vi kan bestemme korteste vei mellom to steder A og B med antall steder  k+1. Siden vi antar (T(k)) at vi vet hvordan vi skal finne korteste vei mellom to steder A og B for antall steder  k, så er det tilstrekkelig å undersøke for hvert par av punkter hvorvidt veien blir kortere ved å tillate å gå innom sted nr k+1. new := k + 1 FOR (i := 1 TO new) DO FOR (j := 1 TO new ) DO Q[i,j] := min(Q[i,j],Q[i,new] + Q[new,j] ENDFOR RETURN Q QKorteste vei-matrise for k steder new = k + 1Sted nr k+1

39 Eksempel 12 Algoritmestudier – GPS - Algoritme Shortest_Path (W,Q,n) Q = W FOR (k := 1 TO n) DO FOR (i := 1 TO n) DO FOR (j := 1 TO n ) DO Q[i,j] := min(Q[i,j],Q[i,k] + Q[k,j] ENDFOR RETURN Q

40 Kommentar Ingen tror på en hypotese unntatt opphavspersonen, mens alle tror på et eksperiment unntatt eksperimentatoren. Anon Det opplagte er alltid fienden til det korrekte. Bertrand Russell ( )

41 ENDEND


Laste ned ppt "Matematisk Induksjon. Matematisk induksjon Anvendelser - Bevisteknikk GPSContainer 1 2 3 4 5 6 7 Matematisk formel Områder med fargelegging Algoritme-analyse."

Liknende presentasjoner


Annonser fra Google