ΠΑΝΑΓΙΩΤΗΣ ΚΑΤΣΑΡΟΣ Επ. Καθηγητής Α.Π.Θ. Θεωρία Υπολογισμού Και Εφαρμογές

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

Download "ΠΑΝΑΓΙΩΤΗΣ ΚΑΤΣΑΡΟΣ Επ. Καθηγητής Α.Π.Θ. Θεωρία Υπολογισμού Και Εφαρμογές"

Transcript

1

2

3 ΠΑΝΑΓΙΩΤΗΣ ΚΑΤΣΑΡΟΣ Επ. Καθηγητής Α.Π.Θ. Θεωρία Υπολογισμού Και Εφαρμογές

4 Θεωρία Υπολογισμού και Εφαρμογές Συγγραφή Παναγιώτης Κατσαρός Κριτικός αναγνώστης Ιωάννης Σταμέλος Συντελεστές έκδοσης Γλωσσική Επιμέλεια: Βασίλειος Παππάς Γραφιστική Επιμέλεια: Παναγιώτης Κατσαρός Τεχνική Επεξεργασία: Εμμανουέλα Στάχτιαρη ISBN: Copyright ΣΕΑΒ, 2015 Το παρόν έργο αδειοδοτείται υπό τους όρους της άδειας Creative Commons Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Όχι Παράγωγα Έργα 3.0. Για να δείτε ένα αντίγραφο της άδειας αυτής επισκεφτείτε τον ιστότοπο ΣΥΝΔΕΣΜΟΣ ΕΛΛΗΝΙΚΩΝ ΑΚΑΔΗΜΑΪΚΩΝ ΒΙΒΛΙΟΘΗΚΩΝ Εθνικό Μετσόβιο Πολυτεχνείο Ηρώων Πολυτεχνείου 9, Ζωγράφου

5 Περιεχόμενα Πρόλογος ix 1 Γλώσσες και Υπολογισμοί Συμβολοσειρές Γλώσσες και πράξεις γλωσσών Ορισμός γλωσσών Πράξεις μεταξύ γλωσσών Παραγωγή και αναγνώριση γλωσσών στη Θεωρία Υπολογισμού Κλάσεις γλωσσών Κλάσεις γλωσσών ως προς τις μηχανές για την αναγνώρισή τους Κλάσεις γλωσσών ως προς το βαθμό αποδοτικότητας της διαδικασίας απόφασης Κατάταξη γλωσσών Θέση των Church και Turing Ντεντερμινισμός και μη ντεντερμινισμός Επεκτάσεις των κλασικών μοντέλων υπολογισμού και εφαρμογές Συστήματα μεταβάσεων για επαλήθευση με έλεγχο μοντέλων (model checking) Χρονισμένα και υβριδικά αυτόματα Κριτήρια αξιολόγησης Βιβλιογραφία - Αναφορές Κανονικές Γλώσσες & Πεπερασμένα Αυτόματα Ντεντερμινιστικά Πεπερασμένα Αυτόματα (ΝΠΑ) Μη ντεντερμινιστικά Πεπερασμένα Αυτόματα (ΜΝΠΑ) Ισοδυναμία ΜΝΠΑ και ΝΠΑ Ιδιότητες Κλειστότητας Κανονικών Γλωσσών iii

6 iv ΠΕΡΙΕΧ ΟΜΕΝΑ 2.5 Κανονικές εκφράσεις Επεκτάσεις Πεπερασμένων Αυτομάτων Μετατροπείς Πεπερασμένων Καταστάσεων Αυτόματα Büchi για συμβολοσειρές άπειρου μήκους Εφαρμογές ΠΑ για τη σχεδίαση κυκλωμάτων με λογικές πύλες Πρωτόκολλα επικοινωνίας: το TCP ως ΝΠΑ Κριτήρια αξιολόγησης Βιντεοδιαλέξεις Διαδραστικό τεστ Βιβλιογραφία - Αναφορές Ελαχιστοποίηση και Μη Κανονικές Γλώσσες Ελάχιστα ΠΑ Ελάχιστο ΝΠΑ για μια γλώσσα Ελαχιστοποίηση ενός ΝΠΑ Εφαρμογές Λήμμα της Άντλησης και Μη Κανονικές Γλώσσες Αποφασισιμότητα προβλημάτων & αλγόριθμοι ΠΑ Βιντεοδιαλέξεις Διαδραστικό τεστ Βιβλιογραφία - Αναφορές Γλώσσες & Γραμματικές Χωρίς Συμφραζόμενα Γραμματικές Χωρίς Συμφραζόμενα Παραγωγές και Συντακτικά Δέντρα Διφορούμενες Γραμματικές Κανονική Μορφή Chomsky Εφαρμογές Σύνταξη Γλωσσών Προγραμματισμού Στοχαστικές Γραμματικές Χωρίς Συμφραζόμενα Βιντεοδιαλέξεις Διαδραστικό τεστ Βιβλιογραφία - Αναφορές Αυτόματα Στοίβας και Γλώσσες που δεν είναι Χωρίς Συμφραζόμενα Αυτόματα Στοίβας (ΑΣ) Ισοδυναμία ΓΧΣ και ΑΣ Ιδιότητες Κλειστότητας Γλωσσών Χωρίς Συμφραζόμενα

7 ΠΕΡΙΕΧ ΟΜΕΝΑ v 5.4 Λήμμα Άντλησης για Γλώσσες Χωρίς Συμφραζόμενα Ντετερμινιστικά και Μη Ντετερμινιστικά ΑΣ Συντακτική Ανάλυση Γλωσσών Χωρίς Συμφραζόμενα Αλγόριθμοι για Γλώσσες Χωρίς Συμφραζόμενα Εφαρμογές Κριτήρια αξιολόγησης Βιντεοδιαλέξεις Διαδραστικό τεστ Βιβλιογραφία - Αναφορές Μηχανές Turing Ορισμός Μηχανών Turing (ΜΤ) Ενας συνθετικός συμβολισμός για ΜΤ Υπολογισμοί με ΜΤ ΜΤ ως μηχανές αναγνώρισης γλωσσών Υπολογισμός συναρτήσεων με ΜΤ Πολλές Ταινίες & Μη Ντετερμινισμός Πολλές ταινίες Μη ντετερμινισμός Προσομοίωση Υπολογιστή με ΜΤ Εναλλακτικοί ορισμοί ΜΤ ΜΤ με ταινία άπειρου μήκους προς μία κατεύθυνση Ο ρόλος της στοίβας και της ταινίας Γενική ΜΤ Κωδικοποίηση ΜΤ ως συμβολοσειρά Η Γενική ΜΤ Διαδραστικό τεστ Βιβλιογραφία - Αναφορές Επιλυσιμότητα - Μη επιλυσιμότητα Το Πρόβλημα του Τερματισμού Αποφασίσιμα και Μη αποφασίσιμα Προβλήματα Απαρίθμηση μιας γλώσσας Αναγωγές (Μη) Αποφασίσιμα Προβλήματα για ΜΤ και Γλώσσες (Μη) Αποφασίσιμα Προβλήματα για ΜΤ Μη Αποφασισιμότητα γλωσσών που δεν αναφέρονται ρητά σε ΜΤ Το Θεώρημα του Rice

8 vi ΠΕΡΙΕΧ ΟΜΕΝΑ 7.6 Εφαρμογές Μη Αποφασίσιμα Προβλήματα για Προγράμματα Λογικές θεωρίες Βιβλιογραφία - Αναφορές Υπολογίσιμες Συναρτήσεις Ορισμός Υπολογίσιμων Συναρτήσεων Θεωρία Αναδρομικών Συναρτήσεων Στοιχειώδεις αναδρομικές συναρτήσεις µ-αναδρομικές συναρτήσεις Θεώρημα Αναδρομής/Σταθερού Σημείου Εφαρμογές Βιβλιογραφία - Αναφορές Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα προβλημάτων Η κλάση πολυπλοκότητας P Η κλάση πολυπλοκότητας NP Κλάσεις Χωρικής Πολυπλοκότητας Βιβλιογραφία - Αναφορές N P -πληρότητα Αναγωγές πολυωνυμικού χρόνου NP -πληρότητα Βιβλιογραφία - Αναφορές ΠΑΡΑΡΤΗΜΑ 287 I Μαθηματικό υπόβαθρο 289 I.1 Σύνολα I.2 Σχέσεις I.3 Συναρτήσεις I.4 Κλειστότητα I.5 Τεχνικές απόδειξης II Προσομοίωση με το JFLAP 291 II.1 Εγκατάσταση II.2 Διεπαφή χρήσης II.3 Ορισμός γλωσσών και μηχανών

9 Πρόλογος Η Θεωρία Υπολογισμού αναπτύχθηκε για να μελετηθούν θεμελιώδη ζητήματα σχετικά με την έννοια του υπολογισμού και τις δυνατότητες των υπολογιστικών μας μηχανών. Ο υπολογισμός είναι μία διεργασία, που εκτελείται σε ένα κλειστό σύστημα που το ονομάζουμε υπολογιστή. Παραδείγματα τέτοιων συστημάτων είναι οι ψηφιακοί μας υπολογιστές, καθώς επίσης και μηχανικοί υπολογιστές όπως ο μηχανισμός των Αντικυθήρων και η μηχανή Babbage, οι κβαντικοί υπολογιστές, οι μοριακοί υπολογιστές κ.ά. Ποιοι υπολογισμοί είναι πραγματοποιήσιμοι και ποιοι υπολογισμοί είναι αδύνατοι; Σήμερα γνωρίζουμε ότι κανένας ηλεκτρονικός υπολογιστής δεν μπορεί να αποφασίσει το αν ένα πρόγραμμα τερματίζει σε πεπερασμένο χρόνο για μία είσοδο. Γιατί συμβαίνει αυτό και γιατί πολλά προβλήματα, όπως το συγκεκριμένο, δεν επιλύονται με τους ηλεκτρονικούς υπολογιστές; Πώς μπορούμε να ξέρουμε αν ένα δοθέν πρόβλημα μπορεί να επιλυθεί και αν αυτό μπορεί να γίνει επαρκώς γρήγορα; Σ ένα άλλο επίπεδο, μελετώντας τις «πρακτικές πτυχές» της υπολογισιμότητας, ενδιαφερόμαστε να απαντήσουμε στο ερώτημα: «Πόσος χρόνος και χώρος χρειάζεται για τον υ- πολογισμό μιας υπολογίσιμης συνάρτησης»; Οι υπολογίσιμες συναρτήσεις συμπεριλαμβάνουν όλες τις συναρτήσεις στο σύνολο των φυσικών αριθμών, που μπορούν να υπολογιστούν σ έναν ιδεατό κόσμο, όπου ο διαθέσιμος υπολογιστικός χρόνος και χώρος είναι απεριόριστος (στην πραγματικότητα δεν ισχύει κάτι τέτοιο). Για να απαντηθούν τα παραπάνω ερωτήματα, οι επιστήμονες εμπνεύστηκαν αφαιρετικά μοντέλα υπολογισμού, όπως οι αναδρομικές συναρτήσεις, ο λογισμός-λ, οι μηχανές Turing και οι μηχανές πεπερασμένων καταστάσεων. Αυτά τα μοντέλα υπολογισμού ορίζονται με μία μαθηματική αυστηρότητα, που είναι αναγκαία για την απόδειξη αποτελεσμάτων πάνω σε ερωτήματα όπως αυτά που αναφέραμε. Η εξέλιξη των παλαιών και των πιο πρόσφατων μοντέλων υπολογισμού πάντα λαμβάνει υπόψη τις ανάγκες των χρηστών των υπολογιστικών συστημάτων και τις νέες δυνατότητες των υπολογιστικών μηχανών. Ενα νέο μοντέλο υπολογισμού, ή μία επέκταση σε κάποιο ήδη υπάρχον, αντικατοπτρίζεται συνήθως σε μία νέα οικογένεια γλωσσών προγραμματισμού και σε νέα ix

