Minimum Spanning Trees1 “Ελάχιστα” συνδετικά δέντρα JFK BOS MIA ORD LAX DFW SFO BWI PVD

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Nikos Louloudakis Nikos Orfanoudakis Irini Genitsaridi
Advertisements

Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Αλγόριθμοι Αναζήτησης
Διακριτά Μαθηματικά ΙI Δέντρα
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
TEMPLATES STANDARD TEMPLATE LIBRARY ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ C Evangelos Theodoridis.
Διάλεξη 16: Πρόβλημα Συμφωνίας ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι.
Αλγόριθμοι και Πολυπλοκότητα
11-1 ΜΑΘΗΜΑ 12 ο Γράφοι, Διάσχιση Γράφων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
Γραφήματα & Επίπεδα Γραφήματα
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Επικαλύπτοντα Δέντρα και Σύνολα Τομής
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Δυναμικός Προγραμματισμός
Προσεγγιστικοί Αλγόριθμοι
Τυχαιοκρατικοί Αλγόριθμοι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
Γράφοι: Προβλήματα και Αλγόριθμοι
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Ε. ΠετράκηςΣτοίβες, Ουρές1 Στοίβες  Στοίβα: περιορισμένη ποικιλία λίστας  τα στοιχεία μπορούν να εισαχθούν ή να διαγραφούν μόνο από μια άκρη : λίστες.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Ουρά Προτεραιότητας: Heap
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Ωμή Βία Είναι μία άμεση προσέγγιση που βασίζεται στην εκφώνηση του προβλήματος και τους ορισμούς.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Ελάχιστο Συνδετικό Δέντρο
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη C Ακέραιοι.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα Data Engineering Lab 1.
Υπολογιστική Πολυπλοκότητα Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
1 Κατανεμημένοι αλγόριθμοι για την εύρεση γεννητικών δέντρων (spanning trees) 1.Ένας σταθερός κόμβος στέλνει ένα ‘start’ μήνυμα σε κάθε γειτονική του ακμή.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 4 Δ ΕΝΔΡΑ Σταύρος Δ. Νικολόπουλος 1.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
Παράδειγμα B + -Tree Υποθέτουμε B + -Tree τάξης 3 (α=2, b=3)  Κάθε φύλλο θα έχει 2 ως 3 το πολύ στοιχεία  Κάθε εσωτερικός κόμβος θα έχει 2 ως 3 το πολύ.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές 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 Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ. 2 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα –Αναζήτηση κατά βάθος (Depth-first search – DFS) –Αναζήτηση κατά πλάτος (Breadth-first.
Graphs1 Γράφοι ORD DFW SFO LAX
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Οι Δομές Δεδομένων Ουρά και Στοίβα
ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 9ο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Θεωρία & Αλγόριθμοι Γράφων Αποστάσεις
Επικαλύπτοντα Δέντρα και Σύνολα Τομής
Συντομότερα Μονοπάτια
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό
Οι Δομές Δεδομένων Ουρά και Στοίβα
Ουρά Προτεραιότητας (priority queue)
ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΓΡΑΦΗΜΑΤΩΝ II
(2,4) Trees 11/15/2018 8:56 PM (2,4) Δέντρα (2,4) Δέντρα.
Αναζήτηση (Εξερεύνηση) Πρώτα σε Πλάτος
Μεταγράφημα παρουσίασης:

Minimum Spanning Trees1 “Ελάχιστα” συνδετικά δέντρα JFK BOS MIA ORD LAX DFW SFO BWI PVD

Minimum Spanning Trees2 Περίληψη και ανάγνωση “Ελάχιστα” συνδετικά δέντρα Ορισμοί Το κρίσιμο γεγονός Ο αλγόριθμος του Prim-Jarnik Ο αλγόριθμος του Kruskal's Ο Baruvka's Αλγόριθμος

Minimum Spanning Trees3 “Ελάχιστα” συνδετικά δέντρα Συνδετικός υπο-γράφος Ο υπο-γράφος ενός γράφου G περιέχει όλες τις κορυφές του G Συνδετικό δέντρο Ο συνδετικός υπο-γράφος είναι από μόνος του ένα δέντρο “Ελάχιστο” συνδετικό δέντρο (MST) Συνδετικό δέντρο ενός γράφου με το ελάχιστο συνολικό μήκος ακμών Εφαρμογές Δίκτυα επικοινωνιών Δίκτυα μεταφοράς ORD PIT ATL STL DEN DFW DCA

Minimum Spanning Trees4 Κυκλική Ιδιότητα Κυκλική ιδιότητα: Έστω T “ελάχιστο” συνδετικό δέντρο ενός γράφου με βάρη G Έστω e μια ακμή του G όπου δεν ανήκει στο T και C είναι ο κύκλος που διαμορφώνεται από το e με το T Για κάθε ακμή f του C, weight(f)  weight(e) Απόδειξη: Από την αντίφαση If weight(f)  weight(e) μπορούμε να πάρουμε συνδετικό δέντρο μικρότερου βάρους αντικαθιστώντας το e με f e C f C e f Η αντικατάσταση του f με το e επιφέρει ένα καλύτερο συνδετικό δέντρο (με μικρότερο συνολικό βάρος)

Minimum Spanning Trees5 UV Ιδιότητα διαχωρισμού Ιδιότητα διαχωρισμού: Θεωρούμε ένα partition των κορυφών του G στα υποσύνολα U και V Έστω e η ακμή του ελάχιστου βάρους κατά μήκος του partition Υπάρχει ένα “ελάχιστο” συνδετικό δέντρο του G που περιέχει την ακμή e Απόδειξη: Έστω T ένα MST του G Αν T δεν περιέχει το e, θεωρούμε το κύκλο C formed by e με T και f είναι η ακμή C κατά μήκος του partition Από την κυκλική ιδιότητα, weight(f)  weight(e) Κατά συνέπεια, weight(f)  weight(e) Πέρνουμε ένα άλλο MST αντικαθιστώνας το f με e e f e f Η αντικατάσταση του f με το e επιφέρει ένα άλλο MST UV

Minimum Spanning Trees6 Ο Αλγόριθμος των Prim-Jarnik Παρόμοιος με τον αλγόριθμο Dijkstra’s (για έναν συνδεδεμένο γράφο) Επλέγουμε κάποια κορυφή s και αυξάνουμε το MST σαν σύννεφο κορυφών, ξεκινώντας από s Αποθηκεύουμε με κάθε κορυφή v μία ετικέτα d(v) = το μικρότερο βάρος μιας ακμής που συνδέει το v με μία κορυφή στο σύννεφο Σε κάθε βήμα: Προσθέτουμε στο σύννεφο την κορυφή u outside the cloud με την μικρότερη τιμή ετικέτας Ανανεώνουμε τις ετικέτες των κορυφών γύρω από το u

Minimum Spanning Trees7 Ο Αλγόριθμος των Prim-Jarnik’s Μία ουρά αναμονής με προτεραιότητα αποθηκεύει τις κορυφές έξω από το σύννεφο Κλειδί: απόσταση Στοιχείο: κορυφή Μέθοδοι Locator-based insert(k,e) επιστρέφει ένα locator replaceKey(l,k) αλλάζει το κλειδί ενός αντικειμένου Αποθηκεύουμε τρεις ετικέτες σε κάθε κορυφή: Απόσταση Parent ακμή στο MST Locator σε σειρά αναμονής με προτεραιότητα Algorithm PrimJarnikMST(G) Q  new heap-based priority queue s  a vertex of G for all v  G.vertices() if v  s setDistance(v, 0) else setDistance(v,  ) setParent(v,  ) l  Q.insert(getDistance(v), v) setLocator(v,l) while  Q.isEmpty() u  Q.removeMin() for all e  G.incidentEdges(u) z  G.opposite(u,e) r  weight(e) if r  getDistance(z) setDistance(z,r) setParent(z,e) Q.replaceKey(getLocator(z),r)

Minimum Spanning Trees8 Παράδειγμα B D C A F E   B D C A F E  7 B D C A F E  7 B D C A F E

Minimum Spanning Trees9 Παράδειγμα (συν.) B D C A F E B D C A F E

Minimum Spanning Trees10 Ανάλυση Λειτουργίες γράφων Η μέθοδος incidentEdges καλείται μια φορά για κάθε κορυφή Λειτουργίες ετικέτων We set/get την απόσταση, ο πατέρας και οι ετικέτες του locator μιας κορυφής z O(deg(z)) φορές Setting/getting μια ετικέτα κάνει O(1) χρόνο Λειτουργίες σειράς αναμονής με προτεραιότητα Κάθε κορυφή εισάγεται μία φορά και διαγράφεται μία φορά από τη σειτά αναμονής, όπου κάθε εισαγωγή ή διαγραφή κάνει O(log n) χρόνο Το κλειδί μιας κορυφής w στη σειρά αναμονής αλλάζει το πολύ deg(w) φορές, όπου η αλλαγή κάθε κλειδιού κάνει O(log n) χρόνο Ο αλγόριθμος Prim-Jarnik’s τρέχει σε O((n  m) log n) χρόνο υπό τον όρο ότι ο γράφος αναπαριστάται από τη γειτονική list structure Recall that  v deg(v)  2m Ο χρόνος εκτέλεσης είναι O(m log n) από τότε που ο γράφος συνδέθηκε

Minimum Spanning Trees11 Ο Αλγόριθμος Kruskal Μία ουρά αναμονής με προτεραιότητα αποθηκεύει τις ακμές έξω από το σύννεφο Κλειδί: βάρος Στοιχείο: ακμή Στο τέλος του αλγορίθμου Αφήνουμε ένα σύννεφο που καλύπτει το MST Ένα δέντρο T όπου είναι το δικό μας MST Algorithm KruskalMST(G) for κάθε κορυφή V στο G do define a Cloud(v) of  {v} Έστω Q μια σειρά αναμονής. Εισάγουμε όλες τις κορυφές στο Q χρησιμοποιώντας τα βάρη τους ως κλειδί T   while T has fewer than n-1 ακμές doedge e = Q.removeMin() Έστω u, v τα endpoints του e if Cloud(v)  Cloud(u) then Add edge e to T Merge Cloud(v) and Cloud(u) return T

Minimum Spanning Trees12 Δομές δεδομένων για τον Αλγόριθμο Kruskal Ο αλγόριθμος διατηρεί ένα δάσος από δέντρα Μία ακμή γίνεται δεκτή αν συνδέει ευδιάκριτα δέντρα Χρειαζόμαστε μία δομή δεδομένων που να διατηρεί partition, πχ, μία συλλογή από disjoint sets, με τις λειτουργίες: -find(u): επέστρεψε το set αποθηκεύοντας u -union(u,v): αντικατέστησε τα sets αποθηκεύοντας u και v με την ένωσή τους aaaa

Minimum Spanning Trees13 Αναπαράσταση ενός Partition Κάθε set αποθηκεύεται σε μία ακολουθία Κάθε στοιχείο έχει μια αναφορά πίσω στο set Η λειτουργία find(u) κάνει O(1) χρόνο, και επιστρέφει το set που το u είναι μέλος. Στη λειτουργία union(u,v), μετακινούμε τα στοιχεία του μικρότερου set στην ακολουθία με το μεγαλύτερο set και κάνουμε update τις αναφορές τους Ο χρόνος για την λειτουργία union(u,v) είναι min(n u,n v ), όπου n u και n v είναι τα μεγέθη των sets που έχουν αποθηκευμένα τα u και v Όποτε ένα στοιχείο προσπελάσεται, πηγαίνει σε ένα set τουλάχιστον διπλασίου μεγέθους, ως εκ τούτου κάθε στοιχείο προσπελάσεται το πολύ log n φορές

Minimum Spanning Trees14 Partition-Based Εφαρμογή Μία partition-based έκδοση του αλγόριθμου Kruskal εκτελεί τις συγχωνεύσεις σύννεφων ως ενώσεις και τις τεστάρει όπως τις βρίσκει Algorithm Kruskal(G): Input: A weighted graph G. Output: An MST T for G. Έστω P ένα partition των κορυφών του G, όπου κάθε κορυφή διαμορφώνει ένα χωριστό set. Έστω Q μία σειρά αναμονής που έχει αποθηκευμένες τις κορυφές του G, ταξινομημένες κατά το βάρος τους Έστω T ένα αρχικά-κενό δέντρο while Q δεν είναι άδειο do (u,v)  Q.removeMinElement() if P.find(u) != P.find(v) then Add (u,v) to T P.union(u,v) return T Χρόνος εκτέλεσης O((n+m)log n)

Minimum Spanning Trees15 Kruskal Παράδειγμα JFK BOS MIA ORD LAX DFW SFO BWI PVD

Minimum Spanning Trees16

Minimum Spanning Trees17

Minimum Spanning Trees18

Minimum Spanning Trees19

Minimum Spanning Trees20

Minimum Spanning Trees21

Minimum Spanning Trees22

Minimum Spanning Trees23

Minimum Spanning Trees24

Minimum Spanning Trees25

Minimum Spanning Trees26

Minimum Spanning Trees27

Minimum Spanning Trees

Minimum Spanning Trees29 Ο Αλγόριθμος Baruvka’s Όπως ο αλγόριθμος Kruskal’s, ο Baruvka’s αλγόριθμος αναπτύσει πολλά “σύννεφα” με τη μία. Κάθε επανάληψη του while-loop halves τον αριθμό των συνδεδεμένων στοιχείων στο T. Ο χρόνος εκτέλεσης είναι O(m log n). Algorithm BaruvkaMST(G) T  V {μόνο τις κορυφές του G} while T έχει λιγότερες από n-1 ακμές do for each συνδεμένο στοιχείο C στο T do Έστω η ακμή e ότι είναι η μικρότερου βάρους ακμή από το C σε ένα άλλο στοιχείο του T. if e δεν είναι στο T then Πρόσθεσε την ακμή e στο T return T

Minimum Spanning Trees30 Baruvka Παράδειγμα

Minimum Spanning Trees31

Minimum Spanning Trees

Minimum Spanning Trees33 Διακινούμενο πρόβλημα πωλητών Ένα tour του γράφου είναι ένα εκτεινόμενο cycle (πχ, ένα cycle που περνά από όλες τις κορυφές) A traveling salesperson tour ενός γράφου βαρύτητας είναι ένα tour που είναι απλό (πχ, χωρίς επαναλαμβανόμενες κορυφές ή ακμές) και έχει το ελάχιστο βάρος Κανένας πολυωνυμικός-χρονικός αλγόριθμος δεν είναι γνωστός για τον υπολογισμό των διακινούμενων γύρων πωλητών Το διακινούμενο πρόβλημα πωλητών (TSP) είναι ένα σημαντικό ανοικτό πρόβλημα στην πληροφορική Βρείτε έναν πολυωνυμικό-χρονικό αλγόριθμο που να υπολογίζει a traveling salesperson tour ή να αποδεικνύει ότι δεν υπάρχει B D C A F E Παράδειγμα των διακινούμενων πωλητών tour(με βάρος 17)

Minimum Spanning Trees34 Προσέγγιση TSP Μπορούμε να προσεγγίσουμε ένα TSP tour με ένα tour που έχει το πολύ δύο φορές το βάρος για την περίπτωση των Euclidean γράφων Οι κορυφές είναι σημεία στο επίπεδο Κάθε ζευγάρι κορυφών είναι συνδεμένο με μία ακμή Το βάρος μιας ακμής είναι το μήκος από το τμήμα που ενώνει τα σημεία Αλγόριθμος προσέγγισης Υπολογίζει ένα “ελάχιστο” εκτεινόμενο δέντρο Διαμορφώνει έναν Eulerian circuit γύρω από MST Μετατρέπει τον circuit σε tour