Jump to navigation

Belépés
  • Elfelejtettem a jelszavam
Regisztráció
 
  • Hogyan működik a mateking?
  • Mire jó a matek?
  • Matek érettségi
  • Képletgyűjtemény
  • Feladatgyűjtemény
  • Rólunk
  • Matek 5. osztály próbaüzem
  • Matek 6. osztály próbaüzem
  • Matek 7. osztály próbaüzem
  • Matek 8. osztály próbaüzem
  • Matek 9. osztály
  • Matek 10. osztály
  • Matek 11. osztály
  • Matek 12. osztály
  • Középiskolai matek (teljes)
  • Középszintű matek érettségi
  • Emelt szintű matek érettségi
  • Egyetemi matek alapozó
Összes egyetemi tantárgy
Legnépszerűbb tantárgyak:
  • Analízis 1
  • Analízis 2
  • Analízis 3
  • Valószínűségszámítás
  • Lineáris algebra
  • Diszkrét matematika
  • Statisztika

mateking

Login
 

Számítástudomány alapjai

Kategóriák
  • Kombinatorika
  • Gráfelméleti alapok
  • Gráfok bejárása és gráfalgoritmusok
  • Gráfok izomorfiája és síkbarajzolhatósága
  • Irányított gráfok, gráfalgoritmusok irányított gráfokban
  • Menger tételei, többszörös összefüggőség
  • CPM és PERT algoritmus
  • Páros gráfok, párosítások
  • Kromatikus szám, klikk, perfekt gráfok
  • Gráfparaméterek, párosítások
  • Maximális folyam, Ford-Fulkerson-algoritmus
  • Mátrixok és vektorok
  • Vektorterek, független és összefüggő vektorok
  • Lineáris egyenletrendszerek, mátrixok rangja és inverze
  • Determináns, sajátérték, sajátvektor
  • Lineáris leképezések
  • Oszthatóság
  • Euklideszi algoritmus & Diofantoszi egyenletek
  • Kongruenciák

Irányított gráfok, gráfalgoritmusok irányított gráfokban

  • Epizódok
  • Képletek
01
 
DFS-algoritmus irányított gráfokban, DFS-fa
02
 
BFS-algoritmus irányított gráfokban, BFS-fa
03
 
Dijkstra algoritmus irányított gráfokban
04
 
A Floyd algoritmus

DFS-algoritmus irányított gráfokban

A DFS algoritmusnak az a lényege, hogy kiindulunk egy csúcsból, és megyünk ameddig tudunk.

Az, hogy merre megyünk, teljesen a véletlen műve.

Egyszer aztán elérkezünk egy olyan pontba, ahonnan már nincs tovább.

Innen már csak olyan csúcsba tudnánk továbblépni, ahol korábban már jártunk.

Ekkor visszaugrunk egészen addig, ahonnan még vezet út bejáratlan csúcsba.

Ha már minden csúcshoz eljutottunk, akkor a DFS algoritmus véget ér.

Megnézem a kapcsolódó epizódot

DFS-fa

A DFS algoritmus eredményeként kapjuk a DFS-fát.

Hogyha a DFS-fába berajzoljuk az eredeti gráf többi élét is, akkor ezek az élek három típusba sorolhatóak. Vannak olyan élek, amelyek képesek lerövidíteni egy utat a DFS fában. Ezeket az éleket úgy hívjuk, hogy "előre-él". Ha az eredeti gráfban van fordított irányú él, akkor ezt az élt "vissza-él"-nek nevezzük. Hogyha az eredeti gráfban van $u$-ból $v$-be vezető él, akkor ezt az élt "kereszt-él"-nek nevezzük.

Megnézem a kapcsolódó epizódot

BFS-algoritmus irányított gráfokban

A BFS-algoritmus lényege, hogy kiindulunk egy csúcsból, aztán megkeressük a közvetlen szomszédjait. Innen folytatódik az algoritmus, és az új csúcsoknak keressük meg a szomszédjait. Ha több él is vezet egy szomszéd felé, mindegy melyiket választjuk. Az algoritmust addig ismételjük, amíg minden csúcsot meg nem találtunk.

