Γέφυρες σε Δίκτυα. Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος. Γέφυρα του (με αφετηρία τον ) :

Σχετικά έγγραφα
Διερεύνηση γραφήματος

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Κοντινότεροι Κοινοί Πρόγονοι

Συνεκτικότητα Γραφήματος

1 Διάσχιση κατευθυνόμενων γραφημάτων

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

Διδάσκων: Κωνσταντίνος Κώστα

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Προσεγγιστικοί Αλγόριθμοι

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Προσεγγιστικοί Αλγόριθμοι

Αλγόριθμοι Γραφημάτων

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

Εισαγωγή στους Αλγορίθμους

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Κεφάλαιο 10 Ψηφιακά Λεξικά

Δομές Δεδομένων και Αλγόριθμοι

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Ελαφρύτατες διαδρομές

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Διδάσκων: Παναγιώτης Ανδρέου

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

(elementary graph algorithms)

Θεωρία Γραφημάτων 6η Διάλεξη

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα

Κεφάλαιο 4 Γραφήματα και Δένδρα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

ΘΕΩΡΙΑ ΓΡΑΦΩΝ. 10 η Διάλεξη Κατευθυνόμενοι Γράφοι Βασικά χαρακτηριστικά Αλγόριθμοι διάσχισης κατευθυνόμενων γράφων Λίγα Λόγια για Αλυσίδες Markov

Δομές Δεδομένων και Αλγόριθμοι

Προγραμματισμός Ι (ΗΥ120)

ΠΛΗ111. Ανοιξη Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Αναζήτηση Κατά Βάθος. Επιμέλεια διαφανειών: Δ. Φωτάκης Συμπληρώσεις: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Κατανεμημένα Συστήματα Ι

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 18: B-Δένδρα

ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Αναζήτηση Κατά Πλάτος

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε.

Εισαγωγή στην Επιστήμη των Υπολογιστών

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Εισαγωγή στην Επιστήμη των Υπολογιστών

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Συνδετικότητα γραφήματος (graph connectivity)

Γράφοι. Ορολογία. Ορισµός: G = (V, E) όπου. Ορολογία (συνέχεια) γράφος ή γράφηµα (graph) V:ένα σύνολο E:µια διµελής σχέση στο V

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

ΔυαδικάΔΕΝΔΡΑΑναζήτησης

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Πλάτος

1 Το πρόβλημα της συντομότερης διαδρομής

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Στοίβες με Δυναμική Δέσμευση Μνήμης

Φροντιστήριο 4 Σκελετοί Λύσεων

Διαπεράσεις Μη Κατευθυνόμενων Γραφημάτων

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 3

Διδάσκων: Παναγιώτης Ανδρέου

Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Αναδρομικοί Αλγόριθμοι

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)

ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

Αναζήτηση Κατά Βάθος. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026

ΔΕΝΔΡΙΚΑ ΓΡΑΦΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 3

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

Θέματα Μεταγλωττιστών

Transcript:

Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος και Γέφυρα του (με αφετηρία τον ) : Ακμή που περιέχεται σε κάθε μονοπάτι από το στο s a b c d e f g h i j k l

Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος και Γέφυρα του (με αφετηρία τον ) : Ακμή που περιέχεται σε κάθε μονοπάτι από το στο s a b c d e f g h i j k l

Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος και Γέφυρα του (με αφετηρία τον ) : Ακμή που περιέχεται σε κάθε μονοπάτι από το στο Ιδιότητα : Έστω ένα οποιοδήποτε συνδετικό δένδρο του με ρίζα τον. Κάθε γέφυρα είναι ακμή του. Μπορούμε να βρούμε όλες τις γέφυρες γρήγορα χρησιμοποιώντας καθοδική διερεύνηση (DFS). = δένδρο καθοδικής διερεύνησης με αφετηρία το

Καθοδική διερεύνηση του με αφετηρία το s a b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h 9 i j k l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h 9 i j k 0 l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c d e f g h 9 i j k 0 l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c g h 9 d e i f j k 0 l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c g h 9 d e i f j k 2 0 l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b c g h 9 d e i f j k 2 0 l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b 3 c g h 9 d e i f j k 2 0 l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b 3 c g h 9 d e i f j k 2 0 l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b 3 c g h 9 d e i f j k 2 0 l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b 3 c g h 9 d e i f j k 2 0 l Γράφημα

Καθοδική διερεύνηση του με αφετηρία το s a 2 3 b 3 c g h 9 d e i f j k 2 0 l Γράφημα

Καθοδική διερεύνηση γραφήματος adj Υλοποίηση με αναδρομή : 2 2 2 3 typedef struct node *link; struct node { int v; link next; } 3 3 3... void DFS(int k) /* ο κόμβος k είναι η αφετηρία */ { link t; visited[k] = ; for (t = adj[k]; t!= NULL; t = t->next) if (!visited[t->v]) DFS(t->v); } Χρόνος εκτέλεσης για γράφημα με κόμβους και ακμές

Ιδέα : Επεξεργαζόμαστε τους κόμβους από τα φύλλα προς τη ρίζα του δένδρου καθοδικής διερεύνησης και βρίσκουμε κύκλους του γραφήματος γονέας του στο Κεφαλίδα (header) κόμβου κοντινότερος πρόγονος του στο τέτοιος ώστε υπάρχει μονοπάτι από τον στον που περιέχει μόνο απογόνους του στο αν δεν υπάρχει τέτοιος πρόγονος

