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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ίκτυα Ταξινόµησης (CLR κεφάλαιο 28)

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

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

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

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

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

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

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

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

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

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

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

Το εσωτερικό ενός Σ Β

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

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

Αλγόριθµοι Ταξινόµησης

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

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

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

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

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

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

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

Γεωµετρικοί Αλγόριθµοι (CLR, κεφάλαιο 35)

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

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

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

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

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

p

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

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

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης

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

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

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

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

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

Heapsort Using Multiple Heaps

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

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

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

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

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

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

Transcript:

Κεφάλαιο 4 Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του 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 14243 solve left half ( ) + T n /2 14243 solve right half + { n merging otherwise Λύση της αναδροµικής σχέσης. T(n) = O(n log 2 n). Σχετικές αποδείξεις. Στο βιβλίο δίνονται αρκετοί τρόποι για να αποδειχθεί η παραπάνω αναδροµική σχέση. Υποθέτουµε ότι το n είναι δύναµη του 2 και αντικαθιστούµε το µε =. 7

Απόδειξη µε χρήση του Δέντρου Αναδροµής (Recursion Tree) T(n) = 0 if n =1 2T(n/2) 14 243 sorting both halves + { n merging otherwise 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 εάν n = 1 T( n) = 2T ( n / 2) + { n διαφορετικά 14243 ταξινόµηση ττω δύο µισών συγχώνευση θεωρούµε ότι το n είναι δύναµη του 2 Απόδειξη. Για n > 1: T(n) n = 2T(n /2) n + 1 = T(n /2) n /2 + 1 = L = T(n / 4) n / 4 T(n /n) n /n = log 2 n + 1 + 1 + +L + 1 14 243 log 2 n 9

Απόδειξη µε Επαγωγή Ισχυρισµός. Εάν T(n) ικανοποιεί την αναδροµή, τότε T(n) = n log 2 n. 0 εάν n = 1 T( n) = 2T ( n / 2) + { n διαφορετικά 14243 ταξινόµηση ττω δύο µισών συγχώνευση θεωρούµε ότι το 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 ( ) + 2n = 2n log 2 (2n) 1 = 2nlog 2 (2n) 10

Ανάλυση της Αναδροµής της Mergesort Ισχυρισµός. Εάν T(n) ικανοποιεί την ακόλουθη αναδροµή, τότε T(n) n lg n. 0 T( n) T 14243 ( n / 2 ) + T n / 2 επίλυση αριστερού µισού ( ) + { n 14243 επίλυση δεξιού µισού συγχώνευση εάν 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 lg n 2 + n n 1 lgn 2 + n 2 lg n 2 + n = n lgn 2 + n n( lg n 1 ) + n = n lg n n 2 = n /2 2 lg n / 2 = 2 lg n / 2 lgn 2 lg n 1 11

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

Κοντινότερο ζευγάρι σηµείων Κοντινότερο ζεύγος. Για n σηµεία στο επίπεδο, να βρεθεί το ζεύγος µε τη µικρότερη µεταξύ τους Ευκλείδεια απόσταση. Θεµελιώδες πρόβληµα της υπολογιστικής γεωµετρίας, µε εφαρµογές: Γραφικά, όραση υπολογιστών, γεωγραφικά συστήµατα πληροφοριών, µοντελοποίηση µορίων, έλεγχος εναέριας κυκλοφορίας. Ειδική περίπτωση του κοντινότερου γείτονα, Ευκλείδειο Ελάχιστο Γεννητικό Δέντρο, Voronoi. Η γρήγορη εύρεση του κοντινότερου ζεύγους σηµείων ενέπνευσε γρήγορους αλγορίθµους για αυτά τα προβλήµατα Brute force. Εξετάζει όλα τα ζευγάρια σηµείων p και q µε κόστος Θ(n 2 ) συγκρίσεις. Μονοδιάστατη (1-D) έκδοση. O(n log n) εάν τα σηµεία βρίσκονται πάνω σε µια ευθεία. Παραδοχή. Δεν υπάρχουν σηµεία µε την ίδια συντεταγµένη x. Για να διευκολύνουµε την παρουσίαση και χωρίς βλάβη της γενικότητας 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) 2T( n/2) + O(n log n) T(n) = O(n log 2 n) Ερώτηµα. Μπορούµε να πετύχουµε O(n log n)? Απάντηση. Ναι. Δεν ταξινοµούµε τα σηµεία της λωρίδας κάθε φορά από την αρχή. Κάθε αναδροµή επιστρέφει δύο λίστες: όλα τα σηµεία ταξινοµηµένα κατά y και όλα τα σηµεία ταξινοµηµένα κατά x. Ταξινοµούµε συγχωνεύοντας τις δύο ήδη ταξινοµηµένες λίστες. T(n) 2T( n/2) + O(n) T(n) = O(n logn) 25

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