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

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

Κεφάλαιο 2.4 Matrix Algorithms

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

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

Minimum Spanning Tree: Prim's Algorithm

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

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

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

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

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

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

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

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

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

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

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

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

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

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

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

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

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

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

Έξι βαθμοί διαχωρισμού

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

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

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

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

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων

Κεφάλαιο 3. Γραφήματα. ver. 21/12/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

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

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

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

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

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

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

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

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

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

Γράφηµα (Graph) Εργαστήριο 10. Εισαγωγή

Αλγόριθμοι Eλάχιστα μονοπάτια

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

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

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

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

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

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

Fast broadcasting and gossiping in radio networks. Chrobak, Gasieniec, Rytter 2002.

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

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

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

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

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

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

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

Να οδηγηθούμε σε μια αρχιτεκτονική που έχει μεγάλο αριθμό καταχωρητών και να εφαρμόσουμε τεχνική ελαχιστοποίησης καταχωρητών

Δρομολόγηση (Routing)

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

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

Δροµολόγηση (Routing)

Δένδρα επικάλ επικ υψης ελάχιστου στους

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

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

Δένδρα επικάλυψης ελάχιστου κόστους και το πρόβλημα του πλανόδιου πωλητή (Traveling Salesman Problem: TSP)

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

Fast broadcasting and gossiping in radio networks. Chrobak, Gasieniec, Rytter 2002.

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

HY Λογική Διδάσκων: Δ. Πλεξουσάκης Εαρινό Εξάμηνο. Φροντιστήριο 6

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

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

Αλγόριθμοι και πολυπλοκότητα Depth-First Search

Partition of weighted sets (problems with numbers)

Transcript:

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

Περιεχόμενα minimum weight spanning tree connected components transitive closure shortest paths maximum matching techniques: pointer jumping, matrix multiplication Αλγόριθμοι Γράφων 2/27

Minimum - Weight Spanning Trees N node undirected weighted graph G(V, E) edges not existing are consider to have infinite weight w(i, j) denotes the weight of edge (i, j) Lemma: Consider G as above with unique edge weights and let U be any subset of the nodes of G. Then the minimum weight edge linking a node in U to a node in V U is in the minimum weight spanning tree for G. Consequence: the minimum weight edge incident to any node of G is in the minimum weight spanning tree for G. Αλγόριθμοι Γράφων 3/27

Algorithm Για κάθε κόμβο βρίσκουμε την ακμή μικρότερου βάρους που ενώνει τον κόμβο με τους υπόλοιπους κόμβους και την προσθέτουμε στο minimum spanning tree. Kατασκευάζουμε supernodes: Για κάθε συνεκτική συνιστώσα του γράφου που έχουμε κατασκευάσει μέχρι τώρα κατασκευάζουμε έναν supernode. Επαναλαμβάνουμε τη διαδικασία μέχρι να μείνουμε με έναν supernode. Ο γράφος που προκύπτει μετά από κάθε επανάληψη έχει το πολύ το μισό αριθμό κόμβων, άρα απαιτούνται το πολύ logn βήματα. Αλγόριθμοι Γράφων 4/27

Example (initially) Αλγόριθμοι Γράφων 5/27

Example (step1) Αλγόριθμοι Γράφων 6/27

Example (step 2a) Αλγόριθμοι Γράφων 7/27

Example (step 2) Αλγόριθμοι Γράφων 8/27

Example (step 3) Αλγόριθμοι Γράφων 9/27

Παράλληλη υλοποίηση Χρησιμοποιούμε ένα N x N mesh of trees αποθηκεύοντας τα βάρη των ακμών στα φύλλα. Μετά από κάθε επανάληψη κατασκευάζουμε για κάθε κόμβο ένα label L(i) ώστε δύο κόμβοι να έχουν το ίδιο label αν και μόνο αν ανήκουν στον ίδιο supernode. Κάθε supernode έχει έναν κόμβο που χρησιμεύει σαν leader, δηλαδή σαν το όνομα του supernode. Αρχικά κάθε κόμβος είναι leader του εαυτού του. Αλγόριθμοι Γράφων 10 / 27

