Különbség a BFS VS DFS között

A szélesség első keresés (BFS) és a mélység első keresés (DFS) két fontos algoritmus, amelyet a kereséshez használnak. A szélesség-első keresés a keresést az első csomóponttól indítja, majd az áthalad a szinteknél, amelyek közelebb vannak a gyökér csomóponthoz, míg a Mélység első keresése algoritmus az első csomóponttal kezdődik, majd befejezi az útját a megfelelő út végső csomópontjáig. Mindkét algoritmus minden csomóponton áthalad a keresés során. A két algoritmus számára különféle kódok vannak írva a bejárási folyamat végrehajtásához. Fontos keresési algoritmusoknak tekintik őket a mesterséges intelligencia területén is.

Ebben a témában megismerjük a BFS VS DFS-t.

Hogyan működik a BFS és a DFS?

Mindkét algoritmus működési mechanizmusát az alábbiakban példákkal magyarázzuk. Kérjük, forduljon hozzájuk az alkalmazott megközelítés jobb megértéséhez.

Szélesség-első keresési példa

  • 1. lépés: Az N1 a gyökér csomópont, tehát innen indul. Az N1 csatlakozik három N2, N3 és N4 csomóponttal. Mind a három csomópont még nincs meglátogatva. Tehát az N2-től kezdjük, és a sorban tároljuk. Tehát a Q nevű sor csak N2-t tartalmaz.

Q: N2

  • 2. lépés: Ezután az N1-hez kapcsolódó csomópont N3. Mivel átmentünk vagy meglátogattuk a csomópontot, a sorban tároljuk. Tehát a frissített sor az

Q: N3, N2

  • 3. lépés: Ezután a gyökércsomóponttal összekötött csomópont N4. Tároljuk a sorban.

Q: N4, N3, N2

  • 4. lépés: Az N1-hez kapcsolódó összes csomópontot a sorban tárolja. Most eltávolítottuk az N2-et a sorból a First in First Out (FIFO) elv szerint, és megtaláljuk az N2-hez kapcsolódó csomópontokat, azaz N5. Az N5-öt egyszer nem látogatják meg, ezért a sorban tároljuk.

Q: N5, N4, N3

  • 5. lépés: Az összes csúcs meglátogatásra kerül, tehát folyamatosan távolítjuk el a csomópontokat a sorból, amíg az üres.

Példa a mélységre

  • 1. lépés: Az N1-vel kezdjük, mint a kezdő csomópontot, és tároljuk az S halomban. Az N1 három szomszédos N2, N3 és N4 csomóponttal van összekötve. Az N2-vel kezdve (betűrendben vagy numerikusan is elindíthatjuk) ezt betesszük a verembe.

S: N2 (felül), N1

  • 2. lépés: Most az N2 szomszédos csomópontjai N1 és N5. Mivel az N1 már jelen van a veremben, az azt jelenti, hogy meglátogatják, ezért az N5-et elvisszük és az S halomba helyezzük.

S: N5 (felül), N2, N1

  • 3. lépés: Most az N5 szomszédos csomópontjai N3 és N4. Kezdjük az N3-at és betesszük a stackbe.

S: N3 (felül), N5, N2, N1

Most az N3 csatlakozik az N5-hez és az N1-hez, amelyek már jelen vannak a veremben, vagyis meglátogatják őket, tehát az N3-ot eltávolítottuk a veremből, mint az Utolsó előbb elvben (LIFO) elv szerint.

S: N5 (felül), N2, N1

  • 4. lépés: Most feltesszük az utolsó csomópontot, amellyel még nem találkoztunk az N4-ben végighaladó teljes szakaszban, és betesszük a stackbe.

