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

Σχετικά έγγραφα
Διάλεξη 21: Γράφοι II - Τοπολογική Ταξινόμηση

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

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 11-1

Διάλεξη 18: Γράφοι I - Εισαγωγή

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

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

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Κατ οίκον Εργασία 4 Σκελετοί Λύσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 4 Σωροί, Γράφοι

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

Διάλεξη 18: Γράφοι I Εισαγωγή

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

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

Γράφοι. Ορολογία. Ορισµός: G = (V, E) όπου. Ορολογία (συνέχεια) γράφος ή γράφηµα (graph) V:ένα σύνολο E:µια διµελής σχέση στο V

Κατ οίκον Εργασία 4 Σκελετοί Λύσεων

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ

Βασικές Δομές Δεδομένων

Διάλεξη 20: Γράφοι I - Εισαγωγή

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

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

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

Ενότητα 10 Γράφοι (ή Γραφήµατα)

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

Αλγόριθμοι και πολυπλοκότητα Τα συντομότερα μονοπάτια(shortest Paths)

Διάλεξη 9: Αφηρημένοι Τύποι Δεδομένων. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

Γράφοι. κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές) οι οποίες

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

Δομές Δεδομένων (Data Structures)

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διαπεράσεις Μη Κατευθυνόμενων Γραφημάτων

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 2A Σκελετοί Λύσεων

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

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

Βασικές οµές εδοµένων

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

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

Αλγόριθμοι Ισχυρά συνεκτικές συνιστώσες Εφαρμογές, BFS

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

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

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

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

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

Διάλεξη 8: Πρόβλημα Αμοιβαίου Αποκλεισμού. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Ελάχιστα Γεννητορικά ένδρα

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

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Αλγόριθμοι και πολυπλοκότητα Περιήγηση Πανεπιστημίων

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

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραµµατισµός Η/Υ. Μέρος2

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

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

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

Αλγόριθμοι και πολυπλοκότητα Οριζόντια διερεύνηση

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

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

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

Αναζήτηση στους γράφους. - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

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

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

Βασικές Έννοιες Δοµών Δεδοµένων

Διάλεξη 11: Φροντιστήριο για Στοίβες. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Συνδετικότητα γραφήματος (graph connectivity)

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

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

Transcript:

Διάλεξη 19: ΓράφοιII -ΤοπολογικήΤαξινόμηση Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Τοπολογική Ταξινόμηση - Εφαρμογές, Παραδείγματα, Αλγόριθμοι Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1

Τοπολογική Ταξινόμηση (Topological Sort) Δίνεται ένα σύνολο εργασιώνκαι θέλουμε να ορίσουμε τη σειρά με την οποία πρέπει να εκτελέσειτις εργασίες ένας επεξεργαστής, δεδομένης της ύπαρξης περιορισμώνως προς την προτεραιότητά τους. Κάθε εργασία έχει ένα σύνολο προαπαιτούμενων εργασιών, δηλαδή δεν μπορεί να εκτελεσθεί προτού συμπληρωθεί κάθε μια από τις προαπαιτούμενες. Μπορούμε να παραστήσουμε το πρόβλημα ως έναν κατευθυνόμενο γράφο: Οι κορυφέςτου γράφου αντιστοιχούν σε κάθε μια από τις εργασίες, και η ύπαρξη ακμήςαπό την κορυφή Αστην κορυφή Βδηλώνει ότι η εργασία Α πρέπει να εκτελεστεί πριν από τη Β. Τοπολογική ταξινόμηση του γράφου είναι μια σειρά των κορυφών του,v 1,, v n,, ώστε αν (v i, v j ) είναι ακμή του γράφου τότε i εκτελείται πριν το j (δηλαδή i<j). Α Β ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 2

