Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

Σχετικά έγγραφα
Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βασιλική

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

3η Σειρά Γραπτών Ασκήσεων

Κεφάλαιο 2.4 Matrix Algorithms

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

3η Σειρά Γραπτών Ασκήσεων

ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ Λ03Β ΑΛΓΟΡΙΘΜΟΙ ΔΙΚΤΥΩΝ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΦΛΕΒΑΡΗΣ 2004

Στοιχεία Θεωρίας Γράφων (Graph Theory)

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

Αλγόριθμοι και Πολυπλοκότητα

Κατανεμημένα Συστήματα Ι

Network Algorithms and Complexity Παραλληλοποίηση του αλγορίθμου του Prim. Αικατερίνη Κούκιου

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

u v 4 w G 2 G 1 u v w x y z 4

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Προβλήματα Ελάχιστου Κόστους Ροής σε Δίκτυο. Δίκτυα Ροής Ελάχιστου Κόστους (Minimum Cost Flow Networks)

Δομές Δεδομένων και Αλγόριθμοι

Αναζήτηση Κατά Πλάτος

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αναζήτηση Κατά Πλάτος

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων

Αλγόριθµοι και Πολυπλοκότητα

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Αλγόριθµοι και Πολυπλοκότητα

Network Science. Θεωρεία Γραφηµάτων (2)

Ελάχιστο Συνδετικό Δέντρο

Αναζήτηση Κατά Πλάτος

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Ελάχιστο Συνδετικό Δέντρο

Υπολογιστική Πολυπλοκότητα

Ελάχιστο Συνδετικό έντρο

Γράφοι. Ένας γράφος ή αλλιώς γράφηµα αποτελείται απο. Εφαρµογές: Τηλεπικοινωνιακά και Οδικά ίκτυα, Ηλεκτρονικά Κυκλώµατα, Β.. κ.ά.

Ελάχιστο Συνδετικό Δέντρο

Ελάχιστο Συνδετικό έντρο

Παράλληλοι Αλγόριθμοι: Ανάλυση Εικόνας και Υπολογιστική Γεωμετρία. Πέτρος Ποτίκας CoReLab 4/5/2006

Αλγόριθμοι εύρεσης ελάχιστων γεννητικών δέντρων (MST)

Υπολογιστική Πολυπλοκότητα

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

Αναζήτηση Κατά Πλάτος

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

Μέγιστη Ροή Ελάχιστη Τομή

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k

Κατανεμημένα Συστήματα Ι

Αλγόριθμοι και Πολυπλοκότητα

Minimum Spanning Tree: Prim's Algorithm

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Δρομολόγηση στο Internet (II) Αλγόριθμοι Distance Vector (Bellman) Αλγόριθμοι Link State (Dijkstra)

Εισαγωγή στην Επιστήμη των Υπολογιστών

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Γράφοι: κατευθυνόμενοι και μη

Εισαγωγή στους Αλγορίθμους

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026

Θεωρία Γραφημάτων 6η Διάλεξη

Εισαγωγή στην Επιστήμη των Υπολογιστών

a n = 3 n a n+1 = 3 a n, a 0 = 1

Κατανεμημένα Συστήματα Ι

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διδάσκων: Παναγιώτης Ανδρέου

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων)

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

Αλγόριθµοι και Πολυπλοκότητα

Κεφάλαιο 3. Γραφήµατα v1.1 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Συνεκτικότητα Γραφήματος

Δομές Δεδομένων Ενότητα 6

Σημειωματάριο Δευτέρας 4 Δεκ. 2017

Γράφοι. Αλγόριθμοι και πολυπλοκότητα. Στάθης Ζάχος, Δημήτρης Φωτάκης

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

Μη γράφετε στο πίσω μέρος της σελίδας

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφ.11: Ευρετήρια και Κατακερματισμός

Εισαγωγή στους Αλγόριθμους

Αλγόριθμοι Γραφημάτων

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Multicut and Integer Multicomodity Flow in Trees (chap. 18) Αγγελής Γιώργος

Θέματα Μεταγλωττιστών

ΠΛΗ111. Ανοιξη Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

Λύσεις 4ης Σειράς Ασκήσεων

Συντομότερες ιαδρομές

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

Αλγόριθμοι Δρομολόγησης. Γ. Κορμέντζας

