Ebben a történetben a mesterséges intelligencia és a neurális hálózatok alapjául szolgáló két általánosan használt algoritmust fogom összehasonlítani, nevezetesen a depth-first-search és a breadth-first-search algoritmusokat. Ha még nem érted ezt a két algoritmust, nézd meg a többi cikkemet egy 5 perces oktatásért, és máris megértheted őket.
DFS:https://medium.com/@tingyan.deng/depth-first-search-short-tutorial-165b41f1b1c0
BFS:https://medium.com/@tingyan.deng/breadth-first-search-short-tutorial-a1ceb78b0c11
Először is, mindkettő informált keresési algoritmus, ami azt jelenti, hogy nyers erővel működnek, és nincs további információjuk az állapotról vagy a keresési térről azon kívül, hogy hogyan kell a fát bejárni. Ha olvastad a korábbi DFS-ről vagy BFS-ről szóló cikkeimet, akkor tudod, hogy egyik sem nézi meg az egyes lépések súlyát a keresési folyamat során.
- Futtatási idő:
- mikor DFS>BFS: Ha a keresett csomópont nagyon mélyen van, vagy több olyan célcsomópont van, ami elég mélyen van, akkor a DFS-t kell használnunk. Ebben az esetben a BFS-nek minden fenti csomópontot meg kell látogatnia, mielőtt a mélyen lévő csomópontokat meglátogatná, ami túl sok időt vesz igénybe.
- mikor BFS>DFS: A BFS használható egyetlen forrásból származó legrövidebb út megtalálására súlyozatlan gráfban, mert a BFS-ben a forráscsomópontból minimális számú éllel érjük el a csúcsot. Ezzel szemben a DFS-ben több élen is áthaladhatunk, hogy egy forrásból elérjünk egy célcsúcsot.
- keresés típusa: Mindkettő tájékozatlan keresés
- memória összehasonlítás:
- adatszerkezet: A BFS több memóriát vesz igénybe, mert többet kell visszafelé haladnia, mint a DFS-nek általában.
- adatszerkezet: A DFS egy vermet használ, amely a gyökértől a keresett csomópontig tartalmazza a csomópontokat. A BFS egy várólistát használ, amely a keresés elején lévő csomópontokat tartalmazza.