Professional Documents
Culture Documents
DD06 Graphoi
DD06 Graphoi
Δεδομένων
VΙI
Γράφοι
Ελένη Γαλιώτου
ΕΙΣΑΓΩΓΗ
Euler (1736):
Απέδειξε ότι αυτό είναι αδύνατο, παρατηρώντας ότι οι περιοχές Α, Β, Γ της ξηράς
έχουν περιττό αριθμό γεφυρών
Το πρόβλημα στη γενική του μορφή: Εύρεση μίας διαδρομής Euler όταν υπάρχει
Η λύση του Euler παραμένει η βάση για τον καλύτερο αλγόριθμο που υπάρχει
μέχρι σήμερα για τη λύση του προβλήματος
ΑΠΟΘΗΚΕΥΣΗ ΓΡΑΦΩΝ
Πίνακας γειτνίασης (adjacency matrix) ή πίνακας
διπλανών κορυφών
Μη ζυγισμένος γράφος με n κόμβους,
Πίνακας γειτνίασης A = (aij) με i, j = 1, 2, …, n,
aij = 1 εάν υπάρχει ακμή από τον κόμβο vi στον κόμβο vj
aij = 0 αν δεν υπάρχει
Πίνακας γειτνίασης: Δυαδικός
=> μπορεί να χρησιμοποιηθεί μόνο ένα bit για κάθε κόμβο
Διάσταση του πίνακα: n,
=> πλήθος στοιχείων του: n2
Λίστα γειτνίασης (adjacency list) ή λίστα διπλανών
κορυφών
Ορισμός: Ένας υπογράφος ενός γράφου G είναι ένας γράφος του οποίου
οι κόμβοι και οι ακμές υπάρχουν και στο G
Συνεκτικός (connected) γράφος: Για κάθε ζεύγος κόμβων υπάρχει διαδρομή που τους
συνδέει
Σχήμα 1: Οι γράφοι (α) και (β) είναι συνεκτικοί, ο (γ) δεν είναι
Δισυνεκτικός γράφος: Για κάθε ζεύγος κόμβων υπάρχουν δύο ξένες μεταξύ τους
διαδρομές που τους συνδέουν
Σχήμα 1: Ο γράφος (β) είναι δισυνεκτικός
Συνεκτική (δισυνεκτική) συνιστώσα ενός γράφου: Ένας μέγιστος συνεκτικός
(δισυνεκτικός) υπογράφος του
Σχήμα 1: Δισυνεκτικές συνιστώσες του (α): {Α, Β, Γ}, {Δ}
Συνεκτικές συνιστώσες του (γ): {Α, Β, Γ}, {Δ, Ε}
ΒΑΘΜΟΣ
Βαθμός (degree) ενός κόμβου σε ένα μη κατευθυνόμενο γράφο: Ο αριθμός
των ακμών που ξεκινούν από αυτόν τον κόμβο.
Σχήμα 1β: Βαθμός του κόμβου Ε =3
Βαθμός του κόμβου Γ = 2
Αντίστοιχες έννοιες σε κατευθυνόμενο γράφο
Βαθμός εισόδου (in-degree): αριθμός ακμών που καταλήγουν
Βαθμός εξόδου (out-degree): αριθμός ακμών που ξεκινούν από έναν
κόμβο
Σχήμα 2α: Βαθμός εισόδου στον κόμβο Α: 2
Βαθμός εξόδου: 1
ΔΕΝΔΡΑ (1/3)
• Ειδική κατηγορία γράφων
• Ισοδύναμες προτάσεις (~ ορισμός του δένδρου Δ).
• Το Δ είναι συνεκτικός και μη κυκλικός γράφος
• Κάθε ζεύγος κόμβων του Δ συνδέεται με ακριβώς μία διαδρομή
• Το Δ είναι συνεκτικός γράφος και έχει n-1 ακμές
• Το Δ είναι μη κυκλικός γράφος και έχει n-1 ακμές
• Το Δ είναι συνεκτικός γράφος, αλλά αν του αφαιρεθεί οποιαδήποτε ακμή
παύει να είναι συνεκτικός
ΔΕΝΔΡΑ (2/3)
Σε κάθε κόμβο i, δίδεται προσωρινά η τιμή λi, ίση με 0, για τον πρώτο κόμβο
και ίση με ∞ για τους υπόλοιπους.
Υπολογίζονται οι διαφορές λj – λi για κάθε τόξο i,j και
αν λj – λi > aij τότε
λj = λi + aij όπου aij το βάρος του τόξου
Η διαδικασία τερματίζεται αν δε μπορεί μπορεί να μεταβληθεί άλλο λi
ΑΛΓΟΡΙΘΜΟΣ FORD (2/2)
Η τιμή λn που βρέθηκε στον τελευταίο κόμβο είναι η ελάχιστη διάρκεια
του δρομολογίου
Για την εύρεση του ελάχιστου δρόμου, γίνεται η αντίστροφη διαδικασία.
Ξεκινώντας από το τέλος, αν η διαφορά λj – λi ισούται με aij τότε το
τόξο i,j ανήκει στον ελάχιστο δρόμο
Σημ. Στον αλγόριθμο αυτόν, αν δεν υπάρχει κάποιο τόξο i-j, τότε a(i,j) = ∞
ΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΠΕΡΙΟΔΕΥΟΝΤΟΣ ΠΩΛΗΤΗ
(TRAVELLING SALESMAN PROBLEM) (1/5)
Δεδομένα: Πόλεις
Ζητείται ο συντομότερος δρόμος που θα ακολουθήσει ένας περιοδεύων
πωλητής για να επισκεφθεί τελικά όλες τις πόλεις μία μόνο φορά και να
επιστρέψει στην αρχική
Αναπαράσταση: Με ένα γράφο όπου
οι πόλεις θεωρούνται ως κόμβοι και οι δρόμοι σύνδεσης των πόλεων ως
ακμές που συνδέουν δύο σημεία.
στις ακμές υπάρχουν βάρη που αντιστοιχούν στις αποστάσεις μεταξύ
των αντίστοιχων πόλεων
Ζητούμενο: Εύρεση της συντομότερης διαδρομής που περνά από
όλους τους κόμβους ( κύκλος Hamilton )
ΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΠΕΡΙΟΔΕΥΟΝΤΟΣ ΠΩΛΗΤΗ
(TRAVELLING SALESMAN PROBLEM) (2/5)
ΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΠΕΡΙΟΔΕΥΟΝΤΟΣ ΠΩΛΗΤΗ
(TRAVELLING SALESMAN PROBLEM) (3/5)
1η προσέγγιση: άπληστος (greedy) αλγόριθμος
Επιλέγεται κάθε φορά η μετάβαση προς την πιο κοντινή πόλη
Σειρά επίσκεψης: 1 => 2 => 4 => 3 => 1 με συνολική απόσταση:
5+8+10+13=36 χλμ
Για κάθε πόλη πρέπει να βρίσκει την ελάχιστη απόσταση από τις
υπόλοιπες (n-1) πόλεις είναι πολυπλοκότητας O(n2)
ΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΠΕΡΙΟΔΕΥΟΝΤΟΣ ΠΩΛΗΤΗ
(TRAVELLING SALESMAN PROBLEM) (4/5)
2η προσέγγιση: Εύρεση της διαδρομής που έχει την ελάχιστη συνολική απόσταση
Πρέπει να βρεθούν όλες οι δυνατές διαδρομές και να επιλεγεί η μικρότερη
Ξεκινώντας από την πόλη 1 ο πωλητής πρέπει να επισκεφθεί τις 2, 3, 4.
Οι δυνατές μεταθέσεις των τριών πόλεων είναι 6 αλλά οι δυνατές διαδρομές 3 (η
διαδρομή 2, 3, 4 έχει ίδια απόσταση με την 4, 3, 2)
• Αλγόριθμος CPM (Critical Path Method): βρίσκει τον κρίσιμο δρόμο σε ένα δίκτυο
δραστηριοτήτων.
• Σύνθετο έργο: αποτελείται από ένα σύνολο καλά καθορισμένων και μη
επικαλυπτόμενων εργασιών.
• Υπάρχουν περιορισμοί που υπαγορεύουν ποιες εργασίες πρέπει να έχουν
ολοκληρωθεί πριν αρχίσει η εκτέλεση κάποιων άλλων.
Κρίσιμος Δρόμος CPM (Critical Path Method)
Αναπαράσταση έργου: Με ένα δίκτυο που είναι μια διαφορετική ονομασία ενός
κατευθυνόμενου ζυγισμένου γράφου.
Τόξα του γράφου: συμβολίζουν τις επιμέρους εργασίες (δραστηριότητες),
Κορυφές (γεγονότα): την αρχή/τέλος των εργασιών.
Παράδειγμα: ένα τόξο (u, v) αναπαριστά μια εργασία που η εκτέλεσή της θα
μπορεί να αρχίσει μόνο όταν θα έχουν ολοκληρωθεί οι εργασίες που προσπίπτουν
στην κορυφή u.
Ο αλγόριθμος CPM
• Αρχικά: Υπολογίζει τους νωρίτερους (ΕΧ) και βραδύτερους χρόνους (ΒΧ) των
γεγονότων.
• Στη συνέχεια: Βρίσκει ποια γεγονότα βρίσκονται πάνω σε έναν κρίσιμο δρόμο.
• Κρίσιμος δρόμος: απαρτίζεται από γεγονότα (κορυφές) όπου συμπίπτει ο
νωρίτερος με τον βραδύτερο χρόνο.
• Έννοια: οι εργασίες που συνθέτουν ένα κρίσιμο δρόμο δεν μπορούν ούτε να
καθυστερήσουν ούτε να εκτελεστούν πιο γρήγορα.
Αλγόριθμος CPM ‘ Υπολογισμός ΒΧ
Δεδομένα // Α, Ν // ΒΧ(Ν) ← ΕΧ(Ν)
Για i από 1 μέχρι Ν Για i από Ν-1 μέχρι 1 με_βήμα -1
ΕΧ(i) ← 0 Για j από Ν μέχρι 2 με_βήμα -1
BΧ(i) ← 1000 Αν Α(i, j) ≠ 0 και ΒΧ(j) - A(i,j) <
Τέλος-επανάληψης ΒX(i) τότε
‘ Υπολογισμός ΕΧ ΒΧ(i) ← ΒX(j) - A(i,j)
Για i από 1 μέχρι Ν-1 Τέλος_αν
Για j από 2 μέχρι Ν Τέλος_επανάληψης
Τέλος_επανάληψης
Αν Α(i, j) ≠ 0 και ΕΧ(i) + A(i,j)
> EX(j) τότε ‘ Κρίσιμος δρόμος
ΕΧ(j) ← EX(i) + A(i,j) Για i από 1 μέχρι Ν
Τέλος_αν Αν ΕΧ(i) = BX(i) τότε
Τέλος_επανάληψης Εμφάνισε i
Τέλος_επανάληψης Τέλος_αν
Τέλος_επανάληψης
Τέλος CPM
ΠΑΡΑΔΕΙΓΜΑ:
• Ένα δίκτυο έργου όπου σε κάθε κόμβο αναγράφονται οι νωρίτεροι και
βραδύτεροι χρόνοι.
• Βάρη στα τόξα: ο κωδικός της εργασίας και η χρονική διάρκεια.
• Ο κρίσιμος δρόμος είναι ο 1, 3, 4, 6.
Δομές Δεδομένων
VII-2
Γράφοι- Ασκήσεις
Ελένη Γαλιώτου
ΓΡΑΦΟΙ
ΠΑΡΑΔΕΙΓΜΑΤΑ - ΑΣΚΗΣΕΙΣ
1. ΑΝΑΖΗΤΗΣΗ ΜΕ ΠΡΟΤΕΡΑΙΟΤΗΤΑ ΒΑΘΟΥΣ