10 x ΠΡΟΛΟΓΟΣ υποδείγματα ανάπτυξης λογισμικού. Γι αυτό το λόγο, η κατανόηση των παραδοσιακών και των αναδυόμενων μοντέλων υπολογισμού διευκολύνει τη χρήση των γλωσσών προγραμματισμού και των εργαλείων ανάπτυξης λογισμικού, μας δίνει πληροφορία για τη χρήση της κατάλληλης γλώσσας για μία συγκεκριμένη εφαρμογή και είναι απαραίτητη για τη σχεδίαση νέων γλωσσών προγραμματισμού. Τα διάφορα μοντέλα υπολογισμού είναι επίσης γνωστά και ως τυπικές γλώσσες. Μία γλώσσα είναι ένα σύνολο συμβολοσειρών. Θα επικεντρωθούμε στα μοντέλα υπολογισμού, που επεξεργάζονται συμβολοσειρές και είναι σε θέση να αναγνωρίσουν αν αυτές ανήκουν στη γλώσσα που αναπαριστούν. Τα μοντέλα αυτά είναι γνωστά στη διεθνή βιβλιογραφία με την ελληνική λέξη «αυτόματα». Ο Ηρωνας από την Αλεξάνδρεια (10-70 μ.χ.) ήταν ο πρώτος που χρησιμοποίησε στα έργα του Αυτοματοποιητική και Πνευματικά τον όρο αυτόματα, για να περιγράψει μηχανές που εκτελούσαν προκαθορισμένες κινήσεις ως συνέπεια μεταβολών στο περιβάλλον (είσοδος). Υπάρχουν πολλά στοιχεία που μαρτυρούν ότι οι έννοιες της υπολογισιμότητας και των υπολογίσιμων συναρτήσεων ήταν γνωστές από τα αρχαία χρόνια. Οχι μόνο οι Ελληνες, αλλά και οι αρχαίοι Αιγύπτιοι είχαν μία καλή κατανόηση των διαφόρων «μεθόδων» υπολογισμού. Ο Πέρσης μαθηματικός Αλ Χουαρίζμι κατά το 825 μ.χ. συνέγραψε βιβλίο υπό τον τίτλο Υπολογισμός με Ινδικούς Αριθμούς, που περιλάμβανε την περιγραφή διαφόρων διαδικασιών, που σήμερα θα αποκαλούσαμε αλγορίθμους. Στο όνομα του συγκεκριμένου μαθηματικού φαίνεται ότι αποδίδεται η προέλευση της λέξης «αλγόριθμος». Οταν το βιβλίο του μεταφράστηκε στα Λατινικά, ο τίτλος του μεταγράφηκε σε Algoritmi de Numero Indorum. Η λέξη «αλγόριθμος» αργότερα χρησιμοποιήθηκε για να περιγράψει την οικογένεια των υπολογιστικών διαδικασιών, που περιγράφονται στο βιβλίο. Συνοπτικά, ένας αλγόριθμος είναι: μία πεπερασμένη περιγραφή ενός υπολογισμού με όρους καλώς ορισμένων στοιχειωδών λειτουργιών (ή εντολών) μία ντεντερμινιστική διαδικασία, τέτοια δηλαδή ώστε το επόμενο βήμα αυτής - αν υπάρχει - έχει οριστεί μοναδικά μία μέθοδος υπολογισμού που πάντα παράγει ένα αποτέλεσμα, ανεξάρτητα από το ποια είναι η είσοδος (δηλαδή ο υπολογισμός που περιγράφεται από έναν αλγόριθμο τερματίζει σε όλες τις περιπτώσεις) Η σύγχρονη Θεωρία Υπολογισμού θεμελιώθηκε πάνω σε ερευνητικές εργασίες από τις αρχές του εικοστού αιώνα, που είχαν στόχο την «τυπική περιγραφή» της έννοιας του αλγορίθμου χωρίς να γίνεται αναφορά σε συγκεκριμένη γλώσσα προγραμματισμού ή υπολογιστική συσκευή με φυσική υπόσταση. Ενα μοντέλο υπολογισμού περιγράφεται αφαιρετικά σε ότι αφορά τις λεπτομέρειες

11 xi των υλικών της συσκευής, που χρησιμοποιείται στους υπολογισμούς, είτε αυτή είναι ένας άβακας, είτε μολύβι και χαρτί, ή ακόμη η γλώσσα προγραμματισμού και ο επεξεργαστής της προτίμησής μας. Είναι ίσως παράδοξο ότι το πρώτο σύγχρονο μοντέλο υπολογισμού που προτάθηκε είναι εκφραστικά πιο ισχυρό από όλα τα άλλα. Ηταν το 1936, όταν ο Alan Turing ευρισκόμενος στο Πανεπιστήμιο Princeton εισήγαγε ένα θεωρητικό μοντέλο μηχανής, που η πραγματική του σημασία εκτιμήθηκε πολλά χρόνια αργότερα. Πρόκειται για τα αυτόματα που είναι γνωστά ως Μηχανές του Turing και έχουν αποδειχθεί ως το μέχρι σήμερα πιο εκφραστικό μοντέλο, που μπορεί να αναπαραστήσει τον οποιοδήποτε υπολογισμό μιας υπολογιστικής μηχανής. Για τα προβλήματα που αποδεικνύεται ότι δεν επιλύονται από υπολογισμό Μηχανής Turing δεν υπάρχει υπολογιστική μηχανή (αλγόριθμος), που να μπορεί να τα επιλύσει. Η κλάση των συναρτήσεων που υπολογίζονται από τις Μηχανές Turing ταυτίζεται με την κλάση των συναρτήσεων, που υπολογίζεται από δύο άλλα εκφραστικά ισοδύναμα μοντέλα υπολογισμού: το λογισμό-λ, που προτάθηκε από τον Alonzo Church με στόχο να παρέχει μία μαθηματική θεμελίωση, που θα στηρίζεται στην έννοια της συνάρτησης τη θεωρία των αναδρομικών συναρτήσεων, που αρχικά θεμελιώθηκε από τον Kurt Gödel και στη συνέχεια αναπτύχθηκε από τον Stephen Kleene Καθένα από τα προαναφερόμενα μοντέλα υπολογισμού οδήγησε στην ανάπτυξη ενός νέου προγραμματιστικού υποδείγματος, αρχικά του αλγοριθμικού προγραμματισμού (imperative programming) και στη συνέχεια του συναρτησιακού (functional programming) και του αλγεβρικού προγραμματισμού (algebraic programming). Η αρχή που είναι ευρέως γνωστή ως «Θέση του Church» μας λέει ότι η κλάση των υπολογίσιμων συναρτήσεων στο σύνολο των ακεραίων, τελικά δεν διαφέρει και είναι η ίδια, για όλα τα ακολουθιακά μοντέλα υπολογισμού, που ικανοποιούν τα βασικά αξιώματα του ντεντερμινισμού και της εκτέλεσης των στοιχειωδών υπολογιστικών βημάτων σε πεπερασμένο χρόνο. Αυτή η κλάση είναι το σύνολο των μερικών αναδρομικών συναρτήσεων. Σήμερα λέμε ότι μία γλώσσα προγραμματισμού είναι Turing-πλήρης, αν σ αυτή μπορεί να γραφεί η οποιαδήποτε υπολογίσιμη συνάρτηση. Μ αυτή την έννοια, όλες οι γλώσσες προγραμματισμού γενικού σκοπού σήμερα είναι πλήρεις. Η Turing-πληρότητα συνήθως αποδεικνύεται μέσω μιας κωδικοποίησης στη γλώσσα προγραμματισμού ενός τυπικά ορισμένου καθολικού υπολογιστικού μοντέλου.

12 xii ΠΡΟΛΟΓΟΣ Δύο άλλα πολύ σημαντικά μοντέλα υπολογισμού δημιουργήθηκαν σχεδόν δύο δεκαετίες μετά από την εμφάνιση των Μηχανών Turing, για να καλύψουν υπαρκτές πρακτικές ανάγκες: τα Πεπεραμένα Αυτόματα ή αλλιώς Μηχανές Πεπερασμένων Καταστάσεων και αργότερα, τα Αυτόματα Στοίβας. Οι Μηχανές Πεπερασμένων Καταστάσεων εισήχθησαν από τους νευροφυσιολόγους McCulloch και Walter Pitts το 1943, για να αναπαραστήσουν τη διαδικασία της νευρικής δραστηριότητας. Οι μηχανές αυτές έχουν καθορισμένη δυνατότητα αποθήκευσης πληροφορίας (σε αντίθεση με τις Μηχανές Turing, που δεν έχουν περιορισμούς αποθήκευσης) και οι υπολογισμοί τους τερματίζουν πάντα (σε αντίθεση επίσης με τις Μηχανές Turing) με την αποδοχή ή την απόρριψη μιας εισόδου ως στοιχείο της γλώσσας, που αναπαριστούν. Οι εφαρμογές τους είναι πολλές και περιλαμβάνουν μεταξύ άλλων τη σχεδίαση και την ανάλυση της συμπεριφοράς συστημάτων όπως οι φωτεινοί σηματοδότες, τις αυτόματες μηχανές πώλησης, τα ηλεκτρονικά παιχνίδια, τις μονάδες ελέγχου των CPUs, καθώς επίσης την ανάλυση κειμένου, την ανάλυση πρωτοκόλλων δικτύων και την επεξεργασία φυσικής γλώσσας. Η Θεωρία Υπολογισμού όμως εξελίσσεται συνεχώς, ως αποτέλεσμα της α- νάγκης να κατανοήσουμε νέες μορφές υπολογισμού, που είναι πλέον διάχυτες στην καθημερινότητά μας. Αναφέρουμε ενδεικτικά τα μοντέλα υπολογισμού αντικειμένων, που είναι αντίστοιχα με το λογισμού-λ, όμως με αντικείμενα αντί για συναρτήσεις, τα μοντέλα υπολογισμού με ταυτοχρονισμό, όπως τα Συστήματα Μεταβάσεων με Επιγραφές (Labeled Transition Systems), τα μοντέλα υπολογισμού για συστήματα, που συνδυάζουν συνεχή και διακριτή συμπεριφορά (υβριδικά συστήματα), καθώς επίσης και τα μοντέλα κβαντικού υπολογισμού, όπως και τα μοντέλα για φυσικούς υπολογισμούς (natural computing), που α- ναφέρονται σε φυσικά συστήματα, συμπεριλαμβανομένων των μηχανισμών που χαρακτηρίζουν ζώντες οργανισμούς. Το ηλεκτρονικό βιβλίο Θεωρία Υπολογισμού και Εφαρμογές είναι μία πρωτότυπη παρουσίαση των βασικών αποτελεσμάτων της Θεωρίας Υπολογισμού εμπλουτισμένη με πλήθος εφαρμογών από διάφορα πεδία, προσομοιώσεις, κριτήρια αξιολόγησης, καθώς και εκτεταμένο πολυμεσικό και διαδραστικό περιεχόμενο. Το αναγνωστικό κοινό στο οποίο απευθύνεται είναι κατά βάση οι φοιτητές προπτυχιακών προγραμμάτων σπουδών Πληροφορικής και Ηλεκτρολόγων Μηχανικών. Σχεδόν στο σύνολό τους αυτά τα προγράμματα σπουδών, καθώς επίσης και τα προγράμματα κάποιων άλλων τμημάτων, περιλαμβάνουν τη διδασκαλία της διεθνώς καθιερωμένης ύλης της Θεωρίας Υπολογισμού σε ομώνυμο μάθημα ή σε μάθημα με τον πιο γενικό τίτλο «Θεωρητική Πληροφορική» ή τίτλο που συνδυάζει τους όρους «Αυτόματα» και «Γλώσσες». Το ηλεκτρονικό βιβλίο Θεωρία Υπολογισμού και Εφαρμογές είναι πλήρες ως προς την καθιερωμένη ύλη του αντικειμένου, ενώ ταυτόχρονα παρουσιάζει ε-

