Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεTansy Tavoularis Τροποποιήθηκε πριν 9 χρόνια
1
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.1 Γράφοι Ι Μέχρι τώρα οι αλγόριθμοι που εξετάσαμε για γράφους «επισκέπτονταν» τις κορυφές του γράφου με συγκεκριμένη σειρά: η «κοντινότερη» κορυφή, το «συντομότερο» μονοπάτι κ.ο.κ. Στο κεφάλαιο αυτό εισάγουμε κάποιες γενικές τεχνικές διάσχισης γράφων, που είναι χρήσιμες όταν δεν επιβάλλεται η επίσκεψη των κορυφών του γράφου με συγκεκριμένη σειρά. Ένας γράφος μπορεί να βρίσκεται αποθηκευμένος ως δομή στη μνήμη του υπολογιστή. Κάθε κορυφή αναπαριστάται από έναν αριθμό bytes και κάθε ακμή από ένα δείκτη.
2
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.2 Γράφοι ΙΙ Το να «σημειώσουμε» μία κορυφή σημαίνει ότι με κάποιο τρόπο επηρεάζουμε τα δεδομένα, που αντιστοιχούν σ΄ αυτήν. Το να βρούμε μία γειτονική κορυφή σημαίνει να ακολουθήσουμε ένα δείκτη προς αυτήν. Μερικές φορές η ύπαρξη του γράφου δεν απεικονίζεται στη μνήμη, αλλά είναι μόνο ιδεατή. Μία τέτοια εφαρμογή είναι όταν για παράδειγμα χρησιμοποιείται ως μία αφαιρετική δομή για την αναπαράσταση παιγνίων. Τότε, κάθε κορυφή μπορεί να αντιστοιχεί σε μία συγκεκριμένη θέση που π.χ. έχουν τα πιόνια στο πεδίο και κάθε ακμή εκφράζει το γεγονός ότι μπορούμε να μετακινηθούμε από τη μία κορυφή στην άλλη με την εκτέλεση μιας επιτρεπτής κίνησης.
3
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.3 Γράφοι ΙΙΙ Όταν γίνεται εξερεύνηση ενός τέτοιου γράφου αυτός στην πραγματικότητα δεν υπάρχει ως δομή στη μνήμη. Τότε το να «σημειώσουμε» μία κορυφή ταυτίζεται με το να κάνουμε ότι πρέπει για να αναγνωρίσουμε τη θέση στην οποία βρίσκεται η εξέλιξη του παιχνιδιού ή αν αυτό χρειάζεται, να κάνουμε ότι πρέπει, ώστε να μην περάσουμε για δεύτερη φορά από την ίδια θέση. Η «εύρεση» μιας γειτονικής κορυφής σημαίνει αλλαγή της τρέχουσας θέσης μετά από μία επιτρεπτή κίνηση κ.ο.κ. Είτε ο γράφος είναι μία δομή δεδομένων, είτε απλά μία αφαιρετική αναπαράσταση οι τεχνικές διάσχισης είναι οι ίδιες.
4
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.4 Διάσχιση Δυαδικών Δένδρων Ι ΔΙΑΣΧΙΣΗ ΑΠΟ ΑΡΙΣΤΕΡΑ ΠΡΟΣ ΤΑ ΔΕΞΙΑ προδιατεταγμένη διάσχιση (preorder traversal) επίσκεψη σε έναν κόμβο του δένδρου, επίσκεψη σε όλους τους κόμβους του αριστερού υποδένδρου, επίσκεψη σε όλους τους κόμβους του δεξιού υποδένδρου ενδοδιατεταγμένη διάσχιση (inorder traversal) επίσκεψη πρώτα στους κόμβους του αριστερού υποδένδρου, μετά στον κόμβο και τέλος στους κόμβους του δεξιού υποδένδρου μεταδιατεταγμένη διάσχιση (postorder traversal) επίσκεψη στους κόμβους του αριστερού υποδένδρου, μετά στους κόμβους του δεξιού υποδένδρου και τέλος στον κόμβο μέσω του οποίου συνδέονται
5
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.5 Διάσχιση Δυαδικών Δένδρων ΙΙ Ορίζονται επίσης οι αντίστοιχες παραλλαγές για διάσχιση δένδρων από δεξιά προς τα αριστερά. Συνολικά υπάρχουν έξι τρόποι διάσχισης. ΛΗΜΜΑ: Για κάθε μία από τις έξι τεχνικές διάσχισης ο χρόνος T(n) που χρειάζεται για την εξερεύνηση ενός δυαδικού δένδρου αποτελούμενο από n κορυφές είναι Θ(n).
6
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.6 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους Ι Έστω G= ένας μη κατευθυνόμενος γράφος του οποίου πρέπει να επισκεφθούμε όλες τις κορυφές. Ας υποθέσουμε ότι με κάποιο τρόπο είναι πιθανό να «σημειώσουμε» μία κορυφή, έτσι ώστε να φαίνεται ότι την έχουμε επισκεφθεί. Για την εκτέλεση μιας διάσχισης με προτεραιότητα βάθους επιλέγουμε οποιαδήποτε κορυφή v N ως αφετηρία. Σημειώνουμε την κορυφή αυτή έτσι ώστε να φαίνεται ότι την έχουμε επισκεφθεί. Στη συνέχεια επιλέγουμε μια κορυφή που βρίσκεται στο άλλο άκρο ακμής που προσπίπτει στην v, η οποία όμως δεν είναι σημειωμένη. Αυτή επιλέγεται ως νέα αφετηρία και καλείται αναδρομικά η διαδικασία αναζήτησης προτεραιότητας βάθους. Στην επιστροφή της αναδρομικής κλήσης αν υπάρχει άλλη προσπίπτουσα ακμή στο v, έτσι ώστε δεν έχει γίνει επίσκεψη στην κορυφή που αυτή καταλήγει, τότε επιλέγουμε την κορυφή αυτή ως αφετηρία και καλούμε πάλι τη διαδικασία. Η διαδικασία ολοκληρώνεται όταν έχουν «σημειωθεί» όλες οι κορυφές, που βρίσκονται πλησίον της v.
7
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.7 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΙI procedure search(G) for each v N do mark[v] not-visited for each v N do if mark[v] visited then dfs(v) procedure dfs(v:node) {δεν έχουμε επισκεφθεί ακόμη την κορυφή v} mark[v] visited for each node w adjacent to v do if mark[w] visited then dfs(w)
8
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.8 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΙII ΠΑΡΑΔΕΙΓΜΑ Αν υποθέσουμε ότι οι γειτονικές κορυφές εξετάζονται κάθε φορά με αριθμητική σειρά και ότι η αφετηρία είναι η κορυφή 1, τότε μία διάσχιση με προτεραιότητα βάθους θα έχει ως εξής: dfs(1) dfs(2)dfs(4) dfs(3) dfs(7) dfs(6) dfs(8) dfs(5)
9
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.9 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΙV Αποδοτικότητα αλγορίθμου: Πόσος χρόνος απαιτείται για την εξερεύνηση n κορυφών και α ακμών; Κάθε κορυφή την επισκεπτόμαστε ακριβώς μία φορά, άρα υπάρχουν n κλήσεις της διαδικασία dfs. Ακόμη όταν επισκεπτόμαστε μία κορυφή αναζητούμε ποιες από τις γειτονικές της κορυφές δεν είναι σημειωμένες. Αν ο γράφος αναπαριστάται με λίστες γειτνίασης, έτσι ώστε για κάθε κορυφή να έχουμε άμεση προσπέλαση στις γειτονικές της, τότε αυτό έχει πολυπλοκότητα της τάξης α. Άρα έχουμε O(n) κλήσεις διαδικασιών και O(α) για να ελεγχθούν οι σημειωμένες κορυφές, οπότε η συνολική πολυπλοκότητα του αλγορίθμου είναι O(max(α,n)).
10
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.10 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους V Σε ένα συνδεδεμένο γράφο μία διάσχιση με προτεραιότητα βάθους αντιστοιχεί στο γράφο ένα ζευγνύον δένδρο. Οι ακμές του δένδρου αντιστοιχούν στις ακμές που χρησιμοποιούνται στη διάσχιση του γράφου. Οι ακμές που δεν χρησιμοποιούνται στη διάσχιση του γράφου δεν απεικονίζονται στο δένδρο ή απεικονίζονται (αν θέλουμε) με διακεκομμένες γραμμές. Ρίζα του δένδρου είναι η αφετηρία. Αν ο γράφος δεν είναι συνδεδεμένος, τότε η αναζήτηση με προτεραιότητα βάθους δεν αντιστοιχεί ένα δένδρο αλλά ένα δάσος από δένδρα.
11
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.11 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους VΙ Επίσης, μία αναζήτηση με προτεραιότητα βάθους εκτός των άλλων μας παρέχει και μία σειρά αρίθμησης των κορυφών του γράφου ανάλογα με τη σειρά επίσκεψής τους. Σε σχέση με το αντίστοιχο ζευγνύον δένδρο η αρίθμηση αυτή των κόμβων είναι μία προδιατεταγμένη αρίθμηση. Πως όμως τροποποιείται ο αλγόριθμος έτσι ώστε να αποδίδει και αυτήν την αρίθμηση;
12
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.12 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους VΙΙ procedure search(G) pnum 0 for each v N do mark[v] not-visited for each v N do if mark[v] visited then dfs(v) procedure dfs(v:node) {δεν έχουμε επισκεφθεί ακόμη την κορυφή v} pnum pnum+1 prenum[v] pnum mark[v] visited for each node w adjacent to v do if mark[w] visited then dfs(w)
13
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.13 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους VΙΙI ΠΑΡΑΔΕΙΓΜΑ (συνέχεια) κορυφή 12345678 αρίθμηση 12365478 Η εκτέλεση ενός αλγορίθμου προτεραιότητας βάθους δεν αποδίδει πάντα το ίδιο ζευγνύον δένδρο, αλλά αυτό που σχηματίζεται εξαρτάται από την κορυφή που επιλέγεται ως αφετηρία της διάσχισης.
14
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.14 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους IΧ Μία κορυφή v σε ένα συνδεδεμένο γράφο λέμε ότι είναι αποκόπτουσα αν μετά από τη διαγραφή της καθώς επίσης και τη διαγραφή των ακμών που προσπίπτουν σε αυτήν προκύπτει ένας μη συνδεδεμένος γράφος (με περισσότερες από μία συνιστώσες). ΠΑΡΑΔΕΙΓΜΑ Στο γράφο η κορυφή 1 είναι αποκόπτουσα.
15
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.15 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους Χ Ένας γράφος είναι δισυνδεδεμένος αν είναι συνδεδεμένος και δεν έχει αποκόπτουσες κορυφές. Ένας γράφος είναι συνδεδεμένος δύο ακμών αν κάθε αποκότπουσα κορυφή ενώνεται με τουλάχιστο δύο ακμές με κάθε συνιστώσα του γράφου που προκύπτει από την αφαίρεση της αποκόπτουσας. Η διάσχιση με προτεραιότητα βάθους μπορεί να εφαρμοσθεί σε έναν αλγόριθμο εύρεσης αποκόπτουσων κορυφών. Ο τροποποιημένος αλγόριθμος διάσχισης με προτεραιότητα βάθους χρησιμοποιεί μία ακόμη μεταβλητή lowest(v) και υπολογίζει την τιμή που αυτή παίρνει σε όλες τις κορυφές του γράφου. Μία κορυφή είναι τελικά αποκόπτουσα αν είτε είναι ρίζα του ζευγνύοντος δένδρου με περισσότερους από έναν απογόνους, είτε η μεταβλητή lowest(x) παίρνει τιμή μεγαλύτερη από την αρίθμηση της κορυφής v, όπου x κάποια κορυφή απόγονος της v.
16
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.16 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΧΙ ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΑΠΟΚΟΠΤΟΥΣΩΝ ΚΟΡΥΦΩΝ 1. Εκτέλεσε στον γράφο G μία διάσχιση με προτεραιότητα βάθους ξεκινώντας από μία οποιαδήποτε κορυφή του. Έστω Τ το δένδρο που δημιουργείται από τη διάσχιση με προτεραιότητα βάθους και έστω prenum[v] η αρίθμηση που προκύπτει για την κάθε κορυφή από τη διάσχιση. 2. Εκτελείται μεταδιατεταγμένη διάσχιση του δένδρου Τ. Για κάθε κορυφή v, που επισκεπτόμαστε υπολογίζουμε το lowest[v] ως το ελάχιστο των prenum[v] prenum[w], για κάθε κορυφή w τέτοια ώστε να υπάρχει ακμή {v,w} στο G, που να μην υπάρχει αντίστοιχη στο δένδρο Τ (οπίσθια ακμή). lowest[x] για όλα τα x που είναι απόγονοι της v στο δένδρο Τ.
17
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.17 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΧΙΙ ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΑΠΟΚΟΠΤΟΥΣΩΝ ΚΟΡΥΦΩΝ 3. Οι αποκόπτουσες κορυφές προκύπτουν ως εξής: Αν πρόκειται για τη ρίζα του Τ και αυτή έχει περισσότερους από έναν απογόνους. Αν η κορυφή v δεν είναι ρίζα του Τ είναι αποκόπτουσα στον G αν και μόνο αν η v έχει κάποιο απόγονο x με lowest[x] prenum[v] Ορίζουμε: lowest[v]=min{prenum[w]|όταν μπορούμε να πάμε από στην w από την v ακολουθώντας προς τα κάτω όσες ακμές χρειάζεται και μετά χρησιμοποιώντας το πολύ μία οπίσθια ακμή}
18
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.18 Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΧΙΙΙ ΠΑΡΑΔΕΙΓΜΑ ΑΠΟΚΟΠΤΟΥΣΕΣ ΚΟΡΥΦΕΣ: 1 & 4
19
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.19 Αναζήτηση προτεραιότητας βάθους σε κατευθυνόμενους γράφους Ι Ο αλγόριθμος είναι βασικά ο ίδιος που εφαρμόζεται και σε μη κατευθυνόμενους γράφους, μόνο που αλλάζει η ερμηνεία του όρου «γειτονική κορυφή». Σε έναν κατευθυνόμενο γράφο η κορυφή w είναι γειτονική της κορυφής v αν υπάρχει το τόξο (v, w). Αν αυτό συμβαίνει αλλά δεν υπάρχει το τόξο (w,v), τότε η κορυφή w είναι της v αλλά η v δεν είναι γειτονική της w. Με αυτή τη διαφορετική ερμηνεία εφαρμόζουμε τον αλγόριθμο διάσχισης με προτεραιότητα βάθους στο παράδειγμα που ακολουθεί.
20
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.20 Αναζήτηση προτεραιότητας βάθους σε κατευθυνόμενους γράφους ΙΙ dfs(1) dfs(2) dfs(3) dfs(4)dfs(5) dfs(8) dfs(6) dfs(7)
21
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.21 Αναζήτηση προτεραιότητας βάθους σε κατευθυνόμενους γράφους ΙΙI Η αποδοτικότητα είναι επίσης O(max(α, n)) Τα τόξα που χρησιμοποιούνται κατά τη διάσχιση των κορυφών του γράφου μπορεί να σχηματίζουν ένα δάσος από δένδρα και όχι μόνο ένα δένδρο.
22
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.22 Αναζήτηση προτεραιότητας βάθους σε κατευθυνόμενους γράφους ΙV Έστω F τα τόξα του δάσους. Στους μη κατευθυνόμενους γράφους τα τόξα που δεν αντιστοιχούν σε κάποιο απ΄ αυτά του δάσους συνδέουν μία κορυφή με κάποιο πρόγονο (οπίσθια ακμή). Στους κατευθυνόμενους γράφους το σύνολο A \ F απαρτίζεται από τρεις περιπτώσεις ακμών: i. Αυτές που όπως οι (3,1) ή (7,4) οδηγούν σε προγόνους ii. Αυτές που όπως η (1,8) οδηγεί σε κάποιον από τους απογόνους iii. Αυτές που όπως οι (5,2) ή (6,3) οδηγούν σε κορυφές που δεν είναι ούτε πρόγονοι, ούτε απόγονοι. Η κατεύθυνση των τόξων τύπου (iii) είναι πάντα από δεξιά προς τα αριστερά.
23
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.23 Άκυκλοι γράφοι: τοπολογική ταξινόμηση Ι Κατευθυνόμενοι άκυκλοι γράφοι χρησιμοποιούνται σε πλήθος εφαρμογών, όπως π.χ. για την αναπαράσταση της δομής αριθμητικών εκφράσεων που περιλαμβάνουν επαναλαμβανόμενες υποεκφράσεις (a+b)(c+d)+(a+b)(c-d)
24
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.24 Άκυκλοι γράφοι: τοπολογική ταξινόμηση ΙI Μία εφαρμογή στους μεταγλωττιστές είναι η διενέργεια βελτιστοποιητικού μετασχηματισμού απαλειφής κοινών υποεκφράσεων στον ενδιάμεσο κώδικα, που είναι πιθανό να παράγεται μετά από τη συντακτική – σημασιολογική ανάλυση. Στον κώδικα x:=a[i]; a[i]:=a[n]; a[n]:=x αντιστοιχεί ο κώδικας τριών διευθύνσεων και ο γράφος: t11:=4*i x:=a[t11] t12:=4*i t13:=4*n t14:=a[t13] a[t12]:=t14 t15:=4*n a[t15]:=x
25
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.25 Άκυκλοι γράφοι: τοπολογική ταξινόμηση ΙIΙ....που τελικά με απαλοιφή των κοινών υποεκφράσεων αποδίδει τελικά τον κώδικα: t11:=4*i x:=a[t11] t13:=4*n t14:=a[t13] a[t11]:=t14 a[t13]:=x Άλλες εφαρμογές είναι όπου χρειάζεται να ορισθεί μία σχετική διάταξη, όπως για παράδειγμα η σειρά εκτέλεσης των εργασιών στα πλαίσια ενός έργου.
26
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.26 Άκυκλοι γράφοι: τοπολογική ταξινόμηση ΙV Τοπολογική ταξινόμηση των κόμβων ενός κατευθυνόμενου άκυκλου γράφου είναι η πράξη της τοποθέτησης των κόμβων σε μία σειρά, έτσι ώστε αν υπάρχει τόξο (i,j), τότε στη σχηματισθείσα σειρά ο κόμβος i προηγείται απαραιτήτως του j. ΠΑΡΑΔΕΙΓΜΑ σωστές τοπολογικές ταξινομήσεις είναι οι: 1, 2, 3, 4, 6, 8, 12, 24 αλλά και η 1, 3, 2, 6, 4, 12, 8, 24 και ίσως και άλλες
27
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.27 Άκυκλοι γράφοι: τοπολογική ταξινόμηση V Η αναζήτηση με προτεραιότητα βάθους μπορεί να εκτελέσει τοπολογική ταξινόμηση. Πιο συγκεκριμένα, αν προσθέσουμε την επιπλέον γραμμή write v στο τέλος της διαδικασίας, τότε οι αριθμοί των κόμβων που τυπώνονται αν αντιστραφούν αποδίδουν μία τοπολογική ταξινόμηση.
28
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.28 Ισχυρά συνδεδεμένα τμήματα Ι Ένας κατευθυνόμενος γράφος είναι ισχυρά συνδεδεμένος αν για κάθε δύο κορυφές u και v υπάρχει μονοπάτι από το u στο v, αλλά και από το v στο u. Αν ένας κατευθυνόμενος γράφος δεν είναι ισχυρά συνδεδεμένος, τότε ενδιαφερόμαστε για τα μεγαλύτερα δυνατά σύνολα κορυφών, που συγκροτούν ισχυρά συνδεδεμένους υπογράφους. Κάθε ένας απ΄ αυτούς λέμε ότι αποτελεί ένα ισχυρά συνδεδεμένο τμήμα του αρχικού γράφου. ΠΑΡΑΔΕΙΓΜΑ
29
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.29 Ισχυρά συνδεδεμένα τμήματα ΙΙ ΠΑΡΑΔΕΙΓΜΑ (συνέχεια) ισχυρά συνδεδεμένα τμήματα: {1, 2, 3} {4, 7, 8} {5, 6} Πως βρίσκουμε τα ισχυρά συνδεδεμένα τμήματα ενός γράφου; i. Εκτελούμε μία αναζήτηση με προτεραιότητα βάθους ξεκινώντας από τυχαίο κόμβο. Για κάθε κόμβο v του γράφου προκύπτει ένα αριθμός postnum[v]. Αυτό επιτυγχάνεται αν στο τέλος της dfs προσθέσουμε τις δύο εντολές:nump nump+1 postnum[v] nump
30
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.30 Ισχυρά συνδεδεμένα τμήματα ΙΙI ii. Κατασκευάζουμε τον γράφο G’ που είναι ίδιος με τον G με τα τόξα του αντεστραμμένα. iii. Εκτελούμε στον G’ μία αναζήτηση με προτεραιότητα βάθους ξεκινώντας από την κορυφή w με τη μεγαλύτερη τιμή postnum. Αν η αναζήτηση αυτή δεν προσεγγίσει όλες τις κορυφές του γράφου, τότε ξεκινά μία νέα αναζήτηση από την κορυφή με το μεγαλύτερο postnum μεταξύ όλων αυτών που δεν έχουν δεχθεί επίσκεψη. iv. Κάθε δένδρο του δάσους που σχηματίζεται αντιστοιχεί σε ένα ισχυρά συνδεδεμένο τμήμα του G.
31
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.31 Ισχυρά συνδεδεμένα τμήματα ΙV ΠΑΡΑΔΕΙΓΜΑ Αποτελέσματα πρώτης αναζήτησης και αντιστροφή τόξων. Αποτελέσματα δεύτερης αναζήτησης
32
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.32 Αναζήτηση με προτεραιότητα πλάτους Ι Όταν σε ένα κόμβο v φθάνει μία αναζήτηση με προτεραιότητα βάθους, τότε στη συνέχεια επισκέπτεται ένα γείτονα τη v, μετά ένα γείτονα του γείτονα κ.ο.κ. Στην αναζήτηση με προτεραιότητα πλάτους, όταν αυτή φθάνει σε έναν κόμβο v, τότε επισκεπτόμαστε ένα προς ένα όλους τους γείτονες και μετά ο αλγόριθμος συνεχίζει σε άλλους κόμβους. Σε αντίθεση με την αναζήτηση με προτεραιότητα βάθους, που είναι εξ ορισμού αναδρομική, η αναζήτηση με προτεραιότητα πλάτους δεν είναι αναδρομική. Για να φανεί αυτή η αντίθεση προχωράμε σε μία εναλλακτική διατύπωση της αναζήτησης με προτεραιότητα βάθους, όπου γίνεται χρήση στοίβας αντί για αναδρομή. Σημειώνουμε ότι η στοίβα είναι μία δομή LIFO.
33
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.33 Αναζήτηση με προτεραιότητα πλάτους ΙI ΑΝΑΖΗΤΗΣΗ ΜΕ ΠΡΟΤΕΡΑΙΟΤΗΤΑ ΒΑΘΟΥΣ (εναλλακτική διατύπωση) procedure dfs’(v:node) P empty-stack mark[v] visited push v on P while P is not empty do while there exists a node w adjacent to top(P) such that mark[w] visited do mark[w] visited push w on P pop top(P)
34
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.34 Αναζήτηση με προτεραιότητα πλάτους ΙII ΑΝΑΖΗΤΗΣΗ ΜΕ ΠΡΟΤΕΡΑΙΟΤΗΤΑ ΠΛΑΤΟΥΣ procedure bfs(v:node) Q empty-queue mark[v] visited enqueue v into Q while Q is not empty do u first(Q) dequeue u from Q for each node w adjacent to u do if mark[w] visited then mark[v] visited enqueue w into Q
35
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.35 Αναζήτηση με προτεραιότητα πλάτους ΙV Στην αναζήτηση με προτεραιότητα πλάτους χρησιμοποιείται μία ουρά που είναι δομή FIFO. ΠΑΡΑΔΕΙΓΜΑ κόμβος επίσκεψηςουρά 12, 3, 4 23, 4, 5, 6 34, 5, 6 45, 6, 7, 8 56, 7, 8 67, 8 78 8
36
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής, Α.Π.Θ.36 Αναζήτηση με προτεραιότητα πλάτους V Όπως και στην αναζήτηση με προτεραιότητα βάθους, έτσι και σ΄ αυτή την περίπτωση αντιστοιχεί ένα δένδρο. ΠΑΡΑΔΕΙΓΜΑ (συνέχεια) Ο ίδιος αλγόριθμος εφαρμόζεται επίσης και σε κατευθυνόμενους γράφους χρησιμοποιώντας άλλη ερμηνεία για την έννοια γειτονικός κόμβος. Πολυπλοκότητα επίσης O(max(α,n))
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.