Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1,

Σχετικά έγγραφα
Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

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

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

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

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

Αλγοριθμικές Τεχνικές

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

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

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

Ταξινόμηση με συγχώνευση Merge Sort

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αλγόριθμοι Ταξινόμησης Μέρος 2

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

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

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

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

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Κεφάλαιο 4. Δυναµικός Προγραµµατισµός (Dynamic Programming) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

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

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

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

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

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

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

Παράλληλοι Αλγόριθμοι: Ανάλυση Εικόνας και Υπολογιστική Γεωμετρία. Πέτρος Ποτίκας CoReLab 4/5/2006

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

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

Ταξινόμηση. 1. Στατιστικά Διάταξης 2. Στατιστικά σε Μέσο Γραμμικό Χρόνο. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1

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

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

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

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

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

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

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

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

Επιλογή. Πρόβλημα Επιλογής. Μέγιστο / Ελάχιστο. Εφαρμογές

1o Φροντιστήριο ΗΥ240

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

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθμων. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αλγόριθμοι ταξινόμησης

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

Κεφάλαιο 4. Άπληστοι Αλγόριθµοι (Greedy Algorithms) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Πρόβληµα Επιλογής. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1

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

Ταξινόµηση. Παύλος Εφραιµίδης. οµές εδοµένων και

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

Fast Fourier Transform

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010

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

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

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

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε

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

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

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

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

Αλγόριθµοι Divide-and- Conquer

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

Τεχνικές Σχεδιασμού Αλγορίθμων

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση

Αναδρομή Ανάλυση Αλγορίθμων

Αλγόριθμοι Ταξινόμησης Μέρος 4

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Φροντιστήριο 2 ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

Advanced Data Indexing

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

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

Αναδρομικοί Αλγόριθμοι

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

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

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

Transcript:

Κεφάλαιο 4 Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1, 2015-01-19 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1

Διαίρει και Βασίλευε (Divide-and-Conquer) Διαίρει-και-βασίλευε (γενικά) Χωρίζουμε το πρόβλημα σε υποπροβλήματα. Επιλύουμε κάθε υπο-πρόβλημα με χρήση αναδρομής. Συνδυάζουμε τις λύσεις των υποπροβλημάτων σε μια συνολική λύση. Διαίρει-και-βασίλευε (συνηθισμένη χρήση). Χωρίζουμε το πρόβλημα μεγέθους n σε δύο ίσου μεγέθους υποπροβλήματα μεγέθους ½n. Επιλύουμε τα δύο υποπροβλήματα με χρήση αναδρομής. Συνδυάζουμε δύο λύσεις σε μια ενιαία λύση σε γραμμικό χρόνο. Αποτέλεσμα. Κοντινότερο ζευγάρι σημείων Brute force: n 2. Διαίρει-και-βασίλευε: n log n. Divide et impera. Veni, vidi, vici. - Julius Caesar 2

5.1 Mergesort

Ταξινόμηση (Sorting) Ταξινόμηση. Δίνονται n στοιχεία, να τοποθετηθούν σε αύξουσα σειρά. Προφανείς εφαρμογές της ταξινόμησης. Λίστα αρχείων ενός καταλόγου. Οργάνωση μιας βιβλιοθήκης MP3. Λίστα ονομάτων τηλεφωνικού καταλόγου. Εμφάνιση αποτελεσμάτων Google PageRank. Προβλήματα που διευκολύνονται μετά την ταξινόμηση. Εύρεση του μεσαίου (median) στοιχείου. Εύρεση του κοντινότερου ζεύγους. Δυαδική αναζήτηση σε Βάσεις Δεδομένων. Εύρεση στατιστικών outliers. Εύρεση διπλοεγγραφών σε μια mailing list. Μη προφανείς εφαρμογές της ταξινόμησης. Συμπίεση δεδομένων. Γραφικά υπολογιστών. Χρονοπρογραμματισμός διαστημάτων. Υπολογιστική Βιολογία. Ελάχιστο Γεννητικό Δέντρο. Διαχείριση αλυσίδας τροφοδοσίας. Εξομοίωση συστήματος σωματιδίων. Προτεινόμενα βιβλία στην Amazon. Κατανομή φόρτου (Load balancing) σε έναν παράλληλο υπολογιστή.... 4

