Data Science & Engineering Lab

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Αλγόριθμοι Αναζήτησης
Advertisements

ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Δομές Δεδομένων - Δυαδικά Δένδρα (binary trees)
ΜΑΘ-3122/106 Προγραμματισμός
11-1 ΜΑΘΗΜΑ 12 ο Γράφοι, Διάσχιση Γράφων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
1Πέτρος ΣτεφανέαςΠρογραμματιστικές Τεχνικές ΓΡΑΦΟΙ (GRAPHS) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Νίκος Παπασπύρου.
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Έλεγχος της.
Ελαφρύτατες διαδρομές 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 Ιανουαρίου.
Γράφοι: Προβλήματα και Αλγόριθμοι
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Διδάσκων: Παύλος Παυλικκάς1 Ολυμπιάδα Πληροφορικής Γράφοι – Graphs (Εισαγωγή)
Ουρά Προτεραιότητας: Heap
Συντομότερες Διαδρομές
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο1 Μείωσε και Βασίλευε Μειώνουμε το στιγμιότυπο του προβλήματος σε ένα μικρότερο στιγμιότυπο.
1 routing Δρομολόγηση (routing) σε δίκτυα Αυτοδύναμα Πακέτα (Datagrams): απόφαση δρομολόγησης για κάθε πακέτο. Εικονικά Κυκλώματα (Virtual Circuits): μία.
Χωρικοί-χρονικοί συμβιβασμοί
Ο αλγόριθμος Bellman-Ford (επανεξετάζεται)
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
Ελάχιστο Συνδετικό Δέντρο
Βέλτιστη Δυναμική Προσαρμογή Τοπολογίας Δικτύων: Γραφοθεωρητικοί Αλγόριθμοι Για περισσότερα: N. Li, J. C. Hou. Topology Control in Heterogeneous Wireless.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα Data Engineering Lab 1.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 4 Δ ΕΝΔΡΑ Σταύρος Δ. Νικολόπουλος 1.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Ασυμπτωτικός Συμβολισμός
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Δένδρα ΘΕΩΡΙΑ ΓΡΑΦΩΝ Εργαστήριο Τεχνολογίας & Επεξεργασίας Δεδομένων Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 3: Δένδρα.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
Δομές ΔεδομένωνΤμήμα Πληροφορικής ΑΠΘ1 Δομές Δεδομένων - DFS σε κατευθυνόμενο γράφο - Ελάχιστα Μονοπάτια - Τοπολογική Ταξινόμηση - Eλάχιστα Ζευγνύοντα.
Data Engineering Lab Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 3: Δένδρα 1.
Συνδεσμικότητα ΘΕΩΡΙΑ ΓΡΑΦΩΝ Εργαστήριο Τεχνολογίας & Επεξεργασίας Δεδομένων Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΤΕΙ Αθήνας: Σχολή ΤΕΦ: Τμήμα Ναυπηγικής Εφαρμογές Η/Υ στην Ναυπηγική ΙΙ ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ NA0703C39 Εξάμηνο Ζ’ Διδάσκων Κωνσταντίνος Β. Κώστας Παρουσίαση.
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ. 2 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα –Αναζήτηση κατά βάθος (Depth-first search – DFS) –Αναζήτηση κατά πλάτος (Breadth-first.
Θεωρία & Αλγόριθμοι Γράφων Θεωρία & Αλγόριθμοι Γράφων Εφαρμογές DFS Data Science Lab 1.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Θεωρία & Αλγόριθμοι Γράφων
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 9ο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Θεωρία & Αλγόριθμοι Γράφων Αποστάσεις
Συντομότερα Μονοπάτια
Θεωρία & Αλγόριθμοι Γράφων Δένδρα
Δημοςιευςη επιςτημονικης ερευνας
EPL231 – Data Structures and Algorithms
Δυναμικός Προγραμματισμός
Β. Μάγκλαρης 2/11/2015 ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Δρομολόγηση στο Internet (II) Αλγόριθμοι Distance Vector (Bellman)
Η τακτοποίηση των κόμβων μίας δομής με μία ιδιαίτερη σειρά είναι μία πολύ σημαντική λειτουργία που ονομάζεται ταξινόμηση (sorting) ή διάταξη (ordering).
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ
Πανεπιστήμιο Θεσσαλίας
Ελαφρύτατες διαδρομές
Find: φ σ3 = 400 [lb/ft2] CD test Δσ = 1,000 [lb/ft2] Sand 34˚ 36˚ 38˚
Δημοςιευςη επιςτημονικης ερευνας
aka Mathematical Models and Applications
Τμήμα Πληροφορικής Α.Π.Θ. Παρουσίαση της Κατεύθυνσης
Αναζήτηση (Εξερεύνηση) Πρώτα σε Πλάτος
Μεταγράφημα παρουσίασης:

Data Science & Engineering Lab Θεωρία & Αλγόριθμοι Γράφων Συντομότερα μονοπάτια Dijkstra, Bellman-Ford, Johnson, Floyd, Warshall Data Science & Engineering Lab

Data Science & Engineering Lab Συντομότερα μονοπάτια Σε μη ζυγισμένο γράφο τα συντομότερα μονοπάτια βρίσκονται με διάσχιση BFS Αλγόριθμοι για ζυγισμένους γράφους Dijkstra (1-to-all, χωρίς αρνητικά βάρη) Bellman-Ford (1-to-all, με αρνητικά βάρη) Johnson (all-to-all, με αρνητικά βάρη) Floyd (all-to-all) Warshall (μεταβατική κλειστότητα) Data Science & Engineering Lab

Data Science & Engineering Lab Edger Wybe Dijkstra 1930, Rotterdam – 2002, Nuenen Έλαβε το Turing Award το 1972 Schlumberger Centennial Chair of Computer Sciences στο University of Texas at Austin (1984-2000) Δημοσίευσε εναντίον της χρήσης της εντολής GOTO στις γλώσσες προγραμματισμού και συντέλεσε στην απαξίωσή της Edsger Dijkstra: “Go To Statement Considered Harmful“, CACM, Vol.11, No.3, pp.147–148, 1968. Συνέγραψε πολλές εργασίες σχετικά με τον προγραμματισμό "Computer Science is no more about computers than astronomy is about telescopes" Data Science & Engineering Lab

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

Data Science & Engineering Lab Aλγόριθμος Dijkstra - ψευδοκώδικας Data Science & Engineering Lab

Data Science & Engineering Lab Aλγόριθμος Dijkstra - ψευδοκώδικας Ψευδοκώδικας εύρεσης μονοπατιού Data Science & Engineering Lab

Aλγόριθμος Dijkstra - ψευδοκώδικας Χρήση ουράς προτεραιότητας Data Science & Engineering Lab

Data Science & Engineering Lab Aλγόριθμος Dijkstra - animation Data Science & Engineering Lab

Data Science & Engineering Lab Aλγόριθμος Dijkstra - animation Data Science & Engineering Lab

Data Science & Engineering Lab Aλγόριθμος Dijkstra - animation Data Science & Engineering Lab

Data Science & Engineering Lab Aλγόριθμος Dijkstra - animation Data Science & Engineering Lab

Data Science & Engineering Lab Aλγόριθμος Dijkstra - animation Data Science & Engineering Lab

Data Science & Engineering Lab Aλγόριθμος Dijkstra - animation Data Science & Engineering Lab

Data Science & Engineering Lab Aλγόριθμος Dijkstra - animation Data Science & Engineering Lab

Data Science & Engineering Lab Aλγόριθμος Dijkstra - animation Data Science & Engineering Lab

Data Science & Engineering Lab Aλγόριθμος Dijkstra - animation Data Science & Engineering Lab

Data Science & Engineering Lab Aλγόριθμος Dijkstra - animation Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Dijkstra – πολυπλοκότητα H υλοποίηση του Dijkstra χρησιμοποιούσε πίνακες (1956) και συνδεδεμένες λίστες (1959). Με σειριακή αναζήτηση σε πίνακες ή λίστες προκύπτει κόστος O(n2) Για αραιούς γράφους με χρήση συνδεδεμένων λιστών και δυαδικό σωρό προκύπτει O((m+n)∙logn) σωρό Fibonacci προκύπτει O(m+n∙logn) Data Science & Engineering Lab

Data Science & Engineering Lab Bellman-Ford (wiki) Richard Ernest Bellman (1920, NY -1984, LA). He was awarded the IEEE Medal of Honor "for contribu- tions to decision processes and control system theory, particularly the creation and application of dynamic programming“ (1979). His key work is the Bellman equation. He coined the term “curse of dimensionality”. The Bellman Prize in Mathematical Biosciences was created in his honor (1985). Lester Randolph Ford Jr. (1927, Houston). He spe- cialized in network flow problems. Ford's paper with Fulkerson on the maximum flow problem and the Ford- Fulkerson algorithm, published as a technical report in 1954 and in a journal in 1956, established the max-flow min-cut theorem. Ford also developed the Bellman-Ford algorithm for finding shortest paths in graphs that have negatively weighted edges before Bellman. Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Bellman-Ford Προσέγγιση: Δυναμικός προγραμματισμός Είσοδος: ζυγισμένος γράφος G={E,V} και κορυφή v∈V, με αρνητικά βάρη, χωρίς αρνητικούς κύκλους Έξοδος: τα συντομότερα μονοπάτια (ή τα ίδια τα συντομότερα μονοπάτια) από την κορυφή v∈V προς όλες τις άλλες κορυφές (1-to-all) ή η ένδειξη ότι ότι υπάρχει αρνητικός κύκλος O αλγόριθμος αρχικά προτάθηκε από τον Alfonso Shimbel (1955) αλλά πήρε το όνομα των Richard Bellman και Lester Ford που τον δημοσίευσαν ανεξάρτητα το 1958 και το 1956 αντιστοίχως. Ο Edward Moore επίσης δημοσίευσε τον ίδιο αλγόριθμο το 1957 και για αυτό το λόγο ονομάζεται και αλγόριθμος Bellman-Ford-Moore. Data Science & Engineering Lab

Αλγόριθμος Bellman-Ford - ψευδοκώδικας Πως υλοποιείται ο εσωτερικός βρόχος? Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Bellman-Ford - animation 6 7 9 2 5 -2 8 -3 -4 s t x y z Σε κάθε πέρασμα εξετάζονται οι ακμές με τη σειρά: (t,x), (t,y), (t,z), (x,t), (y,x), (y,z), (z,x), (z,s), (s,t), (s,y) Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Bellman-Ford - animation 6 7 9 2 5 -2 8 -3 -4 s t x y z Σε κάθε πέρασμα εξετάζονται οι ακμές με τη σειρά: (t,x), (t,y), (t,z), (x,t), (y,x), (y,z), (z,x), (z,s), (s,t), (s,y) Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Bellman-Ford - animation 6 7 9 2 5 -2 8 -3 -4 4 s t x y z Σε κάθε πέρασμα εξετάζονται οι ακμές με τη σειρά: (t,x), (t,y), (t,z), (x,t), (y,x), (y,z), (z,x), (z,s), (s,t), (s,y) Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Bellman-Ford - animation 6 7 9 2 5 -2 8 -3 -4 4 s t x y z Σε κάθε πέρασμα εξετάζονται οι ακμές με τη σειρά: (t,x), (t,y), (t,z), (x,t), (y,x), (y,z), (z,x), (z,s), (s,t), (s,y) Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Bellman-Ford - animation 6 7 9 2 5 -2 8 -3 -4 4 s t x y z vertex: s u v x y distance: 2 4 7 -2 predecessor: null Σε κάθε πέρασμα εξετάζονται οι ακμές με τη σειρά: (t,x), (t,y), (t,z), (x,t), (y,x), (y,z), (z,x), (z,s), (s,t), (s,y) Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα Bellman-Ford – αρνητικοί κύκλοι v2  6 7 8 -2 1 2 9 5 -8 v1 v3 v4 v5 v6 v7 v8 5 Οι γαλάζιες ακμές δημιουργούν έναν αρνητικό κύκλο Θα εξετασθούν οι κορυφές κατά την αρίθμησή τους Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα Bellman-Ford – αρνητικοί κύκλοι v2 5 i=1 v3 6 11 6 -2 1 v1 8 7 12 v4 7 9 2 v6 6 16 v5 2 5 -8 v7 9 1 v8 Με έντονο βέλος συμβολίζεται ο predecessor Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα Bellman-Ford – αρνητικοί κύκλοι v2 5 i=2 v3 6 11 6 -2 1 v1 8 7 12 v4 7 9 2 v6 5 15 v5 2 5 -8 v7 8 v8 Με έντονο βέλος συμβολίζεται ο predecessor Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα Bellman-Ford – αρνητικοί κύκλοι v2 5 i=3 v3 6 11 6 -2 1 v1 8 7 12 v4 7 9 2 v6 4 14 v5 2 5 -8 v7 7 -1 v8 Με έντονο βέλος συμβολίζεται ο predecessor Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα Bellman-Ford – αρνητικοί κύκλοι v2 5 i=4 v3 6 11 6 -2 1 v1 8 7 12 v4 7 9 2 v6 3 13 v5 2 5 -8 v7 6 -2 v8 Με έντονο βέλος συμβολίζεται ο predecessor Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα Bellman-Ford – αρνητικοί κύκλοι v2 5 i=5 v3 6 11 6 -2 1 v1 8 7 12 v4 7 9 2 v6 2 12 v5 2 5 -8 v7 5 -3 v8 Με έντονο βέλος συμβολίζεται ο predecessor Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα Bellman-Ford – αρνητικοί κύκλοι v2 5 i=6 v3 6 11 6 -2 1 v1 8 7 12 v4 7 9 2 v6 1 11 v5 2 5 -8 v7 4 -4 v8 Με έντονο βέλος συμβολίζεται ο predecessor Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα Bellman-Ford – αρνητικοί κύκλοι v2 5 i=7 v3 6 11 6 -2 1 v1 8 7 12 v4 7 9 2 v6 10 v5 2 5 Τέλος διπλού βρόχου -8 v7 3 -5 v8 Με έντονο βέλος συμβολίζεται ο predecessor Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα Bellman-Ford – αρνητικοί κύκλοι v2 5 i=8 v3 6 11 6 -2 1 v1 8 7 12 v4 7 9 2 v6 -1 9 v5 2 5 -8 v7 2 -6 v8 Οι καφέ κόμβοι άλλαξαν τιμές  υπάρχει κύκλος Data Science & Engineering Lab

Data Science & Engineering Lab Σχόλια για αλγόριθμο Bellman-Ford Η απόσταση για κάποια κορυφή μπορεί να αλλάξει περισσότερο από 1 φορά σε κάθε πέρασμα. Μπορεί ο αλγόριθμος να συγκλίνει σε λιγότερο από n-1 περάσματα. Μπορεί να τερματισθεί νωρίτερα με μία λογική σημαία (σαν bubblesort). Μία άλλη υλοποίηση στον εσωτερικό βρόχο θεωρεί με τη σειρά τις κορυφές και για κάθε μία λαμβάνει τις ακμές που ξεκινούν από αυτήν. Ανεξαρτήτως υλοποίησης η σύγκλιση εξαρτάται από τη σειρά θεώρησης των κορυφών ή των ακμών αλλά η πολυπλοκότητα δεν αλλάζει. Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Bellman-Ford - πολυπλοκότητα O(n) O(n∙m) O(m) Η πολυπλοκότητα του αλγορίθμου Bellman-Ford είναι O(n∙m) Data Science & Engineering Lab

Άσκηση - Αλγόριθμος Bellman-Ford τις ακμές με τη σειρά (S,A),(S,G),(A,E),(B,A), (B,C),(C,D),(D,E), (E,B),(F,A), (F,E),(G,F) τις κορυφές με τη σειρά S, G, F, E, D, C, B, A

Data Science & Engineering Lab Donald Johnson (wiki) Donald Bruce Johnson (1933-1994) was a researcher in the design and analysis of algorithms. Johnson received his Ph.D. from Cornell University in 1973 under the supervision of David Gries. He took a faculty position in the CS department at Penn State University, and later moved to the department of mathematics at Dartmouth. When the Dartmouth CS department was founded in 1994, he became its first chair. Johnson invented the d-ary heap data structure, and is also known for Johnson's algorithm for the all-pairs shortest path problem. Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Johnson - κίνητρο Για να υπολογίσουμε τα συντομότερα μονοπάτια all-to-all, μπορούμε να τρέξουμε n φορές τον αλγόριθμο Dijkstra που δεν δέχεται ακμές με αρνητικά βάρη και είναι Ο[(m+n)∙logn] τον αλγόριθμο Bellman-Ford που δέχεται ακμές με αρνητικά βάρη και είναι Ο(n∙m) Αν δίνεται ένας αραιός γράφος, τότε οι πολυπλοκότητες είναι Ο(n∙logn) και O(n2). Άρα, ο Dijkstra προτιμητέος. Αν ο αραιός γράφος έχει ακμές με αρνητικό βάρος, τότε ο Dijkstra απαγορευτικός. Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Johnson (1977) Ο αλγόριθμος Johnson αποτελείται από τα εξής βήματα: Δημιουργείται ένας νέος κόμβος q και συνδέεται με όλους του κόμβους με ακμές βάρους 0. Χρησιμοποιείται ο αλγόριθμος Bellman-Ford για την εύρεση του μήκους συντομότερου μονοπατιού h(v) κάθε κόμβου v από τον κόμβο q. Οι ακμές του γράφου λαμβάνουν νέα βάρη ως εξής: το νέο βάρος μίας ακμής από τον κόμβο u προς τον κόμβο v και με βάρος w(u,v), ισούται με w(u,v)+h(u)−h(v) Ο κόμβος q διαγράφεται και χρησιμοποιείται ο αλγόρι- θμος Dijkstra για την εύρεση όλων των συντομότερων μονοπατιών (all-to-all). Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα - αλγόριθμος Johnson Ο γράφος έχει αρνητικές ακμές αλλά όχι αρνητικούς κύκλους. Βήμα 1ο. Εισάγουμε τον κόμβο q και τον ενώνουμε με όλους τους κόμβους με ακμές βάρους 0. 2 1 4 3 8 -5 -4 6 7 v1 v2 v3 v4 v5 q Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα - αλγόριθμος Johnson Βήμα 2ο. Τρέχουμε τον αλγόριθμο Bellman-Ford και βρίσκουμε το μήκος των συντομότερων μονοπατιών του κόμβου q από κάθε κόμβο. -1 -5 -4 2 1 4 3 8 6 7 v1 v2 v3 v4 v5 Data Science & Engineering Lab

Data Science & Engineering Lab Παράδειγμα - αλγόριθμος Johnson 2 4 13 10 v1 v2 v3 v4 v5 Βήμα 3ο. Υπολογίζουμε τα νέα βάρη των ακμών που πλέον δεν είναι αρνητικά. Βήμα 4ο. Τρέχουμε τον αλγόριθμο Dijkstra για κάθε κόμβο. Ποιά είναι η πολυπλοκότητα του αλγορίθμου Johnson? Data Science & Engineering Lab

Data Science & Engineering Lab Διατήρηση μονοπατιών Αλλάζουν τα βάρη των ακμών, όχι όμως τα συντομότερα μονοπάτια. Στους δύο γράφους: ποιό είναι το συντομότερο μονοπάτι από τον v1 στον v2 ? ποιό είναι το συντομότερο μονοπάτι από τον v2 στον v5 ? 2 1 4 3 8 -5 -4 6 7 v1 v2 v3 v4 v5 2 4 13 10 v1 v2 v3 v4 v5 Data Science & Engineering Lab

Data Science & Engineering Lab Συντομότερα μονοπάτια σε DAG Ο κατευθυνόμενος άκυκλος γράφος ονομάζεται DAG (directed acyclic graph) Η εύρεση συντομότερων μονοπατιών σε DAG μπορεί να γίνει με Bellman-Ford. Η τοπολογική ταξινόμηση-topological sorting τοποθετεί τους κόμβους ενός DAG επί ευθείας ώστε όλες οι ακμές να έχουν κοινή κατεύθυνση (από αριστερά προς τα δεξιά). Tα συντομότερα μονοπάτια σε ένα DAG μπορούν να βρεθούν με ένα πέρασμα λαμβάνοντας στη σειρά τους κόμβους της τοπολογικής ταξινόμησης. Data Science & Engineering Lab

Data Science & Engineering Lab Μονοπάτια σε DAG - animation 6 1 u r s t v w 5 2 7 –1 –2      4 3 2 Δίνεται η τοπολογική ταξινόμηση. Ζητούνται τα συντομότερα μονοπάτια από τον κόμβο s. Αρχικοποίηση: μήκος συντομότερου μονοπατιού 0 για τον s και ∞ για τους υπόλοιπους. Data Science & Engineering Lab

Data Science & Engineering Lab Μονοπάτια σε DAG - animation 6 1 u r s t v w 5 2 7 –1 –2      4 3 2 Data Science & Engineering Lab

Data Science & Engineering Lab Μονοπάτια σε DAG - animation 6 1 u r s t v w 5 2 7 –1 –2  2 6   4 3 2 Data Science & Engineering Lab

Data Science & Engineering Lab Μονοπάτια σε DAG - animation 6 1 u r s t v w 5 2 7 –1 –2  2 6 6 4 4 3 2 Data Science & Engineering Lab

Data Science & Engineering Lab Μονοπάτια σε DAG - animation 6 1 u r s t v w 5 2 7 –1 –2  2 6 5 4 4 3 2 Data Science & Engineering Lab

Data Science & Engineering Lab Μονοπάτια σε DAG - animation 6 1 u r s t v w 5 2 7 –1 –2  2 6 5 3 4 3 2 Data Science & Engineering Lab

Data Science & Engineering Lab Μονοπάτια σε DAG - animation 6 1 u r s t v w 5 2 7 –1 –2  2 6 5 3 4 3 2 Ποιά είναι η πολυπλοκότητα ? Data Science & Engineering Lab

Data Science & Engineering Lab Robert Floyd (wiki) Robert (Bob) Floyd (1936–2001) Turing award 1978 His contributions include Floyd-Warshal algorithm, which efficiently finds all shortest paths in a graph,  Floyd’s cycle-finding algorithm for detecting  cycles in a sequence, and his work on parsing. the important concept of error diffusion for rendering images, also called Floyd-Steinberg dithering (though he distinguished dithering from diffusion). pioneering the field of program verification using logical assertions with the 1967 paper Assigning Meanings to Programs. This was an important contribution to what later became Hoare logic. Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Floyd (1962) Προσέγγιση: Δυναμικός προγραμματισμός Είσοδος: ζυγισμένος γράφος G={E,V} και κορυφή v∈V, με αρνητικά βάρη αλλά όχι αρνητικούς κύκλους Έξοδος: τα συντομότερα μονοπάτια (ή τα ίδια τα συντομότερα μονοπάτια) από όλες τις κορυφές προς όλες τις άλλες κορυφές (all-to-all). Ο αλγόριθμος Floyd δημοσιεύθηκε το 1962. Ωστόσο, ήταν βασικά ίδιος με έναν αλγόριθμο του Bernard Roy (1959) και με έναν αλγόριθμο του Stephen Warshall (1962) για την εύρεση της μεταβατικής κλειστότητας. Η υλοποίηση του αλγορίθμου με ένα τριπλό βρόχο περιγράφηλε από τον Peter Ingerman (1962). Ο αλγόριθμος είναι γνωστός και ως Floyd- Warshall, Roy–Warshall ή Roy–Floyd ή ως WFI αλγόριθμος. Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Floyd - ψευδοκώδικας Πολυπλοκότητα O(n3) Ποιά είναι η διαφορά από τον αλγόριθμο του Dijkstra ? Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Floyd - παράδειγμα 5 ∞ 2 3 7 4 1 Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Floyd – παράδειγμα (2) Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Floyd - ψευδοκώδικας Πολυπλοκότητα ? Εύρεση μονοπατιών Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Floyd – αρνητικοί κύκλοι Μπορεί ο αλγόριθμος Floyd να χειριστεί ακμές με αρνητικά βάρη και αρνητικούς κύκλους? Μπορεί να χειριστεί ακμές με αρνητικές τιμές. Αν υπάρχει αρνητικός κύκλος, τότε το κλειστό μονοπάτι (i, …, i) θα έχει αρνητική τιμή αν και θα έπρεπε να έχει 0. Συνεπώς, αν στο τέλος του αλγορίθμου ο πίνακας dist περιέχει αρνητικές τιμές στην διαγώνιο, αυτό σημαίνει ότι υπάρχει αρνητικός κύκλος και συνεπώς δεν έχει νόημα η εύρεση συντομότερων μονοπάτιων στο γράφο. Data Science & Engineering Lab

Data Science & Engineering Lab Steven Warshall Stephen Warshall (1935 NY – 2006, Gloucester/MA). He carried out research and development in operating systems, compiler design, language design and operations research. There is an interesting anecdote about his proof that the transitive closure algorithm is correct. He and a colleague at Technical Operations bet a bottle of rum on who first could determine whether this algorithm always works. Warshall came up with his proof overnight, winning the bet and the rum, which he shared with the loser of the bet. Because Warshall did not like sitting at a desk, he did much of his creative work in unconventional places such as on a sailboat in the Indian Ocean or in a Greek lemon orchard. Data Science & Engineering Lab

Data Science & Engineering Lab Αλγόριθμος Warshall Προσέγγιση: άπληστη μέθοδος Είσοδος: συνδεδεμένος γράφος G={E,V} και ο πίνακας γειτνίασής του Έξοδος: πίνακας που δίνει τη μεταβατική κλειστότητα (transitive closure) Data Science & Engineering Lab

Data Science & Engineering Lab Μεταβατική κλειστότητα - παράδειγμα Ενώνονται όλες οι κορυφές για τις οποίες υπάρχει μονοπάτι μεταξύ τους Εφαρμόζεται σε κατευθυνόμενους και μη κατευθυνόμενους γράφους Data Science & Engineering Lab

Data Science & Engineering Lab Μεταβατική κλειστότητα - παράδειγμα Δίνεται ο επόμενος γράφος με πίνακα γειτνίασης Α Ο πίνακας C μπορεί να προκύψει με διαδοχικούς πολλαπλασιασμούς του πίνακα Α Αν ο πολλαπλασιασμός γίνει με «λογικό» τρόπο, τότε ο πίνακας C δίνει την προσβασιμότητα (reachability), αλλιώς δίνει το πλήθος μονοπατιών Data Science & Engineering Lab