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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Κεφάλαιο 8 Υπολογίσιμες Συναρτήσεις Σύνοψη Εχοντας αναπτύξει τη θεωρία γύρω από τις Μηχανές Turing (ΜΤ) δεν περιοριζόμαστε πλέον μόνο στην ανάλυση προβλημάτων απόφασης γλωσσών (βλ. Ενότητα 1.2.3). Οι ΜΤ μπορούν να υπολογίζουν συναρτήσεις με πεδίο τιμών διαφορετικό από το σύνολο {Αποδοχή, Απόρριψη}. Στο κεφάλαιο αυτό ασχολούμαστε με τη θεωρία, που μελετά το τι ακριβώς υπολογίζεται και τι όχι, καθώς και με τις ιδιότητες συναρτήσεων διαφορετικών κλάσεων, ως προς την υπολογισιμότητά τους. Προαπαιτούμενη γνώση Για την κατανόηση του κεφαλαίου θα πρέπει ο αναγνώστης να έχει αφομοιώσει τις μαθηματικές έννοιες του Παραρτήματος I, καθώς και τους ορισμούς και τα αποτελέσματα των Κεφαλαίων 6 και Ορισμός Υπολογίσιμων Συναρτήσεων Ο Ορισμός 8.1 περιγράφει δύο είδη συναρτήσεων και προβλέπει στη δεύτερη περίπτωση, στοιχεία του πεδίου ορισμού για τα οποία δεν ορίζεται η τιμή της συνάρτησης. Ορισμός 8.1 Εστω f : X Y μία οποιαδήποτε συνάρτηση. Η f είναι μία πλήρης συνάρτηση στο πεδίο X, αν και μόνο αν η συνάρτηση ορίζεται για όλα τα στοιχεία του X. 243

2 244 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Η f είναι μία μερική συνάρτηση στο πεδίο X, αν και μόνο αν η συνάρτηση ορίζεται για μηδέν ή περισσότερα στοιχεία του X. Παράδειγμα 8.1 (Μερική συνάρτηση) Ας θεωρήσουμε τη συνάρτηση steps, που ορίζεται σε ένα πεδίο αποτελούμενο με στοιχεία της μορφής < M, w > και επιστρέφει τον αριθμό των βημάτων, που απαιτούνται για να τερματίσει η ΜΤ M όταν εκτελείται με είσοδο w. Η steps ορίζεται ως μερική συνάρτηση στο πεδίο {< M, w >}, αφού δεν ορίζεται για τις τιμές < M, w > με τις περιπτώσεις εκείνες, που η M δεν τερματίζει με είσοδο w. Αν όμως ορίζαμε τη steps σε ένα πιο περιορισμένο πεδίο, δηλαδή στο τότε θα ήταν πλήρης. {< M, w >: η ΜΤ M τερματίζει με είσοδο w} Ποιος είναι όμως ο λόγος για τον οποίο επιδιώκουμε να διευρύνουμε τον ορισμό του τι θεωρείται συνάρτηση και να συμπεριλάβουμε σε αυτόν και τις μερικές συναρτήσεις; Θα μπορούσαμε αντί για αυτό, να περιορίσουμε το πεδίο ορισμού τους, όπως κάναμε στο Παράδειγμα 8.1, ώστε ο ορισμός της συνάρτησης να είναι συμβατός με αυτό, που στα μαθηματικά λέμε συνάρτηση. Η διαφορά από την έννοια της συνάρτησης στα μαθηματικά είναι ότι στη Θεωρία Υπολογισμού μας ενδιαφέρει να γράφουμε προγράμματα, δηλαδή ΜΤ, που να μπορούν να υπολογίζουν συναρτήσεις. Το σύνολο των τιμών, στο οποίο αναγκαστικά ορίζεται η steps είναι η γλώσσα H από την Ενότητα 7.1 και η H δεν ανήκει στο D, αφού δεν είναι αποφασίσιμη γλώσσα. Άρα ασχέτως με τη ΜΤ, που θα σχεδιάσουμε για τον υπολογισμό της steps, δεν υπάρχει ΜΤ, που θα εξετάζει μία τιμή και θα μπορεί να αποφασίσει αν θα μπορούσε να εκτελεστεί η ΜΤ για τον υπολογισμό της steps. Ετσι λοιπόν η steps θα είναι μερική και όχι πλήρης συνάρτηση στο πεδίο εκείνο, στο οποίο θα εκτελείται το πρόγραμμα, που την υλοποιεί. Αυτό σημαίνει ότι ένα οποιοδήποτε τέτοιο πρόγραμμα θα αποτυγχάνει να τερματίσει για κάποιες εισόδους! Εστω M μία ΜΤ με αρχική κατάσταση s, τελική κατάσταση h, αλφάβητο εισόδου Σ και αλφάβητο ταινίας Γ. Εστω ότι η αρχική διαμόρφωση της M είναι (s, w), όπου w Σ. Ορίζουμε τη συνάρτηση M(w) = z, αν και μόνο αν (s, w) M (h, z), δηλαδή όταν η M ξεκινάει με είσοδο w Σ τερματίζει αφήνοντας τη z στην ταινία με την κεφαλή ανάγνωσης/εγγραφής στη θέση ακριβώς αριστερά της z.

3 8.1. ΟΡΙΣΜΟΣ ΥΠΟΛΟΓΙΣΙΜΩΝ ΣΥΝΑΡΤΗΣΕΩΝ 245 Στον Ορισμό 6.5 της Ενότητας 6.2, ορίσαμε το τι σημαίνει για μία συνάρτηση f να υπολογίζεται από μία ΜΤ M. Διευκρινίσαμε ότι όταν η f ορίζεται μόνο σε ένα υποσύνολο του Σ και υπάρχει ΜΤ M, που τερματίζει με τη σωστή τιμή για όλες τις εισόδους, που η f ορίζεται, τότε λέμε την f μερικώς υπολογίσιμη. Για όλες τις άλλες εισόδους, η M αποτυγχάνει να τερματίσει. Εστω f μία μερικώς υπολογίσιμη συνάρτηση με τιμές, που ορίζονται μόνο για ένα γνήσιο υποσύνολο του Σ. Μία οποιαδήποτε ΜΤ, που υπολογίζει την f θα αποτυγχάνει σε κάποιες εισόδους. Ας θεωρήσουμε τώρα μόνο τις συναρτήσεις f, που το πεδίο X στο οποίο ορίζονται είναι αποφασίσιμο, δηλαδή τις συναρτήσεις, που είναι πλήρεις στο αποφασίσιμο σύνολο X. Για μία τέτοια f, ορίζουμε τη νέα συνάρτηση f, ίδια με την f, εκτός από το πεδίο τιμών που θα περιλαμβάνει μία επιπλέον τιμή, την Error. Για οποιαδήποτε είσοδο z, που συμβαίνει η f να μην ορίζεται, έχουμε f (z) =Error. Άρα, δοθείσης μιας ΜΤ, που υπολογίζει την f, μπορούμε να κατασκευάσουμε μία νέα ΜΤ M, που υπολογίζει την f και τερματίζει πάντα. Αν η f ορίζεται στο σύνολο X, εφόσον το X ανήκει στο D, θα υπάρχει μία ΜΤ M X, που θα το αποφασίζει. Τώρα είμαστε σε θέση να δώσουμε έναν πιο ευρύ και χρήσιμο ορισμό για την υπολογισιμότητα: Ορισμός 8.2 Εστω μία συνάρτηση f, που ορίζεται σε ένα σύνολο X Σ, που αποφασίζεται από τη ΜΤ M X. Η f είναι υπολογίσιμη, αν και μόνο αν υπάρχει ΜΤ M, που τερματίζει για όλες τις εισόδους υπολογίζοντας μία συνάρτηση f ως εξής: M (x) = 1. Εκτέλεσε την M X με είσοδο x. 2. Αν απορρίπτεται, τότε Error. 3. Αν είναι αποδεκτή, τότε για μία κατάλληλη ΜΤ M, M(x) = f(x). Ισοδύναμα, μία συνάρτηση f είναι υπολογίσιμη, αν και μόνο αν είναι μερικώς υπολογίσιμη και το πεδίο ορισμού της είναι ένα αποφασίσιμο σύνολο. Ο Ορισμός 8.2 επεκτείνεται κατάλληλα και για τις συναρτήσεις f, που τα πεδία ορισμού και τιμών δεν είναι σύνολα συμβολοσειρών, όπως η συνάρτηση succ του Παραδείγματος 6.5. Σε αυτή την περίπτωση, η συνάρτηση f είναι υπολογίσιμη, αν και μόνο αν ισχύουν οι παρακάτω συνθήκες: Υπάρχουν αλφάβητα Σ και Σ, με μία κωδικοποίηση των στοιχείων του πεδίου ορισμού της f ως συμβολοσειρές του Σ και μία κωδικοποίηση των στοιχείων του πεδίου τιμών ως συμβολοσειρές του Σ.

