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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

p

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

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

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

Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό

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

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

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

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

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

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

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

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

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

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

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

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

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

I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11

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

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

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

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

Transcript:

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

Πρόβλημα Επιλογής Πίνακας Α[]με n στοιχεία (όχι ταξινομημένος). Αριθμός k, 1 k n. Υπολογισμός του k-οστού μικρότερου στοιχείου (στοιχείο θέσης A[k] αν Α ταξινομημένος). k = 1 : ελάχιστο. k = n : μέγιστο. k = n /2: ενδιάμεσο (median). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 2

Εφαρμογές Υπολογισμός στατιστικού ενδιάμεσου (median). Χρήσιμες πληροφορίες για κατανομή. Ανήκει η Ελλάδα στο φτωχότερο 25% των χωρών ΕΕ; Ανήκει κάποιος φοιτητής στο καλύτερο 10% του έτους του; Ισομερής διαίρεση (partition) πίνακα σε ομάδες «ταξινομημένες» μεταξύ τους. Ενδιαφέρον αλγοριθμικό πρόβλημα! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 3

Μέγιστο / Ελάχιστο Μέγιστο (ελάχιστο) εύκολα σε χρόνο Θ(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); } Μέγιστο και ελάχιστο με συγκρίσεις! Πώς; Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 4

Κάτω Φράγμα για Μέγιστο Κάθε ντετερμινιστικός συγκριτικός αλγόριθμος χρειάζεται n 1 συγκρίσεις για μέγιστο (ελάχιστο). Κάθε σύγκριση αποκλείει την περίπτωση ένα από τα δύο εμπλεκόμενα στοιχεία να είναι μέγιστο. «Πρωτάθλημα» μεταξύ στοιχείων. Σύγκριση στοιχείων : αγώνας όπου κερδίζει μεγαλύτερο. Κάθε «αήττητο» στοιχείο είναι υποψήφιο μέγιστο. Για μοναδικό μέγιστο, πρέπει τα υπόλοιπα να «ηττηθούν». Κάθε αγώνας δίνει ένα «ηττημένο» στοιχείο n 1 αγώνες / συγκρίσεις για μοναδικό μέγιστο. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 5

Επιλογή Σε χρόνο Ο(n log n) με ταξινόμηση. Μέγιστο (k = 1), ελάχιστο (k = n): χρόνος Θ(n). Άλλες τιμές k : χρόνος Ο(n log n) ήο(n); Επιλογή σε γραμμικό χρόνο με διαίρει-και-βασίλευε βασισμένη σε διαχωρισμό της quicksort! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 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)) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 7

Ορθότητα Quickselect Τερματισμός : μέγεθος υπο-ακολουθιών n 1. Επαγωγικά υποθέτω ότι 1 k right left + 1. Πλήθος στοιχείων στα αριστερά: m = q left + 1. Αν k m, δεξιά στοιχεία «αποκλείονται». Αν m < k, αριστερά στοιχεία «αποκλείονται» και k μειώνεται αντίστοιχα (k = k m). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 8

Πιθανοτική 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]); q = partition(a, left, right); // διαίρεση nel = q left + 1; // #στοιχείων στο αριστερό μέρος } if (k <= nel) return(rquickselect(a, left, q, k)); else return(rquickselect(a, q+1, right, k - nel)); Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 9

Χρόνος Εκτέλεσης (χ.π.) Χρόνος εκτελ. αναδρομικών αλγ. με διατύπωση και λύση αναδρομικής εξίσωσης λειτουργίας. Τ(n) : χρόνος (χ.π.) για επιλογή από n στοιχεία. Χρόνος εκτέλεσης partition(n στοιχεία) : Θ(n) Χειρότερη περίπτωση : ένα στοιχείο «αποκλείεται» σε κάθε διαίρεση! Πιθανοτικός αλγ.: χειρότερη περίπτωση έχει εξαιρετικά μικρή πιθανότητα να συμβεί (για κάθε είσοδο)! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 10

Χρόνος Εκτέλεσης (μ.π.) Καλή περίπτωση : διαίρεση (n /4, 3n /4) ήκαλύτερη. Τουλάχιστον n /4 στοιχεία «αποκλείονται». Πιθανότητα «καλής περίπτωσης» 1/2! Κατά «μέσο όρο», μία «κακή διαίρεση» πριν από «καλή διαίρεση» που μειώνει στοιχεία από n σε 3n /4. Λύση αναδρομής: Γεωμετρική σειρά : Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 11

Χρόνος Εκτέλεσης (μ.π.) Τυχαίο στοιχείο σαν στοιχείο χωρισμού (pivot). Για κάθε, πιθανότητα διαίρεσης (i, n i) = Λύση αναδρομής : Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 12

Ντετερμινιστική Επιλογή «Καλή διαίρεση» ντετερμινιστικά: Χρήση pivot κοντά στο ενδιάμεσο: πρόβλημα επιλογής! Φαύλος κύκλος : γρήγορη επιλογή καλή διαίρεση γρήγορη επιλογή. Προσεγγιστική επιλογή : όχι «ενδιάμεσο» αλλά «κοντά στο ενδιάμεσο» για pivot. Επιλογή κατάλληλου δείγματος (π.χ. n /5 στοιχεία). Ενδιάμεσο δείγματος είναι «κοντά στο ενδιάμεσο» για σύνολο στοιχείων. Αναδρομικά ενδιάμεσο στοιχείο του δείγματος. Ενδιάμεσο δείγματος για pivot εγγυάται «καλή διαίρεση». Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 13

Ντετερμινιστική Επιλογή είγμα: Χωρίζουμε στοιχεία σε 5άδες. Βρίσκουμε ενδιάμεσο κάθε 5άδας: n /5 στοιχεία. Χρόνος : Θ(n). Αναδρομικά, ενδιάμεσο στοιχείο δείγματος. Χρόνος : Τ(n /5) ιαίρεση με ενδιάμεσο δείγματος σαν pivot. Χρόνος : Θ(n). Μεγαλύτερος υποπίνακας έχει Αναδρομική επιλογή: χρόνος T(7n / 10) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 14

Ντετερμινιστική Επιλογή Χρόνος χειρότερης περίπτωσης: Λύση αναδρομής : Ντετερμινιστική επιλογή σε γραμμικό χρόνο! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 15

Ενδιάμεσο είγματος ιαίρεση με ενδιάμεσο δείγματος σαν pivot. Μεγαλύτερος υποπίνακας 7n / 10 στοιχεία. Μικρότερος υποπίνακας 3n / 10 στοιχεία. Ταξινομούμε 5αδες και βάζουμε σε αύξουσα σειρά των ενδιάμεσων στοιχείων τους (δείγματος). Ενδιάμεσος δείγματος στη (n / 10)-οστή στήλη. Ενδιάμεσος δείγματος στοιχεία. Ενδιάμεσος δείγματος στοιχεία. Επιλογή 16

Σύνοψη Γρήγορη επιλογή (quickselect): Πιθανοτικός αλγόριθμος με γραμμικό χρόνο (μ.π.) Ντετερμινιστικός αλγόριθμος με γραμμικό χρόνο (χ.π.) Ντετερμινιστικός αλγόριθμος με «bootstrapping»: Για να βρω ενδιάμεσο για πολλά στοιχεία, βρίσκω «σχεδόν ενδιάμεσο» για λίγα. Αυτό βοηθάει να βρω ενδιάμεσο για περισσότερα, Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Επιλογή 17

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