13 xiii φαρμογές, που δεν περιορίζονται στην περιοχή της επιστήμης των υπολογιστών. Οι προσομοιώσεις, η ποικιλία των κριτηρίων αξιολόγησης, το πολυμεσικό υλικό και το διαδραστικό περιεχόμενο αποσκοπούν στην ανάπτυξη της κριτικής σκέψης, στην κινητροποίηση και στην αυτενέργεια των φοιτητών, για την εμβάθυνση στην ύλη και την κατανόησή της. Οι διδακτικοί στόχοι είναι: 1. Η εξοικείωση των φοιτητών με τις θεμελιώσεις και τις αρχές της επιστήμης των υπολογιστών. 2. Η αφομοίωση ύλης πάνω στην οποία στηρίζονται άλλα αντικείμενα, όπως η Θεωρία Γλωσσών Προγραμματισμού και η Αλγοριθμική, που επίσης εντάσσονται στα αναφερόμενα προγράμματα σπουδών. 3. Η καλλιέργεια της ικανότητας των φοιτητών να αναπτύσσουν τυπικά ο- ρισμένους και μαθηματικώς τεκμηριωμένους συλλογισμούς. Το απαραίτητο μαθηματικό υπόβαθρο για την ανάπτυξη της ύλης δίνεται στο Παράρτημα I. Αν ο αναγνώστης είναι ήδη εξοικειωμένος με τη βασική θεωρία συνόλων, τις σχέσεις, τις συναρτήσεις και τις τεχνικές απόδειξης, τότε μπορεί να προχωρήσει αμέσως στην κυρίως ύλη της Θεωρίας Υπολογισμού. Θα πρέπει όμως πριν απ αυτό να κατανοήσει τη σχέση της κλειστότητας, που απαντάται σε πολλά αποτελέσματα της θεωρίας. Σημαντικό ρόλο στην αφομοίωση της ύλης και των λυμένων κριτηρίων α- ξιολόγησης, καθώς και στην επίλυση όσων κριτηρίων προτείνονται για αυτοαξιολόγηση, θα παίξει το ανοικτό λογισμικό προσομοίωσης JFLAP. Το JFLAP υλοποιεί όλα τα μοντέλα υπολογισμού του βιβλίου και τους περισσότερους αλγορίθμους ανάπτυξης και μετασχηματισμού τους. Δεν είναι απλά και μόνο ένα εργαλείο οπτικοποίησης αφαιρετικών εννοιών, αλλά βοηθάει στη γρήγορη δημιουργία σύνθετων μηχανών, όπως αυτές που αναφέρονται σε κάποια κριτήρια αξιολόγησης. Κάθε τέτοια μηχανή πρέπει να δοκιμαστεί διεξοδικά ως προς την ορθότητά της. Με το JFLAP, ο χρόνος που απαιτείται για να γίνει αυτό περιορίζεται δραστικά. Στο Παράρτημα II κάνουμε μία εισαγωγή στη χρήση του JFLAP, αν και αυτή δεν κρύβει δυσκολίες για όποιον είναι εξοικειωμένος με τη διεθνή ορολογία της Θεωρίας Υπολογισμού. Το βιβλίο διαρθρώνεται ως εξής. Στο Κεφάλαιο 1 εισάγεται ο τυπικός ορισμός των γλωσσών, που χρησιμοποιούνται στην Επιστήμη των Υπολογιστών και των ιδιοτήτων τους. Οι γλώσσες είναι σύνολα συμβολοσειρών και κάθε συμβολοσειρά εκφράζει έναν υπολογισμό, δηλαδή την εκτέλεση μιας μηχανής, όπως η Μηχανή του Turing. Εξετάζουμε μοντέλα υπολογισμού, που σχετίζονται με τη διαδικασία αναγνώρισης συγκεκριμένων γλωσσών και παρουσιάζουμε επίσης τη Θέση των Church και Turing για τον τυπικό ορισμό αυτού που σήμερα αντιλαμβανόμαστε ως «μηχανιστικό υπολογισμό» ή αλγόριθμο.

14 xiv ΠΡΟΛΟΓΟΣ Στο Κεφάλαιο 2 εισάγουμε τα Πεπερασμένα Αυτόματα, που είναι το απλούστερο μοντέλο υπολογισμού από αυτά που θα εξετάσουμε. Αναφερόμαστε επίσης τις Κανονικές Εκφράσεις, μία εναλλακτική αναπαράσταση κανονικών γλωσσών, η οποία περιγράφει τον τρόπο που παράγονται οι συμβολοσειρές μιας γλώσσας. Στο Κεφάλαιο 3 αναπτύσσουμε αποτελέσματα για την εύρεση της πιο σύντομης και οικονομικής περιγραφής των γλωσσών, που αναπαριστούν τα Πεπερασμένα Αυτόματα. Περιγράφουμε επίσης ένα αποτέλεσμα, που χρησιμοποιείται για να δίνουμε απάντηση στο ερώτημα αν μία γλώσσα μπορεί να αναπαρασταθεί από Πεπερασμένο Αυτόματο ή όχι. Στο Κεφάλαιο 4 εισάγουμε μία άλλη οικογένεια γλωσσών, που λέγονται Γλώσσες Χωρίς Συμφραζόμενα. Για τις γλώσσες αυτές ορίζουμε τυπικά μία α- ναπαράσταση, που λέγεται Γραμματική Χωρίς Συμφραζόμενα και όπως οι κανονικές εκφράσεις περιγράφει το πώς παράγονται οι συμβολοσειρές της γλώσσας. Στο Κεφάλαιο 5 ορίζουμε και μελετάμε τις ιδιότητες μηχανών αναγνώρισης γλωσσών χωρίς συμφραζόμενα, που είναι γνωστές ως Αυτόματα Στοίβας. Τα Αυτόματα Στοίβας παρέχουν το θεωρητικό πλαίσιο για την κατασκευή αλγορίθμων επεξεργασίας γλωσσών χωρίς συμφραζόμενα. Στο Κεφάλαιο 6 εισάγουμε τους βασικούς ορισμούς για τις διάφορες χρήσεις των Μηχανών Turing, όπως για παράδειγμα αποδοχή μιας γλώσσας και τον υ- πολογισμό μιας συνάρτησης. Επίσης αναφερόμαστε σε διάφορες παραλλαγές των Μηχανών Turing, που όμως έχουν αποδειχθεί ότι δεν αυξάνουν τις δυνατότητες περιγραφής υπολογισμών, που διαθέτουν οι βασικές Μηχανές Turing. Στο Κεφάλαιο 7 αποδεικνύουμε ότι υπάρχουν προβλήματα, που δεν επιλύονται από κανένα υπολογιστικό μοντέλο από αυτά που εξετάσαμε. Δείχνουμε επίσης το πώς μπορούμε να αναλύουμε τα διάφορα προβλήματα, για να δείξουμε το αν αυτά είναι επιλύσιμα ή όχι. Στο Κεφάλαιο 8 αναφερόμαστε στον υπολογισμό συναρτήσεων με οποιοδήποτε πεδίο τιμών και αναπτύσσουμε μία θεωρία, που μελετά το τι ακριβώς υπολογίζεται και τι όχι, καθώς και τις ιδιότητες συναρτήσεων διαφορετικών κλάσεων, ως προς την υπολογισιμότητά τους. Στο Κεφάλαιο 9 εστιάζουμε στο γεγονός ότι τα προγράμματα, που σχεδιάζουμε, έχουν συγκεκριμένες απαιτήσεις σε πόρους χρόνου και χώρου. Ε- πομένως μπορεί ένα πρόβλημα να είναι θεωρητικά επιλύσιμο, αλλά «πρακτικά» μη επιλύσιμο, καθώς για μεγάλες εισόδους οι απαιτήσεις του σε πόρους μπορεί να αυξάνονται τόσο γρήγορα, που τελικά να γίνονται μη ρεαλιστικές. Για το λόγο αυτό ορίζουμε ιεραρχίες κλάσεων γλωσσών με βάση το χρόνο ή τον χώρο, που απαιτεί ο καλύτερος γνωστός αλγόριθμος για το κάθε πρόβλημα (κλάσεις πολυπλοκότητας). Στο Κεφάλαιο 10 δείχνουμε ότι όλα τα προβλήματα σε μία θεωρητικά ση-

15 xv μαντική κλάση πολυπλοκότητας μετασχηματίζονται μέσω αναγωγών σε κάποια θεμελιώδη προβλήματα πολυπλοκότητας. Κλείνοντας τον Πρόλογο θα ήθελα να εκφράσω τις ευχαριστίες μου στην ομάδα υποστήριξης αυτής της συγγραφικής προσπάθειας, χωρίς τη συμβολή της οποίας δε θα ήταν δυνατή η ολοκλήρωση του έργου. Την τεχνική επεξεργασία του ηλεκτρονικού βιβλίου έκανε η Εμμανουέλα Στάχτιαρη και τη γλωσσική επιμέλεια ο Βασίλειος Παππάς. Ως κριτικός αναγνώστης ο συνάδελφος Ιωάννης Σταμέλος συνεισέφερε στη βελτίωση της παρουσίασης της ύλης με πολλές εύστοχες παρατηρήσεις στο αρχικό κείμενο. Θεσσαλονίκη, Δεκέμβριος 2015 Παναγιώτης Κατσαρός Επ. Καθηγητής Α.Π.Θ.

