Ubiquitous Mr. Karl Castleton Pacific Northwest National Laboratory Why discuss recursion? • Fundamental to many aspects of life • Simple to state – Most recursive definitions are very clean – Something being • Intuitive in its definition defined by itself – Other than the strangeness of – and some definition transformation between • Difficult to “use” properly levels – Most software engineers shy – and some criteria to away from its use even though stop recursion it is very useful Fibonacci Sequence as an example: • f(n)=f(n-1) • + f(n-2) • Where • f(0)=1 and f(1)=1 • n>1 Generates the series 1 1 2 3 5 8 13 … • Defined by itself • and a transformation • and a stopping condition – Defines first few elements and stopping condition A software implementation: • f(n)=f(n-1) • + f(n-2) • Where • f(0)=1 and f(1)=1 • n>1 Generates the series 1 1 2 3 5 8 13 … • int fib(int n) { if (n>1) return fib(n-1) +fib(n-2); else return 1; } The Giant’s Shoulders • Douglas R. Hofstadter in 1979 a book called “Goedel, Escher, Bach: An Eternal Golden Braid” (GEB for short) – A book I stumbled across but in its day was quite a sensation – Many of the concepts presented here stem from extensions of ideas presented in this book – By the way this book pre-dates the modern personal computers and software tools But lets not focus on Math and Computer Science • Recursion occurs in many other aspects of life – We will start as far from Math and Computer Science as we can get and then return to them for some interesting examples – I have focused on cultural artifacts more than behaviors. So I do not show any recursive behaviors but we will find artifacts that seem to have recursive structures. On to Music and Limericks Does music contain recursion • A key is a series of notes that start and stop on the same note (although the note could be in a different octave) • In GEB, Hofstadter explains that “we hear music recursively-in that we maintain a mental stack of the keys” – This is to say when we start hearing a melody you tend to wait for the starting note to come again – If we diverge from the melody our brains wait for a return to the start of diversion before we expect to hear the original melody end – An experiment: start humming a scale and stop somewhere in the middle. It does not feel quite right does it. Self Defined, Transformed, and Stopped • Key is a series of keys that we expect to hear • They can contain time-compressed copies of itself, or shifted in frequency • and is expected to end at each level of recursion • Some of the most challenging music to play comes from this nesting a key in a key. What about the words? • Lets look at the typical limericks – There was an Old Man with a beard, Who said, "It is just as I feared! Two Owls and a Hen, Four Larks and a Wren, Have all built their nests in my beard!" [Edward Lear] From: Self-similar syncopations: Fibonacci, L-systems, limericks and ragtime by Kevin Jones • Directly correlates the structure to the Fibonacci sequence – There is a “tree” that shows a recursive structure that in the end generates the di-dum-didum rhythm of the limericks • Author has degrees in Mathematics, Computer Science and Music • He then goes on to show that ragtime music sometimes shows the same characteristics. • Visit: http://plus.maths.org/issue10/fe atures/syncopate/ For a more complete review • Self-Similarity (another name for recursion) is the bridge between sound and music. • Self-similar Synthesis: On the Border Between Sound and Music Masters Thesis at MIT for Shahrokh D. Yadegari • The coherencies which exist in music have to agree with each other in any scale and dimension in which they are being perceived. – http://crca.ucsd.edu/~syade gar/MasterThesis/node25.ht ml On to Art Lets start with older cultural art. • Rangoli: Ritual Patterns of Rural India – For sacred and festive places – Drawn by tracing lines around a grid of dots • Dr. Ektare pointed out this example Pattern is repeated on a smaller scale Sometimes it is distorted The Mandala is also recursive • A mandala is an imaginary palace that is contemplated during meditation in Tibetan Buddhism • A very complex design repeats itself in four rotations but also in the nested palace in a palace The border of this mandala also has recursive properties A more modern example (Escher) • Image below was explicitly constructed for its recursive properties. • M.C. Escher has a number of examples of recursion. What would the close-up of his eye reveal 60’s Music Videos • Video feedback was used to produce many. – Basically you point a video camera at a monitor and then add some light source – This was produced (by me) using a net cam and a monitor. The light source is the mouse • The frame you see is the frame you saw plus the distortion of the alignment of the camera, and processing it stops at the limit of the camera resolution On to Nature There is an intentional rotation in the alignment between camera and monitor Nature uses recursion frequently • Nature has many fractals – Fractals are self-similar structures • This shell is related to the example video because the shell is a simple enlargement and rotation of the previous shell. • The shell started as small as possible (for the creature) Flowers and plants also have this self-similar behavior • Plants are frequent examples • Fractal ferns are a classic examples of recursive definition • Vist: http://www.geocities.c om/CapeCanaveral/Ha ngar/7959/fractalapple t.html Even Sensing Nature Needs Recursion • Sensing subaudible sound requires a special instrument • Notice the eight sided star with the eight sided stars… • That is the sensor used to sense sub-audible sound that elephants and weather produce • An optical fiber infrasound sensor: A new lower limit on atmospheric pressure noise between 1 and 10 Hz • Visit: http://klops.geophys.unistuttgart.de/~widmer/JASAfinal .pdf On to Social Structures and Geography Nesting of Elected Officials with Elected Officials • The Federal representation structure (Executive, Legislative, Judicial, Press) is repeated at the state and local levels. – With some minor transformations at each level (term limits, required age, etc.) • This basically gives a structure that can govern many people with relatively few individuals • It is not unlike the flower in the nature section • Does the structure even extend into your household? • Scientific and technical communities tend to have nested leadership organization as well. Structure of the Electrical Grid • The power grid is essentially a binary tree from the power plant to the consumer • Here the transformation steps voltage up as losses occur over the transmission wires How much coast line do we have to protect/govern? • A rather simple question posed to Benoit B. Mandelbrot • The solution he came up with was it depends – What scale do you want to measure on – Can really be any answer you wish – Any structure at one scale has equivalent structures at a smaller scale Back to Computer Science Many Divide and Conquer Algorithms are Recursive • Binary Search • Fast Fourier Transformation • Recursive Decent Parsers – Backus Naur Form is a way of encapsulating recursive language structures • And many many more. Web Page Design • Nesting of – Styles within styles – Tables within tables – Lists within lists • A fundamental concept to the layout of web-pages Back to Mathematics The Mandelbrot Set • Simple Computation of Complex Numbers – Zn+1=Zn2+C • Has unlimited complexity • Coloring typically done by the number of computations before divergence away from 0+0i • Julia sets are a peek at the complexity of a single point of the Mandelbrot set Another Approach to the Integration of a Function • Consider the definition of integration where you take smaller and smaller dt until you reach the limit • What “integrate” means you simply compare the area of one trapezoid including a and b to total area of two trapezoids a and m plus m and b. If the difference is “significant” “integrate” a to m add to “integrate” m to b stop when you hit the precision required a b a b -dt- a a b m b So where is Godel? • Godel’s incompleteness theorem is a proof about proofs that uses recursion • The ability to be comfortable with the concept of one level addressing something about a subsequent level is key • I will Math professors explain it more thoroughly or visit: http://home.ddc.net/ygg/et ext/godel/godel3.htm Some interesting contrasts • The recursive nature of the physical world may be the link Wolfram should have used to make more clear the connection between simple programs and larger physical effects – This is a frequent criticism of ANKOS • Recursive structures can typically be done in an iterative (step by step) structure but sometimes looses the essence of the concept. – The integration example is like this – The recursive implementation is much easier to implement in a computer Conclusions • Recursive relationships are “everywhere” – If you are mathematician you should consider recursive approaches and definitions (Godel did) – If you are a computer scientist you should not be intimidated by a recursive algorithm • I hope you enjoyed the tour of just a few examples of