Tυχαιοποιηµένοι Αλγόριθµοι (CLR, κεφάλαιo 8.3 και 10)

Σχετικά έγγραφα
Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πολυπλοκότητα Αλγορίθµων

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

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

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

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

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

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

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

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

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

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

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

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

ΗΥ240 - Παναγιώτα Φατούρου 2

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

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

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

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

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

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

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

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

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

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

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

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

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

ΕΠΛ 232 Φροντιστήριο 2

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

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

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

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

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

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

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

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

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

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

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

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

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

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

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

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

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

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

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

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

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

Παράλληλοι Αλγόριθµοι

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

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

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

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

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

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

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

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

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

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές

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

p

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

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

Αλγόριθµοι Οπισθοδρόµησης

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

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

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

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

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

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

ΚΕΦΑΛΑΙΟ 2 ΜΗ ΓΡΑΜΜΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

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

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

HY118- ιακριτά Μαθηµατικά. Μαθηµατική επαγωγή. 11 Επαγωγή

Πληροφορική 2. Αλγόριθμοι

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

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

Transcript:

Tυχαιοποιηµένοι Αλγόριθµοι (CLR, κεφάλαιo 8.3 και 10) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Ο τυχαιοποιµένος αλγόριθµος QuickSort Αλγόριθµοι Επιλογής Τυχαιποιηµένος Αλγόριθµος Ο αλγόριθµος των Βlum, Floyd, Pratt, Rivest, Tarjan Ο αλγόριθµος του Freivalds Πρωτόκολα Μηδενικής Γνώσης ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-1

Τυχαιοποιηµένοι Αλγόριθµοι Ένας θησαυρός βρίσκεται κρυµµένος σε κάποιο νησί σε σηµείο που αποκαλύπτεται σε ένα χάρτη τον οποίο δεν έχετε ακόµα πλήρως κατανοήσει. Μέχρι στιγµής όµως έχετε καταλάβει ότι ο θησαυρός βρίσκεται σε ένα από δύο πιθανά σηµεία τα οποία απέχουν 5 µέρες το ένα από το άλλο και από το σηµείο όπου βρίσκεστε. Αν δουλέψετε 4 ακόµα µέρες πάνω στο χάρτη, τότε θα µπορούσατε να αποφασίσετε σε ποιο από τα δύο σηµεία βρίσκεται ο θησαυρός. Όµως γνωρίζετε ότι υπάρχει κάποιος δράκος ο οποίος κάθε βράδυ µεταφέρει ποσότητα x του θησαυρού στη σπηλιά του. Ένας νάνος σας προσφέρει να σας αποκαλύψει που βρίσκεται ο θησαυρός µε αντάλλαγµα την ποσότητα που θα κουβαλούσε ο δράκος σε 3 νύχτες. Σας συµφέρει να δεχτείτε την προσφορά του; ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-2

Τυχαιοποιηµένοι Αλγόριθµοι Τυχαιοποιηµένες αποφάσεις µερικές φορές είναι αποδοτικότερες κατά µέσο όρο από τον ακριβή υπολογισµό της σωστής απόφασης διαφορετικές εκτελέσεις του ίδιου αλγορίθµου έχουν διαφορετική συµπεριφορά µπορεί να δώσουν λανθασµένα αποτελέσµατα (µε κάποια µικρή πιθανότητα) Υπάρχουν τρεις κατηγορίες πιθανοτικών/τυχαιοποιηµένων αλγόριθµων. 1. Οι τυχαιοποιηµένοι αριθµητικοί αλγόριθµοι οι οποίοι επιστρέφουν απαντήσεις της µορφής: το ζητούµενο βρίσκεται στο διάστηµα [α..β] µε πιθανότητα γ%. 2. Οι αλγόριθµοι Monte Carlo οι οποίοι δίνουν σωστά αποτελέσµατα µε µεγάλη πιθανότητα ( 1) 3. Οι αλγόριθµοι Las Vegas οι οποίοι όταν τερµατίζουν δίνουν πάντα τη σωστή απάντηση και τερµατίζουν µε µεγάλη πιθανότητα ( 1). ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-3