4 246 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Υπάρχει μία υπολογίσιμη συνάρτηση f, τέτοια ώστε για κάθε w Σ : Αν w =< x > και x είναι ένα στοιχείο του πεδίου ορισμού της f, τότε f (w) =< f(x) > Αν η w δεν είναι η κωδικοποίηση κάποιου στοιχείου του πεδίου ορισμού της f (δεν είναι συντακτικά καλώς ορισμένη ή κωδικοποιεί μία τιμή για την οποία δεν ορίζεται η f), τότε f (w) =Error. Παράδειγμα 8.2 (Μερικώς υπολογίσιμη συνάρτηση) Στο Παράδειγμα 8.1, είδαμε ότι η συνάρτηση steps είναι πλήρης στο σύνολο {< M, w >: η ΜΤ M τερματίζει με είσοδο w}, αλλά είναι μερική συνάρτηση στο σύνολο {< M, w >}. Η steps διαπιστώνουμε πως είναι μερικώς υπολογίσιμη συνάρτηση, αφού υπολογίζεται από την παρακάτω ΜΤ τριών ταινιών: M steps (x) = 1. Αν η x δεν είναι συντακτικά μία καλώς ορισμένη συμβολοσειρά < M, w >, τότε επανέλαβε. 2. Αν η x είναι συντακτικά καλώς ορισμένη συμβολοσειρά < M, w >, τότε: 2.1 Αντέγραψε την M στην Ταινία Αντέγραψε την w στην Ταινία Γράψε 0 στην Ταινία Προσομοίωσε την M για είσοδο w στην Ταινία 2, διατηρώντας ένα μετρητή των βημάτων της M στην Ταινία 1. Η M steps τερματίζει, όταν η είσοδός της είναι καλώς ορισμένη και συμβαίνει η M να τερματίζει για είσοδο w. Αν η M steps τερματίσει, τότε βρίσκει την τιμή steps(< M, w >) στην Ταινία 1. Ομως από το Θεώρημα 6.1, υπάρχει μία ΜΤ M steps μιας ταινίας, που η έξοδός της είναι ίδια με την τιμή της M steps, που τελικά καταγράφεται στην Ταινία 1. Επομένως η M steps θα είναι μία απλή ΜΤ, που υπολογίζει τη steps και αυτό αποδεικνύει ότι η steps είναι μερικώς υπολογίσιμη. Ομως η steps δεν είναι υπολογίσιμη. Πιο συγκεκριμένα, αποδεικνύεται ότι δεν υπάρχει ΜΤ, που υπολογίζει τη συνάρτηση steps, η οποία ορίζεται ως εξής: steps (x) = Αν x δεν είναι συντακτικά καλώς ορισμένη < M, w >, τότε Error Αν x είναι συντακτικά καλώς ορισμένη, αλλά η steps(< M,

5 8.1. ΟΡΙΣΜΟΣ ΥΠΟΛΟΓΙΣΙΜΩΝ ΣΥΝΑΡΤΗΣΕΩΝ 247 w >) δεν ορίζεται (δηλ. η M δεν τερματίζει), τότε Error Αν η steps(< M, w >) ορίζεται (δηλ. η M τερματίζει), τότε steps(< M, w >). Αποδεικνύουμε ότι δεν υπάρχει τέτοια ΜΤ με αναγωγή από το H. Ας υποθέσουμε ότι υπάρχει και ας την ονομάσουμε M steps. Τότε θα μπορούσαμε να ορίσουμε μία ΜΤ D H, που θα αποφασίζει τη γλώσσα H = {< M, w >: η ΜΤ M τερματίζει για τη συμβολοσειρά εισόδου w}: D H (< M, w >) = 1. Εκτέλεσε την M steps (< M, w >). 2. Αν το αποτέλεσμα είναι Error τότε απορρίπτεται, διαφορετικά γίνεται δεκτή. Γνωρίζουμε όμως ότι δεν υπάρχει ΜΤ, που να αποφασίζει την H και άρα καταλήγουμε σε άτοπο. Επομένως δε μπορεί να υπάρχει η ΜΤ M steps και επομένως η steps δεν είναι υπολογίσιμη. Η συνάρτηση steps του Παραδείγματος 8.2 δεν είναι υπολογίσιμη, αλλά είναι τουλάχιστο μερικώς υπολογίσιμη. Υπάρχουν όμως και συναρτήσεις, που δεν είναι ούτε καν μερικώς υπολογίσιμες. Θεώρημα 8.1 (Μη υπολογίσιμες συναρτήσεις) Υπάρχουν συναρτήσεις, που δεν είναι μερικώς υπολογίσιμες. Η απόδειξη του Θεωρήματος 8.1 παραλείπεται. Είναι σαφές ότι έχουμε μία αντιστοιχία μεταξύ τριών διαφορετικών κλάσεων γλωσσών, που είναι οι D, SD/D και SD, με τρεις διακριτές κλάσεις υπολογισιμότητας συναρτήσεων, τις υπολογίσιμες, τις μερικώς υπολογίσιμες και τις μη υπολογίσιμες συναρτήσεις. Στο Παράδειγμα 8.3 εντάσσουμε ενδεικτικά προβλήματα, διατυπωμένα ως γλώσσες και συναρτήσεις, σε μία από τις προαναφερόμενες κλάσεις γλωσσών/συναρτήσεων. Παράδειγμα 8.3 (Γλώσσες και υπολογισιμότητα συναρτήσεων) Εξετάζουμε τρία ενδεικτικά προβλήματα και τα διατυπώνουμε με περιγραφή γλώσσας και συνάρτησης. Καθένα από τα προβλήματα, που εξετάζουμε, αντιστοιχεί σε γλώσσα/συνάρτηση διαφορετικής κλάσης. 1. Πρόβλημα:

6 248 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Δοθέντων τριών φυσικών αριθμών x, y και z ισχύει z = x y; Γλώσσα στο D (αποφασίσιμη): {< x > < y >=< z >: x, y, z {0,..., 9} + με x y = z} Συνάρτηση υπολογίσιμη: f : N N N, f(x, y) = x y 2. Πρόβλημα: Δοθείσης μιας ΜΤ M και μιας συμβολοσειράς w, τερματίζει η M σε n βήματα; Γλώσσα στο SD/D (ημιαποφασίσιμη, αλλά όχι αποφασίσιμη): {< M, w, n >: η ΜΤ M τερματίζει για την w σε n βήματα} Συνάρτηση μερικώς υπολογίσιμη: f : {< M, w >} N, f(< M, w >) = αν η ΜΤ M τερματίζει για την w, τότε αριθμός βημάτων της M πριν τερματίσει αλλιώς δεν ορίζεται 3. Πρόβλημα: Δοθείσης μιας ΜΤ M, τερματίζει η M για όλες τις συμβολοσειρές σε όχι περισσότερα από n βήματα; Γλώσσα στο SD (όχι ημιαποφασίσιμη): {< M, n >: η ΜΤ M τερματίζει για κάθε στοιχείο του Σ σε όχι περισσότερα από n βήματα} Συνάρτηση όχι (μερικώς) υπολογίσιμη: f : {< M >} N, f(< M >) = αν η M τερματίζει για όλες τις συμβολοσειρές, τότε μέγιστος αριθμός βημάτων της M πριν τερματίσει αλλιώς δεν ορίζεται

7 8.2. ΘΕΩΡ ΙΑ ΑΝΑΔΡΟΜΙΚ ΩΝ ΣΥΝΑΡΤ ΗΣΕΩΝ Θεωρία Αναδρομικών Συναρτήσεων Οι οικογένειες των γλωσσών και συναρτήσεων, που εξετάσαμε, μπορεί να αναφέρονται σε μέρος της σχετικής βιβλιογραφίας με διαφορετικές επωνυμίες και πιο συγκεκριμένα ως εξής: αναδρομικές γλώσσες αντί για αποφασίσιμες αναδρομικά απαριθμήσιμες γλώσσες αντί για ημιαποφασίσιμες μερικώς αναδρομικές συναρτήσεις αντί για μερικώς υπολογίσιμες αναδρομικές συναρτήσεις αντί για υπολογίσιμες Στην ενότητα αυτή υιοθετούμε τους όρους «μερικώς αναδρομικές» και «αναδρομικές» συναρτήσεις προκειμένου η παρουσίαση να είναι συμβατή με την επικρατούσα ορολογία για το συγκεκριμένο αντικείμενο. Αναδρομική συνάρτηση είναι μία συνάρτηση, που υπολογίζεται από μία ΜΤ, που τερματίζει για όλες τις εισόδους της. Μερικώς αναδρομική συνάρτηση είναι μία συνάρτηση, που μπορεί να υπολογίζεται από κάποια ΜΤ, αλλά μπορεί να πέφτει σε αέναη επανάληψη, αν υπάρχουν είσοδοι για τις οποίες η συνάρτηση δεν ορίζεται. Εχουμε επομένως ορίσει δύο σημαντικές κλάσεις συναρτήσεων με βάση ένα συγκεκριμένο υπολογιστικό πλαίσιο, τις ΜΤ. Στην ενότητα αυτή προσεγγίζουμε το ίδιο πρόβλημα από μία άλλη οπτική γωνία: μπορούμε να ορίσουμε τις ίδιες κλάσεις συναρτήσεων ανεξάρτητα α- πό ένα μοντέλο υπολογισμού, αλλά στηριζόμενοι σε καθιερωμένα μαθηματικά εργαλεία; Θα μπορούσαμε δηλαδή να έχουμε τον ορισμό ενός μικρού συνόλου αρχέγονων συναρτήσεων, μαζί με τη δυνατότητα να δημιουργούμε νέες συναρτήσεις χρησιμοποιώντας τις πράξεις της σύνθεσης και της αναδρομής; Πράγματι κάτι τέτοιο είναι εφικτό. Θα δούμε στη συνέχεια το πώς ορίζεται μία συγκεκριμένη κλάση συναρτήσεων, για την οποία προκύπτει ότι δοθείσας μιας κατάλληλης κωδικοποίησης αντιστοιχεί τελικά στην κλάση των αναδρομικών συναρτήσεων. Επειδή ακριβώς αυτή η θεωρία έχει αναπτυχθεί ανεξάρτητα από ένα μοντέλο υπολογισμού, για αυτό το λόγο έχουμε την ύπαρξη μια παράλληλης ορολογίας για τις ίδιες κλάσεις συναρτήσεων. Στο πλαίσιο αυτής της θεωρίας, το πεδίο ορισμό της κάθε συνάρτηση είναι μία διατεταγμένη n-άδα φυσικών αριθμών και το πεδίο τιμών είναι το σύνολο των φυσικών αριθμών. Καθώς οι αριθμοί μπορούν να αναπαρασταθούν από συμβολοσειρές και οι συμβολοσειρές μπορούν να αναπαρασταθούν από αριθμούς, δεν υπάρχει κάποια θεμελιώδης ασυμβατότητα μεταξύ της θεωρίας, στην οποία θα αναφερθούμε και της θεωρίας των ΜΤ, που επεξεργάζονται συμβολοσειρές.

8 250 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Στοιχειώδεις αναδρομικές συναρτήσεις Ορισμός 8.3 (Αρχέγονες συναρτήσεις) Ορίζουμε ως αρχέγονες ή αρχικές τις παρακάτω συναρτήσεις από το N... N στο N: τις σταθερές συναρτήσεις: για k 1 και a 0, Ca k (X) = a για κάθε X Nk τη συνάρτηση succ : N N: succ(n) = n + 1 την οικογένεια των συναρτήσεων προβολής: για 0 < j k, p k j (x 1, x 2,..., x k ) = x j Ορισμός 8.4 (Πράξεις μεταξύ συναρτήσεων) Ορίζουμε τις παρακάτω πράξεις μεταξύ συναρτήσεων: σύνθεση της f : N k N με τις g 1, g 2,..., g k : N m N: h(x) = f(g 1 (X),..., g k (X)) για κάθε X N m στοιχειώδη αναδρομή της f : N n+1 N ως προς τις g : N n N και h : N n+2 N, για n 0 (μηδέν μεταβλητές έχει η σταθερή συνάρτηση), που ορίζεται από τους τύπους: f(x, 0) = g(x) για κάθε X N n και κάθε k 0. f(x, k + 1) = h(x, k, f(x, k)) Ορισμός 8.5 (Στοιχειώδεις αναδρομικές συναρτήσεις) Το σύνολο των στοιχειωδών αναδρομικών συναρτήσεων ορίζεται ως εξής: 1. Ολες οι αρχέγονες συναρτήσεις είναι στοιχεία του. 2. Για κάθε k 0 και m 0, αν f : N k N και g 1,..., g k : N m N είναι στοιχεία του συνόλου, τότε η συνάρτηση f(g 1, g 2,..., g k ), που λαμβάνεται από τη σύνθεση της f με τις g 1,..., g k είναι επίσης ένα στοιχείο του συνόλου.

9 8.2. ΘΕΩΡΙΑ ΑΝΑΔΡΟΜΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ Για κάθε n 0 και κάθε συνάρτηση g : N n N και h : N n+2 N του συνόλου των στοιχειωδών αναδρομικών συναρτήσεων, η συνάρτηση f : N n+1 N, που ορίζεται ως προς τις g και h με στοιχειώδη αναδρομή ανήκει επίσης στο σύνολο των στοιχειωδών αναδρομικών συναρτήσεων. Με άλλα λόγια, το σύνολο των στοιχειωδών αναδρομικών συναρτήσεων είναι το μικρότερο σύνολο συναρτήσεων, που περιέχει τις αρχέγονες συναρτήσεις και είναι κλειστό ως προς τις πράξεις της σύνθεσης και της στοιχειώδους αναδρομής. Γενικά, μπορούμε να δείξουμε ότι μία συνάρτηση f είναι στοιχειώδης αναδρομική διατυπώνοντας μία παραγωγή στοιχειώδους αναδρομής: ακολουθία από συναρτήσεις f 0, f 1,... f j τέτοια ώστε f j = f και κάθε f i στην ακολουθία, είτε είναι αρχέγονη, είτε παράγεται από τις προηγούμενες συναρτήσεις της ακολουθίας με σύνθεση ή στοιχειώδη αναδρομή. Παράδειγμα 8.4 (Αριθμητική με στοιχειώδεις αναδρομικές συναρτήσεις) Οι συναρτήσεις Add : N 2 N και Mult : N 2 N ορίζονται από τους παρακάτω τύπους: Add(x, y) = x + y Mult(x, y) = x y Τόσο για την Add, όσο και για την Mult μπορούμε να έχουμε μία παραγωγή εργαζόμενοι αντίστροφα με σκοπό να βρίσκουμε απλούστερες συναρτήσεις από τις οποίες μπορούμε να πάρουμε τη συνάρτηση, που μας ενδιαφέρει με στοιχειώδη αναδρομή. Add(x, 0) = p 1 1 (x) = x Add(x, k + 1) = (x + k) + 1 = succ(add(x, k)) = succ(p 3 3 (x, k, Add(x, k))) Επομένως, μία παραγωγή στοιχειώδους αναδρομής για την Add σχηματίζεται από τις τρεις αρχέγονες συναρτήσεις p 1 1, succ και p3 3, καθώς και μία συνάρτηση f 3, που λαμβάνεται ως σύνθεση των succ και p 3 3, και της Add, που προκύπτει από τις p 1 1 και f 3 με στοιχειώδη αναδρομή. Σχετικά με τη συνάρτηση M ult, έχουμε: Mult(x, 0) = Mult(x, k + 1) = 0 = C0 1(x) x k + x = Add(x, Mult(x, k)) Στην τελευταία έκφραση, το πρώτο από τα ορίσματα της συνάρτησης προκύπτει ως p 3 1 (x, k, Mult(x, k)) και το δεύτερο ως p3 3 (x, k, Mult(x, k)). Χρησιμοποιώντας λοιπόν αυτή την προσέγγιση, ξεκινάμε με την παραγωγή της Add και συνεχίζουμε με την C0 1 και τη συνάρτηση f, που δίνεται ως σύνθεση

10 252 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ της Add με τις p 3 1 και p3 3 και ολοκληρώνουμε με την Mult, που προκύπτει από τις C0 1 και f με στοιχειώδη αναδρομή. Είναι φανερό ότι οι αρχέγονες συναρτήσεις είναι υπολογίσιμες, καθώς επίσης και ότι το σύνολο των υπολογίσιμων συναρτήσεων είναι κλειστό ως προς τις πράξεις της σύνθεσης και της στοιχειώδους αναδρομής. Αυτό συμβαίνει, επειδή μπορούμε να κατασκευάσουμε ΜΤ, οι οποίες υπολογίζουν τις συναρτήσεις, που προκύπτουν από αυτές τις πράξεις, υπό τη προϋπόθεση βέβαια ότι ξεκινάμε με υπολογίσιμες συναρτήσεις. Οι αλγόριθμοι δεν παρουσιάζουν κάποια δυσκολία στην κατασκευή και για αυτό καταλήγουμε στο παρακάτω αποτέλεσμα, ως συνέπεια της θέσης των Church-Turing: Θεώρημα 8.2 (Υπολογισιμότητα στοιχ. αναδρ. συναρτήσεων) Κάθε στοιχειώδης αναδρομική συνάρτηση είναι πλήρης και υπολογίσιμη. Εχει επίσης αποδειχθεί με διαγωνιοποίηση [1], [2] ότι δεν είναι όλες οι πλήρεις και υπολογίσιμες συναρτήσεις στοιχειώδεις αναδρομικές µ-αναδρομικές συναρτήσεις Αφού λοιπόν υπάρχουν υπολογίσιμες συναρτήσεις, που δεν είναι στοιχειώδεις αναδρομικές, επιβάλλεται να συνεχίσουμε την προσπάθεια για να ορίσουμε α- κριβώς εκείνες τις συναρτήσεις, που υπολογίζονται από τις ΜΤ. Θα επικεντρωθούμε σε μία άλλη οικογένεια συναρτήσεων, που ορίζονται χρησιμοποιώντας τις ίδιες βασικές συναρτήσεις, που χρησιμοποιήσαμε για να ορίσουμε τις στοιχειώδεις αναδρομικές. Η σύνθεση και η στοιχειώδης αναδρομή εξακολουθούν να συμπεριλαμβάνονται στις πράξεις, που επιτρέπονται, αλλά αυτή τη φορά θα έχουμε στη διάθεσή μας και ένα νέο τρόπο για να δημιουργούμε συναρτήσεις, την ελαχιστοποίηση. Ορισμός 8.6 (Ελαχιστοποίηση συνάρτησης) Η ελαχιστοποίηση μιας συνάρτησης f : N k+1 N δίνεται από τη συνάρτηση min f : N k N, που ορίζεται, όπως παρακάτω: min f (X) = z def f(z, X) = 0 και f(i, X) > 0 για i = 0,..., z 1 Διαισθητικά, η ελαχιστοποίηση αναζητά, ξεκινώντας από το 0 αυξητικά, το μικρότερο όρισμα της συνάρτησης, για το οποίο επιστρέφεται η τιμή 0. Αν δεν

11 8.2. ΘΕΩΡΙΑ ΑΝΑΔΡΟΜΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ 253 υπάρχει τέτοιο όρισμα, τότε η αναζήτηση δεν τερματίζει ποτέ! Αν λοιπόν η f είναι υπολογίσιμη, τότε μπορούμε να κατασκευάσουμε μία ΜΤ M minf, για τον υπολογισμό της min f, που θα λειτουργεί ως εξής: M minf (X) = 1. i = while f(i, X) > 0 do: i = i return i. Το πρόβλημα είναι ότι αν δεν υπάρχει κατάλληλο i, η M minf δε θα τερματίσει ποτέ. Για να μείνουμε προσηλωμένοι στο στόχο μας, που είναι η ανάπτυξη μιας θεωρίας για υπολογίσιμες συναρτήσεις, θα επικεντρωθούμε σε μία κλάση συναρτήσεων, για την οποία η M minf τερματίζει πάντα: μία συνάρτηση f λέμε ότι είναι ελαχιστοποιήσιμη, αν και μόνο αν για κάθε X N k υπάρχει ένα z, τέτοιο ώστε f(z, X) = 0. Ορισμός 8.7 (µ-αναδρομικές συναρτήσεις) Ορίσουμε το σύνολο των µ-αναδρομικών συναρτήσεων να είναι το μικρότερο σύνολο συναρτήσεων από το N k στο N, που περιλαμβάνει τις αρχέγονες συναρτήσεις του Ορισμού 8.5 και είναι κλειστός ως προς: τη σύνθεση συναρτήσεων, τη στοιχειώδη αναδρομή και την ελαχιστοποίηση συναρτήσεων ελαχιστοποιήσιμων. Η διαφορά μεταξύ των στοιχειωδών αναδρομικών συναρτήσεων και των µ- αναδρομικών συναρτήσεων είναι διαισθητικά η εξής: Η επανάληψη στον υπολογισμό μιας στοιχειώδους αναδρομικής συνάρτησης είναι πάντα φραγμένη. Ενας τέτοιος υπολογισμός μπορεί να υ- λοποιηθεί με ένα βρόχο for, που θα εκτελείται για x k βήματα, όπου x k είναι η τιμή του τελευταίου ορίσματος της συνάρτησης. Ετσι, για να υπολογιστεί η Mult(2, 3) θα πρέπει να κληθεί η Add τρεις φορές (βλ. Παράδειγμα 8.4). Ο υπολογισμός μιας µ-αναδρομικής συνάρτησης απαιτεί την εκτέλεση ε- νός βρόχου for, όπως αυτός για τη ΜΤ M minf, για τον οποίο δεν υπάρχει εκ των προτέρων γνωστό φράγμα, που περιορίζει τον αριθμό των απαιτούμενων βημάτων.

12 254 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Θεώρημα 8.3 (Ισοδυναμία µ-αναδρομής και υπολογισιμότητας) Μία συνάρτηση είναι µ-αναδρομική αν και μόνο αν είναι υπολογίσιμη. Απόδειξη: Πρέπει να αποδείξουμε και τις δύο κατευθύνσεις: Κάθε µ-αναδρομική συνάρτηση είναι υπολογίσιμη. Για να αποδειχθεί αυτό θα πρέπει να κατασκευαστούν ΜΤ για κάθε μία από τις αρχέγονες συναρτήσεις και τις πράξεις των µ-αναδρομικών συναρτήσεων. Κάθε υπολογίσιμη συνάρτηση είναι µ-αναδρομική. Για να αποδειχθεί αυτό θα πρέπει να κατασκευαστούν µ-αναδρομικές συναρτήσεις, που θα μπορούν να εκτελέσουν την κάθε μία από τις λειτουργίες, που εκτελεί μία ΜΤ. Στο σημείο αυτό, παραλείπουμε τις λεπτομέρειες της απόδειξης, που δεν παρουσιάζει κάποια ιδιαίτερη δυσκολία. Οι μερικές µ-αναδρομικές συναρτήσεις ορίζονται, όπως και οι µ- αναδρομικές συναρτήσεις στον Ορισμό 8.7, χωρίς όμως να γίνεται διάκριση στις συναρτήσεις για τις οποίες εφαρμόζεται η πράξη της ελαχιστοποίησης. Θεώρημα 8.4 (Μερικώς µ-αναδρ. συναρτήσες και υπ/μότητα) Μία συνάρτηση είναι μερικώς µ-αναδρομική, αν και μόνο αν είναι μερικώς υπολογίσιμη. 8.3 Θεώρημα Αναδρομής/Σταθερού Σημείου Στην ενότητα αυτή θα μας απασχολήσει το θεμελιώδες ερώτημα του κατά πόσο ένα πρόγραμμα μπορεί να γνωρίζει τον εαυτό του. Το πρόβλημα αυτό είναι γνωστό στους προγραμματιστές ως ανάκλαση (reflection) και μία από τις εφαρμογές του είναι η σχεδίαση ιών. Οι ιοί είναι προγράμματα, που αντιγράφουν τον εαυτό τους, εγγράφουν δηλαδή μία εικόνα του εκτελέσιμου κώδικά τους από έναν υπολογιστή σε ένα άλλο. Για να αντιληφθούμε πιο εύκολα το πρόβλημα, ας θεωρήσουμε την απλή περίπτωση ενός προγράμματος, που πρέπει να εκτυπώσει ένα αντίγραφο του εαυτού του. Τα προγράμματα, που εκτυπώνουν τον εαυτό τους είναι γνωστά με τον όρο quines, προς τιμή του σημαντικού φιλοσόφου και επιστήμονα της Λογικής Willard Van Orman Quine. Μία άμεση προσέγγιση θα ήταν να έχουμε μία μεταβλητή δείκτη στη διεύθυνση του πρώτου byte από τον κώδικα του προγράμματος και στη συνέχεια

13 8.3. ΘΕΩΡΗΜΑ ΑΝΑΔΡΟΜΗΣ/ΣΤΑΘΕΡΟΥ ΣΗΜΕΙΟΥ 255 να μετακινείται ο δείκτης με ένα επαναληπτικό βρόχο, διατρέχοντας και τυπώνοντας τα περιεχόμενα των διευθύνσεων, στις οποίες είναι αποθηκευμένος ο κώδικας. Αν και αυτή προσέγγιση ακούγεται εφικτή, μπορεί εύκολα να αντιμετωπιστεί. Τα λειτουργικά συστήματα καταγράφουν πληροφορίες για το αν μία περιοχή μνήμης είναι εκτελέσιμη ή αν είναι μνήμη ανάγνωσης/εγγραφής. Ετσι, σε μία περιοχή της μνήμης μπορούμε είτε να έχουμε ένα εκτελέσιμο πρόγραμμα, είτε εκεί να υπάρχουν δεδομένα. Για να εμποδιστεί λοιπόν ένα πρόγραμμα ιού από το να διαβάσει τον εαυτό του, θα μπορούσε η περιοχή του κώδικα του να χρησιμοποιείται αποκλειστικά ως εκτελέσιμη περιοχή. Με αυτό τον τρόπο, απαγορεύεται η εκτέλεση εντολών, που προσπελαύνουν μία περιοχή του προγράμματος, για να ανακτήσουν τα περιεχόμενα της ως δεδομένα, που στη συνέχεια μπορεί να αντιγράφονται. Ετσι, είναι δυνατό τα προγράμματα να εμποδιστούν από το να διαβάσουν τα bytes του κώδικα τους. Τίθεται λοιπόν το ερώτημα, αν οι ιοί των υπολογιστών μπορούν να προσπελαύνουν τον εκτελέσιμο κώδικά τους με άλλο τρόπο. Η απάντηση στο ερώτημα είναι καταφατική και οδηγεί σε μία εφαρμογή του Θεωρήματος της Αναδρομής, που θα εξηγήσουμε στη συνέχεια. Ας ξεκινήσουμε την προσπάθεια να γράψουμε ένα quine για το πολύ απλό πρόγραμμα: PRINT Hello Θέλουμε δηλαδή ένα πρόγραμμα, που θα εκτυπώνει το παραπάνω πρόγραμμα. Ας εξετάσουμε την εξής λύση: PRINT PRINT Hello Αυτό όμως δεν είναι ένα quine, γιατί δεν εκτυπώνει τον εαυτό του, αλλά είναι ένα πρόγραμμα μεγαλύτερο από το αρχικό πρόγραμμα. Είναι λοιπόν σαφές ότι με μία επιπλέον PRINT, τελικά παίρνουμε ένα διαφορετικό πρόγραμμα από αυτό που θέλουμε να εκτυπώσουμε και αυτό δεν είναι ένα quine. Ας δούμε λοιπόν τα βήματα μιας διαφορετικής προσέγγισης, που οδηγεί στο επιθυμητό αποτέλεσμα. Χρειαζόμαστε ένα πρόγραμμα, που θα αποτελείται από μία εντολή εκχώρησης και μία εντολή PRINT: x... PRINT x που στη συνέχεια θα δούμε ποια είναι η συμβολοσειρά, που πρέπει να εκχωρηθεί ως τιμή στη μεταβλητή x. Ενα quine για αυτό το πρόγραμμα θα είχε τη μορφή:

14 256 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ x... PRINT x PRINT x PRINT PRINT x όπου οι τρεις πρώτες PRINT τυπώνουν την εντολή εκχώρησης, δηλαδή ένα μέρος του προγράμματος και η τελευταία PRINT τυπώνει την τιμή της x, που μέχρι στιγμής δεν έχουμε ορίσει. Το πρόγραμμα αυτό θα τυπώνει τον εαυτό του, μόνο αν η τιμή της μεταβλητής x είναι η συμβολοσειρά, που αποτελείται από τις τέσσερις εντολές PRINT. Αν λοιπόν στην εντολή εκχώρησης γράψουμε στη θέση των... τις τέσσερις εντολές PRINT, τότε θα έχουμε ένα quine. Ας εξετάσουμε τώρα το πρόβλημα της σχεδίασης μιας ΜΤ quine. Ονομάζουμε P w μία απλή ΜΤ, που απλά τυπώνει τη συμβολοσειρά w Σ στην ταινία της και συμβολίζουμε με < P w > μία κωδικοποίηση της P w ως συμβολοσειρά. Η σχεδίαση της P w είναι εύκολη: αν η w έχει μήκος n, τότε αρκεί μία ακολουθία από n μεταβάσεις, που η κάθε μία εγγράφει στην ταινία το αντίστοιχο σύμβολο της w. Η τελευταία κατάσταση θα πρέπει να είναι τελική. Κατά συνέπεια, η συνάρτηση g : Σ Σ με g(w) =< P w >, που για δοθείσα συμβολοσειρά w, επιστρέφει ως αποτέλεσμα μία κωδικοποίηση < P w > της ΜΤ P w είναι μία υπολογίσιμη συνάρτηση. Η ΜΤ quine θα λειτουργεί σε δύο βήματα. Στο πρώτο βήμα εκτελείται ο υπολογισμός g(x) εγγράφοντας πάνω στην ταινία τη συμβολοσειρά x, όπου x είναι η κωδικοποίηση της ΜΤ, που εφαρμόζεται στο δεύτερο βήμα. Οταν αρχίζει η εκτέλεση του δεύτερου βήματος, υπάρχει ήδη πάνω στην ταινία η συμβολοσειρά x, που αντιγράφεται στις θέσεις της ταινίας δεξιά από την x. Στη συνέχεια καλείται η g(x), που εγγράφει στη θέση της πρώτης x την κωδικοποίηση της ΜΤ του πρώτου βήματος, δηλαδή της ΜΤ που εγγράφει x στην ταινία. Τελικά ποια πρέπει να είναι η συμβολοσειρά x, για να λειτουργεί η περιγραφείσα ΜΤ ως ένα quine; Η απάντηση είναι εύκολη: η x θα είναι η κωδικοποίηση της ΜΤ του δεύτερου βήματος. Ετσι, ως αποτέλεσμα του υπολογισμού, που περιγράψαμε, θα έχουμε πάνω στην ταινία στο αριστερό μέρος την κωδικοποίηση της ΜΤ του πρώτου βήματος και ακριβώς στα δεξιά την κωδικοποίηση της ΜΤ του δεύτερου βήματος. Θα έχουμε δηλαδή μία ΜΤ, που λειτουργεί σε δύο βήματα, εγγράφοντας πάνω στην ταινία την κωδικοποίηση του εαυτού της. Μία ΜΤ που γνωρίζει τον εαυτό της, όπως το quine που περιγράψαμε, μπορεί να χρησιμοποιηθεί για προβλήματα όπως: Καταμέτρηση του αριθμού των καταστάσεων της ΜΤ. Ελεγχος του αν η τελική κατάσταση προσεγγίζεται από την αρχική κα-

15 8.3. ΘΕΩΡΗΜΑ ΑΝΑΔΡΟΜΗΣ/ΣΤΑΘΕΡΟΥ ΣΗΜΕΙΟΥ 257 τάσταση της ΜΤ. Ελεγχος του αν η ΜΤ αποδέχεται μία συμβολοσειρά w. Το τελευταίο πρόβλημα είναι μη αποφασίσιμο και για αυτό χρειάζεται προσοχή στην προσομοίωση μιας τέτοιας ΜΤ. Θα μπορούσαμε βέβαια να διατυπώσουμε και πολλά άλλα προβλήματα, αλλά σε όλες τις περιπτώσεις χρειάζεται ο υπολογισμός μιας συνάρτησης της μορφής: t(< M >, w) και επομένως η σχεδίαση μιας ΜΤ, που θα δέχεται ως είσοδο την κωδικοποίηση μιας ΜΤ M και ενδεχομένως επιπλέον πληροφορίες, όπως για παράδειγμα μία συμβολοσειρά w. Αν υπήρχε μία τέτοια ΜΤ, τότε θα μπορούσαμε να περάσουμε ως είσοδο σε αυτή τη μηχανή την κωδικοποίηση του εαυτού της, για να υπολογιστεί η: t(< t >, w) και να δοθεί λύση σε κάποιο πρόβλημα, όπως αυτά που αναφέραμε. Υπάρχει περίπτωση να επιτευχθεί αυτό με άλλο τρόπο, χωρίς να χρειαστεί η ΜΤ να δεχθεί ως είσοδο μία κωδικοποίηση του εαυτού της; Η απάντηση είναι καταφατική και δίνεται από το Θεώρημα της Αναδρομής, που στην ουσία μας λέει ότι αν υπάρχει μία ΜΤ για τη συνάρτηση t, τότε θα υπάρχει και μία άλλη ΜΤ, που κάνει ότι και η t, αλλά υπολογίζει την κωδικοποίηση του εαυτού της αντί απλά να δέχεται την κωδικοποίηση ως είσοδο. Θεώρημα 8.5 (Θεώρημα της Αναδρομής) Εστω μία ΜΤ T, που υπολογίζει μία συνάρτηση t : Σ Σ Σ. Για κάθε τέτοια ΜΤ υπάρχει μία άλλη ΜΤ R, που κάνει ότι ακριβώς κάνει η t, όταν αυτή εφαρμόζεται σε μία κωδικοποίηση του εαυτού της. Η νέα αυτή ΜΤ, έστω R θα υπολογίζει τη συνάρτηση r : Σ Σ : για οποιοδήποτε w Σ. r(w) = t(< R >, w) Παραλείπουμε την απόδειξη του Θεωρήματος της Αναδρομής και εστιάζουμε σε μια σημαντική συνέπεια, που αυτό έχει. Στο Παράδειγμα 8.2 χρησιμοποιήσαμε ψευδογλώσσα για την περιγραφή ΜΤ και αυτό είναι μία πρακτική, που η εγκυρότητά της τεκμηριώθηκε ως συνέπεια του Θεωρήματος 6.4 περί προσομοίωσης υπολογιστή με ΜΤ. Αυτό λοιπόν που μας λέει το Θεώρημα της Αναδρομής

16 258 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ είναι ότι στον ψευδοκώδικα μιας ΜΤ μπορούμε βάσιμα να συμπεριλάβουμε μία εντολή < SELF >, η οποία θα επιστρέφει μία κωδικοποίηση της ίδιας ΜΤ ως συμβολοσειρά. Εφόσον λοιπόν υποστηρίζεται από την ψευδογλώσσα αυτή η δυνατότητα, το πρόγραμμα quine, που μελετήσαμε θα μπορούσε να γραφεί με τον εξής απλό τρόπο: x < SELF > PRINT x που σύμφωνα με το Θεώρημα της Αναδρομής είναι μία καθόλα έγκυρη περιγραφή ΜΤ. Στην Ενότητα 8.4 θα δούμε μία ενδιαφέρουσα εφαρμογή της εντολής < SELF > στην απόδειξη της μη αποφασισιμότητας ενός ποβλήματος για ΜΤ. Το Θεώρημα της Αναδρομής έχει διατυπωθεί επίσης και σε μία άλλη μορφή, που αναφέρεται σε σταθερό σημείο μιας συνάρτησης. Ορισμός 8.8 (Σταθερό σημείο συνάρτησης) Ενα σταθερό σημείο για μία συνάρτηση είναι κάποια τιμή, που παραμένει αμετάβλητη όταν έχουμε επαναλαμβανόμενη εφαρμογή της συνάρτησης για την τιμή αυτή. Παράδειγμα 8.5 (Σταθερό σημείο συνάρτησης) Θεωρήστε τη συνάρτηση f, που ορίζεται από τον πίνακα: x f(x) και απεικονίζεται στο γράφο του Σχήματος Σχήμα 8.1: Συνάρτηση με σταθερό σημείο Η τιμή 4 είναι ένα σταθερό σημείο της συνάρτησης f.

17 8.4. ΕΦΑΡΜΟΓ ΕΣ 259 Το Θεώρημα Αναδρομής Σταθερού Σημείου αναφέρεται σε υπολογίσιμες συναρτήσεις, που ορίζονται και παίρνουν τιμές στο σύνολο των συμβολοσειρών, που κωδικοποιούν ΜΤ. Κάθε συνάρτηση της οποίας το πεδίο ορισμού και το πεδίο τιμών είναι το ίδιο σύνολο λέγεται μετασχηματισμός. Το θεώρημα λέει ότι για οποιονδήποτε μετασχηματισμό κωδικοποιήσεων ΜΤ υπάρχει πάντα μία ΜΤ, που παραμένει αναλλοίωτη από το μετασχηματισμό. Θεώρημα 8.6 (Θεώρημα Αναδρομής Σταθερού Σημείου) Εστω μία ΜΤ T, που υπολογίζει μία συνάρτηση t : Σ Σ Σ. Υπάρχει μία κατάλληλη ΜΤ F, τέτοια ώστε η t(< F >) να είναι ισοδύναμη με την F. 8.4 Εφαρμογές Ως εφαρμογή του Θεωρήματος 8.5 της Αναδρομής θα αποδείξουμε ότι η γλώσσα: MT acc = {< M, w > η M είναι μία ΜΤ που αποδέχεται την w} είναι μη αποφασίσιμη. Η απόδειξη γίνεται με εις άτοπο απαγωγή. Ας υποθέσουμε ότι υπάρχει μία ΜΤ, έστω H, που αποφασίζει τη γλώσσα MT acc. Τότε θα μπορούσαμε να ορίσουμε τη ΜΤ B, που για μία είσοδο w λειτουργεί ως εξής: B = 1. x < SELF >. 2. Εκτέλεσε την H για είσοδο x, w ως εξής: Αν η H αποδέχεται, τότε η w απορρίπτεται. Αν η H απορρίπτει, τότε η w γίνεται δεκτή. Με άλλα λόγια, ορίσαμε την B έτσι ώστε για είσοδο w να κάνει το αντίθετο από αυτό, που λέει η H ότι κάνει η B. Εκμεταλλευόμενοι λοιπόν το Θεώρημα της Αναδρομής φτάσαμε σε ένα άτοπο, που σημαίνει ότι δεν υπάρχει ΜΤ H, που αποφασίζει την MT acc.

18 260 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Βιβλιογραφία - Αναφορές [1] Harry R. Lewis and Christos H. Papadimitriou. Στοιχεία Θεωρίας Υπολογισμού. Εκδόσεις Κριτική, [2] Elaine A. Rich. Automata Theory and Applications. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, ISBN

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

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k )) Υπολογισμοί με Μ.Τ. Εστω M = (K, Σ, δ, s, {y, n}) μια Μ.Τ. Κάθε συνολική κατάσταση τερματισμού της οποίας η κατάσταση τερματισμού είναι το y, θα ονομάζεται συνολική κατάσταση αποδοχής, ενώ αν η κατάσταση

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 21: Υπολογισμοί ΜΤ - Αναδρομικές Γλώσσες Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 24: Μη Ντεντερμινιστικές Μηχανές Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 8: Πεπερασμένα Αυτόματα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

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

Μη επιλυσιμότητα I. Απόδειξη. Ορίζουμε # # = Μη επιλυσιμότητα I Θεώρημα Το TOT (πρόβλημα ολικής συνάρτησης) είναι μη επιλύσιμο, δηλαδή η f δεν είναι αναδρομική όπου: 1, αν φ x είναι ολική f(x) = 0, αλλιώς Απόδειξη. Ορίζουμε h(x) = φ x (x) + 1, αν

Διαβάστε περισσότερα

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

Πεπερασμένος έλεγχος καταστάσεων Κεφάλαιο 6 Μηχανές Turing Σύνοψη Οι Μηχανές Turing (ΜΤ) δεν είναι απλά μία ακόμη μηχανή αναγνώρισης για κάποια ευρύτερη οικογένεια γλωσσών από τις γλώσσες, που γίνονται δεκτές από τα Αυτόματα Στοίβας.

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { n 3 } (α) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q,

Διαβάστε περισσότερα

214 ΚΕΦΑΛΑΙΟ 7. ΕΠΙΛΥΣΙΜΟΤΗΤΑ - ΜΗ ΕΠΙΛΥΣΙΜΟΤΗΤΑ 7.1 Το Πρόβλημα του Τερματισμού Θεώρημα 7.1 (Πρόβλημα του Τερματισμού - ημιαπόφαση) Η γλώσσα του Προβ

214 ΚΕΦΑΛΑΙΟ 7. ΕΠΙΛΥΣΙΜΟΤΗΤΑ - ΜΗ ΕΠΙΛΥΣΙΜΟΤΗΤΑ 7.1 Το Πρόβλημα του Τερματισμού Θεώρημα 7.1 (Πρόβλημα του Τερματισμού - ημιαπόφαση) Η γλώσσα του Προβ Κεφάλαιο 7 Επιλυσιμότητα - Μη επιλυσιμότητα Σύνοψη Στα προηγούμενα κεφάλαια επικεντρωθήκαμε σε επιλύσιμα προβλήματα και μελετήσαμε υπολογιστικά μοντέλα με δυνατότητες, που συνεχώς διευρύναμε. Το τελευταίο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

Διαβάστε περισσότερα

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

t M (w) T ( w ) O( n) = O(n 2 ) Κεφάλαιο 9 Υπολογιστική Πολυπλοκότητα Σύνοψη Πέρα από το ερώτημα του αν για ένα πρόβλημα υπάρχει Μηχανή Turing, που το επιλύει, μας απασχολεί επίσης και το ερώτημα του αν ένα πρόβλημα είναι «πρακτικά»

Διαβάστε περισσότερα

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

L A P. w L A f(w) L B (10.1) u := f(w) Κεφάλαιο 10 NP -πληρότητα Σύνοψη Οι γλώσσες στην κλάση πολυπλοκότητας P μπορούν να αποφασίζονται σε πολωνυμικό χρόνο. Οι επιστήμονες πιστεύουν, αν και δε μπορούν να το αποδείξουν ότι η P είναι ένα γνήσιο

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει την ακόλουθη γλώσσα. { a n b n+2 c n 2 n 2 } Λύση: H ζητούμενη μηχανή Turing μπορεί να

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα {1010 2 10 3 10 n 1 10 n 1 n 1}. (β) Να διατυπώσετε

Διαβάστε περισσότερα

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

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

Αλγόριθμοι για αυτόματα Κεφάλαιο 8 Αλγόριθμοι για αυτόματα Κύρια βιβλιογραφική αναφορά για αυτό το Κεφάλαιο είναι η Hopcroft, Motwani, and Ullman 2007. 8.1 Πότε ένα DFA αναγνωρίζει κενή ή άπειρη γλώσσα Δοθέντος ενός DFA M καλούμαστε

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { ww w {a,b}* }. (β) Να διατυπώσετε την τυπική περιγραφή

Διαβάστε περισσότερα

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

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

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

Υπολογίσιμες Συναρτήσεις Υπολογίσιμες Συναρτήσεις Σ Π Υ Ρ Ι Δ Ω Ν Τ Ζ Ι Μ Α Σ Δ Τ Ο Μ Ε Α Σ Τ Μ Η Μ Α Μ Α Θ Η Μ Α Τ Ι Κ Ω Ν Σ Χ Ο Λ Η Θ Ε Τ Ι Κ Ω Ν Ε Π Ι Σ Τ Η Μ Ω Ν Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Ι Ω Α Ν Ν Ι Ν Ω Ν Υπολογίσιμες Συναρτήσεις

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w#z w, z {a,b}* και η z είναι υπολέξη της w}. Συγκεκριμένα,

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 26: Καθολική Μηχανή Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w w = (ab) 2m b m (ba) m, m 0 } (β) Να διατυπώσετε

Διαβάστε περισσότερα

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο; Αποφασισιµότητα / Αναγνωρισιµότητα Ορέστης Τελέλης telelis@unipi.gr Μη Επιλύσιµα Προβλήµατα Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς 2/12/2015 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Αποφασισιµότητα 2/12/2015

Διαβάστε περισσότερα

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

f(t) = (1 t)a + tb. f(n) = Παράρτημα Αʹ Αριθμήσιμα και υπεραριθμήσιμα σύνολα Αʹ1 Ισοπληθικά σύνολα Ορισμός Αʹ11 (ισοπληθικότητα) Εστω A, B δύο μη κενά σύνολα Τα A, B λέγονται ισοπληθικά αν υπάρχει μια συνάρτηση f : A B, η οποία

Διαβάστε περισσότερα

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

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης Σημειώσεις Λογικής I Εαρινό Εξάμηνο 2011-2012 Καθηγητής: Λ. Κυρούσης 2 Τελευταία ενημέρωση 28/3/2012, στις 01:37. Περιεχόμενα 1 Εισαγωγή 5 2 Προτασιακή Λογική 7 2.1 Αναδρομικοί Ορισμοί - Επαγωγικές Αποδείξεις...................

Διαβάστε περισσότερα

CSC 314: Switching Theory

CSC 314: Switching Theory CSC 314: Switching Theory Course Summary 9 th January 2009 1 1 Θέματα Μαθήματος Ερωτήσεις Τι είναι αλγόριθμος? Τι μπορεί να υπολογιστεί? Απαντήσεις Μοντέλα Υπολογισμού Δυνατότητες και μη-δυνατότητες 2

Διαβάστε περισσότερα

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 8: Ιδιότητες Γραμματικών χωρίς Συμφραζόμενα Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { a 2n b n c 3n n 2 } : H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ανεπίλυτα Προβλήματα από τη Θεωρία Γλωσσών (5.1) To Πρόβλημα της Περάτωσης Το Πρόβλημα της Κενότητα

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 12. Θεωρία Υπολογισιμότητας 30Μαρτίου, 17 Απριλίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Θέση Church-Turing Τι μπορεί να υπολογιστεί και τι δεν μπορεί να υπολογιστεί?

Διαβάστε περισσότερα

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 16: Αναγωγές ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 16: Αναγωγές Τι θα κάνουμε σήμερα Το Πρόβλημα του Τερματισμού (4.2) Εισαγωγή στις Αναγωγές Ανεπίλυτα Προβλήματα από την Θεωρία των Γλωσσών (5.1) Απεικονιστικές

Διαβάστε περισσότερα

HEAD INPUT. q0 q1 CONTROL UNIT

HEAD INPUT. q0 q1 CONTROL UNIT Πεπερασμένα Αυτόματα (ΠΑ) Τα πεπερασμένα αυτόματα είναι οι απλούστερες «υπολογιστικές μηχανές». Δεν έχουν μνήμη, μόνο μία εσωτερική μονάδα με πεπερασμένο αριθμό καταστάσεων. Διαβάζουν τη συμβολοσειρά εισόδου

Διαβάστε περισσότερα

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 11: Καθολική μηχανή Turing Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

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

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

10.1 Υπολογίσιμες συναρτήσεις και αναδρομικά σύνολα Κεφάλαιο 10 Υπολογισιμότητα Κύρια βιβλιογραφική αναφορά για αυτό το Κεφάλαιο είναι η Hopcroft, Motwani, and Ullman 2007. 10.1 Υπολογίσιμες συναρτήσεις και αναδρομικά σύνολα Μέχρι στιγμής έχουμε δει ουσιαστικά

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

Διαβάστε περισσότερα

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

Φροντιστήριο 8 Λύσεις Άσκηση 1 Φροντιστήριο 8 Λύσεις Θεωρήστε την πιο κάτω Μηχανή Turing όπου όλες οι μεταβάσεις που απουσιάζουν οδηγούν στην κατάσταση απόρριψης (q απόρριψης). Σε κάθε σκέλος, να προσδιορίσετε την ακολουθία

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 10. Μηχανές Turing 20,23 Μαρτίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Μηχανές Turing: Ένα Γενικό Μοντέλο Υπολογισμού Ποια μοντέλα υπολογισμού μπορούν να δεχθούν γλώσσες

Διαβάστε περισσότερα

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

Φροντιστήριο 8 Λύσεις Άσκηση 1 Θεωρήστε την πιο κάτω Μηχανή Turing. Φροντιστήριο 8 Λύσεις Σε κάθε σκέλος, να προσδιορίσετε την ακολουθία των φάσεων τις οποίες διατρέχει η μηχανή όταν δέχεται τη διδόμενη λέξη. (α) 11 (β) 1#1

Διαβάστε περισσότερα

Η δυαδική σχέση M ( «παράγει σε ένα βήμα» ) ορίζεται ως εξής: (q, w) M (q, w ), αν και μόνο αν w = σw, για κάποιο σ Σ

Η δυαδική σχέση M ( «παράγει σε ένα βήμα» ) ορίζεται ως εξής: (q, w) M (q, w ), αν και μόνο αν w = σw, για κάποιο σ Σ Πεπερασμένα Αυτόματα (ΠΑ) Τα πεπερασμένα αυτόματα είναι οι απλούστερες «υπολογιστικές μηχανές». Δεν έχουν μνήμη, μόνο μία εσωτερική μονάδα με πεπερασμένο αριθμό καταστάσεων. Διαβάζουν τη συμβολοσειρά εισόδου

Διαβάστε περισσότερα

Επαναληπτικές Διαδικασίες

Επαναληπτικές Διαδικασίες Επαναληπτικές Διαδικασίες Οι επαναληπτικές δομές ( εντολές επανάληψης επαναληπτικά σχήματα ) χρησιμοποιούνται, όταν μια ομάδα εντολών πρέπει να εκτελείται αρκετές- πολλές φορές ανάλογα με την τιμή μιας

Διαβάστε περισσότερα

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

Λύσεις 4ης Σειράς Ασκήσεων Λύσεις 4ης Σειράς Ασκήσεων Άσκηση 1 Αναγάγουμε τν Κ 0 που γνωρίζουμε ότι είναι μη-αναδρομική (μη-επιλύσιμη) στην γλώσσα: L = {p() η μηχανή Turing Μ τερματίζει με είσοδο κενή ταινία;} Δοσμένης της περιγραφής

Διαβάστε περισσότερα

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

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 5: Αναδρομικές σχέσεις - Υπολογισμός Αθροισμάτων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

Φ(s(n)) = s (Φ(n)). (i) Φ(1) = a.

Φ(s(n)) = s (Φ(n)). (i) Φ(1) = a. 1. Τα θεμελιώδη αριθμητικά συστήματα Με τον όρο θεμελιώδη αριθμητικά συστήματα εννοούμε τα σύνολα N των φυσικών αριθμών, Z των ακεραίων, Q των ρητών και R των πραγματικών. Από αυτά, το σύνολο N είναι πρωτογενές

Διαβάστε περισσότερα

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 10: Συνδυασμοί μηχανών Turing Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2016-2017 Πάτρα 3/5/2017 Ονοματεπώνυμο:.. Α1. Να γράψετε στην κόλλα σας τον αριθμό

Διαβάστε περισσότερα

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

Διαβάστε περισσότερα

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

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E. Οι γλώσσες των Μηχανών Turing Αποφασισιµότητα / Αναγνωρισιµότητα Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L Αποδέχεται όταν (η είσοδος στην TM) w L. Ορέστης Τελέλης telelis@unipi.gr Τµήµα

Διαβάστε περισσότερα

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

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί Αριθμήσιμα σύνολα Μαθηματικά Πληροφορικής 5ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Ορισμός Πόσα στοιχεία έχει το σύνολο {a, b, r, q, x}; Οσα και το σύνολο {,,, 4, 5} που είναι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Λογική Δημήτρης Πλεξουσάκης 2ο μέρος σημειώσεων: Συστήματα Αποδείξεων για τον ΠΛ, Μορφολογική Παραγωγή, Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

Διαβάστε περισσότερα

ΑΝΑΛΥΣΗ 1 ΕΝΑΤΟ ΜΑΘΗΜΑ, Μ. Παπαδημητράκης.

ΑΝΑΛΥΣΗ 1 ΕΝΑΤΟ ΜΑΘΗΜΑ, Μ. Παπαδημητράκης. ΑΝΑΛΥΣΗ 1 ΕΝΑΤΟ ΜΑΘΗΜΑ, 5-10-13 Μ. Παπαδημητράκης. 1 Τώρα θα μιλήσουμε για την έννοια της περιοχής, η οποία έχει κεντρικό ρόλο στη μελέτη της έννοιας του ορίου (ακολουθίας και συνάρτησης). Αν > 0, ονομάζουμε

Διαβάστε περισσότερα

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙΔΕΣ

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙΔΕΣ ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ 1 ο ΕΞΕΤΑΣΕΙΣ Β ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΣΑΒΒΑΤΟ 23 ΙΑΝΟΥΑΡΙΟΥ 2016 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012 ΘΕΜΑ Α Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: 1. Κάθε βρόγχος που υλοποιείται με την εντολή Για μπορεί να

Διαβάστε περισσότερα

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { D το D είναι ένα DFA το οποίο αποδέχεται όλες τις λέξεις στο Σ * } (α) Για να διαγνώσουμε το πρόβλημα μπορούμε

Διαβάστε περισσότερα

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

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 4: Διατάξεις Μεταθέσεις Συνδυασμοί Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) ({ G η G είναι μια ασυμφραστική γραμματική που δεν παράγει καμιά λέξη με μήκος μικρότερο του 2 } (β) { Μ,w

Διαβάστε περισσότερα

R ισούται με το μήκος του. ( πρβλ. την ιστορική σημείωση 3.27 στο τέλος

R ισούται με το μήκος του. ( πρβλ. την ιστορική σημείωση 3.27 στο τέλος 73 3. Συμπαγείς χώροι 3. Συμπαγείς χώροι και βασικές ιδιότητες Οι συμπαγείς χώροι είναι μια από τις πιο σημαντικές κλάσεις τοπολογικών χώρων. Η κλάση των συμπαγών χώρων περιλαμβάνει τα κλειστά διαστήματα,b

Διαβάστε περισσότερα

Όριο συνάρτησης στο x. 2 με εξαίρεση το σημείο A(2,4) Από τον παρακάτω πίνακα τιμών και τη γραφική παράσταση του παραπάνω σχήματος παρατηρούμε ότι:

Όριο συνάρτησης στο x. 2 με εξαίρεση το σημείο A(2,4) Από τον παρακάτω πίνακα τιμών και τη γραφική παράσταση του παραπάνω σχήματος παρατηρούμε ότι: Όριο συνάρτησης στο Στα παρακάτω θα προσεγγίσουμε την διαισθητικά με τη βοήθεια γραφικών παραστάσεων και πινάκων τιμών. 4 4 Έστω η συνάρτηση f με τύπο f ) = και πεδίο ορισμού το σύνολο ) ) η οποία μπορεί

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων

Διαβάστε περισσότερα

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

Διαβάστε περισσότερα

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. 4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. Η μετατροπή μιας εντολής επανάληψης σε μία άλλη ή στις άλλες δύο εντολές επανάληψης, αποτελεί ένα θέμα που αρκετές φορές έχει εξεταστεί σε πανελλαδικό

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα {w 1w 2 w 1 {0,1} * και w 2 = 0 k 1 m όπου k και m

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

771 Η - Θεωρία Υπολογισµών και Αλγορίθµων

771 Η - Θεωρία Υπολογισµών και Αλγορίθµων 771 Η - Θεωρία Υπολογισµών και Αλγορίθµων Σηµειώσεις Μέρος 4 ο ιδάσκων: Α. Ντελόπουλος Το παρόν αποτελεί σηµειώσεις που αντιστοιχούν σε µέρος των διαλέξεων για το µάθηµα 771 Η - Θεωρία Υπολογισµών και

Διαβάστε περισσότερα

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. ΘΕΜΑ 1 ο A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. 1. Η συνθήκη Χ = Α_Μ (Χ) είναι πάντα αληθής, για

Διαβάστε περισσότερα

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 15: Διαγνωσιμότητα (Επιλυσιμότητα) ΙΙ ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 15: Διαγνωσιμότητα (Επιλυσιμότητα) ΙΙ Τι θα κάνουμε σήμερα Επιλύσιμα Προβλήματα σχετικά με Ασυμφραστικές Γλώσσες (4.1.2) Το Πρόβλημα του Τερματισμού

Διαβάστε περισσότερα

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

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΑΡΧΗ 1 ης ΣΕΛΙΔΑΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών Θέμα 1 ο Α. Να χαρακτηρίσετε κάθε μία από

Διαβάστε περισσότερα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1) Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες () Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Πεπερασμένα Αυτόματα (Κεφάλαιο., Sipser) Ορισμός πεπερασμένων αυτομάτων και ορισμός του

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2011-2012 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α Α1. Να γράψετε στο τετράδιό σας τον

Διαβάστε περισσότερα

Στοχαστικές Στρατηγικές. διαδρομής (1)

Στοχαστικές Στρατηγικές. διαδρομής (1) Στοχαστικές Στρατηγικές η ενότητα: Το γενικό πρόβλημα ελάχιστης διαδρομής () Τμήμα Μαθηματικών, ΑΠΘ Ακαδημαϊκό έτος 08-09 Χειμερινό Εξάμηνο Παπάνα Αγγελική Μεταδιδακτορική ερευνήτρια, ΑΠΘ & Πανεπιστήμιο

Διαβάστε περισσότερα

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 11 : Γραμματικές χωρίς συμφραζόμενα. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 11 : Γραμματικές χωρίς συμφραζόμενα. Αλέξανδρος Τζάλλας 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεωρία Υπολογισμού Ενότητα 11 : Γραμματικές χωρίς συμφραζόμενα Αλέξανδρος Τζάλλας 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

q 0 q 0.2 q 0.1 q 0.05 q 0.05 q 0.25 q 0.15 q 0.1 q 0.2 q 0.25 q 0.25 q 0.25

q 0 q 0.2 q 0.1 q 0.05 q 0.05 q 0.25 q 0.15 q 0.1 q 0.2 q 0.25 q 0.25 q 0.25 Κεφάλαιο 2 Κανονικές Γλώσσες & Πεπερασμένα Αυτόματα Σύνοψη Τα Πεπερασμένα Αυτόματα (ΠΑ) είναι το απλούστερο και το πιο ευρέως διαδεδομένο μοντέλο υπολογισμού από αυτά που θα εξετάσουμε. Είναι επίσης γνωστά

Διαβάστε περισσότερα

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος Θέμα 1 Δίνονται τα παρακάτω τμήματα αλγορίθμου Α. βαλίτσα Αληθής εισιτήριο Αληθής ταξίδι βαλίτσα και εισιτήριο Τι τιμή θα έχει η λογική μεταβλητή

Διαβάστε περισσότερα

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η 53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η ΠΑΓΚΡΑΤΙ: Φιλολάου & Εκφαντίδου 26 : 210/76.01.470 210/76.00.179 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης ΠΕΡΙΕΧΟΜΕΝΑ Εντολές επιλογής Εντολές επανάληψης Εισαγωγή Στο προηγούμενο κεφάλαιο αναπτύξαμε προγράμματα, τα οποία ήταν πολύ απλά και οι εντολές των οποίων εκτελούνται η μία μετά την άλλη. Αυτή η σειριακή

Διαβάστε περισσότερα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

Διαβάστε περισσότερα

Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του ΜΚΔ και του ΕΚΠ στην MSWLogo

Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του ΜΚΔ και του ΕΚΠ στην MSWLogo Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του Μέγιστου Κοινού Διαιρέτη (ΜΚΔ) και του Ελάχιστου Κοινού Πολλαπλασίου (ΕΚΠ) δύο αριθμών, με την γλώσσα προγραμματισμού Logo Κογχυλάκης Σ.

Διαβάστε περισσότερα

Υπολογιστική άλγεβρα Ενότητα 6: Ο αλγόριθμος της διαίρεσης

Υπολογιστική άλγεβρα Ενότητα 6: Ο αλγόριθμος της διαίρεσης Υπολογιστική άλγεβρα Ενότητα 6: Ο αλγόριθμος της διαίρεσης Ράπτης Ευάγγελος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Μέρος III Πολυώνυμα πολλών μεταβλητών 33 Κεφάλαιο 6 Ο αλγόριθμος της διαίρεσης Τετάρτη

Διαβάστε περισσότερα

Διδακτική της Πληροφορικής ΙΙ

Διδακτική της Πληροφορικής ΙΙ Διδακτική της Πληροφορικής ΙΙ Ομάδα Γ Βότσης Ευστάθιος Γιαζιτσής Παντελής Σπαής Αλέξανδρος Τάτσης Γεώργιος Προβλήματα που αντιμετωπίζουν οι αρχάριοι προγραμματιστές Εισαγωγή Προβλήματα Δυσκολίες Διδακτικό

Διαβάστε περισσότερα

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

Φροντιστήριο 9 Λύσεις Άσκηση 1 Φροντιστήριο 9 Λύσεις Να κατασκευάσετε μια μηχανή Turing με δύο ταινίες η οποία να αποδέχεται στην πρώτη της ταινία μια οποιαδήποτε λέξη w {a,b} * και να γράφει τη λέξη w R στη δεύτερη της ταινία.

Διαβάστε περισσότερα

Εφαρμογές της Λογικής στην Πληροφορική

Εφαρμογές της Λογικής στην Πληροφορική Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Εφαρμογές της Λογικής στην Πληροφορική Ενότητα 2 Πέτρος Στεφανέας, Γεώργιος Κολέτσος Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός... 1 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Διάρκεια 3 ώρες Στοιχεία Μαθητή: Όνομα... Επώνυμο... Βαθμός... 2 Θεμα Α (30%) Α1 ΣΩΣΤΟ - ΛΑΘΟΣ 1. Ένα υποπρόγραμμα δεν μπορεί να κληθεί περισσότερες

Διαβάστε περισσότερα

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης Έρευνες-Δομές Επανάληψης Από τις έρευνες προκύπτει ότι οι αρχάριοι προγραμματιστές δεν χρησιμοποιούν αυθόρμητα την επαναληπτική διαδικασία για

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού Αλφάβητα, Γλώσσες, Κανονικές Εκφράσεις 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Θεωρία Υπολογισμού Ενότητα 6 : Αλφάβητα, Γλώσσες, Κανονικές Εκφράσεις Αλέξανδρος Τζάλλας 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο Τμήμα Μηχανικών

Διαβάστε περισσότερα

Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα.

Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα. Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα. Είδαμε τι είναι πρόβλημα, τι είναι αλγόριθμος και τέλος τι είναι πρόγραμμα. Πρέπει να μπορείτε να ξεχωρίζετε αυτές τις έννοιες και να αντιλαμβάνεστε

Διαβάστε περισσότερα