16 xvi ΠΡΟΛΟΓΟΣ

17 Κεφάλαιο 1 Γλώσσες και Υπολογισμοί Σύνοψη Θεμελιώδη σημασία σε κάθε υπολογισμό έχει η αναπαράσταση της πληροφορίας που επεξεργαζόμαστε. Στην καθημερινή μας ζωή, η πληροφορία που επικοινωνούμε και επεξεργαζόμαστε διατυπώνεται σε μία φυσική γλώσσα, όπως είναι τα Ελληνικά. Κάθε τέτοια φυσική γλώσσα στηρίζεται σ ένα πεπερασμένο σύνολο βασικών φωνολογικών ενοτήτων για το σχηματισμό λέξεων και προτάσεων. Οι λέξεις ορίζονται ως πεπερασμένες ακολουθίες τέτοιων φωνολογικών ενοτήτων (συλλαβές) και οι προτάσεις σχηματίζονται ως πεπερασμένες ακολουθίες λέξεων. Στο γραπτό λόγο, κάθε φυσική γλώσσα χρησιμοποιεί ένα πεπερασμένο σύνολο συμβόλων και οι λέξεις γράφονται ως πεπερασμένες ακολουθίες αυτών. Αντίστοιχες προσεγγίσεις έχουν αναπτυχθεί για την αναπαράσταση στοιχείων άλλων συνόλων. Για παράδειγμα, ένας φυσικός αριθμός αναπαριστάται ως πεπερασμένη ακολουθία ψηφίων του δεκαδικού συστήματος αρίθμησης. Οι υπολογισμοί, όπως και οι φυσικές γλώσσες, επεξεργάζονται πληροφορίες, που μπορεί να περιλαμβάνουν ακέραιους, γραφήματα, προγράμματα ή άλλες οντότητες, που σε όλες τις περιπτώσεις θα πρέπει να αναπαριστώνται σε μία γενική μορφή. Στην πραγματικότητα οι υπολογισμοί τελικά επεξεργάζονται συμβολοσειρές, που αναπαριστούν τα αντικείμενα που περιλαμβάνει η πληροφορία. Στη Θεωρία Υπολογισμού, κάθε συμβολοσειρά εκφράζει έναν υπολογισμό, δηλαδή την εκτέλεση μιας μηχανής, όπως η Μηχανή του Turing. Αυτό ι- σχύει, επειδή κάθε τυπικά ορισμένη μηχανή ή μοντέλο υπολογισμού εκτελεί υπολογισμούς, που εξαρτώνται από το πρόγραμμα, που φορτώνεται και από την είσοδο που δέχεται μέσω μιας «ταινίας εισόδου». Στα περισσότερα συστήματα αρκεί να εξετάσουμε υπολογισμούς με πεπερασμένες συμβολοσειρές. Άπειρες σε μήκος συμβολοσειρές χρησιμοποιούνται στη μελέτη των υπολογισμών αλ- 1

18 2 ΚΕΦ ΑΛΑΙΟ 1. ΓΛΩΣΣΕΣ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ ληλεπιδραστικών συστημάτων (reactive systems), όπως είναι τα λειτουργικά συστήματα, που υποτίθεται ότι εκτελούνται - τουλάχιστο σε αντιληπτικό και μαθηματικό επίπεδο - για πάντα. Τέτοιου είδους συμπεριφορές τελικά δε μπορούν να μοντελοποιηθούν σ ένα υψηλό επίπεδο χρησιμοποιώντας αποκλειστικά συμβολοσειρές πεπερασμένου μήκους. Η μελέτη των συμβολοσειρών και των γλωσσών είναι σημαντική για τη θεωρία της Επιστήμης των Υπολογιστών. Μετρώντας του χρόνους εκτέλεσης ή τις απαιτήσεις αποθήκευσης των προγραμμάτων ως προς τα μήκη των συμβολοσειρών εισόδου τους, μπορούμε να χαρακτηρίσουμε την πολυπλοκότητά τους σε υπολογιστικό χρόνο και χώρο. Μελετώντας πρότυπα που ακολουθούνται από σύνολα συμβολοσειρών, μπορούμε να ταξινομήσουμε το βαθμό στον οποίο επιλύονται τα διάφορα προβλήματα. Στο κεφάλαιο αυτό επικεντρωνόμαστε στον τυπικό ορισμό των γλωσσών που χρησιμοποιούμε στην Επιστήμη των Υπολογιστών και των ιδιοτήτων τους. Εξετάζουμε μοντέλα υπολογισμού, που σχετίζονται με τη διαδικασία αναγνώρισης συγκεκριμένων γλωσσών και τελικά παρουσιάζουμε μία κατάταξη των τυπικά ορισμένων γλωσσών σε κλάσεις, ανάλογα με το μοντέλο υπολογισμού που τις αναγνωρίζει. Παρουσιάζουμε επίσης τη Θέση των Church και Turing για τον τυπικό ορισμό αυτού που σήμερα αντιλαμβανόμαστε ως «μηχανιστικό υπολογισμό» ή αλγόριθμο και εισάγουμε την έννοια του μη ντεντερμινισμού. Το κεφάλαιο κλείνει με μία αναφορά σε επεκτάσεις των κλασικών μοντέλων υπολογισμού και στις εφαρμογές τους. 1.1 Συμβολοσειρές Οι χαρακτήρες ή αλλιώς τα σύμβολα των συμβολοσειρών είναι πάντα στοιχεία ενός πεπερασμένου, μη κενού διατεταγμένου συνόλου συμβόλων, που το λέμε αλφάβητο. Παράδειγμα 1.1 (Αλφάβητα γλωσσών) Παρακάτω δίνουμε παραδείγματα γνωστών συνόλων, που χρησιμοποιούνται ως αλφάβητα: το Ελληνικό αλφάβητο {α, β,..., ω} το Λατινικό αλφάβητο {a, b,... z} το «δυαδικό» αλφάβητο {0, 1}

19 1.1. ΣΥΜΒΟΛΟΣΕΙΡΕΣ 3 Συμβολοσειρά είναι μία πεπερασμένη ακολουθία συμβόλων ενός αλφαβήτου. Μία συμβολοσειρά που αποτελείται από τα σύμβολα a 1, a 2,..., a n θα τη γράφουμε με απλή παράθεσή τους ως a 1 a 2... a n. Η συμβολοσειρά που έχει μηδέν σύμβολα λέγεται κενή συμβολοσειρά και συμβολίζεται με ɛ. Το σύνολο όλων των συμβολοσειρών ενός αλφαβήτου Σ το αναπαριστούμε κατά σύμβαση με Σ. Το μήκος της συμβολοσειράς w = a 1 a 2... a n συμβολίζεται με w και είναι n, δηλαδή ίσο με τον αριθμό των συμβόλων της συμβολοσειράς. Για οποιοδήποτε σύμβολο c και συμβολοσειρά w, η συνάρτηση # c (w) επιστρέφει το πόσες φορές εμφανίζεται το σύμβολο c στη w. Παράδειγμα 1.2 (Συμβολοσειρές και μήκος συμβολοσειρών) Παραδείγματα συμβολοσειρών από διαφορετικά αλφάβητα: Αλφάβητο Σύμβολα αλφαβήτου Συμβολοσειρές Το Ελληνικό αλφάβητο {α, β,..., ω} ɛ, ενα, τρια Το Λατινικό αλφάβητο {a, b,... z} ɛ, one, three Το «δυαδικό» αλφάβητο {0, 1} ɛ, 0, Για κάποιες από τις παραπάνω συμβλοσειρές έχουμε: ɛ = 0 τρια = = 5 # 0 (01011) = 2 Παράθεση δύο συμβολοσειρών u και w είναι η συμβολοσειρά που γράφεται ως uw και σχηματίζεται με απλή παράθεση της ακολουθίας συμβόλων της w αμέσως μετά από τα σύμβολα της u. Σ αυτή την περίπτωση θα έχουμε uw = u + w. Η κενή συμβολοσειρά είναι το ουδέτερο στοιχείο για την παράθεση συμβολοσειρών ενός αλφαβήτου Σ, δηλαδή ισχύει w Σ, wɛ = ɛw = w Επίσης, η παράθεση ως συνάρτηση που ορίζεται στο σύνολο των συμβολοσειρών έχει την προσεταριστική ιδιότητα, δηλαδή u, v, w Σ, ((uv)w) = (u(vw))

20 4 ΚΕΦ ΑΛΑΙΟ 1. ΓΛΩΣΣΕΣ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ Επανάληψη w i μιας συμβολοσειράς w για έναν οποιοδήποτε φυσικό αριθμό i είναι η συμβολοσειρά, που ορίζεται επαγωγικά ως εξής: Εχουμε για παράδειγμα: w 0 = ɛ w i+1 = w i w (01) 2 = 0101 Τέλος, ορίζουμε την αντίστροφη w R μιας συμβολοσειράς w πάλι επαγωγικά, ως εξής: Αν w = 0 τότε w R = w = ɛ Αν w 1 τότε α Σ, u Σ ώστε w = uα και w R = αu R Θεώρημα 1.1 (Παράθεση και αντιστροφή συμβολοσειρών) Για δύο οποιεσδήποτε συμβολοσειρές u και w ισχύει (uw) R = w R u R Απόδειξη: Η απόδειξη γίνεται με επαγωγή ως προς w. Μία συμβολοσειρά u είναι υποσυμβολοσειρά της w αν και μόνο αν η u εμφανίζεται σε συνεχόμενες θέσεις ως ένα μέρος της w. Μία συμβολοσειρά u είναι κανονική υποσυμβολοσειρά της w αν και μόνο αν η u είναι υποσυμβολοσειρά της w και συγχρόνως u w. Κάθε συμβολοσειρά είναι υποσυμβολοσειρά (όχι όμως κανονική υποσυμβολοσειρά) του εαυτού της. Η κενή συμβολοσειρά ɛ είναι υποσυμβολοσειρά κάθε άλλης συμβολοσειράς. Μία συμβολοσειρά u είναι κατάληξη της w αν και μόνο αν v Σ, w = vu. Μία συμβολοσειρά u είναι κανονική κατάληξη της w, αν και μόνο αν η u είναι κατάληξη της w και συγχρόνως u w. Η κενή συμβολοσειρά ɛ είναι κατάληξη κάθε άλλης συμβολοσειράς. Από την άλλη, μία συμβολοσειρά u είναι πρόθεμα της w αν και μόνο αν v Σ, w = uv. Η συμβολοσειρά u είναι κανονικό πρόθεμα της w, αν και μόνο αν η u είναι πρόθεμα της w και συγχρόνως u w. Η κενή συμβολοσειρά ɛ είναι πρόθεμα κάθε άλλης συμβολοσειράς. Η αναζήτηση πληροφορίας είναι μία από τις πιο σημαντικές επεξεργασίες και στις περισσότερες περιπτώσεις στηρίζεται στην ύπαρξη κάποιας σχέσης, που ορίζει μία διάταξη μεταξύ των οντοτήτων του συνόλου αναζήτησης. Μία

