Podstaw algortmów rekurejh mgr iż. Adam Kozak mgr iż. TomaszGłowaki tglowaki@s.put.poza.pl poza pl Zajęia fiasowae z projektu "Rozwój i doskoaleie kształeia a Politehie Pozańskiej w zakresie tehologii iformatzh i ih zastosowań w przemśle" POKL.4..--89/ Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego
Pla Czm jest rekureja? Idukja matematza Niezmieiki pętli Realizaja rekureji Fraktale Ceh Układ iterowah odwzorowań afiizh Zbior Madelbrota Zbior Julii Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego
Rekureja O rekureji (rekursji) mówim wted, gd defiija pewego obiektu (p. matematzego) t zawiera odwołaie ł do pewej trasformaji tego obiektu, Ab zaleźć trasformaję tego obiektu ależ poowie zastosować tą samą defiiję itd... Każda defiija i rekureja składa się z: zależośi rekurejej wrażeia startowego (podstaw wioskowaia, waruku brzegowego) Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 3
Przkład defiiji rekurejh Silia: zależość rekureja:! (-)! wrażeie startowe:! Współzik dwumiaow: zależość rekureja: wrażeie ż startowe: t + k k k Zbiór lizb ałkowith podzielh przez d : zależość rekureja: wrażeie startowe sg( k,5) d i gdzie k d k i Z Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 4
Przkładowe zadaia Zajdź defiiję rekureją iągu elimiują w pełi bezpośrediąś zależość ż od ( ): Dla iągów reprezetowah przez fukje posiadająe fukję odwrotą moża skorzstać ze shematu: + f ( ) f ( ) f ( + ) f f ( ) ( + ) + 3 + Ie: 3, 3, 3 log +,, + 9 + 4 + Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 5
Idukja matematza Idukja matematza jest twierdzeiem opartm a szzególm przpadku zależośi ż ś rekurejej j a zdaiah logizh Zależośią ą rekureją ą jest implikaja międz ę kolejmi zdaiami logizmi Wrażeiem startowm jest waruek pozątkow Zasada idukji skońzoej Zasada silej idukji (zupełej) ZR : S(k) S(k+) ZR : S( ) S( +)... S(-) S() S(+) WP : S( ) WP: S( ) S( +)... S( ) Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 6
Przkładowe zadaia Udowodij, użwają idukji matematzej:. Dla : i( i + ) i +. Dla : i i i i 3 3. Nierówość Beroulliego dla lizb ałkowith, > -, : ( + ) + 4. Dla d,, iąg, d, -d, d, -d,..., d, -d da wzorem rekurejm [ ] + ma postać jawą: d ( ) ( + ) sg(, d + 4,5) Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 7
Przkładowe zadaia.d. 5. Dla : 6 jest podziele przez., b a, a + b ab 6. Dla, a,b, jeśli ( ) to wzór jaw a iąg ma postać: 7. Dla : 3 - jest podziele przez 6. b a 8. Dla : F ( L + L+ ) gdzie F to lizb Fiboaiego, a 5 L lizb Luasa: F, F, F F + F L, F, L L + L Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 8
Niezmieiki pętli Zdaie logize λ jest iezmieikiem pętli: while (g) { istrukje; } jeśli zahodzi implikaja: jeśli g i λ są prawdziwe przed wejśiem do pętli, to λ jest prawdziwe wkażdej iteraji, oraz po wjśiu z pętli, atomiast g po wjśiu z pętli jest fałszem: iijalizaja zmieh // g λ while ( g) { istrukje; } // g λ Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 9
Niezmieiki pętli Zastosowaie? Dowodzeie poprawośiś algortmów Sprawdzaie działająh algortmów (p. aserje przed, wewątrz ipopętli sprawdzająe waruki będąe zam iezmieikiem) Klasz przkład algortm dzieleia, zajdują dla lizb, q > (dzielik), lizb k (krotość), oraz resztę r: q > r, spełiająe rówość kq+r < iput < iit < assert while } > ; q > ; > k ( g) ; r ; > g λ : { < istrutios > k < assert > λ g r q, k + ; r r q; λ ( kq + r) ( r ) ( kq + r) ( ) < assert > g λ : g r < q, λ r Ie trwiale iezmieiki pęli: q r Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego
Dowód poprawośi W każdej iteraji otrzmwae są owe wartośi zmieh k oraz r: k' k + r' r q Podstawiają owe wartośi do zależośi iezmieika: ( k + ) q + ( r q) kq + q + r q kq r k ' q + r' + Prz zm r, gdż warukiem wejśia do pętli jest r q Po wjśiu z pętli r < q, wię spełioa jest zakładaa własość q > r Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego
Niezmieiki pętli - zadaie Zajdź iezmieik pętli i udowodij poprawość algortmu: Dae wejśiowe: >. k Dae wjśiowe: k, q ( k, q N ) takie, że q / q < iput > > ; k ; < iit > k ; q ; < assert while ( g) > g λ : g q, { < istrutios > k k + ; q q < assert > λ } λ... ; < assert > g λ : g / q, λ... Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego
Realizaja rekureji Rekureja w jęzkah programowaia jest zwkłm wwołaiem fukji (fukja sama wwołuje siebie) Każde wwołaie fukji to odłożeie parametrów a stosie (parametr fukji oraz adres powrotu) Dla każdego algortmu rekurejego ależ rozważć koszt pamięiowe i oblizeiowe podejśia rekurejego oraz iterajego Np. Algortm wpełiaia spójego obszaru szbko może doprowadzić do przepełieia stosu (wersja iteraja jest bardziej oszzęda): it image[][], width, height, oldcolor, ewcolor; void fill(it, it ) { if (< < >width >height) retur; image[][] ewcolor; if (image[+][] oldcolor) fill(+,); if (image[-][] oldcolor) fill(-,); if (image[][+] oldcolor) fill(,+); if (image[][-] oldcolor) fill(,-); } Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 3
Fraktale Obiekt geometrze posiadająe ehę samopodobieństwa (w każdej skali) w sesie dokładm, d przbliżom lub stohastzm Wmiar ie jest lizbą ą ałkowitą: ą N ( ε ) ~ ( ε ) d d log lim ε log N( ε ) ( ε ) log3 log3 ε, N ε TS log log ( ) 3 d lim,58496... Mają stosukowo proste defiije rekureje Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 4
Obraz rekurej Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 5
Fraktale Fraktale to p.: Atraktor układu iterowah odwzorowań afiizh (IFS) Zbior Julii i Fatou Zbior Madelbrota Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 6
Odwzorowaie zwężająe Nieh R będzie przestrzeią z metrką euklidesową d (hoć mogą bćć dowole przestrzeie metrze), wted f: R R jest odwzorowaiem zwężająm jeśli: (, ): a, a R : d ( f ( a ), f ( a ) ) λd ( a a ) λ, Twierdzeie Baaha: Istieje dokładie jede pukt p taki, że f(p)p (pukt stał odwzorowaia zwężająego) Rekureje wkoaie odwzorowaia zwężająego a(,) f(,)(/3,/3) π π π ( ) lim f ( ) os( ) os( os ) os( os( )) + f os Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 7
Układ iterowah odwzorowań afiizh Rekureja defiija przekształeń obiektu geometrzego będąa sumą wików odwzorowań ń zwężająh ż h( (złożeie ł ż obrotu, traslaji i skalowaia zmiejszająego): {F i } ( i ) S S Sk i Fi ( Sk ) S lim Sk k S jest dowolm iepustm zbiorem puktów w daej przestrzei S jest fraktalem - atraktorem układu odwzorowań (puktem stałm), iezależm od rozkładu puktów w zbiorze S F wprzestrzeir i R ma postać: ' a + b + ' Fi (, ) ' ' d + e + f < δ < < δ < δ osϕ siϕ t + si os δ ϕ ϕ t Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 8
Przkład kostrukji IFS Przkład kostrukji IFS - Trójkąt Trójkąt Sierpińskiego Sierpińskiego Sierpińskiego Sierpińskiego Układ odwzorowań: ( ) F, 3 ( ) + 4, F ϕ ϕ ( ) + 4, F ( ) + 4 3, 3 F F ( ) ( ) F Trójkąt Sierpińskiego jest puktem stałm układu odwzorowań zwężająh {F,F,F 3 } ( ) F, ( ) F, zwężająh {F, F, F 3 } 9 Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego
IFS zadaia Zadaie: zlokalizuj poszzególe odwzorowaia ((*) zdefiiuj) Paproć Barslea Układ 4 odwzorowań [źródło: Wikipedia] Dwa Sierpińskiego Układ 8 odwzorowań [źródło: Wikipedia] Trójkąt Sierpińskiego w przestrzei 3D (piramida) Układ 5 odwzorowań [źródło: Wikipedia] Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego
Zbior Madelbrota Przestrzeią dla th zbiorów jest domkięt zbiór C lizb zespoloh ( C C {z*} gdzie z* to pukt w ieskońzoośi ń ś i odwzorowa p. a sferze Riemaa) Fukja wmiera określoa a C ma postać: W ( z) w( z) a + a l( z) b z + b z z z + + az + a + + b z + b Nieh W będzie fukją wmierą zależą od Nieh W ( z) W ( W ( z) ) Zbiorem Madelbrota M(W ) azwam zbiór th wartośi parametru dla którh iąg () jest zbież: W ( ) { C : limw () } M W / C Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego
Zbior Madelbrota -przkład Najbardziej za jest zbiór Madelbrota dla odwzorowaia W ( z) z + Sprawdź, z pukt +i ależ do zbioru Madelbrota dla tego odwzorowaia orbi ita pu ktu W () + i i W () i + i i 3 W () ( i ) + i i + + i 4 W () ( i ) + i + i i... i Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego
Zbior Madelbrota - ilustraja Zbiór Madelbrota wraz z powiększeiem [obraz uzska za pomoą programu Ultra Fratal] Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 3
Zbior Julii Brzeg międz kolorami (baseami prziągaia) jest zbiorem Julii dla odwzorowaia: W ( z + ) 3 ( z) z Do zbioru Fatou ależą obszar prziągaia 3 puktów stałh będąh pierwiastkami fukji f ( z ) z z W, 3 z z 3 { } 3 e ( + i 3), z ( + i 3) 3 f ( z ) z ( z ) z z ( z + z ) 3 f '( z) 3z z k,, Jest to zbiór Julii dla odwzorowaia W (z) otrzmaego metodą Newtoa szukaia miejs zerowh hdla f(z). Stąd pukt stabile tego odwzorowaia będą pierwiastkami i i f(z). Kolor zielo jest baseem prziągaia z, kolor zerwo z, a kolor iebieski z. + kπ i, Projekt współfiasowa przez Uię Europejską w ramah Europejskiego Fuduszu Społezego 4