MAT1030 Forelesning 16 Reursjon og indusjon Roger Antonsen - 17 mars 009 (Sist oppdatert: 009-03-17 11:4 Forelesning 16 Reursjon og indusjon Forrige gang 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 Indusjonsbevis 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 Esempel Definér f(1 = 1 f(n + 1 = 3f(n + 1 for alle n N Da har vi f(1 = 1 f( = 3 1 + 1 = 4 f(3 = 3 4 + 1 = 13 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 har vi g(1 = 1 g( = 1 + 3 = 4 1
g( = 4 + 3 = 13 g(4 = 13 + 3 3 = 40 Vi an fortsette å regne ut g(5, g(6, g(7, osv, og vil finne ut at så langt vi an se vil f(n = g(n 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 så formelen stemmer for n = 1 3 n 1 = 3 1 Anta at formelen stemmer for et tall n, det vil si at g(n = 3n 1 = 1 = g(1 Da er g(n + 1 = g(n + 3 n = 3n 1 + 3 n = 3n 1 + 3 n = 3 3n 1 = 3n+1 1
som viser at formelen også holder for g(n + 1 Hvis P(n er utsagnet har vi vist P(1 for seg g(n = 3n 1 1 P(1 P( P( P(3 3 P(3 P(4 under ett som spesialtilfeller av P(n P(n + 1 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 Indusjonstarten er grei, siden f(1 = 1 = g(1 og vi vet at formelen holder for g 3
Anta så at Da er f(n = 3n 1 f(n + 1 = 3 f(n + 1 = 3 3n 1 + 1 = 3n+1 3 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 + = 3n+1 1 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 Esempel La f(n være summen av de første n oddetallene, det vil si at Da er f(n = n Vi sal gi et indusjonsbevis n f(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 4
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 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 5
Da er F(n + 1 = F(n + n + 1 = 1 + n(n + 1 + (n + 1 = 1 + = 1 + Sal vi være pedantise an vi srive dette om til 1 + n(n + 1 (n + 1((n + 1 + 1 Indusjonsrittet er gjennomført, så påstanden er bevist + (n + 1 (n + (n + 1 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 Venndiagrammer er uegnet til å studere Boolse ombinasjoner av mange mengder? 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 6
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 feil 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 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 Indusjonsbevis an inngå som en del av beviset for at en regneprosess an utføres rast, eventuelt for at den tar for lang tid Esempel Vi minner om definisjonen av binomialoeffisienten ( n = n!!(n! Formelen ( n + 1 an bereftes ved enel regning = ( n 1 ( n + 7
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 Vi starter med tilfellet n = 1 Da er = 1, og det fins 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, fins det nøyatig en måte, og 1 = ( n + 1 n + 1 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å måter ( n 1 8
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å ( n Indusjonsrittet sier at hvis binomialoeffisientene forteller oss, for alle n, hvor mange forsjellige delmengder ( med elementer det fins av en mengde med n elementer, så vil oeffisientene fortelle oss det samme for mengder med n + 1 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 mer 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 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 9
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 Reurrens Det i enhver sammenheng mest brute esemplet på reurrens er definisjonen av Fibonaccitallene: 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 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 esplisitt 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 Esempel Liningen 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+ Hvis nå A og B er to reelle tall, ser vi at vi også har at F 3 (n = A n + B ( 1 n 10
er en løsning 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 11