Recursie…. De Mandelbrot Fractal De werking… De verzameling natuurlijke getallen… 0 ∞-∞

Slides:



Advertisements
Verwante presentaties
Autisme en Mindmap Thuis en op School
Advertisements

Wiskunde op het VWO Kies je voor je profielwiskunde of wil je meer?
Minimum Spanning Tree. Wat is MST? • Minimum spanning tree • De meest efficiënte manier vinden om een verbonden netwerk op te bouwen.
Uitwerking tentamen Functioneel Programmeren 29 januari 2009.
Hogere Wiskunde Complexe getallen college week 6
Graph Begrippen: knoop, vertices kant, zijde, edge
Project D2: Kempenland Sander Verkerk Jeffrey van de Glind
Motion Planning in Games Pathfinding with A * Ronald Treur.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Fibonacci & Friends Met dank aan Gerard Tel.
Datastructuren Zoekbomen
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Inleiding Adaptieve Systemen
Dijkstra Kortste pad algoritme.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Oplossing Langste Pad Probleem Cees Witteveen
Eenvoudige data-analyse: beschrijvende statistische
Approximate Cell Decomposition
1 Complexiteit Bij motion planning is er sprake van drie typen van complexiteit –Complexiteit van de obstakels (aantal, aantal hoekpunten, algebraische.
Motion planning with complete knowledge using a colored SOM Jules Vleugels, Joost N. Kok, & Mark Overmars Presentatie: Richard Jacobs.
1 Datastructuren Skiplists. 2 Skiplists  Vrij eenvoudige datastructuur  “Makkelijker” dan gebalanceerde bomen  Kunnen hetzelfde als gebalanceerde bomen.
Hogere wiskunde Limieten college week 4
WIS21.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 4.
Klik ergens op het witte deel van deze pagina om verder te gaan
Datastructuren Sorteren, zoeken en tijdsanalyse
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
Sorteeralgoritmen. Sorteren: aanpak 1 Hoe ga je een rij getallen sorteren met PC? Sorteren door selectie (= selection sort): Zoek de kleinste waarde Sorteer.
Algoritme Inhoud: Definitie algoritme Recursieve algoritmes Opgaven
Planning With Nonholonomic Constraints By Jeroen Resoort & Ronald Treur.
Presentatie titel Rotterdam, 00 januari 2007 Computer Graphics Technische Informatica
Intermezzo: Queries op zoekbomen Datastructuren. Queries: hoe op te lossen We hebben: – Een zoekboom (gewoon, rood-zwart, AVL,…) – Een vraag / querie.
Representatie & Zoeken
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Torens van Hanoi ● Uitgevonden door Franse Wiskundige Edouard Lucas in ● Beschreven in zijn wiskundig “spelletjesboek” Récréations Mathématiques.
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
Allard Kamphuisen Hado van Hasselt Wilco Broeders
Grafentheorie Graaf Verzameling knopen al dan niet verbonden door takken, bijv:
Recursie: het cirkel algoritme van Bresenham
De O-notatie Algemene lijn: Broncode analyseren Herhalingsfrequentie bepalen O-notatie afleiden.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
De O-notatie Algemene lijn: Broncode analyseren Herhalingsfrequentie bepalen O-notatie afleiden.
De O notatie… Limiet van Bachmann-Landau: Paul Gustav Heidrich Bachmann Edmund Landau
Isometrie tekenen Dal\RvP 2013 Pixel Art.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Doorzoeken van grafen Algoritmiek. Algoritmiek: Divide & Conquer2 Vandaag Methoden om door grafen te wandelen –Depth First Search –Breadth First Search.
Netwerkstroming Algoritmiek. 2 Vandaag Netwerkstroming: definitie en toepassing Het rest-netwerk Verbeterende paden Ford-Fulkerson algoritme Minimum Snede.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Datastructuren voor grafen Algoritmiek. 2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –…
Koffieochtend 3 november 2016 REGELS EN GRENZEN IN DE OPVOEDING
Gerandomiseerde algoritmes
Doorzoeken van grafen Algoritmiek.
Netwerkstroming Algoritmiek.
Meest voorkomende vragen bij examenteksten.
Datastructuren voor graafrepresentatie
Minimum Opspannende Bomen
Kiezen met Kaarten.
Minimodules voor de 3e klas
Eenvoudige data-analyse: beschrijvende statistische
Modderdorp UNPLUGGED Bron: csunplugged.org.
Kiezen met Kaarten.
Tellen met kaarten.
Tellen met kaarten.
Doolhof. doolhof doolhof Maak een routine die de ‘hekken’ tussen de cellen weghaalt Maak een 2-dimensionale array met kolommen en rijen aangeklikt.
Kiezen met Kaarten.
Eulerpaden en sleutelwoorden
Meetkunde Verzamelingen Klas 8.
Transcript van de presentatie:

Recursie…

De Mandelbrot Fractal

De werking… De verzameling natuurlijke getallen… 0 ∞-∞

De werking… Natuurlijke getallen ken men opvatten als een deelverzameling van de verzameling complexe getallen. 0 ∞-∞

Complexe / imaginaire getallen… Reëel deel Imaginair deel

Complexe / imaginaire getallen…

De werking… Het complexe vlak… Im Re a bi

Mandelbrot… Kwadrateer 2 complexe getallen:

Mandelbrot… Ga uit van het volgende recursieve verband: Begin met Z waarde 0 en bereken de nieuwe Z. Kwadrateer de nieuwe Z en vorm weer een nieuwe…..enz, enz…..doe dit een x aantal keer.

Mandelbrot… Wordt de afstand tot het 0 punt nu groter dan 2? Ja? Teken een wit pixel. Nee? Teken een zwart pixel. Im Re a bi

Gevolg… Im Re

Links… ndelbrotApplet.html knot.org/blue/Mandel.shtml

Fractals…

Recursieve & iteratieve algoritmen Iteratief algoritme: int TelAllesBijElkaarOp(int n) { int result=0; for(int i=1;i<=n;i++) result+=n; return result; }

Recursieve & iteratieve algoritmen Recursief algoritme: int TelAllesBijElkaarOp(int n) { int result=0; if(n==1)return 1; return(n+ TelAllesBijElkaarOp(n-1)); }

Recursieve & iteratieve algoritmen Recursief: zichzelf aanroepend. Iteratief: loops.

Recursieve & iteratieve algoritmen Recursief: Voordelen: Heeft het voordeel van wiskundige correctheid. Kan gebruikt worden om vanuit het niets een algoritme te bedenken. Nadelen: Gebruikt nogal wat geheugen. Soms erg moeilijk te bedenken / begrijpen.

complexiteitsontwikkeling bij iteratieve algoritmen… Tot nu toe: Bestaand iteratief algoritme Herhalingsfrequentie Complexiteitsontwikkeling for(int i=0;i<n;i++) ….. T(n)=23n+5……. O(n)…….

Problemen met de O notatie Bij if-else constructies complexiteitsontwikkeling onvoorspelbaar. Derhalve: Worst case gedrag bepalen. Best case gedrag bepalen. Indien mogelijk: statistiek en kansrekening gebruiken om gemiddelde gedrag te bepalen. Zie hoorcollege 1.

Complexiteitsontwikkeling bij recursieve algoritmen. Lastiger te bepalen. Analyseren van het aantal aanroepen: int TelAllesBijElkaarOp(int n) { int result=0; if(n==1)return 1; return(n+ TelAllesBijElkaarOp(n-1)); } Iedere aanroep leidt tot N extra aanroepen van TelAllesBijElkaarOp(n)

Complexiteitsontwikkeling bij recursieve algoritmen. int TelMeerBijElkaarOp(int n) { int result=0; if(n==1)return 1; return(n+ TelMeerBijElkaarOp(n-1)* TelMeerBijElkaarOp(n-2)); } Iedere aanroep leidt tot 2 extra aanroepen van TelAllesBijElkaarOp(n)

Complexiteitsontwikkeling bij recursieve algoritmen. int TelNogMeerBijElkaarOp(int n) { int result=0; if(n==1)return 1; else{ int result=0; for(int i=0;i<20;i++) { result+=TelNogMeerBijElkaarOp(n-i); } return result; } Waarschuwing: for loop aanwezig? Niet bijvoorbaad een iteratief algoritme!!

Recursieve & iteratieve algoritmen Iedere recursieve functie kan worden omgezet in een iteratieve functie en omgekeerd… int TelAllesBijElkaarOp(int n) { int result=0; if(n==1)return 1; return(n+ TelAllesBijElkaarOp(n-1)); } int TelAllesBijElkaarOp(int n) { int result=0; if(n==1)return 1; return(n+ TelAllesBijElkaarOp(n-1)); }

Verdeel & heers Hoe een algoritme te ontwerpen? Laten we daar eens een algoritme voor bedenken een meta algoritme…

Divide & Conquer Complexiteitsontwikkeling?

Divide & Conquer <O(n) O(n log n)

Grafentheorie Graaf Verzameling knopen al dan niet verbonden door takken, bijv:

Grafentheorie Graaf Knopen zijn abstracte objecten, bijv. Steden, computers, kruispunten,enz. Takken zijn “verbindingen”, bijv. Wegen, netwerkkabels, reistijden, enz. Zuiver abstract kan men knopen en takken omdraaien…betekenis?

Koningsberger bruggenprobleem Vraag: kun je alle bruggen één maal oversteken en in het beginpunt uitkomen? Kneiphof

Grafentheorie Volgens L. Euler ( ) Niet mogelijk Motivatie: Vorm het probleem om naar een graaf:

L. Euler: Graad van een knoop: Aantal takken dat aan de knoop zit Aantal takken dat incident is met de knoop Graad: 3 Graad: 5

L. Euler: Knopen met een even graad kunnen in een graaf worden opgenomen.

L. Euler: Alleen in grafen waarin alle knopen een even graad hebben is een Eulerse wandeling mogelijk. (Eulerse graaf) 2 knopen met oneven graad kunnen worden gebruikt, mits deze als begin en eindpunt worden gebruikt. (Semi Eulerse graaf)

Hamilton Wandeling door graaf: Alle knopen één maal bezoeken. Beginpunt gelijk aan eindpunt. Is bovenstaande mogelijk? Complexe vraag, want: Niet alle takken nodig. Soms bevat een Eulerse graaf een Hamiltons circuit… Soms niet…

Hamilton Hamiltonse graaf: Alle knopen éénmaal bezoeken. Vertrekpunt gelijk aan eindpunt Semi Hamiltonse graaf: Vertrekpunt niet gelijk aan eindpunt

Hamiltonse grafen… Hamiltons circuit Indien alle knopen in een cycle zitten. Cycle: Rondgaande wandeling. Beginpunt gelijk aan eindpunt.

Grafen… Hamiltonse graaf: Semi Hamiltonse graaf: Niet Hamiltonse graaf:

Grafen Is een graaf Hamilton? Semi Hamilton? Euler? Semi Euler? Moeilijk vast te stellen: NP probleem.

Gebruik van grafen Kunnen knopen in een plat vlak met elkaar verbonden worden zonder snijdende lijnen?  printplaten. Het schaakspel  paardensprongen. Navigatiesystemen  kortste weg. Spelletjes  C&C, Quake klonen. Computernetwerken…

De multigraaf… Bevat één of meer knopen. Bevat nul of meer takken. Elke tak grenst aan 2 knopen. Eén tak met aan beide kanten dezelfde knoop is toegestaan.

Multigrafen… Multigraaf met zelf loop Samenhangende multigraaf: Niet samenhangende multigraaf:

De gewone graaf… Tenminste één knoop. Ten hoogste één tak tussen twee knopen. Geen zelfloops.

De gerichte graaf Verbindingen hebben nu een richting. Het begrip graad vervangen door: Ingraad. Uitgraad.

De gewogen graaf Twee soorten: Takgewogen: Knoopgewogen

De opspannende boom Construeren uit samenhangende graaf. Verwijderen van alle takken die cycles veroorzaken.

De opspannende boom Regel: n knopen levert n-1 takken.

De minimum opspannende boom Construeren uit samenhangende takgewogen graaf. N-1 takken zodanig kiezen dat de kleinste waarden worden gebruikt

Zoektechnieken Standaard zoektechnieken: Breath first search Depth first search Heuristische zoektechnieken Generate & test Best first search Minimax Intersection search

Toepassingen Kortste / snelste route vinden. Indien aanwezig, oplossing bepalen. Spelletjes. Wiskundige bewijsvoering. Expertsystemen. (Mycin)

De state space

Breath first search

Laag 1 Laag 2 3

Breath first search Algoritme Genereer alle opvolgers uit de begin toestand. controleer deze opvolgers op oplossing. Oplossing gevonden?  einde Oplossing niet gevonden?  volgende laag

Depth first search

Evalueer huidige knoop Oplossing? Ja: einde. Nee: Opvolger mogelijk? Ja: genereer opvolger Depth first( opvolger) Nee: einde

Generate & test Genereer maar een of ander willekeurig pad / oplossing. Oplossing gevonden? Ja: einde Nee: generate & test

Generate & test

Best first search Heuristische zoektechniek Heures: gevoel. Waardeoordeel wordt toegekend aan iedere gegenereerde toestand.

Best first search

Geneer alle opvolgers uit huidige toestand. Evalueer alle opvolgers. Oplossing gevonden? Ja  einde Nee  Best first search (beste opvolger)

Minimax

Comp Mens Comp

Minimax Genereer alle opvolgers uit huidige toestand. Kies maximum Genereer alle mogelijke opvolgers uit maximum Kies minimum Minimax(minimum)

Probleempjes… oplossing Depth first search kan ontaarden in een oneindige loop… Oplossing: bijhouden waar je reeds geweest bent.

Probleempjes… Breath first search leidt tot enorme bomen (exponentiële complexiteitsontwikkeling…)