Reursjon og indusjon MAT1030 Disret matemati Forelesning 15: Indusjon og reursjon, reurenslininger Dag Normann Matematis Institutt, Universitetet i Oslo 3 mars 008 Onsdag ga vi endel esempler på reursive definisjoner og vi forlarte hva vi mener med indusjonsbevis Vi ommer til å fortsette i dag med å gi esempler på begge deler er et effetivt matematis viremiddel Våre esempler vil ofte gå ut på å vise at en formel for det generelle leddet i en følge som vi har definert ved reursjon er ritig I flere esempler vil den naturlige gangen være Problem reursjon formel indusjonsbevis MAT1030 Disret matemati 3 mars 008 Esempel Definer f (1 = 1 f (n + 1 = 3f (n + 1 for alle n N Da er f (1 = 1, f ( = 3 1 + 1 = 4, f (3 = 3 4 + 1 = 13 og f (4 = 3 13 + 1 = 40 Vi an fortsette å regne ut f (5, f (6, f (7 osv ettersom f er definert ved reursjon Definer g(1 = 1 g(n + 1 = g(n + 3 n Da er g(1 = 1, g( = 1 + 3 = 4, g( = 4 + 3 = 13 og g(4 = 13 + 3 3 = 40 Vi an fortsette å regne ut g(5, g(6 osv, og vil finne ut at så langt vi an se vil f (n = g(n MAT1030 Disret matemati 3 mars 008 3 MAT1030 Disret matemati 3 mars 008 4
Det er da naturlig å gjette på at f (n = g(n for alle n For å vise det, an vi prøve å vise at de to reursive definisjonene er de samme, men vi ser jo at reursjonssrittet i de to definisjonene ie liner på hverandre Vi ser at g(n er summen i en endelig geometris ree En sli ree har en jent sum g(n = 1 + 3 + 3 + + 3 n 1 g(n = 3n 1 3 1 = 3n 1 Siden vi siert ie huser hvordan vi om frem til denne formelen, og siden vi innfører indusjonsbevis i disse forelesningene, viser vi formelen ved indusjon: Setter vi n = 1 inn i formelen, får vi 3 n 1 = 3 1 = 1 = g(1 så formelen stemmer for n = 1 Anta at formelen stemmer for et tall n, det vil si at g(n = 3n 1 MAT1030 Disret matemati 3 mars 008 5 MAT1030 Disret matemati 3 mars 008 6 Da er g(n + 1 = g(n + 3 n = 3n 1 = 3n 1 + 3 n = 3 3n 1 som viser at formelen også holder for g(n + 1 + 3 n = 3n+1 1 Hvis P(n er utsagnet har vi vist P(1 for seg 1 P(1 P( P( P(3 3 P(3 P(4 g(n = 3n 1 under ett som spesialtilfeller av P(n P(n + 1 MAT1030 Disret matemati 3 mars 008 7 MAT1030 Disret matemati 3 mars 008 8
Da er esempelvis P(17 en tautologis onsevens av alt det vi har bevist Prinsippet ba indusjonsbevis er at vi da vet med sierhet at P(n holder for alle n La nå Q(n være påstanden f (n = 3n 1 Vi sal se at vi også an vise nq(n ved indusjon Det vil følge at f og g er de samme funsjonene, eller de samme følgene hvis man ønser å se på det på den måten MAT1030 Disret matemati 3 mars 008 9 MAT1030 Disret matemati 3 mars 008 10 Indusjonstarten er grei, siden f (1 = 1 = g(1 og vi vet at formelen holder for g Anta så at Da er f (n = 3n 1 f (n + 1 = 3 f (n + 1 = 3 3n 1 = 3n+1 3 + = 3n+1 1 + 1 Dette viser indusjonsrittet, hvis Q(n holder, så vil Q(n + 1 holde Konlusjonen er at f (n = g(n = 3n 1 for alle n I læreboa presenteres et lassis esempel på bru av indusjon: n i = i=1 n(n + 1 Dette en formel man finner igjen i direte eller besletet form i mange vitige sammenhenger Esempelvis er det antallet oppgjør i en enel serie med n lag Vi sal se på noen andre, delvis besletede esempler: MAT1030 Disret matemati 3 mars 008 11 MAT1030 Disret matemati 3 mars 008 1
Esempel La f (n være summen av de første n oddetallene, det vil si at f (n = Da er f (n = n, Vi sal gi et indusjonsbevis n (i 1 i=1 For å vise starten på indusjonen regner vi ut f (1 = 1 (i 1 = 1 = 1 i=1 Deretter må vi gjennomføre indusjonsrittet: Anta at f (n = n for en n Da er f (n + 1 = f (n + n + 1 = n + n + 1 = (n + 1 Ettersom vi nå har vist både indusjonstarten og indusjonsrittet, følger påstanden ved indusjon MAT1030 Disret matemati 3 mars 008 13 MAT1030 Disret matemati 3 mars 008 14 Esempel Hvis vi treer en rett linje gjennom planet, deler vi planet i to Hvis vi treer en ny linje gjennom planet, deler disse to linjene planet i fire deler Hvis vi prøver oss med tre linjer, greier vi ie å dele planet i mer enn syv deler, og bruer vi fire linjer greier vi masimalt å dele planet i 11 deler Kan vi finne en formel for hvor mange felter vi masimalt an dele planet i ved hjelp av n linjer? La F (n være antall felter vi an dele planet opp i ved å brue n rette linjer Da er F (1 = Selv om vi ie jenner F (n an vi uttrye F (n + 1 ved hjelp av F (n: La l 1,, l n, l n+1 være n + 1 rette linjer sli at l 1,, l n deler planet opp i F (n forsjellige felter Den siste linjen l n+1 sjærer hver av de andre linjene høyst en gang, så vi får masimalt n nye sjæringspunter MAT1030 Disret matemati 3 mars 008 15 MAT1030 Disret matemati 3 mars 008 16
Sjæringspuntene deler l n+1 opp i høyst n + 1 linjestyer, og hvert av disse linjestyene deler et av de gamle feltene i to Det betyr at vi får masimalt n + 1 nye felter Da er F (n + 1 = F (n + n + 1 Den neste jobben blir å finne en formel for F (n og så vise den ved indusjon Denne typen formler finner man ofte gjennom prøving og feiling basert på erfaring Vi påstår at F (n = 1 + n(n+1 og vil vise det ved indusjon: Indusjonen starter med n = 1: 1 + 1(1+1 = 1 + 1 = = F (1 La oss så gjennomføre indusjonsrittet: Anta at F (n = 1 + n(n + 1 MAT1030 Disret matemati 3 mars 008 17 MAT1030 Disret matemati 3 mars 008 18 Da er F (n + 1 = F (n + n + 1 = 1 + n(n + 1 + (n + 1 n(n + 1 + (n + 1 (n + (n + 1 = 1 + = 1 + Sal vi være pedantise an vi srive dette om til 1 + (n + 1((n + 1 + 1 Indusjonsrittet er gjennomført, så påstanden er bevist Oppgave Vi vet at vi an dele planet opp i to felter ved hjelp av en sirel Vi vet at to sirler an sjære hverandre i to punter Vi vet at n punter vil dele en sirel opp i n buestyer Bru dette til å definere funsjonen G(n ved reursjon, hvor G(n er antall områder vi an dele planet opp i ved hjelp av n sirler Foreslå en formel for G(n og se om du an vise den ved indusjon Hvorfor forteller svaret på denne oppgaven oss at Venn-diagrammer er uegnet til å studere Boolse ombinasjoner av mange mengder? MAT1030 Disret matemati 3 mars 008 19 MAT1030 Disret matemati 3 mars 008 0
Esempel Enelte regneoperasjoner tar lengere tid jo større input er Det an være av interesse å finne ut hvor mange regnesritt en oppgave rever, avhengig av hvor stort input er Esempelvis an vi prøve å finne ut av hvor mange operasjoner som reves for å utføre sorteringsalgoritmer i Verste tilfelle I gjennomsnitt Vanligvis greier man seg med omtrentlige verdier, men ved behov an man brue reursjon og indusjon til å finne nøyatige svar Vi an sortere elementene i en liste ved systematis å bytte om på naboer som ligger i gal reefølge La S(n være det masimale antall slie bytter vi må foreta oss for å sortere en liste Vi ser at S(1 = 0 Hvis listen ommer i fullstendig gal reefølge, må alle objetene i listen bytte plass med alle andre MAT1030 Disret matemati 3 mars 008 1 MAT1030 Disret matemati 3 mars 008 Antall bytter som da trenges for å sortere n + 1 objeter er S(n + 1 = n + S(n, ettersom vi an risiere at vi må flytte siste objet i listen til førsteplass (n bytter og deretter sortere resten av listen (S(n bytter Vi ser ved indusjon at S(n = (n 1n Beviset følger ved samme type utregning i indusjonssrittet som for forrige esempel, og vi tar det på tavlen (eller som øvelse for de som leser/repeterer denne testen Mer Det forrige esemplet er ie helt realistis, enhver sorteringsalgoritme vil innebære at man foretar en ree sammenlininger og sifte av plasser Hvis vi sal analysere hvor tidrevende en algoritme an være, må vi vite hvor mange regnesritt som reves, og hvor lang tid hvert enelt sritt tar an inngå som en del av beviset for at en regneprosess an utføres rast, eventuelt for at den tar for lang tid MAT1030 Disret matemati 3 mars 008 3 MAT1030 Disret matemati 3 mars 008 4
Esempel Vi minner om definisjonen av binomialoeffisienten ( n n! =!(n! Formelen ( n + 1 = an bereftes ved enel regning ( n 1 ( n + Den enle regningen ble gjennomført på tavlen På solen lærer man at ( n uttryer på hvor mange måter man an velge ut objeter fra en mengde med n objeter på, når n Det er ie alltid så lett å få med seg begrunnelsen for dette Et alternativ an være å brue indusjon MAT1030 Disret matemati 3 mars 008 5 MAT1030 Disret matemati 3 mars 008 6 Vi starter med tilfellet n = 1 Da er = 1, og det finnes bare en måte å velge ut ett element fra en mengde på ett element Binomialoeffisienten er i dette tilfellet 1, så påstanden holder Indusjonstarten er i bos Anta så at formelen holder for n og at vi sal finne ut av på hvor mange måter vi an plue elementer ut av en mengde {a 1,, a n+1 } på Hvis = n + 1, finnes det nøyatig en måte, og ( n + 1 1 = n + 1 MAT1030 Disret matemati 3 mars 008 7 MAT1030 Disret matemati 3 mars 008 8
Hvis < n + 1, ser vi på to tilfeller: 1 a n+1 er med i den mengden vi pluer ut a n+1 er ie med i den mengden vi pluer ut I det første tilfellet må vi plue ut 1 elementer fra {a 1,, a n }, og det an vi gjøre på ( n 1 måter I det andre tilfellet må vi plue ut elementer fra og det an vi gjøre på måter {a 1,, a n }, ( n Summen er da ( n + 1 som angir det totale antall måter vi an plue ut elementer fra en mengde med n elementer på MAT1030 Disret matemati 3 mars 008 9 MAT1030 Disret matemati 3 mars 008 30 ( n Indusjonsrittet sier at hvis binomialoeffisientene forteller oss, for alle n, hvor mange forsjellige delmengder med elementer det ( finnes av en mengde med n elementer, så vil n + 1 oeffisientene fortelle oss det samme for mengder med n + 1 elementer Vi an mere oss at for å vise indusjonsrittet for en trenger vi indusjonsantagelsen både for og for 1 Både reursjon og indusjon er mere generelle fenomener enn det vi har gitt inntry av her Dette sal vi omme tilbae til, både ved å se på reurrenslininger og på reursjon og indusjon over andre matematise struturer enn N eller N 0 Først sal vi imidlertid se på en logiers forlaring på sammenhengen mellom indusjon og reursjon: Anta at vi i utgangspuntet ie har lært om indusjonsbevis Anta videre at P( er et prediat og at vi har bevis for 1 Indusjonstarten P(1 Indusjonsrittet P( P( + 1 hvor er en variabel MAT1030 Disret matemati 3 mars 008 31 MAT1030 Disret matemati 3 mars 008 3
Reurrens Ved reursjon an vi da onstruere et bevis B(n for P(n for enhver n ved 1 La B(1 være beviset vi har for P(1 La B(n + 1 være bygget opp av B(n, beviset vi får for P(n P(n + 1 ved å sette inn n for i beviset for indusjonsrittet, og bru av den utsagnslogise regelen om at fra A og A B an vi slutte B Når vi vet at vi an onstruere eneltbevis for hver P(n, an vi rasjonalisere virsomheten vår og alle dette et bevis for np(n Det i enhver sammenheng mest brute esemplet på reurrens er definisjonen av Fibonacci-tallene: F (1 = 1 F ( = 1 F (n + = F (n + 1 + F (n for alle n N Vi ser at denne tallfølgen også er fullstendig bestemt, selv om definisjonen ie helt følger formatet til definisjoner ved reursjon 1 F (1 = 1 F ( = 1 3 F (3 = F ( + F (1 = 1 + 1 = 4 F (4 = F (3 + F ( = + 1 = 3 5 F (5 = F (4 + F (3 = 3 + = 5 MAT1030 Disret matemati 3 mars 008 33 MAT1030 Disret matemati 3 mars 008 34 Reurrens Reurrens Esempel Liningen Det er ingen grenser for hvor langt vi an fortsette: F (6 = 8, F (7 = 13, F (8 = 1, F (9 = 34, Spørsmålet er om vi an finne en esplisit formel for F (n, og helst om vi an basere dette på en generell forståelse Dette sal vi omme tilbae til Vi sal se på et par andre esempler først F (n + = F (n + 1 + F (n bestemmer ie tallfølgen F (1, F (, F (3, fullstendig, men hver gang vi bestemmer oss for hva F (1 og F ( sal være, blir følgen bestemt ved reurrens En sli lining aller vi en Reurrenslining Ved direte regning an vi se at F 1 (n = n og F (n = ( 1 n begge tilfredstiller liningen: n+1 + n = n+1 + n+1 = n+ ( 1 n+1 + ( 1 n = ( 1 n ( 1 + = ( 1 n ( 1 = ( 1 n+ MAT1030 Disret matemati 3 mars 008 35 MAT1030 Disret matemati 3 mars 008 36
Reurrens Reurrens Hvis nå A og B er to reelle tall, ser vi at vi også har at er en løsning F 3 (n = A n + B ( 1 n Er det nå noen grunn til å lete etter flere løsninger? Svaret er NEI, for vi vet at hvis vi bestemmer F (1 = a og F ( = b, har vi bestemt følgen fullstendig Liningene a = A 1 + B ( 1 1 og b = A + B ( 1 vil bestemme A og B, sli at løsningen i et onret tilfelle er en av de vi har sett på Løsningene er A = a + b 6 B = b a 3 Det neste spørsmålet er da selvfølgelig hvordan vi fant på å prøve potenser av og 1 MAT1030 Disret matemati 3 mars 008 37 MAT1030 Disret matemati 3 mars 008 38