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

Σχετικά έγγραφα
Εισαγωγή στους Αλγορίθμους Ενότητα 9η

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

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

Διοικητική Λογιστική

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

Μηχανολογικό Σχέδιο Ι

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

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

Ψηφιακή Επεξεργασία Εικόνων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Βέλτιστος Έλεγχος Συστημάτων

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

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Κβαντική Επεξεργασία Πληροφορίας

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Βάσεις Περιβαλλοντικών Δεδομένων

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Ιστορία της μετάφρασης

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

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

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 3

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

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Διοικητική Λογιστική

Πληροφορική ΙΙ Θεματική Ενότητα 5

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

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Διδακτική της Πληροφορικής

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

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 6

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

Κβαντική Επεξεργασία Πληροφορίας

Τεχνικό Σχέδιο - CAD

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Εισαγωγή στους Υπολογιστές

Γενική Φυσική Ενότητα: Εισαγωγή στην Ειδική Θεωρία της Σχετικότητας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνικό Σχέδιο - CAD

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Ψηφιακή Επεξεργασία Εικόνων

Δυναμική και Έλεγχος E-L Ηλεκτρομηχανικών Συστημάτων

Μάρκετινγκ Αγροτικών Προϊόντων

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

Ατμοσφαιρική Ρύπανση

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Διδακτική Πληροφορικής

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

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Σχεδίαση Δικτύων Υπολογιστών

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

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

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

Transcript:

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Πατρών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

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

Περιεχόμενα ενότητας Ελάχιστα Γεννητικά Δένδρα Αλγόριθμος του Prim Αλγόριθμος του Kruskal 5

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

Ελάχιστο Γεννητικό Δέντρο Ελάχιστο Γεννητικό Δέντρο. Δεδομένου ενός συνεκτικού γραφήματος G = (V, E) με θετικά κόστη ακμών c e, ένα ΕΓΔ είναι ένα υποσύνολο των ακμών T E τέτοιο ώστε το T να είναι ένα γεννητικό δέντρο του οποίου το άθροισμα των κοστών των ακμών είναι ελάχιστο. 4 24 4 6 23 18 9 6 9 16 8 10 5 14 11 7 8 5 11 7 21 G = (V, E) T, e T c e = 50 Θεώρημα του Cayley. Υπάρχουν n n-2 γεννητικά δέντρα του K n. Δεν μπορεί να λυθεί με μέθοδο ωμής βίας 7

Εφαρμογές Το ΕΓΔ είναι ένα θεμελιώδες πρόβλημα με ποικίλες εφαρμογές. Σχεδιασμός δικτύων τηλέφωνο, ηλεκτρικό, ύδρευσης, καλωδιακή TV, δίκτυα υπολογιστών, οδικά δίκτυα Προσεγγιστικοί αλγόριθμοι για NP-δύσκολα προβλήματα Πρόβλημα του πλανόδιου πωλητή, δέντρο Steiner Έμμεσες εφαρμογές Διαδρομές μεγίστου εμποδίου (max bottleneck paths) LDPC κωδικοί για επιδιόρθωση λαθών Καταχώρηση εικόνας με εντροπία Renyi Εκμάθηση χαρακτηριστικών που προεξέχουν για αναγνώριση προσώπου σε πραγματικό χρόνο Μείωση αποθηκευμένης πληροφορίας στην διάταξη αμινοξέων σε μια πρωτεΐνη Μοντελοποίηση της τοπικότητας στην αλληλεπίδραση σωματιδίων σε ροές υγρών με αναταράξεις Αυτορυθμιζόμενο πρωτόκολλο για γεφύρωση Ethernet για την αποφυγή κύκλων σε ένα δίκτυο Ανάλυση συστάδων (clusters) 8