21 1.1. ΣΥΜΒΟΛΟΣΕΙΡΕΣ 5 ευρέως χρησιμοποιούμενη σχέση μεταξύ συμβολοσειρών είναι η σύγκρισή τους αλφαβητικά με το ίδιο κριτήριο, που αυτές διατάσσονται σε κάθε ταξινομημένη λίστα όπως ο τηλεφωνικός κατάλογος. Η συγκεκριμένη σχέση και διάταξη των συμβολοσειρών ορίζεται ως εξής: Ορισμός 1.1 (Αλφαβητική διάταξη συμβολοσειρών) Για δύο συμβολοσειρές u και w στο αλφάβητο Σ λέμε ότι η u είναι αλφαβητικά μικρότερη από τη συμβολοσειρά w στο Σ ή ισοδύναμα ότι η w είναι αλφαβητικά μεγαλύτερη από την u, αν ισχύει κάποια από τις παρακάτω δύο περιπτώσεις: η u είναι κανονικό πρόθεμα της w, ή για κάποια v Σ και κάποια σύμβολα α, β Σ τέτοια ώστε το α να προηγείται του β στο Σ, η συμβολοσειρά vα είναι πρόθεμα της u και η vβ να είναι πρόθεμα της w. Ενα διατεταγμένο υποσύνολο του Σ λέμε ότι είναι σε αλφαβητική διάταξη, αν για κάθε δύο συμβολοσειρές u, w, με την u να προηγείται της w μέσα στο υποσύνολο, δε συμβαίνει η w να είναι αλφαβητικά μικρότερη από την u στο Σ. Παράδειγμα 1.3 (Αλφαβητική διάταξη) Ας θεωρήσουμε το αλφάβητο Σ = {0, 1}. Η συμβολοσειρά 01 είναι αλφαβητικά μικρότερη στο Σ από τη συμβολοσειρά 01100, επειδή η 01 είναι κανονικό πρόθεμα της Από την άλλη μεριά, η είναι αλφαβητικά μικρότερη από την 0111, επειδή οι δύο συμβολοσειρές συμφωνούν στα τρία πρώτα σύμβολά τους και το τέταρτο σύμβολο της είναι μικρότερο από το τέταρτο σύμβολο της Στο σύνολο Σ = {ɛ, 0, 00, 000, 001, 01, 010, 011, 1, 10, 100, 101, 11, 110, 111} των συμβολοσειρών με μήκος όχι μεγαλύτερο του 3 τα στοιχεία του απαριθμούνται σε αλφαβητική διάταξη. Η αλφαβητική διάταξη είναι ένα επαρκές κριτήριο για πεπερασμένα σύνολα, επειδή σ ένα τέτοιο σύνολο μπορεί τελικά να προσεγγιστεί η κάθε συμβολοσειρά που περιέχεται σ αυτό. Ομως στην περίπτωση άπειρων συνόλων συμβολοσειρών η αλφαβητική ταξινόμηση δεν είναι ικανοποιητική, επειδή μπορεί για κάποιες συμβολοσειρές ο αριθμός όσων προηγούνται να μην είναι φραγμένος. Μία τέτοια περίπτωση είναι για παράδειγμα αυτή της συμβολοσειράς 1 στο αλφαβητικά ταξινομημένο σύνολο {0, 1}, εκεί δηλαδή που οι συμβολοσειρές

22 6 ΚΕΦ ΑΛΑΙΟ 1. ΓΛΩΣΣΕΣ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ 0, 00, 000,... προηγούνται της συμβολοσειράς 1. Το συγκεκριμένο πρόβλημα καταδεικνύει την αναγκαιότητα του παρακάτω ορισμού της λεξικογραφικής διάταξης των συμβολοσειρών. Με τη συγκεκριμένη διάταξη, ο αριθμός των συμβολοσειρών που προηγούνται μιας δοθείσης συμβολοσειράς είναι πάντα πεπερασμένος. Ορισμός 1.2 (Κανονική ή λεξικογραφική διάταξη) Για δύο συμβολοσειρές u και w στο αλφάβητο Σ λέμε ότι η u είναι κανονικά ή λεξικογραφικά μικρότερη από τη συμβολοσειρά w στο Σ ή ισοδύναμα ότι η w είναι λεξικογραφικά μεγαλύτερη από την u, αν ισχύει κάποια από τις παρακάτω δύο περιπτώσεις: η u έχει μικρότερο μήκος από την w, ή οι u και w έχουν το ίδιο μήκος, αλλά η u είναι αλαφαβητικά μικρότερη από την w. Ενα διατεταγμένο υποσύνολο του Σ λέμε ότι είναι διατεταγμένο κανονικά ή λεξικογραφικά, αν για κάθε δύο συμβολοσειρές u, w, με την u να προηγείται της w μέσα στο υποσύνολο, δε συμβαίνει η w να είναι κανονικά μικρότερη από την u στο Σ. Παράδειγμα 1.4 (Κανονική ή λεξικογραφική διάταξη) Ας θεωρήσουμε το αλφάβητο Σ = {0, 1}. Η συμβολοσειρά 11 είναι λεξικογραφικά μικρότερη στο Σ από τη συμβολοσειρά 000, επειδή η 11 έχει μικρότερο μήκος από την 000. Από την άλλη μεριά, η 00 είναι λεξικογραφικά μικρότερη από την 11, επειδή οι δύο συμβολοσειρές έχουν ίσο μήκος και η 00 είναι αλφαβητικά μικρότερη από την 11. Το σύνολο Σ = {ɛ, 0, 1, 00, 01, 10, 11, 000, 001,...} είναι σε λεξικογραφική διάταξη. Επιστρέφουμε τώρα στο ζήτημα της αναπαραστάσης της πληροφορίας με βάση της έννοιες των συμβολοσειρών ως προς ένα αλφάβητο, που ορίσαμε παραπάνω. Κάθε τέτοια αναπαράσταση μπορούμε να την ορίσουμε ως μία αντιστοίχιση αντικειμένων σε συμβολοσειρές με βάση κάποιους κανόνες. Τυπικά, μία αναπαράσταση ή κωδικοποίηση ενός συνόλου D σ ένα αλφάβητο Σ είναι μία συνάρτηση f από το D στο 2 Σ, που ικανοποιεί την παρακάτω συνθήκη: για δύο οποιαδήποτε στοιχεία e 1 και e 2 του D, τα f(e 1 ) και f(e 2 ) είναι διακριτά μη κενά σύνολα. Σ αυτή την περίπτωση, κάθε στοιχείο του f(e) θα λέμε ότι είναι μία αναπαράσταση ή κωδικοποίηση του e.

23 1.2. ΓΛ ΩΣΣΕΣ ΚΑΙ ΠΡΆΞΕΙΣ ΓΛΩΣΣ ΩΝ 7 Παράδειγμα 1.5 (Κωδικοποίηση με συμβολοσειρές) Μία αναπαράσταση των φυσικών αριθμών με βάση το αλφάβητο Σ = {0, 1} μπορεί να είναι η συνάρτηση f 1 με f 1 (0) = {0, 00, 0000,...}, f 1 (1) = {1, 01, 001, 0001,...}, f 1 (2) = {10, 010, 0010, 00010,...}, f 1 (3) = {11, 011, 0011, 00011,...} κλπ. Εναλλακτικά, μία άλλη αναπαράσταση f 2 των φυσικών αριθμών με το ίδιο αλφάβητο θα μπορούσε να αντιστοιχεί στον i- οστό φυσικό αριθμό το σύνολο, που αποτελείται από την i-οστή λεξικογραφικά μικρότερη συμβολοσειρά στο Σ. Σ αυτή την περίπτωση θα είχαμε f 2 (0) = {ɛ}, f 2 (1) = {0}, f 2 (2) = {1}, f 2 (3) = {00}, f 2 (4) = {01}, f 2 (5) = {10} κλπ. 1.2 Γλώσσες και πράξεις γλωσσών Οι συμβολοσειρές είναι ένα μέσο αναπαράστασης της πληροφορίας στο βαθμό όμως που υπάρχει μία συνάρτηση, που παρέχει την ερμηνεία των συμβολοσειρών ως προς την πληροφορία, που αυτές αναπαριστούν. Μία ερμηνεία είναι το αντίστροφο της αντιστοίχισης, που προκύπτει από μία αναπαράσταση, δηλαδή μία ερμηνεία είναι κάποια συνάρτηση g από το Σ στο σύνολο D των αντικειμένων της πληροφορίας, για κάποιο αλφάβητο Σ. Για παράδειγμα, η συμβολοσειρά 111, ερμηνεύεται ως ο αριθμός εκατόν έντεκα σε αναπαράσταση αριθμού στο δεκαδικό σύστημα ή ως ο αριθμός επτά σε αναπαράσταση αριθμού του δυαδικού συστήματος. Κατά την επικοινωνία δύο μερών η πληροφορία που μεταβιβάζεται είναι άρρηκτα δεμένη με την αναπαράσταση και την ερμηνεία της. Η αναπαράστασή της παρέχεται από τον αποστολέα και η ερμηνεία της από τον παραλήπτη. Κατά συνέπεια, από τη σκοπιά των δύο μερών της επικοινωνίας, μία γλώσσα μπορεί απλά να είναι μία συλλογή συμβολοσειρών, καθώς οι συναρτήσεις αναπαράστασης και ερμηνείας είναι γνωστές στα μέρη. Παράδειγμα 1.6 (Γλώσσες που χρησιμοποιούμε) Αναφέρουμε παραδείγματα γλωσσών, που χρησιμοποιούμε στην καθημερινή μας ζωή: Το σύνολο των επιτρεπτών ονομάτων στη γλώσσα προγραμματισμού C. Η γλώσσα των επιτρεπτών αλγεβρικών εκφράσεων, που σχηματίζονται με το όνομα (μεταβλητής) a, τους δυαδικούς τελεστές + και και τη χρήση παρενθέσεων. Δύο από τις συμβολοσειρές αυτής της γλώσσας είναι οι a + a a και (a + a (a + a)).

