Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών."— Μεταγράφημα παρουσίασης:

1 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών που είναι: b b εφικτές b b τοπικά βέλτιστες b b αμετάκλητες ΔΕΝ λύνονται όλα τα προβλήματα βελτιστο- ποίησης με αυτόν τον τρόπο

2 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο2 Εφαρμογή της άπληστης στρατηγικής b Βέλτιστες λύσεις: Υπολογισμός για ρέστα Ελάχιστα ζευγνύοντα δένδρα (MST) Ελάχιστα μονοπάτια (one-to-all) Απλά προβλήματα δρομολόγησης Κώδικες Huffman b Προσεγγίσεις: Πρόβλημα περιοδεύοντας πωλητή (TSP) Πρόβλημα σάκου Άλλα προβλήματα συνδυαστικής βελτιστοποίησης

3 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο3 Ελάχιστα ζευγνύοντα δένδρα (MST) b Ζευγνύον δένδρο b Ζευγνύον δένδρο ενός συνεκτικού γράφου G είναι ένας συνεκτικός ακυκλος υπογράφος του G που αποτελείται από όλες τις κορυφές του G b Ελάχιστο ζευγνύον δένδρο b Ελάχιστο ζευγνύον δένδρο ενός ζυγισμένου συνεκτικού γράφου G είναι το ζευγνύον δένδρο του G με το ελάχιστο συνολικό βάρος b b Παράδειγμα: 3 4 2 1 4 2 6 1 3

4 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο4 Αλγόριθμος του Prim b b Αρχικά το δένδρο αποτελείται από ένα κόμβο b b Το δένδρο μεγαλώνει κατά μια κορυφή/ακμή κάθε φορά για να προκύψει το MST Δημιουργείται μια σειρά μεγαλύτερων δένδρων T 1, T 2, … b b Σε κάθε στάδιο το δένδρο T i+1 κατασκευάζεται από το T i : προστίθεται η ακμή με το ελάχιστο βάρος, η οποία συνδέει μια κορυφή του δένδρου T i με κάποια που δεν ανήκει στο T i αυτό είναι το άπληστο βήμαΕπιλέγουμε από τις ακμές του κρασπέδου (fringe) – αυτό είναι το άπληστο βήμα b b Ο αλγόριθμος σταματά όταν έχουν επιλεγεί όλες οι κορυφές

5 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο5 Παραδείγματα: 3 4 2 1 4 2 6 1 3 a edc b 1 5 2 4 6 3 7

6 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο6 Κώδικας αλγορίθμου Prim Algorithm Prim(G) V T  {v 0 } E T  {} for i  1 to |V|-1 do find a minimum weight edge e*=(v*,u*) among the edges (v,u) such that vЄV T and uЄ(V-V T ) V T  V T ∪ {u*} E T  E T ∪ {e*} return E T

7 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο7 Σχετικά με τον αλγόριθμο του Prim b b Πρέπει να αποδειχθεί ότι πράγματι ο αλγόριθμος δίνει το MST b b Χρειάζεται μια ουρά προτεραιότητας για να βρούμε την ακμή με το ελάχιστο βάρος: χρησιμοποιούμε ένα min-heap b b Αποτελεσματικότητα: για γράφο με n κορυφές και m ακμές: (n–1+m) log n b b Συνεπώς: Θ(m log n) number of stages (min-heap deletions) number of edges considered (min-heap insertions) insertion/deletion from min-heap