Megnézem a kapcsolódó epizódot

BFS-fa

A BFS algoritmus eredményeként kapjuk a BFS-fát.

Hogyha a BFS-fába berajzoljuk az eredeti gráf többi élét is, akkor ezek az élek három típusba sorolhatóak.

Vannak "előre-él"ek, "vissza-él"ek és "kereszt-él"ek.

Megnézem a kapcsolódó epizódot

Dijkstra algoritmus

A Dijkstra algoritmus képes megtalálni a gráf egy adott csúcsából a többi csúcsba vezető legrövidebb utat.

Az algoritmus lényege, hogy kiválasztunk egy pontot, és ebből a pontból kiindulva csúcsról csúcsra haladva felderítjük az egész gráfot.

Megnézem a kapcsolódó epizódot

A témakör tartalma


DFS-algoritmus irányított gráfokban, DFS-fa

Most őrülten izgalmas dolgokat fogunk csinálni irányított gráfokkal. Megnézzük, hogy az irányított gráfokban hogyan működnek a különböző gráf-algoritmusok. Kezdjük a DFS algoritmussal, vagyis a gráfok mélységi keresésével. A mélységi keresés valójában nagyon egyszerű. A DFS algoritmusnak az a lényege, hogy kiindulunk egy csúcsból… és megyünk ameddig tudunk. Az, hogy merre megyünk, teljesen a véletlen műve. Egyszer aztán elérkezünk egy olyan pontba, ahonnan már nincs tovább. Innen már csak olyan csúcsba tudnánk továbblépni, ahol korábban már jártunk. Ekkor visszaugrunk egészen addig… ahonnan még vezet út bejáratlan csúcsba. Ha már minden csúcshoz eljutottunk, akkor a DFS algoritmus véget ér. A DFS algoritmus eredményeként kapjuk a DFS-fát. Hogyha a DFS-fába berajzoljuk az eredeti gráf többi élét is, akkor ezek az élek három típusba sorolhatóak. Vannak olyan élek, amelyek képesek lerövidíteni egy utat a DFS fában. Ezeket az éleket úgy hívjuk, hogy „előre-él”. Legyen u és v két olyan csúcs, amelyek a DFS-fában nem szomszédosak és vezet út u-ból v-be. Hogyha az eredeti gráfban van u-ból v-be vezető él, akkor ezt az élt „előre-él”nek nevezzük. ELŐRE-ÉL Itt van aztán ez a másik él is. Ez pont olyan, mint az „előre-él” csak éppen visszafelé mutat. Legyen u és v két olyan csúcs a DFS-fában, hogy vezet út u-ból v-be. Hogyha az eredeti gráfban van fordított irányú, vagyis v-ből u-ba vezető él, akkor ezt az élt „vissza-él”nek nevezzük. Itt most van még néhány „vissza-él”. Vannak aztán olyan élek is, amelyek a DFS-fa két különböző ágát kötik össze. Legyen u és v két olyan csúcs a DFS-fában, hogy sem u-ból v-be, sem v-ből u-ba nem vezet út. Hogyha az eredeti gráfban van u-ból v-be vezető él, akkor ezt az élt „kereszt-él”nek nevezzük. A DFS-fa rengeteg hasznos információt árul el az eredeti gráf szerkezetéről. Ha a DFS-fában van vissza-él, az azt jelenti, hogy a gráf ciklikus. Tehát körbe lehet menni. Éppenséggel most elég sokféleképpen… Hogyha az eredeti gráf aciklikus, vagyis nincsenek benne körök… az DFS-fa alapján is azonnal kiderül: Nincsenek benne vissza-élek. Most, hogy mindezt megtudtuk, lássuk mi a helyzet a BFS algoritmussal.


BFS-algoritmus irányított gráfokban, BFS-fa

És most lássuk, hogyan is működik itt a BFS algoritmus.

Az algoritms lényege, hogy kiindulunk egy csúcsból…

Aztán megkeressük a közvetlen szomszédjait.

A gráf irányított, ezért a 7-es csúcsba sajna nem vezet él az 1-esből.

Úgy tűnik, hogy két szomszédot találtunk.

