Γράφοι Ι

36
Παρασκευή, 17 Ιουνίου 2022 Παρασκευή, 17 Ιουνίου 2022 Τμ. Πληροφορικής, Α.Π.Θ. Τμ. Πληροφορικής, Α.Π.Θ. 1 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Γράφοι Ι Μέχρι τώρα οι αλγόριθμοι που εξετάσαμε για γράφους «επισκέπτονταν» τις κορυφές του γράφου με συγκεκριμένη σειρά: η «κοντινότερη» κορυφή, το «συντομότερο» μονοπάτι κ.ο.κ. Στο κεφάλαιο αυτό εισάγουμε κάποιες γενικές τεχνικές διάσχισης γράφων, που είναι χρήσιμες όταν δεν επιβάλλεται η επίσκεψη των κορυφών του γράφου με συγκεκριμένη σειρά. Ένας γράφος μπορεί να βρίσκεται αποθηκευμένος ως δομή στη μνήμη του υπολογιστή. Κάθε κορυφή αναπαριστάται από έναν αριθμό bytes και κάθε ακμή από ένα δείκτη.

description

Γράφοι Ι. Μέχρι τώρα οι αλγόριθμοι που εξετάσαμε για γράφους «επισκέπτονταν» τις κορυφές του γράφου με συγκεκριμένη σειρά: η «κοντινότερη» κορυφή, το «συντομότερο» μονοπάτι κ.ο.κ. - PowerPoint PPT Presentation

Transcript of Γράφοι Ι

Page 1: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 11

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Γράφοι Ι

Μέχρι τώρα οι αλγόριθμοι που εξετάσαμε για γράφους «επισκέπτονταν» τις κορυφές του γράφου με συγκεκριμένη σειρά: η «κοντινότερη» κορυφή, το «συντομότερο» μονοπάτι κ.ο.κ.

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

Ένας γράφος μπορεί να βρίσκεται αποθηκευμένος ως δομή στη μνήμη του υπολογιστή. Κάθε κορυφή αναπαριστάται από έναν αριθμό bytes και κάθε ακμή από ένα δείκτη.

Page 2: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 22

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Γράφοι ΙΙΤο να «σημειώσουμε» μία κορυφή σημαίνει ότι με κάποιο τρόπο επηρεάζουμε τα δεδομένα, που αντιστοιχούν σ΄ αυτήν. Το να βρούμε μία γειτονική κορυφή σημαίνει να ακολουθήσουμε ένα δείκτη προς αυτήν.

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

Page 3: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 33

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Γράφοι ΙΙΙ

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

Page 4: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 44

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Διάσχιση Δυαδικών Δένδρων ΙΔΙΑΣΧΙΣΗ ΑΠΟ ΑΡΙΣΤΕΡΑ ΠΡΟΣ ΤΑ ΔΕΞΙΑ προδιατεταγμένη διάσχιση (preorder traversal)

επίσκεψη σε έναν κόμβο του δένδρου, επίσκεψη σε όλους τους κόμβους του αριστερού υποδένδρου, επίσκεψη σε όλους τους κόμβους του δεξιού υποδένδρου

ενδοδιατεταγμένη διάσχιση (inorder traversal)επίσκεψη πρώτα στους κόμβους του αριστερού υποδένδρου, μετά στον κόμβο και τέλος στους κόμβους του δεξιού υποδένδρου

μεταδιατεταγμένη διάσχιση (postorder traversal)επίσκεψη στους κόμβους του αριστερού υποδένδρου, μετά στους κόμβους του δεξιού υποδένδρου και τέλος στον κόμβο μέσω του οποίου συνδέονται

Page 5: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 55

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Διάσχιση Δυαδικών Δένδρων ΙΙ

Ορίζονται επίσης οι αντίστοιχες παραλλαγές για διάσχιση δένδρων από δεξιά προς τα αριστερά.

Συνολικά υπάρχουν έξι τρόποι διάσχισης.

