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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ουρά Προτεραιότητας: Heap

Ουρά Προτεραιότητας: Heap

Ουρά Προτεραιότητας: Heap

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

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

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

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

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

Ουρά Προτεραιότητας: Heap

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

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

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

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

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

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

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

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

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

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

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

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

Δυναμικός Προγραμματισμός

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

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

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

a 1 a 2 a n. 3. i = j 1 5. A[i + 1] = A[i] 6. i = i 1

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

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

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

Μέγιστη Ροή Ελάχιστη Τομή

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

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

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

Δυναμικός Προγραμματισμός

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

Διάλεξη 17η: Ταξινόμηση και Αναζήτηση

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Συντομότερες Διαδρομές

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

υναμικός Προγραμματισμός

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

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

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

υναμικός Προγραμματισμός

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

Προχωρημένες έννοιες προγραμματισμού σε C

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

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

p

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

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

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

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

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

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

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

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

Συντομότερες ιαδρομές

για NP-Δύσκολα Προβλήματα

Ταξινόμηση. Σαλτογιάννη Αθανασία

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

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

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

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

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

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

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

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

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

Συντομότερες Διαδρομές

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

Δυναμικός Προγραμματισμός

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

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

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

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

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

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

Transcript:

Επιλογή Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Πρόβλημα Επιλογής Πίνακας Α[]με n στοιχεία (όχι ταξινομημένος). Αριθμός k, 1 k n. Υπολογισμός του k-οστού μικρότερου στοιχείου (στοιχείο θέσης A[k] αν Α ταξινομημένος). k = 1 : ελάχιστο. k = n : μέγιστο. k = n /2: ενδιάμεσο (median). Εθνικό Μετσόβιο Πολυτεχνείο Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 2 Εφαρμογές Μέγιστο / Ελάχιστο Υπολογισμός στατιστικού ενδιάμεσου (median). Χρήσιμες πληροφορίες για κατανομή. Ανήκει η Ελλάδα στο φτωχότερο 25% των χωρών ΕΕ; Ανήκει κάποιος φοιτητής στο καλύτερο 10% του έτους του; Ισομερής διαίρεση (partition) πίνακα σε ομάδες «ταξινομημένες» μεταξύ τους. Ενδιαφέρον αλγοριθμικό πρόβλημα! Μέγιστο (ελάχιστο) εύκολα σε χρόνο Θ(n), με n 1 συγκρίσεις μεταξύ στοιχείων. int maximum(int A[], int n) { int max = A[0], i; for (i = 1; i < n; i++) if (A[i] > max) max = A[i]; return(max); } Μέγιστο και ελάχιστο με 3n /2 2 συγκρίσεις! Πώς; Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 3 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 4