Most folytatjuk a keresést, és az új csúcsoknak keressük meg a szomszédjait.

Nagyszerű dolog, hogy a 4-es csúcs mindkét korábbi csúcsnak szomszédja, de ilyenkor csak az egyik élt választjuk.

Mindegy melyiket.

És megyünk tovább…

Hát, ez meg is van.

A BFS algoritmus eredményeként kapjuk a BFS-fát.

Hogyha a BFS-fába berajzoljuk az eredeti gráf többi élét is…

Akkor ezek az élek három típusba sorolhatóak.

Ahogyan korábban a DFS-fánál már láttuk, vannak „előre-él”ek, „vissza-él”ek és „kereszt-él”ek.

 Pontosabban csak „vissza-él”ek vannak…

és „kereszt-él”ek.

„Előre-él” nincs.

Ha ugyanis lenne egy „előre-él”…

mondjuk például itt…

Akkor lenne egy közvetlen él a 3-as csúcsból a 6-os csúcsba.

De akkor a 3-as csúcsnak a 6-os is közvetlen szomszédja lenne…

és így hibás lenne a BFS-fa.

Azokban az esetekben, amikor a gráf súlyozott, a BFS algoritmus nem működik.

Ilyenkor a BFS helyett egy másik algoritmus van forgalomban.

Nézzük meg ezt is…


Dijkstra algoritmus irányított gráfokban

És most nézzük meg, hogyan működik a Dijkstra algoritmus irányított gráfokban.

Az algoritmus lényege, hogy választunk egy pontot…

és ebből a pontból kiindulva csúcsról csúcsra haladva földerítjük az egész gráfot.

Megnézzük, hogy az 1-es csúcs közvetlen szomszédjai milyen távol vannak…

és szépen egyenként beírjuk a táblázatba.

Aztán amelyik csúcsról kiderül, hogy a legközelebb van…

annak a sorszámát beírjuk ide.

És ebből az új csúcsból megyünk tovább.

Megint kiválasztjuk a minimumot…

és a csúcs sorszámát beírjuk szépen ide, ahova kell.

Aztán ebből a csúcsból folytatjuk a felderítést.

Találtunk már ennél rövidebb utat is a 4-es csúcsba…

Úgyhogy ezt most szépen kicseréljük.

Aztán lássuk, mi van itt még…

Kiválasztjuk megint a legkisebbet…

és a csúcs sorszámát beírjuk ide, ahova kell.

Most a 4-es csúcsból folytatjuk a felderítést.

Nagy izgalmak itt nem lesznek.

És megyünk tovább az 5-ös csúcsból.

Végül itt a 7-es.

Hát, volt már jobb is…

A Dijkstra algoritmus távolság szerint felsorolta a gráf csúcsait.

Na persze ez a távolság mindig az 1-es csúcstól mért távolság.

Hogyha kíváncsiak vagyunk két tetszőlegesen kiválasztott csúcs távolságára…

akkor ebben egy újabb algoritmus fog tudni nekünk segíteni.


A Floyd algoritmus

Kapcsolatfelvétel
  • Segítségnyújtás
  • Hibabejelentés
  • Kapcsolatfelvétel
  • Mateking torrent bejelentés
Rólunk
  • A projektről
  • Médiamegjelenések
  • Legyen élmény a matek
  • Mire jó a matek?
Tartalomjegyzék
  • Középiskolai matek
  • Analízis 1
  • Analízis 2
  • Analízis 3
  • Lineáris algebra
  • Valószínűségszámítás
  • Diszkrét matematika
  • Statisztika
  • További tantárgyak
  • Egyetemi tematikák
  • Matek érettségi
GYIK Általános szerződési feltételek Adatkezelési tájékoztató Felhasználás oktatási célra

Cookie-használat módosítása

© Minden jog fenntartva!

Az oldalon található tartalmak részének vagy egészének másolása, elektronikus úton történő tárolása vagy továbbítása, harmadik fél számára nyújtott oktatási célra való hasznosítása kizárólag az üzemeltető írásos engedélyével történhet. Ennek hiányában a felsorolt tevékenységek űzése büntetést von maga után!

barion
macroweb
  • Tantárgyaim