Föreläsning 6: Induktion Induktion är en speciell inferensregel. En mängd är välordnad om varje delmängd har ett minsta element Exempel: N är välordnad (under ) Låt P(x) vara ett predikat över en välordnad mängd S. Vill bevisa xp(x) mha: Matematisk induktion. För S = N är inferensregeln P(0) P(n) P(n + ) xp(x) Hypoteserna är bassteget H: P(0), och induktionssteget H: P(n) P(n + ) för godtyckligt n Visa först predikatet sant för minsta elementet i S (0 om S = N). Visa därefter att om det är sant för ett element x (n om S = N) så är det sant för nästa element i mängden (n + om S = N) Därmed gäller: sant för första elementet sant för andra elementet sant för tredje elementet, etc Dvs, induktion är ekvivalent med modus ponens tillämpad ett uppräkneligt antal gånger H: 0 = 0 0(0 + )/ n(n + ) Etablera H genom direkt bevis: Antag P(n) sann för godtyckligt n. Använd detta för att visa P(n + ) sann: (n + )((n + ) + ) Men i + (n + ) Har manipulerat P(n + ) så att P(n) kan användas. Ger: n(n + ) + (n + ) vilket är lika med P(n + ) = (n + )((n + ) + )/. H: = 0
Antag P(n) sann för godtyckligt n 0 och visa P(n + ) sann: i + = + = n+ vilket är lika med P(n + ). Om predikatet är x[n k P(x)] så låt bassteget varap(k) att För heltal n > 3 är n! > n Bassteg: sant för n = 4, ty 4! = 4 > 4 = 6 Antag n! > n, något n > 3. Vill visa att (n + )! >. Hur kan vi använda induktionsantagandet? Genom att multiplicera båda sidor med n + fås (n + )! > n (n + ) och n (n + ) > n =. H: i= / / < Antag P(n) sann och visa P(n + ) sann: / i < i= Hur kan vi visa att detta är mindre än? Betrakta: Addera / och P(n + ) följer. + 4 + 8 + + n + < + 4 + 8 + + n + = ( + 4 + + n) < Stark induktion Efter att ha etablerat basfallet, P(0), antag att P(0), P(), P(),...,P(n) är sanna Inferensregeln är H : P(0) H : P(0) P() P(n) P(n + ) xp(x) Stark induktion är ekvivalent med vanlig (matematisk) induktion, men är ibland bekvämare att använda Exempel: P(n): varje heltal n > kan skrivas som produkten av primtal Bevis: Bassteg P() är trivialt sant: = Induktionssteg: Antag P(k) sant för alla k, < k n och visa att P(n + ) är sann Två fall:
n + är primtal: P(n + ) är trivialt sann är inte primtal: kan då skrivas som produkten av två positiva heltal a och b, < a b < Enligt induktionshypotesen kan både a och b skrivas som produkter av primtal, vilket därmed också gäller för n + = a b. Exempel: Betrakta ett spel där två spelare turas om att ta bort ett positivt antal tändstickor från en av två högar. Spelaren som tar bort den sista stickan vinner. Visa att om de två högarna initialt har lika många stickor så kan den andra spelaren alltid garantera en vinst. Bevis: I bassteget, med en sticka i båda högarna, har spelare bara ett alternativ, varpå spelare tar bort stickan i den andra högen och vinner. Induktionssteg: Antag P(j) sant för alla j, j k, dvs att spelare kan vinna när det finns j stickor i båda högarna. Det följer då att P(k + ) är sann. Ty om spelare tar bort r stickor från ena högen så tar spelare bort lika många från den andra högen. Rekursiva definitioner av mängder och funktioner på rekursivt definierade mängder är analoga: Bassteg. För mängder: ange byggstenar i mängden För funktioner: ange funktionsvärden av byggstenar Induktivt eller rekursivt steg. För mängder: visa hur nya ting kan byggas från gamla mha konstruktionsregler För funktioner: visa hur nya funktionsvärden kan beräknas mha gamla funktionsvärden Exempel: rekursiv definition av N Bas: 0 tillhör N Induktion: om n tillhör N så gör n + det också Exempel: rekursiv definition av fakultetsfunktionen över N Bas: f(0) =, startvillkor Induktion: f(n + ) = (n + )f(n) Exempel: En rekursiv definition av fibonaccitalen Bas: f(0) = 0, f() = Induktion: f(n + ) = f(n) + f(n ) T ex, f(5) = f(4) + f(3) = f(3) + f() = 3f() + f() = 5f() + 3f(0) = 5. Exempel: En rekursiv definition av mängden av strängar över ett ändligt alfabet Σ Σ = mängden av alla strängar Bas: tomma strängen λ tillhör Σ 3
Induktion: om w Σ och a Σ så wa Σ (konstruktionsregel) Kunde också ha valt att konkatenera som aw, vilket oftast är wa Om Σ = {a,b} så aab Σ Bevis: Kan konstruera aab i ett ändligt antal induktionssteg med start i basen λ: λ a aa aab Σ. Exempel: en induktiv definition av välformade (balanserade) parantessträngar, P S Bas: () tillhör PS Induktion: om w PS så tillhör ()w, (w), och w() också PS En högerparantes matchas av en vänsterparantes T ex, (()()) tillhör PS: () ()() (()()) PS Följande tillhör inte PS: )(() och (()())()). Varför? Strukturell induktion Bassteg: Visa att resultatet gäller för alla elementen i basen av den rekursiva definitionen av mängden. Rekursivt steg: Visa att påståendet är sant för varje element som används som byggstenar i det rekursiva steget i definitionen, och att resultatet gäller för dessa nya element. Vi skall tillämpa strukturell induktion för att visa ett resultat om binärträd. Mängden av rotade träd består av noder, varav en är roten, och bågar som förbinder dessa noder. Bas: en singeltonnod r är ett rotat träd Rekursivt: Om T,T,...,T n är rotade träd med rötter r,r,...,r n, då är grafen med en rot r ( T,T,...,T n ) och båge till var och en av r,r,...,r n, också ett rotat träd. Om trädet byggs rekursivt med två delträd T,T erhålls ett binärträd. Mängden av fulla binärträd kan definieras: Bas: Det finns ett fullt binärträd som består av en singeltonnod r. Rekursivt: Om T och T är fulla binärträd så finns ett fullt binärträd T T som består av en rot r med bågar till rötterna av T och T. (Se figur på sidan 304 [66] i boken.) Höjden h(t) av ett fullt binärträd definieras: Bas: Höjden av det fulla binärträdet T som bara består av roten r är h(t) = 0 Rekursivt: Om T och T är fulla binärträd så har det fulla binärträdet T = T T höjden h(t) = + max(h(t ),h(t )). Analogt ges antalet noder n(t) i ett fullt binärträd av: Bas: Antal noder i det fulla binärträdet T som bara består av roten r är n(t) = Rekursivt: Om T och T är fulla binärträd så har det fulla binärträdet T = T T antal noder n(t) = + n(t ) + n(t ). 4
Vi skall nu visa följande med strukturell induktion: Om T är ett fullt binärträd så är n(t) h(t)+ Bevis: För det fulla binärträdet med bara roten r är n(t) =, h(t) = 0, och 0+ =. Induktion: Antag n(t ) h(t )+, n(t ) h(t )+. Enligt rekursiva definitionerna ovan gäller n(t) = + n(t ) + n(t ), h(t) = + max(h(t ),h(t )). Vi finner att: n(t) = + n(t ) + n(t ) + ( h(t )+ ) + ( h(t )+ ) = h(t )+ + h(t )+ max( h(t )+, h(t )+ ) = max(h(t ), h(t ))+ = h(t) = h(t)+. 5