Mergesort Mergesort. Χωρίζουμε τον πίνακα σε στα δύο μισά. Ταξινομούμε κάθε μισό με χρήση αναδρομής. Συγχωνεύουμε τα δύο ταξινομημένα μισά σε μια ενιαία ταξινομημένη ακολουθία. Jon von Neumann (1945) A L G O R I T H M S A L G O R I T H M S διαίρεση O(1) A G L O R H I M S T ταξινόμηση 2T(n/2) A G H I L M O R S T συγχώνευση O(n) 5

Merging Συγχώνευση (merging). Συνδυάζει τις δύο ταξινομημένες λίστες σε μια συνολική ταξινομημένη λίστα. Πως μπορεί να γίνει αποδοτικά η συγχώνευση; Γραμμικό πλήθος συγκρίσεων. Χρήση ενός προσωρινού πίνακα. A G L O R H I M S T A G H I Άσκηση - πρόκληση. In-place merge, δηλαδή συγχώνευση χωρίς τη χρήση επιπλέον πίνακα. [Kronrud, 1969] Σημείωση: Επιτρέπεται η χρήση ενός σταθερού αριθμού επιπλέον θέσεων μνήμης. 6

Μια χρήσιμη αναδρομική σχέση Ορισμός. T(n) = πλήθος συγκρίσεων της mergesort για είσοδο με n στοιχεία. Αναδρομή Mergesort. T(n) 0 if n 1 T n/2 T n/2 solve left half solve right half merging n otherwise Λύση της αναδρομικής σχέσης. T(n) = O(n log 2 n). Σχετικές αποδείξεις. Στο βιβλίο δίνονται αρκετοί τρόποι για να αποδειχθεί η παραπάνω αναδρομική σχέση. Υποθέτουμε ότι το n είναι δύναμη του 2 και αντικαθιστούμε το με =. 7

Απόδειξη με χρήση του Δέντρου Αναδρομής (Recursion Tree) T(n) 0 if n 1 2T(n/2) n otherwise sorting both halves merging T(n) n T(n/2) T(n/2) 2(n/2) T(n/4) T(n/4) T(n/4) T(n/4) log 2 n 4(n/4)... T(n / 2 k ) 2 k (n / 2 k )... T(2) T(2) T(2) T(2) T(2) T(2) T(2) T(2) n/2 (2) n log 2 n 8

Proof by Telescoping Ισχυρισμός. Εάν η T(n) ικανοποιεί την αναδρομή αυτή, τότε T(n) = n log 2 n. 0 T( n) 2T ( n / 2) ταξινόμησηττω δύομισών n συγ χώνευση εάν n 1 διαφορετικ ά θεωρούμε ότι το n είναι δύναμη του 2 Απόδειξη. Για n > 1: T(n) n 2T(n /2) n 1 T(n/2) n /2 1 T(n/4) n / 4 1 1 T(n/n) n /n log 2 n 1 1 log 2 n 9

Απόδειξη με Επαγωγή Ισχυρισμός. Εάν T(n) ικανοποιεί την αναδρομή, τότε T(n) = n log 2 n. 0 T( n) 2T ( n / 2) ταξινόμησηττω δύομισών n συγ χώνευση εάν n 1 διαφορετικ ά θεωρούμε ότι το n είναι δύναμη του 2 Απόδειξη. (με επαγωγή στο n) Βάση επαγωγής: n = 1. Υπόθεση επαγωγής: T(n) = n log 2 n. Στόχος: να δείξουμε ότι T(2n) = 2n log 2 (2n). T(2n) 2T(n) 2n 2nlog 2 n 2n 2nlog 2 (2n) 1 2n 2nlog 2 (2n) 10