24 8 ΚΕΦ ΑΛΑΙΟ 1. ΓΛΩΣΣΕΣ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ Η γλώσσα των συμβολοσειρών με αριστερές και δεξιές παρενθέσεις σε ισορροπημένα ζεύγη. Μερικές συμβολοσειρές αυτής της γλώσσας είναι οι ɛ, ()(()) και (((()))). Το σύνολο των επιτρεπτών προγραμμάτων στη C Ορισμός γλωσσών Μία γλώσσα είναι ένα πεπερασμένο ή άπειρο σύνολο συμβολοσειρών ενός πεπερασμένου αλφάβητου Σ, δηλαδή κάθε γλώσσα είναι υποσύνολο του Σ. Για τον ορισμό γλωσσών χρησιμοποιούμε διάφορες τεχνικές. Καθώς οι γλώσσες είναι σύνολα ένας τρόπος ορισμού τους είναι η χρήση τεχνικών ορισμού συνόλων. Παράδειγμα 1.7 (Ορισμός γλώσσας) Εστω η γλώσσα L = {w {0, 1} : τα 0 προηγούνται όλων των 1}. Οι συμβολοσειρές ɛ, 0, 00, και 11 ανήκουν στην L. Προσέξτε ότι κάποιες συμβολοσειρές ικανοποιούν με τετριμμένο τρόπο την απαίτηση για να ανήκουν στην L. Πιο συγκεκριμένα, αν σε μία συμβολοσειρά δεν υπάρχουν καθόλου 0 ή καθόλου 1, τότε δεν υπάρχει τρόπος να παραβιαστεί η απαίτηση και γι αυτό το λόγο οι ɛ, 0, 00 και 11 ικανοποιούν την απαίτηση με τετριμμένο τρόπο και ανήκουν στην L. Παράδειγμα 1.8 (Ορισμός γλώσσας) Παρακάτω δίνουμε κάποια παραδείγματα γλωσσών με αλφάβητο το {α, b}. Η κενή γλώσσα. Η πεπερασμένη γλώσσα {ɛ, α, αbb}. Η γλώσσα με τις καρκινικές ή παλίνδρομες συμβολοσειρές του {α, b}, δηλαδή τις συμβολοσειρές όπως η αbbα, που διαβάζονται με τον ίδιο τρόπο από τα αριστερά προς τα δεξιά και αντίστροφα. {w {α, b}, # α (w) > # b (w)} {w {α, b}, w 2 και η w αρχίζει και τελειώνει με b}

25 1.2. ΓΛΩΣΣΕΣ ΚΑΙ ΠΡΑΞΕΙΣ ΓΛΩΣΣΩΝ 9 Η μικρότερη γλώσσα για οποιοδήποτε αλφάβητο είναι η, που έχει πληθικό αριθμό 0. Η μεγαλύτερη γλώσσα για ένα αλφάβητο Σ είναι η Σ. Ποιος είναι όμως ο πληθικός αριθμός της Σ ; Αν Σ =, τότε Σ = {ɛ} και Σ = 1. Για την περίπτωση που το Σ είναι μη κενό έχουμε: Θεώρημα 1.2 (Πληθικός αριθμός του Σ ) Αν Σ τότε η Σ είναι αριθμήσιμα άπειρη. Απόδειξη: Τα στοιχεία της Σ μπορούν να απαριθμηθούν λεξικογραφικά. Από το παραπάνω θεώρημα και επειδή κάθε γλώσσα μ ένα αλφάβητο Σ είναι υποσύνολο του Σ συμπεραίνουμε ότι όλες οι γλώσσες είτε είναι πεπερασμένες, είτε είναι αριθμήσιμα άπειρες. Το σύνολο των γλωσσών, που μπορούν να οριστούν για ένα αλφάβητο Σ είναι το δυναμοσύνολο 2 Σ, δηλαδή το σύνολο με στοιχεία όλα τα υποσύνολα του Σ. Αν Σ =, τότε Σ = {ɛ} και το δυναμοσύνολο 2 Σ είναι το {, {ɛ}}. Για την περίπτωση που το Σ είναι μη κενό έχουμε: Θεώρημα 1.3 (Αριθμός των γλωσσών ενός αλφαβήτου) Αν Σ τότε το σύνολο των γλωσσών με αλφάβητο Σ είναι μη αριθμήσιμα άπειρο. Απόδειξη: 2 Σ.... Το σύνολο των γλωσσών με αλφάβητο Σ είναι το δυναμοσύνολο Πράξεις μεταξύ γλωσσών Καθώς οι γλώσσες είναι σύνολα, οι γνωστές πράξεις μεταξύ συνόλων είναι καλά ορισμένες πράξεις μεταξύ γλωσσών. Οι πιο χρήσιμες απ αυτές είναι η ένωση, η τομή, η διαφορά και το συμπλήρωμα. Ειδικά για το συμπλήρωμα μιας γλώσσας, αυτό ορίζεται ως προς το σύνολο Σ όλων των πιθανών συμβολοσειρών με το αλφάβητο της γλώσσας, εκτός και αν ρητά αναφέρεται κάτι διαφορετικό. Η ένωση δύο γλωσσών L 1 και L 2 συμβολίζεται με L 1 L 2 και είναι η γλώσσα με τις συμβολοσειρές, που ανήκουν στην L 1 ή στην L 2, δηλαδή η {w, w L 1 ή w L 2 }. Η τομή της L 1 με την L 2 συμβολίζεται με L 1 L 2

26 10 ΚΕΦ ΑΛΑΙΟ 1. ΓΛΩΣΣΕΣ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ και είναι η γλώσσα με όλες τις συμβολοσειρές, που ανήκουν τόσο στην L 1 όσο και στην L 2, δηλαδή η {w, w L 1 και w L 2 }. Το συμπλήρωμα μιας γλώσσας L με αλφάβητο Σ συμβολίζεται με L και αναφέρεται στη γλώσσα, που αποτελείται από όλες τις συμβολοσειρές του Σ, που δεν ανήκουν στην L, δηλαδή τη {w, w Σ και w L}. Η διαφορά δύο γλωσσών L 1 και L 2 συμβολίζεται με L 1 L 2 και αναφέρεται στη γλώσσα, που αποτελείται από όλες τις συμβολοσειρές, που ανήκουν στην L 1, αλλά δεν ανήκουν στην L 2, δηλαδή την {w, w L 1 και w L 2 }. Τρεις ιδιαίτερα σημαντικές πράξεις μεταξύ γλωσσών ορίζονται με τη χρήση πράξεων μεταξύ συμβολοσειρών, που έχουμε ήδη ορίσει. Η παράθεση δύο γλωσσών L 1 και L 2 με αλφάβητο Σ είναι η γλώσσα: L 1 L 2 = {w Σ : w = uv για u L 1, v L 2 } Η παράθεση γλωσσών είναι προσεταιριστική πράξη, δηλαδή για όλες τις γλώσσες L 1, L 2 και L 3 ισχύει: (L 1 L 2 )L 3 = L 1 (L 2 L 3 ) Εστω τώρα η γλώσσα L με αλφάβητο Σ. Η κλειστότητα ή αλλιώς Kleene star της L είναι η γλώσσα: L = {ɛ} {w Σ : k 1, w = w 1 w 2... w k για w 1, w 2,... w k L} δηλαδή η L είναι το σύνολο των συμβολοσειρών, που σχηματίζονται με παράθεση μηδέν ή περισσότερων συμβολοσειρών της L. Αν η L δεν είναι κενή και δεν είναι η {ɛ}, τότε η L σίγουρα περιέχει έναν άπειρο αριθμό συμβολοσειρών. Αν L =, τότε L = {ɛ}, καθώς δεν υπάρχουν συμβολοσειρές, που θα μπορούσαν να παρατεθούν στην ɛ. Αν τώρα L = {ɛ}, τότε η L είναι επίσης η {ɛ}. Η γλώσσα με συμβολοσειρές, που δίνονται ως παράθεση τουλάχιστο ενός στοιχείου της L γράφεται ως: L + = LL Εστω πάλι η γλώσσα L με αλφάβητο Σ. Η αντίστροφη της L είναι η γλώσσα: L R = {w Σ : w = v R για κάποια v L} δηλαδή η L R είναι το σύνολο των συμβολοσειρών, που σχηματίζονται από την αντιστροφή κάποιας συμβολοσειράς της L.

27 1.2. ΓΛΩΣΣΕΣ ΚΑΙ ΠΡΑΞΕΙΣ ΓΛΩΣΣΩΝ Παραγωγή και αναγνώριση γλωσσών στη Θεωρία Υπολογισμού Καθώς οι γλώσσες είναι σύνολα, από υπολογιστικής άποψης ο ορισμός μιας γλώσσας μπορεί να είναι: ένας παραγωγός συμβολοσειρών, που περιγράφει το πώς παράγονται όλα τα στοιχεία της γλώσσας ή ένας αναγνωριστής συμβολοσειρών, που αποφασίζει αν μία συμβολοσειρά ανήκει ή δεν ανήκει στη γλώσσα. Στη Θεωρία Υπολογισμού, κάθε πρόβλημα που επιθυμούμε να επιλύσουμε το διατυπώνουμε πρώτα χρησιμοποιώντας μία αναπαράσταση με συμβολοσειρές. Τα αποτελέσματα που έχουμε δίνουν απάντηση στο ερώτημα «Ανήκει η w στη γλώσσα L;», που είναι ένα πρόβλημα απόφασης. Το ερώτημα που λογικά προκύπτει είναι αν μία θεωρία που περιορίζεται σ αυτού του τύπου τα αποτελέσματα είναι πρακτικά χρήσιμη στη μελέτη πραγματικών υπολογιστικών προβλημάτων. Παρατηρούμε λοιπόν ότι με την κατάλληλη αναπαράσταση, πολλά προβλήματα της καθημερινότητας μπορούν να αναδιατυπωθούν ως πρόβλημα απόφασης του αν μία συμβολοσειρά ανήκει σε μία γλώσσα ή όχι. Θα δούμε παραδείγματα προβλημάτων, που εντάσσονται σε δύο κατηγορίες: Προβλήματα που είναι ήδη διατυπωμένα ως προβλήματα απόφασης. Γι αυτά, χρειάζεται να βρούμε μία αναπαράσταση της εισόδου τους με συμβολοσειρές και στη συνέχεια να ορίσουμε μία γλώσσα, που θα περιέχει ακριβώς εκείνο το σύνολο των εισόδων, για τις οποίες η απάντηση στο ερώτημα της απόφασης είναι ΝΑΙ. Προβλήματα, που δεν έχουν εξαρχής περιγραφεί ως ερωτήματα απόφασης. Γι αυτά, μπορεί να απαιτούνται διαφόρων ειδών αποτελέσματα, που οδηγούν στην αναδιατύπωση του προβλήματος ως πρόβλημα απόφασης, που στη συνέχεια θα πρέπει να αναπαρασταθεί ως διαδικασία αναγνώρισης γλώσσας. Στα παραδείγματα που ακολουθούν συμβολίζουμε με < X > μία αναπαράσταση του αντικειμένου X με συμβολοσειρά. Με το συμβολισμό < X, Y > εκφράζουμε την αναπαράσταση δύο αντικειμένων, δηλαδή του X και του Y με μία συμβολοσειρά. Παράδειγμα 1.9 (Αναγνώριση πρώτων αριθμών) Πρόβλημα: δοθέντος ενός μη αρνητικού ακεραίου n είναι αυτός πρώτος; Α- ναζητούμε δηλαδή αν υπάρχει τουλάχιστο ένας θετικός ακέραιος παράγοντας διαφορετικός του αριθμού αυτού ή της μονάδας.

28 12 ΚΕΦ ΑΛΑΙΟ 1. ΓΛΩΣΣΕΣ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ Κωδικοποίηση του προβλήματος: αναπαριστούμε κάθε μη αρνητικό ακέραιο ως συμβολοσειρά από δυαδικά ψηφία. Σ αυτή την περίπτωση, η γλώσσα που αποφασίζεται είναι η: L prime = {w : η w είναι η δυαδική αναπαράσταση ενός πρώτου αριθμού} Παράδειγμα 1.10 (Αναζήτηση προτύπου στον παγκόσμιο ιστό) Πρόβλημα: δοθείσης μιας συμβολοσειράς αναζήτησης w και ενός πόρου d του παγκόσμιου ιστού ταιριάζει το δεύτερο με το πρώτο; Μ άλλα λόγια, θα έπρεπε μία μηχανή αναζήτησης με είσοδο w να επιστρέφει το d; Σ αυτή την περίπτωση, η γλώσσα που αποφασίζεται είναι η: L W W W = {< w, d >: το d ταιριάζει στο ερώτημα w} Παράδειγμα 1.11 (Το πρόβλημα του τερματισμού) Πρόβλημα: δοθέντος ενός προγράμματος p, που έχει γραφεί στη γλώσσα προγραμματισμού C είναι σίγουρο ότι το πρόγραμμα p τερματίζει για όλες τις εισόδους; Σ αυτή την περίπτωση, η γλώσσα που αποφασίζεται είναι η: L halt = {p : το πρόγραμμα p τερματίζει για όλες τις εισόδους} Θα θέλαμε πολύ να υπάρχει ένας αλγόριθμος, που θα μπορούσε να αποφασίσει αν μία συμβολοσειρά - πρόγραμμα - ανήκει στη γλώσσα L halt, γιατί έτσι θα αποδεικνύαμε την ορθότητα των προγραμμάτων που συντάσσουμε. Δυστυχώς ένα θεώρημα της Θεωρίας Υπολογισμού έχει δείξει ότι ένας τέτοιος αλγόριθμος δε μπορεί να υπάρξει. Παράδειγμα 1.12 (Ευθυγράμμιση ακολουθίας πρωτεΐνης) Πρόβλημα Υπολογιστικής Βιολογίας [12]: δοθέντος ενός μέρους f μιας πρωτεΐνης και ενός μορίου πρωτεΐνης pr, μπορεί το f να είναι μέρος του pr; Κωδικοποίηση του προβλήματος: αναπαριστούμε κάθε μόριο πρωτεΐνης ή ενός μέρους του ως μία ακολουθία στοιχείων αμινοξέων. Ορίζουμε ένα χαρακτήρα για το καθένα από τα είκοσι πιθανά αμινοξέα. Ετσι, θα μπορούσε για παράδειγμα η συμβολοσειρά AGHTYWDNR να αναπαριστά μέρος κάποιας πρωτεΐνης. Σ αυτή την περίπτωση, η γλώσσα που αποφασίζεται είναι η:

29 1.3. ΚΛΆΣΕΙΣ ΓΛΩΣΣ ΩΝ 13 L pr = {< f, p >: το f θα μπορούσε να είναι μέρος του pr} Πολλά προβλήματα που δεν είναι διατυπωμένα ως προβλήματα απόφασης μπορούν να μετασχηματιστούν σε τέτοια με μία αναδιατύπωσή τους ως προβλήματα αναγνώρισης γλώσσας. Η βασική ιδέα είναι η αναπαράσταση σε μία συμβολοσειρά τόσο των εισόδων, όσο και των εξόδων του αρχικού προβλήματος. Ετσι, για παράδειγμα, αν για το πρόβλημα Π έχουμε δύο εισόδους i 1 και i 2 και παράγεται ένα αποτέλεσμα r, τότε μπορούμε να σχηματίσουμε συμβολοσειρές της μορφής i 1 ; i 2 ; r. Σ αυτή την περίπτωση, η συμβολοσειρά w = u; v; z θα ανήκει στη γλώσσα L για το πρόβλημα Π, αν και μόνο αν z είναι η συμβολοσειρά που αναπαριστά το αποτέλεσμα για δύο εισόδους στο πρόβλημα Π, που εκφράζονται από τις συμβολοσειρές x και y. Παράδειγμα 1.13 ( Άθροιση ακεραίων ως πρόβλημα απόφασης) Πρόβλημα: υπολογισμός του αθροίσματος δύο μη αρνητικών ακεραίων. Κωδικοποίηση του προβλήματος: αναπαριστούμε τον κάθε αριθμό ως συμβολοσειρά δεκαδικών ψηφίων και μετασχηματίζουμε το αρχικό πρόβλημα σ ένα πρόβλημα ελέγχου του αν σε μία τριάδα αριθμών ο τρίτος είναι το άθροισμα των δύο πρώτων. Ετσι, κάθε περίπτωση του προβλήματος διατυπώνεται με μία συμβολοσειρά της μορφής: < ακέραιος 1 > + < ακέραιος 2 >=< ακέραιος 3 > Τότε, η γλώσσα που αποφασίζεται για το συγκεκριμένο πρόβλημα είναι η: L sum = {w : η w είναι της μορφής < ακέραιος 1 > + < ακέραιος 2 >= < ακέραιος 3 > με < ακέραιος 1 >, < ακέραιος 2 >, < ακέραιος 3 > στοιχεία της {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} + και ο ακέραιος 3 να είναι το άθροισμα των ακέραιος 1 και ακέραιος 2 } 1.3 Κλάσεις γλωσσών Κλάσεις γλωσσών ως προς τις μηχανές για την αναγνώρισή τους Στα επόμενα κεφάλαια θα επεξεργαστούμε μία σειρά μοντέλων υπολογισμού, που το καθένα είναι ισχυρότερο εκφραστικά από τα προηγούμενα. Το κάθε

30 14 ΚΕΦ ΑΛΑΙΟ 1. ΓΛΩΣΣΕΣ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ μοντέλο υπολογισμού έχει τη δυνατότητα εκτέλεσης προγραμμάτων, όπου ένα πρόγραμμα εδώ ορίζεται ως μία πεπερασμένη ακολουθία εντολών με ένα πεδίο ορισμού, έστω D. Το πεδίο ορισμού D λέμε ότι είναι το πεδίο τιμών των μεταβλητών και υποθέτουμε ότι αποτελείται από ένα σύνολο στοιχείων, από τα οποία ένα ξεχωρίζει, επειδή αντιστοιχεί στην αρχική τιμή των μεταβλητών του προγράμματος. Καθένα από τα στοιχεία του συνόλου D υποθέτουμε ότι είναι ένας συνδυασμός ανάθεσης τιμών στις μεταβλητές. Κατά την εκτέλεση ενός τέτοιου προγράμματος διακρίνουμε δύο πιθανά ενδεχόμενα: (α) αποδοχή, που αντιστοιχεί σε κάποια εντολή τερματισμού μετά από επιτυχή ολοκλήρωση της εκτέλεσης και που μπορεί να συμβεί μόνο μετά από την προσέγγιση του τέλους της εισόδου 1 και (β) απόρριψη, που αντιστοιχεί σε κάποια εντολή τερματισμού μετά από ανεπιτυχή ολοκλήρωση της εκτέλεσης. Μία ακολουθία βημάτων εκτέλεσης λέγεται υπολογισμός αποδοχής αν τερματίζει εξαιτίας κάποιας εντολής αποδοχής. Αντίθετα, μία ακολουθία βημάτων εκτέλεσης για είσοδο, που δεν έχει υπολογισμούς αποδοχής, λέγεται υπολογισμός απόρριψης. Αν ένα πρόγραμμα έχει έναν υπολογισμό αποδοχής για μία είσοδο, τότε λέμε ότι αυτή η είσοδος είναι αποδεκτή ή αλλιώς αναγνωρίζεται. Σε διαφορετική περίπτωση, λέμε ότι η είσοδος δεν είναι αποδεκτή ή αλλιώς απορρίπτεται από το πρόγραμμα. Ενα πρόγραμμα λέμε ότι παράγει την έξοδο y για δοθείσα είσοδο x, αν αυτό έχει έναν υπολογισμό αποδοχής για τη x, που να παράγει την έξοδο y. Οι έξοδοι των υπολογισμών απόρριψης θεωρούμε ότι είναι απροσδιόριστες. Παράδειγμα 1.14 (Προβλήματα της υπολογιστικής συμπεριφοράς των προγραμμάτων) Γράφουμε προγράμματα για να επιλύουμε προβλήματα, αλλά μία σειρά από ενδιαφέροντα προβλήματα αφορούν τα προγράμματα που γράφουμε. Στο παράδειγμα αυτό παραθέτουμε μία λίστα τέτοιων προβλημάτων [7]. 1. Το πρόβλημα που εξετάσαμε στο Παράδειγμα 1.11, που είναι γνωστό ως το πρόβλημα του τερματισμού των προγραμμάτων. 2. Πρόβλημα του τερματισμού ενός προγράμματος: δοθέντος ενός προγράμματος p και μιας εισόδου x, τερματίζει το p με είσοδο x, δηλαδή τερματίζουν όλοι οι υπολογισμοί του p για την είσοδο x; 3. Πρόβλημα αποδοχής/αναγνώρισης για πρόγραμμα: δοθέντος ενός προγράμματος p και μιας εισόδου x, είναι η x αποδεκτή από το 1 Κάθε πρόγραμμα μπορεί να μετασχηματιστεί σ ένα ισοδύναμο, που θα συμμορφώνεται σ αυτόν τον περιορισμό.

31 1.3. ΚΛΑΣΕΙΣ ΓΛΩΣΣΩΝ 15 p; 4. Πρόβλημα μέλους για πρόγραμμα: δοθέντος ενός προγράμματος p και δύο στοιχείων x και y από το πεδίο (τιμών μεταβλητών) του p, έχει το p έναν υπολογισμό αποδοχής για είσοδο x με έξοδο y; 5. Πρόβλημα κενότητας για πρόγραμμα: δοθέντος ενός προγράμματος, αποδέχεται αυτό την κενή γλώσσα, μήπως δηλαδή απολύτως καμία είσοδος δεν είναι αποδεκτή; 6. Πρόβλημα αμφισημίας για πρόγραμμα: δοθέντος ενός προγράμματος δίνει αυτό δύο ή περισσότερους υπολογισμούς αποδοχής, που παράγουν την ίδια έξοδο, για κάποια είσοδο; 7. Πρόβλημα μοναδικότητας τιμής για πρόγραμμα: δοθέντος ενός προγράμματος, ορίζει αυτό μία συνάρτηση, δηλαδή παράγει τελικά για κάθε είσοδο το πολύ μία έξοδο; 8. Πρόβλημα ισοδυναμίας για προγράμματα: ορίζει ένα ζεύγος προγραμμάτων την ίδια σχέση μεταξύ εισόδου και εξόδου; Στη συνέχεια, κατά την παρουσίαση των μοντέλων υπολογισμού με την πιο σημαντική επίδραση στην εξέλιξη της Επιστήμης των Υπολογιστών, θεωρούμε χωρίς βλάβη της γενικότητας ότι η τρέχουσα κατάσταση των προγραμμάτων κατά την εκτέλεσή τους καθορίζεται από μία μόνο μεταβλητή, που η τιμή της θα μεταβάλλεται με τρόπο, που θα απεικονίζεται σε διαγράμματα καταστάσεων. Πεπερασμένα αυτόματα Το πρώτο από τα μοντέλα υπολογισμού, που θα εξετάσουμε είναι οι μηχανές πεπερασμένων καταστάσεων (finite state machines), γνωστές επίσης και ως πεπερασμένα αυτόματα (finite automata). Τα προγράμματα γι αυτές τις μηχανές είναι γενικά εύκολα στην κατανόηση, εκτελούνται σε γραμμικά μεταβαλλόμενο χρόνο και υπάρχουν αποτελέσματα για σχεδόν όλες τις ερωτήσεις, σχετικά με τη συμπεριφορά τους. Το Σχήμα 1.1 δείχνει ένα απλό πεπερασμένο αυτόματο, που αποδέχεται/ αναγνωρίζει συμβολοσειρές από 0 και 1, που τελειώνουν σε 00. Η είσοδος σ ένα πεπερασμένο αυτόματο είναι μία συμβολοσειρά με τους χαρακτήρες της να διαβάζονται ένας κάθε φορά, από τ αριστερά προς τα δεξιά. Το αυτόματο έχει μία αρχική κατάσταση, όπως φαίνεται στο σχήμα με ένα τόξο χωρίς επιγραφή,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6 Εισαγωγή στην Επιστήμη των Υπολογιστών 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές http://www.corelab.ece.ntua.gr/courses/ Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων

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

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

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

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

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

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

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

Μεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Μεταγλωττιστές Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 4: Εισαγωγή / Σύνολα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 4: Εισαγωγή / Σύνολα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 4: Εισαγωγή / Σύνολα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

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

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

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

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

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

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

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

CSC 314: Switching Theory

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

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

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

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

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές http://www.corelab.ece.ntua.gr/courses/ Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων

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

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

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

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

Κανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα

Κανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα Κανονικές Γλώσσες Κανονικές Γλώσσες Διδάσκοντες: Φ. Αφράτη, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Κανονική γλώσσα αν παράγεται από κανονική γραμματική. Παραγωγές P (V Σ) Σ * ((V Σ) ε) Παραγωγές μορφής:

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

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 2 ο Αλφάβητα και Γλώσσες Αλφάβητο: Ένα μη κενό και πεπερασμένο σύνολο συμβόλων Γλώσσα: Ένα οποιοδήποτε υποσύνολο των συμβολοσειρών ενός αλφαβήτου (οι προτάσεις της γλώσσας, πχ.

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

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

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

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

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

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

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

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

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

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

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) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος. Σύνοψη Προηγούµενου Κανονικές Γλώσσες () ιαδικαστικά του Μαθήµατος. Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Εισαγωγή: Υπολογισιµότητα και Πολυπλοκότητα. Βασικές

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

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

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

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

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 είναι ένα γνήσιο

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

Περιεχόμενα Συμβολοσειρές Γλώσσες ΘΥ 6: Συμβολοσειρές & γλώσσες Επ. Καθ. Π. Κατσαρός 24/07/2014 Επ. Καθ. Π. Κατσαρός ΘΥ 6: Συμβολοσειρές & γλώσσες

Περιεχόμενα Συμβολοσειρές Γλώσσες ΘΥ 6: Συμβολοσειρές & γλώσσες Επ. Καθ. Π. Κατσαρός 24/07/2014 Επ. Καθ. Π. Κατσαρός ΘΥ 6: Συμβολοσειρές & γλώσσες ΘΥ 6: Συμβολοσειρές & γλώσσες 24/07/2014 Θεωρία Υπολογισμού Ενότητα 6: Συμβολοσειρές & γλώσσες Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

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

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

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

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί); Μοντελοποίηση του Υπολογισµού Στοιχεία Θεωρίας Υπολογισµού (): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ποιές οι θεµελιώδεις δυνατότητες

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

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

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

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

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 1 /

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

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

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

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

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

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

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

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

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

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

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