Quicksort Πρακτικά, ο πιό γρήγορος αλγόριθµος ταξινόµησης. Στη χείριστη περίπτωση ο αλγόριθµος quicksort είναι Ο(n²). Στη µέση περίπτωση ο αλγόριθµος είναι Ο(n log n). Περιγραφή ιαδικασίας Quicksort(A[p..r]) Aν r p δεν κάνουµε τίποτα, διαφορετικά Αναδροµικά: Χωρίζουµε τον πίνακα σε δύο µέρη Α[p..q] και A[q+1,r], όπου όλα τα στοιχεία του A[p..q] είναι µικρότερα από τα στοιχεία του A[q+1..r]. Καλούµε αναδροµικά τον αλγόριθµο στα A[p..q] και Α[q+1,r]. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-4

Ο αλγόριθµοςquicksort Quicksort(A, p, r){ if (p<r) q = Partition (A, p, r); Quicksort(A, p, q); QuickSort(A, q+1, r); } όπου η διαδικασία Partition (A,p,r) αναδιοργανώνει τον πίνακα Α[p r] έτσι ώστε Α[p..q] να περιέχει στοιχεία A[p], A[q..r] να περιέχει στοιχεία A[p], και επιστρέφει την τίµη q. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-5

Η διαδικασία Partition Βασική Ιδέα της Partition Επαναλαµβάνουµε τα εξής µέχρις ότου τα i και j να διασταυρωθούν. 1. προχώρα το j προς τα αριστερά όσο τα στοιχεία που βρίσκεις είναι µεγαλύτερα του A[p], 2. προχώρα το i προς τα δεξιά όσο τα στοιχεία που βρίσκεις είναι µικρότερα του Α[p], 3. αντάλλαξε τα στοιχεία που δείχνονται από τα i και j. 4. Οταν τα i και j διασταυρωθούν επέστρεψε την τιµή του j. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-6

