Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab."— Μεταγράφημα παρουσίασης:

1 Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra
Data Engineering Lab

2 TSP με Διακλάδωση και Περιορισμό
25 1 2 4 3 30 6 5 15 23 20 16 24 22 13 11 18 26 12 21 14 Τεχνική branch & bound 25 18 12 22 30 15 14 21 11 23 26 24 20 13 16 Data Engineering Lab

3 Βρίσκουμε κάτω όριο = 173/2 = 86,5
TSP με Διακλάδωση και Περιορισμό (2) Πρέπει να βρεθεί ένα κάτω όριο για το μήκος του Hamiltonian κύκλου Θεωρούμε ανά κορυφή τις 2 ακμές με το μικρότερο βάρος (με τη μία μπαίνουμε στην κορυφή, με την άλλη βγαίνουμε) 25 18 12 22 30 15 14 21 11 23 26 24 20 13 16 12 18 11 14 15 13 16 20 30 25 33 36 24 173 Βρίσκουμε κάτω όριο = 173/2 = 86,5 Τι θα προκύψει αν θεωρήσουμε τις στήλες του πίνακα γειτνίασης? Data Engineering Lab

4 Βρίσκουμε κάτω όριο = 191/2 = 95,5
TSP με Διακλάδωση και Περιορισμό (3) Θεωρούμε ότι αφετηρία είναι η κορυφή 1. Ποιό είναι το όριο στην περίπτωση αυτή αν από την κορυφή 1 πάμε στην κορυφή 2? 25 18 12 22 30 15 14 21 11 23 26 24 20 13 16 12 25 37 11 36 15 18 33 13 16 20 24 191 Βρίσκουμε κάτω όριο = 191/2 = 95,5 Data Engineering Lab

5 TSP με Διακλάδωση και Περιορισμό (4)
Αν από την κορυφή 1 πάμε στη 2, το όριο είναι 95,5 Αν από την κορυφή 1 πάμε στη 3, το όριο είναι 96,5 Αν από την κορυφή 1 πάμε στη 4, το όριο είναι 86,5 Αν από την κορυφή 1 πάμε στη 5, το όριο είναι 89,5 Αν από την κορυφή 1 πάμε στη 6, το όριο είναι 101 Τα όρια αυτά εισάγονται διαδοχικά σε ένα σωρό ελαχίστων. Εξάγεται το 86,5 ως περισσότερο υποσχόμενο και με βάση το μονοπάτι <1,4> θεωρούνται μονοπάτια μεγαλύτερου μήκους. Data Engineering Lab

6 TSP με Διακλάδωση και Περιορισμό (5)
Δημιουργούμε ένα δένδρο με ρίζα την κορυφή 1 και 5 παιδιά. Μέσα στο κόμβο τίθεται και το αντίστοιχο όριο. Η διαδικασία συνεχίζεται με τον περισσότερο υποσχόμενο κόμβο του δένδρου Τα παιδιά του δημιουργούν νέα όρια που εισάγονται στο σωρό ελαχίστων Data Engineering Lab

7 TSP με Διακλάδωση και Περιορισμό (6)
Με ποιά σειρά κτίζονται οι κόμβοι του διπλανού τελικού δένδρου? Ποιά είναι η διαδοχική μορφή του σωρού ελαχίστων? Ποιό είναι το βέλτιστο μονοπάτι και ποιό το μήκος του? Γιατί η μέθοδος λέγεται «διακλάδωση και περιορισμός» ? Data Engineering Lab

8 TSP με Δυναμικό Προγραμματισμό (1)
Έστω ότι ο κύκλος αρχίζει και τελειώνει στην κορυφή 1 Κάθε κύκλος αποτελείται από την ακμή <1,k> για κάποιο kV–{1} και ένα μονοπάτι από την κορυφή k στην κορυφή 1. Το μονοπάτι αυτό περνάει από κάθε κορυφή του συνόλου V–{1,k} μία φορά ακριβώς Έστω ότι g(i,S) είναι το μήκος του μικρότερου μονοπατιού που αρχίζει από την κορυφή i, περνάει από όλες τις κορυφές του συνόλου S και καταλήγει στην κορυφή 1 g(1,V-{1}) είναι το μήκος του βέλτιστου κύκλου Με βάση την αρχή της βελτιστότητας προκύπτει ότι: g(1,V–{1}) = min {c1k + g(k,V-{1,k})} (1) 2≤k≤n Data Engineering Lab

9 TSP με Δυναμικό Προγραμματισμό (2)
Γενικεύοντας τον προηγούμενο τύπο (1) προκύπτει g(i,S) = minjS {cij + g(j,S-{j})} (2) Ο τύπος (2) μπορεί να επιλυθεί αν γνωρίζουμε όλα τα επί μέρους του τύπου (1), δηλαδή υπολογίζουμε το g(1,V-{1}) αν γνωρίζουμε το g(k,V-{1,k}) για κάθε k Προφανώς ισχύει g(i,)=ci,1, για 1≤i≤n Στη συνέχεια μπορούμε να χρησιμοποιήσουμε το αποτέλεσμα αυτό για τον υπολογισμό του g(i,S) για κάθε S μεγέθους 1, μετά μεγέθους 2, 3 κοκ Όταν |S|<n–1, οι τιμές των i και S για τον υπολογισμό του g(i,S) πρέπει να είναι i1, 1S και iS Data Engineering Lab

10 TSP με Δυναμικό Προγραμματισμό (3)
Παράδειγμα: έστω ο κατευθυνόμενος ζυγισμένος γράφος με αναπαράσταση Ισχύει κατά σειρά g(2,) = c21 = 5 g(3,) = c31 = 6 g(4,) = c41 = 8 Στη συνέχεια g(2,{3}) = c23+g(3,) = 9+6 = 15 g(2,{4}) = c24+g(4,) = 10+8 = 18 g(3,{2}) = c32+g(2,) = 13+5 = 18 g(3,{4}) = c34+g(4,) = 12+8 = 20 g(4,{2}) = c42+g(2,) = 8+5 = 13 g(4,{3}) = c43+g(3,) = 9+6 =15 10 15 20 5 9 6 13 12 8 Data Engineering Lab

11 TSP με Δυναμικό Προγραμματισμό (4)
Στη συνέχεια υπολογίζουμε το g(i,S) για |S|=2, όπου i1; 1S και iS g(2,{3,4}) = min {c23+g(3,{4}), c24+g(4,{3})} = 25 g(3,{2,4}) = min {c32+g(2,{4}), c34+g(4,{2})} = 25 g(4,{2,3}) = min {c42+g(2,{3}), c43+g(3,{2})} = 23 Τελικά λαμβάνουμε g(1,{2,3,4}) = min {c12+g(2,{3, 4}), c13+g(3,{2,4}), c14+g(4,{2,3})} = min {35,40,43} = 35 Η διαδρομή με αυτό το ελάχιστο μήκος μπορεί να βρεθεί αν για κάθε g(i,S) κρατούμε την τιμή του j που ελαχιστοποιεί αυτή την τιμή. Έστω ότι J(i, S) είναι αυτή η τιμή J(1,{2,3,4})=2. Αυτό σημαίνει ότι η διαδορμή ξεκινά από την κορυφή 1 και πάει στην κορυφή 2. Η υπολειπόμενη διαδρομή μπορεί να βρεθεί από το g(2,{3,4}). Ισχύει J(2,{3,4})=4. Επομένως η απόμενη ακμή είναι <2,4>. Η υπολειπόμενη διαδρομή είναι g(4,{3}). Ισχύει J(4,{3})=3. Συνεπώς η βέλτιστη διαδρομή είναι <1,2,4,3,1> Data Engineering Lab

12 TSP με Δυναμικό Προγραμματισμό (5)
Έστω N το πλήθος των g(i,S) που πρέπει να υπολογίσουμε πριν τον τύπο (1) για τον υπολογισμό του g(1,V–{1}) Για κάθε τιμή του |S| υπάρχουν n–1 επιλογές για το i. Το πλήθος των διακριτών συνόλων S μεγέθους k, που δεν περιέχουν τα 1 και i είναι C(k, n -2) n-2 Ισχύει N =  (n-1) C(k,n-2) = (n-1) 2n-2 k=0 Ο τελικός υπολογισμός του τύπου (2) είναι n φορές οι προηγούμενοι υπολογισμοί. Συνεπώς απαιτείται χρόνος O(n22n) Προφανώς είναι πολύ καλύτερα από την εξαντλητική απαρίθμιση Μειονέκτημα της μεθόδου είναι ότι απαιτείται χώρος τάξης O(n2n) Data Engineering Lab

13 Είδη κεντρικότητας Στη Θεωρία Γράφων και στην Ανάλυση Δικτύων υπάρχουν μέτρα για τη μέτρηση της κεντρικότητας μίας κορυφής Μετρούν τη σχετική σπουδαιότητα ενός κόμβου μέσα στο γράφο Μερικά τέτοια μέτρα είναι: κεντρικότητα βαθμού (degree centrality) ενδιάμεση κεντρικότητα (betweenness centrality) ενδιάμεση κεντρικότητα ακμών (edge betweenness centrality) κεντρικότητα εγγύτητας (closeness centrality) και άλλα ... Data Engineering Lab

14 Κεντρικότητα βαθμού Ορίζεται ως το πλήθος των εισερχόμενων ακμών (βαθμός) Δηλώνει τη δυνατότητα ενός κόμβου να «πιάσει» οτιδήποτε κινείται στο δίκτυο (πληροφορία, ιός κλπ). Η κεντρικότητα βαθμού των μπλε κόμβων είναι μεγαλύτερη Για λόγους κανονικοποίησης διαιρείται ο βαθμός του κόμβου δια (n-1) Data Engineering Lab

15 Ενδιάμεση Κεντρικότητα
Ορίζεται ως εξής όπου σuw είναι το συνολικό πλήθος συντομότερων μονοπατιών μεταξύ των κόμβων u και w, ενώ σuw(v) είναι το πλήθος των συντομότερων μονοπατιών μεταξύ των κόμβων u και w, τα οποία παιρνούν από τον κόμβο v Κόμβοι που βρίσκονται σε πολλά μονοπάτια έχουν μεγαλύτερη κεντρικότητα από άλλους κόμβους Data Engineering Lab

16 Ενδιάμεση Κεντρικότητα (2)
Υπολογισμός του BC(c) σuw σuw(v) σuw/σuw(v) (a,b) (a,d) (a,e) (a,f) (b,d) (b,e) (b,f) (d,e) (d,f) (e,f) a c d b f e BC(c)=6 BC(a)=0 Data Engineering Lab

17 Ενδιάμεση Κεντρικότητα (3)
Οι κόμβοι μεγάλης κεντρικότητας είναι σημαντικοί για την επικοινωνία Αν μπλοκαριστούν, τότε η επικοινωνία γίνεται δυσκολότερη. Αν η χωρητικότητά του μεγαλώσει, τότε η επικοινωνία γίνεται αποτε- λεσματικότερη Ομοίως ορίζεται η ενδιάμεση κεντρικότητα ακμών Από το κόκκινο προς το μπλε αυξάνει η κεντρικότητα Data Engineering Lab

18 Κεντρικότητα εγγύτητας
Για ένα κόμβο ορίζεται ως το αντίστροφο του αθροίσματος των μηκών των γεωδεσικών μονοπατιών προς όλες τις άλλες κορυφές Για λόγους κανονικοποίησης πολλαπλασιάζουμε επί n–1. Η κεντρικότητα αυτή μπορεί να θεωρηθεί ως η ικανότητα ενός κόμβου να διαδίδει προς τους άλλους κόμβους Data Engineering Lab

19 Παραδείγματα Θα δούμε τα μέτρα κεντρικότητας για τους επόμενους γράφους Data Engineering Lab

20 Παράδειγμα: Κεντρικότητα βαθμού
Και κανονικοποίηση ... Data Engineering Lab

21 Παράδειγμα: Κεντρικότητα βαθμού (2)
Είναι τοπικό μέτρο Και κανονικοποίηση ... Data Engineering Lab

22 Παράδειγμα: Κεντρικότητα εγγύτητας
distance closeness normalized distance closeness normalized Data Engineering Lab

23 Παράδειγμα: Κεντρικότητα εγγύτητας (2)
distance closeness normalized Data Engineering Lab

24 Παράδειγμα: Κεντρικότητα εγγύτητας (3)
distance closeness normalized Data Engineering Lab

25 Παράδειγμα: ενδιάμεση κεντρικότητα
Data Engineering Lab

26 Παράδειγμα: ενδιάμεση κεντρικότητα
Data Engineering Lab

27 Συντομότερα μονοπάτια: Dijkstra
"Computer Science is no more about computers than astronomy is about telescopes" Data Engineering Lab

28 Edger Wybe Dijkstra Μάιος11, 1930 – Αύγουστος 6, 2002
Έλαβε το Turing Award το 1972  Schlumberger Centennial Chair of Computer Sciences στο University of Texas at Austin από το 1984 μέχρι το 2000 Δημοσίευσε εναντίον της χρήσης της εντολής GOTO στις γλώσσες προγραμματισμού και συντέλεσε ατην απαξίωσή της Συνέγραψε πολλές εργασίες σχετικά με τον προγραμματισμό Data Engineering Lab

29 Ο αλγόριθμος του Dijkstra
Προσέγγιση: Άπληστη Είσοδος: ζυγισμένος γράφος G={E,V} και κορυφή v∈V, με μη αρνητικά βάρη Έξοδος: τα συντομότερα μονοπάτια (ή τα ίδια τα συντομότερα μονοπάτια) από την κορυφή v∈V προς όλες τις άλλες κορυφές (1 to all) Data Engineering Lab

30 Ο αλγόριθμος του Dijkstra - ψευδοκώδικας
dist[s] ← (distance to source vertex is zero) for all v ∈ V–{s}   do dist[v] (set all other distances to infinity) S←∅ (S, the set of visited vertices is initially empty) Q←V (Q, the queue initially contains all vertices)               while Q≠∅ (while the queue is not empty) do   u←mindistance(Q,dist)(select the element of Q with the min. distance)   S←S∪{u} (add u to list of visited vertices)      for all v ∈ neighbors[u]       do if  dist[v] > dist[u]+w(u, v) (if new shortest path found)           then  d[v]←d[u]+w(u, v) (set new value of shortest path) (if desired, add traceback code) return dist Data Engineering Lab

31 Ο αλγόριθμος του Dijkstra - animation
Data Engineering Lab

32 Ο αλγόριθμος του Dijkstra - animation
Data Engineering Lab

33 Ο αλγόριθμος του Dijkstra - animation
Data Engineering Lab

34 Ο αλγόριθμος του Dijkstra - animation
Data Engineering Lab

35 Ο αλγόριθμος του Dijkstra - animation
Data Engineering Lab

36 Ο αλγόριθμος του Dijkstra - animation
Data Engineering Lab

37 Ο αλγόριθμος του Dijkstra - animation
Data Engineering Lab

38 Ο αλγόριθμος του Dijkstra - animation
Data Engineering Lab

39 Ο αλγόριθμος του Dijkstra - animation
Data Engineering Lab

40 Ο αλγόριθμος του Dijkstra - animation
Data Engineering Lab

41 Dijkstra – υλοποίηση και πολυπλοκότητα
H αρχική υλοποίηση του Dijkstra δεν χρησιμοποιούσε ουρά προτεραιότητας. Με σειριακή αναζήτηση πίνακες ή συνδεδεμένες λίστες προκύπτει πολυπλοκότητα O(|V|2) Για αραιούς γράφους με χρήση συνδεδεμένων λιστών και δυαδικό σωρό προκύπτει O((|E|+|V|) log|V|) σωρό Fibonacci προκύπτει O(|E| + |V|log|V|) Data Engineering Lab


Κατέβασμα ppt "Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google