Παράδειγμα Τοπολογικών Ταξινομήσεων V2 V1 V3 Τοπολογικές Ταξινομήσεις του γράφου: 1. V1, V2, V4, V3, V5, V6, V7 2. V1, V2, V3, V5, V4, V6, V7 V4 V5 3. V1, V3, V2, V5, V4, V6, V7 V6 4. V7 ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 3

Αλγόριθμος για Τοπολογική Ταξινόμηση Βαθμός εισόδου (in-degree):ενός κόμβου είναι ο αριθμός των ακμών που καταλήγουν στον κόμβο. (Στο πρόβλημα μας, ο αριθμός των προαπαιτούμενων εργασιών) Για κάθε κορυφή uέστω I[u]ο βαθμός εισόδου (αριθμός γονέων) της u. ΠΑΡΑΔΕΙΓΜΑ ΑΛΓΟΡΙΘΜΟΣ Επαναλαμβάνουμε τα εξής βήματα: 1. διαλέγουμε κορυφή Α με I[Α]=0, 2. τυπώνουμε την Α, 3. για όλες τις κορυφές Β, όπου υπάρχει η ακμή (Α,Β) μειώνουμε την τιμή Ι[Β] κατά 1. ΑΠΟΤΕΛΕΣΜΑTA(Υπάρχουν αρκετές τοπολογικές ταξινομήσεις) 7,5,3,11,8,2,9,10 7,5,11,2,3,10,8,9.. ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4

Κατευθυνόμενοι Μη-Κυκλικοί Γράφοι Ωστόσο η τοπολογικήταξινόμηση δουλεύει μόνο για μια ειδική κλάση γράφων η οποία ονομάζεται DAGs DAG:Directed Acyclic Graphs (Κατευθυνόμενοι Μη-Κυκλικοί Γράφοι): Ένας γράφος στο οποίο κανέναμονοπάτι δεν ξεκινά και τελειώνει στον ίδιο κόμβο. Directed Acyclic Graph Directed Cyclic Graph To γεγονός ότι δουλεύει μόνο για DAGsείναι αναμενόμενοδιότι αν υπήρχαν κυκλικά μονοπάτια τότε δεν θα υπήρχε κάποια σειρά (ordering)μεταξύ των στοιχείων (αφού δεν θα ξέραμε ποια είναι η αρχή) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5