Ανάλυση της Αναδρομής της Mergesort Ισχυρισμός. Εάν T(n) ικανοποιεί την ακόλουθη αναδρομή, τότε T(n) n lg n. 0 T( n) T n / 2 T n / 2 επίλυσηαριστερούμισού n επίλυσηδεξιούμισού συγ χώνευση εάν n 1 διαφορετικ ά log 2 n Απόδειξη. (με επαγωγή στο n) Βάση επαγωγής: n = 1. Ορίζουμε n 1 = n / 2, n 2 = n / 2. Βήμα επαγωγής: υποθέτουμε ότι ισχύει για 1, 2,..., n 1. T(n) T(n 1 ) T(n 2 ) n n 1 lgn 1 n 2 lgn 2 n n 1 lgn 2 n 2 lgn 2 n n lgn 2 n n( lgn1 ) n n lgn n 2 n /2 2 lg n / 2 / 2 2 lg n lgn 2 lgn 1 11

5.4 Κοντινότερο ζευγάρι σημείων (Closest Pair of Points)

Κοντινότερο ζευγάρι σημείων Κοντινότερο ζεύγος. Για n σημεία στο επίπεδο, να βρεθεί το ζεύγος με τη μικρότερη μεταξύ τους Ευκλείδεια απόσταση. Θεμελιώδες πρόβλημα της υπολογιστικής γεωμετρίας, με εφαρμογές: Γραφικά, όραση υπολογιστών, γεωγραφικά συστήματα πληροφοριών, μοντελοποίηση μορίων, έλεγχος εναέριας κυκλοφορίας. Ειδική περίπτωση του κοντινότερου γείτονα, Ευκλείδειο Ελάχιστο Γεννητικό Δέντρο, Voronoi. Brute force. Εξετάζει όλα τα ζευγάρια σημείων p και q με κόστος (n 2 ) συγκρίσεις. Η γρήγορη εύρεση του κοντινότερου ζεύγους σημείων ενέπνευσε γρήγορους αλγορίθμους για αυτά τα προβλήματα Μονοδιάστατη (1-D) έκδοση. O(n log n) εάν τα σημεία βρίσκονται πάνω σε μια ευθεία. Παραδοχή. Δεν υπάρχουν σημεία με την ίδια συντεταγμένη x ή συντεταγμένη y. Για να απλοποιηθεί η παρουσίαση και χωρίς βλάβη της γενικότητας 13

Κοντινότερο ζεύγος σημείων: Πρώτη προσπάθεια Διαίρει. Διαιρούμε το επίπεδο σε 4 τεταρτημόρια. L 14

Κοντινότερο ζεύγος σημείων: Πρώτη προσπάθεια Διαίρει. Διαιρούμε το επίπεδο σε 4 τεταρτημόρια. Εμπόδιο. Δεν μπορούμε να εξασφαλίσουμε n/4 σημεία σε κάθε τμήμα. L 15

Κοντινότερο ζεύγος σημείων Αλγόριθμος. Διαίρει: ορίζουμε μια κάθετη γραμμή L έτσι ώστε να υπάρχουν περίπου ½n σημεία σε κάθε πλευρά. L 16

Κοντινότερο ζεύγος σημείων Αλγόριθμος. Διαίρει: ορίζουμε μια κάθετη γραμμή L έτσι ώστε να υπάρχουν περίπου ½n σημεία σε κάθε πλευρά. Βασίλευε: εύρεση ζεύγους κοντινότερων σημείων σε κάθε πλευρά με χρήση αναδρομής. L 21 12 17

Κοντινότερο ζεύγος σημείων Αλγόριθμος. Διαίρει: ορίζουμε μια κάθετη γραμμή L έτσι ώστε να υπάρχουν περίπου ½n σημεία σε κάθε πλευρά. Βασίλευε: εύρεση ζεύγους κοντινότερων σημείων σε κάθε πλευρά με χρήση αναδρομής. Συνδύασε: εύρεση κοντινότερου ζεύγους με ένα σημείο σε κάθε πλευρά. μοιάζει με (n 2 ) Επιλογή της καλύτερης από της τρεις λύσεις (αριστερή πλευρά, δεξιά πλευρά, ένα σημείο σε κάθε πλευρά) L 8 21 12 18

Κοντινότερο ζεύγος σημείων Εύρεση κοντινότερου ζεύγους με ένα σημείο σε κάθε πλευρά, με την υπόθεση ότι η απόστασή τους είναι <. L 21 12 = min(12, 21) 19

