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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Advertisements

Αλγόριθμοι Αναζήτησης
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 2: Μονοπάτια και Κύκλοι (Euler) Data Engineering Lab.
Αλγόριθμοι και Πολυπλοκότητα
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
Γραφήματα & Επίπεδα Γραφήματα
Δυναμικός Προγραμματισμός
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση βάρους Κατευθυνόμενο γράφημα.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
Γράφοι: Προβλήματα και Αλγόριθμοι
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 9: Αντιστοιχίσεις και καλύμματα Data Engineering Lab.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Αλγόριθμοι συνέχεια 2.2.4, 2.2.5,
Ουρά Προτεραιότητας: Heap
Συντομότερες Διαδρομές
Γιάννης Σταματίου Αναδρομή και αναδρομικές σχέσεις
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ. Πληροφορικής,
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
1 Βέλτιστη δρομολόγηση (optimal routing) Αντιμετώπιση της δρομολόγησης σαν «συνολικό» πρόβλημα βελτιστoποίησης. Γιατί: Η αλλαγή της δρομολόγησης μιας συνόδου.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Ελάχιστο Συνδετικό Δέντρο
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 2: Μονοπάτια και Κύκλοι (Hamilton) Data Engineering Lab.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα Data Engineering Lab 1.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τμ.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 4 Δ ΕΝΔΡΑ Σταύρος Δ. Νικολόπουλος 1.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Δένδρα ΘΕΩΡΙΑ ΓΡΑΦΩΝ Εργαστήριο Τεχνολογίας & Επεξεργασίας Δεδομένων Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 3: Δένδρα.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
Data Engineering Lab Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 3: Δένδρα 1.
Συνδεσμικότητα ΘΕΩΡΙΑ ΓΡΑΦΩΝ Εργαστήριο Τεχνολογίας & Επεξεργασίας Δεδομένων Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΤΕΙ Αθήνας: Σχολή ΤΕΦ: Τμήμα Ναυπηγικής Εφαρμογές Η/Υ στην Ναυπηγική ΙΙ ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ NA0703C39 Εξάμηνο Ζ’ Διδάσκων Κωνσταντίνος Β. Κώστας Παρουσίαση.
Αναζήτηση σε πίνακα Αναζήτηση σε πίνακα που περιέχει ακέραιους αριθμούς.
1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ. 2 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα –Αναζήτηση κατά βάθος (Depth-first search – DFS) –Αναζήτηση κατά πλάτος (Breadth-first.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Δυναμικός Κατακερματισμός
Θεωρία & Αλγόριθμοι Γράφων
Διερεύνηση γραφήματος
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
Βέλτιστη δρομολόγηση (optimal routing)
Data Science & Engineering Lab
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 9ο
Θεωρία & Αλγόριθμοι Γράφων Αποστάσεις
Συντομότερα Μονοπάτια
Θεωρία & Αλγόριθμοι Γράφων Μονοπάτια & Κύκλοι (Hamilton)
EPL231 – Data Structures and Algorithms
Δυναμικός Προγραμματισμός
Β. Μάγκλαρης 2/11/2015 ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Δρομολόγηση στο Internet (II) Αλγόριθμοι Distance Vector (Bellman)
Ουρά Προτεραιότητας (priority queue)
Ελαφρύτατες διαδρομές
ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΓΡΑΦΗΜΑΤΩΝ II
Δομές Δεδομένων και Τεχνικές Προγραμματισμού
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

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

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

Βρίσκουμε κάτω όριο = 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

Βρίσκουμε κάτω όριο = 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Παράδειγμα: Κεντρικότητα εγγύτητας distance closeness normalized 0 1 1 1 1 1 1 1 .143 1.00 1 0 2 2 2 2 2 2 .077 .538 1 2 0 2 2 2 2 2 .077 .538 1 2 2 0 2 2 2 2 .077 .538 1 2 2 2 0 2 2 2 .077 .538 1 2 2 2 2 0 2 2 .077 .538 1 2 2 2 2 2 0 2 .077 .538 1 2 2 2 2 2 2 0 .077 .538 distance closeness normalized 0 1 2 3 4 4 3 2 1 .05 .40 1 0 1 2 3 4 4 3 2 .05 .40 2 1 0 1 2 3 4 4 3 .05 .40 3 2 1 0 1 2 3 4 4 .05 .40 4 3 2 1 0 1 2 3 4 .05 .40 4 4 3 2 1 0 1 2 3 .05 .40 3 4 4 3 2 1 0 1 2 .05 .40 2 3 4 4 3 2 1 0 1 .05 .40 1 2 3 4 4 3 2 1 0 .05 .40 Data Engineering Lab

Παράδειγμα: Κεντρικότητα εγγύτητας (2) distance closeness normalized 0 1 2 3 4 5 6 .048 .286 1 0 1 2 3 4 5 .063 .375 2 1 0 1 2 3 4 .077 .462 3 2 1 0 1 2 3 .083 .500 4 3 2 1 0 1 2 .077 .462 5 4 3 2 1 0 1 .063 .375 6 5 4 3 2 1 0 .048 .286 Data Engineering Lab

Παράδειγμα: Κεντρικότητα εγγύτητας (3) distance closeness normalized 0 1 1 2 3 4 4 5 5 6 5 5 6 .021 .255 1 0 1 1 2 3 3 4 4 5 4 4 5 .027 .324 1 1 0 1 2 3 3 4 4 5 4 4 5 .027 .324 2 1 1 0 1 2 2 3 3 4 3 3 4 .034 .414 3 2 2 1 0 1 1 2 2 3 2 2 3 .042 .500 4 3 3 2 1 0 2 3 3 4 1 1 2 .034 .414 4 3 3 2 1 2 0 1 1 2 3 3 4 .034 .414 5 4 4 3 2 3 1 0 1 1 4 4 5 .027 .324 5 4 4 3 2 3 1 1 0 1 4 4 5 .027 .324 6 5 5 4 3 4 2 1 1 0 5 5 6 .021 .255 5 4 4 3 2 1 3 4 4 5 0 1 1 .027 .324 5 4 4 3 2 1 3 4 4 5 1 0 1 .027 .324 6 5 5 4 3 2 4 5 5 6 1 1 0 .021 .255 Data Engineering Lab

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

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

Συντομότερα μονοπάτια: Dijkstra "Computer Science is no more about computers than astronomy is about telescopes" http://www.cs.utexas.edu/~EWD/ Data Engineering Lab

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

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

Ο αλγόριθμος του 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

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

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

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

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

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

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

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

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

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

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

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