Κάτω Φράγμα για Μέγιστο Επιλογή Κάθε ντετερμινιστικός συγκριτικός αλγόριθμος χρειάζεται n 1 συγκρίσεις για μέγιστο (ελάχιστο). «Πρωτάθλημα» μεταξύ στοιχείων. Σύγκριση στοιχείων : αγώνας όπου κερδίζει μεγαλύτερο. Κάθε «αήττητο» στοιχείο είναι υποψήφιο μέγιστο. Για μοναδικό μέγιστο, πρέπει τα υπόλοιπα να «ηττηθούν». Κάθε αγώνας δίνει ένα «ηττημένο» στοιχείο n 1 αγώνες / συγκρίσεις για μοναδικό μέγιστο. Σε χρόνο Ο(n log n) με ταξινόμηση. Μέγιστο (k = 1), ελάχιστο (k = n): Γραμμικό χρόνο Θ(n). Άλλες τιμές k : χρόνος Ο(n log n) ήο(n); Επιλογή σε γραμμικό χρόνο με διαίρει-και-βασίλευε βασισμένη σε διαχωρισμό της quicksort! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 5 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 6 Πιθανοτική Quickselect Έστω υπο-πίνακας A[l r] και αναζητούμε k-οστό στοιχείο. Τυχαίο στοιχείο διαχωρισμού (pivot). Αναδιάταξη και διαίρεση εισόδου σε δύο υπο-ακολουθίες: Στοιχεία αριστερής [l q] υπο-ακολ. στοιχείο διαχωρισμού. Στοιχεία δεξιάς [q+1 r] υπο-ακολ. στοιχείο διαχωρισμού. Αν k q l+1, αναδρομική λύση (Α[l q], k) Αν k > q l+1, αναδρομική λύση (Α[q+1 r], k (q l+1)) Πιθανοτική Quickselect int RQuickSelect(int A[], int left, int right, int k) { if (left == right) return(a[left]); // 1 στοιχείο pivot = random(left, right); // τυχαίο pivot swap(a[left], A[pivot]); mid = partition(a, left, right); // διαίρεση nel = mid + 1 left; // #στοιχείων στο αριστερό μέρος if (k <= nel) return(rquickselect(a, left, mid, k)); else return(rquickselect(a, mid+1, right, k - nel)); } Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 7 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 8

Ορθότητα Quickselect Τερματισμός : μέγεθος υπο-ακολουθιών n 1. Επαγωγικά υποθέτω ότι 1 k right left + 1. Αν 1 k mid, δεξιά στοιχεία «αποκλείονται». Αν mid < k right left + 1, αριστερά στοιχεία «αποκλείονται» και k μειώνεται αντίστοιχα (k = k nel). Χρόνος Εκτέλεσης (χ.π.) Χρόνος εκτελ. αναδρομικών αλγ. με διατύπωση και λύση αναδρομικής εξίσωσης λειτουργίας. Τ(n) : χρόνος (χ.π.) για επιλογή από n στοιχεία. Χρόνος εκτέλεσης partition(n στοιχεία) : Θ(n) Χειρότερη περίπτωση : ένα στοιχείο «αποκλείεται» σε κάθε διαίρεση! Πιθανοτικός αλγ.: χειρότερη περίπτωση έχει εξαιρετικά μικρή πιθανότητα να συμβεί (για κάθε είσοδο)! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 9 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 10 Χρόνος Εκτέλεσης (μ.π.) Τυχαίο στοιχείο σαν στοιχείο χωρισμού (pivot). Για κάθε, πιθανότητα διαίρεσης (i, n i) = Χρόνος Εκτέλεσης (μ.π.) Καλή περίπτωση : διαίρεση (n /4, 3n /4) ήκαλύτερη. Τουλάχιστον n /4 στοιχεία «αποκλείονται». Πιθανότητα «καλής περίπτωσης» 1/2! Κατά «μέσο όρο», μία «κακή διαίρεση» πριν από «καλή διαίρεση» που μειώνει στοιχεία από n σε 3n /4. Λύση αναδρομής : Λύση αναδρομής: Γεωμετρική σειρά : Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 11 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 12

Ντετερμινιστική Επιλογή Ντετερμινιστική Επιλογή «Καλή διαίρεση» ντετερμινιστικά: Χρήση pivot κοντά στο ενδιάμεσο: πρόβλημα επιλογής! Φαύλος κύκλος : γρήγορη επιλογή καλή διαίρεση γρήγορη επιλογή. Προσεγγιστική επιλογή : όχι «ενδιάμεσο» αλλά «κοντά στο ενδιάμεσο» για pivot. Επιλογή κατάλληλου δείγματος (π.χ. n /5 στοιχεία). Ενδιάμεσο δείγματος είναι «κοντά στο ενδιάμεσο» για σύνολο στοιχείων. Αναδρομικά ενδιάμεσο στοιχείο του δείγματος. Ενδιάμεσο δείγματος για pivot εγγυάται «καλή διαίρεση». Δείγμα: Χωρίζουμε στοιχεία σε 5άδες. Βρίσκουμε ενδιάμεσο κάθε 5άδας: n /5 στοιχεία. Χρόνος : Θ(n). Αναδρομικά, ενδιάμεσο στοιχείο δείγματος. Χρόνος : Τ(n /5) Διαίρεση με ενδιάμεσο δείγματος σαν pivot. Χρόνος : Θ(n). Μεγαλύτερος υποπίνακας έχει Αναδρομική επιλογή: χρόνος T(7n /10) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 13 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 14 Ντετερμινιστική Επιλογή Ενδιάμεσο Δείγματος Χρόνος χειρότερης περίπτωσης: Λύση αναδρομής : Ντετερμινιστική επιλογή σε γραμμικό χρόνο! Διαίρεση με ενδιάμεσο δείγματος σαν pivot. Μεγαλύτερος υποπίνακας 7n / 10 στοιχεία. Μικρότερος υποπίνακας 3n / 10 στοιχεία. Ταξινομούμε 5αδες και βάζουμε σε αύξουσα σειρά των ενδιάμεσων στοιχείων τους (δείγματος). Ενδιάμεσος δείγματος στη (n /10)-οστή στήλη. Ενδιάμεσος δείγματος στοιχεία. Ενδιάμεσος δείγματος στοιχεία. 4 5 6 10 11 1 2 3 8 7 12 9 13 15 14 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 15 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 16

Σύνοψη Ασκήσεις Γρήγορη επιλογή (quickselect): Πιθανοτικός αλγόριθμος με γραμμικό χρόνο (μ.π.) Ντετερμινιστικός αλγόριθμος με γραμμικό χρόνο (χ.π.) Ντετερμινιστικός αλγόριθμος με «bootstrapping»: Για να βρω ενδιάμεσο για πολλά στοιχεία, βρίσκω ενδιάμεσο για λίγα. Αυτό βοηθάει να βρω ενδιάμεσο για περισσότερα, Τροποποίηση quicksort ώστε Ο(n log n) χρόνο σε χειρότερη περίπτωση. Είναι πρακτικό; Στον ντετερμινιστικό αλγόριθμο, χωρίζω στοιχεία σε 3άδες (7άδες). Τι συμβαίνει; Α και Β δύο ταξινομημένοι πίνακες με n διαφορετικά στοιχεία ο καθένας. Σε χρόνο Ο(log n), το ενδιάμεσο της ένωσης των Α και Β. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 17 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2009) Επιλογή 18