244 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Η f είναι μία μερική συνάρτηση στο πεδίο X, αν και μόνο αν η συνάρτηση ορίζεται για μηδέν ή περισσότερα στοι Κεφάλαιο 8 Υπολογίσιμες Συναρτήσεις Σύνοψη Εχοντας αναπτύξει τη θεωρία γύρω από τις Μηχανές Turing (ΜΤ) δεν περιοριζόμαστε πλέον μόνο στην ανάλυση προβλημάτων απόφασης γλωσσών (βλ. Ενότητα 1.2.3). Οι ΜΤ

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος στη δεύτερη έκδοση

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος στη δεύτερη έκδοση Πρόλογος του επιµελητή xiii Πρόλογος στην πρώτη έκδοση xv Προς τους ϕοιτητές.......................... xv Προς τους διδάσκοντες........................ xvii Ηπρώτηέκδοση........................... xviii

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

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

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

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

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

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

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

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

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

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

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

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών. Προδιαγραφές Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσ.h.m.μ.y. & Σ.Ε.Μ.Φ.Ε. http://www.corelab.ece.ntua.gr/courses/ 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές Στάθης Ζάχος Συνεργασία: Κωστής Σαγώνας Επιμέλεια:

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

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

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

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

Κεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216

Κεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216 Κεφάλαιο 2: Τυπικές γλώσσες Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 13 / 216 Τυπικές γλώσσες (i) Βασικές έννοιες Αλφάβητο Σύμβολο Συμβολοσειρά Μήκος συμβολοσειράς Σύνολο συμβολοσειρών

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

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

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

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

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

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

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

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

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

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

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 1 : Σύνολα & Σχέσεις (1/2) Αλέξανδρος Τζάλλας

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

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

