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

Πιθανοκρατικοί Αλγόριθμοι
Ειδικά Θέματα Υπολογισμού και Πολυπλοκότητας
Θεόδωρος Σταθούλης
30 Μαΐου, 2013
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
1/18
Εισαγωγικά
Τι είναι ένας πιθανοκρατικός αλγόριθμος;
΄Ενας αλγόριθμος ο οποίος παίρνει τυχαίες αποφάσεις στα
βήματα υπολογισμού του.
Για την ίδια είσοδο μπορεί να παραγάγει διαφορετικές
εξόδους σε διαφορετικά τρεξίματα.
Μπορούμε να πούμε ότι δέχεται ως 2η είσοδο μια σειρά από
τυχαία bits, βάσει των οποίων επιλέγει το επόμενο βήμα.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
2/18
Εισαγωγικά (2)
Διαφορά με μη-Ντετερμινιστικούς Αλγορίθμους:
Η ειδοποιός διαφορά είναι ότι στους πιθανοκρατικούς
αλγορίθμους επιλέγουμε μόνο ένα μονοπάτι να
ακολουθήσουμε απ’όλα τα δυνατά, αυτό που μας καθορίζει
η τυχαία ακολουθία των bits.
Στην πραγματικότητα, οι πιθανοκρατικοί αλγόριθμοι είναι
υποκατηγορία της ευρύτερης έννοιας των
μη-ντετερμινιστικών αλγορίθμων, και μπορούν να
μοντελοποιηθούν με μη-ντετερμινιστικές Μηχανές Turing.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
3/18
Κατηγορίες Π. Α.
Υπάρχουν 2 βασικές κατηγορίες πιθανοκρατικών αλγορίθμων:
1
Αλγόριθμοι Monte Carlo.
Τρέχουν για φιξαρισμένο χρόνο, αλλά η έξοδός τους μπορεί
να είναι λανθασμένη.
΄Ενας πολυωνυμικού χρόνου Monte Carlo αλγόριθμος τρέχει
σε πολυωνυμικό χρόνο ως προς το μήκος (|n|) της εισόδου
(n).
2
Αλγόριθμοι Las Vegas.
Μπορεί να τρέξουν για υπερβολικά μεγάλο χρόνο, αλλά δεν
κάνουν ποτέ λάθος στην έξοδό τους.
΄Ενας πολυωνυμικού χρόνου Las Vegas αλγόριθμος τρέχει σε
αναμενόμενο χρόνο που είναι πολυωνυμικός στο μήκος της
εισόδου.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
4/18
Παράδειγμα: Primality Test
Πρόβλημα Πρώτευσης
Μας δίνουν έναν αριθμό n. Είναι ο n πρώτος;
΄Ενας πιθανοκρατικός αλγόριθμος γι’αυτό το πρόβλημα - που
κάνει χρήση του θεωρήματος του Fermat - είναι ο παρακάτω:
Fermat Primality Test
1
2
Διάλεξε έναν τυχαίο ακέραιο αριθμό a στο διάστημα [2,
n-1].
Αν an−1 ≡ 1 (mod n), απάντησε ’’Μάλλον πρώτος’’. Αλλιώς
απάντησε ’’Σίγουρα σύνθετος’’.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
5/18
Παράδειγμα: Primality Test (2)
΄Εχει αποδειχθεί ότι αν ο n είναι σύνθετος (αλλά όχι
αριθμός Carmichael), το πολύ μισά απ’τα δυνατά a
ικανοποιούν την ισοδυναμία. ⇒ Η πιθανότητα να
απαντήσει ’’Μάλλον πρώτος’’ ενώ ο n είναι σύνθετος, είναι
το πολύ 1/2.
Προφανώς αν ο n είναι πρώτος, η ισοδυναμία ισχύει για
όποιο a κι αν επιλεγεί και ο αλγόριθμος θα δώσει σωστή
απάντηση.
Μπορούμε να μειώσουμε την πιθανότητα λάθους, αν
τρέξουμε πολλά ανεξάρτητα πειράματα. Για k
επαναλήψεις, η πιθανότητα πέφτει στο 2−k .
Για να διατηρήσουμε την πολυωνυμική πολυπλοκότητα, το k
θα πρέπει να είναι κάποιο πολυώνυμο στο μήκος του n.
Και πάλι όμως δεν μπορούμε να αποκλείσουμε την
περίπτωση κάποιας ”false positive” απάντησης.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
6/18
Κλάσεις πολυπλοκότητας
RP & co-RP (Randomized Polynomial time)
ZPP (Zero-error Probabilistic Polynomial time)
PP (Probabilistic Polynomial time)
BPP (Bounded-error Probabilistic Polynomial time)
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
7/18
RP & co-RP
Ορισμός RP
Η κλάση RP αποτελείται από όλες τις γλώσσες για τις οποίες
υπάρχει μία πολυωνυμικού χρόνου πιθανοκρατική TM με τις
εξής ιδιότητες:
Αν x ∈ L, τότε Pr [M(x) accepts] ≥ 1/2
Αν x 6∈ L, τότε Pr [M(x) accepts] = 0.
Πώς ορίζεται όμως μια πιθανοκρατική TM;
Είναι μια μη-ντετερμινιστική TM, όπου σε κάθε βήμα του
υπολογισμού της (το οποίο λέγεται κερματοριπτικό)
υπάρχουν 2 δυνατές επόμενες καταστάσεις, και η οποία
αποδέχεται την είσοδό της με
P πιθανότητα:
Pr [M(x) accepts] =
Pr [b], όπου
b: αποδεκτικός κλάδος
Pr [b] = 2−k , για k = μήκος μονοπατιού του b.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
8/18
RP & co-RP (2)
Ορισμός co-RP
Η κλάση co-RP αποτελείται από όλες τις γλώσσες για τις οποίες
υπάρχει μία πολυωνυμικού χρόνου πιθανοκρατική TM με τις
εξής ιδιότητες:
Αν x ∈ L, τότε Pr [M(x) accepts] = 1
Αν x 6∈ L, τότε Pr [M(x) accepts] ≤ 1/2.
Το ’’1/2’’ αποτελεί μία αυθαίρετη σταθερά. Οποιαδήποτε
τιμή μεταξύ 0 και 1 μας κάνει - απλά τρέχουμε τη μηχανή
για k κατάλληλες φορές μέχρι να ’’φτάσουμε’’ αυτό το
νούμερο.
Στην κλάση αυτή ανήκουν τα προβλήματα που έχουν
πολυωνυμικού χρόνου Monte Carlo αλγόριθμο.
Το Πρόβλημα της Πρώτευσης ανήκει στην κλάση co-RP.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
9/18
RP & co-RP (3)
Είναι προφανές ότι P ⊆ RP ⊆ NP.
Κάθε γλώσσα στην P έχει μία RP μηχανή Turing → Αυτή
θα έχει πιθανότητα αποδοχής 1 σε περίπτωση στιγμιοτύπου
που ανήκει στη γλώσσα, ενώ θα αγνοεί πάντα το κέρμα.
Επίσης κάθε γλώσσα στην RP έχει εξ’ορισμού μία NP
μηχανή Turing, αφού η πιθανοκρατική μηχανή είναι ειδική
περίπτωση μιας μη-ντετερμινιστικής.
Με αντίστοιχο τρόπο ισχύουν οι εγκλεισμοί για την co-RP.
(συμμετρική κλάση)
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
10/18
ZPP
Είναι η κλάση των γλωσσών που διαγιγνώσκονται από μία
πολυωνυμικού χρόνου πιθανοκρατική TM, η οποία πάντοτε
βγάζει σωστό αποτέλεσμα. (zero-error)
Αποτελεί την τομή των RP και co-RP. (ZPP = RP ∩ co-RP)
Ιδέα: Τρέχουμε παράλληλα τις μηχανές των 2 κλάσεων. Αν
η μηχανή της RP απορρίψει τότε απορρίπουμε, αλλιώς αν η
μηχανή της co-RP αποδεχτεί, τότε αποδεχόμαστε. Σε
διαφορετική περίπτωση, απαντάμε ’’Δεν ξέρω’’.
Ο χρόνος εκτέλεσης αποτελεί μια τυχαία μεταβλητή, αλλά
η αναμενόμενη τιμή του φράσσεται από ένα πολυώνυμο του
μήκους της εισόδου.
Στην κλάση αυτή ανήκουν τα προβλήματα που έχουν
πολυωνυμικού χρόνου Las Vegas αλγόριθμο.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
11/18
PP
Ορισμός PP
Η κλάση PP αποτελείται από όλες τις γλώσσες για τις οποίες
υπάρχει πολυωνυμικού χρόνου πιθανοκρατική TM, με τις εξής
ιδιότητες:
Αν x ∈ L, τότε Pr [M(x) accepts] > 1/2
Αν x 6∈ L, τότε Pr [M(x) accepts] ≤ 1/2.
Επειδή οι διαφορές στις πιθανότητες ’’σωστής απάντησης λάθος απάντησης’’ μπορεί να είναι υπερβολικά μικρές, η
κλάση αυτή δεν έχει πρακτικό αντίκρισμα - θα χρειάζονταν
εκθετικά πολλές επαναλήψεις για να βγάλουμε ένα σχετικά
ασφαλές συμπέρασμα.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
12/18
PP (2)
Η κλάση αυτή, σε αντίθεση με τις 2 προηγούμενες (και τη
BPP όπως θα δούμε στη συνέχεια), είναι ’’συντακτική’’,
δηλαδή μπορούμε να ορίσουμε γι’αυτήν μία NTM η οποία
να αποδέχεται ή να απορρίπτει βάσει πλειοψηφίας των
φύλλων του υπολογισμού της.
Συνεπώς, υπάρχουν πλήρη προβλήματα γι’αυτή την κλάση.
΄Ενα PP-complete πρόβλημα είναι το MAJSAT.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
13/18
BPP
Ορισμός BPP
Η κλάση BPP αποτελείται από όλες τις γλώσσες για τις οποίες
υπάρχει μία πολυωνυμικού χρόνου πιθανοκρατική TM με τις
εξής ιδιότητες:
Αν x ∈ L, τότε Pr [M(x) accepts] ≥ 2/3
Αν x 6∈ L, τότε Pr [M(x) accepts] ≤ 1/3.
Αυτό σημαίνει ότι η πιθανότητα λάθος απάντησης είναι το
πολύ 1/3 σε κάθε περίπτωση.
Ουσιαστικά υπάρχει μια ’’καθαρή’’ ένδειξη για το αν
κάποιο στιγμιότυπο ανήκει στη γλώσσα ή όχι.
Σε σχέση με τις RP και co-RP το περιθώριο λάθους υπάρχει
και στις 2 ’’πλευρές’’.
Χρησιμοποιώντας φράγματα Chernoff (σε k τρέξιματα),
αποδεικνύεται ότι οποιοσδήποτε αριθμός μεταξύ 0 και 1/2
μπορεί να αποτελεί το (αρχικό) περιθώριο λάθους.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
14/18
Εγκλεισμοί
Ισχύει ότι RP ⊆ BPP ⊆ PP.
Ο πρώτος εγκλεισμός ισχύει, γιατί αν τρέξουμε τον RP
αλγόριθμο 2 φορές, η πιθανότητα false negative απάντησης
πέφτει στο 1/4, ενώ η πιθανότητα false positive απάντησης
είναι ήδη 0 < 1/3 ⇒ το περιθώριο λάθος και στις 2 πλευρές
είναι το πολύ 1/4.
Ο δεύτερος εγκλεισμός ισχύει, γιατί αν έχουμε περιθώριο
λάθους ≤ 1/3, έχουμε σίγουρα περιθώριο λάθους ≤ 1/2.
Επίσης ισχύει ότι NP ⊆ PP → Η PP μηχανή θα έχει μία νέα
αρχική κατάσταση και 2 επιλογές που εξέρχονται απ’αυτήν.
Η μία θα οδηγεί σε μονοπάτι που αποδέχεται πάντα, ενώ η
άλλη θα προσομοιώνει τη NTM. Αφού οι μισοί υπολογισμοί
θα αποδέχονται πάντα, η μηχανή θα έχει πιθανότητα > 1/2
να αποδεχτεί εφόσον το στιγμιότυπο ανήκει στη γλώσσα.
Είναι άγνωστο αν BPP ⊆ NP.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
15/18
Τυχαίες Πηγές
Που θα βρούμε πραγματικά τυχαία bits;
Το ’’ζάρι’’ μας πρέπει να είναι τόσο δίκαιο όσο και ’’χωρίς
μνήμη’’.
Το σημαντικό είναι το 2ο. Για το πρώτο, υπάρχει τρόπος να
εξαλείψουμε το bias που ενδεχομένως να έχει κρατώντας
μόνο τα 01(→0) και 10(→1).
Πραγματικά τυχαίες πηγές είναι πρακτικά αδύνατο να
βρούμε → αυτό είναι ένα από τα εγγενή προβλήματα των
πιθανοκρατικών αλγορίθμων.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
16/18
Χρησιμότητα Π. Α.
Είναι απλοί στην υλοποίησή τους.
Τρέχουν σε λιγότερο χρόνο απ’ό,τι οι ντετερμινιστικοί, οι
οποίοι σε κάποιες παθολογικές περιπτώσεις εισόδου πρέπει
να εξετάσουν κάθε περίπτωση και να καταναλώσουν
εκθετικά μεγάλο χρόνο.
Η πιθανότητα λάθους μπορεί να γίνει πολύ μικρή, σχεδόν
αμελητέα, με επαναλαμβανόμενα τρεξίματα του
αλγορίθμου.
Εφαρμογές σε:
Γραφήματα (π.χ. Min Cut αλγόριθμος)
Δομές Δεδομένων (π.χ. Quicksort αλγόριθμος)
Γραμμική ΄Αλγεβρα (π.χ. Matrix Verification αλγόριθμος)
Παράλληλο και Κατανεμημένο Υπολογισμό
Θεωρία Αριθμών (όπως είδαμε στο Πρόβλημα Πρώτευσης)
και πάρα πολλά άλλα...
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
17/18
ΕΥΧΑΡΙΣΤΩ.
Θεόδωρος Σταθούλης
Πιθανοκρατικοί Αλγόριθμοι
18/18