Blum Complexity. Αλγόριθμοι και Πολυπλοκότητα ΙΙ. Παναγιώτης Γροντάς. Δεκέμβριος

Σχετικά έγγραφα
Λύσεις 4ης Σειράς Ασκήσεων

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k ))

Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις.

Μηχανές Turing (T.M) I

Θεώρημα Υπάρχουν υπολογίσιμες συναρτήσεις που δεν είναι πρωταρχικές αναδρομικές.

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια)

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Blum Blum Shub Generator

Recursive and Recursively Enumerable sets I

Μη επιλυσιμότητα I. Απόδειξη. Ορίζουμε # # =

Chapter 7, 8 : Time, Space Complexity

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 15: Διαγνωσιμότητα (Επιλυσιμότητα) ΙΙ

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Chapter 7, 8 : Time, Space Complexity

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Περιεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ.

Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

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

t M (w) T ( w ) O( n) = O(n 2 )

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Φροντιστήριο 10 Λύσεις

L A P. w L A f(w) L B (10.1) u := f(w)

Αναδρομή (Recursion) Πώς να λύσουμε ένα πρόβλημα κάνοντας λίγη δουλειά και ανάγοντας το υπόλοιπο να λυθεί με τον ίδιο τρόπο.

Μαθηματικά των Υπολογιστών και των Αποφάσεων Τεχνητή Νοημοσύνη 1η Σειρά Ασκήσεων

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

Υπολογίσιμες Συναρτήσεις

Μη-Αριθμήσιμα Σύνολα, ιαγωνιοποίηση

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

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

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Μέθοδοι πολυδιάστατης ελαχιστοποίησης

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

CSC 314: Switching Theory

Pseudorandomness = Μη αληθής + Τυχαιότητα. Combinatorial Constructions = Κατασκευές Συνδυαστικής

Θεωρία Υπολογισμού και Πολυπλοκότητα

10.1 Υπολογίσιμες συναρτήσεις και αναδρομικά σύνολα

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

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60

244 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Η f είναι μία μερική συνάρτηση στο πεδίο X, αν και μόνο αν η συνάρτηση ορίζεται για μηδέν ή περισσότερα στοι

Σχήματα McCarthy I. Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα:

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

Υπολογιστικά & Διακριτά Μαθηματικά

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

Θεωρία Υπολογισμού και Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα

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

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

Κωστόπουλος ηµήτριος Μ.Π.Λ.Α. TAPE COMPRESSION (θεώρηµα 2.3 Παπαδηµητρίου)

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεωρήµατα Ιεραρχίας Ειδικά Θέµατα Υπολογισµού και Πολυπλοκότητας, Μάθηµα Βασικής Επιλογής Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

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

Θεωρία Υπολογισμού Αλφάβητα, Γλώσσες, Κανονικές Εκφράσεις

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

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης

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

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

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

Βελτιστοποίηση κατανομής πόρων συντήρησης οδοστρωμάτων Πανεπιστήμιο Πατρών - Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών

Θεωρία Υπολογισμού και Πολυπλοκότητα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

Αναδροµή (Recursion) ύο παρεξηγήσεις. Σκέψου Αναδροµικά. Τρίγωνο Sierpinski Μη αναδροµικός ορισµός;

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

Διαλογικά Συσ τήματα Αποδείξεων Διαλογικά Συστήματα Αποδείξεων Αντώνης Αντωνόπουλος Κρυπτογραφία & Πολυπλοκότητα 17/2/2012

CSC 314: Switching Theory. Chapter 3: Turing Machines

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

Θεωρία Υπολογισμού. Ενότητα 5 : Λογικά Επιχειρήματα, Αλφάβητα & Γλώσσες (2/2) Αλέξανδρος Τζάλλας

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

Αλγόριθμοι για αυτόματα

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

ΚΕΦΑΛΑΙΟ 3. Περιγραφή της Μεθόδου ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΜΕΘΟΔΟΥ

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

Θεωρία Υπολογισµού Theory of Computation

f(t) = (1 t)a + tb. f(n) =

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 16: Αναγωγές

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Κατανεμημένα Συστήματα Ι

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Επανάληψη Μαθήματος

Μοντελοποίηση προβληµάτων

Μέρος ΙΙ. Τυχαίες Μεταβλητές

Κεφάλαιο 5 Αξιωματική Σημασιολογία και Απόδειξη Ορθότητας Προγραμμάτων

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

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

Transcript:

Blum Complexity Αλγόριθμοι και Πολυπλοκότητα ΙΙ Παναγιώτης Γροντάς µπλ Δεκέμβριος 2011

Ιστορικά Στοιχεία Manuel Blum (1938, Caracas Venezuela) Turing Award (1995) Foundations Of Computational Complexity Cryptography Program Checking Δείγματα Δουλειάς (μεταξύ άλλων): Median Of Medians Algorithm Blum, Blum, Shub pseudo - number generator Blum - Goldwasser cryptosystem CAPTCHAs Blum Complexity Γνωστοί μαθητές: Michael Sipser Leonard Adleman Gary Miller Vijay Vazirani Ryan Williams