Αλγόριθμοι Ταξινόμησης Μέρος 4

Αλγόριθµοι Γραφηµάτων

Διάλεξη 29: Γράφοι. Διδάσκων: Παναγιώτης Ανδρέου

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

Transcript:

Graph Algorithms Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

Περιεχόμενα Μεταβατικό Κλείσιμο Συνεκτικές συνιστώσες Συντομότερα μονοπάτια Breadth First Spanning Trees Spanning Trees ελάχιστου βάρους Τα παραπάνω προβλήματα αν και φαίνονται ασύνδετα, παρουσιάζουν μεγάλη ομοιότητα στον τρόπο αντιμετώπισής τους, όπως και με τον παράλληλο αλγόριθμο για Gaussian Elimination. 2/9

Μεταβατικό Κλείσιμο (/5) Δίνεται κατευθυνόμενος γράφος Ν κόμβων G=(V, E) με πίνακα αντιστοίχισης A = (a ij ). Το μεταβατικό κλείσιμο G * του G ορίζεται σαν ο γράφος με κόμβους V και ακμές E * = {(i, j) υπάρχει κατευθυνόμενο μονοπάτι από τον i στον j} Sequential algorithm: O(N 3 ) 3/9

Μεταβατικό Κλείσιμο (2/5) Η παραλληλοποίηση γίνεται σε Ν φάσεις: η φάση: Εισάγουμε την ακμή (i, j) στο γράφο ανν υπάρχουν οι ακμές (i, ) και (, j) στο γράφο G = G (). k οστή φάση: Εισάγουμε την ακμή (i, j) ανν υπάρχουν οι ακμές (i, k) και (k, j) στο γράφο που σχηματίστηκε μετά την k φάση, δηλαδή στο γράφο G (k ). Στο τέλος της Ν φάσης προκύπτει ο ζητούμενος γράφος G (N) = G *. 4/9

Μεταβατικό Κλείσιμο (3/5) Οι γραμμές του πίνακα αντιστοίχισης εισάγονται στο mesh αντίστροφα. Κάθε γραμμή σταματά στην πρώτη ελεύθερη γραμμή του mesh στο 2i βήμα (Η i γραμμή σταματά στην i γραμμή του mesh). Η i γραμμήαρχίζεινακινείταιπροςτα κάτω όταν η Ν γραμμή του πίνακα την «προσπεράσει», δηλαδή στο N +2i - βήμα. Οι γραμμές του πίνακα G * βγαίνουν από την τελευταία γραμμή του mesh. 5/9

Μεταβατικό Κλείσιμο (4/5) η φάση: Η γραμμή του πίνακα Α έχει αποθηκευτεί στην πρώτη γραμμή του mesh. Καθώς μπαίνει η i γραμμή του Α στην η γραμμή του mesh, το κελί (, ) μεταδίδει την τιμή a i, σταυπόλοιπακελιάτουmesh. Αν a i, = και a,j = το κελί αλλάζει την τιμή του a ij σε, αλλιώς δεν την αλλάζει. Δηλαδή η i γραμμή του Α αφού έχει περάσει από την η γραμμή του mesh είναι πλέον η γραμμή i του πίνακα A (). k φάση: Οι γραμμές που φτάνουν στην k γραμμή του mesh είναιοιγραμμέςτουα (k-). Καθώς φτάνουν το κελί (k, k) μεταδίδει την τιμή a (k-) i,k στα άλλα κελιά της γραμμής. Το κελί (k, j) έχει αποθηκευμένη στη μνήμη του την τιμή a (k-) kj, και κάνει τον υπολογισμό a (k) ij =a (k-) ij v(a ik (k-)^a (k-) kj ). 6/9

Μεταβατικό Κλείσιμο (5/5) Χρειαζόμαστε συνολικά 3Ν βήματα μέχρι να πάρουμε τον πίνακα Α *. Ωστόσο ο αλγόριθμος είναι semisystolic. Ακολουθώντας την ανάλυση της παραγράφου.4.6 κάνουμε retiming και ο αλγόριθμος ολοκληρώνεται μετά από 5Ν 2 βήματα. Τελικά με pipelining χρειαζόμαστε Ν βήματα και Ν 2 processors, οπότε επιτυγχάνουμε σημαντικό speedup σε σχέση με τον sequential αλγόριθμο. 7/9