Η διαδικασία Partition Partition(A, p, r){ x = A[p]; i = p; j = r; while TRUE { while (j p and A[j] > x) j--; while (i r and A[i] < x) i++; if (i<j) swap (A, i, j); i++; j--; else return j; } ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-7

Ανάλυση του Χρόνου Εκτέλεσης Έστω Τ(n) o χρόνος εκτέλεσης του Quicksort µε δεδοµένο εισόδου µεγέθους n. Για τη βάση της αναδροµής έχουµε: T(0) = T(1) = c Για n 1 T(n) = T(i) + T(n-i) + cn όπου i είναι το µέγεθος είναι το µέγεθος του αριστερού κοµµατιού µετά από το Partition. Χείριστη περίπτωση: i = 0 ή n-1. Tότε Τ(n) = T(n-1) + cn και Τ(n) O(n²). Βέλτιστη περίπτωση: i = n/2 T(n) = 2 T(n/2) + cn και Τ(n) O(n log n). Μέση περίπτωση: Αν υποθέσουµε πως όλες οι περιπτώσεις για το δεδοµένο εισόδου είναι εξίσου πιθανές, έχουµε επίσης, T(n) O(n log n). ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-8

Τυχαιοποιηµένος Αλγόριθµος Quicksort Κατά την ανάλυση µέσης περίπτωσης του Quicksort υποθέσαµε ότι όλες οι διατάξεις του δεδοµένου εισόδου είναι εξίσου πιθανές. Με αυτή την υπόθεση ο χρόνος εκτέλεσης µέσης περίπτωσης είναι Ο(n lg n). Θα δούµε πως µε τη χρήση τυχαιοποιηµένων αποφάσεων µπορούµε να αγνοήσουµε αυτή την υπόθεση µε αποτέλεσµα αλγόριθµους που για οποιοδήποτε δεδοµένο εισόδου ο µέσος χρόνος εκτέλεσης είναι της τάξης O(n lg n). Bασική ιδέα: αντί να υποθέτουµε την ύπαρξη κάποιας κατανοµής, επιβάλλουµε την ύπαρξη κάποιας κατανοµής. Χρήση random-number generators. Random(a,b) επιστρέφει ένα ακέραιο x, a x b, µε κάθε αριθµό να είναι εξίσου πιθανός (οµοιόρφη κατανοµή). π.χ. Random(0,1) επιτρέφει είτε 0, µε πιθανότητα 1/2, είτε 1, µε πιθανότητα 1/2. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-9

Τυχαιοποιηµένος Αλγόριθµος Quicksort Μια δυνατότητα για τυχαιοποιηµένο αλγόριθµο ταξινόµησης είναι πριν να εφαρµόσουµε τον αλγόριθµο Quicksort να αναδιατάξουµε το δεδοµένο εισόδου µε διαδικασία η οποία επιβάλλει οµοιόµορφη κατανοµή πιθανοτήτων για κάθε διάταξη. (Μπορεί να επιτευχθεί σε χρόνο Ο(n).) εύτερη δυνατότητα είναι να διαλέξουµε το pivot χρησιµοποιώντας τυχαιοποίηση. Παρατήρηση: και στις δύο περιπτώσεις η χείριστη περίπτωση εκτέλεσης οφείλεται στην τυχαιοποιηµένη επιλογή και όχι στη µορφή του δεδοµένου εισόδου. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-10

Αλγόριθµος µε τυχαιοποιηµένη επιλογή pivot Randomized_Partition(A,p,r){ i=random(p,r); swap(a[r], A[i]); return Partition(A,p,r) } Randomized_Quicksort(A,p,r){ if (p<r) q=randomized_partition(a,p,r); Randomized_Quicksort(A,p,q); Randomized_Quicksort(A,q+1,r); } Για την ανάλυση του χρόνου εκτέλεσης υποθέτουµε ότι όλα τα στοιχεία του δεδοµένου εισόδου είναι ξεχωριστά. Μας ενδιαφέρει να υπολογίσουµε την πιθανότητα των διαφορετικών διαµερισµών του δεδοµένου εισόδου (της τιµής του q). ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-11

Αλγόριθµος µε τυχαιοποιηµένη επιλογή pivot Γνωρίζουµε ότι 1. η τιµή του i είναι κατανεµηµένη οµοιόµορφα στο διάστηµα [p,,r]. 2. η τιµή του q εξαρτάται από το rank(a[i]) = αριθµός των στοιχείων στο Α[p,,r] τα οποία είναι A[i]) Eστω ότι n είναι ο αριθµός των στοιχείων του Α[p,,r]. Εχουµε ότι 1. αν rank(a[i])=1, τότε ο Α[p,q] θα περιέχει ένα στοιχείο. 2. αν rank(a[i]) 2, τότε Α[p,q] θα περιέχει rank(a[i] 1στοιχεία. Aρα το δεδοµένο εισόδου µοιράζεται µε πιθανότητα 2/n µε 1 στοιχείο στον αριστερό υποπίνακα και n 1 στοιχεία στο δεξιό υποπίνακα, και µε πιθανότητα 1/n µε i στοιχεία στον αριστερό υποπίνακα και n i στοιχεία στο δεξιό υποπίνακα, όπου 2 i n-1. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-12

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-13 Χρόνος Εκτέλεσης O µέσος χρόνος εκτέλεσης του αλγορίθµου δίνεται από την εξίσωση Λύνοντας την εξίσωση (CRL, pages 165-166) βρίσκουµε ότι Τ e (n) O(nlgn). + Θ + + + = = ) ( )) ( ) ( ( 1) ( (1) 1 ) ( 1 1 n q n T q T n T T n n T n q e e e e e

Το πρόβληµα Αλγόριθµοι Επιλογής εδοµένο εισόδου: σύνολο Α, A =n και i, 1 i n εδοµένο εξόδου: το i-οστό στοιχείο του A, δηλαδή x A το οποίο είναι µεγαλύτερο από ακριβώς i-1 στοιχεία. Λύση 1: Ταξινόµησε το σύνολο και επέστρεψε το i-οστό στοιχείο. Χρονική πολυπλοκότητα: Ο(n lg n) Γνωρίζουµε ότι για τις περιπτώσεις i=1 και i=n (εύρεση ελάχιστου και µέγιστου στοιχείου) το πρόβληµα µπορεί να λυθεί µε n-1 συγκρίσεις, δηλαδή, σε χρόνο Θ(n). Mπορούµε να λύσουµε το πρόβληµα επιλογής σε χρόνο Θ(n); ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-14

Λύση 2: Αλγόριθµος διαίρει και βασίλευε Randomized_Select(A,p,r,i){ if (p=r) return A[p]; else q=randomized_partition(a,p,r); k=q-p+1; if (i k) Randomized_Select(A,p,q,i); else Randomized_Select(A,q+1,r,i-k); } Όπως και στην περίπτωση του τυχαιοποιηµένου αλγορίθµου Quicksort, o αλγόριθµος µοιράζει τα δύο µέρη ως προς κάποιο στοιχείο x σε αριστερό µέρος που περιέχει όλα τα στοιχεία που είναι του x και στο δεξιό µέρος που περιέχει όλα τα στοιχεία του x. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-15

Λύση 2: Αλγόριθµος διαίρει και βασίλευε Σε αντίθεση µε τον αλγόριθµο Quicksort ο πιο πάνω αλγόριθµος κάνει µια µόνο αναδροµική κλήση του εαυτού του: Αν το αριστερό µέρος περιέχει λιγότερα από i στοιχεία συνεχίζει την αναζήτηση του i-στού στοιχείου στο αριστερό µέρος, διαφορετικά αναζητεί το "κατάλληλο" στοιχείο στο δεξιό µέρος. Αφού η επιλογή του pivot είναι τυχαιοποιηµένη η χείριστη περίπτωση εκτέλεσης του αλγορίθµου δεν εξαρτάται από το δεδοµένο εισόδου, αλλά από την τυχαιοποιηµένη επιλογή. Πότε παρουσιάζεται η χείριστη περίπτωση; Χρόνος εκτέλεσης χειρίστης περίπτωσης: ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-16

Μέσος όρος χρόνου εκτέλεσης Γνωρίζουµε ότι η διαδικασία Randomized_Partition µοιράζει το δεδοµένο εισόδου µε πιθανότητα 2/n µε 1 στοιχείο στον αριστερό υποπίνακα και n-1 στο δεξιό υποπίνακα, και µε πιθανότητα 1/n µε i στοιχεία στον αριστερό υποπίνακα και n-i στο δεξιό υποπίνακα, όπου 2 i n-1. Αρα ο µέσος χρόνος εκτέλεσης δίνεται από την αναδροµική ανίσωση n + 1 1 Te ( n) Te (max(1, n 1)) T n q= 1 (max( q, n q)) + Θ( n) Μπορούµε να αποδείξουµε µε τη µέθοδο της αντικατάστασης ότι Τ e (n) O(n). e ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-17

Aλγόριθµος επιλογής Βlum, Floyd, Pratt, Rivest, Tarjan Ο πιο κάτω αλγόριθµος έχει χρονική πολυπλοκότητα χείριστης περίπτωσης της τάξης Ο(n). Το άνω φράγµα Ο(n) επιτυγχάνεται µε κάποια προεργασία του δεδοµένου εισόδου η οποία εγγυείται ότι εφαρµογή της διαδικασία Partition θα οδηγήσει σε ισοζυγισµένο µοίρασµα του αρχικού πίνακα. O αλγόριθµος δεν είναι τυχαιοποιηµένος. Μεσαίο στοιχείο ενός πίνακα µε n στοιχεία ονοµάζουµε το (k+1)-οστό µεγαλύτερο στοιχείο του πίνακα όπου k=n/2. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-18

Ο Αλγόριθµος Select(A,p,q,i) 1. µοίρασε το δεδοµένο εισόδου σε n/5 υποπίνακες µε 5 στοιχεία ο καθένας, εκτός από τον τελευταίο ο οποίος πιθανόν να έχει από 1 µέχρι 5 στοιχεία. 2. ταξινόµησε τους υποπίνακες και επέτρεψε το µεσαίο στοιχείο κάθε υποπίνακα 3. Κάλεσε αναδροµικά τη διαδικασία Select για εύρεση του µεσαίου στοιχείου x των µεσαίων στοιχείων που επιστράφηκαν στο βήµα 2. 4. Αντάλλαξε το στοιχείο xµε το Α[p] και εφάρµοσε στον αρχικό πίνακα τη διαδικασία Partition(A). Έστω r η θέση του τελευταίου στοιχείου στον αριστερό υποπίνακα και k ο αριθµός των στοιχείων του αριστερού υποπίνακα. 5. Αν i k κάλεσε αναδροµικά τη διαδικασία Select(Α,p, r, i) διαφορετικά, αν i>k, κάλεσε αναδροµικά τη διαδικασία Select(A,r+1,q,i-k) ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-19

Ανάλυση Χρόνου Εκτέλεσης Παρατηρούµε ότι ο αριθµός των στοιχείων του Α που είναι µικρότερα από το στοιχείο x είναι τουλάχιστον 3n/10-6: Toυλάχιστον τα µισά από τα n/5 µεσαία στοιχεία που επιστρέφονται από το βήµα 2 είναι µικρότερα του x. Aπό αυτά τουλάχιστον όλοι εκτός από δύο από τους αντίστοιχους υποπίνακες (δηλαδή εκτός από τον τελευταίο υποπίνακα και τον πίνακα στον οποίο ανήκει το x) προσφέρουν τουλάχιστον 3 στοιχεία που είναι µικρότερα από το x. x ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-20

Ανάλυση Χρόνου Εκτέλεσης Άρα συνολικά τουλάχιστον 3(1/2 n/5-2) 3n/10-6 στοιχεία είναι µικρότερα του x. Eποµένως, στη χείριστη περίπτωση, η κλήση της διαδικασίας Select στο βήµα 5 του αλγορίθµου καλείται σε πίνακα µε το πολύ 7n/10 + 6 στοιχεία. Έστω T(n) ο χρόνος εκτέλεσης της διαδικασίας σε δεδοµένο εισόδου µεγέθους n. Eχουµε ότι Τ(n) = T(n/5) + T(7n/10) + O(n) Mε τη µέθοδο της αντικατάστασης παίρνουµε ότι Τ(n) O(n). ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-21

Ο αλγόριθµος του Freivalds Έστω n n πίνακες Α, Β και C. Ερώτηµα: ΑΒ=C; Προσπάθεια 1: Πολλαπλασίασε τους πίνακες Α και Β και σύγκρινε το γινόµενό τους µε το C. Χρονική Πολυπλοκότητα: Το πρόβληµα µπορεί να λυθεί µε ένα Monte Carlo αλγόριθµο σε χρόνο Ο(n²). Ο αλγόριθµος Freivalds(A,B,C){ ιάλεξε x {0,1} n τυχαία και οµοιόµορφα if A(Bx) Cx return (AB C) else return (AB = C, probably) } ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-22

Ο αλγόριθµος του Freivalds Χρονική Πολυπλοκότητα: Ο(n²) για τους υπολογισµούς Bx, Α(Βx) και Cx O(n) για τον έλεγχο ΑΒx = Cx Άρα συνολικά Ο(n²) Ορθότητα Υπάρχουν δύο περιπτώσεις: 1. Αν ΑΒ = C, τότε ΑΒx = Cxγια κάθε x, εποµένως o αλγόριθµος επιστρέφει τη σωστή απάντηση µε πιθανότητα 1. 2. Αν ΑΒ C υπάρχει κάποια πιθανότητα να ισχύει ΑBx = Cx. ηλαδή υπάρχει κάποια πιθανότητα ο αλγόριθµος να επιστρέψει λανθασµένη απάντηση. Η πιθανότητα αυτή όµως δεν είναι πολύ µεγάλη: ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-23

Ο αλγόριθµος του Freivalds ΛHMMA: Έστω ότι ΑΒ C και το διάνυσµα x επιλέγεται τυχαία και οµοιόµορφα από το σύνολο {0,1} n. Τότε Pr(ABx = Cx) ½ Aπόδειξη Αφού ΑΒ C, (ΑΒ-C) 0, άρα υπάρχουν i και j για τα οποία (ΑΒ- C)[i,j] 0. Έστω (a 1, a 2,, a n ) η i-οστή σειρά του πίνακα (ΑB-C), και x, το τυχαία και οµοιόµορφα επιλεγµένο διάνυσµα, x= (x 1, x 2,, x n ) T. Θεωρήστε το άθροισµα n k= 1 a k x k ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-24

Ο αλγόριθµος του Freivalds Έχουµε ότι Pr((AB C)x = 0) = Pr(x 1 2 Pr( n k= 1 j a k x j k 1 = a = 0) k j a k x k ) εφόσον το a j 0 και το x j {0,1} µε ίσες πιθανότητες για κάθε περίπτωση. Συνεπώς για κάποια δεδοµένα εισόδου, ο αλγόριθµος δίνει λανθασµένη απάντηση τις µισές φορές. Τρέχοντας όµως τον αλγόριθµο µέχρι k φορές, στην περίπτωση που µας δίνει τη θετική απάντηση, µειώνουµε την πιθανότητα λανθασµένης απάντησης στο 2 -k, χωρίς να µεταβληθεί η ασυµπτωτική πολυπλοκότητα του αλγορίθµου. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-25

Πρωτόκολα Μηδενικής Γνώσης Έστω ότι η Alice γνωρίζει κάποιο µυστικό το οποίο δεν γνωρίζει ο Bob. Eίναι δυνατό η Αlice να πείσει τον Bob για αυτή τη γνώση της χωρίς όµως να του αποκαλύψει το µυστικό; εδοµένα: κάποιο αλγοριθµικό πρόβληµα P και στιγµιότυπο του προβλήµατος, Χ. Zητούµενο: αλγόριθµος ο οποίος πείθει τον Bob ότι P(X) = Τrue χωρίς να αποκαλύπτει οτιδήποτε για την απόδειξη P(X)= True. Θα µελετήσουµε µια αντιπροσωπευτική µορφή του προβλήµατος. Έστω P το πρόβληµα: οι κορυφές ενός γράφου µπορούν να χρωµατιστούν µε τρία χρώµατα έτσι ώστε κανένα ζεύγος γειτονικών κορυφών να µην έχουν το ίδιο χρώµα. (Το πρόβληµα αυτό δεν µπορεί να λυθεί σε πολυωνυµικό χρόνο.) Έστω Χ κάποιος γράφος. Η Alice θέλει να πείσει τον Bob ότι P(X)=True, δηλαδή ότι ο γράφος Χ µπορεί να χρωµατιστεί σύµφωνα µε τις προδιαγραφές, χωρίς όµως να αποκαλύψει στον Bob κάποιο συγκεκριµένο χρωµατισµό. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-26

Ο Αλγόριθµος Mέχρις ώτου πεισθεί o Bob κάνε 1. Η Αlice επιλέγει τρία χρώµατα, τα αποκαλύπτει στον Bob και δηµιουργεί κάποιο χρωµατισµό του Χ καλύπτοντας όλες τις κορυφές. 2. Ο Βοb ζητά να δεί κάποια ακµή e. 3. Η Alice αποκαλύπτει τις κορυφές στα άκρα της e=(u, v). 4. Αν οι κορυφές u και v έχουν το ίδιο χρώµα τότε ο Bob αποφασίζει ότι η Alice λέει ψέµατα, διαφορετικά ο βρόχος επαναλαµβάνεται. Έχουµε ότι 1. Η Alice µπορεί να είναι ικανοποιηµένη για το ότι δεν αποκαλύπτει κάποιο συγκεκριµένο χρωµατισµό στον Bob. 2. Ο Bob µπορεί να είναι σίγουρος ότι µετά από ένα µεγάλο αριθµό επαναλήψεων η πιθανότητα να τον ξεγελάσει η Alice ότι γνωρίζει το µυστικό, τείνει στο 0. 3. Αν ο γράφος έχει N ακµές, µετά την k-oστή επανάληψη, η πιθανότητα αυτή είναι... ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 11-27