ΛΗΜΜΑ: Για κάθε μία από τις έξι τεχνικές διάσχισης ο χρόνος T(n) που χρειάζεται για την εξερεύνηση ενός δυαδικού δένδρου αποτελούμενο από n κορυφές είναι Θ(n).

Page 6: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 66

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους Ι Έστω G=<N,A> ένας μη κατευθυνόμενος γράφος του οποίου

πρέπει να επισκεφθούμε όλες τις κορυφές. Ας υποθέσουμε ότι με κάποιο τρόπο είναι πιθανό να «σημειώσουμε» μία κορυφή, έτσι ώστε να φαίνεται ότι την έχουμε επισκεφθεί.

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

Η διαδικασία ολοκληρώνεται όταν έχουν «σημειωθεί» όλες οι κορυφές, που βρίσκονται πλησίον της v.

Page 7: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 77

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΙI

procedure search(G)for each vN do mark[v]not-visitedfor each vN do

if mark[v]visited then dfs(v)procedure dfs(v:node)

{δεν έχουμε επισκεφθεί ακόμη την κορυφή v}mark[v]visitedfor each node w adjacent to v do

if mark[w]visited then dfs(w)

Page 8: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 88

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΙIIΠΑΡΑΔΕΙΓΜΑ

Αν υποθέσουμε ότι οι γειτονικές κορυφές εξετάζονται κάθε φορά με αριθμητική σειρά και ότι η αφετηρία είναι η κορυφή 1, τότε μία διάσχιση με προτεραιότητα βάθους θα έχει ως εξής:

dfs(1) dfs(2) dfs(4) dfs(3) dfs(7) dfs(6) dfs(8)

dfs(5)

1

2 3 4

5 6 7 8

Page 9: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 99

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΙV

Αποδοτικότητα αλγορίθμου: Πόσος χρόνος απαιτείται για την εξερεύνηση n κορυφών και α ακμών;Κάθε κορυφή την επισκεπτόμαστε ακριβώς μία φορά, άρα υπάρχουν n κλήσεις της διαδικασία dfs. Ακόμη όταν επισκεπτόμαστε μία κορυφή αναζητούμε ποιες από τις γειτονικές της κορυφές δεν είναι σημειωμένες. Αν ο γράφος αναπαριστάται με λίστες γειτνίασης, έτσι ώστε για κάθε κορυφή να έχουμε άμεση προσπέλαση στις γειτονικές της, τότε αυτό έχει πολυπλοκότητα της τάξης α. Άρα έχουμε O(n) κλήσεις διαδικασιών και O(α) για να ελεγχθούν οι σημειωμένες κορυφές, οπότε η συνολική πολυπλοκότητα του αλγορίθμου είναι O(max(α,n)).

Page 10: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1010

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους V

Σε ένα συνδεδεμένο γράφο μία διάσχιση με προτεραιότητα βάθους αντιστοιχεί στο γράφο ένα ζευγνύον δένδρο. Οι ακμές του δένδρου αντιστοιχούν στις ακμές που χρησιμοποιούνται στη διάσχιση του γράφου. Οι ακμές που δεν χρησιμοποιούνται στη διάσχιση του γράφου δεν απεικονίζονται στο δένδρο ή απεικονίζονται (αν θέλουμε) με διακεκομμένες γραμμές. Ρίζα του δένδρου είναι η αφετηρία.Αν ο γράφος δεν είναι συνδεδεμένος, τότε η αναζήτηση με προτεραιότητα βάθους δεν αντιστοιχεί ένα δένδρο αλλά ένα δάσος από δένδρα.

Page 11: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1111

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους VΙ

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

Σε σχέση με το αντίστοιχο ζευγνύον δένδρο η αρίθμηση αυτή των κόμβων είναι μία προδιατεταγμένη αρίθμηση.

Πως όμως τροποποιείται ο αλγόριθμος έτσι ώστε να αποδίδει και αυτήν την αρίθμηση;