8 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο8 Αλγόριθμος του Kruskal b b Αρχίζουμε με ένα κενό δάσος από δένδρα b b Μεγαλώνουμε το MST με μια ακμή κάθε φορά στα ενδιάμεσα στάδια συνήθως έχουμε ένα δάσος από δένδρα (μη συνδεδεμένα) b b Σε κάθε στάδιο προσθέτουμε μια ακμή με ελάχιστο βάρος από αυτές που δεν έχουν χρησιμοποιηθεί και δεν δημιουργούν κύκλο Αρχικά οι κορυφές ταξινομούνται κατά αύξον βάρος Σε κάθε στάδιο η ακμή μπορεί να: – –Να επεκτείνει ένα υπάρχον δένδρο – –Να συνδυάσει δυο δένδρα σε ένα – –Να δημιουργήσει ένα νέο δένδρο Χρειάζεται ένας αποτελεσματικός τρόπος διαπίστωσης κύκλων b b Ο αλγόριθμος τερματίζει όταν επιλεγούν όλες οι κορυφές

9 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο9 Παραδείγματα: 3 4 2 1 4 2 6 1 3 a edc b 1 5 2 4 6 3 7

10 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο10 Κώδικας αλγορίθμου του Kruskal Algorithm Kruskal(G) Sort E in nondecreasing order of the weights E T  { }; k  0; ecounter  0 while ecounter < |V|-1 k  k+1 if E T ∪ {e ik } is acyclic E T  E T ∪ {e ik } ecounter  ecounter+1 return E T

11 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο11 b b Ο αλγόριθμος φαίνεται ευκολότερος από του Prim αλλά είναι: Δυσκολότερος στην υλοποίηση (έλεγχος κύκλων) Λιγότερο αποτελεσματικός Θ(m log m) b Έλεγχος κύκλων b Έλεγχος κύκλων: ένας κύκλος υφίσταται αν και μόνο αν μια ακμή συνδέει κορυφές της ίδιας συνιστώσας b ένωσης-εύρεσης b Αλγόριθμοι ένωσης-εύρεσης (union-find) Σχετικά με τον αλγόριθμο του Kruskal

12 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο12 Συντομότερα μονοπάτια - Dijkstra b b Συντομότερα μονοπάτια (one-to-all) : Δεδομένου ενός ζυγισμένου γράφου G, να βρεθούν τα συντομότερα μονοπάτια από μια κορυφή προς όλες τις άλλες b b Δεν δουλεύει με αρνητικά βάρη b b Εφαρμόζεται σε κατευθυνόμενους και μη γράφους

13 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο13 Ο αλγόριθμος του Dijkstra είναι παρόμοιος με του Prim, με την εξής διαφορά: Αρχικά το δένδρο έχει μια κορυφή Το δένδρο μεγαλώνει με μια κορυφή/ακμή κάθε φορά Κρατούμε το συντομότερο μονοπάτι από την πηγή προς τις κορυφές του δένδρου T i προσθέ- τουμε την ακμή (v,w) με το ελάχιστο d(s,v)+d(v,w), όπου vЄΤ i, αλλά δεν ισχύει wЄV iΣε κάθε στάδιο κατασκευάζουμε το T i+1 από το T i : προσθέ- τουμε την ακμή (v,w) με το ελάχιστο d(s,v)+d(v,w), όπου vЄΤ i, αλλά δεν ισχύει wЄV i Επιλέγουμε από τις ακμές του κρασπέδου (fringe) – αυτό είναι το άπληστο βήμα Ο αλγόριθμος τερματίζει όταν επιλεγούν όλες οι κορυφές Αλγόριθμος του Dijkstra

14 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο14 Παράδειγμα: a edc b 1 5 2 4 6 3 7

15 Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο15 Κώδικας αλγορίθμου του Dijkstra Algorithm Dijkstra(G,s) Initialize(Q) for every vertex v Є V do d v  ∞; p v  null; Insert(Q,v, d v ) d s  0; Decrease(Q,s,d s ); V T  0 for i  0 to |V|-1 do u*  DeleteMin(Q); V T  V T ∪ {u*} for every vertex u in V-V T that is adjacent to u* do if d u* +w(u*,u)<d u d u  d u +w(u*,u); p u  u*; Decrease(Q,u,d u ) b b Αποτελεσματικότητα


Κατέβασμα ppt "Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google