Blum Complexity Χαρακτηρισμός πολυπλοκότητας υπολογίσιμων συναρτήσεων (με top-down τρόπο). Ανεξαρτησία από μοντέλο μηχανής (δεν έχει σημασία πλήθος ταινιών, κωδικοποίηση εισόδου κτλ.) Ποιες είναι οι 'νόμιμες' συναρτήσεις μέτρησης πολυπλοκότητας (πέρα από βήματα, κελιά); Αξιώματα Blum Υπάρχουν προβλήματα για τα οποία δεν υπάρχει βέλτιστος αλγόριθμος! Speedup Theorem

Συμβολισμός Ακολουθία μηχανών Z 0, Z 1, Z 2... Δεν έχουν σημασία τα χαρακτηριστικά τους (πλήθος ταινιών/κωδικοποίηση εισόδου) Συσχετίζουμε με κάθε μηχανή δύο συναρτήσεις: Συνάρτηση που υπολογίζεται από την μηχανή Zi : ϕ i (n) Συνάρτηση 'καταμέτρησης βημάτων' υπολογισμού: Φ i (n) Άρα: Σύνολο partial recursive functions {ϕ i } Σύνολο partial recursive functions {Φ i } το οποίο μπορει να ειναι εντελώς αυθαίρετο εκτός από τό ότι πρέπει να ισχύουν τα εξής αξιώματα:

Αξιώματα 1. Η ϕ i (n) συγκλίνει Φ i (n) συγκλίνει Για να μετρήσουμε την πολυπλοκότητα μηχανών Turing αυτές πρέπει να τερματίζουν. 2. H συνάρτηση M(i, n, m) = { 1, if Φi (n) = m 0, otherwise είναι αναδρομική. Τερμάτισε μια μηχανή με συγκεκριμένη είσοδο σε συγκεκριμένο πλήθος βημάτων; To πλήθος των βημάτων πρέπει να είναι υπολογίσιμο. 3. Μία συνάρτηση η οποία ικανοποιεί τα παραπάνω αξιώματα ονομάζεται μέτρο πολυπλοκότητας (complexity measure / computation measure)

Παράδειγματα Το πλήθος βημάτων μιας μηχανής Turing είναι complexity measure. Απόδειξη: Αξίωμα 1: Το πλήθος βημάτων ορίζεται μόνο για μηχανές Turing που τερματίζουν Αξίωμα 2: Η καθολική μηχανή Turing καθώς προσομοιώνει την M μετράει και τα βήματα. Αν ξεπεράσει το καθορισμένο πλήθος, τότε σταματάει. Το πλήθος τετραγώνων μιας μηχανής Turing είναι complexity measure. H Φ i (n) = Φ i (n)2 i+n είναι complexity measure αν και μόνο αν η Φ i (n) είναι. H Φ i (n) = ϕ i (n) δεν είναι complexity measure Ικανοποιείται το Αξίωμα 1 αλλά όχι το Αξίωμα 2: H Φ i (n) = 0 δεν είναι complexity measure Ικανοποιείται το Αξίωμα 2 αλλά όχι το Αξίωμα 1:

Speed Up Theorem Έστω r μία total recursive function δύο μεταβλητών. Υπάρχει total recursive function f η οποία λαμβάνει τις τιμές 0 και 1 με την ιδιότητα για κάθε Φ i υπάρχει Φ j, που αφορούν την f, τέτοιο ώστε Φ i (n) > r(n, Φ j (n)) για σχεδόν όλα τα n. Πρακτικά: Για μία πολύπλοκη συνάρτηση, σε κάθε μηχανή που την υπολογίζει αντιστοιχεί μία ακόμα πιο γρήγορη, η οποία για άπειρα n μπορει να λειτουργήσει με λιγότερα βήματα. Δεν μπορούμε να βρούμε το βέλτιστο προγραμμα για μια υπολογίσιμη συνάρτηση και για ένα complexity measure. Τα παραπάνω ισχύουν για οποιοδήποτε complexity measure (δηλ. και για χώρο και για χρόνο και για ό,τι άλλο πληρεί τα αξιώματα).

Speed Up Theorem Για κάθε Φ i υπάρχει Φ j, που αφορούν την ίδια υπολογίσιμη συνάρτηση, τέτοια ώστε Φ i (n) > 2Φ j (n). Παράδειγμα { 1, x palindrome f(x) = 0, otherwise Υπολογισμός του f(372686273). Μπορούμε να σβήνουμε ένα χαρακτήρα από τα αριστερά και ένα από τα δεξιά (αν είναι ίδιοι), μέχρι να μείνει ένας χαρακτήρας ή η κενή συμβολοσειρά. Υπολογισμός με μισά βήματα: Μπορούμε να ελέγχουμε για ισότητα και να σβήνουμε 2 χαρακτήρες την φορά.

Περίληψη Απόδειξης[4] Έστω t(n) ένα complexity bound. Θα κατασκευάσουμε μια συνάρτηση f : {0, 1} τέτοια ώστε αν η f μπορεί να υπολογιστει σε O(t(n)) βήματα μπορεί να υπολογιστεί σε (t(n i)) βήματα i. Έστω S i = {Z 1, Z 2,..Z i } οι πρώτες i μηχανές μιας απαρίθμησης. Έστω φυσικός n (είσοδος f).

Περίληψη Απόδειξης for all i {1..n} do Προσομοίωσε κάθε μη ακυρωμένη Z k στο S i για t(n i) βήματα. if καμία δεν τερματίσει then f(i) 0 else M j η πρώτη μηχανή που τερματίζει. if M j = 0 then f(i) 1 else f(i) 0 end if Ακύρωσε την M j. end if end for

Περίληψη Απόδειξης Υπολογισμός f(n) σε O(n 2 t(n)) Speed Up: Θα ενσωματώσουμε κάποιες τιμές της f στον αλγόριθμο για να γίνει πιο γρήγορος. Ενσωματώνουμε τα M j που ακυρώθηκαν στις πρώτες i επαναλήψεις. Για να ορίσουμε την f ξεκινάμε από την επανάληψη i + 1 Χρειάζονται O(n 2 t(n i)) βήματα. Όσο πιο πολλά βήματα ενσωματώνουμε τόσο πιο γρήγορος γίνεται ο αλγόριθμος. Μένει να δειχθεί ότι ο παραπάνω τροπος κατασκευής της f δεν υπάρχει άλλος τρόπος κατασκευής της f.

Speed Up Theorem Η κατασκευή της f έγινε για μεμονωμένες τιμές της. Υπάρχει διαδικασία με την οποία μπορούμε να βρούμε γρηγορότερη μηχανή για μια συνάρτηση f; Όχι. Αυτό οφείλεται στο παρακάτω θεώρημα: Έστω r total recursive function. Αν είναι αρκετά μεγάλη, τότε δεν μπορει να υπάρξει total recursive function k ώστε: Να απαριθμεί μόνο δείκτες της f. Σε κάθε δεικτη i για την f να αντιστοιχεί δείκτης k(j) για την f ώστε Φ i (n) > r(n, Φ k(j) (n)) για σχεδόν όλα τα n.

Super Speed Up Theorem Η συνάρτηση r του speed up theorem μπορεί να είναι όσο μεγάλη όσο η Φ i. Έστω g μια total recursive function. Υπάρχει total recursive function f τέτοια ώστε: Αν i ένας δείκτης για την f τότε Φ i (n) > g(n) για σχεδόν όλα τα n. Σε κάθε δείκτη i για την f υπάρχει δείκτης j για την f ώστε Φ i (n) > Φ j (Φ i (n)) για σχεδόν όλα τα n. Ισχύει και το αντίθετο: Έστω h, f total recursive functions. Υπάρχει δεικτης j για την f ώστε Φ j (n) > h(n) για κάθε n. Μία 'άσχημα' σχεδιασμένη μηχανή μπορεί να σπαταλήσει έναν τεράστιο αριθμό βημάτων για να υπολογίσει μια απλή συνάρτηση.

Κριτική [3] H Blum complexity δεν έχει διαδοθεί ευρύτατα στις μέρες μας γιατί: Τα πραγματικά ενδιαφέροντα complexity measures ειναι το πλήθος βημάτων και το πλήθος μνήμης τα οποία έχουν μελετηθεί ανεξάρτητα. Τα measures τα οποία προκύπτουν από το speed up και τα λοιπά θεωρήματα είναι τεχνητά μεγάλα και δεν ανταποκρίνονται σε πραγματικές ανάγκες. Κάποια μέτρα πολυπλοκότητας που θα μας ενδιέφεραν, όπως πχ. το πλήθος τυχαίων νομισμάτων που πρέπει να χρησιμοποιήσει μια πιθανοτική μηχανή Turing, δεν πληρούν τα αξιώματα της θεωρίας του Blum.

Βιβλιογραφία 1. M. Blum. "A machine-independent theory of the complexity of recursive functions," J. ACM 14:2 (1967), 322-336. 2. J. Seiferas, "Machine-independent complexity theory," pp. 163-186 in The Handbook of Theoretical Computer Science, vol. I: Algorithms and Complexity, 3. Lance Fortnow, Blum Complexity Measures, http://blog.computationalcomplexity.org/2004/04/ blum-complexity-measures.html (11/12/2011) 4. Scott Aaronson, Paleocomplexity, http://www.scottaaronson.com/democritus/lec5.html (11/12/2011) 5. Wikipedia entry On Manuel Blum, http://en.wikipedia.org/wiki/manuel_blum (11/12/2011)