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

Σχετικά έγγραφα
Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα.

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

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

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

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

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

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

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

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

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

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

Περιεχόμενα. 1. Εισαγωγή: Κάποια αντιπροσωπευτικά προβλήματα Βασικά στοιχεία ανάλυσης αλγορίθμων Γραφήματα...

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

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

Σχεδίαση & Ανάλυση Αλγορίθμων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ελαφρύτατες διαδρομές

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 4: Απόδειξη: Για την κατεύθυνση, παρατηρούμε ότι διαγράφοντας μια κορυφή δεν μπορούμε να διαχωρίσουμε τα u και v. Αποδεικνύουμε

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

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

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

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

1 Το πρόβλημα της συντομότερης διαδρομής

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

Προσεγγιστικοί Αλγόριθμοι

Διάλεξη 4: Θεωρία Γραφημάτων Γραφέας: Σ. Κ. Διδάσκων: Σταύρος Κολλιόπουλος συνεκτικά γραφήματα (συνέχεια) Πρόταση 4.1 Δύο μπλοκ ενός

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

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

ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

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

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

E(G) 2(k 1) = 2k 3.

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

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

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

Θεωρία και Αλγόριθμοι Γράφων

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

z 1 E(G) 2(k 1) = 2k 3. x z 2 H 1 H 2

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

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

Ασκήσεις στους Γράφους. 1 ο Σετ Ασκήσεων Βαθμός Μονοπάτια Κύκλος Euler Κύκλος Hamilton Συνεκτικότητα

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

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

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

4. ΔΙΚΤΥΑ

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

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

Σχεδίαση και Ανάλυση Αλγορίθμων

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

Θεωρία Γραφημάτων: Ορολογία και Βασικές Έννοιες

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

Σειρά Προβλημάτων 1 Λύσεις

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

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

Διάλεξη 13: D Σχήμα 13.2: Ενδεικτική αναπαράσταση δίσκου D που ορίζει ο στην εμβάπτιση Γ. Σχήμα 13.3: Σχηματική επεξήγηση περιπτώσεων πο

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

Transcript:

Άπληστοι Αλγόριθμοι ΙΙI Αλγόριθμοι γραφημάτων Ελάχιστο Γεννητικό Δένδρο Παράδειγμα Κατασκευή δικτύων Οδικά, επικοινωνίας Έχουμε ένα συνεκτικό γράφημα (V,E) και ένας βάρος we σε κάθε ακμή e. Να βρεθεί υποσύνολο των ακμών T E, έτσι ώστε το γράφημα να είναι συνεκτικό και το συνολικό κόστος των ακμών να είναι όσο το δυνατόν μικρότερο Η λύση πρέπει να είναι δένδρο Ο αλγόριθμος του Prim Ξεκινάμε από μια κορυφή s και κατασκευάζουμε ένα δένδρο Παράδειγμα - Αλγόριθμος Prim Ο αλγόριθμος του Kruskal Σε κάθε βήμα προσθέτουμε την κορυφή που μπορεί να προσαρτηθεί στο δένδρο με το μικρότερο κόστος. S {s}. While S V..Επέλεξε την ακµή e=(u,v) µε το µικρότερο κόστος έτσι ώστε (u ή v) S και (v ή u) V-S Σε κάθε βήμα προσθέτουμε την ακμή με το μικρότερο κόστος που ενώνει δύο ασύνδετα μέρη (δεν δημιουργεί κύκλο) Μπορεί να υλοποιηθεί γρήγορα με τη δομή δεδομένων Union-find σε O(mlogn)..S S {v ή u}..pred[(u ή v)] v ή u Παράδειγμα - Αλγόριθμος Kruskal Γιατί δουλεύουν αυτοί οι αλγόριθμοι; Παράδειγμα - Ασφαλείς ακμές Ορισμός: Δεδομένου ενός γράφου G=(V,E), μια κοπή του G είναι μια διαμοίραση του V σε δύο υποσύνολα S και V-S Λήμμα: Για κάθε κοπή του G σε S και V-S, υπάρχει ένα ελάχιστο γεννητικό δένδρο που χρησιμοποιεί μία από τις ακμές ελαχίστου κόστους που «διατρέχουν» την κοπή (συνδέουν το S με το V-S) Ας πούμε αυτές τις ακμές ασφαλείς