Page 12: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1212

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους VΙΙ

procedure search(G)pnum0for each vN do mark[v]not-visitedfor each vN do

if mark[v]visited then dfs(v)procedure dfs(v:node)

{δεν έχουμε επισκεφθεί ακόμη την κορυφή v}pnumpnum+1prenum[v]pnummark[v]visitedfor each node w adjacent to v do

if mark[w]visited then dfs(w)

Page 13: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1313

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους VΙΙI

ΠΑΡΑΔΕΙΓΜΑ (συνέχεια)κορυφή 1 2 3 4 5 6 7

8αρίθμηση 1 2 3 6 5 4 7

8 Η εκτέλεση ενός αλγορίθμου προτεραιότητας βάθους

δεν αποδίδει πάντα το ίδιο ζευγνύον δένδρο, αλλά αυτό που σχηματίζεται εξαρτάται από την κορυφή που επιλέγεται ως αφετηρία της διάσχισης.

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

Page 14: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1414

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους IΧ

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

ΠΑΡΑΔΕΙΓΜΑΣτο γράφο

η κορυφή 1 είναι αποκόπτουσα.

1

2 3 4

5 6 7 8

Page 15: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1515

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους Χ

Ένας γράφος είναι δισυνδεδεμένος αν είναι συνδεδεμένος και δεν έχει αποκόπτουσες κορυφές.

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

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

Ο τροποποιημένος αλγόριθμος διάσχισης με προτεραιότητα βάθους χρησιμοποιεί μία ακόμη μεταβλητή lowest(v) και υπολογίζει την τιμή που αυτή παίρνει σε όλες τις κορυφές του γράφου.

Μία κορυφή είναι τελικά αποκόπτουσα αν είτε είναι ρίζα του ζευγνύοντος δένδρου με περισσότερους από έναν απογόνους, είτε η μεταβλητή lowest(x) παίρνει τιμή μεγαλύτερη από την αρίθμηση της κορυφής v, όπου x κάποια κορυφή απόγονος της v.

Page 16: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1616

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΧΙ

ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΑΠΟΚΟΠΤΟΥΣΩΝ ΚΟΡΥΦΩΝ1. Εκτέλεσε στον γράφο G μία διάσχιση με προτεραιότητα

βάθους ξεκινώντας από μία οποιαδήποτε κορυφή του. Έστω Τ το δένδρο που δημιουργείται από τη διάσχιση με προτεραιότητα βάθους και έστω prenum[v] η αρίθμηση που προκύπτει για την κάθε κορυφή από τη διάσχιση.

2. Εκτελείται μεταδιατεταγμένη διάσχιση του δένδρου Τ. Για κάθε κορυφή v, που επισκεπτόμαστε υπολογίζουμε το lowest[v] ως το ελάχιστο των

prenum[v] prenum[w], για κάθε κορυφή w τέτοια ώστε να υπάρχει

ακμή {v,w} στο G, που να μην υπάρχει αντίστοιχη στο δένδρο Τ (οπίσθια ακμή).

lowest[x] για όλα τα x που είναι απόγονοι της v στο δένδρο Τ.

Page 17: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1717

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΧΙΙ

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

3. Οι αποκόπτουσες κορυφές προκύπτουν ως εξής: Αν πρόκειται για τη ρίζα του Τ και αυτή έχει περισσότερους

από έναν απογόνους. Αν η κορυφή v δεν είναι ρίζα του Τ είναι αποκόπτουσα στον G

αν και μόνο αν η v έχει κάποιο απόγονο x με lowest[x]prenum[v]

Ορίζουμε:

lowest[v]=min{prenum[w]|όταν μπορούμε να πάμε από στην w από την v ακολουθώντας προς τα κάτω όσες ακμές χρειάζεται και μετά χρησιμοποιώντας το πολύ μία οπίσθια ακμή}