Άπληστοι Αλγόριθμοι Αλγόριθμος του Kruskal. Ξεκινάμε με T = Ø. Θεωρούμε τις ακμές σε αύξουσα σειρά με βάση το κόστος. Εισάγουμε ακμή e στο T εκτός εάν δημιουργείται κύκλος. Αλγόριθμος Αντίστροφης Διαγραφής. Ξεκινάμε με T = E. Θεωρούμε τις ακμές σε φθίνουσα σειρά με βάση το κόστος. Διαγράφουμε την ακμή e από το T εκτός εάν το δέντρο T γίνεται μη συνεκτικό. Αλγόριθμος του Prim. Ξεκινάμε με μια αρχική κορυφή s, αναπτύσσοντας με απληστία ένα δέντρο T. Σε κάθε βήμα, προσθέτουμε στο T την ακμή e με το μικρότερο κόστος που έχει το ένα της άκρο στο T. Υποσημείωση. Όλοι οι αλγόριθμοι παράγουν ένα ΕΓΔ. 9

Κύκλοι και Αποκοπές Κύκλος. Σύνολο ακμών της μορφής a-b, b-c, c-d,, y-z, z-a. 1 2 3 6 4 5 Κύκλος C = 1-2, 2-3, 3-4, 4-5, 5-6, 6-1 7 8 Σύνολο αποκοπής. Μια αποκοπή είναι ένα υποσύνολο κορυφών S. Το αντίστοιχο σύνολο αποκοπής D είναι το υποσύνολο των ακμών με ακριβώς ένα άκρο στο S. 1 2 6 5 4 3 Αποκοπή S = { 4, 5, 8 } Σύνολο αποκοπής D = {5-6, 5-7, 3-4, 3-5, 7-8} 7 8 10

Άπληστοι Αλγόριθμοι Υπόθεση απλοποίησης. Όλα τα κόστη ακμών c e είναι μοναδικά. Ιδιότητα Αποκοπής. Έστω S οποιοδήποτε υποσύνολο κορυφών, και έστω e η ακμή με το ελάχιστο κόστος που έχει ένα μόνο άκρο στο S. Τότε το ΕΓΔ περιέχει την e. Ιδιότητα Κύκλου. Έστω C οποιοσδήποτε κύκλος, και έστω f η ακμή με το μέγιστο κόστος που ανήκει στον C. Τότε το ΕΓΔ δεν περιέχει την f. f C S e e ανήκει στο ΕΓΔ f δεν ανήκει στο ΕΓΔ 11

Κύκλοι και Αποκοπές Κύκλος. Σύνολο ακμών της μορφής a-b, b-c, c-d,, y-z, z-a. 1 2 3 6 4 5 Κύκλος C = 1-2, 2-3, 3-4, 4-5, 5-6, 6-1 7 8 Σύνολο αποκοπής. Μια αποκοπή είναι ένα υποσύνολο κορυφών S. Το αντίστοιχο σύνολο αποκοπής D είναι το υποσύνολο των ακμών με ακριβώς ένα άκρο στο S. 1 2 6 5 4 3 Αποκοπή S = { 4, 5, 8 } Σύνολο αποκοπής D = {5-6, 5-7, 3-4, 3-5, 7-8} 7 8 12

Τομή κύκλου-αποκοπής Ισχυρισμός. Αν ένας κύκλος και ένα σύνολο αποκοπής τέμνονται, τότε τέμνομνται σε ζυγό αριθμό ακμών. 1 2 6 5 4 3 Κύκλος C = 1-2, 2-3, 3-4, 4-5, 5-6, 6-1 Σύνολο αποκοπής D = {3-4, 3-5, 5-6, 5-7, 7-8} Τομή = {3-4, 5-6} 7 8 Απόδειξη. (βάση εικόνας) C S V - S 13

Άπληστοι Αλγόριθμοι Υπόθεση απλοποίησης. Όλα τα κόστη ακμών c e είναι μοναδικά. Ιδιότητα Αποκοπής. Έστω S οποιοδήποτε υποσύνολο κορυφών, και έστω e η ακμή με το ελάχιστο κόστος που έχει ένα μόνο άκρο στο S. Τότε το ΕΓΔ T* περιέχει την e. Απόδειξη. (απαγωγή σε άτοπο) Έστω ότι η e δεν ανήκει στο T*. Προσθέτοντας την e στο T* δημιουργείται ένας κύκλος C στο T*. Η ακμή e ανήκει και στον κύκλο C και στο σύνολο αποκοπής D που αντιστοιχεί στο S υπάρχει μια άλλη ακμή, έστω f, που ανήκει και στο C και στο D. T' = T* { e } - { f } είναι επίσης γεννητικό δέντρο. cost(t ) = cost(t*) + c e c f < cost(t*), αφού c e < c f Άτοπο. S f e T* 14

