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

Σχετικά έγγραφα
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

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

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

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

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

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

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

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

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

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

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1

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

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

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

Ταξινόμηση. 1. Ταξινόμηση του Shell. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

Ταχεία Ταξινόμηση Quick-Sort

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

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

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

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

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

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

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

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

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

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

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

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

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

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

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

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

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

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

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

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

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

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

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

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

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

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

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

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

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

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

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

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

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

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

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

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

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

Προγραμματιστικές Τεχνικές

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

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

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

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

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

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

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

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

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

(Γραμμικές) Αναδρομικές Σχέσεις

(18 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΝΑΓΩΓΗ - ΙI: «διάμεσος &θεσιακή επιλογή στοιχείου»

(Γραμμικές) Αναδρομικές Σχέσεις

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

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας

Εργαστηριακή Άσκηση 1

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

Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

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

Μη γράφετε στο πίσω μέρος της σελίδας

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

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

Διδάσκων: Κωνσταντίνος Κώστα

Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας

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

Transcript:

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

Στατιστικά Διάταξης Με τον όρο στατιστικά διάταξης (order statistics) εννοούμε την περίπτωση όπου δεδομένου ενός πίνακα Α με αταξινόμητα στοιχεία, πρέπει να αναζητήσουμε το μικρότερο, το μεγαλύτερο, το μεσαίο ή γενικά το -οστό στοιχείο του πίνακα με βάση την τιμή του κλειδιού του. Εστω ότι θέλουμε να αναζητήσουμε ταυτόχρονα το μικρότερο και το μεγαλύτερο στοιχείο ενός πίνακα. Η προφανής λύση είναι να εκτελέσουμε σαρώσεις, μια σάρωση για την εύρεση του μικρότερου και στη συνέχεια μια σάρωση για την εύρεση του μεγαλύτερου στοιχείου. Είναι ευνόητο ότι η πολυπλοκότητα αυτής της προσέγγισης είναι Θ(). Στη συνέχεια παρουσιάζουμε έναν αλγόριθμο που με μια σάρωση επιτυγχάνουμε ταυτόχρονη εύρεση των δυο στοιχείων.

Αλγόριθμος maxmi. max A[]; mi A [];. for i to do. if A [i] > max max A[i];. if A [i] < mi mi A[i]; 5. retur max, mi Η παραπάνω προσέγγιση είναι απλοϊκή αν και γίνεται μια σάρωση του πίνακα, κάθε στοιχείο υποβάλλεται σε συγκρίσεις. Θα βοηθούσε αν αντικαταστούμε τις εντολές - με τις εντολές:. if A [i] > max max A[i];. else if A [i] < mi mi A[i]; Και αυτή η εκδοχή μπορεί αν αποδειχθεί ότι δε βοηθάει τη χειρότερη περίπτωση. Ο επόμενος αλγόριθμος προσπαθεί να εκμεταλλευτεί τη τεχνική διαίρει και βασίλευε.

Υποθέτει ότι με τα ορίσματα i και j δίνουμε τα όρια του πίνακα και με τα ορίσματα fmax, fmi μας επιστρέφονται οι τιμές που μας ενδιαφέρουν. Επίσης υποθέτουμε ότι η συνάρτηση max επιστρέφει το μέγιστο μεταξύ στοιχείων και η mi επιστρέφει το ελάχιστο μεταξύ στοιχείων. Αλγόριθμος maxmi(i, j, fmax, fmi). if i j. max A[i]; mi A[i];. else if i j - the. if A[i] < A[j] 5. fmax A[j]; fmi A[i]; 6. else 7. fmax A[i]; fmi A[j]; 8. else 9. middle (i j)/; 0. maxmi(i, middle, gmax,, gmi);. maxmi(middle, j, hmax,, hmi);. fmax max(gmax, hmax);. fmi mi(gmi, hmi);

Εστω ότι το περιεχόμενο του πίνακα Α με τα 9 στοιχεία 5,, 7, 56, 5, 0, 9, 90, 5. Στο παρακάτω σχήμα απεικονίζεται ένα δένδρο με κόμβους που περιέχουν τα ορίσματα των κλήσεων. Διασχίζοντας το δένδρο με προτεραιότητα κατά βάθος (dfs) μπορούμε να αποτυπώσουμε την ακριβή σειρά των διαφόρων κλήσεων /8, 9, 90, 5 Χρονική στιγμή έναρξης/ Χρονική στιγμή ολοκλήρωσης / /7, 5, 7, 5 6, 9, 90, 0 /8 9/0 / 5/6,, 7,, 5, 56, 5 6, 7, 9, 0 8, 9, 90, 5 /5 6/7,, 5,,, 7, 7 5 6 7 8 9 5 7 56 5 0 9 90 5 5

Πρόταση Η πολυπλοκότητα του maxmi είναι Θ() στη χειρότερη περίπτωση Απόδειξη Η πολυπλοκότητα αυτού του αλγόριθμου μπορεί να βρεθεί επιλύοντας της ακόλουθη αναδρομική σχέση ( ) 0 ( ) ( ) όπου οι σταθεροί όροι εκφράζουν το κόστος των συγκρίσεων στις εντολές και -. Θεωρώντας ότι. και με διαδοχικές αντικαταστάσεις έχουμε > 6

0 x x x x x x 0 i i γεωμετρική σειρά Ο παραπάνω αλγόριθμος είναι βελτιωμένος και δεν υπερβαίνει το όριο Θ() ( ) 8 8 8 8 ( ) 7

Στατιστικά με Μέσο Γραμμικό Χρόνο Εστω ότι επιθυμούμε να βρούμε το -οστό στοιχείο σε αταξινόμητο πίνακα. Αυτό μπορεί να γίνει ταξινομώντας τον πίνακα και λαμβάνοντας το περιεχόμενο της αντίστοιχης θέσης του πίνακα. Ηδη έχουμε αποδείξει ότι το κάτω όριο των αλγόριθμων ταξινόμησης που στηρίζονται σε συγκρίσεις είναι Ω(log ). Επομένως το όριο αυτό προσδιορίζει και τη πολυπλοκότητα της μεθόδου που ανάγει το πρόβλημα της αναζήτησης στοιχείου σε πρόβλημα ταξινόμησης. Στη συνέχεια θα επιλύσουμε το πρόβλημα της αναζήτησης του -οστού στοιχείου με μια μέθοδο που στηρίζεται στη γρήγορη ταξινόμηση. 8

Αλγόριθμος fid(a, left, right, );. if left right the retur A[left]. else. lo left; hi right ; pivot A[left];. do 5. do lo lo while A[lo] < pivot; 6. do hi hi - while A[hi] > pivot; 7. if lo < hi the swap(a[lo], A[hi]); 8. while hi > lo; 9. swap(a[left], A[hi]); 0. if ( hi) retur A[hi];. else if ( < hi) fid(a, left, hi-, );. else fid(a, hi, right, -hi) Οι εντολές -9 αντιστοιχούν με τις αντίστοιχες εντολές της γρήγορης αναζήτησης 9

O αλγόριθμος fid είναι σχεδόν ταυτόσημος με τη γρήγορη αναζήτηση. Συγκεκριμένα οι εντολές -9 αντιστοιχούν με τις αντίστοιχες εντολές της γρήγορης αναζήτησης, καθώς αφορούν στις διαδικασίες επιλογής του pivot και του διαμερισμού. Στη συνέχεια διαφοροποιούνται οι εντολές 0-. Όταν το pivot οριστικοποιείται στη θέση hi του πίνακα αποφασίζουμε αν θα τερματίσουμε ή θα συνεχίσουμε την αναζήτηση του -οστού στοιχείου στον αριστερό ή στο δεξιό υποπίνακα με αναδρομικό τρόπο. 0

Πρόταση Η πολυπλοκότητα του fid είναι Θ( ), Θ() και Θ() στη χειρότερη στη μέση και στη καλύτερη περίπτωση. Απόδειξη Κατ αρχήν η χειρότερη περίπτωση είναι Θ( ), και αυτό συμβαίνει όταν το επιλεγόμενο pivot είναι το μικρότερο ή το μεγαλύτερο στοιχείο. Θα μελετήσουμε τη μέση περίπτωση για την οποία ισχύει η () ( ) 0 ( ) ( ) ( ) ( ) ( ) () () () Ο όρος του δεξιού σκέλους αντιστοιχεί στις συγκρίσεις που θα εκτελεσθούν κατά τη σάρωση του πίνακα (εντολές 5-6) πριν επιτευχθεί η διαμέριση. Με αρχικές συνθήκες Τ(0) 0, Τ(), έχουμε τη σχέση: πολλαπλασιάζουμε επί και προκύπτει η () στην ίδια σχέση αντικαθιστούμε το με - και πολλαπλασιάζουμε με -, οπότε προκύπτει η (): ( ) ( ) ( ) ( ) () Αφαιρώντας τα αντίστοιχα σκέλη των σχέσεων () & ()

( ) ( ) ( ) ( ) () ) ( ) ( ) ( ) ( ) ( ( ) H ) ( Αθροίζοντας αντίστοιχα τα αριστερά και δεξιά σκέλη και απλοποιώντας προκύπτει : Έπεται ότι η πολυπλοκότητα της μέσης περίπτωσης της fid είναι Θ() - όροι ( ) ( ) H l Θ log Θ See Epp, Example..6 &..7 Θ(l) Θ(log) Δες 0-0_Asymptoic_Notatio.pdf, σελ. 6