Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Διαίρει και Βασίλευε γνωστότερη Η γνωστότερη μέθοδος σχεδιασμού αλγορίθμων: 1. 1. Διαιρούμε.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Αναδρομικοί Αλγόριθμοι
Advertisements

Εισαγωγή στους Αλγόριθμους Ταξινόμησης
Αλγόριθμοι «διαίρει και βασίλευε»
ΕΠΛ231 – Δομές Δεδομένων και Αλγόριθμοι
Επιμέλεια Π. Τσάκωνας. 1. Ποια από τα ακόλουθα αποσπάσματα αλγόριθμων πραγματοποιούν σωστά την ταξινόμηση του πίνακα Α; ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Ν ΓΙΑ j ΑΠΟ.
Αλγόριθμοι Ι Κάθε καλώς ορισμένη υπολογιστική διαδικασία, η οποία καλείται να επιλύσει ένα συγκεκριμένο πρόβλημα εντός πεπερασμένου χρόνου. Αλγόριθμος.
Αλγόριθμοι Ταξινόμησης
Γιάννης Σταματίου Μη αποδοτική αναδρομή και η δυναμική προσέγγιση Webcast 8.
Σχεδίαση Αλγορίθμων Προτεινόμενα βιβλία:
Αλγόριθμοι και Πολυπλοκότητα
Επιλογή Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Ταξινόμηση και Αναζήτηση.
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Διαίρει-και-Βασίλευε
Δυναμικός Προγραμματισμός
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Ωμή Βία Είναι μία άμεση προσέγγιση που βασίζεται στην εκφώνηση του προβλήματος και τους ορισμούς.
ΕΠΛ231 – Δομές Δεδομένων και Αλγόριθμοι
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο1 Μείωσε και Βασίλευε Μειώνουμε το στιγμιότυπο του προβλήματος σε ένα μικρότερο στιγμιότυπο.
Ταξινόμηση και Αναζήτηση
Αλγόριθμοι Ταξινόμησης
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Μετασχημάτισε και Κυριάρχησε Μπορούμε να επιλύσουμε ένα πρόβλημα με μετασχηματισμό σε: b απλοποίηση.
Χωρικοί-χρονικοί συμβιβασμοί
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Αλγόριθμοι b b Σελίδα μαθήματος με ημερολόγιο, υλικό, βιβλιογραφία, ανακοινώσεις
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
Ασυμπτωτικός Συμβολισμός
ΔιαΙρεςη και κυριαρχια
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Ενότητα 2.1 Αλγόριθμοι Ταξινόμησης O(n 2 ) & O(nlogn) Σχεδίαση & Ανάλυση Αλγορίθμων.
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα.
2. VAJA – sile ob dotiku in na daljavo
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
ΜΕΣΑΙΩΝΑΣ: ΒΥΖΑΝΤΙΟ Η Βυζαντινή φιλοσοφία αποτελεί μια αδιάσπαστη συνέχεια της περιόδου που προηγείται και συνάμα λειτουργεί ως μέσο που βοηθά να παρακολουθήσουμε.
Αποθέματα Τα αποθέματα είναι περιουσιακά στοιχεία τα οποία προορίζονται για ρευστοποίηση, δηλαδή πώληση ή ανάλωση στο άμεσο μέλλον. Όλων των ειδών οι επιχειρήσεις.
2. Η ΧΡΟΝΟΓΡΑΦΙΑ ΤΟΥ ΜΙΧΑΗΛ ΨΕΛΛΟΥ: ΠΑΛΑΙΟΤΕΡΕΣ ΚΑΙ ΝΕΩΤΕΡΕΣ ΕΡΜΗΝΕΥΤΙΚΕΣ ΠΡΟΣΕΓΓΙΣΕΙΣ - Η ΣΚΟΠΙΜΟΤΗΤΑ ΤΗΣ ΣΥΓΓΡΑΦΗΣ ΤΗΣ.
Μετασχημάτισε και Κυριάρχησε
Το παιδί που πεθαίνει.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ
ΕΔΡΑΝΑ Είδη εδράνων - Χρήσεις
Η αναπαράσταση του Εμφυλίου κατά τη διάρκεια της Δικτατορίας
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Μιγαδικός αριθμός (1 από 2)
ΗΘΙΚΗ ΚΑΙ ΘΡΗΣΚΕΙΑ.
Κατερίνα Αγγελοπούλου Κωνσταντίνα Αλμπανίδου
Οργανική χημεία Οργανική χημεία Η μελέτη του τεράστιου αριθμού των ενώσεων του άνθρακα που αποτελούν την βάση της ζωής. Η σύνθεση της ουρίας το 1928 θεμελιώνει.
Πρώτες Βοήθειες (1ο Μάθημα – 23/10/2015)
Η ΔΙΑΔΙΚΑΣΙΑ ΤΗΣ ΜΟΡΦΩΣΗΣ
ΨΥΧΟΠΑΙΔΑΓΩΓΙΚΗ ΤΟΥ ΑΝΑΔΥΟΜΕΝΟΥ ΓΡΑΠΤΟΥ ΛΟΓΟΥ
ΑΝΤΙΛ, ΓΙΩΡΓΟΣ.
Σχεδίαση Μεικτών VLSI Κυκλωμάτων
Ηλεκτρομαγνητισμός Ηλεκτρικά Πεδία
ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια)
ΑναλημματικΟ ΗλιακΟ ΡολΟι
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό
Θέμα εργασίας: ΕΛΙΑ, ΛΑΔΙ ΚΑΙ ΘΡΗΣΚΕΙΕΣ
Πτυχιακή εργασία του Παύλου Παντικάκη (2468)
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ
Οἱ Συμβολισμοί τοῦ Μυστηρίου του Γάμου
Μεταγράφημα παρουσίασης:

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Διαίρει και Βασίλευε γνωστότερη Η γνωστότερη μέθοδος σχεδιασμού αλγορίθμων: Διαιρούμε το στιγμιότυπο του προβλήματος σε δύο ή περισσότερα μικρότερα στιγμιότυπα Επιλύουμε τα μικρότερα στιγμιότυπα αναδρομικά Βρίσκουμε τη λύση στο αρχικό (μεγαλύτερο) στιγμιότυπο συνδυάζοντας αυτές τις λύσεις

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο2 υποπρόβλημα 2 μεγέθους n/2 υποπρόβλημα 1 μεγέθους n/2 μία λύση για το υποπρόβλημα 1 Η λύση για το αρχικό πρόβλημα μία λύση για το υποπρόβλημα 2 πρόβλημα μεγέθους n Διαίρει και Βασίλευε

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο3 b Ταξινόμηση με συγχώνευση και γρήγορη ταξινόμηση b Διασχίσεις δένδρων b Δυαδική αναζήτηση b Πολλαπλασιασμός πινάκων – Αλγόριθμος του Strassen b Κυρτό περίβλημα - Αλγόριθμος QuickHull Παραδείγματα Διαίρει και Βασίλευε

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο4 Γενική αναδρομή του Διαίρει και Βασίλευε T(n) = aT(n/b) + f (n) όπου f (n) ∈ Θ(n k ), k≥0 1. a < b k T(n) ∈ Θ(n k ) 2. a = b k T(n) ∈ Θ(n k lg n ) 3. a > b k T(n) ∈ Θ( n log b a ) Σημείωση: το ίδιο αποτέλεσμα ισχύει για το συμβολισμό O αντί για το Θ.

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο5 Ταξινόμηση με συγχώνευση (1) Αλγόριθμος: b Διαιρούμε τον πίνακα A[1..n] σε δύο τμήματα και αντιγρά- φουμε το καθένα στους πίνακες B[1.. n/2 ] και C[1.. n/2 ] b Ταξινομούμε τους πίνακες B και C b Συγχωνεύουμε τους πίνακες B και C στον πίνακα A ως εξής: Επαναλαμβάνουμε μέχρι να μη μείνει κάποιο στοιχείο σε έναν από τους πίνακες:Επαναλαμβάνουμε μέχρι να μη μείνει κάποιο στοιχείο σε έναν από τους πίνακες: –Συγκρίνουμε τα πρώτα στοιχεία στα εναπομένοντα μη επεξεργασμένα τμήματα των πινάκων –Αντιγράφουμε το μικρότερο από τα δύο στοιχεία στον πίνακα A, ενώ αυξάνουνε το δείκτη προς το μη επεξεργασμένο τμήμα του Όταν επεξεργασθούμε όλα τα στοιχεία του ενός πίνακα, τότε αντιγράφουμε στον πίνακα Α τα υπόλοιπα μη επεξεργασθέντα στοιχεία από τον άλλο πίνακαΌταν επεξεργασθούμε όλα τα στοιχεία του ενός πίνακα, τότε αντιγράφουμε στον πίνακα Α τα υπόλοιπα μη επεξεργασθέντα στοιχεία από τον άλλο πίνακα

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο6 Ταξινόμηση με συγχώνευση (2) Algorithm Mergesort(A[0..n-1]) // Input: an array A[0..n-1] of orderable elements // Output: Array A[0..n-1] sorted ascendingly if n>1 copy A[0..n/2-1] to B[0..n/2-1] copy A[n/2..n-1] to C[n/2..n-1] mergesort(B[0..n/2-1]) mergesort(C[n/2..n-1]) merge(B,C,A)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο7 Ταξινόμηση με συγχώνευση (3) Algorithm Merge(B[0..p-1],C[0..q-1],A[0..p+q-1]) // Input: two sorted arrays B[0..n-1] C[0..p-1] // Output: array A[0..p+q-1] sorted ascendingly i  0; j  0; k  0; while i<p and j<q do if B[i]≤C[j] A[k]  B[i]; i  i+1 else A[k]  C[j]; j  j+1 k  k+1 if i=p copy C[j..q-1] to A[k..p+q-1] else copy B[i..p-1] to A[k..p+q-1]

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο8 Tαξινόμηση με συγχώνευση (4) Παράδειγμα Ποιά είναι η σειρά των κλήσεων συναρτήσεων?

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο9 Αποδοτικότητα της ταξινόμησης με συγχώνευση b C(n) = 2 C(n/2) + C merge (n) for n>1, C(1)=0 b Όλες οι περιπτώσεις έχουν την ίδια αποδοτικότητα: Θ(n log n) b Το πλήθος των συγκρίσεων προσεγγίζει το θεωρητικό ελάχιστο για τις ταξινομήσεις που βασίζονται στη σύγκριση: log n ! ≈ n lg n n log n ! ≈ n lg n n b Απαιτήσεις χώρου: Θ(n) (δεν είναι in-place) b Μπορεί να υλοποιηθεί χωρίς αναδρομή (bottom-up)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο10 Γρήγορη ταξινόμηση (1) b Επιλέγουμε έναν άξονα (το στοιχείο της διαμέρισης) b Τακτοποιούμε τη λίστα έτσι ώστε τα στοιχεία σε θέσεις πριν από τον άξονα να είναι μικρότερα ή ίσα προς τον άξονα, ενώ εκείνα που είναι μετά τον άξονα είναι μεγαλύτερά του (δες τον αλγόριθμο Partition στην ενότητα 4.2) b Ανταλλάσουμε τον άξονα με το τελευταίο στοιχείο της πρώτης λίστας (δηλ, τη λίστα ≤ ), οπότε ο άξονας λαμβάνει την τελική του θέση b Ταξινομούμε τις δύο λίστες p A[i]≤p A[i]>p

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο11 Γρήγορη Ταξινόμηση (2) Algorithm Quicksort(A[l..r]) // Input: an array A[0..n-1] of orderable elements // Output: Array A[0..n-1] sorted ascendingly if l<r s  partition(A[l..r]) quicksort(A[l..s-1]) quicksort(A[s+1..r])

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο12 Algorithm Partition(A[l..r]) // Partitions a subarray by using its first element as pivot // Input: a subarray A[l..r], l<r // Output: A partition of A[l..r] with the split position returned as this function’s value p  A[l]; i  l; j  r+1; repeat repeat i  i+1 until A[i]≥p repeat j  j-1 until A[j]≤p swap(A[i],A[j]) until i≥j swap(A[i],A[j]); swap(A[l],A[j]) return j Γρήγορη Ταξινόμηση (3)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο13 Παράδειγμα Παράδειγμα Ποιά είναι η σειρά των κλήσεων συναρτήσεων? Γρήγορη Ταξινόμηση (4)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο14 b Καλύτερη περίπτωση: χωρισμός στη μέση — Θ( n log n) b Χειρότερη περίπτωση: ταξινομημένος πίνακας ! — Θ( n 2 ) b Μέση περίπτωση: τυχαίος πίνακας — Θ( n log n) b Βελτιώσεις: Καλύτερη επιλογή του άξονα: το μεσαίο από 3 στοιχεία αποφεύγει τη χειρότερη περίπτωση σε ταξινομημένα αρχείαΚαλύτερη επιλογή του άξονα: το μεσαίο από 3 στοιχεία αποφεύγει τη χειρότερη περίπτωση σε ταξινομημένα αρχεία Γυρνούμε σε ταξινόμηση με εισαγωγή για μικρά υποαρχείαΓυρνούμε σε ταξινόμηση με εισαγωγή για μικρά υποαρχεία Αποφεύγουμε την αναδρομήΑποφεύγουμε την αναδρομή Μπορούν να δώσουν βελτίωση μέχρι 20-25% b Θεωρείται η καλύτερη μέθοδος για εσωτερική ταξινόμηση μεγάλων αρχείων (n ≥ 10000) Γρήγορη Ταξινόμηση (5)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο15 Πολλαπλασιασμός μεγάλων ακεραίων (1) b Για να πολλαπλασιάσουμε δύο ακεραίους με n 1 και n 2 ψηφία με το χέρι, θα εκτελέσουμε n 1 n 2 πράξεις b Για παράδειγμα: 23*14 b Όμως: 23 = και 14 = b Άρα: 23*14 = (2*1)10 2 +(2*4+3*10) (3*4) 10 0 b Αλλά 23*14 = (2*1) [ (2+3)*(1+4)-2*1 ] (3*4) 10 0

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο16 Πολλαπλασιασμός μεγάλων ακεραίων (2) b Γενικώς: a=a 1 a 0, b=b 1 b 0 και ζητείται c=a*b b c = a*b = c n + c n/2 + c όπου c 2 =a 1 *b 1, c 0 =a 0 *b 0, c 1 =(a 1 +a 0 )*(b 1 +b 0 )-(c 2 +c 0 ) b Αναδρομική εξίσωση b Αποδοτικότητα

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο17 Πολλαπλασιασμός πινάκων αλά Strassen b Ο Strassen παρατήρησε [1969] ότι το γινόμενο δύο πινάκων A και B (μεγέθους 2 n x2 n ) μπορεί να υπολογισθεί ως εξής: C 00 C 01 A 00 A 01 B 00 B 01 = * = * C 10 C 11 A 10 A 11 B 10 B 11 M 1 + M 4 - M 5 + M 7 M 3 + M 5 M 1 + M 4 - M 5 + M 7 M 3 + M 5 = M 2 + M 4 M 1 + M 3 - M 2 + M 6 M 2 + M 4 M 1 + M 3 - M 2 + M 6

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο18 Υποπίνακες του Strassen b M 1 = (A 00 + A 11 ) * (B 00 + B 11 ) b M 2 = (A 10 + A 11 ) * B 00 b M 3 = A 00 * (B 01 - B 11 ) b M 4 = A 11 * (B 10 - B 00 ) b M 5 = (A 00 + A 01 ) * B 11 b M 6 = (A 10 - A 00 ) * (B 00 + B 01 ) b M 7 = (A 01 - A 11 ) * (B 10 + B 11 )

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο19 Αποδοτικότητα του αλγορίθμου Strassen b Αν το n δεν είναι δύναμη του 2, τότε οι πίνακες παραγεμίζονται με μηδενικά b Πλήθος πολλαπλασιασμών: b Πλήθος προσθέσεων: b Αναδρομή: b Άλλοι αλγόριθμοι έχουν βελτιώσει αυτό το αποτέλεσμα αλλά είναι ακόμη περισσότεροι σύνθετοι

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο20 Το πρόβλημα του πλησιέστερου ζεύγους b Πρόβλημα: βρες τα πλησιέστερα σημεία μεταξύ n σημείων σε ένα k-διάστατο χώρο b Υποθέτουμε ότι τα σημεία ταξινομούνται με βάση τις τιμές των τετμημένων x b Διαιρούμε τα σημεία σε δύο υποσύνολα S 1 και S 2 με n/2 σημεία με βάση μία κατακόρυφη γραμμή στο x=c b Επιλέγουμε το πλησιέστερο ζεύγος μεταξύ των ζευγών του αριστερού υποσυνόλου (απόσταση d 1 ), μεταξύ των ζευγών του δεξιού υποσυνόλου (απόσταση d 2 ), και το πλησιέστερο ζεύγος με σημεία και από τις δύο πλευρές b Πρέπει να εξετάσουμε μία λωρίδα πλάτους 2d, όπου d=min[d 1,d 2 ]

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο21 b Γεωμετρική εξήγηση b Αναδρομή T(n) = 2T(n/2) + M(n) b Αποδοτικότητα O(n logn) b Βελτιστότητα Το πρόβλημα του πλησιέστερου ζεύγους (2)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο22 Αλγόριθμος QuickHull Υπολογίζει το Κυρτό Περίβλημα με έμπνευση από τη Γρήγορη Ταξινόμηση: b Υποθέτουμε ότι τα σημεία είναι ταξινομημένα ως προς την τετμημένη x b Προσδιορίζουμε δύο ακραία σημεία P 1 και P 2 (μέρη του περιβλήματος) b Το σύνολο σημείων S διαιρείται σε δύο υποσύνολα S 1 και S 2 b Υπολογίζουμε το κυρτό περίβλημα για το S 1 b Ομοίως, υπολογίζουμε το κυρτό περίβλημα για το S 1 P1P1 P2P2 P max

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο23 b Υπολογισμός του κυρτού (επάνω) περιβλήματος για το S 1 Βρίσκουμε το πιο απομακρυσμένο σημείο P max από τη γραμμή P 1 P 2Βρίσκουμε το πιο απομακρυσμένο σημείο P max από τη γραμμή P 1 P 2 Υπολογίζουμε το περίβλημα για τα σημεία αριστερά της γραμμής P 1 P maxΥπολογίζουμε το περίβλημα για τα σημεία αριστερά της γραμμής P 1 P max Υπολογίζουμε το περίβλημα για τα σημεία αριστερά της γραμμής P max P 2Υπολογίζουμε το περίβλημα για τα σημεία αριστερά της γραμμής P max P 2 b Εύρεση του σημείου P max Το P max μεγιστοποιεί την επιφάνεια του τριγώνου P max P 1 P 2Το P max μεγιστοποιεί την επιφάνεια του τριγώνου P max P 1 P 2 Σε περίπτωση ισοπαλίας, επιλέγεται το P max που μεγιστοποιεί τη γωνία P max P 1 P 2Σε περίπτωση ισοπαλίας, επιλέγεται το P max που μεγιστοποιεί τη γωνία P max P 1 P 2 b Τα σημεία μέσα στο τρίγωνο P max P 1 P 2 αγνοούνται εφεξής b Πως θα βρεθεί γεωμετρικά το σημείο P max και τα σημεία στα αριστερά της γραμμής P 1 P max ? Αλγόριθμος QuickHull (2)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο24 b Πως θα βρεθεί γεωμετρικά το σημείο P max και τα σημεία στα αριστερά της γραμμής P 1 P max ? Δίνονται τα σημεία P 1 (x 1,y 1 ), P 2 (x 2,y 2 ), P max (x max,y max )Δίνονται τα σημεία P 1 (x 1,y 1 ), P 2 (x 2,y 2 ), P max (x max,y max ) Το εμβαδόν του τριγώνου είναι 1/2 της ορίζουσαςΤο εμβαδόν του τριγώνου είναι 1/2 της ορίζουσας =x 1 y 2 +x max y 1 +x 2 y max –x max y 2 –x 2 y 1 –x 1 y max =x 1 y 2 +x max y 1 +x 2 y max –x max y 2 –x 2 y 1 –x 1 y max Το πρόσημο της έκφρασης είναι θετικό αν και μόνο αν το σημείο P max είναι στα αριστερά της γραμμής P 1 P 2Το πρόσημο της έκφρασης είναι θετικό αν και μόνο αν το σημείο P max είναι στα αριστερά της γραμμής P 1 P 2 x1x1x1x1 y1y1y1y11 x2x2x2x2 y2y2y2y21 x max y max 1 Αλγόριθμος QuickHull (3)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο25 b Η εύρεση του πλέον απομακρυσμένου σημείου από την ευθεία P 1 P 2 μπορεί να βρεθεί σε γραμμικό χρόνο b Έτσι προκύπτει η ίδια πολυπλοκότητα με τη γρήγορη ταξινόμηση: Χειρότερη περίπτωση: Θ(n 2 )Χειρότερη περίπτωση: Θ(n 2 ) Μέση περίπτωση: Θ(n log n)Μέση περίπτωση: Θ(n log n) b Αν τα σημεία δεν είναι αρχικά ταξινομημένα στον άξονα x, αυτό επιτυγχάνεται με κόστος Θ(n log n) — καμία αύξηση στο κόστος ασυμπτωτικά b Άλλοι αλγόριθμοι για το κυρτό περίβλημα: Σάρωση του Graham, DCHullΣάρωση του Graham, DCHull Επίσης σε Θ(n log n) Αποδοτικότητα Αλγορίθμου QuickHull (4)