Κοντινότερο ζεύγος σημείων Εύρεση κοντινότερου ζεύγους με ένα σημείο σε κάθε πλευρά, με την υπόθεση ότι η απόστασή τους είναι <. Παρατήρηση: αρκεί να εξετάσουμε σημεία σε απόσταση το πολύ από τη γραμμή L. L 21 12 = min(12, 21) 20

Κοντινότερο ζεύγος σημείων Εύρεση κοντινότερου ζεύγους με ένα σημείο σε κάθε πλευρά, με την υπόθεση ότι η απόστασή τους είναι <. Παρατήρηση: αρκεί να εξετάσουμε σημεία σε απόσταση το πολύ από τη γραμμή L. Ταξινομούμε τα σημεία της λωρίδας πλάτους 2 με βάση τη συντεταγμένη τους y. 7 L 6 4 5 21 12 3 = min(12, 21) 2 1 21

Κοντινότερο ζεύγος σημείων Εύρεση κοντινότερου ζεύγους με ένα σημείο σε κάθε πλευρά, με την υπόθεση ότι η απόστασή τους είναι <. Παρατήρηση: αρκεί να εξετάσουμε σημεία σε απόσταση το πολύ από τη γραμμή L. Ταξινομούμε τα σημεία της λωρίδας πλάτους 2 με βάση τη συντεταγμένη τους y. Εξετάζουμε μόνο τις αποστάσεις μεταξύ αυτών των που απέχουν το πολύ 15 θέσεις μέσα στην ταξινομημένη λίστα. 7 L 6 4 5 21 12 3 = min(12, 21) 2 1 22

Κοντινότερο ζεύγος σημείων Ορισμός. Έστω s i το σημείο στη λωρίδα πλάτους 2, με την i-οστή μικρότερη συντεταγμένη y. Ισχυρισμός. Εάν i j 12, τότε η απόσταση μεταξύ των s i και s j είναι τουλάχιστον. Απόδειξη. 31 39 j Δεν μπορεί να ανήκουν δύο σημεία στο ίδιο κουτί διαστάσεων ½-επί-½. Δύο σημεία που απέχουν τουλάχιστον δύο γραμμές έχουν απόσταση 2(½). 2 rows 29 30 ½ ½ i 27 28 ½ Γεγονός (Fact). Ισχύει εάν αντικαταστήσουμε το 12 με το 7. 26 25 23

Αλγόριθμος Κοντινότερου Ζεύγους Closest-Pair(p 1,, p n ) { Compute separation line L such that half the points are on one side and half on the other side. 1 = Closest-Pair(left half) 2 = Closest-Pair(right half) = min( 1, 2 ) Delete all points further than from separation line L Sort remaining points by y-coordinate. Scan points in y-order and compare distance between each point and next 11 neighbors. If any of these distances is less than, update. O(n log n) 2T(n / 2) O(n) O(n log n) O(n) } return. 24

Κοντινότερο ζεύγος σημείων: Ανάλυση Πολυπλοκότητα χρόνου. T(n) 2Tn/2 O(n log n) T(n) O(n log 2 n) Ερώτημα. Μπορούμε να πετύχουμε O(n log n)? Απάντηση. Ναι. Δεν ταξινομούμε τα σημεία της λωρίδας κάθε φορά από την αρχή. Κάθε αναδρομή επιστρέφει δύο λίστες: όλα τα σημεία ταξινομημένα κατά y και όλα τα σημεία ταξινομημένα κατά x. Ταξινομούμε συγχωνεύοντας τις δύο ήδη ταξινομημένες λίστες. T(n) 2Tn/2 O(n) T(n) O(n logn) 25

πηγές/αναφορές Κεφάλαιο 5, Σχεδίαση Αλγορίθμων, J. Kleinberg and E. Tardos, Ελληνική έκδοση από τις Εκδ. Κλειδάριθμος Χρησιμοποιήθηκε υλικό από τις αντίστοιχες αγγλικές διαφάνειες του Kevin Wayne για το βιβλίο του μαθήματος 26