Παρατηρήσεις Ηπράξη a ij (k) =a ij (k-) v(a ik (k-)^a kj (k-) ) μοιάζει με την πράξη a ij (k) =a ij (k-) -(a ik (k-). a kj (k-) ) με αντικατάσταση των και. με v και ^. Βλέπουμε επομένως την αντιστοιχία με την Gaussian Elimination. 8/9

Συνεκτικές συνιστώσες (/3) Ορισμός: Δύο κόμβοι i και j ενός μη κατευθυνόμενου γράφου ανήκουν στην ίδια συνεκτική συνιστώσα αν υπάρχει μονοπάτι από τον ένα κόμβο στον άλλο. * Κατασκευάζοντας το μεταβατικό κλείσιμο ενός γράφου, μπορούμε να ελέγξουμε αν δύο κόμβοι i και j ανήκουνστηνίδια συνεκτική συνιστώσα ελέγχοντας την τιμή a * ij. 9/9

/9 Συνεκτικές Συνεκτικές συνιστώσες συνιστώσες (2/ (2/3) 2 7 5 6 3 4 G connected components: {, 3, 6, 7}, {2, 4}, {5} = A

Συνεκτικές συνιστώσες (3/3) Ο παράλληλος αλγόριθμος τρέχει σε Ν βήματα με Ν 2 processors. Υπάρχει sequential αλγόριθμος που βρίσκει συνεκτικές συνιστώσες σε Ο(Ε) βήματα. Επομένως ο παραπάνω αλγόριθμος δεν είναι καλός, ακόμα κι όταν Ε = Θ(Ν 2 )... Σε επόμενο κεφάλαιο, χρησιμοποιώντας διαφορετικές τοπολογίες μπορούμε να επιτύχουμε καλύτερα αποτελέσματα. /9

Συντομότερα μονοπάτια (/2) Δίνεται κατευθυνόμενος γράφος G(V, E) με βάρη w ij στις ακμές και αναζητάμε το συντομότερο μονοπάτι από τον κόμβο i στον j. Προϋποθέσεις: Υπάρχουν όλες οι ακμές, εκτός από τα self loops. Για τις ακμές που δε δίνονται στον αρχικό γράφο βάζουμε w ij =. Ο G δεν περιέχει κύκλους αρνητικού βάρους. 2/9

Συντομότερα μονοπάτια (2/2) Ο αλγόριθμος μοιάζει με αυτούς που έχουμε περιγράψει μέχρι τώρα. Αποτελείται από Ν βήματα και είναι ο εξής: Θέτουμε w ij =w ij (). η φάση: Αντικαθιστούμε την ακμή (i, j) με μονοπάτι μικρότερου βάρους από τον i στον j το οποίο διέρχεται από τον κόμβο αν αυτό υπάρχει. Δηλαδή συγκρίνουμε τα w ij με το w i +w j και κρατάμε τη μικρότερη τιμή, την οποία θέτουμε w ij (). k φάση: Υπολογίζουμε την τιμή w ij (k) =min{w ij (k-), w ik (k-) +w kj (k-) } γιανακαθορίσουμετοσυντομότερο μονοπάτι από τον κόμβο i στον j χρησιμοποιώντας τους κόμβους {, 2,..., k}. * Μετά από Ν βήματα έχουμε υπολογίσει όλα τα συντομότερα μονοπάτια. 3/9

Παρατηρήσεις Ο αλγόριθμος που χρησιμοποιούμε είναι παρόμοιος με όσους έχουμε περιγράψει αν αντικαταστήσουμε τα min και + με v και ^. Επομένως μπορούμε να ακολουθήσουμε την ίδια διαδικασία. Γιαναμπορέσουμεναβρούμετομονοπάτιπου χρησιμοποιήσαμε για να βρούμε το shortest path, αρκεί σε κάθε κελί να κρατάμε τον κόμβο από τον οποίο περνάει το μονοπάτι καθώς αλλάζει. Και εδώ χρειαζόμαστε Ν βήματα και Ν 2 processors, ενώ ο naive sequential αλγόριθμος απαιτεί Θ(Ν 3 ) βήματα. 4/9

Breadth First Spanning Trees (/2) Δοθέντος ενός συνεκτικού μη κατευθυνόμενου γράφου χωρίς βάρη, με ρίζα, ένα breadth first spanning tree είναι ένα spanning tree στο οποίο το μονοπάτι από έναν κόμβο στη ρίζα είναι το συντομότερο στον αρχικό γράφο. Αυτό το spanning tree μπορεί να βρεθεί μέσω του προβλήματος shortest path θέτωντας βάρη στις ακμές του γράφου ( για όσες ακμές υπάρχουν και για όσες δεν υπάρχουν). Λύνοντας το shortest path στο γράφο που προκύπτει βρίσκουμε την απόσταση κάθε κόμβου από τη ρίζα. Για να βρούμε το ζητούμενο spanning tree για κάθε κόμβο που απέχει i από τη ρίζα μαρκάρουμε την ακμή που συνδέει αυτόν τον κόμβο με κόμβο που απέχει από τη ρίζα i για κάθε i >. Επειδή μπορούμε να βρούμε περισσότερες από τέτοιες ακμές, το breadth first spannong tree που προκύπτει δεν είναι μοναδικό. 5/9

Breadth First Spanning Trees (2/2) Ο αλγόριθμος είναι ο ίδιος με αυτόν για τον υπολογισμό των shortest paths. Θεωρώντας όμως οτι ρίζα είναι ο κόμβος, αρκεί να κάνουμε update μόνο τις τιμές της πρώτης γραμμής του πίνακα Α, οπότε ο αλγόριθμος χρειάζεται μόνο 2Ν βήματα. Σε Ν- ακόμαβήματαμπορούμεναβρούμετην ακμή που συνδέει κάθε κόμβο που απέχει απόσταση i από τη ρίζα με κόμβο που απέχει απόσταση i-. Κάνοντας output αυτόν τον κόμβο έχουμε το ζητούμενο spanning tree. Επομένως χρειαζόμαστε συνολικά 3Ν- βήματα (με retiming 7Ν-2 βήματα για να γίνει systolic) και Ν 2 processors. Οι sequential αλγόριθμοι είναι επίσης Ο(Ν), ενώ δεν είναι γνωστοί άλλοι γρηγορότεροι παράλληλοι αλγόριθμοι. 6/9

Spanning Trees ελάχιστου βάρους (/3) Ένα minimum weight spanning tree είναι ένα spanning tree με το ελάχιστο δυνατό άθροισμα ακμών. Γνωστοί sequential αλγόριθμοι επιτυγχάνουν πολυπλοκότητα Ο(Εlog Ε ) και O( V 2 ). O αλγόριθμος που θα περιγράψουμε χρειάζεται Ο(Ε) βήματα, άρα δεν είναι ιδιαίτερα αποδοτικός, είναι βέλτιστος όμως χρησιμοποιώντας arrays. Θα υποθέσουμε οτι δεν υπάρχουν ακμές με ίδιο βάρος. 7/9

Spanning Trees ελάχιστου βάρους (2/3) Λήμμα: Αν δεν υπάρχουν ακμές ίσου βάρους στο γράφο, τότε μια ακμή (i, j) με βάρος w ij ανήκει στο mst ανν οποιοδήποτε άλλο μονοπάτι μεταξύ των i, j μήκους 2 περιέχει ακμή μεγαλύτερου βάρους από την w ij. Απόδειξη: Έστω Τ mst. Έστω (i,j)єτ και υπάρχει μονοπάτι P ij με βάρη ακμών w ij. Έστω οτι κάθε μονοπάτι μήκους 2 από τον i στον j περιέχει μια ακμή βάρους w ij, (i, j) ЄT. 8/9

Spanning Trees ελάχιστου βάρους (3/3) Ο αλγόριθμος είναι ίδιος με τον υπολογισμό των shortest paths με 2 διαφορές:. Το βάρος ενός μονοπατιού είναι το βάρος του βαρύτερου μονοπατιού του. 2. Η εξίσωση που υπολογίζει το κάθε κελί είναι η: w ij (k) =min{w ij (k-), max(w ik (k-), w kj (k-) )} Υπολογίζουμε δηλαδή την ελάχιστη μέγιστη ακμή που ενώνει κάθε δύο κόμβους i, j. Επομένωςαπότοπροηγούμενολήμμαμιαακμή (i,j)єmsp ανν w ij =w ij (N). 9/9