Γλώσσες Χωρίς Συμφραζόμενα

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

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

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

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

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

HEAD INPUT. q0 q1 CONTROL UNIT

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

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

aab aabb aaabb aaaabb aaaabb aaaabb

aab aabb aaabb aaaabb aaaabb aaaabb Κεφάλαιο 4 Γλώσσες & Γραμματικές Χωρίς Συμφραζόμενα Σύνοψη Η κλάση των Γλωσσών Χωρίς Συμφραζόμενα (ΓΧΣ) είναι εκφραστικά αρκετά ισχυρή, ώστε να επιτρέπει την περιγραφή γλωσσών, όπως οι γλώσσες προγραμματισμού,

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

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

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

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

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή.

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή. Μη ντετερµινιστικές Μηχανές Turing - NTMs (1/6) Μηχανές Turing: Μη ντετερµινισµός, Επιλύσιµα Προβλήµατα Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς 10 εκεµβρίου 2016

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

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, η οποία

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

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

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

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

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

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

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

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, θα ονομάζεται συνολική κατάσταση αποδοχής, ενώ αν η κατάσταση

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

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

Μηχανές Turing (T.M) I Μηχανές Turing (T.M) I Οι βασικές λειτουργίες μιας TM είναι: Διάβασε το περιεχόμενο του τρέχοντος κυττάρου Γράψε 1 ή 0 στο τρέχον κύτταρο Κάνε τρέχον το αμέσως αριστερότερο ή το αμέσως δεξιότερο κύτταρο

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α.

Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α. Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α. Δύο Π.Α. Μ 1 και Μ 2 είναι ισοδύναμα ανν L(M 1 ) = L(M 2 ). Έστω Μ = (Q, Σ, q 0, Δ, F) μη Αιτ. Π.Α. Για κάθε κατάσταση q Q, ορίζουμε ως Ε(q) Q το σύνολο των καταστάσεων

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2) Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Κανονικές Εκφράσεις (1.3) Τυπικός Ορισμός Ισοδυναμία με κανονικές γλώσσες Μη Κανονικές

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

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

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

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσhmμy 6η ενότητα: Αυτόματα, τυπικές γλώσσες, γραμματικές Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής http://www.corelab.ece.ntua.gr/courses/introcs

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

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

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

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

Περί της Ταξινόμησης των Ειδών

Περί της Ταξινόμησης των Ειδών Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Tel.: +30 2310998051, Ιστοσελίδα: http://users.auth.gr/theodoru Περί της Ταξινόμησης

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

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

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα ΕΙΣΑΓΩΓΉ ΣΤΟ ΜΑΘΗΜΑ

Θεωρία Υπολογισμού και Πολυπλοκότητα ΕΙΣΑΓΩΓΉ ΣΤΟ ΜΑΘΗΜΑ Θεωρία Υπολογισμού και Πολυπλοκότητα ΕΙΣΑΓΩΓΉ ΣΤΟ ΜΑΘΗΜΑ Άννα Φιλίππου annap@cs.ucy.ac.cy ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 0-1 Στοιχεία του μαθήματος Διδάσκουσα: Άννα Φιλίππου Γραφείο: FST-01

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

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

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

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

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { Μ η Μ είναι μια ΤΜ η οποία διαγιγνώσκει το πρόβλημα ΙΣΟΔΥΝΑΜΙΑ ΤΜ (διαφάνεια 9 25)} (α) Γνωρίζουμε ότι το

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

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

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Φεβρουάριος 2017 Διδάσκων: Στάθης Ζάχος ( CoReLab

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

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

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ Σκοπός του μαθήματος είναι οι μαθητές και οι μαθήτριες να αναπτύξουν ικανότητες αναλυτικής και συνθετικής σκέψης, ώστε να επιλύουν προβλήματα, να σχεδιάζουν

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

Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ

Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ ΜΑΘΗΜΑΤΙΚΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΘΕΤΙΚΩΝ ΣΠΟΥΔΩΝ ΚΑΙ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ (Α ΜΕΡΟΣ: ΣΥΝΑΡΤΗΣΕΙΣ) Επιμέλεια: Καραγιάννης Ιωάννης, Σχολικός Σύμβουλος Μαθηματικών

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

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

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

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

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

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

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

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

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

, για κάθε n N. και P είναι αριθμήσιμα.

, για κάθε n N. και P είναι αριθμήσιμα. ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΑΚΡΙΤA ΜΑΘΗΜΑΤΙΚΑ Διδάσκοντες: Δ.Φωτάκης Θ. Σούλιου η Γραπτή Εργασία Ημ/νια παράδοσης 5/4/8 Θέμα (Διαδικασίες Απαρίθμησης.

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

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

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

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

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

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

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

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

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

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

Μεταγλωττιστές. Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεταγλωττιστές. Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Μεταγλωττιστές Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κλάσεις P, NP NP-πληρότητα 15 Απριλίου 2008 Δρ. Παπαδοπούλου Βίκη 1 Υπολογίσιμα και Εφικτά Υπολογίσιμα Προβλήματα Είδαμε ότι 1. Οτιδήποτε μπορούμε να περιγράψουμε με

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

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

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

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

Περιεχόμενα. Πρόλογος 3

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

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

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

Σειρά Προβλημάτων 1 Λύσεις Σειρά Προβλημάτων Λύσεις Άσκηση Ορίζουμε τη συναρμογή δύο γλωσσών Α και Β ως ΑΒ = { uv u A, v B }. (α) Έστω Α = {α,β,γ} και Β =. Να περιγράψετε τη γλώσσα ΑΒ. (β) Θεωρήστε τις γλώσσες L, M και N. Να δείξετε

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

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Σύνοψη Σκοπός του κεφαλαίου αυτού είναι η εισαγωγή του αναγνώστη στη φιλοσοφία του συναρτησιακού προγραμματισμού. Ο συναρτησιακός προγραμματισμός

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

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

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

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

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

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

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

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

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

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

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

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

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

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