Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών
ΠΕΡΙΕΧΟΜΕΝΟ Γραφήματα Αναπαράσταση Γραφημάτων σε Γλώσσες Προγραμματισμού 2
ΟΡΙΣΜΟΙ Διαισθητικός Ορισμός Γράφημα (graph) είναι ένα μαθηματικό μοντέλο σχέσεων: κάποια στοιχεία ενός προβλήματος συμβολίζονται με κορυφές και η ύπαρξη μιας πλευράς μεταξύ δυο κορυφών συμβολίζει την ύπαρξη μιας σχέσης μεταξύ των αντίστοιχων στοιχείων. 3
ΟΡΙΣΜΟΙ Τυπικός Ορισμός Γράφημα ονομάζουμε ένα ζεύγος πεπερασμένων συνόλων G=(V, E), όπου το σύνολο V περιέχει τις κορυφές ή κόμβους του G, και το E τις ακμές ή τόξα ή πλευρές του G. Για τις κορυφές γράφουμε V={v 1,,v n }, όπου n το πλήθος των κορυφών. Τα στοιχεία του συνόλου Ε θα τα συμβολίζουμε με e i,j όπου οι δείκτες i, j θα ανήκουν στο {1,, n}. 4
ΠΑΡΑΔΕΙΓΜΑ V 1 V 2 V 4 V 3 V 5 V 6 5
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΓΡΑΦΗΜΑΤΩΝ Πλήρες καλείται ένα γράφημα όταν για κάθε i, j που ανήκουν στο σύνολο {1,, n} ισχύει {1,..., }. e i, j n Υπογράφημα του G=(V, E) είναι ένα γράφημα G =(V, E ) με V ' V και '. Αν V =V τότε το G λέγεται γεννητικό υπογράφημα του G. 6
ΠΑΡΑΔΕΙΓΜΑ ΥΠΟΓΡΑΦΗΜΑΤΟΣ Γράφημα Υπογράφημα Γεννητικό υπογράφημα V 1 V 2 V 1 V 3 V 2 V 4 V 3 V 2 V 4 V 5 V 6 V 3 V 5 V 6 V 5 V 6
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΓΡΑΦΗΜΑΤΩΝ Αν για κάποιο ζεύγος (i, j) υπάρχει e i, j τότε λέμε ότι υπάρχει πλευρά από την κορυφή V i στην κορυφή V j. Τότε οι κορυφές V i και V j λέγονται γειτονικές ή προσκείμενες, ενώ η πλευρά e i,j λέμε ότι συντρέχει στην κορυφή V i και V j. Πλευρές που συντρέχουν στην ίδια κορυφή καλούνται γειτονικές ή προσκείμενες. Διευθυνόμενο γράφημα (directed graph) ή διγράφημα (digraph) καλείται ένα γράφημα όπου όλες οι πλευρές έχουν κατεύθυνση που συμβολίζεται με ένα βέλος. Αν υπάρχει η διευθυνόμενη πλευρά e i,j που συνδέει τις κορυφές V i και V j τότε μπορούμε να πάμε από τη V i στη V j όχι όμως και το ανάποδο. Όταν μιλούμε για γράφημα εννοούμε μη διευθυνόμενο. 8
ΠΑΡΑΔΕΙΓΜΑ ΔΙΓΡΑΦΗΜΑΤΟΣ V 1 V 2 V 4 V 3 V 5 V 6 9
ΒΑΘΜΟΣ Βαθμός μιας κορυφής είναι το πλήθος των πλευρών που συνδέουν την κορυφή αυτή με άλλες. Για διγραφήματα βαθμός εισόδου μιας κορυφής είναι ο αριθμός πλευρών που φτάνουν στην κορυφή και βαθμός εξόδου ο αριθμός πλευρών που φεύγουν από κορυφή. Άθροισμα βαθμών εισόδου = Άθροισμα βαθμών εξόδου = Αριθμός πλευρών γραφήματος 10
ΔΙΑΔΡΟΜΗ Ορισμός διαδρομής: Μια ακολουθία όπως η {V 3, e 3,7, V 7, e 7,6, V 6, e 6,8, V 8 } ή {e 3,7, e 7,6, e 6,8 } ή {V 3, V 7, V 6, V 8 } που αρχίζει με κορυφή, τελειώνει με κορυφή και ανάμεσα σε δυο κορυφές περιέχει πλευρά που τις ενώνει λέγεται διαδρομή από την πρώτη προς την τελευταία κορυφή. Σε γράφημα υπάρχει διαδρομή και προς τις δυο κατευθύνσεις, ενώ σε διγράφημα μπορεί να υπάρχει η μια κατεύθυνση, αλλά όχι και η άλλη. Σε μια διαδρομή μπορεί να επανεμφανίζεται η ίδια κορυφή, όχι όμως η ίδια πλευρά. 11
ΣΥΝΕΚΤΙΚΟΤΗΤΑ Ορισμός: Ένα μη διευθυνόμενο γράφημα καλείται συνεκτικό, όταν για οποιεσδήποτε δυο κορυφές του υπάρχει διαδρομή που τις ενώνει. Είδη συνεκτικότητας διγραφημάτων: Μονομερώς συνεκτικό λέγεται ένα διγράφημα, όταν υπάρχει διαδρομή προς τη μια ή την άλλη κορυφή για οποιοδήποτε ζεύγος κορυφών. Ισχυρά συνεκτικό λέγεται ένα διγράφημα αν για κάθε ζεύγος κορυφών υπάρχει διαδρομή και προς τις δυο κατευθύνσεις. Ασθενώς συνεκτικό ή απλά συνεκτικό λέγεται ένα διγράφημα αν για κάθε ζεύγος κορυφών υπάρχει μια ημιδιαδρομή μεταξύ τους. 12
ΜΟΝΟΜΕΡΩΣ ΣΥΝΕΚΤΙΚΟ ΔΙΓΡΑΦΗΜΑ V 1 V 2 V 4 V 3 V 5 V 6 13
ΙΣΧΥΡΑ ΣΥΝΕΚΤΙΚΟ ΔΙΓΡΑΦΗΜΑ V 1 V 2 V 4 V 3 V 5 V 6 14
ΑΣΘΕΝΩΣ ΣΥΝΕΚΤΙΚΟ ΔΙΓΡΑΦΗΜΑ V 1 V 2 V 4 V 3 V 5 V 6 15
ΟΡΙΣΜΟΙ Μήκος μιας διαδρομής καλείται το πλήθος των πλευρών της. Απλή είναι μια διαδρομή, όταν όλες οι κορυφές είναι διαφορετικές, εκτός πρώτης και τελευταίας. Κύκλος καλείται μια διαδρομή, όταν υπάρχουν πάνω από μια διαφορετικές κορυφές και η πρώτη συμπίπτει με την τελευταία. Κύκλωμα λέγεται ένας κύκλος που σχηματίζεται από διευθυνόμενες πλευρές. Ένα διγράφημα χωρίς κυκλώματα λέγεται άκυκλο. Ένα άκυκλο γράφημα είναι δέντρο. 16
ΟΡΙΣΜΟΙ Διαδρομή Euler είναι μια διαδρομή που περιέχει όλες τις πλευρές ενός γραφήματος, μια φορά καθεμιά. Διαδρομή Hamilton είναι μια απλή διαδρομή που περιέχει όλες τις κορυφές ενός γραφήματος και μόνο μια φορά. Απόσταση μεταξύ δυο κορυφών είναι το ελάχιστο μήκος μεταξύ των διαδρομών που τις συνδέουν. Διάμετρος ενός γραφήματος είναι η μεγιστη απόσταση για όλα τα δυνατά ζεύγη κορυφών. Αν αντιστοιχώ πληροφορίες στις κορυφές ή πλευρές ενός γραφήματος, τότε το γράφημα λέγεται δίκτυο. Τότε μιλάμε για κόμβους και τόξα, αντί για κορυφές και πλευρές. 17
ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΡΑΦΗΜΑΤΩΝ ΓΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πίνακας Γειτονικότητας C Λίστες Γειτονικότητας ΛΓ 18
ΠΙΝΑΚΑΣ ΓΕΙΤΟΝΙΚΟΤΗΤΑΣ Διάσταση πίνακα: nxn, όπου n το πλήθος των κορυφών του γραφήματος. Στοιχεία πίνακα: C(i, j)=1 αν e i, j, αλλιώς 0. Όταν υπάρχει συνάρτηση κόστους c, δηλαδή σε κάθε πλευρά αντιστοιχεί αριθμός c(i, j), τότε C(i, j)=c(i, j) για e i, j. Αν τότε C( i, j) για j, i e i, j e i, j e i, j 19
ΠΑΡΑΔΕΙΓΜΑ ΠΙΝΑΚΑ ΓΕΙΤΟΝΙΚΟΤΗΤΑΣ ΓΡΑΦΗΜΑΤΟΣ ΧΩΡΙΣ ΚΟΣΤΗ Γράφημα Πίνακας Γειτονικότητας C V 1 C 1 2 3 4 5 6 1 0 1 0 0 0 0 2 0 0 0 0 1 0 V 2 V 3 V 4 3 1 0 0 0 0 0 4 1 0 0 0 0 0 5 0 1 0 0 0 1 V 5 V 6 6 0 0 0 1 0 0 20
ΠΑΡΑΔΕΙΓΜΑ ΠΙΝΑΚΑ ΓΕΙΤΟΝΙΚΟΤΗΤΑΣ ΓΡΑΦΗΜΑΤΟΣ ΜΕ ΚΟΣΤΗ Γράφημα Πίνακας Γειτονικότητας C V 1 C 1 2 3 4 5 6 V 2 2 2 1 V 4 1 2 2 3 1 3 V 3 2 3 2 4 1 V 5 2 V 6 5 1 2 6 2 21
ΛΙΣΤΕΣ ΓΕΙΤΟΝΙΚΟΤΗΤΑΣ Σε κάθε κορυφή V αντιστοιχεί μια συνδεδεμένη λίστα με τον επικεφαλής δείκτη να είναι ΛΓ(i). Τα υπόλοιπα στοιχεία της λίστας συμβολίζονται με το ζεύγος (node, link) όπου node ο δείκτης κορυφής που συνδέεται με V i, δηλαδή node=j αν υπάρχει e i, j και link ο δείκτης που συνδέει με το επόμενο στοιχείο της λίστας. Για γραφήματα με κόστη στις πλευρές τα υπόλοιπα στοιχεία της λίστας συμβολίζονται με το ζεύγος (node, c(e), link) όπου c(e) το κόστος της πλευράς που συνδέει τη V i με V node. 22
ΠΑΡΑΔΕΙΓΜΑ ΛΙΣΤΑΣ ΓΕΙΤΟΝΙΚΟΤΗΤΑΣ ΓΡΑΦΗΜΑΤΟΣ ΧΩΡΙΣ ΚΟΣΤΗ Γράφημα Λίστα Γειτονικότητας ΛΓ V 1 1 2 2 NULL 5 NULL V 2 V 4 3 1 NULL V 3 4 1 NULL 5 2 6 NULL V 5 V 6 6 4 NULL 23
ΠΑΡΑΔΕΙΓΜΑ ΛΙΣΤΑΣ ΓΕΙΤΟΝΙΚΟΤΗΤΑΣ ΓΡΑΦΗΜΑΤΟΣ ΜΕ ΚΟΣΤΗ Γράφημα Λίστα Γειτονικότητας ΛΓ V 1 1 2 2 NULL 2 2 1 2 5 3 NULL V 2 V 4 3 1 2 NULL 1 3 V 5 V 3 2 V 6 2 4 5 6 1 1 NULL 2 1 6 2 NULL 4 2 NULL 24
ΧΡΗΜΑΤΟΔΟΤΗΣΗ Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Πατρών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 25
ΣΗΜΕΙΩΜΑ ΙΣΤΟΥΡΙΚΟΥ ΕΚΔΟΣΕΩΝ ΕΡΓΟΥ Το παρόν έργο αποτελεί την έκδοση 1.0. 26
ΣΗΜΕΙΩΜΑ ΑΝΑΦΟΡΑΣ Copyright Πανεπιστήμιο Πατρών, Δημήτριος Κουκόπουλος. «Σχεδίαση και Ανάλυση Αλγορίθμων. ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ». Έκδοση: 1.0. Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/culture109/. 27
ΣΗΜΕΙΩΜΑ ΑΔΕΙΟΔΟΤΗΣΗΣ Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 28
ΔΙΑΤΗΡΗΣΗ ΣΗΜΕΙΩΜΑΤΩΝ Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 29