Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων ο Εξάµηνο Γραφήµατα (Grps) ttp://tos.it.tit.r/~mos/tin_gr.tml Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ Γράφημα (Grp) Oρισμός : Έστω το µη κενό και πεπερασµένο σύνολο Vµε nδιακεκριµένα στοιχεία V = {v, v,..., v n }, και Eένα σύνολο µε m 0µε µη-διατεταγµένα ζεύγη ij = {v i, v j }, i =/= j, στοιχείων του V. Τότε το διατεταγµένο ζεύγος G = (V,E) ονοµάζεται µη κατευθυνόµενο γράφηµα (unirt rp) ή απλώς γράφηµα.
Στο παράδειγμα: G = (V, E) µε: Μη κατευθυνόμενο γράφημα V = {,,,,, }, και E = { {, }, {, }, {, }, {, }, {, }, {, }, {, } } Τάξη γραφήματος Oρισμός : Τάξη (orr)ενός γραφήµατος ονοµάζεται το πλήθος των κορυφών του, ενώ µέγεθος (siz) ονοµάζεται το πλήθος των ακµών του. Στο παράδειγµα η orr = 6 και siz = 7
Διπλανές κορυφές γραφήματος Oρισμός : ύο κορυφές v i, v j ονοµάζονται διπλανές (jnt) όταν υπάρχει ακµή ij = {v i, v j }, i =/= jπου να τις έχει άκρα. ύο κορυφές που δεν είναι διπλανές ονοµάζονται ανεξάρτητες ( inpnnt). Στο παράδειγµα οι και είναιδιπλανές ενώ οι και ανεξάρτητες Βαθμός κορυφής ενός γραφήματος Oρισμός : Βαθµός (r)µιας κορυφής ονοµάζεται το πλήθος των διπλανών κορυφών της, ή αλλιώς το πλήθος των ακµών που πρόσκεινται στην κορυφή. Μια κορυφή ονοµάζεται άρτιαή περιττήανάλογα µε το αν ο βαθµός της είναι άρτιος ή περιττός Στο παράδειγµα η είναι άρτιακαι ο βαθµός της είναι
Τερματική κορυφή γραφήματος Oρισμός 5: Μία κορυφή v i ονοµάζεται τερµατικήκορυφή (n vrtx)αν r(v i ) =. Στο παράδειγµα η κορυφή είναι τερµατική Απομονωμένη κορυφή γραφήματος Oρισμός 6: Μία κορυφή v i ονοµάζεται αποµονωµένη (isolt), αν ο βαθµός της r(v i ) = 0 Στο παράδειγµα η κορυφή είναι αποµονωµένη
Πλήρες Γράφημα (Grps) Oρισμός 7: Ένα γράφηµα ονοµάζεται πλήρες (omplt rp)όταν περιλαµβάνει όλους τους δυνατούς συνδυασµούς ακµών ανάµεσα στις κορυφές του. Παρατήρηση: εν αποτελεί συνηθισµένη περίπτωση! Κατευθυνόμενο Γράφημα (Dirt Grp) Oρισμός 8: Έστω το µη κενό και πεπερασµένο σύνολο Vµε nδιακεκριµένα στοιχεία V = {v, v,..., v n }, και Eένα σύνολο µε m 0µε διατεταγµέναζεύγη ij = {v i, v j }, i =/= j, στοιχείων του V. Τότε το διατεταγµένο ζεύγος DG = (V,E) ονοµάζεται κατευθυνόµενο γράφηµα (irt rp). 5
Περίπατος γραφήματος Oρισμός 9: Ονοµάζουµε περίπατο (wlk)σε ένα γράφηµα G µία ακολουθία κορυφών του γραφήµατος, της µορφής W = <v 0, v, v,..., v n > και λέµε ότι έχει µήκος n. Στο παράδειγµα: W = <,,,,, > µε µήκος 5 Μονοπάτι γραφήματος Oρισμός 0: Ονοµάζουµε µονοπάτι (pt) σε ένα γράφηµα G µία ακολουθία κορυφών του γραφήµατος, της µορφής P = <v 0, v, v,..., v n >που είναι περίπατος στον οποίο καµία κορυφή δεν επαναλαµβάνεται Στο παράδειγµα: P = <,,, > µε µήκος 6
Παραδείγματα Γραφημάτων: Συνδεδεμένες δομές δεδομένων L... null irstno lstno null... null A D B F B C D A C G E F G H I J K L M E Παραδείγματα Γραφημάτων: Δίκτυα Υπολογιστών 7
Παραδείγματα Γραφημάτων: Κοινωνικά δίκτυα Κοινωνικά δίκτυα 8
Αναπαράσταση Προβλημάτων με Γραφήματα Πίνακας διπλανών κορυφών Αναπαράσταση γραφήματος Έστω ένα κατευθυνόμενο γράφημα με nκορυφές, οι οποίες μπορούν να αριθμηθούν με διακριτές συνεχόμενες τιμές. Η αναπαράστασή του μπορεί να γίνει με τη βοήθεια ενός δισδιάστατου πίνακα Dμε διαστάσεις n x n, στον οποίο: η θέση του πίνακα (i,j) δηλώνει την ύπαρξη ή όχι ακμής D(i,j)=, αν υπάρχει η ακμή, D(i,j)=0, αν δεν υπάρχει 0 0 0 0 0 D= 0 0 0 0 0 0 0 0 0 0 0 0 Αρίθμηση κορυφών: ->0, ->, ->, ->, -> 9
Λίστες διπλανών κορυφών Αναπαράσταση γραφήματος Έστω ένα κατευθυνόμενο γράφημα με nκορυφές, οι οποίες μπορούν να αριθμηθούν με διακριτές συνεχόμενες τιμές. Η αναπαράστασή του μπορεί να γίνει με τη βοήθεια ενός μονοδιάστατου πίνακα συνδεδεμένων λιστών: η θέση iτου πίνακα αντιστοιχεί στον κόμβο i το περιεχόμενο του πίνακα στη θέση iείναι η λίστα των κόμβων που συνδέονται με τον i 0 0 Αρίθμηση κορυφών: ->0, ->, ->, ->, -> Επίλυση προβλήματος γραφήματος Αναζητούμε ένα μονοπάτι το οποίο να ξεκινάει από έναν κόμβο Χ (κόμβος αρχή) και να καταλήγει σε έναν κόμβο Υ (κόμβος στόχος). Αντίστοιχα μπορεί να αναζητούμε έναν περίπατο ο οποίος να ξεκινάει από έναν κόμβο Χ (κόμβος αρχή) και να καταλήγει σε έναν κόμβο Υ (κόμβος στόχος). Το γενικότερο πρόβλημα μπορεί να περιλαμβάνει:. θετικούς περιορισμούς (πρέπει οπωσδήποτε να περάσουμε από κάποιους κόμβους).. Αρνητικούς περιορισμούς (πρέπει οπωσδήποτε να αποφύγουμε κάποιους κόμβους).. Πρέπει να λάβουμε υπόψη μας τα βάρη σύνδεσης των κόμβων (προβλήματα ελαχιστοποίησης ή μεγιστοποίησης 0
Στόχος μας είναι να επισκεφτούμε όλους τους κόμβους του γραφήματος Παράδειγμα: Αλγόριθμος «πρώτα σε βάθος» (pt irst sr) Ξεκινώντας από έναν κόμβο i: επισκεπτόμαστε τον κόμβο i επισκεπτόμαστε αναδρομικά κάθε κόμβο που συνδέεται με τον κόμβο iμε την προϋπόθεση ότι δεν τον έχουμε ήδη επισκεφθεί. Αλγόριθμος «πρώτα σε βάθος» (pt irst sr)
Αλγόριθμος «πρώτα σε βάθος» (pt irst sr) Αλγόριθμος «πρώτα σε βάθος» (pt irst sr)
Αλγόριθμος «πρώτα σε βάθος» (pt irst sr) Αλγόριθμος «πρώτα σε βάθος» (pt irst sr) 5
Αλγόριθμος «πρώτα σε βάθος» (pt irst sr) 6 5 Αλγόριθμος «πρώτα σε βάθος» (pt irst sr) 7 6 5
Αλγόριθμος «πρώτα σε βάθος» (pt irst sr) 7 6 8 5 Λίγη ιστορία: οι γέφυρες του Konisr Lonr Eulr (707-78) 5