(Ψευδό)-Υλοποίηση 1 topsort1( graph G ){ // αρχικοποίηση πίνακα µεγέθους V int I[ V ] = {; // µέτρηση in-degree για κάθε κόµβο for each vertex u for each edge (u,v) O( V + E ) I[v]++; // προσπέλαση του γράφου for (i=1; i <= V ; i++){ v = FindVertexOfIndegree0; Ο( V ) if (v == NULL) {// δεν υπάρχει κόµβος //µε in-degree=0 Error( Graph has a cycle ); return; print v; // εκτύπωση κόµβου for each edge (v,w) // µείωση in-degree I[w]--; // για κάθε παιδί Χρόνος Εκτέλεσης: Ο( V 2 +Ε) Ο( V 2 + E ) O( Ε ) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 6

(Ψευδό)-Υλοποίηση 2 (Με Χρήση Ουράς) topologicalsort( graph G ){ Queue Q; // ορισµός βοηθητικής ουράς // αρχικοποίηση πίνακα µεγέθους V int I[ V ] = {; // µέτρηση indegree για κάθε κόµβο for each vertex u for each edge (u,v) I[v]++; Θ( V + E ) // τοποθέτησε κάθε στοιχείο µε indegree=0 σε µια ουρά for each vertex u if (I[u]==0) Enqueue(u, Q); Θ( V ) Χρόνος Εκτέλεσης: Θ( V + E ) while (! IsEmpty(Q)){ u = Dequeue(Q); output u; number_of_outputs++; for each (u,v) { I[v]--; Θ( V + E ) if (I[v]==0) Enqueue (v, Q); // Εάν δεν εκτυπώθηκαν όλοι οι κόµβοι τότε είχε κύκλο α γράφος γιατί κάποιοι κόµβοι δεν πήραν ποτέ indegree = 0; if (number_of_outputs!= V ) Error( Graph has a cycle ); ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 7

Σύνοψη Ο χρόνος εκτέλεσης της TopologicalSort είναι Για υλοποίηση με λίστες γειτνίασης: Ο( V + Ε ) Για υλοποίηση με πίνακες γειτνίασης: Ο( V 2 ) Για αραιούς γράφους όπου Ε Ο( V )η πολυπλοκότητα αυτή μεταφράζεται σε: Ο( V ), για υλοποίηση με λίστες γειτνίασης, ενώ για υλοποίηση με πίνακες γειτνίασης παραμένει Ο( V 2 ). Για πυκνούς γράφους όπου Ε Ο( V 2 )η πολυπλοκότητα αυτή μεταφράζεται σε: Ο( V 2 ), για υλοποίηση με λίστες γειτνίασης, και για υλοποίηση με πίνακες γειτνίασης παραμένει Ο( V 2 ). ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 8

Παράδειγμα 1: Εφαρμογή Γράφων Η εταιρεία τηλεπικοινωνιών EPL-NET έχει ένα δίκτυο από σταθμούς που ενώνονται μεταξύ τους από nεπικοινωνιακές γραμμές υψηλής ταχύτητας. Το τηλέφωνο του κάθε συνδρομητή της εταιρείας συνδέεται με το σταθμό της περιοχής του. Κάθε σταθμός συνδέεται με άλλους χρήστες αλλά και με άλλους σταθμούς. Οι ερευνητές της εταιρείας έχουν ανακαλύψει μία νέα τεχνολογία που επιτρέπει σε δύο χρήστες να βλέπουν και τρισδιάστατη εικόνα κατά τη διάρκεια της τηλεφωνικής τους επικοινωνίας. Για να είναι όμως η ποιότητα της εικόνας ικανοποιητική, πρέπει ο αριθμός των γραμμών που χρησιμοποιούνται για τη σύνδεση ανάμεσά στους δύο χρήστες (και ενδιάμεσους σταθμούς) να μην ξεπερνά τις 4 συνδέσεις. Να σχεδιάσετε ένα αποδοτικό αλγόριθμο (ψευδοκώδικα) ο οποίος με δεδομένο εισόδου την ταυτότητα κάποιου χρήστη u, να επιστρέφει (εκτύπωση) τη λίστα με όλους τους χρήστες που μπορεί να χρησιμοποιήσουν την καινούρια τεχνολογία με τον u. ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 9

Παράδειγμα 1: Εφαρμογή Γράφων Το πρόβλημα μπορεί να μετατραπεί σε πρόβλημα διερεύνησης κατά πλάτος σε γράφο αρχίζοντας από τον χρήστη (κορυφή) u και μετά εκτελώντας την διερεύνηση μέχρι το βάθος 4. ΒFS(vertex u, graph G){ visited[ V ]; queue Q; Q=MakeEmptyQueue(); for each v in G visited[v]=false; visited[u]= True; Enqueue(u,Q, 0); while (!IsEmpty(Q)){ (w, h) = Dequeue(Q); print(w); if(h+1>4) continue; for each v adjacent to w if (Visited[v]==False){ Visited[v]=True; Enqueue(v,Q, h+1); ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 10

Γράφοι: Ασκήσεις Με δεδομένο εισόδου τον πιο κάτω κατευθυνόμενο γράφο, ποια επιλογή ΔΕΝ αποτελεί το αποτέλεσμα της τοπολογικής ταξινόμησης; Α. V1, V2, V4, V3, V5, V6, V7 B. V1, V2, V3, V5, V6, V4, V7 Γ. V1, V2, V3, V5, V4, V6, V7 Δ. V1, V3, V2, V5, V4, V6, V7 ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 11