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

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

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

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

Recursive and Recursively Enumerable sets I

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

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation

Το 10ο πρόβλημα του Hilbert I

Αναδρομικές Συναρτήσεις και Σχέσεις I

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

Απαρίθμηση ζευγών φυσικών αριθμών I. C(0, 0) = 0 C(2, 1) = 7 κωδικοποίηση κατά Cantor D 1 (7)=2, D 2 (7)=1 : αποκωδικοποίηση

Υπολογισιμότητα και Πολυπλοκότητα Computability and Complexity

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

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

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

Υπολογισιμότητα και Πολυπλοκότητα Computability and Complexity

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

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

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E.

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

Τυχαιότητα (Randomness) I

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

Υπολογισιμότητα και Πολυπλοκότητα Computability and Complexity

Προγραμματισμός Ι (HY120)

Λύσεις Σειράς Ασκήσεων 5

Σειρά Προβλημάτων 1 Λύσεις

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

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

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

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί

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

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

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

Παραλλαγές και επεκτάσεις αυτομάτων I

Λογική Πρώτης Τάξης. Γιώργος Κορφιάτης. Νοέµβριος Εθνικό Μετσόβιο Πολυτεχνείο

ιαφάνειες παρουσίασης #3

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

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


Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνο ΣHMΜY

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

Σειρά Προβλημάτων 1 Λύσεις

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

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

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

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος.

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών. Προδιαγραφές

B = {x A : f(x) = 1}.

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

Λύσεις Σειράς Ασκήσεων 5

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

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

= s 2m 1 + s 1 m 2 s 1 s 2

Λύσεις 4ης Σειράς Ασκήσεων


Σειρά Προβλημάτων 1 Λύσεις

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

S n = ( 1, 0] 1 + b 1 a1 + b 1 I 1 I 2 I 3...,

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις

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

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ-ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΚΑΔΗΜΑΪΚΟ ΕΠΑΛ- ΚΑΝΙΓΓΟΣ 13- ΤΗΛ

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

Πλακίδια του Wang C πεπερασμένο σύνολο χρωμάτων.

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

HY340, 2009 Α. Σαββίδης Slide 2 / 143. HY340, 2009 Α. Σαββίδης Slide 3 / 143. HY340, 2009 Α. Σαββίδης Slide 4 / 143

Ψευδοκώδικας. November 7, 2011

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνο ΣΕΜΦΕ

Αποτελέσματα προόδου

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

Προγραμματισμός PASCAL

Εισαγωγή στην Επιστήμη των Υπολογιστών

ιαφάνειες παρουσίασης #3

Εισαγωγή στην Επιστήμη των Υπολογιστών

Διακριτά Μαθηματικά Ι

(a) = lim. f y (a, b) = lim. (b) = lim. f y (x, y) = lim. g g(a + h) g(a) h g(b + h) g(b)

ΑΝΑΚΟΙΝΩΣΗ ΚΑΤΑΤΑΚΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ ΑΚ. ΈΤΟΥΣ

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

Διακριτά Μαθηματικά Ι

for for for for( . */

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

a n = 3 n a n+1 = 3 a n, a 0 = 1

Μαθηµατικά για Πληροφορική

> ln 1 + ln ln n = ln(1 2 3 n) = ln(n!).

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

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

z 1 E(G) 2(k 1) = 2k 3. x z 2 H 1 H 2

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while

Εισαγωγικά Παραδείγματα: Παρατηρήσεις:

ιαφάνειες παρουσίασης #4

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

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

Transcript:

Θέση Church-Turing I Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις Θέση Church-Turing: Όλες οι υπολογίσιμες συναρτήσεις είναι μερικές αναδρομικές και όλες οι αποκρίσιμες σχέσεις είναι αναδρομικές. Υπενθύμιση: Μια σχέση R λέγεται αναδρομική όταν η χαρακτηριστική της συνάρτησης χ R είναι αναδρομική, όπου: # 1 αν R(x, y) χ R(x, y) = 0 αλλιώς Συνέπεια της θέσης του Church: Για να δείξουμε οτι μια συνάρτηση ή σχέση είναι (μερική) αναδρομική, αντί μιας ακολουθίας τυπικών συνεπαγωγών (με πρωταρχικές συναρτήσεις και σχήματα) ή αντί ενός πλήρους προγράμματος ή T.M., αρκεί να δίνουμε ενορατικά (αλλά ορθά) επιχειρήματα για τον τρόπο υπολογισμού τους. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 131 / 310

Θέση Church-Turing II Έτσι φαίνεται τελικά οτι καταλήξαμε στον τυπικό πια ορισμό της εννοιας υπολογίσιμος. Φυσικά υπάρχουν πολλλές συναρτήσεις που δεν είναι υπολογίσιμες. Θεώρημα Υπάρχουν μη υπολογίσιμες συναρτήσεις. Απόδειξη. Απαριθμούμε όλες τις μερικές αναδρομικές συναρτήσεις φ 0, φ 1, φ 2, Άσκηση: Χρησιμοποιώντας κωδικοποίηση, απαρίθμησε μηχανιστικά την κλάση PR ή όλα τα προγράμματα while. Άρα υπάρχουν άπειρες μεν, αλλά μόνο αριθμήσιμες το πλήθος μερικές αναδρομικές συναρτήσεις (ℵ 0 ). Από την άλλη μεριά όμως, υπάρχουν μη αριθμήσιμες το πλήθος συναρτήσεις γενικώς (2 ℵ 0 δείχνεται με διαγωνιοποίηση). Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 132 / 310

Θέση Church-Turing III Παράδειγμα μιας μη υπολογίσιμης συνάρτησης: Το πρόβλημα τερματισμού (halting problem). # 1, αν φ x(y) Ó g(x, y) = 0, αλλιώς Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 133 / 310

Universal Machine I Καθολικό Πρόγραμμα (universal program): ένα πρόγραμμα που παίρνει για είσοδο οποιοδήποτε πρόγραμμα με τα δεδομένα εισόδου του και προσομοιάζει την εκτέλεσή του. Αυτή η έννοια είναι παρόμοια με τη λειτουργία ενός επόπτη (monitor), μεταφραστή (compiler) ή διερμηνέα (interpreter) σ ένα πραγματικό υπολογιστή. Μιλήσαμε για την ισοδυναμία των μοντέλων, άρα μπορούμε να μιλάμε είτε για καθολικό While program, είτε για καθολικό Goto program, είτε για καθολική μηχανή Turing (ιστορικά έτσι πρωτοχρησιμοποιήθηκε η έννοια της καθολικότητας), είτε για καθολική μερική αναδρομική συνάρτηση. Καθολικό While program ω n (x, y) με είσοδο x = κωδικός ενός Goto προγράμματος π με n μεταβλητές. είσοδο y = κωδικός των n τιμών εισόδου [a 1, a 2,..., a n ] για τις n μεταβλητές του π και έξοδο την ίδια με την έξοδο του π[a 1, a 2,..., a n ]. Καθολική αναδρομική συνάρτηση φ e. @x, y φ e (x, y)» φ x (y) όπου το» σημαίνει: είτε είναι και οι δυο πλευρές ορισμένες και ίσες, είτε καμία πλευρά δεν είναι ορισμένη. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 134 / 310

Universal Machine II πρώτος σκελετός για ω n (x, y): label := 0; while label ď maxlab do εκτέλεσε εντολή της label; βρές επόμενη label end Δεύτερη προσέγγιση για ω n (x, y): label := 0; maxlab := decodesearch(x); while label ď maxlab do instruction := decode(x at label); label := execnext(instruction,y); y:= execvalue(instruction,y) end Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 135 / 310

Universal Machine III Εφαρμόζουμε την ακόλουθη κωδικοποίηση: Κωδικοποίηση για την είσοδο: xa 1, a 2,..., a n y ÞÑ C f (a 1, a 2,..., a n ) Για τις εντολές του GOTO προγράμματος: l i : assignment goto l j είναι: ÞÑ C f (0, i, C f (assignment), j) όπου η κωδικοποίηση για τις αναθέσεις, Αναθέσεις Κωδικοποίηση κενή εντολή C f (0, 0, 0) x i := 0 C f (1, i, 0) x i := x j C f (2, i, j) x i := x j + 1 x i := x j. 1 C f (3, i, j) Cf (4, i, j) l i : if x m ăą 0 then goto l j else goto l k ÞÑ C f (1, i, m, j, k) Έτσι τα προγράμματα goto θα κωδικοποιούνται ως εξής: goto πρόγραμμα με m εντολές ÞÑ C f (C f (εντολή 0 ),..., C f (εντολή m 1 )) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 136 / 310

Universal Machine IV Τρίτη βελτίωση για ω n (x, y): label:=0; maxlab := decodesearch(x); while label<= maxlab do z := D f label (x); if D f 0 (z) = 0 then ass := D f 2 (z); label := D f 3 (z) end else m := D f 2 (z); if m <> 0 then label := D f 3 (z) else label := Df 4 (z) end y := execvalue(ass, y) end Η execvalue αποκωδικοποιεί την ass και ανάλογα μεταβάλλει τις τιμές των μεταβλητών του προγράμματος. Τέταρτη βελτίωση για ω n (x, y): κ.ο.κ. Ασκηση. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 137 / 310

Θεώρημα Κανονικής μορφής Kleene I Παρατήρηση Λόγω της μηχανιστικής ισοδυναμίας των προγραμμάτων while και goto, έπεται η εξής πρόταση: Υπάρχει ένα καθολικό πρόγραμμα while ω n, που έχει μόνο ένα πραγματικό while βρόχο και ίσως πολλούς for βρόχους (ή if εντολές ), έτσι ώστε για κάθε πρόγραμμα while π και για κάθε είσοδο να ισχύει: ω n (κωδικός(π), είσοδος)» π(είσοδος) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 138 / 310

Θεώρημα Κανονικής μορφής Kleene II Αν μεταφράσουμε την προηγούμενη πρόταση σε ορολογία μερικών αναδρομικών συναρτήσεων, καταλήγουμε στο εξής: Θεώρημα κανονικής μορφής Kleene (Kleene normal form theorem) @n Dψ, T P P @f P PR n (PR n μερικές αναδρομικές συναρτήσεις με n ορίσματα) D δείκτης x: @ y f( y)» ψ(µz[t(x, y, z) = 0], x, y) όπου: f: αντιστοιχεί στο πρόγραμμα π y: αντιστοιχεί στην είσοδο του π x: αντιστοιχεί στον κώδικο του π (δείκτης της f) z: αντιστοιχεί στον αριθμό επαναλήψεων του βρόχου while στο ω n T: πρωταρχική αναδρομική συνάρτηση που αντιστοιχεί στο σώμα του while στο ω n ψ: πρωταρχική αναδρομική συνάρτηση που αντιστοιχεί στο τμήμα του ω n έξω από τον βρόχο while Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 139 / 310

Θεώρημα Κανονικής μορφής Kleene III Παρατηρήσεις: 1 T λέγεται συνήθως κατηγόρημα Κleene. 2 Αρκεί μια μόνο εφαρμογή του τελεστή µ για να περιγραφεί οποιαδήποτε μερική αναδρομική συνάρτηση. 3 Tο παραπάνω θεώρημα (ΚΝF) δίνει μια μηχανιστική απαρίθμηση tφ xu όλων των μερικών αναδρομικών συναρτήσεων. Σαν εφαρμογή θα δείξουμε το εξής (περίφημο) απότελεσμα αποκρισιμότητας: Θεώρημα To HP (πρόβλημα τερματισμού), είναι μη επιλύσιμο, δηλαδή η συνάρτηση g δεν είναι αναδρομική όπου: # 1, αν φ x (y) Ó g(x, y) = 0, αλλιώς Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 140 / 310

Θεώρημα Κανονικής μορφής Kleene IV Απόδειξη (διαγωνιοποίηση και εις άτοπον απαγωγή). Ας υποθέσουμε ότι η g ήταν αναδρομική. Ορίζουμε: # # φ x(x) + 1, αν g(x, x) = 1 φ x(x) + 1, αν φ x(x) Ó h(x) = = 0, αλλιώς 0, αλλιώς Η συνάρτηση h μπορεί να υπολογιστεί με τη βοήθεια της υπολογίσιμης g. Aρα, λόγω θέσης Church-Turing, η h είναι (ολική) αναδρομική. Aρα, λόγω της κανονικής μορφής Kleene, έχει κάποιο δείκτη (έστω) y, δηλαδή φ y = h (ολική συνάρτηση). Τότε όμως: # φ y (y) + 1, αν φ y (y) Ó φ y (y) = h(y) = = φ y (y) + 1, αφού @y : φ y (y) Ó 0, αλλιώς Άτοπο. Συνεπώς η g δεν είναι αναδρομική. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 141 / 310

Θεώρημα Κανονικής μορφής Kleene V Εναλλακτική απόδειξη του ίδιου με προγράμματα: Έστω μηχανιστική απαρίθμηση προγραμμάτων: π 0, π 1, π 2,.... Ας υποθέσουμε ότι υπάρχει πρόγραμμα halt(x, y) που αποκρίνεται αν το x-οστό πρόγραμμα με είσοδο y σταματάει. Το εξής πρόγραμμα (με είσοδο x): l 0: if halt(x, x) then goto l 0 (* loop forever *) else goto l 1 (* stop *) θα εμφανίζεται κάπου στην απαρίθμηση (έστω) με δείκτη i. Τότε όμως: π i (i) σταματάει ανν not halt(i, i) ανν π i (i) δεν σταματάει. Ατοπο. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 142 / 310