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 (1707-1783) 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: 5 Graad: 3
L. Euler: Knopen met een even graad kunnen in een graaf worden opgenomen.
L. Euler: Knopen met een even graad kunnen in een graaf worden opgenomen.
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: Is bovenstaande mogelijk? 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: Semi Hamiltonse graaf: Alle knopen éénmaal bezoeken. Vertrekpunt gelijk aan eindpunt Semi Hamiltonse graaf: Vertrekpunt niet gelijk aan eindpunt
Hamiltonse grafen… Hamiltons circuit Cycle: 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 Moeilijk vast te stellen: NP probleem. 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 5 12 6 7 2 8 4 10 5 8 4 12 -1
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. 5 12 5 6 7 7 2 8 2 8 4 10 4
Zoektechnieken Standaard zoektechnieken: Heuristische 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
De state space
Breath first search
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
Depth first search
Depth first search
Depth first search
Depth first search
Depth first search
Depth first search
Depth first search Evalueer huidige knoop Oplossing? Ja: einde. Nee: Opvolger mogelijk? Ja: genereer opvolger Depth first( opvolger) Nee: einde geen oplossing
Generate & test Genereer maar een of ander willekeurig pad / oplossing. Oplossing gevonden? Ja: einde Nee: generate & test
Generate & test
Generate & test
Best first search Heuristische zoektechniek Heures: gevoel. Waardeoordeel wordt toegekend aan iedere gegenereerde toestand.
Best first search 5 3 2 8 3 6 1 4 3 6 9 4 6 8 4 5
Best first search Geneer alle opvolgers uit huidige toestand. Evalueer alle opvolgers. Oplossing gevonden? Ja einde Nee Best first search (beste opvolger)
Minimax 5 3 2 8 3 6 1 4 3 6 9 4 6 8 4 5
Minimax Comp Mens 5 3 2 8 3 6 Comp 1 4 3 6 9 4 6 8 4 5
Minimax Genereer alle opvolgers uit huidige toestand. Kies maximum. Genereer alle mogelijke opvolgers uit maximum. Kies minimum. Minimax(minimum).
Probleempjes… Depth first search kan ontaarden in een oneindige loop… Oplossing: bijhouden waar je reeds geweest bent. oplossing
Probleempjes… Breath first search leidt tot enorme bomen (exponentiële complexiteitsontwikkeling…)