1 η φάση: Βρίσκουμε ακμή ελαχίστου βάρους Η διαδικασία αυτή απαιτεί για κάθε κόμβο i του supernode να βρούμε ακμή ελαχίστου βάρους που συνδέει τον κόμβο i με κόμβο j για κάθε j με L(i) L(j). Στη συνέχεια για όλους τους κόμβους του supernode βρίσκουμε την ελάχιστη τέτοια ακμή. Ουσιαστικά πρέπει να υπολογίσουμε την εξίσωση: w( i, A( i)) min 1 { w( i, j) L( i) L( j)} = j N Δε μας χρειάζεται να ξέρουμε τον ακριβή κόμβο με τον οποίο ενώνεται ο κάθε supernode, μόνο ποιος είναι ο leader του. Αλγόριθμοι Γράφων 11 / 27

Example L(1)=1 A(1)=4 L(A(1))=5 w(1, A(1))=21 L(2)=1 A(2)=4 L(A(2))=5 w(2, A(2))=24 L(3)=5 A(3)=2 L(A(3))=1 w(3, A(3))=24 L(4)=5 A(4)=1 L(A(4))=1 w(4, A(4))=21 L(5)=5 A(5)=6 L(A(5))=6 w(5, A(5))=25 L(6)=6 A(6)=9 L(A(6))=9 w(6, A(6))=23 L(7)=6 A(7)=0 L(A(7))=0 w(7, A(7))= Αλγόριθμοι Γράφων 12 / 27

Υπολογισμός L(A(i)) και w(i, A(i)) Στέλνουμε τα L(i) στην i γραμμή και στήλη του mesh. Τα βάρη της κάθε γραμμής ανεβαίνουν προς τα πάνω, ελέγχουμε αν L(i) L(j) κι αν ναι, συγκρίνουμε τις τιμές και στέλνουμε πάνω τη μικρότερη. Μετά από 2logN βήματα έχει ολοκληρωθεί η διαδικασία, οπότε η τιμή L(A(i)) βρίσκεται πάνω πάνω μαζί με το κατάλληλο ελάχιστο βάρος w(i, A(i)). Αλγόριθμοι Γράφων 13 / 27

Υπολογισμός P(j) για κάθε leader κόμβο j πρέπει να υπολογίσουμε το P(j), δηλαδή τον leader του supernode με τον οποίο ο supernode με leader j ενώνεται με ακμή ελαχίστου μήκους Οπότε για κάθε leader κόμβο j η τιμήp(j) ισούται με την τιμή L(A(i)) για την οποία W ( j) = min{ w( i, A( i)) L( i) = L( j) = j} Αλγόριθμοι Γράφων 14 / 27

Example P(1)=5 P(5)=1 P(6)=8 P(8)=6 W(1)=21 W(5)=21 W(6)=23 W(8)=23 Αλγόριθμοι Γράφων 15 / 27

Υλοποίηση Στέλνουμε στα φύλλα τις τιμές των L(A(i)) και w(i, A(i)) που υπολογίσαμε μέσω των γραμμών του mesh και ξαναανεβαίνουν από τις στήλες όπου γίνεται και η σύγκριση αν L(i)=L(j). ΗτιμήP(j) είναι η τιμή του L(A(i)) που φτάνει στη ρίζα της j στήλης. Απαιτούνται συνολικά 2logN βήματα ακόμα. Αλγόριθμοι Γράφων 16 / 27

Κατασκευή επόμενων supernodes (Περιγραφή) Κάθε supernode δείχνει στον supernode με τον οποίο ενώνεται με ακμή ελαχίστου βάρους. Δηλαδή, ο supernode j δείχνει τον supernode P(j). Ο γράφος που σχηματίζεται από τους παραπάνω δείκτες είναι ακυκλικός, εκτός από έναν 2-κύκλο που υπάρχει και εκφράζει αυτήν ακριβώς την ακμή ελαχίστουβάρουςπουπροστίθεταιστοminimum weight spanning tree. Ονέοςleader θα είναι ένας από τους δύο κόμβους που ανήκουν στον ίδιο 2 κύκλο και συγκεκριμένα ο κόμβος με μικρότερο index. Αλγόριθμοι Γράφων 17 / 27