S: N4 (felül), N5, N2, N1

  • 5. lépés: Most nem hagyunk ki semmilyen más csomópontot, tehát ellenőrizni fogjuk a veremben, hogy vannak-e olyan csomópontok, amelyek kapcsolódnak a megfelelő csomópontokhoz, amelyek nincsenek meglátogatva. Ha az összes csatlakoztatott csomópont meglátogatásra kerül, akkor eltávolítjuk a veremben lévő csomópontokat. Például az N4-nek nincs összekötő csomópontja, amelyet nem ellenőriztünk, így eltávolítjuk a veremből. Hasonlóképpen ellenőrizhetjük más csomópontokat is. Az algoritmus leáll, ha a verem üres.

BFS VS DFS (Infographics) közötti összehasonlítás

Az alábbiakban bemutatjuk a 6 legfontosabb különbséget a BFS VS DFS között

Főbb különbségek a BFS és a DFS között

Beszéljünk néhány fontosabb különbségről a BFS és a DFS között

  • A szélesség-első keresés (BFS) a gyökér csomóponttól indul, és meglátogatja a hozzá kapcsolódó összes csomópontot, míg a DFS a gyökér csomóponttól indul, és befejezi a csomóponthoz csatolt teljes utat.
  • A BFS a Queue megközelítését követi, míg a DFS a Stack megközelítését követi.
  • A BFS-ben alkalmazott megközelítés optimális, míg a DFS-ben alkalmazott eljárás nem optimális.
  • Ha célunk a legrövidebb út megtalálása, akkor a BFS-t részesítjük előnyben a DFS-nél.

BFS és DFS összehasonlító táblázat

Beszéljük meg a BFS és a DFS közötti összehasonlítást

BFSDFS
A BFS teljes formája a Breadth-First Search.A DFS teljes formája a Depth First Search
A BFS célja a legrövidebb távolság keresése, és az első vagy gyökér csomóponttól indul, és az összes csomóponton áthalad, amely a megfelelő csomópontokhoz kapcsolódik. Az alábbiakban ismertetett módon világosan megismerheti annak működési mechanizmusát.A DFS mélység-alapú megközelítést követ és teljes útvonalat készít az adott csomóponthoz csatolt összes csomóponton keresztül. Az alábbiakban ismertetett módon világosan megismerheti annak működési mechanizmusát.
Ezt a Queue elv alapján hajtják végre, amely az első az elsőből kiindulási megközelítés (FIFO).Ez a Stack elv alapján történik, amely az Utolsó be az első megközelítés (LIFO).
A többször áthaladó csomópontokat eltávolítják a sorból.A meglátogatott csomópontokat beillesztjük a kötegbe, majd később, ha nincs több meglátogatandó csomópont, akkor eltávolítjuk őket.
Ez viszonylag lassabb, mint a Mélység első keresése.Ez gyorsabb, mint a szélesség első keresési algoritmus.
A memóriakiosztás több, mint a Mély első keresés algoritmus.A memória allokációja viszonylag kevesebb, mint a szélesség első keresési algoritmusa

Következtetés

Számos olyan alkalmazás létezik, ahol a fenti algoritmusokat gépi tanulásként vagy mesterséges intelligenciával kapcsolatos megoldások keresésére használják. Ezeket elsősorban grafikonokban használják annak megállapítására, hogy kétoldalú-e vagy sem, a kapcsolódó ciklusok vagy összetevők felismerésére. Fontos algoritmusoknak tekintik azokat is, amelyek megtalálják az utat vagy a legrövidebb távolságot. Az üzleti igényektől függően két algoritmust használhatunk. Ugyanakkor a szélesség első keresést optimális módszernek tekintik, nem pedig a Mély első keresés algoritmust.

Ajánlott cikkek

Ez egy útmutató a BFS VS DFS-hez. Itt tárgyaljuk a BFS VS DFS kulcsfontosságú különbségeit az infographics és az összehasonlító táblázat segítségével. Lehet, hogy megnézi a következő cikkeket is, ha többet szeretne megtudni -

  1. BFS algoritmus
  2. TeraData vs Oracle
  3. Big Data vs Data Warehouse
  4. Big Data vs Apache Hadoop: A 4. legjobb összehasonlítás, amelyet meg kell tanulnia

Kategória: