Πώς μπορώ να χρησιμοποιήσω το BFS για να βρω τη συντομότερη διαδρομή;
Πώς μπορώ να χρησιμοποιήσω το BFS για να βρω τη συντομότερη διαδρομή;

Βίντεο: Πώς μπορώ να χρησιμοποιήσω το BFS για να βρω τη συντομότερη διαδρομή;

Βίντεο: Πώς μπορώ να χρησιμοποιήσω το BFS για να βρω τη συντομότερη διαδρομή;
Βίντεο: Πώς μπορώ να χρησιμοποιήσω τις εφαρμογές γνωριμιών για να ανοίξω πόρτες ώστε να βρω ταίρι; 2024, Νοέμβριος
Anonim

Προς το εύρημα ο συντομότερο μονοπάτι , το μόνο που έχετε να κάνετε είναι να ξεκινήσετε από την πηγή και να εκτελέσετε ένα πλάτος πρώτα αναζητήστε και σταματήστε όταν εύρημα Κόμβος προορισμού σας. Το μόνο πρόσθετο πράγμα που πρέπει να κάνετε είναι να έχετε έναν πίνακα previous[n] που θα αποθηκεύει τον προηγούμενο κόμβο για κάθε κόμβο που επισκέπτεστε. Το προηγούμενο της πηγής μπορεί να είναι μηδενικό.

Ρωτήθηκε επίσης, γιατί το BFS βρίσκει το συντομότερο μονοπάτι;

Εμείς το λέμε Το BFS είναι το αλγόριθμος που θα χρησιμοποιήσουμε αν θέλουμε βρείτε το συντομότερο μονοπάτι σε ένα μη κατευθυνόμενο, μη σταθμισμένο γράφημα. Η αξίωση για BFS είναι ότι η πρώτη φορά που ανακαλύπτεται ένας κόμβος κατά τη διέλευση, αυτή η απόσταση από την πηγή θα δώστε μας το συντομότερο μονοπάτι . Το ίδιο δεν μπορεί να ειπωθεί για ένα σταθμισμένο γράφημα.

Μάθετε επίσης, πού είναι το συντομότερο μονοπάτι στο λαβύρινθο; Βρείτε το συντομότερο μονοπάτι σε έναν λαβύρινθο

  1. Ανεβείτε: (x, y) –> (x – 1, y)
  2. Μεταβείτε αριστερά: (x, y) –> (x, y – 1)
  3. Πήγαινε κάτω: (x, y) –> (x + 1, y)
  4. Μετάβαση δεξιά: (x, y) –> (x, y + 1)

Επίσης για να ξέρετε, μπορούμε να χρησιμοποιήσουμε το DFS για να βρούμε τη συντομότερη διαδρομή;

Οχι, εσείς δεν μπορώ χρησιμοποιήστε το DFS για να βρείτε τη συντομότερη διαδρομή σε ένα μη σταθμισμένο γράφημα. Δεν ισχύει ότι, εύρεση ο συντομότερο μονοπάτι μεταξύ δύο κόμβων επιλύεται αποκλειστικά από το BFS. Σε ένα μη σταθμισμένο γράφημα το συντομότερο μονοπάτι είναι ο μικρότερος αριθμός ακμών που πρέπει να διασχιστούν από τους κόμβους πηγής σε κόμβους προορισμού.

Ποιος είναι ο χρόνος λειτουργίας του BFS;

Πολυπλοκότητα του Πλάτος Πρώτη Αναζήτηση Πλάτος-πρώτα Αναζήτηση έχει ένα χρόνος τρεξίματος του O (V + E) O(V + E) O(V+E) αφού κάθε κορυφή και κάθε ακμή θα ελεγχθεί μία φορά. Ανάλογα με την είσοδο στο γράφημα, το O (E) O(E) O(E) θα μπορούσε να είναι μεταξύ O (1) O(1) O(1) και O (V 2) O(V^2) O(V2).

Συνιστάται: