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

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

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

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


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

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

2 TSP με Διακλάδωση και Περιορισμό Data Engineering Lab Τεχνική branch & bound

3 Data Engineering Lab 3 Πρέπει να βρεθεί ένα κάτω όριο για το μήκος του Hamiltonian κύκλου Θεωρούμε ανά κορυφή τις 2 ακμές με το μικρότερο βάρος (με τη μία μπαίνουμε στην κορυφή, με την άλλη βγαίνουμε) Βρίσκουμε κάτω όριο = 173/2 = 86,5 TSP με Διακλάδωση και Περιορισμό (2) Τι θα προκύψει αν θεωρήσουμε τις στήλες του πίνακα γειτνίασης?

4 Data Engineering Lab 4 Θεωρούμε ότι αφετηρία είναι η κορυφή 1. Ποιό είναι το όριο στην περίπτωση αυτή αν από την κορυφή 1 πάμε στην κορυφή 2? Βρίσκουμε κάτω όριο = 191/2 = 95,5 TSP με Διακλάδωση και Περιορισμό (3)

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

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

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

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

9 9 Γενικεύοντας τον προηγούμενο τύπο (1) προκύπτει g(i,S) = min j  S {c ij + g(j,S-{j})} (2) Ο τύπος (2) μπορεί να επιλυθεί αν γνωρίζουμε όλα τα επί μέρους του τύπου (1), δηλαδή υπολογίζουμε το g(1,V-{1}) αν γνωρίζουμε το g(k,V-{1,k}) για κάθε k Προφανώς ισχύει g(i,  )=c i,1, για 1≤i≤n Στη συνέχεια μπορούμε να χρησιμοποιήσουμε το αποτέλεσμα αυτό για τον υπολογισμό του g(i,S) για κάθε S μεγέθους 1, μετά μεγέθους 2, 3 κοκ Όταν |S|

10 10 Παράδειγμα: έστω ο κατευθυνόμενος ζυγισμένος γράφος με αναπαράσταση Ισχύει κατά σειρά g(2,  ) = c 21 = 5 g(3,  ) = c 31 = 6 g(4,  ) = c 41 = 8 Στη συνέχεια g(2,{3}) = c 23 +g(3,  ) = 9+6 = 15 g(2,{4}) = c 24 +g(4,  ) = 10+8 = 18 g(3,{2}) = c 32 +g(2,  ) = 13+5 = 18 g(3,{4}) = c 34 +g(4,  ) = 12+8 = 20 g(4,{2}) = c 42 +g(2,  ) = 8+5 = 13 g(4,{3}) = c 43 +g(3,  ) = 9+6 =15 TSP με Δυναμικό Προγραμματισμό (3) Data Engineering Lab

11 11 Στη συνέχεια υπολογίζουμε το g(i,S) για |S|=2, όπου i  1; 1  S και i  S g(2,{3,4}) = min {c 23 +g(3,{4}), c 24 +g(4,{3})} = 25 g(3,{2,4}) = min {c 32 +g(2,{4}), c 34 +g(4,{2})} = 25 g(4,{2,3}) = min {c 42 +g(2,{3}), c 43 +g(3,{2})} = 23 Τελικά λαμβάνουμε g(1,{2,3,4}) = min {c 12 +g(2,{3, 4}), c 13 +g(3,{2,4}), c 14 +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. Επομένως η απόμενη ακμή είναι. Η υπολειπόμενη διαδρομή είναι g(4,{3}). Ισχύει J(4,{3})=3. Συνεπώς η βέλτιστη διαδρομή είναι TSP με Δυναμικό Προγραμματισμό (4) Data Engineering Lab

12 12 Έστω 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) 2 n-2 k=0 Ο τελικός υπολογισμός του τύπου (2) είναι n φορές οι προηγούμενοι υπολογισμοί. Συνεπώς απαιτείται χρόνος O(n 2 2 n ) Προφανώς είναι πολύ καλύτερα από την εξαντλητική απαρίθμιση Μειονέκτημα της μεθόδου είναι ότι απαιτείται χώρος τάξης O(n2 n ) TSP με Δυναμικό Προγραμματισμό (5) Data Engineering Lab

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

30 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 Ο αλγόριθμος του Dijkstra - ψευδοκώδικας Data Engineering Lab 30

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

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

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

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

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

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

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

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

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

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

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


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

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


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