Άπληστοι Αλγόριθμοι Υπόθεση απλοποίησης. Όλα τα κόστη ακμών c e είναι μοναδικά. Ιδιότητα Κύκλου. Έστω C οποιοσδήποτε κύκλος, και έστω f η ακμή με το μέγιστο κόστος που ανήκει στον C. Τότε το ΕΓΔ T* δεν περιέχει την f. Απόδειξη. (απαγωγή σε άτοπο) Έστω ότι η f ανήκει στο T*. Διαγράφοντας την f από το T* δημιουργεί μια αποκοπή S στο T*. Η ακμή f ανήκει και στον κύκλο C και στο σύνολο αποκοπής D που αντιστοιχεί στο S υπάρχει μια άλλη ακμή, έστω e, που ανήκει και στο C και στο D. T' = T* { e } - { f } είναι επίσης γεννητικό δέντρο. cost(t ) = cost(t*) + c e c f < cost(t*), aφού c e < c f Άτοπο. S f e T* 15

Αλγόριθμος του Prim Αλγόριθμος του Prim. [Jarník 1930, Dijkstra 1957, Prim 1959] Αρχικοποιούμε ένα σύνολο S = οποιαδήποτε κορυφή. Εφαρμόζουμε την ιδιότητα αποκοπής στο S. Προσθέτουμε στο T την ακμή με το ελάχιστο κόστος στο σύνολο αποκοπής που αντιστοιχεί στο S, και προσθέτουμε μια νέα κορυφή στο S. S 16