Ο Αλγόριθμος Prim διαλέγει πάντα ασφαλείς ακμές. Πάντα μία από τις ακμές ελαχίστου κόστους που ενώνει το δένδρο με τον υπόλοιπο γράφο Ο Αλγόριθμος Kruskal διαλέγει πάντα ασφαλείς ακμές. Πάντα μία από τις ακμές ελαχίστου κόστους που ενώνει μέρη του γράφου που δεν είναι συνδεδεμένα Απόδειξη Συντομότερες διαδρομές μιας αφετηρίας Οι αλγόριθμοι Prim και Kruskal παράγουν γεννητικά δένδρα Ο αλγόριθμος Prim παράγει μια βέλτιστη λύση Ας υποθέσουμε ότι υπάρχει ένα ελάχιστο γεννητικό δένδρο Τ που δεν χρησιμοποιεί καμία από τις ακμές ελαχίστου κόστους που ενώνουν μια κοπή S,V-S. Έστω e μια τέτοια ακμή σε κορυφές u,v Οι u και v πρέπει κάπως να ενώνονται στο Τ και σίγουρα χρησιμοποιώντας μία ακμή h που διασχίζει την κοπή we < wh Αν αντικαταστήσουμε την h με την e, θα έχουμε πάλι ένα γεννητικό δένδρο με αυστηρά μικρότερο κόστος Απόδειξη του λήμματος: Επιχείρημα ανταλλαγής Συντομότερες διαδρομές μιας αφετηρίας Έχουμε ένα γράφημα G=(V,E) και μη-αρνητικά βάρη we στις ακμές Δεν παράγουν κύκλους, καλύπτουν ολόκληρο το γράφο Θέλουμε να βρούμε τις διαδρομές ελαχίστου κόστους (συντομότερες) ξεκινώντας από μία κορυφή s ή τη συντομότερη διαδρομή s->f Σε κάθε βήμα ας θεωρήσουμε S το σύνολο κορυφών που έχει βάλει ο αλγόριθμος στη λύση. Η καινούρια ακμή που προστίθεται είναι μία από τις ελαχίστου κόστους. Επαγωγικά, υπάρχει ένα ελάχιστο γεννητικό δένδρο που ταυτίζεται με την έξοδο του αλγορίθμου, Dijkstra Ο αλγόριθμος Kruskal παράγει μια βέλτιστη λύση Σε κάθε βήμα, έστω e=(u,v) η ακμή που προστέθηκε από τον αλγόριθμο. Έστω S το σύνολο των κορυφών που συνδέονται με την u πριν εισάγουμε την e. v S αφού η e δεν δημιουργεί κύκλο. Η e είναι μία από τις ακμές ελαχίστου κόστους που συνδέει το S με το V-S Αλγόριθμος του Dijkstra Διατηρούμε ένα σύνολο T κορυφών που γνωρίζουμε τη συντομότερη διαδρομή Διατηρούμε την τρέχουσα συντομότερη απόσταση από την s προς τις κορυφές του T Προσθέτουμε σε κάθε βήμα στο S, την κορυφή εκτός S που είναι πιο κοντά στο S.. T {s}. d(s)=. While T V..Επέλεξε την ακµή e=(u,v) ώστε u T,v T που έχει το ελάχιστο d(u)+we..d(v)=d(u)+we..pred(v) u..t T {v} Προσθέτουμε στο S

Προσθέτουμε στο S Προσθέτουμε στο S Προσθέτουμε στο S Προσθέτουμε στο S

Προσθέτουμε στο S Προσθέτουμε στο S Προσθέτουμε στο S Προσθέτουμε στο S Προσθέτουμε στο S

Προσθέτουμε στο S Απόδειξη Διαδρομές Προσθέτουμε στο S Επαγωγικά: Υποθέτουμε ότι έχουμε ένα S και όλες οι στο S είναι οι συντομότερες. Εξετάζουμε μια κορυφή v στο V-S με το ελάχιστο d(u)+we όπου e=(u,v). Αυτή η κορυφή έχει την ελάχιστη τιμή (μονοπάτι στο S)+(μία ακμή που πηγαίνει εκτός S), ας πούμε αυτή την τιμή d. Αν υπήρχε άλλη αυστηρά συντομότερη διαδρομή για την v, πρέπει να περνάει από άλλες κορυφές εκτός S. Έστω x η πρώτη κορυφή που συναντάμε εκτός S. Μα η απόσταση μέχρι την x είναι τουλάχιστον d. Και χρειαζόμαστε τουλάχιστον άλλη μία ακμή. Δεν μπορεί να υπάρχει η x άρα έχουμε τη συντομότερη διαδρομή. Όταν προσθέτουμε μια κορυφή στο S έχουμε βρει τη συντομότερη διαδρομή Ο αλγόριθμος βρίσκει ένα δένδρο συντομότερο διαδρομών Απλά ακολουθούμε τις ακμές που χρησιμοποιήσαμε Αν απλά θέλουμε το συντομότερο μονοπάτι από την s στην u, σταματάμε όταν προσθέσουμε την u Ανάλογα με την υλοποίηση μπορούμε να πετύχουμε χρόνο O(n ) ή O(mlogn)