Page 18: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1818

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε μη κατευθυνόμενους γράφους ΧΙΙΙ

ΠΑΡΑΔΕΙΓΜΑ

ΑΠΟΚΟΠΤΟΥΣΕΣ ΚΟΡΥΦΕΣ: 1 & 4

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

1

1

1

2

2

6

6

6

Page 19: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1919

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε κατευθυνόμενους γράφους Ι

Ο αλγόριθμος είναι βασικά ο ίδιος που εφαρμόζεται και σε μη κατευθυνόμενους γράφους, μόνο που αλλάζει η ερμηνεία του όρου «γειτονική κορυφή».

Σε έναν κατευθυνόμενο γράφο η κορυφή w είναι γειτονική της κορυφής v αν υπάρχει το τόξο (v, w). Αν αυτό συμβαίνει αλλά δεν υπάρχει το τόξο (w,v), τότε η κορυφή w είναι της v αλλά η v δεν είναι γειτονική της w. Με αυτή τη διαφορετική ερμηνεία εφαρμόζουμε τον αλγόριθμο διάσχισης με προτεραιότητα βάθους στο παράδειγμα που ακολουθεί.

Page 20: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2020

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε κατευθυνόμενους γράφους ΙΙ

dfs(1) dfs(2) dfs(3) dfs(4) dfs(5) dfs(8) dfs(6) dfs(7)

1

2 3 4

5 6 7 8

Page 21: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2121

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε κατευθυνόμενους γράφους ΙΙI

Η αποδοτικότητα είναι επίσης O(max(α, n)) Τα τόξα που χρησιμοποιούνται κατά τη διάσχιση των

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

1

2 4

3 8

7

5

6

Page 22: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2222

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση προτεραιότητας βάθους σε κατευθυνόμενους γράφους ΙV

Έστω F τα τόξα του δάσους. Στους μη κατευθυνόμενους γράφους τα τόξα που δεν αντιστοιχούν σε κάποιο απ΄ αυτά του δάσους συνδέουν μία κορυφή με κάποιο πρόγονο (οπίσθια ακμή).Στους κατευθυνόμενους γράφους το σύνολο A \ F απαρτίζεται από τρεις περιπτώσεις ακμών:

i. Αυτές που όπως οι (3,1) ή (7,4) οδηγούν σε προγόνουςii. Αυτές που όπως η (1,8) οδηγεί σε κάποιον από τους απογόνουςiii. Αυτές που όπως οι (5,2) ή (6,3) οδηγούν σε κορυφές που δεν είναι ούτε πρόγονοι, ούτε απόγονοι.

Η κατεύθυνση των τόξων τύπου (iii) είναι πάντα από δεξιά προς τα αριστερά.

Page 23: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2323

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Άκυκλοι γράφοι: τοπολογική ταξινόμηση Ι

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

(a+b)(c+d)+(a+b)(c-d)+

× ×

+ + -

c da b

Page 24: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2424

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Άκυκλοι γράφοι: τοπολογική ταξινόμηση ΙI

Μία εφαρμογή στους μεταγλωττιστές είναι η διενέργεια βελτιστοποιητικού μετασχηματισμού απαλειφής κοινών υποεκφράσεων στον ενδιάμεσο κώδικα, που είναι πιθανό να παράγεται μετά από τη συντακτική – σημασιολογική ανάλυση.Στον κώδικα x:=a[i]; a[i]:=a[n]; a[n]:=x αντιστοιχεί ο κώδικας τριών διευθύνσεων και ο γράφος:

t11:=4*ix:=a[t11]t12:=4*it13:=4*nt14:=a[t13]a[t12]:=t14t15:=4*na[t15]:=x

[]=

= []

[]=

*

= []

i na 4

*

x

t1 1 , t1 2

t1 3 , t1 5

t1 4

a [t1 2 ]a [ t1 5 ]