Ιδέα : Επεξεργαζόμαστε τους κόμβους από τα φύλλα προς τη ρίζα του δένδρου καθοδικής διερεύνησης και βρίσκουμε κύκλους του γραφήματος γονέας του στο Κεφαλίδα (header) κόμβου κοντινότερος πρόγονος του στο τέτοιος ώστε υπάρχει μονοπάτι από τον στον που περιέχει μόνο απογόνους του στο αν δεν υπάρχει τέτοιος πρόγονος Δάσος Κεφαλίδων (header forest) Αποτελείται από τις ακμές για

Δάσος κεφαλίδων

γονέας του στο υποδένδρο του δάσους με ρίζα τον Θεώρημα Η ακμή είναι γέφυρα αν και μόνο αν είναι η μοναδική ακμή τέτοια ώστε και

Θεώρημα Η ακμή είναι γέφυρα αν και μόνο αν είναι η μοναδική ακμή τέτοια ώστε και Έστω ότι αριθμούμε κάθε κόμβο σε αντίστροφη σειρά μεταδιάταξης (reverse postorder). 2 Τότε η ακμή είναι γέφυρα αν και μόνο 3 αν δεν υπάρχει ακμή τέτοια 0 ώστε και Πόρισμα 3 2 9 Αν το δάσος κεφαλίδων είναι γνωστό τότε μπορούμε να βρούμε όλες τις γέφυρες σε χρόνο (Πως;)

Υπολογισμός δάσους κεφαλίδων Επεξεργαζόμαστε τους κόμβους από τα φύλλα προς τη ρίζα του δένδρου καθοδικής διερεύνησης. Όταν επεξεργαζόμαστε τον κόμβο βρίσκουμε τους κύκλους του γραφήματος που περιλαμβάνουν τον και μόνο απογόνους του στο. Συρρικνώνουμε κάθε τέτοιο κύκλο στον και θέτουμε για κάθε κόμβο του κύκλου. (Η συρρίκνωση των κόμβων μπορεί να γίνει αποτελεσματικά με μια δομή ένωσηςεύρεσης σε ξένα σύνολα.)

3 2 0 3 9 2 Δάσος κεφαλίδων

3 2 0 3 9 2 Δάσος κεφαλίδων

3 2 0 3 9 2 Δάσος κεφαλίδων

3 2 0 3 9 Δάσος κεφαλίδων

3 2 0 9 Δάσος κεφαλίδων

3 2 0 9 Δάσος κεφαλίδων

3 2 0 9 Δάσος κεφαλίδων

3 2 0 9 Δάσος κεφαλίδων

3 2 0 9 Δάσος κεφαλίδων

3 2 0 9 Δάσος κεφαλίδων

3 2 0 Δάσος κεφαλίδων

3 2 0 Δάσος κεφαλίδων

3 2 0 Δάσος κεφαλίδων

3 2 0 3 9 2 Δάσος κεφαλίδων

Υπολογισμός δάσους κεφαλίδων Για να βρούμε τους κύκλους που περιέχουν μόνο απόγονους του μια αντίστροφη αναζήτηση (π.χ. καθοδική διερεύνηση) με αφετηρία το ακολουθούμε τις ακμές σε αντίστροφή φορά. εκτελούμε, όπου Τι γίνεται όμως με τις ακμές που οδηγούν σε μη απογόνους του ; 0 9

Υπολογισμός δάσους κεφαλίδων Για να βρούμε τους κύκλους που περιέχουν μόνο απόγονους του μια αντίστροφη αναζήτηση (π.χ. καθοδική διερεύνηση) με αφετηρία το ακολουθούμε τις ακμές σε αντίστροφή φορά. εκτελούμε, όπου Τι γίνεται όμως με τις ακμές που οδηγούν σε μη απογόνους του ; Μπορούμε να τις αγνοήσουμε, αλλά ο αλγόριθμος μας θα έχει χρόνο εκτέλεσης για γράφημα με κόμβους και ακμές. (Γιατί;) Καλύτερη λύση : Πραγματοποιούμε τους υπολογισμούς σε ένα βοηθητικό (δυναμικό) γράφημα το οποίο έχει το ίδιο σύνολο κόμβων με το αλλά αρχικά καμία ακμή. Προσθέτουμε τις ακμές στο τη στιγμή που χρειάζονται.

Υπολογισμός δάσους κεφαλίδων Καλύτερη λύση : Πραγματοποιούμε τους υπολογισμούς σε ένα βοηθητικό (δυναμικό) γράφημα το οποίο έχει το ίδιο σύνολο κόμβων με το αλλά αρχικά καμία ακμή. Προσθέτουμε τις ακμές στο τη στιγμή που χρειάζονται. Πριν επεξεργαστούμε τον κόμβο εισάγουμε τις ακμές για τις οποίες 0 κκπ(h,l) = κκπ(h,g) = h 0 9 κκπ(k,h) = κκπ(g,l) = h κκπ(c,g) = κκπ(l,d) = d 9 κκπ(d,h) = κκπ(d,c) = d

Υπολογισμός δάσους κεφαλίδων Καλύτερη λύση : Πραγματοποιούμε τους υπολογισμούς σε ένα βοηθητικό (δυναμικό) γράφημα το οποίο έχει το ίδιο σύνολο κόμβων με το αλλά αρχικά καμία ακμή. Προσθέτουμε τις ακμές στο τη στιγμή που χρειάζονται. Πριν επεξεργαστούμε τον κόμβο εισάγουμε τις ακμές για τις οποίες Ο υπολογισμός των κκπ για όλες τις ακμές γίνεται συνολικά σε χρόνο Ολόκληρος ο αλγόριθμος τρέχει σε χρόνο

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