Υλοποίηση: Αλγόριθμος του Prim Υλοποίηση. Χρησιμοποιούμε μια ουρά προτεραιότητας. Διατηρούμε ένα σύνολο κορυφών S που έχουν εξερευνηθεί. Για κάθε κορυφή v που δεν έχει εξερευνηθεί διατηρούμε το κόστος επισύναψης a[v] = κόστος φθηνότερης ακμής από την v σε μια κορυφή στο S. Prim(G, c, s) { foreach (v V) {a[v] = ; π[v] = 0;} Αρχικοποίηση άδειας ουράς προτεραιότητας Q a[s] = 0; foreach (v V) εισήγαγε την v στην Q Αρχικοποίηση ενός συνόλου εξερευνημένων κορυφών S = while (Q δεν είναι άδεια) { u = διαγραφή ελάχιστου στοιχείου της Q // Τ = Τ {u,π[u]} S = S { u } foreach (ακμή e = (u, v) Ε) if ((v S) και (c e < a[v])) then {a[v] = c e ; π[v] = u; Μείωσε την προτεραιότητα της v στην Q;} } ΕΓΔ = {(u, π[u]) E : u V {s}} ΠΧΠ: O(nm), αν Q είναι λίστα. ΠΧΠ: O(m log n), αν Q είναι δυαδικός σωρός. 17

Άπληστοι Αλγόριθμοι Υπόθεση απλοποίησης. Όλα τα κόστη ακμών c e είναι μοναδικά. Ιδιότητα Αποκοπής. Έστω S οποιοδήποτε υποσύνολο κορυφών, και έστω e η ακμή με το ελάχιστο κόστος με ένα μόνο άκρο στο S. Τότε το ΕΓΔ περιέχει την e. Ιδιότητα Κύκλου. Έστω C οποιοσδήποτε κύκλος, και έστω f η ακμή με το μέγιστο κόστος που ανήκει στο C. Τότε το ΕΓΔ δεν περιέχει την f. f C S e e ανήκει στο ΕΓΔ f δεν ανήκει στο ΕΓΔ 18

Αλγόριθμος του Kruskal Αλγόριθμος του Kruskal. [Kruskal, 1956] Θεωρούμε τις ακμές με αυξανόμενη σειρά κόστους Περίπτωση 1: Αν η προσθήκη της e στο T δημιουργεί κύκλο, απορρίπτεται η e σύμφωνα με την ιδιότητα κύκλου Περίπτωση 2: Αλλιώς, εισάγεται η e = (u, v) στο T σύμφωνα με την ιδιότητα αποκοπής, όπου S = σύνολο των κορυφών στη συνεκτική συνιστώσα της u v e S e u Περίπτωση 1 Περίπτωση 2 19

Υλοποίηση: Αλγόριθμος του Kruskal Υλοποίηση. Χρησιμοποιούμε την δομή δεδομένων union-find (απλή εκδοχή) Κατασκευή συνόλου T από ακμές στο ΕΓΔ. Διατηρούμε ένα σύνολο για κάθε συνεκτική συνιστώσα. O(m log n) για ταξινόμηση και Ο(n log n) για εύρεση της ένωσης. Kruskal(G, c) { Ταξινόμησε τα κόστη ακμών έτσι ώστε c 1 c 2... c m. T = foreach (u V) φτιάξε ένα σύνολο που περιέχει την u } for i = 1 to m (u,v) = e i if (u και v είναι σε διαφορετικά σύνολα) { T = T {e i } ένωσε τα σύνολα που περιέχουν την u και την v } Ένωσε τις δύο συνιστώσες return T Είναι η u και η v σε διαφορετικές συνεκτικές συνιστώσες; 20

Λεξικογραφική διάσπαση ισοβαθμιών Απαλοιφή υπόθεσης διακριτότητας κοστών: διαταράσσουμε όλα τα κόστη ακμών με πολύ μικρά ποσά για να διασπάσουμε οποιεσδήποτε ισοβαθμίες. Αντίκτυπος. Οι αλγόριθμοι των Kruskal και Prim αλληλεπιδρούν με τα κόστη μέσω συγκρίσεων μεταξύ ζευγαριών. Αν οι διαταραχές είναι αρκετά μικρές το ΕΓΔ με διαταραγμένα κόστη είναι το ΕΓΔ με τα αρχικά κόστη. Πχ, αν τα κόστη είναι ακέραια, διαταράσσουμε το κόστος μιας ακμής e i κατά i / n 2 Υλοποίηση. Μπορούμε να χειριστούμε μικρές διαταραχές έμμεσα διασπώντας τις ισοβαθμίες λεξικογραφικά, σύμφωνα με τον δείκτη κάθε ακμής. boolean less(i, j) { if (cost(e i ) < cost(e j )) return true else if (cost(e i ) > cost(e j )) return false else if (i < j) return true else return false } 21

Βιβλιογραφία 1. J. Kleinberg and E. Tardos, Σχεδιασμός Αλγορίθμων, ελληνική έκδοση, Εκδόσεις Κλειδάριθμος, 2008 2. T. Cormen, C. Leiserson, R. Rivest, and C. Stein, Εισαγωγή στους Αλγορίθμους, ελληνική έκδοση, Πανεπιστημιακές Εκδόσεις Κρήτης, 2012 3. K. Mehlhorn and P. Sanders, Αλγόριθμοι και Δομές Δεδομένων Τα βασικά εργαλεία, ελληνική έκδοση, Εκδόσεις Κλειδάριθμος, 2014 4. S. Dasgupta, C. Papadimitriou, and U. Vazirani, Αλγόριθμοι, ελληνική έκδοση, Εκδόσεις Κλειδάριθμος, 2008 5. Θ. Παπαθεοδώρου, Αλγόριθμοι: Εισαγωγικά Θέματα και Παραδείγματα, Εκδόσεις Πανεπιστημίου Πατρών, 1999 22

Τέλος Ενότητας 23

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. 24

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Χρήστος Ζαρολιάγκης, 2014. «Εισαγωγή στους Αλγορίθμους». Έκδοση: 1.0. Πάτρα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ceid1083 25

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγωγα Έργα 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. [1] http://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 26

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 27