Page 25: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2525

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Άκυκλοι γράφοι: τοπολογική ταξινόμηση ΙIΙ

....που τελικά με απαλοιφή των κοινών υποεκφράσεων αποδίδει τελικά τον κώδικα:

t11:=4*i

x:=a[t11]

t13:=4*n

t14:=a[t13]

a[t11]:=t14

a[t13]:=x

Άλλες εφαρμογές είναι όπου χρειάζεται να ορισθεί μία σχετική διάταξη, όπως για παράδειγμα η σειρά εκτέλεσης των εργασιών στα πλαίσια ενός έργου.

Page 26: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2626

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Άκυκλοι γράφοι: τοπολογική ταξινόμηση ΙV

Τοπολογική ταξινόμηση των κόμβων ενός κατευθυνόμενου άκυκλου γράφου είναι η πράξη της τοποθέτησης των κόμβων σε μία σειρά, έτσι ώστε αν υπάρχει τόξο (i,j), τότε στη σχηματισθείσα σειρά ο κόμβος i προηγείται απαραιτήτως του j.ΠΑΡΑΔΕΙΓΜΑ

σωστές τοπολογικές ταξινομήσεις είναι οι: 1, 2, 3, 4, 6, 8, 12, 24αλλά και η 1, 3, 2, 6, 4, 12, 8, 24 και ίσως και άλλες

2 4

1 2

8

6

4

3

2

1

Page 27: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2727

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Άκυκλοι γράφοι: τοπολογική ταξινόμηση V

Η αναζήτηση με προτεραιότητα βάθους μπορεί να εκτελέσει τοπολογική ταξινόμηση. Πιο συγκεκριμένα, αν προσθέσουμε την επιπλέον γραμμή

write vστο τέλος της διαδικασίας, τότε οι αριθμοί των κόμβων που τυπώνονται αν αντιστραφούν αποδίδουν μία τοπολογική ταξινόμηση.

Page 28: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2828

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Ισχυρά συνδεδεμένα τμήματα Ι Ένας κατευθυνόμενος γράφος είναι ισχυρά συνδεδεμένος

αν για κάθε δύο κορυφές u και v υπάρχει μονοπάτι από το u στο v, αλλά και από το v στο u.

Αν ένας κατευθυνόμενος γράφος δεν είναι ισχυρά συνδεδεμένος, τότε ενδιαφερόμαστε για τα μεγαλύτερα δυνατά σύνολα κορυφών, που συγκροτούν ισχυρά συνδεδεμένους υπογράφους. Κάθε ένας απ΄ αυτούς λέμε ότι αποτελεί ένα ισχυρά συνδεδεμένο τμήμα του αρχικού γράφου.ΠΑΡΑΔΕΙΓΜΑ

1

2 3 4

5 6 7 8

Page 29: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2929

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Ισχυρά συνδεδεμένα τμήματα ΙΙ

ΠΑΡΑΔΕΙΓΜΑ (συνέχεια)ισχυρά συνδεδεμένα τμήματα: {1, 2, 3}

{4, 7, 8}{5, 6}

Πως βρίσκουμε τα ισχυρά συνδεδεμένα τμήματα ενός γράφου;i. Εκτελούμε μία αναζήτηση με προτεραιότητα βάθους

ξεκινώντας από τυχαίο κόμβο. Για κάθε κόμβο v του γράφου προκύπτει ένα αριθμός postnum[v].Αυτό επιτυγχάνεται αν στο τέλος της dfs προσθέσουμε τις δύο εντολές: nump nump+1

postnum[v] nump

Page 30: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3030

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Ισχυρά συνδεδεμένα τμήματα ΙΙI

ii. Κατασκευάζουμε τον γράφο G’ που είναι ίδιος με τον G με τα τόξα του αντεστραμμένα.