Κατασκευή επόμενων supernodes (Περιγραφή) Ο δείκτης που είχαμε βάλει μετακινείται ώστε να δείχνει στο νέο leader του supernode. Οι άλλοι δείκτες μετακινούνται ώστε να δείχνουν τον leader του «πατέρα» τους (ως προς leader). Δηλαδή P(j) P(P(j)) (pointer jumping) Αυτό ολοκληρώνεται σε 2log 2 N επαναλήψεις. Τέλος L(j) P(L(j)) για κάθε κόμβο. Αλγόριθμοι Γράφων 18 / 27

Example Αλγόριθμοι Γράφων 19 / 27

Example Αλγόριθμοι Γράφων 20 / 27

Υλοποίηση Z(j) X(Y(j)) Οι τιμές των X(i) στέλνονται από τις ρίζες στα φύλλα της i οστής γραμμής. Στις στήλες επιλέγονται τα Y(j) και όταν φτάνει το Χ υπολογίζεται το X(Y(j)). ΗτιμήX(Y(j)) στέλνεται στη ρίζα, οπότε η διαδικασία έχει ολοκληρωθεί. Απαιτούνται 2logN βήματα. Συνολικά για όλη τη φάση απαιτούνται 2log 2 N+O(logN) επαναλήψεις και επειδή έχουμε συνολικά logn βήματα χρειαζόμαστε 2log 3 N+O(log 2 N) βήματα. Αλγόριθμοι Γράφων 21 / 27

Speeding up Η καθυστέρηση στον αλγόριθμο που μόλις περιγράψαμε οφείλεται στη φάση της κατασκευής των νέων supernodes. Η διαδικασία καθυστερεί όταν υπάρχουν «μικρά» components, όπου η διαδικασία ολοκληρώνεται γρήγορα, και ταυτόχρονα «μεγάλα» που καθυστερούν, οπότε τα «μικρά» θα πρέπει να τα «περιμένουν». Αλγόριθμοι Γράφων 22 / 27

Speeding up Αλγόριθμοι Γράφων 23 / 27

Speeding up Αλγόριθμοι Γράφων 24 / 27

Speeding up Με την παραπάνω διαδικασία είναι εύκολο να δούμε οτι μειώνονται κατά logn οι επαναλήψεις, αφού οι μικροί supernodes δεν περιμένουν τους μεγάλους για να συνεχίσουν τηνπορείατουςπροςτοτέλος. Επομένως τα βήματα μειώνονται και τελικά δε χρειάζονται πάνω από Ο(log 2 N) βήματα. Αλγόριθμοι Γράφων 25 / 27

Connected Components Για να βρούμε τις συνεκτικές συνιστώσες ενός γραφήματος, μπορούμε να εφαρμόσουμε τον προηγούμενο αλγόριθμο για την εύρεση minimum weight spanning tree με κάποιες μικρές αλλαγές. Αυτές είναι: 1. Στην ακμή (i, j) ανατίθεται βάρος Ni + j, αν αυτή υπάρχει. 2. Στην ακμή (i, j) ανατίθεται βάρος αν δεν υπάρχει. 3. Ο αλγόριθμος δεν προσθέτει ακμές άπειρου βάρους στο spanning tree. 4. Ανδενυπάρχουνακμέςμεβάροςμηάπειρονα προστεθούν στο spanning tree, ο αλγόριθμος τερματίζει. Αλγόριθμοι Γράφων 26 / 27

Connected Components Οι συνεκτικές συνιστώσες προκύπτουν μετά από O(log 2 N) βήματα σαν οι supernodes που απομένουν όταν ο αλγόριθμος δεν μπορεί να προσθέσει άλλες ακμές στα spanning trees που έχουν κατασκευαστεί. Μια σημαντική εφαρμογή που μπορεί να βρει αυτός ο αλγόριθμος, είναι στην επεξεργασία εικόνας (παράγραφος 1.8), αφού είναι ιδιαίτερα χρήσιμος όταν προσπαθούμε να συνθέσουμε αντικείμενα. Αλγόριθμοι Γράφων 27 / 27