iii. Εκτελούμε στον G’ μία αναζήτηση με προτεραιότητα βάθους ξεκινώντας από την κορυφή w με τη μεγαλύτερη τιμή postnum. Αν η αναζήτηση αυτή δεν προσεγγίσει όλες τις κορυφές του γράφου, τότε ξεκινά μία νέα αναζήτηση από την κορυφή με το μεγαλύτερο postnum μεταξύ όλων αυτών που δεν έχουν δεχθεί επίσκεψη.

iv. Κάθε δένδρο του δάσους που σχηματίζεται αντιστοιχεί σε ένα ισχυρά συνδεδεμένο τμήμα του G.

Page 31: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3131

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Ισχυρά συνδεδεμένα τμήματα ΙVΠΑΡΑΔΕΙΓΜΑΑποτελέσματα πρώτης αναζήτησης και αντιστροφή τόξων.

Αποτελέσματα δεύτερης αναζήτησης

1

2 3 4

5 6 7 8

6

21

8 7 3 4

5

5

6

1

3

2

4

7

8

Page 32: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3232

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση με προτεραιότητα πλάτους Ι

Όταν σε ένα κόμβο v φθάνει μία αναζήτηση με προτεραιότητα βάθους, τότε στη συνέχεια επισκέπτεται ένα γείτονα τη v, μετά ένα γείτονα του γείτονα κ.ο.κ.

Στην αναζήτηση με προτεραιότητα πλάτους, όταν αυτή φθάνει σε έναν κόμβο v, τότε επισκεπτόμαστε ένα προς ένα όλους τους γείτονες και μετά ο αλγόριθμος συνεχίζει σε άλλους κόμβους.

Σε αντίθεση με την αναζήτηση με προτεραιότητα βάθους, που είναι εξ ορισμού αναδρομική, η αναζήτηση με προτεραιότητα πλάτους δεν είναι αναδρομική.

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

Page 33: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3333

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση με προτεραιότητα πλάτους ΙI

ΑΝΑΖΗΤΗΣΗ ΜΕ ΠΡΟΤΕΡΑΙΟΤΗΤΑ ΒΑΘΟΥΣ (εναλλακτική διατύπωση)

procedure dfs’(v:node)P empty-stackmark[v]visitedpush v on Pwhile P is not empty do

while there exists a node w adjacent to top(P) such that mark[w]visited do

mark[w]visitedpush w on P

pop top(P)

Page 34: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3434

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση με προτεραιότητα πλάτους ΙII

ΑΝΑΖΗΤΗΣΗ ΜΕ ΠΡΟΤΕΡΑΙΟΤΗΤΑ ΠΛΑΤΟΥΣ

procedure bfs(v:node)Q empty-queuemark[v]visitedenqueue v into Qwhile Q is not empty do

ufirst(Q)dequeue u from Qfor each node w adjacent to u doif mark[w]visited then mark[v]visited enqueue w into Q

Page 35: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3535

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση με προτεραιότητα πλάτους ΙV

Στην αναζήτηση με προτεραιότητα πλάτους χρησιμοποιείται μία ουρά που είναι δομή FIFO.

ΠΑΡΑΔΕΙΓΜΑ

κόμβος επίσκεψης ουρά1 2, 3, 42 3, 4, 5, 63 4, 5, 64 5, 6, 7, 85 6, 7, 86 7, 87 88

1

2 3 4

5 6 7 8

Page 36: Γράφοι Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3636

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Αναζήτηση με προτεραιότητα πλάτους V

Όπως και στην αναζήτηση με προτεραιότητα βάθους, έτσι και σ΄ αυτή την περίπτωση αντιστοιχεί ένα δένδρο.

ΠΑΡΑΔΕΙΓΜΑ (συνέχεια)

Ο ίδιος αλγόριθμος εφαρμόζεται επίσης και σε κατευθυνόμενους γράφους χρησιμοποιώντας άλλη ερμηνεία για την έννοια γειτονικός κόμβος.

Πολυπλοκότητα επίσης O(max(α,n))

1

2 3 4

5 6 7 8