Θεωρία Υπολογισμών και Αυτομάτων



Σχετικά έγγραφα
Η οικονομική κρίση και ύφεση ανασχεθούν δεν θα αποφύγει να μετεξελιχθεί οι προοπτικές της ευρω- ζώνης αναιμικές η Ευρώπη Κινητήρια δύναμη

ΠΡΟΚΗΡΥΞΗ ΠΡΟΣΦΟΡΑΣ. Αρ. Προσφοράς: 2014/9 Τελ. Ημερομ. Υποβ. Προσφ: 3 Σεμπτεμβριου 2014

ΔΙΑΚΗΡΥΞΗ. Ασφάλιση οχημάτων, μηχανημάτων έργου, φωτοβολταϊκών συστημάτων και του Δημαρχιακού Καταστήματος Δήμου Αλεξανδρούπολης για το έτος 2016

Ι. ΛΕΙΤΟΥΡΓΙΑ ΦΡΟΝΤΙΣΤΗΡΙΟΥ

ΑΠΟΨΕΙΣ - ΠΡΟΤΑΣΕΙΣ ΓΙΑ ΤΗ ΛΕΙΤΟΥΡΓΙΑ ΤΩΝ ΑΝΩΝΥΜΩΝ ΕΤΑΙΡΕΙΩΝ ΔΙΑΧΕΙΡΙΣΗΣ ΔΗΜΟΣΙΩΝ ΕΡΓΩΝ ΠΟΥ ΥΠΑΓΟΝΤΑΙ ΣΤΗ Γ.Γ.Δ.Ε.

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

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

Εκπαιδευτικό σενάριο Τίτλος: Δημιουργία ηλεκτρονικού εγγράφου σε συνεργατικό διαδικτυακό περιβάλλον

ΣΗΜΕΙΩΣΕΙΣ ΑΝΑΤΟΜΙΑΣ (Φύλλα διδασκαλίας) για Τμήματα: Εργοθεραπείας, ημόσιας Υγείας και Νοσηλευτικής. (Γεώργιος. Μπαμπλέκος.)

ΜΕΡΟΣ Α ΒΙΒΛΙΟ ΕΡΓΑΣΙΩΝ ΟΝΟΜΑ.. ΤΑΞΗ...

Διασυνοριακές συγχωνεύσεις και διασπάσεις

Στον Πανούλη. Γιάννης

Βενιζέλου 55 - Καβάλα Τηλ Fax Πληροφορίες: Μυστακίδης Ζαφείρης , zafmis@gmail.

74 η ΣΥΝΟΔΟΣ ΠΡΥΤΑΝΕΩΝ & ΠΡΟΕΔΡΩΝ Δ.Ε. ΤΩΝ ΕΛΛΗΝΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΩΝ Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Θεσσαλονίκη, Δεκεμβρίου 2013

«Μορφές Εξαρτημένης Εργασίας»

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

ΟΙΚΟΝΟΜΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΠΡΟΜΗΘΕΙΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΥΛΙΚΟΥ. ΤΗΛΕΦΩΝΟ: ΦΑΞ: E mail:

Εκπαίδευση Ατόμων με Ειδικές Εκπαιδευτικές Ανάγκες Σπονδυλωτό Εξ Αποστάσεως Πρόγραμμα Εξειδίκευσης

Έκθεση Εσωτερικής Αξιολόγησης

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

Ευαγγελινή Αθανασοπούλου Κωνσταντία Λαδοπούλου Στέλλα Χαριτάκη

Π. Δ. 350 / 1996 ΦΑΚΕΛΟΣ ΑΣΦΑΛΕΙΑΣ ΚΑΙ ΥΓΕΙΑΣ ΣΧΕΔΙΟ ΑΣΦΑΛΕΙΑΣ ΚΑΙ ΥΓΕΙΑΣ (Φ.Α.Υ. - Σ.Α.Υ.)

ΕΦΗΜΕΡΙΣ ΤΗΣ ΚΥΒΕΡΝΗΣΕΩΣ

ΙΣΤΟΡΙΚΟ ΛΕΞΙΚΟ ΕΠΙΣΤΗΜΟΝΙΚΩΝ ΟΡΩΝ

Η ΚΥΒΕΡΝΗΤΙΚΗ ΠΟΛΙΤΙΚΗ ΤΟΥ ΣΥΡΙΖΑ ΓΙΑ ΤΟΝ ΑΓΡΟΤΙΚΟ ΤΟΜΕΑ ΣΤΙΣ ΣΗΜΕΡΙΝΕΣ ΣΥΝΘΗΚΕΣ.

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

ΟΔΗΓΟΣ ΜΕΛΕΤΗΣ ΕΝΝΟΙΩΝ επιμέλεια: Μαρία Κάππου ΕΝΝΟΙΕΣ Γ ΛΥΚΕΙΟΥ. Οδηγός μελέτης και επανάληψης. Επιμέλεια: Μαρία Κάππου [1]

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

ΥΠΟΣΤΗΡΙΖΟΜΕΝΗ ΑΠΑΣΧΟΛΗΣΗ ΣΤΗΝ ΕΛΕΥΘΕΡΗ ΑΓΟΡΑ ΕΡΓΑΣΙΑΣ

Α Π Ο Σ Π Α Σ Μ Α. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΒΟΙΩΤΙΑΣ ΔΗΜΟΣ ΟΡΧΟΜΕΝΟΥ Αρ.Πρωτ.: 298/

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΘΗΝΑ,

ΤΟ ΤΑΞΙΔΙ ΕΙΝΑΙ Η ΑΦΟΡΜΗ

ΠΡΟΣΚΛΗΣΗ ΕΝΔΙΑΦΕΡΟΝΤΟΣ

ΚΩΔΙΚΑΣ ΔΕΟΝΤΟΛΟΓΙΑΣ ΤΗΣ ΕΡΕΥΝΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. (Εγκρίθηκε στη 299/ Συνεδρίαση της Συγκλήτου)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΔΗΜΟΣ ΛΑΡΙΣΑΙΩΝ ΔΙΕΥΘΥΝΣΗ ΕΠΙΧΕΙΡΗΣΙΑΚΟΥ ΣΧΕΔΙΑΣΜΟΥ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ Λάρισα

FORUM ΣΥΝΕΡΓΑΣΙΑ ΑΡΙΣΤΕΡΩΝ ΑΡΧΙΤΕΚΤΟΝΩΝ

2 Η απασχόληση στον τομέα του εμπορίου: Διάρθρωση και εξελίξεις

Τεύχος 24 / Φεβρουάριος Ηλεκτρονική Έκδοση ΕΡΓΑΤΙΚΗ & ΑΣΦΑΛΙΣΤΙΚΗ ΕΝΗΜΕΡΩΣΗ ΒΙΒΛΙΟ ΤΡΟΠΟΠΟΙΗΣΗΣ ΩΡΑΡΙΟΥ ΚΑΙ ΥΠΕΡΩΡΙΩΝ.

Καταστατικό του επιστημονικού σωματείου με την επωνυμία ΕΝΤΟΜΟΛΟΓΙΚΗ ΕΤΑΙΡΕΙΑ ΕΛΛΑΔΟΣ. Άρθρο 1 ο Ίδρυση Επωνυμία Έδρα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. «Η ΟΡΓΑΝΩΣΕ ΤΟΥ ΤΜΙΙΜΑΤΟΣ ΠΡΟΜΗΘΕΙΩΝ ΣΕ ΜΙΑ ΕΠΙΧΕΙΡΗΣΗ i

ΕΠΙΣΗΜΗ ΕΦΗΜΕΡΙΔΑ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΔΗΜΟΚΡΑΤΙΑΣ ΚΥΡΙΟ ΜΕΡΟΣ ΤΜΗΜΑ Α

7. ΠΕΙΡΑΜΑΤΙΣΜΟΣ ΚΑΙ ΚΡΙΤΙΚΗ ΑΠΟ ΤΟΝ ΙΔΙΟ ΤΟΝ ΔΗΜΙΟΥΡΓΟ, ΣΕ ΚΑΘΕ ΒΗΜΑ ΤΟΥ ΣΧΕΔΙΑΣΜΟΥ. Μακέτα εργασίας 1/50.

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

ΔΕΗ Ανανεώσιμες: Το μέλλον της ΔΕΗ Ομιλία του κ. Τάκη Αθανασόπουλου Προέδρου & Διευθύνοντος Συμβούλου ΔΕΗ Α.Ε

Δημόσιες συμβάσεις. Νομική βάση. Στόχοι. Επιτεύγματα

ΘΕΜΑ: Ανακοίνωση-Πρόσκληση για εκδήλωση ενδιαφέροντος σχετικά με μετάταξη υπαλλήλων στο Εθνικό Αστεροσκοπείο Αθηνών (Ν.Π.Δ.Δ.)

Θέσεις ΤΕΕ για τα Δημόσια Έργα και τις υποδομές τους

ΠΡΟΣ: Ως Π.Δ. Άρθρο 75 Πρόστιμα για παραβάσεις του Κώδικα Βιβλίων και Στοιχείων Κυρώσεις Ποινές

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

ΕΛΛΗΝΙΚΗ ΠΟΔΟΣΦΑΙΡΙΚΗ ΟΜΟΣΠΟΝΔΙΑ. Παράρτημα Β Διατάξεις Εφαρμογής Κανονισμού για τους Ερασιτέχνες Ποδοσφαιριστές

3966/2011 (Φ.Ε.Κ. 118 Α

Ε.Ε. Π α ρ.ι(i), Α ρ.4083, 20/4/2006 ΝΟΜΟΣ ΠΟΥ ΠΡΟΝΟΕΙ ΓΙΑ ΤΗΝ ΕΓΚΑΘΙΔΡΥΣΗ ΑΝΕΞΑΡΤΗΤΗΣ ΕΠΙΤΡΟΠΗΣ ΓΙΑ

ΚΑΝΟΝΙΣΜΟΣ ΣΥΝΕΡΓΑΣΙΑΣ ΜΕ ΔΙΑΜΕΣΟΛΑΒΗΤΕΣ

Εισήγηση για τον Προϋπολογισμό 2011 του Δήμου Κηφισιάς

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

Το σχεδιαστικό μέρος της αποτύπωσης παράγεται και υλοποιείται μέσω δύο ειδών σχεδίων:

ΑΔΑ: ΒΛ1Η7ΛΨ-ΔΔΙ. 8. Τις διατάξεις του Ν.3310/05 Μέτρα για τη διασφάλιση της διαφάνειας και την αποτροπή

Η Πρόταση του ΣΥΡΙΖΑ-ΕΚΜ για τη ΔΙΑΧΕΙΡΙΣΗ ΑΠΟΡΡΙΜΜΑΤΩΝ Βιώσιμη και δίκαιη οικονομικά και οικολογικά λύση

ΚΑΝΟΝΕΣ: ΚΡΙΤΗΡΙΑ ΚΑΙ ΔΙΑΔΙΚΑΣΙΑ ΕΠΙΛΟΓΗΣ ΕΝΟΙΚΩΝ ΓΙΑ ΔΙΑΜΟΝΗ ΣΕ ΦΟΙΤΗΤΙΚΕΣ ΕΣΤΙΕΣ Ή ΔΙΑΜΕΡΙΣΜΑΤΑ ΠΟΥ ΔΙΑΧΕΙΡΙΖΕΤΑΙ ΤΟ ΤΕΠΑΚ

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

Ι. ΠΡΟΪΣΤΟΡΙΑ ΚΕΦΑΛΑΙΟ Β': Η ΕΠΟΧΗ ΤΟΥ ΧΑΛΚΟΥ ( π.Χ.) 3. Ο ΜΙΝΩΙΚΟΣ ΠΟΛΙΤΙΣΜΟΣ

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

Α.Σ. «ΝΕΟΙ ΕΠΙΣΤΗΜΟΝΕΣ ΘΕΣΣΑΛΟΝΙΚΗΣ ΕΠΙ.ΘΕΣΗ» ΣΥΜΒΟΥΛΕΥΤΙΚΗ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΤΗΤΑΣ ΟΡΘΟΛΟΓΙΣΜΟΣ Α.Ε.

72(Ι)/2014 Ο ΠΕΡΙ ΙΔΡΥΣΕΩΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΑΣ ΣΥΝΔΕΣΜΩΝ ΠΡΟΣΤΑΣΙΑΣ ΦΥΤΩΝ ΝΟΜΟΣ ΤΟΥ 2014

ΤΡΙΗΡΗΣ. ΤΡΙΗΡΗΣ Σελίδα 1

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΔΗΜΟΤΙΚΟ ΛΙΜΕΝΙΚΟ ΤΑΜΕΙΟ ΡΕΘΥΜΝΟΥ ΔΙΟΙΚΗΤΙΚΟ ΣΥΜΒΟΥΛΙΟ Αριθμ.Μελών κατά Νόμο

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΟΙΚΟΝΟΜΙΑΣ. Πτυχια<η Εργασία. του σπουδαστή ΚΟΥΓΙΟΥΜΤΖΙΔΗ ΠΑΝΑΓΙΩΤΗ. Εισηγητής

ΓΕΩΠΟΝΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΑΓΡΟΤΙΚΗΣ ΟΙΚΟΝΟΜΙΑΣ & ΑΝΑΠΤΥΞΗΣ

ΟΜΟΣΠΟΝΔΙΑ ΕΛΛΗΝΙΚΩΝ ΣΥΝΔΕΣΜΩΝ ΝΕΩΝ ΕΠΙΧΕΙΡΗΜΑΤΙΩΝ FEDERATION OF HELLENIC ASSOCIATIONS OF YOUNG ENTREPRENEURS

Πρόγραμμα επαγγελματικής κατάρτισης εργαζομένων (ΛΑΕΚ)

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

Γραπτή δήλωση Δημήτρη Χριστόφια στην ερευνητική επιτροπή. Πέμπτη 22 Αυγούστου

Θεωρία Δυαδικότητας ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου. Επιχειρησιακή Έρευνα

ΤΕΥΧΟΣ ΠΡΟΚΗΡΥΞΗΣ ΠΡΟΧΕΙΡΟΥ ΙΑΓΩΝΙΣΜΟΥ Νο: 11(ΕΛΚΕ)/2014

ΤΑ ΕΡΓΑΤΙΚΑ ΑΤΥΧΗΜΑΤΑ ΣΤΗΝ ΕΛΛΑΔΑ

«ΣΙΤΙΣΗ ΤΩΝ ΦΟΙΤΗΤΩΝ ΤΗΣ ΠΑΝΕΠΙΣΤΗΜΙΑΚΗΣ ΜΟΝΑΔΑΣ ΛΗΜΝΟΥ ΓΙΑ ΤΟ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ »

Παρράσιο Πάρκο Πολιτιστικής Κληρονομιάς: Σχέδιο της Πρότασης

ΕΠΙΣΗΜΗ ΕΦΗΜΕΡΙΔΑ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΔΗΜΟΚΡΑΤΙΑΣ ΚΥΡΙΟ ΜΕΡΟΣ ΤΜΗΜΑ Α

ΚΑΤΑΣΤΑΤΙΚΟ ΕΤΑΙΡΕΙΑ ΠΟΛΙΤΙΣΤΙΚΗΣ ΚΛΗΡΟΝΟΜΙΑΣ ΚΑΤΩΚΟΠΙΑΣ (KATOKOPIA CULTURAL HERITAGE ASSOCIATION)

ΠΡΟΟΔΟΣ ΠΡΟΣΚΟΠΟΥ. Οι διακρίσεις αυτές συνοδεύονται από αντίστοιχο διακριτικό για τη στολή, όπως αυτά

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

ΔΙΑΚΗΡΥΞΗ ΥΠ ΑΡΙΘΜ. / 2015 ΑΝΟΙΚΤΟΥ ΤΑΚΤΙΚΟΥ ΔΗΜΟΣΙΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ ΠΡΟΜΗΘΕΙΑ «ΤΡΟΦΙΜΩΝ ΚΑΙ ΣΥΝΑΦΩΝ ΠΡΟΙΟΝΤΩΝ»

AΠΟΣΠΑΣΜΑ. από το πρακτικό της υπ αριθμ. 2 ης Tακτικής Συνεδρίασης του Διοικητικού Συμβουλίου του ΔΗ.ΚΕ.ΠΑ Ιλίου

ΑΠΟΦΑΣΗ Ο ΥΠΟΥΡΓΟΣ ΕΘΝΙΚΗΣ ΑΜΥΝΑΣ

ΔΕΚΑΕΞΙ ΜΑΘΗΜΑΤΑ ΠΑΓΚΟΣΜΙΑΣ ΙΣΤΟΡΙΑΣ

1 Εισαγωγή στην Ανάλυση των Κατασκευών 1.1 Κατασκευές και δομοστατική

Η ΕΡΤ ΤΗΣ ΕΠΟΜΕΝΗΣ ΗΜΕΡΑΣ «ΠΟΙΑ ΕΡΤ ΘΕΛΟΥΜΕ»

να καταστεί ανθρώπινος ο άνθρωπος ατόπημα να υπερβεί την κρίση να αποποιηθεί τον ατομικισμό

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

Θέμα: Η ΑΓΟΡΑ ΣΤΟΝ ΚΑΠΙΤΑΛΙΣΜΟ

ΤΕΧΝΟΛΟΓΙΚΟ ΕΡΓΟ ΣΤΟ ΜΑΘΗΜΑ ΤΗΣ «ΤΕΧΝΟΛΟΓΙΑΣ» ΤΕΧΝΟΛΟΓΙΚΗ ΕΝΟΤΗΤΑ «ΜΕΤΑΦΟΡΕΣ-ΕΠΙΚΟΙΝΩΝΙΕΣ» ΕΡΓΟ:ΑΕΡΟΣΤΑΤΟ

ΑΠΟΣΠΑΣΜΑ Από το υπ' αριθμ. 12/ Πρακτικό της Οικονομικής Επιτροπής Ιονίων Νήσων

ΝΕΑ ΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ. [Το μέλλον της εργασίας]

Δεν μπορεί να μείνει αναπάντητη η επίθεση κυβέρνησης - ΕΕ - εφοπλιστών

ΠΡΟΛΟΓΟΣ ΑΚΙΝΗΤΗ ΑΞΙΑ

ΔΙΑΚΗΡΥΞΗ Ο ΔΗΜΑΡΧΟΣ

ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΑΔΑ:

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

ΥΠΟΜΝΗΜΑ. Στην Επιτροπή Κρίσεως Βαρέων και Ανθυγιεινών επαγγελμάτων του άρθρου 20 ν.3790/2009

Τέλος, θα ήθελα να ευχαριστήσω την οικογένειά μου και τους φίλους που με στήριξαν στην προσπάθειά μου αυτή.

Transcript:

Θεωρία Υπολογισμών και Αυτομάτων Γιάννης Ρεφανίδης Εισαγωγή 1

Θεωρία Υπολογισμού Τι είναι «Υπολογισμός» Τι μπορεί να κάνει ένας υπολογιστής; Τι δεν μπορεί να κάνει ένας υπολογιστής; Ποια προβλήματα μπορεί να λύσει ο υπολογιστής αποδοτικά; Γιάννης Ρεφανίδης 3 Αποφασισιμότητα (decidability) Μελέτη του τι μπορούν να κάνουν οι υπολογιστές; Τα προβλήματα που μπορούν να λύσουν οι υπολογιστές ονομάζονται αποφασίσιμα (decidable). Μη αποφασίσιμο πρόβλημα: Να ελεγχθεί εάν δύο διαφορετικά προγράμματα (σε μορφή πηγαίου κώδικα) παράγουν το ίδιο ακριβώς αποτέλεσμα. Γιάννης Ρεφανίδης 4 2

Πολυπλοκότητα (complexity) Τι μπορούν να κάνουν οι υπολογιστές αποδοτικά; (efficiently) Αντιμετωπίσιμα προβλήματα (tractable problems) Μη αντιμετωπίσιμα (δυσεπίλυτα) προβλήματα (intractable problems) Γιάννης Ρεφανίδης 5 Αφηρημένα μοντέλα υπολογισμών Πεπερασμένα αυτόματα Finite Automata, FA Αυτόματα στοίβας PushDown Automata, PDA Μηχανή Turing Turing Machine, TM Γιάννης Ρεφανίδης 6 3

Τι είναι τα αυτόματα Χρήσιμο μοντέλο μελέτης / ανάπτυξης για πολλά είδη hardware και software. Λογισμικό σχεδίασης και ελέγχου ψηφιακών κυκλωμάτων Λεξικοί αναλυτές (π.χ. για τη μετάφραση - compilation προγραμμάτων) Αναζήτηση συγκεκριμένων προτύπων φράσεων εντός κειμένου (π.χ. στο WEB) Λογισμικό ελέγχου συστημάτων οποιουδήποτε τύπου που έχουν πεπερασμένο αριθμό εσωτερικών καταστάσεων, όπως π.χ. πρωτόκολλα τηλεπικοινωνίας, πρωτόκολλα ασφαλούς ανταλαγής δεδομένων κλπ. Γιάννης Ρεφανίδης 7 Ένα απλό αυτόματο Διακόπτης on/off (switch) Push Start off on Push Γιάννης Ρεφανίδης 8 4

Ένα λίγο πιο πολύπλοκο αυτόματο start t h e n t th the then Γιάννης Ρεφανίδης 9 Κεντρικό πρόβλημα Για ποιες ακολουθίες χαρακτήρων εισόδου (strings) ένα αυτόματο καταλήγει σε μια τελική κατάσταση; Για ένα αυτόματο Μ, το σύνολο εκείνων των ακολουθιών εισόδου που οδηγούν σε τελικές καταστάσεις ονομάζεται γλώσσα του αυτομάτου, L(M). Γιάννης Ρεφανίδης 10 5

Αλφάβητα και Γλώσσες Αλφάβητα (Alphabets) Ένα αλφάβητο είναι ένα πεπερασμένο, μη κενό σύνολο συμβόλων. Συνήθως χρησιμοποιούμε το γράμμα Σ για ένα αλφάβητο. Παραδείγματα: Σ = {0,1} Σ = {a,b,c,..., z} Γιάννης Ρεφανίδης 12 6

Λέξεις (Strings ή Words) Μία λέξη είναι μια πεπερασμένη ακολουθία συμβόλων επιλεγμένων από κάποιο αλφάβητο. Σ = {0,1} w=01101 Μήκος λέξης είναι το πλήθος των συμβόλων της: w = 01101 = 5 Ως κενή λέξη ορίζεται η λέξη με μηδενικό μήκος και συμβολίζεται με ε. ε = 0 Γιάννης Ρεφανίδης 13 (Συμβάσεις σημειογραφίας) Συνηθίζεται να χρησιμοποιούμε: τα πεζά γράμματα στην αρχή του αλφάβητου για να δηλώνουμε απλά σύμβολα. a, b, c,... τα πεζά γράμματα στο τέλος του αλφάβητου για να δηλώνουμε λέξεις. w, x, y, z,... Γιάννης Ρεφανίδης 14 7

Δυνάμεις ενός αλφάβητου Σ k : Το σύνολο όλων των λέξεων μήκους k, αποτελούμενες από σύμβολα του Σ. Παράδειγμα: Έστω Σ={0,1}, τότε: Σ 0 ={ε} Σ 1 ={0, 1} Σ 2 ={00,01,10,11} Ειδικές περιπτώσεις: Σ * =Σ 0 Σ 1 Σ 2 Σ 3... Σ + = Σ 1 Σ 2 Σ 3... Γιάννης Ρεφανίδης 15 Παράθεση λέξεων (concatenation) Έστω x και y δύο λέξεις. Ορίζουμε ως xy τη λέξη που προκύπτει από την παράθεση των δύο επιμέρους λέξεων. Παράδειγμα: x=01101 y=110 xy=01101110 yx=11001101 Γιάννης Ρεφανίδης 16 8

Ιδιότητες παράθεσης xy = x + y x(yz)=(xy)z Αν w=xyz, τότε: η x λέγεται πρόθεμα (prefix) της w η z λέγεται κατάληξη (suffix) της w η y λέγεται υπολέξη της w Ορίζουμε ως w k την παράθεση w k-1 w Εάν w=01 τότε w 3 =010101 Γιάννης Ρεφανίδης 17 Ανάστροφη λέξης Η ανάστροφη μιας λέξης w συμβολίζεται με w R και είναι η λέξη w διαβασμένη από το τέλος προς την αρχή. Εάν w=0011010 τότε w R =0101100 Ιδιότητες: (xy) R =y R x R Έστω x=abc και y=de, τότε: xy=abcde (xy) R =edcba x R =cba y R =ed y R x R =edcba (w R ) R =w Γιάννης Ρεφανίδης 18 9

Γλώσσες Μια γλώσσα L ενός αλφαβήτου Σ ορίζεται ως ένα υποσύνολο του Σ *. L Σ * Μια γλώσσα μπορεί να έχει άπειρες λέξεις ή και καμία. Παραδείγματα γλωσσών για το αλφάβητο Σ={0,1}: Το σύνολο των λέξεων που αποτελούνται από n μηδενικά ακολουθούμενα από n μονάδες: {ε, 01, 0011, 000111,...} Το σύνολο των λέξεων με ίσους αριθμούς μηδενικών και μονάδων: {ε, 01, 10, 0011, 0101, 0110,...} Το σύνολο των δυαδικών αριθμών που αντιστοιχούν σε πρώτους αριθμούς: {10, 11, 101, 111, 1011,...} Γιάννης Ρεφανίδης 19 Περιγραφή γλωσσών ως σύνολα Ένας γενικός τρόπος ορισμού μιας γλώσσας είναι μέσω της περιγραφής των ιδιοτήτων των λέξεων της, με συμβολισμό συνόλων: {w ιδιότητες της λέξης w} {w η w αποτελείται από ίσο αριθμό 0 και 1} {w η w είναι η δυαδική μορφή ενός πρώτου αριθμού} {w η w είναι ένα συντακτικά σωστό πρόγραμμα της C} {0 n 1 n n 1} {0 i 1 j 0 i j } Ο παραπάνω συμβολισμός συνηθίζεται στις περιπτώσεις γλωσσών με άπειρο πλήθος λέξεων. Γιάννης Ρεφανίδης 20 10

Πράξεις με γλώσσες (1/3) Εφόσον οι γλώσσες είναι σύνολα, μπορούν να συνδυαστούν με πράξεις επί συνόλων: Ένωση, 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. L 1 L 2 = { w w L 1 w L 2 } Γιάννης Ρεφανίδης 21 Πράξεις με γλώσσες (2/3) Διαφορά, L 1 - L 2 Το σύνολο των λέξεων που ανήκουν στην L 1 και δεν ανήκουν στην στην L 2. L 1 - L 2 = { w w L 1 w L 2 } Συμπλήρωμα, L 1 = Σ* - L 1 Το σύνολο των λέξεων του Σ* που δεν ανήκουν στην L 1. L 1 = { w w Σ* w L 1 } Γιάννης Ρεφανίδης 22 11

Πράξεις με γλώσσες (3/3) Παράθεση, L 1 L 2 Το σύνολο των λέξεων που σχηματίζονται από την παράθεση μιας λέξης από την L 1 και μιας λέξης από την L 2. L 1 L 2 = { w w=xy, x L 1 y L 2 } Κλειστότητα ή Kleene star, L* Το σύνολο των λέξεων που σχηματίζονται από την παράθεση οποιουδήποτε πλήθους λέξεων της L. L*={w Σ*: w=w 1 w 2...w k, k 0, w 1, w 2,..., w k L} (L*)*=L* Γιάννης Ρεφανίδης 23 Προβλήματα Στη θεωρία αυτομάτων ένα πρόβλημα είναι η ερώτηση εάν μια λέξη ανήκει σε μια γλώσσα ή όχι. Ειδικότερα: Δοθείσης μιας λέξης w Σ*, αποφάσισε εάν η w ανήκει στη γλώσσα L. Όλα τα προβλήματα μπορούν να αναχθούν σε ισοδύναμα (απλούστερα) προβλήματα της παραπάνω μορφής με ίδια χαρακτηριστικά υπολογισιμότητας και πολυπλοκότητας. Γιάννης Ρεφανίδης 24 12

Κανονικές εκφράσεις (regular expressions) Τυποποιημένοι τρόποι περιγραφής γλωσσών Κανονικές εκφράσεις περιορισμένες δυνατότητες Γραμματικές ανεξάρτητες από τα συμφραζόμενα. ισχυρές Γραμματικές εξαρτημένες από τα συμφραζόμενα. ισχυρότερες Γιάννης Ρεφανίδης 26 13

Κανονικές εκφράσεις (regular expressions) Οι κανονικές εκφράσεις ενός αλφαβήτου Σ είναι οι συμβολοσειρές του αλφαβήτου Σ { ), (, ε, +, * } για τις οποίες ισχύουν τα παρακάτω:, ε και κάθε στοιχείο του Σ είναι κανονική έκφραση. Αν α και β είναι κανονικές εκφράσεις, και η (αβ) είναι επίσης. Αν α και β είναι κανονικές εκφράσεις, και η α+β είναι επίσης. Αν α είναι κανονική έκφραση, και η α* είναι επίσης Τίποτα δεν είναι κανονική έκφραση εκτός από τα παραπάνω. Γιάννης Ρεφανίδης 27 Παραδείγματα (a+b)*a : Περιγράφει λέξεις που τελειώνουν σε a. aa*+bb* : Περιγράφει λέξεις που αποτελούνται είτε μόνο από a (ένα ή περισσότερα) είτε μόνο από b (ένα ή περισσότερα). c*(a+bc*)*: Περιγράφει λέξεις στις οποίες δεν εμφανίζεται η υπολέξη ac. 0*+0*(1+11)(00*(1+11))*0*: Περιγράφει το σύνολο των λέξεων από 0 και 1, οι οποίες δεν περιέχουν την υπολέξη 111. Γιάννης Ρεφανίδης 28 14

Κανονικές γλώσσες Κάθε κανονική έκφραση αντιπροσωπεύει μια γλώσσα, δηλαδή το σύνολο εκείνων των λέξεων που μπορούν να περιγραφούν από την κανονική έκφραση. Έστω Ε μια κανονική έκφραση, συμβολίζουμε με L(E) τη γλώσσα που παράγεται από την Ε. Ιδιότητες: L( )=, L(ε)={ε} L(Ε 1 +Ε 2 )=L(Ε 1 ) L(Ε 2 ) L(Ε 1 Ε 2 )=L(Ε 1 )L(Ε 2 ) L(Ε 1 *)=L(Ε 1 )* Γιάννης Ρεφανίδης 29 Και άλλα παραδείγματα Να γραφεί μία κανονική έκφραση για το σύνολο εκείνων των λέξεων του αλφαβήτου Σ={0,1}, στις οποίες τα 0 και 1 εναλλάσσονται. Ε 1 =(01)*+(10)*+0(10)*+1(01)* Ε 2 = (1+ε)(01)*(0+ε) Γιάννης Ρεφανίδης 30 15

Πεπερασμένα Αυτόματα Είδη πεπερασμένων αυτομάτων Ντετερμινιστικά αυτόματα Μη ντετερμινιστικά αυτόματα Με ε-μεταβάσεις Γιάννης Ρεφανίδης 32 16

Πεπερασμένα Αυτόματα Ντετερμινιστικά Πεπερασμένα Αυτόματα Ντετερμινιστικά Πεπερασμένα Αυτόματα - ΝΠΑ (Deterministic Finite Automata - DFA) Για το αλφάβητο Σ={0,1}, το παρακάτω αυτόματο δέχεται όλες τις λέξεις που δεν περιέχουν 2 συνεχόμενους άσσους. 0 0 start 1 A B 1 C 0 1 Γιάννης Ρεφανίδης 34 17

Ορισμός ΝΠΑ Ένα ντετερμινιστικό πεπερασμένο αυτόματο είναι μια πεντάδα Μ={Κ,Σ,δ,s,F} όπου: Κ είναι ένα πεπερασμένο σύνολο από καταστάσεις Σ είναι ένα αλφάβητο s K είναι η αρχική κατάσταση F K είναι το σύνολο των τελικών καταστάσεων δ είναι η συνάρτηση μετάβασης (transition function) από το KxΣ στο Κ. Γιάννης Ρεφανίδης 35 Κ={Α,Β,C} Σ={0,1} s=a F={A,B} Παράδειγμα (1/2) 0 start 1 A B 1 C 0 Γιάννης Ρεφανίδης 36 1 18

Συνάρτηση μετάβασης Παράδειγμα (2/2) Αναπαράσταση με διάγραμμα καταστάσεων αναπαράσταση με πίνακα Τρέχουσα κατάσταση q Επόμενη είσοδος σ Επόμενη κατάσταση δ(q,σ) Α 0 Α Α 1 Β Β 0 Α Β 1 C C 0 C C 1 C Γιάννης Ρεφανίδης 37 Παράδειγμα Αυτόματο στο αλφάβητο Σ={0,1}, το οποίο δέχεται τις λέξεις με ζυγό αριθμό μηδενικών και άσσων: start 1 q 0 0 1 q 1 1 0 0 q 3 0 q 2 Γιάννης Ρεφανίδης 1 38 19

Επέκταση της συνάρτησης μετάβασης σε λέξεις Επεκτείνουμε τον ορισμό της συνάρτησης μετάβασης σε λέξεις w με w 0 ως εξής: δ(q,ε)=q δ(q,wα)=δ(δ(q,w),a), όπου w Σ*, α Σ. Γιάννης Ρεφανίδης 39 Γλώσσα ενός ντετερμινιστικού πεπερασμένου αυτομάτου Έστω Μ ένα ντετερμινιστικό πεπερασμένο αυτόματο. Η γλώσσα του Μ συμβολίζεται με L(M) και αποτελείται από το σύνολο όλων εκείνων των λέξεων που δέχεται το M. L(M)={ w w Σ* και δ(s,w) F } Τα σύνολα των γλωσσών των ντετερμινιστικών πεπερασμένων αυτομάτων και των γλωσσών των κανονικών εκφράσεων ταυτίζονται. Γιάννης Ρεφανίδης 40 20

Συνολική κατάσταση (1/2) (configuration) Η συνολική κατάσταση υπολογισμού ενός αυτομάτου σε κάποια στιγμή της λειτουργίας του είναι η τρέχουσα κατάστασή του και το αδιάβαστο τμήμα της λέξης που επεξεργάζεται. Συμβολίζεται με (q,w), όπου q η τρέχουσα κατάσταση και w το κομμάτι της λέξης εισόδου που δεν έχει ακόμη διαβαστεί. (q,w) KxΣ* Γιάννης Ρεφανίδης 41 Συνολική κατάσταση (2/2) (configuration) Ο συμβολισμός (q,w) Μ (q',w') δηλώνει ότι το αυτόματο Μ μπορεί να μεταβεί από τη συνολική κατάσταση (q,w) στην (q',w') σε ένα βήμα. Προφανώς ισχύει: w=σw' για κάποιο σύμβολο σ και επιπλέον δ(q,σ)=q'. Παρόμοια, ο συμβολισμός (q,w) * Μ (q',w') δηλώνει ότι το αυτόματο Μ μπορεί να μεταβεί από τη συνολική κατάσταση (q,w) στην (q',w') σε κανένα, ένα ή περισσότερα βήματα. Γιάννης Ρεφανίδης 42 21

Πεπερασμένα αυτόματα Μη-ντετερμινιστικά πεπερασμένα αυτόματα Μη-ντετερμινιστικά πεπερασμένα αυτόματα (ΜΠΑ) (Non-deterministic finite automata NFA) Από κάθε κατάσταση επιτρέπονται πολλές διαφορετικές μεταβάσεις για το ίδιο σύμβολο εισόδου. Το αυτόματο μπορεί αυθαίρετα να επιλέξει ποια από τις δυνατές μεταβάσεις θα ακολουθήσει. Η επιλογή αυτή είναι μη-ντετερμινιστική. Γιάννης Ρεφανίδης 44 22

Σύγκριση ΜΠΑ και ΝΠΑ Μια λέξη γίνεται δεκτή από ένα ΜΠΑ εάν υπάρχει κάποιος τρόπος το ΜΠΑ να μεταβεί από την αρχική του κατάσταση σε μια τελική με είσοδο τη συγκεκριμένη λέξη. Κάθε μη-ντετερμινιστικό πεπερασμένο αυτόματα είναι ισοδύναμο με κάποιο ντετερμινιστικό. Τα μη-ντετερμινιστικά πεπερασμένα αυτόματα είναι ευκολότερα στη σχεδίαση και την κατανόηση από τα αντίστοιχα ντετερμινιστικά. Γιάννης Ρεφανίδης 45 Παράδειγμα Μη ντετερμινιστικό πεπερασμένο αυτόματο (ΜΠΑ) που δέχεται όλες τις λέξεις που τελειώνουν σε 01. start 0,1 0 1 q 0 q 1 q 2 και το αντίστοιχο ντετερμινιστικό... (ΝΠΑ) start 1 1 q 0 1 0 q 1 q 2 0 0 Γιάννης Ρεφανίδης 46 23

Ακόμη ένα παράδειγμα (1/2) ΝΠΑ για τη γλώσσα L=(ab + aba)*. a start a b a q 0 q 1 q 2 q 3 b a a q 4 b b Γιάννης Ρεφανίδης 47 b Η κατάσταση q 4 και τα τόξα που οδηγούν σε αυτή θα μπορούσαν να παραλειφθούν. Ακόμη ένα παράδειγμα (2/2) Και το αντίστοιχο ΜΠΑ για τη γλώσσα L=(ab + aba)*. start q 0 a a b q 2 b q 1 Όταν από μια κατάσταση δεν εξέρχεται βέλος για κάποιο συγκεκριμένο σύμβολο εισόδου, αυτό δηλώνει ότι αν στη κατάσταση αυτή έρθει το συγκεκριμένο σύμβολο εισόδου, το αυτόματα τερματίζει απαντώντας αρνητικά (πεθαίνει dies) Γιάννης Ρεφανίδης 48 24

Ορισμός ΜΠΑ Ένα μη-ντετερμινιστικό πεπερασμένο αυτόματο είναι μια πεντάδα Μ={Κ,Σ,s,F,Δ} όπου: Κ είναι ένα πεπερασμένο σύνολο από καταστάσεις Σ είναι ένα αλφάβητο s K είναι η αρχική κατάσταση F K είναι το σύνολο των τελικών καταστάσεων Δ είναι η σχέση μετάβασης (transition function) από το KxΣ στο Κ. Γιάννης Ρεφανίδης 49 Παράδειγμα ορισμού ΜΠΑ (1/2) Μ={Κ,Σ,s,F,Δ} K={q 0,q 1,q 2 } start Σ={a,b} s=q 0 F={q 0 } και... (επόμενη διαφάνεια) q 0 a a b q 2 b q 1 Γιάννης Ρεφανίδης 50 25

Παράδειγμα ορισμού ΜΠΑ (2/2) Σχέση μετάβασης Δ Τρέχουσα κατάσταση q Επόμενη είσοδος σ Επόμενη κατάσταση Δ(q,σ) q 0 a {q 1 } q 0 b {} start q 0 a a b b q 1 q 1 a {} q 2 q 1 b {q 0,q 2 } q 2 a q 0 q 2 b {} Γιάννης Ρεφανίδης 51 Πεπερασμένα αυτόματα Ισοδυναμία ντετερμινιστικών και μηντετερμινιστικών πεπερασμένων αυτομάτων 26

Ισοδυναμία ΝΠΑ και ΜΠΑ Δύο πεπερασμένα αυτόματα Μ 1 και Μ 2 ονομάζονται ισοδύναμα αν και μόνο αν L(M 1 )=L(M 2 ). Για κάθε μη-ντετερμινιστικό πεπερασμένο αυτόματα υπάρχει ένα ισοδύναμο ντετερμινιστικό πεπερασμένο αυτόματο. Γιάννης Ρεφανίδης 53 (Mαθηματικό υπόβαθρο) Για ένα σύνολο Α, το δυναμοσύνολό του συμβολίζεται με 2 Α ή με Power(A) και αποτελείται από όλα τα υποσύνολά του. Βρίσκεται εύκολα ότι το σύνολο 2 Α έχει 2 Α στοιχεία, εξ'ού και ο συμβολισμός 2 Α. Παράδειγμα: Α = {a,b,c} 2 Α = { {}, {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c} } Γιάννης Ρεφανίδης 54 27

Μετατροπή ΜΠΑ σε ΝΠΑ - Βήμα 1 Έστω Μ={Κ M,Σ M,s M,F M,δ} ένα μηντετερμινιστικό πεπερασμένο αυτόματο και N={Κ N,Σ N,s N,F N,Δ} το αντίστοιχο ντετερμινιστικό που θέλουμε να κατασκευάσουμε. Βασική ιδέα: Το σύνολο των καταστάσεων του N είναι το δυναμοσύνολο των καταστάσεων του M: Κ N =2 Κ M Ωστόσο δεν είναι όλες οι καταστάσεις Κ Ν προσβάσιμες... Γιάννης Ρεφανίδης 55 Παράδειγμα μετατροπής ΜΠΑ σε ΝΠΑ Βήμα 1 Έστω το ΜΠΑ Μ τριών καταστάσεων που δέχεται τη γλώσσα L=(0+1)*01. start 0,1 0 1 q 0 q 1 q 2 Το αντίστοιχο ΝΠΑ Ν μπορεί να έχει μέχρι και 8 καταστάσεις:, Κ Ν =2 Κ Μ, ΚΝ =2 Κ Μ = 2 3 = 8 Γιάννης Ρεφανίδης 56 28

Παράδειγμα μετατροπής ΜΠΑ σε ΝΠΑ Βήμα 1 q 0 q 1 q 0 q 1 q 2 q 0 q 2 q 1 q 2 q 0 q 1 q 2 Γιάννης Ρεφανίδης 57 Μετατροπή ΜΠΑ σε ΝΠΑ Βήμα 2 Αρχική κατάσταση του ΝΠΑ είναι αυτή που αντιστοιχεί στην αρχική κατάσταση του ΜΠΑ. Τελικές καταστάσεις του ΝΠΑ είναι όσες "περιέχουν" τουλάχιστον μία τελική κατάσταση του ΜΠΑ. Γιάννης Ρεφανίδης 58 29

Παράδειγμα μετατροπής ΜΠΑ σε ΝΠΑ Βήμα 2 start q 0 q 1 q 0 q 1 q 2 q 0 q 2 q 1 q 2 q 0 q 1 q 2 Γιάννης Ρεφανίδης 59 Μετατροπή ΜΠΑ σε ΝΠΑ Βήμα 3 Για κάθε S Κ Μ (όπου η S αντιστοιχεί σε μια κατάσταση του Ν) και για κάθε σύμβολο εισόδου σ, ορίζουμε ως δ(s,σ) την κατάσταση του Ν που αντιστοιχεί στο σύνολο των καταστάσεων: ( S, ) ( q, ) q S Γιάννης Ρεφανίδης 60 30

0,1 Παράδειγμα μετατροπής ΜΠΑ σε ΝΠΑ Βήμα 3 start 0 1 q 0 q 1 q 2 Κατάσταση S δ(s,0) δ(s,1) {q 0 } {q 0, q 1 } {q 0 } {q 1 } {q 2 } {q 2 } {q 0, q 1 } {q 0, q 1 } {q 0, q 2 } {q 0, q 2 } {q 0, q 1 } {q 0 } {q 1, q 2 } {q 2 } Γιάννης Ρεφανίδης 61 {q 0,q 1,q 2 } {q 0, q 1 } {q 0, q 2 } 0,1 Παράδειγμα μετατροπής ΜΠΑ σε ΝΠΑ Βήμα 3 1 0 start 0 q 0 q 1 1 0 q 0 q 1 0 1 0 1 q 0 q 2 0,1 0 1 q q 0 q 1 q 2 1 q 2 q 2 Γιάννης Ρεφανίδης 62 1 31

Παράδειγμα μετατροπής ΜΠΑ σε ΝΠΑ Βήμα 3 0,1 1 0 start 0 q 0 q 1 1 0 q 0 q 1 1 0 0 1 q 0 q 2 0,1 0 1 q q 0 q 1 q 2 1 q 2 q 2 Γιάννης Ρεφανίδης 63 1 Παράδειγμα μετατροπής ΜΠΑ σε ΝΠΑ Βήμα 3...όπως στη διαφάνεια 46. 1 1 start 0 1 q 0 q 0 q 1 q 0 q 2 0 0 Γιάννης Ρεφανίδης 64 32

Πεπερασμένα αυτόματα Μη-ντετερμινιστικά πεπερασμένα αυτόματα με ε-μεταβάσεις Μη-ντετερμινιστικά πεπερασμένα αυτόματα με ε-μεταβάσεις Υπάρχουν μεταβάσεις που επιγράφονται με την κενή συμβολοσειρά ε. Όταν ένα ΜΠΑ βρεθεί σε μια κατάσταση από την οποία ξεκινά μία (ή περισσότερες) ε-μετάβαση, μπορεί (μη-ντετερμινιστικά πάντα) να την ακολουθήσει. Η ύπαρξη των ε-μεταβάσεων δεν επεκτείνει τις γλώσσες που αναγνωρίζουν τα πεπερασμένα αυτόματα. Οι ε-μεταβάσεις μας επιτρέπουν να κατασκευάζουμε πιο ευκολονόητα αυτόματα. Γιάννης Ρεφανίδης 66 33

Παράδειγμα 1 Αυτόματο που δέχεται δεκαδικούς αριθμούς 0,1,...,9 0,1,...,9 start ε,+,-. q 0 q 1 q 2 q 4 0,1,...,9 0,1,...,9. q 3 Γιάννης Ρεφανίδης 67 Παράδειγμα 2 Αυτόματο που αναγνωρίζει δύο λέξεις Σ Σ ε t h q 1 q 2 q 3 i s q 3 q 4 start q 0 ε t h q 5 q 6 q 7 a t q 8 q 9 Γιάννης Ρεφανίδης 68 Σ 34

Ορισμός ΜΠΑ με ε-μεταβάσεις Ο ορισμός ενός ΜΠΑ με ε-μεταβάσεις είναι ίδιος με αυτόν ενός απλού ΜΠΑ, με μόνη τη διαφορά ότι η σχέση μετάβασης Δ ορίζεται ως εξής: Δ: Κ x Σ {ε} Κ Δηλαδή η σχέση μετάβασης περιλαμβάνει και μεταβάσεις που γίνονται με την κενή συμβολοσειρά ε. Γιάννης Ρεφανίδης 69 Ισοδυναμία ΜΠΑ με ε-μεταβάσεις με ΝΠΑ Ορίζουμε ως ε-κλείσιμο (ECLOSE) μιας κατάστασης q, ECLOSE(q) το σύνολο όλων των καταστάσεων του αυτομάτου που είναι προσβάσιμες από την q ακολουθώντας μόνο ε- μεταβάσεις. Η μετατροπή ΜΠΑ με ε-μεταβάσεις είναι παρόμοια σε ΝΠΑ είναι ίδια με αυτήν που έχουμε δει για τη μετατροπή ΜΠΑ σε ΝΠΑ, αν κατά τη μετατροπή αντικαταστήσουμε κάθε κατάσταση q με την ECLOSE(q). Γιάννης Ρεφανίδης 70 35

Ιδιότητες των γλωσσών των πεπερασμένων αυτομάτων Βασικές ιδιότητες γλωσσών πεπερασμένων αυτομάτων Η κλάση των γλωσσών που είναι δεκτές από πεπερασμένα αυτόματα είναι κλειστή ως προς: Ένωση Παράθεση Kleene Star Συμπλήρωση Τομή Γιάννης Ρεφανίδης 72 36

Διαγραμματική απόδειξη Έστω δύο ΝΠΑ αυτόματα Α και Β και L(A) και L(B) οι γλώσσες που γίνονται δεκτές από αυτά. Α Β Α 2 Β 2 start Α 1 start Β 1 Α 3 Β 3 Γιάννης Ρεφανίδης 73 Διαγραμματική απόδειξη Κλειστότητα ως προς την ένωση Η γλώσσα L(A) L(B) γίνεται δεκτή από το διπλανό αυτόματο: start q 0 ε ε Α Α 1 Α 2 Β Α 3 Β 1 Β 2 Β 3 Γιάννης Ρεφανίδης 74 37

Διαγραμματική απόδειξη Κλειστότητα ως προς την παράθεση Η γλώσσα L(A)L(B) γίνεται δεκτή από το παρακάτω αυτόματο: start Α Α 1 Α 2 ε ε Β Β 1 Β 2 Α 3 Β 3 Γιάννης Ρεφανίδης 75 Διαγραμματική απόδειξη Κλειστότητα ως προς το Kleene Star Η γλώσσα L(A)* γίνεται δεκτή από το παρακάτω αυτόματο: start q 0 Α Α 1 Α 2 ε ε q 1 Α 3 ε Γιάννης Ρεφανίδης 76 38

Κλειστότητα ως προς τη συμπλήρωση Η γλώσσα Σ* - L(A) γίνεται δεκτή από το αυτόματο A' το οποίο προκύπτει από το Α αν όλες οι τελικές καταστάσεις του Α γίνουν μη τελικές και όλες οι μη-τελικές γίνουν τελικές. Προσοχή: Το αυτόματο Α θα πρέπει να είναι πλήρες μεταβάσεων, δηλαδή να υπάρχουν μεταβάσεις για όλες τις πιθανές εισόδους και όλες τις καταστάσεις του. Προσοχή: Η παραπάνω τεχνική ισχύει μόνο για ντετερμινιστικά αυτόματα. Τα ΜΠΑ (με ή χωρίς ε- μεταβάσεις) πρέπει πρώτα να μετατραπούν στα αντίστοιχα ΝΠΑ. Γιάννης Ρεφανίδης 77 Κλειστότητα ως προς την τομή L(A) L(B)= Σ*- ((Σ*-L(A)) (Σ*-L(B)) Γιάννης Ρεφανίδης 78 39

Αλγόριθμοι Υπάρχουν αλγόριθμοι που απαντούν στα παρακάτω ερωτήματα: Δεδομένου πεπερασμένου αυτόματου M και συμβολοσειράς w, ανήκει η w στο L(M); Δεδομένου πεπερασμένου αυτόματου M, ισχύει L(M) = ; Δεδομένου πεπερασμένου αυτόματου M, ισχύει L(M) = Σ* ; Δεδομένων δύο πεπερασμένων αυτομάτων Μ 1 και Μ 2, ισχύει L(M 1 ) L(M 2 ) ; Δεδομένων δύο πεπερασμένων αυτομάτων Μ 1 και Μ 2, ισχύει L(M 1 )=L(M 2 ) ; Γιάννης Ρεφανίδης 79 Πεπερασμένα αυτόματα Ισοδυναμία πεπερασμένων αυτομάτων και κανονικών εκφράσεων 40

Κατασκευή αυτομάτων από κανονικές εκφράσεις Με βάση τις ιδιότητες κλειστότητας που είδαμε στις προηγούμενες διαφάνειες, μπορούμε να κατασκευάσουμε αυτόματο που να δέχεται τη γλώσσα οποιασδήποτε κανονικής έκφρασης. Η κατασκευή των αυτομάτων γίνεται με βάση τα απλούστερα αυτόματα που δέχονται τα μεμονωμένα σύμβολα του αλφαβήτου καθώς και την κενή λέξη ε. Γιάννης Ρεφανίδης 81 Παράδειγμα κατασκευής αυτομάτου από κανονική έκφραση Να κατασκευαστεί αυτόματο που να δέχεται τη γλώσσα (ab + aab)* a b ε ε a ε b ε ε a ε a ε b ε Γιάννης Ρεφανίδης 82 41

Εύρεση κανονικών εκφράσεων από αυτόματα (1/3) Η διαδικασία βασίζεται στην απαλοιφή των ενδιάμεσων μη τελικών καταστάσεων του αυτομάτου. Για κάθε ενδιάμεση μη-τελική κατάσταση: Απαλοίφουμε την κατάσταση και όλα τα τόξα που εισέρχονται ή εξέρχονται από αυτή. Προσθέτουμε ένα νέο τόξο για κάθε συνδυασμό εισερχόμενου-εξερχόμενου τόξου της κατάστασης που απαλείψαμε. Το νέο τόξο έχει ως επιγραφή την παράθεση των επιγραφών των επιμέρους τόξων, δηλαδή μια κανονική έκφραση. Γιάννης Ρεφανίδης 83 Εύρεση κανονικών εκφράσεων από αυτόματα (2/3) Για παράδειγμα, από το: παίρνουμε το: W Α Χ Υ Β Γ Ζ Α Z+XW*Y Γ Γιάννης Ρεφανίδης 84 42

Εύρεση κανονικών εκφράσεων από αυτόματα (3/3) Εάν το αρχικό αυτόματο είχε μόνο μια τελική κατάσταση, στο τέλος θα καταλήξουμε με ένα αυτόματο της μορφής: start R Α Το αυτόματο αυτό αντιστοιχεί στην κανονική έκφραση: (R+SU*T)*SU* S T Β U Γιάννης Ρεφανίδης 85 Παράδειγμα (1/4) Έστω το παρακάτω αυτόματο. a b a start b a Α Β Γ Δ b a b Πρέπει να απαλείψουμε τις καταστάσεις Β και Γ... Γιάννης Ρεφανίδης 86 43

Παράδειγμα (2/4) start Α a b a Β a b Γ b b Δ a start Α a ba* b Γ aa*b b b Δ a Γιάννης Ρεφανίδης 87 Παράδειγμα (3/4) start Α a ba* b Γ aa*b b b Δ a a+bb*aa*b start Α ba* b+ab*aa*b Δ Γιάννης Ρεφανίδης 88 44

Παράδειγμα (4/4) a+bb*aa*b start Α ba* b+ab*aa*b Δ Από το παραπάνω αυτόματο προκύπτει ότι η κανονική έκφραση στην οποία αυτό αντιστοιχεί είναι η: (ba* b+ab*aa*b)(a+bb*aa*b)* Η ίδια τεχνική μπορεί να εφαρμοστεί και για αυτόματα με περισσότερες από μια τελικές καταστάσεις. Γιάννης Ρεφανίδης 89 Μη κανονικές γλώσσες 45

Μη κανονικές γλώσσες Είναι οι γλώσσες εκείνες για τις οποίες δεν υπάρχει πεπερασμένο αυτόματο (ντετερμινιστικό ή μη) που να τις δέχεται. Δεν υπάρχει γενική μέθοδος απόδειξης ότι μία γλώσσα δεν είναι κανονική. Για να αποδείξουμε ότι μια γλώσσα δεν είναι κανονική, χρησιμοποιούμε κάποιες βασικές ιδιότητες που ισχύουν για τις κανονικές γλώσσες. Γιάννης Ρεφανίδης 91 Ιδιότητα 1 Καθώς διαβάζουμε μια λέξη (οσοδήποτε μεγάλου μήκους) από αριστερά προς τα δεξιά, το ποσό της μνήμης που χρειάζεται για να αποφασιστεί στο τέλος αν η λέξη ανήκει ή όχι στη γλώσσα πρέπει να είναι φραγμένο και εξαρτώμενο από τη γλώσσα (δηλ.: να μην εξαρτάται από τη συγκεκριμένη λέξη). π.χ. κάτι τέτοιο δεν ισχύει για τις λέξεις της γλώσσας {a n b n : n>0} Γιάννης Ρεφανίδης 92 46

Ιδιότητα 2 Οι κανονικές γλώσσες με άπειρο αριθμό λέξεων (προφανώς μη φραγμένου μήκους) έχουν άπειρα υποσύνολα με κάποια απλή επαναληπτική δομή που προκύπτει από άστρο στην αντίστοιχη κανονική έκφραση ή από κύκλο στο διάγραμμα καταστάσεων ενός πεπερασμένου αυτόματου. Η γλώσσα {a n : ο n είναι πρώτος αριθμός} δεν είναι κανονική. Γιάννης Ρεφανίδης 93 Θεώρημα άντλησης Έστω L μια άπειρη κανονική γλώσσα. Τότε υπάρχουν λέξεις x,y,z τέτοιες ώστε y ε και xy n z L για κάθε n 0. Με άλλα λόγια, υπάρχουν ορισμένα σημεία μέσα σε ορισμένες λέξεις (και σίγουρα στις "πολύ μεγάλες" λέξεις) στα οποία μπορεί να εισαχθεί επανειλημένα μια υπολέξη, χωρίς αυτό να επηρρεάσει το γεγονός ότι η αρχική λέξη γίνεται δεκτή. Γιάννης Ρεφανίδης 94 47

Παράδειγμα 1 Η γλώσσα L={a n b n : n 0}δεν είναι κανονική. Προσπαθούμε να φτιάξουμε λέξεις της μορφής xy n z που να ανήκουν στη γλώσσα για κάθε n. Υπάρχουν τρεις περιπτώσεις: Το y να αποτελείται μόνο από a. Το y να αποτελείται μόνο από b. Το y να αποτελείται από μερικά a και στη συνέχεια από μερικά b. Και στις τρεις περιπτώσεις μπορεί εύκολα να φανεί ότι δεν είναι δυνατόν λέξεις αυτής της μορφής να ανήκουν στη γλώσσα L για κάθε n, είτε γιατί δεν θα είναι ίσος ο αριθμός των a και των b (πρώτη και δεύτερη περίπτωση), είτε γιατί θα υπάρχουν 'ανακατωμένα' a και b (τρίτη περίπτωση). Γιάννης Ρεφανίδης 95 Παράδειγμα 2 Η γλώσσα L={a n : Ο n είναι πρώτος αριθμός} δεν είναι κανονική. Σύμφωνα με το θεώρημα, θα πρέπει να υπάρχουν x=a p, y=a q, z=a r, p,r 0, q>0, τέτοια ώστε κάθε λέξη της μορφής xy n z να ανήκει στη γλώσσα. Δηλαδή θα πρέπει η λέξη a p+nq+r να ανήκει στη γλώσσα για κάθε n 0, δηλαδή ο αριθμός p+nq+r πρέπει να είναι πρώτος για κάθε n 0. Όμως, έστω n=p+2q+r+2, τότε p+nq+r=(q+1)(p+2q+r) Γιάννης Ρεφανίδης 96 48

Γραμματικές χωρίς συμφραζόμενα Γραμματικές χωρίς συμφραζόμενα Μια γραμματική χωρίς συμφραζόμενα G ορίζεται ως μια τετράδα (V, Σ, R, S) όπου: V είναι ένα αλφάβητο Σ είναι το σύνολο των τερματικών συμβόλων, Σ V. R, το σύνολο των κανόνων, είναι μια σχέση από το (V-Σ) στο V*. S, το αρχικό σύμβολο, είναι στοιχείο του V-Σ. Γιάννης Ρεφανίδης 98 49

Εφαρμογή κανόνων Τα στοιχεία του συνόλου V-Σ ονομάζονται μη-τερματικά. Για κάθε Α V-Σ και u V *, εφόσον ισχύει R(A,u) γράφουμε A u. Για δύο συμβολοσειρες v,w V*, λέμε ότι η w παράγεται από την v σε ένα βήμα, και συμβολίζουμε με v w εάν: v=xay, x,y V* w=xuy Υπάρχει ο κανόνας A u στο σύνολο κανόνων. Οι γραμματικές λέγονται "χωρίς συμφραζόμενα" επειδή στο αριστερό μέρος των κανόνων τους έχουν ένα μητερματικό σύμβολο και μόνο. Γιάννης Ρεφανίδης 99 Παραγωγή των λέξεων της γλώσσας Συμβολίζουμε με v w * το γεγονός ότι η λέξη w παράγεται από τη λέξη v με εφαρμογή πολλών κανόνων από το σύνολο κανόνων R. Με βάση τα παραπάνω, η γλώσσα L(G) που παράγεται από μια γραμματική χωρίς συμφραζόμενα G ορίζεται ως εξής: L(G)={w Σ*:S w} * Γιάννης Ρεφανίδης 100 50

Παράδειγμα 1 Έστω η γραμματική χωρίς συμφραζόμενα G = (V, Σ, R, S) όπου: V={S,a,b} Σ={a,b} Η σχέση R αποτελείται από τους κανόνες S asb και S ε. Μια παραγωγή της γλώσσας αυτής είναι η: S asb aasbb aabb Είναι εύκολο να δει κανείς ότι L(G)={a n b n : n 0} Γιάννης Ρεφανίδης 101 Παράδειγμα 1 (συνέχεια...) Βλέπουμε από το παράδειγμα ότι κάποιες γλώσσες χωρίς συμφραζόμενα δεν είναι κανονικές. Ωστόσο ισχύει ότι όλες οι κανονικές γλώσσες μπορούν να προκύψουν από γραμματικές χωρίς συμφραζόμενα. Γιάννης Ρεφανίδης 102 51

Παράδειγμα 2 Π=Προσδιορισμός Ρ=Ρήμα Ο=Ουσιαστικό Ε=Επίθετο Α=Άρθρο Έστω η γραμματική G=(V,Σ,R,S) με: V={S,Π,Ρ,Ο,Ε,Α} Σ Σ={ο, είναι, Νίκος, καλός, φοιτητής} R={S ΠΡΠ, Π ΑΕΟ, Π ΕΟ, Π ΑΟ, Π Ο, Α ο, Ρ είναι, Ο Νίκος, Ε καλός, Ο φοιτητής} Έγκυρες "λέξεις" που παράγονται είναι οι: ο Νίκος είναι καλός φοιτητής ο Νίκος είναι φοιτητής ο καλός Νίκος είναι φοιτητής κλπ Γιάννης Ρεφανίδης 103 Παράδειγμα 3 Έστω η γραμματική G=(V,Σ,R,E) με: V={E} Σ Σ={ x, y, +,, (, ) } R={E (E), E E+E, Ε E E, E x, E y} Έγκυρες "λέξεις" που παράγονται είναι οι: x+y x+x y (x y+x x) (x+y (x+y y)) κλπ E=Έκφραση Γιάννης Ρεφανίδης 104 52

Παράδειγμα 3 (συνέχεια...) (x y+x x) (x+y (x+y y)) Ε Ε Ε (Ε) Ε (Ε) (Ε) (Ε+Ε) (Ε) (Ε Ε+Ε) (Ε) (Ε Ε+Ε Ε) (Ε) (Ε Ε+Ε Ε) (Ε+Ε) (Ε Ε+Ε Ε) (Ε+Ε Ε) (Ε Ε+Ε Ε) (Ε+Ε (Ε)) (Ε Ε+Ε Ε) (Ε+Ε (Ε+Ε)) (Ε Ε+Ε Ε) (Ε+Ε (Ε+Ε Ε))...... (x y+x x) (x+y (x+y y)) Γιάννης Ρεφανίδης 105 Συντακτικό δέντρο (Parse Tree) Πρόκειται για μια διαγραμματική αναπαράσταση, με μορφή δέντρου, του τρόπου που παράγεται μια λέξη εφαρμόζοντας τους κανόνες της γραμματικής. Κάθε κόμβος του αντιστοιχεί σε ένα σύμβολο. Τα παιδιά ενός κόμβου προκύπτουν από την εφαρμογή ενός κανόνα στο σύμβολο του κόμβου. Τα φύλλα του δέντρου είναι τερματικά σύμβολα. Η λέξη προκύπτει παραθέτοντας όλα τα φύλλα του δέντρου, διαβάζοντάς τα από αριστερά προς τα δεξιά. Γιάννης Ρεφανίδης 106 53

(x y+x x) (x+y (x+y y)) Παράδειγμα συντακτικού δέντρου (για την παραγωγή της διαφάνειας 105) Ε Ε Ε Ε + Ε Ε + Ε Ε Ε Ε Ε x y x x x Ε Ε ( Ε ) y Ε + Ε x Ε Ε Γιάννης Ρεφανίδης 107 y y Εναλλακτικές Παραγωγές Είναι δυνατόν μια λέξη να παράγεται με περισσότερους από έναν τρόπους από τους κανόνες μιας γραμματικής (και άρα να έχει εναλλακτικά συντακτικά δέντρα). Για παράδειγμα, η λέξη x+x y μπορεί να παραχθεί από τη γραμματική του παραδείγματος 3 ως εξής: E E+E E+E E... x+x y αλλά και ως εξής: E E E E+E E... x+x y Οι γραμματικές που επιτρέπουν εναλλακτικές παραγωγές λέγονται διφορούμενες (ambiguous). Γιάννης Ρεφανίδης 108 54

Αριστερότερη Παραγωγή (leftmost derivation) Ως αριστερότερη παραγωγή μιας λέξης ορίζεται αυτή η οποία σε κάθε βήμα αντικαθιστά το αριστερότερο μη-τερματικό σύμβολο της λέξης. Στο παράδειγμα της λέξης x+x y, αριστερότερη παραγωγή είναι η: E E E E+E E x+e E x+x E x+x y Παρόμοια ορίζεται η δεξιότερη παραγωγή (rightmost derivation). Για κάθε λέξη, εφόσον υπάρχει μια παραγωγή, τότε υπάρχουν σίγουρα μια αριστερότερη και μια δεξιότερη παραγωγή. Γιάννης Ρεφανίδης 109 Κανονικές Γραμματικές Μια γραμματική λέγεται κανονική, εάν στο δεξιό μέρος κάθε κανόνα της υπάρχει το πολύ ένα μητερματικό σύμβολο, και αυτό είναι πάντα στην τελευταία θέση. Τα σύνολα των γλωσσών των κανονικών γραμματικών και των γλωσσών των κανονικών εκφράσεων (ή των πεπερασμένων αυτομάτων) ταυτίζονται. Γιάννης Ρεφανίδης 110 55

Αυτόματα Στοίβας (Pushdown Automata) Η στοίβα (Stack) Η στοίβα είναι μια δομή δεδομένων, όπου μπορεί το αυτόματο να αποθηκεύει προσωρινά σύμβολα. Έχει άπειρη χωρητικότητα. Η λογική λειτουργίας της στοίβας είναι η εξής: Τα σύμβολα αποθηκεύονται σε μια σειρά, με τρόπο τέτοιο ώστε το τελευταίο σύμβολο που αποθηκεύτηκε να είναι το πρώτο που θα εξαχθεί. Γιάννης Ρεφανίδης 112 56

Σχηματική αναπαράσταση αυτομάτου στοίβας Είσοδος συμβόλων Πεπερασμένο αυτόματο Αποδοχή ή απόρριψη Στοίβα a b a Γιάννης Ρεφανίδης 113 Λογική λειτουργίας (1/2) Σε κάθε βήμα το αυτόματο μπορεί: να εισάγει ένα σύμβολο στην κορυφή της στοίβας (push), να εξάγει το σύμβολο από την κορυφή της στοίβας (pop), ή τέλος να αντικαταστήσει το σύμβολο στην κορυφή της στοίβας με ένα άλλο. Γιάννης Ρεφανίδης 114 57

Λογική λειτουργίας (2/2) Η επόμενη κατάσταση του αυτομάτου καθορίζεται από: την τρέχουσα κατάστασή του, το σύμβολο που διαβάζει από την είσοδό του, και τέλος το σύμβολο στην κορυφή της στοίβας. Το αυτόματο τερματίζει επιτυχώς και αποδέχεται τη λέξη που διάβασε στην είσοδό του αν στο τέλος βρεθεί σε τελική κατάσταση και η στοίβα είναι άδεια. Γιάννης Ρεφανίδης 115 Τυπικός ορισμός αυτομάτου στοίβας Ένα αυτόματο στοίβας Μ ορίζεται ως μια εξάδα Μ=(Κ,Σ,Γ,Δ,s,F) όπου: Κ είναι ένα πεπερασμένο σύνολο καταστάσεων. Σ είναι το αλφάβητο εισόδου. Γ είναι το αλφάβητο της στοίβας. s Κ είναι η αρχική κατάσταση. F K είναι το σύνολο των τελικών καταστάσεων. Δ είναι η σχέση μετάβασης από το KxΣxΓ στο ΚxΓ. Γιάννης Ρεφανίδης 116 58

Παρατηρήσεις Ο ορισμός που δόθηκε στην προηγούμενη διαφάνεια είναι γενικός και άρα περιλαμβάνει και τα μη-ντετερμινιστικά αυτόματα στοίβας. Θα δούμε παρακάτω ότι δεν υπάρχει ισοδυναμία ντετερμινιστικών και μη-ντετερμινιστικών αυτομάτων στοίβας. Γιάννης Ρεφανίδης 117 Παράδειγμα 1 Να σχεδιαστεί ένα αυτόματο στοίβας που να δέχεται τη γλώσσα L={wcw R w {a,b}*} Έχουμε Μ=(Κ,Σ,Γ,Δ,s,F) όπου: Κ={s,f} Σ={a,b,c} Γ={a,b} F={f} Γιάννης Ρεφανίδης 118 59

Παράδειγμα 1 (συνέχεια...) Η σχέση Δ ορίζεται ως εξής: Δ(s,a,ε) = (s,a) Δ(s,b,ε) = (s,b) Δ(s,c,ε) = (f,ε) Δ(f,a,a)=(f,ε) Δ(f,b,b)=(f,ε) start Το αυτόματο είναι ντετερμινιστικό. s a, ε/a b, ε/b Οι επιγραφές πάνω στα βέλη δηλώνουν κατά σειρά το σύμβολο εισόδου, το σύμβολο που εξέρχεται από τη στοίβα και το σύμβολο που εισέρχεται στη στοίβα. c, ε/ε f a, a/ε b, b/ε Γιάννης Ρεφανίδης 119 Παράδειγμα 2 Να σχεδιαστεί ένα αυτόματο στοίβας που να δέχεται τη γλώσσα L={ww R w {a,b}*} Έχουμε Μ=(Κ,Σ,Γ,Δ,s,F) όπου: Κ={s,f} Σ={a,b,c} Γ={a,b} F={f} Γιάννης Ρεφανίδης 120 60

Παράδειγμα 2 (συνέχεια...) Η σχέση Δ ορίζεται ως εξής: Δ(s,a,ε) = (s,a) Δ(s,b,ε) = (s,b) Δ(s,ε,ε) = (f,ε) Δ(f,a,a)=(f,ε) Δ(f,b,b)=(f,ε) start Το αυτόματο είναι μη-ντετερμινιστικό. s a, ε/a b, ε/b ε, ε/ε f a, a/ε b, b/ε Γιάννης Ρεφανίδης 121 Παρατήρηση Για να είναι ένα αυτόματο στοίβας ντετερμινιστικό θα πρέπει: Να μην υπάρχουν διαφορετικές μεταβάσεις για το ίδιο σύμβολο εισόδου (συμπεριλαμβανομένου του ε) και την ίδια κατάστασης της στοίβας. Γιάννης Ρεφανίδης 122 61

Αυτόματα Στοίβας και Γραμματικές χωρίς Συμφραζόμενα Ισοδυναμία Η κλάση των γλωσσών που είναι δεκτές από αυτόματα στοίβας είναι ακριβώς η κλάση των γλωσσών χωρίς συμφραζόμενα. γραμματικής αυτόματο στοίβας αυτόματο στοίβας γραμματική Γιάννης Ρεφανίδης 124 62

Γραμματική Αυτόματο Στοίβας Έστω η γραμματική G=(V,Σ,R,S). Κατασκευάζουμε το αυτόματο M=({p,q},Σ,V,Δ,p,{q}), όπου η Δ έχει τις εξής μεταβάσεις: (p,ε,ε) (q,s) (q,ε,α) (q,x) για κάθε κανόνα A x (q,a,a) (q,ε) για κάθε a Σ. Το αυτόματο που προκύπτει μπορεί να είναι μη ντετερμινιστικό (εξαρτάται από τη γραμματική). Γιάννης Ρεφανίδης 125 Γραμματική Αυτόματο Στοίβας Παράδειγμα (1/2) Έστω η γλώσσα {wcw R : w {a,b}*} που ορίζεται από τη γραμματική G=(V,Σ,R,S) με: V={S,a,b,c} Σ={a,b,c} R={S asa, S bsb, S c} Γιάννης Ρεφανίδης 126 63

Γραμματική Αυτόματο Στοίβας Παράδειγμα (2/2) start p ε, ε/s a, a/ε b, b/ε ε, S/c q c, c/ε ε, S/aSa ε, S/bSb Γιάννης Ρεφανίδης 127 Αυτόματο Στοίβας Γραμματική Εκτός ύλης... Γιάννης Ρεφανίδης 128 64

Ιδιότητες Γραμματικών χωρίς Συμφραζόμενα Ιδιότητες Γραμματικών χωρίς Συμφραζόμενα Ιδιότητες Κλειστότητας Ιδιότητες Περιοδικότητας Αλγοριθμικές ιδιότητες Γιάννης Ρεφανίδης 130 65

Ιδιότητες Κλειστότητας Οι γλώσσες χωρίς συμφραζόμενα είναι κλειστές ως προς την ένωση, την παράθεση και Kleene Star. Οι γλώσσες χωρίς συμφραζόμενα δεν είναι κλειστές ως προς την τομή και τη συμπλήρωση. Γιάννης Ρεφανίδης 131 Ένωση Έστω G 1 =(V 1, Σ 1, R 1, S 1 ) και G 2 =(V 2, Σ 2, R 2, S 2 ). Η γραμματική G για την οποία ισχύει L(G)=L(G 1 ) L(G 2 ) ορίζεται ως εξής: G=(V 1 V 2 {S}, Σ 1 Σ 2, R 1 R 2 {S S 1,S S 2 }, S) Γιάννης Ρεφανίδης 132 66

Παράθεση Έστω G 1 =(V 1, Σ 1, R 1, S 1 ) και G 2 =(V 2, Σ 2, R 2, S 2 ). Η γραμματική G για την οποία ισχύει L(G)=L(G 1 )L(G 2 ) ορίζεται ως εξής: G=(V 1 V 2 {S}, Σ 1 Σ 2, R 1 R 2 {S S 1 S 2 }, S) Γιάννης Ρεφανίδης 133 Kleene Star Έστω G 1 =(V 1, Σ 1, R 1, S 1 ). Η γραμματική G για την οποία ισχύει L(G)=L(G 1 )* ορίζεται ως εξής: G=(V 1, Σ 1, R 1 {S 1 ε, S 1 S 1 S 1 }, S 1 ) Γιάννης Ρεφανίδης 134 67

Ιδιότητες Περιοδικότητας Θεώρημα άντλησης για γραμματικές Έστω G μια γραμματική χωρίς συμφραζόμενα. Τότε υπάρχει ένας αριθμός Κ (που εξαρτάται από την G) τέτοιος ώστε κάθε συμβολοσειρά w L(G) με w >K να μπορεί να γραφεί ως w=uvxyz, v + y >0 και uv n xy n z L(G) για κάθε n 0. Γιάννης Ρεφανίδης 135 Παράδειγμα Η γλώσσα L={a n b n c n : n 0} δεν είναι χωρίς συμφραζόμενα. Έστω μια αρκετά μεγάλη λέξη w L, τέτοια ώστε w >K ή ισοδύναμα n>k/3. w=uvxyz με v ε ή y ε. Σύμφωνα με το θεώρημα άντλησης, θα πρέπει και η λέξη uv 2 xy 2 z να ανήκει στην L, κάτι όμως που είναι φανερό ότι δεν μπορεί να ισχύει. Γιάννης Ρεφανίδης 136 68

Αλγοριθμικές Ιδιότητες (1/2) Υπάρχουν αλγόριθμοι που απαντούν στα παρακάτω ερωτήματα σχετικά με τις γραμματικές χωρίς συμφραζόμενα: Δεδομένης γραμματικής G και συμβολοσειράς w, ανήκει η w στην L(G); Είναι η L(G) κενή; Γιάννης Ρεφανίδης 137 Αλγοριθμικές Ιδιότητες (2/2) Δεν υπάρχουν αλγόριθμοι που να απαντούν πάντα στις παρακάτω ερωτήσεις: Έχουν δύο γραμματικές την ίδια γλώσσα; Μπορεί μια γραμματική να παράγει όλες τις λέξεις του αλφαβήτου της; Είναι η τομή των γλωσσών δύο γραμματικών κενό σύνολο; Είναι μια γραμματική διφορούμενη; Γιάννης Ρεφανίδης 138 69

Ντετερμινιστικά Αυτόματα Στοίβας Ντετερμινιστικά Αυτόματα Στοίβας (1/2) Ένα αυτόματο στοίβας λέγεται ντετερμινιστικό εάν υπάρχει μια το πολύ μετάβαση για κάθε συνδυασμό εισόδου και κατάστασης της στοίβας. Υπάρχουν γλώσσες χωρίς συμφραζόμενα που δεν γίνονται δεκτές από ντετερμινιστικά αυτόματα στοίβας. L={ww R } Ορίζουμε ως ντετερμινιστικές γλώσσες χωρίς συμφραζόμενα αυτές που γίνονται δεκτές από ντετερμινιστικά αυτόματα στοίβας. Γιάννης Ρεφανίδης 140 70

Ντετερμινιστικά Αυτόματα Στοίβας (2/2) Για τις γνωστές γλώσσες προγραμματισμού μπορεί κανείς να κατασκευάσει ντετερμινιστικά αυτόματα στοίβας που να δέχονται τα συντακτικώς σωστά προγράμματα αυτών. Τα προγράμματα αυτά ονομάζονται συντακτικοί αναλυτές (parsers). Γιάννης Ρεφανίδης 141 Μηχανές Turing (Turing machines) 71

Σχηματική αναπαράσταση Πεπερασμένο αυτόματο Κεφαλή ανάγνωσης/εγγραφής a b a c a b # # # # # Ταινία απείρου μήκους προς τη μία κατεύθυνση. Γιάννης Ρεφανίδης 143 Τυπικός ορισμός μηχανής Turing Μια μηχανή Turing ορίζεται από μια τετράδα Μ=(Κ,Σ,δ,s) όπου: Κ είναι ένα συνόλο από καταστάσεις. Σ είναι ένα αλφάβητο που μεταξύ άλλων περιέχει το ειδικό σύμβολο #. s K είναι η αρχική κατάσταση. δ είναι μια συνάρτηση από το KxΣ στο K {h} x Σ {L,R}. Γιάννης Ρεφανίδης 144 72

Παρατηρήσεις Υπάρχει πάντα η ειδική κατάσταση h που ονομάζεται κατάσταση τερματισμού. Συνήθως δεν την αναφέρουμε στο σύνολο Κ. Το σύμβολο # ονομάζεται κενό σύμβολο. Οι ειδικοί χαρακτήρες L και R συμβολίζουν μετακίνηση της κεφαλής ανάγνωσης/εγγραφής κατά μία θέση αριστερά και δεξιά αντίστοιχα. Γιάννης Ρεφανίδης 145 Τρόπος λειτουργίας (1/4) Αρχικά η μηχανή Turing βρίσκεται στην κατάσταση s και η κεφαλή ανάγνωσης/εγγραφής βρίσκεται στο αριστερό άκρο της ταινίας. Σε κάθε βήμα η μηχανή Turing μπορεί να μεταβεί σε μία νέα κατάσταση ή να παραμείνει στην ίδια (όπως συμβαίνει σε όλα τα αυτόματα). Επιπλέον, σε κάθε βήμα η κεφαλή ανάγνωσης/εγγραφής μπορεί εναλλακτικά: Να γράψει ένα σύμβολο στην τρέχουσα θέση Να μετακινηθεί μία θέση αριστερά ή δεξιά. Γιάννης Ρεφανίδης 146 73

Τρόπος λειτουργίας (2/4) Αρχικά στην ταινία είναι γραμμένα κάποια σύμβολα. Αυτά είναι συγκεντρωμένα στο αριστερό άκρο της ταινίας. Δεξιά από αυτά υπάρχουν μόνο χαρακτήρες κενού (#). H κεφαλή ανάγνωσης/εγγραφής δείχνει αρχικά σε κάποια προκαθορισμένη θέση της ταινίας. Η μηχανή Turing δεν διαβάζει άλλα σύμβολα κατά τη λειτουργία της παρά μόνο αυτά που είναι γραμμένα εξαρχής στην ταινία. Γιάννης Ρεφανίδης 147 Τρόπος λειτουργίας (3/4) Σε κάθε βήμα η μηχανή Turing αποφασίζει ντετερμινιστικά σε ποια κατάσταση θα μεταβεί και τι ενέργεια θα εκτελέσει στην ταινία, βάσει της τρέχουσας κατάστασής της και του συμβόλου που διαβάζει από την ταινία (όπως αυτά καθορίζονται από τη συνάρτηση μετάβασης δ). Η μηχανή τερματίζει είτε όταν εισέλθει στη κατάσταση τερματισμού h. Αν η κεφαλή επιχειρήσει να μετακινήθεί αριστερότερα από το αριστερό άκρο της ταινίας, τότε η μηχανή Turing διακόπτει τη λειτουργία της και δεν επιστρέφει καμία απάντηση. Γιάννης Ρεφανίδης 148 74

Τρόπος λειτουργίας (4/4) Η μηχανή Turing δεν έχει "καλές" και "κακές" τελικές καταστάσεις. Όταν η μηχανή Turing τερματίσει (εισερχόμενη στην κατάσταση τερματισμού h), τότε η "απάντηση" είναι ό,τι υπάρχει στην ταινία. Με αυτό τον τρόπο η μηχανή Turing μπορεί να δίνει σύνθετες απαντήσεις (και όχι μονολεκτικές της μορφής ΝΑΙ/ΟΧΙ, όπως συνέβαινε με τα απλά αυτόματα), όπως για παράδειγμα: Το ημίτονο ενός αριθμού Πόσες φορές εμφανίζεται ένας χαρακτήρας μέσα σε μια λέξη. Γιάννης Ρεφανίδης 149 Παράδειγμα Μια μηχανή που σβήνει τη λέξη εισόδου. Κ={s,q} Σ={a,#} δ(s,a) = (q,#) δ(s,#) = (h,#) δ(q,a) = (s,a) δ(q,#) = (s,r) Δεν εκτελείται ποτέ. Αρχικά η κεφαλή είναι στο αριστερό άκρο της ταινίας. Γιάννης Ρεφανίδης 150 75

Παράδειγμα (συνέχεια...) Ή και διαγραμματικά... #/R Το πρώτο σύμβολο είναι αυτό που διαβάζει η μηχανή, ενώ το δεύτερο είναι η κίνηση που εκτελεί ή το σύμβολο που γράφει. start s a/# q #/# h a/a Δεν εκτελείται ποτέ Γιάννης Ρεφανίδης 151 Συνολική κατάσταση Η τρέχουσα κατάσταση υπολογισμού μιας μηχανής Turing καθορίζεται πλήρως από: Την τρέχουσα κατάστασή της Τη λέξη που υπάρχει στην ταινία, αριστερά από την κεφαλή. Το χαρακτήρα που υπάρχει στη θέση της κεφαλής. Τη λέξη που υπάρχει από την ταινία δεξιά από την κεφαλή και μέχρι τον τελευταίο μη-κενό χαρακτήρα. Συμβολίζεται με (q,w,a,u) ή (q,wau). Όταν αναφερόμαστε μόνο στην κατάσταση της ταινίας, γράφουμε wau. Γιάννης Ρεφανίδης 152 76

Μεταβάσεις Μεταξύ συνολικών καταστάσεων ορίζεται η σχέση, η οποία δηλώνει ότι η μια κατάσταση παράγεται από την άλλη σε ένα βήμα. Η σχέση * δηλώνει ότι η μια κατάσταση παράγεται από την άλλη σε πολλά βήματα. Γιάννης Ρεφανίδης 153 Παράδειγμα Έτσι, στο παράδειγμα των διαφανειών 150-151, και αν υποθέσουμε ότι αρχικά υπάρχουν 4 σύμβολα a στην ταινία, έχουμε: (s,aaaa) (q,#aaa) (s,#aaa) (q,##aa) (s,##aa) (q,###a) (s,###a) (q,####) (s,#####) (h,#####) Ή και πιο σύντομα: (s,aaaa) * (h,#####) Γιάννης Ρεφανίδης 154 77

Υπολογισμοί με μηχανές Turing Συμβάσεις (1/2) Στο εξής θα θεωρούμε ότι: Η συμβολοσειρά εισόδου περικλείεται από ένα κενό σε κάθε πλευρά. Η συμβολοσειρά εισόδου (μαζί με τα κενά) είναι γραμμένη στο αριστερότερο άκρο της ταινίας. Η κεφαλή βρίσκεται αρχικά στο κενό στο δεξιό άκρο της συμβολοσειράς εισόδου. Η μηχανή ξεκινά τη λειτουργία της από την αρχική της κατάσταση. Γιάννης Ρεφανίδης 156 78

Συμβάσεις (2/2) Θα λέμε ότι η μηχανή Turing τερμάτισε με είσοδο w, εάν (s,#w#) * (h,x) για κάποια λέξη x. Θα λέμε ότι η μηχανή Turing κρέμασε με είδοσο w, εάν ξεκινώντας από τη συνολική κατάσταση (s,#w#) η κεφαλή μετακινηθεί αριστερότερα από το αριστερό άκρο της ταινίας. Γιάννης Ρεφανίδης 157 Turing-υπολογίσιμες συναρτήσεις Έστω Σ 0 και Σ 1 αλφάβητα που δεν περιέχουν το κενό σύμβολο #. Έστω f μια συνάρτηση από το Σ 0 * στο Σ 1 *. Λέμε ότι μια μηχανή Turing Μ υπολογίζει τη συνάρτηση f, εάν (s,#w#) * (h,#u#) για κάθε w Σ 0, u Σ 1, τέτοια ώστε f(w)=u. Εάν υπάρχει τέτοια μηχανή Turing, η f λέγεται Turing-υπολογίσιμη συνάρτηση. Γιάννης Ρεφανίδης 158 79

Παράδειγμα Α Έστω Σ={a,b} και μια συνάρτηση f:σ* Σ*, τέτοια ώστε για κάθε w να ισχύει f(w)=w, όπου το w προκύπτει εάν αντικαταστήσουμε όλα τα a του w με b και αντίστροφα. Γιάννης Ρεφανίδης 159 Παράδειγμα Α (συνέχεια...) start q 0 #/L a/l b/l q 1 #/R q 2 a/r b/r #/# h a/b b/a Παράδειγμα υπολογισμού: (q 0,#aba#) (q 1,#aba#) (q 0,#abb#) (q 1,#abb#) (q 0,#aab#) (q 1,#aab#) (q 0,#bab#) (q 1,#bab#) (q 2,#bab#) (q 2,#bab#) (q 2,#bab#) (q 2,#bab#) (h,#bab#) Γιάννης Ρεφανίδης 160 80

Παράδειγμα Β Έστω f η συνάρτηση διαδοχής f(n)=n+1. Θεωρώντας το αλφάβητο Σ={Ι,#} και την αντιστοίχιση n I n και n+1 I n+1, κατασκευάζουμε μια μηχανή Turing που προσθέτει ένα σύμβολο I στα δεξιά κάθε ομάδας τέτοιων συμβόλων. Γιάννης Ρεφανίδης 161 Παράδειγμα Β (συνέχεια...) #/I start q 0 I/R h Παράδειγμα υπολογισμού: (q 0,#III#) (q 0,#IIII) (h,#iiii#) Ακόμη ένα παράδειγμα υπολογισμού: (q 0,##) (q 0,#I) (h,#i#) Και ένα παράδειγμα λάθος υπολογισμού: (q 0,#III) (h,#iii#) Γιάννης Ρεφανίδης 162 81

Παραλλαγές της βασικής μηχανής Turing Παραλλαγές της βασικής μηχανής Turing (1/2) Θα μπορούσε κανείς να φανταστεί πιο πολύπλοκες μηχανές Turing, ελπίζοντας ότι αυτές θα είχαν περισσότερες δυνατότητες. Μερικά παραδείγματα: Η ταινία να είναι άπειρη και προς τις δύο κατευθύνσεις. Να υπάρχουν πολλές ταινίες. Να υπάρχουν πολλές κεφαλές ανάγνωσης/εγγραφής σε κάθε ταινία. Οι ταινίες να είναι διδιάστατες αντί για μονοδιάστατες. Όλοι οι δυνατοί συνδυασμοί των παραπάνω. κλπ Γιάννης Ρεφανίδης 164 82

Παραλλαγές της βασικής μηχανής Turing (2/2) Αποδεικνύεται (η απόδειξη παραλείπεται) ότι όλες αυτές οι παραλλαγές της βασικής μηχανής Turing είναι εντελώς ισοδύναμες με τη βασική μηχανή Turing που έχουμε περιγράψει στις προηγούμενες διαφάνειες. Γιάννης Ρεφανίδης 165 Μη-ντετερμινιστικές μηχανές Turing (1/2) Θα μπορούσαμε να κατασκευάσουμε μηντετερμινιστικές μηχανές Turing, κατά τρόπο ανάλογο με τα μη-ντετερμινιστικά αυτόματα. Επειδή μια μη-ντετερμινιστική μηχανή Turing μπορεί να γράψει διαφορετικό αποτέλεσμα στην ταινία για την ίδια είσοδο, δεν μπορούμε να χρησιμοποιήσουμε το αποτέλεσμα ως κριτήριο σύγκρισης μη-ντετερμινιστικών και ντετερμινιστικών μηχανών Turing. Γιάννης Ρεφανίδης 166 83

Μη-ντετερμινιστικές μηχανές Turing (2/2) Χρησιμοποιούμε ως κριτήριο σύγκρισης το γεγονός εάν μια μη-ντετερμινιστική μηχανή τερματίζει ή όχι (π.χ. κρεμάει ή δεν τερματίζει ποτέ) για δεδομένη είσοδο. Υπό αυτό το πρίσμα, για κάθε μη-ντετερμινιστική μηχανή Turing υπάρχει μια αντίστοιχη ντετερμινιστική. Γιάννης Ρεφανίδης 167 Συνδυασμοί μηχανών Turing 84

Συνδυασμός δύο μηχανών Έστω δύο μηχανές Μ 1 και Μ 2. Ο συμβολισμός >Μ 1 Μ 2 σημαίνει τα εξής: Ξεκινά τον υπολογισμό η Μ 1. Η Μ 1 τερματίζει. Αμέσως μετά ξεκινά τον υπολογισμό της η Μ 2. Η Μ 2 τερματίζει. Το συνολικό αποτέλεσμα της συνδυασμένης μηχανής Turing είναι ό,τι έμεινε στην ταινία μετά τον τερματισμό και της M 2. Θεωρούμε ότι οι δύο μηχανές δεν κρεμάνε, εφόσον η λέξη εισόδου τους πληρεί κάποιες προϋποθέσεις (που εξαρτώνται κάθε φορά από την εκάστοτε μηχανή). Γιάννης Ρεφανίδης 169 Σχήματα μηχανών Μπορούμε να συνδυάσουμε περισσότερες από δύο μηχανές, με τρόπο που θυμίζει λειτουργία πεπερασμένων αυτομάτων. Μ 1 a Μ 2 b Μ 3 Μετά τον τερματισμό της M 1, θα ξεκινήσει είτε η Μ 2 ή η Μ 3, ανάλογα με το σύμβολο που είναι γραμμένο στη θέση που δείχνει η κεφαλή. Αποδεικνύεται ότι κάθε σχήμα μηχανής είναι ισοδύναμο με μια μηχανή Turing. Γιάννης Ρεφανίδης 170 85

Παράδειγμα (1/2) Έστω ότι η Μ 1 εκτελεί πρόσθεση μεταξύ δύο ακεραίων αριθμών και η Μ 2 εκτελεί πολλαπλασιασμό. Για να λειτουργήσουν σωστά, και οι δυο μηχανές "απαιτούν" οι δύο αριθμοί να βρίσκονται στα αριστερά της αρχικής θέσης της κεφαλής, με ένα κενό μεταξύ τους αλλά και εκατέρωθέν τους. Έστω p i οι καταστάσεις της Μ 1 και q i οι καταστάσεις της M 2, με p 0 και q 0 τις αρχικές καταστάσεις κάθε μηχανής. Επίσης, έστω h p και h q οι καταστάσεις τερματισμού των M 1 και M 2 αντίστοιχα. Γιάννης Ρεφανίδης 171 Παράδειγμα (2/2) Εάν θέλαμε να υπολογίσουμε το αποτέλεσμα 2*(3+4) θα χρησιμοποιούσαμε το σχήμα μηχανών >Μ 1 Μ 2 με αρχική είσοδο την #ΙΙ#ΙΙΙ#ΙΙΙΙ#. Ο υπολογισμός θα πήγαινε περίπου ως εξής: (p 0, #ΙΙ#ΙΙΙ#ΙΙΙΙ#) * (h p, #ΙΙ#ΙΙΙΙΙΙΙ#) (q 0, #ΙΙ#ΙΙΙΙΙΙΙ#) * (h q, #ΙΙΙΙΙΙΙΙΙΙΙΙΙΙ#) Γιάννης Ρεφανίδης 172 86

Θέση του Church Θέση του Church Αλγόριθμος είναι οποιαδήποτε διαδικασία μπορεί να εκτελεστεί από κάποια μηχανή Turing. Δεν πρόκειται για θεώρημα αλλά για θέση. Τίποτα δεν αποκλείει να καταρριφθεί στο μέλλον, εάν κατασκευαστεί ένα νέο μοντέλο υπολογισμού που θα μπορούσε να εκτελέσει στοιχειώδεις πράξεις που δεν μπορούν να εκτελέσουν οι σημερινοί υπολογιστές. Κβαντικοί υπολογιστές; Απεριόριστη υπολογιστική ισχύς μπορεί να επιτευχθεί μόνο με εφαρμογή πεπερασμένων πόρων για απεριόριστη χρονική περίοδο. Γιάννης Ρεφανίδης 174 87

Γλώσσες και μηχανές Turing Turing αποφασίσιμες γλώσσες Έστω μια γλώσσα L Σ*. Έστω μια συνάρτηση χ L : Σ* {Y,N}, τέτοια ώστε χ L (w)=y, εφόσον w L, αλλιώς χ L (w)=n. Εάν η συνάρτηση χ L είναι Turing υπολογίσιμη, τότε η γλώσσα L λέγεται Turing αποφασίσιμη. Γιάννης Ρεφανίδης 176 88

...και με πιο απλά λόγια Με άλλα λόγια, αν για τη γλώσσα L Σ* υπάρχει μια μηχανή Turing, τέτοια ώστε κάθε φορά που γράφουμε μια λέξη w του Σ* στην ταινία και αφήνουμε τη μηχανή Turing να δουλέψει, η μηχανή τερματίζει πάντα (χωρίς να κρεμάει) γράφοντας στην ταινία είτε Y ή N, ανάλογα με το αν η λέξη w ανήκει ή όχι στη γλώσσα L αντίστοιχα, τότε η γλώσσα L λέγεται Turing αποφασίσιμη. Γιάννης Ρεφανίδης 177 Turing αποδεκτές γλώσσες Έστω μια μηχανή Turing M και ένα αλφάβητο Σ. Λέμε ότι η Μ δέχεται (accepts) μια λέξη w Σ* εάν η Μ τερματίζει με είσοδο τη λέξη w. Έστω μια γλώσσα L Σ*. Εάν υπάρχει μια μηχανή Turing η οποία δέχεται τις λέξεις της L και μόνο αυτές, τότε η γλώσσα L λέγεται Turing αποδεκτή. Γιάννης Ρεφανίδης 178 89

...και με πιο απλά λόγια Με άλλα λόγια, για να είναι μια γλώσσα Turing αποδεκτή θα πρέπει να υπάρχει μια μηχανή Turing που να τερματίζει πάντα με είσοδο λέξεις της γλώσσας και να μην τερματίζει ποτέ με είσοδο λέξεις που δεν ανήκουν στη γλώσσα. Η έννοια του "μη τερματισμού" σημαίνει ότι μια μηχανή μπορεί να λειτουργεί επ' άπειρον χωρίς να τερματίζει ούτε να κρεμάει. Γιάννης Ρεφανίδης 179 Παράδειγμα αποδεκτής αλλά όχι αποφασίσιμης γλώσσας Έστω Σ={0,1,2,...,9}. Έστω η γλώσσα L, η οποία ορίζεται ως εξής: L={w: η ακολουθία w εμφανίζεται κάπου μέσα στην ακολουθία ψηφίων του π}. Μπορούμε να φτιάξουμε μια μηχανή Turing, η οποία ξεκινώντας με είσοδο το w ελέγχει με τη σειρά τα ψηφία του π, προσπαθώντας να βρει μέσα σε αυτά τη λέξη w. Εάν το w όντως εμφανίζεται μέσα στο π, η μηχανή θα σταματήσει. Εάν το w δεν εμφανίζεται μέσα στο π, η μηχανή δεν θα σταματήσει ποτέ (εμείς όμως ποτέ δεν θα είμαστε σίγουροι ότι το w δεν θα εμφανιστεί "παρακάτω"...). Άρα η γλώσσα L είναι αποδεκτή, δεν είναι όμως αποφασίσιμη. Γιάννης Ρεφανίδης 180 90

Turing αποφασίσιμες και Turing αποδεκτές γλώσσες Κάθε γλώσσα που είναι Turing αποφασίσιμη είναι και Turing αποδεκτή, αλλά όχι αντίστροφα. Γιάννης Ρεφανίδης 181 Γραμματικές χωρίς περιορισμούς 91

Γραμματικές χωρίς περιορισμούς Οι γραμματικές στη γενική τους μορφή διαφέρουν από τις "γραμματικές ανεξάρτητες από τα συμφραζόμενα" κατά το ότι στο αριστερό μέρος των κανόνων μπορούν να υπάρχουν περισσότερα από ένα σύμβολα, ένα τουλάχιστον από τα οποία είναι μη-τερματικό. Π.χ.: 0A11B CD10E Ο παραπάνω κανόνας λέει ότι εάν σε μια λέξη συναντηθεί η ακολουθία συμβόλων 0A11B, αυτή μπορεί να αντικατασταθεί από την CD10E. Βλέπουμε ότι αντικατάσταση μπορεί να γίνει και στα τερματικά σύμβολα. Ωστόσο, το τελικό αποτέλεσμα πρέπει να αποτελείται μόνο από τερματικά σύμβολα. Γιάννης Ρεφανίδης 183 Ορισμός Γραμματικής Γραμματική G ορίζεται μια τετράδα (V, Σ, R, S) όπου: V είναι ένα αλφάβητο Σ είναι το σύνολο των τερματικών συμβόλων, Σ V. V-Σ είναι τα μη-τερματικά σύμβολα. S, το αρχικό σύμβολο, είναι στοιχείο του V-Σ. R, το σύνολο των κανόνων, είναι μια σχέση από το V*(V-Σ)V* στο V*. Γιάννης Ρεφανίδης 184 92

Παράδειγμα (1/2) Έστω η γραμματική για τη γλώσσα {a n b n c n : n 1}: V={S,a,b,c,A,B,C,T a,t b,t c } Σ={a,b,c} R= { S ABCS, S T c, CA AC, CB BC, BA AB, CT c T c c, CT c T b c, BT b T b b, BT b T a b, AT a T ba a, T a ε } Γιάννης Ρεφανίδης 185 Παράδειγμα (2/2) Ας δούμε την παραγωγή της λέξης aabbcc: S ABCS ABCABCS ABCABCT c... AABBCCT c AABBCT c c AABBT b cc AABT b bcc AAT a bbcc AT a abbcc T a aabbcc aabbcc Σε κάθε βήμα, με υπογράμμιση φαίνονται τα σύμβολα που παρήχθησαν από την προηγούμενη παραγωγή ενώ με bold φαίνονται τα γράμματα που χρησιμοποιούνται για την επόμενη παραγωγή. Γιάννης Ρεφανίδης 186 93

Γραμματικές και μηχανές Turing Μια γλώσσα παράγεται από μια γραμματική, εάν και μόνο αν είναι Turing-αποδεκτή. Για κάθε μηχανή Turing, είναι εύκολο να κατασκευάσουμε μια γραμματική που να "μιμείται" τις ντετερμινιστικές μεταβάσεις της μηχανής. Για κάθε γραμματική, μπορούμε να φτιάξουμε μια μηχανή Turing που να ελέγχει όλες τις μηντετερμινιστικές παραγωγές της γραμματικής, ξεκινώντας από τις συντομότερες παραγωγές. Εάν μια λέξη παράγεται από τη γραμματική, η μηχανή θα το ανακαλύψει. Εάν μια λέξη δεν παράγεται από τη γραμματική, η μηχανή θα αναγκαστεί να λειτουργεί επ' άπειρον. Γιάννης Ρεφανίδης 187 Καθολική μηχανή Turing (Universal Turing Machine) 94

Κωδικοποίηση μηχανής Turing (1/3) Έστω ότι αριθμούμε τις καταστάσεις μιας μηχανής Turing ξεκινώντας από το 1 (λαμβάνοντας υπόψη και την κατάσταση h). Έτσι η τρίτη κατάσταση της μηχανής θα μπορούσε να συμβολίζεται με ΙΙΙ (ή Ι 3 για συντομία). Όμοια αριθμούμε τα σύμβολα του αλφαβήτου μιας μηχανής Turing (λαμβάνοντας υπόψη και τα L και R) ξεκινώντας από το 1. Έτσι το τέταρτο σύμβολο του αλφαβήτου θα συμβολιζόταν με ΙΙII (ή Ι 4 για συντομία). Γιάννης Ρεφανίδης 189 Κωδικοποίηση μηχανής Turing (2/3) Για να περιγράψουμε μια μετάβαση πρέπει να δώσουμε την τρέχουσα κατάσταση, το τρέχον σύμβολο, την επόμενη κατάσταση και την επόμενη κίνηση της κεφαλής. Έτσι μια μετάβαση μπορεί να περιγραφεί με τέσσερις αριθμούς. Για παράδειγμα: ciiiciiiiciiciiic ή πιο σύντομα ci 3 ci 4 ci 2 ci 3 c Χρησιμοποιούμε το σύμβολο c για να διαχωρίζουμε αριθμούς μεταξύ τους. Γιάννης Ρεφανίδης 190 95

Κωδικοποίηση μηχανής Turing (3/3) Για να περιγράψουμε πλήρως μια μηχανή Turing πρέπει να δώσουμε την αρχική της κατάσταση και όλες τις μεταβάσεις. Για παράδειγμα: ci 3 cci 3 ci 3 cici 5 cci 3 ci 5 ci 3 ci 2 cci 3 ci 8 ci 3 ci 2 cc Στην παραπάνω περιγραφή, αρχική είναι η τρίτη κατάσταση, ενώ δίνονται και τρεις μεταβάσεις. Η πρώτη μετάβαση ορίζει ότι εάν η μηχανή είναι στην τρίτη κατάσταση και διαβάσει το τρίτο σύμβολο, θα μεταβεί στην πρώτη κατάσταση και θα γράψει στην ταινία το πέμπτο σύμβολο. Συνήθως το πρώτο και το δεύτερο "σύμβολο" είναι οι μετακινήσεις της κεφαλής L και R ενώ η πρώτη κατάσταση είναι η h. Γιάννης Ρεφανίδης 191 Κωδικοποίηση λέξεων Έστω w μια λέξη του αλφαβήτου Σ μιας μηχανής Turing. Μπορούμε να αναπαραστήσουμε την w χρησιμοποιώντας την αναπαράσταση που είδαμε στις προηγούμενες διαφάνειες ως εξής: ρ(w)=ciiiciiiiiiciiiiciiiciiiiic Δηλαδή η w αποτελείται από 5 σύμβολα, τα οποία είναι το 3 ο, το 6 ο, το 4 ο, το 3 ο και το 5 ο αντίστοιχα σύμβολα του αλφαβήτου (θεωρώντας πάντα ως δύο πρώτα σύμβολα τα L και R, τα οποία φυσικά δεν μπορούν να εμφανίζονται στη w). Γιάννης Ρεφανίδης 192 96

Καθολική μηχανή Turing (1/3) Θα θέλαμε να κατασκευάσουμε μια μηχανή Turing που να μπορεί να "προγραμματισθεί", δηλαδή να μπορεί να εκτελεί διαφορετικές λειτουργίες, ανάλογα με το "πρόγραμμα" με το οποίο την τροφοδοτούμε. Μια τέτοια μηχανή ονομάζεται καθολική μηχανή Turing και συμβολίζεται με U. Γιάννης Ρεφανίδης 193 Καθολική μηχανή Turing (2/3) Έστω μια συγκεκριμένη μηχανή Turing M, η οποία εκτελεί συγκεκριμένη λειτουργία, για παράδειγμα όταν η Μ ξεκινήσει με είσοδο μια λέξη w, τερματίζει με αποτέλεσμα μια λέξη u. Έστω ρ(μ), ρ(w) και ρ(u) οι κωδικοποιήσεις των Μ, w και u, σύμφωνα με όσα είδαμε στις προηγούμενες διαφάνειες. Η καθολική μηχανή θα πρέπει, όταν ξεκινά με είσοδο #ρ(μ)ρ(w)# να τερματίζει με #ρ(u)#. Γιάννης Ρεφανίδης 194 97

Καθολική μηχανή Turing (3/3) Αποδεικνύεται ότι η κατασκευή της καθολικής μηχανής U είναι εφικτή και μάλιστα εύκολη! Γιάννης Ρεφανίδης 195 Μη Αποφασισιμότητα 98

Το πρόβλημα του τερματισμού (1/4) Έστω το πρόγραμμα halts(p,x), γραμμένο σε οποιαδήποτε γλώσσα προγραμματισμού, το οποίο κάνει το εξής: Δέχεται ως είσοδο τον κώδικα ενός άλλου προγράμματος P της ίδιας γλώσσας. Δέχεται ως είσοδο την είσοδο X στο πρόγραμμα P. Απαντά με yes ή no εάν το πρόγραμμα P με είσοδο X θα σταματήσει κάποια στιγμή την εκτέλεσή του. Γιάννης Ρεφανίδης 197 Το πρόβλημα του τερματισμού (2/4) Δεν μας ενδιαφέρει ο τρόπος λειτουργίας του halts(p,x), δηλαδή εάν προσομοιώνει τη λειτουργία του P ή πραγματοποιεί άλλες αναλύσεις. Η ύπαρξη του προγράμματος halt(p,x) θα ήταν ανεκτίμητης αξίας. Το πρόγραμμα θα μπορούσε να χρησιμοποιηθεί για να ανιχνεύει bugs που έχουν να κάνουν με μη-τερματισμό σε άλλα προγράμματα. Γιάννης Ρεφανίδης 198 99

Το πρόβλημα του τερματισμού (3/4) Αποδεικνύεται ότι τέτοιο πρόγραμμα δεν μπορεί να κατασκευαστεί. Πράγματι, έστω ότι υπήρχε το πρόγραμμα halts(p,x). Θα μπορούσαμε τότε να φτιάξουμε το πρόγραμμα diagonal(p) έτσι ώστε: diagonal(p): if halts(p,p)=yes then loop for ever else halt. Γιάννης Ρεφανίδης 199 Το πρόβλημα του τερματισμού (4/4) Και τότε τίθεται το πρόβλημα: Τι γίνεται με την κλήση diagonal(diagonal); Εάν η κλήση αυτή σταματά, τότε η κλήση halts(diagonal, diagonal) θα απαντήσει yes, με αποτέλεσμα αυτή η κλήση να μην σταματήσει. Εάν η κλήση αυτή δεν σταματά, τότε η κλήση halts(diagonal, diagonal) θα απαντήσει no, με αποτέλεσμα αυτή η κλήση να σταματήσει. Το άτοπο προήλθε από την παραδοχή της ύπαρξης του προγράμματος halts. Άρα τέτοιο πρόγραμμα δεν υπάρχει. Γιάννης Ρεφανίδης 200 100

Συμπέρασμα Δεν μπορεί να υπάρξει κανένα πρόγραμμα, κανένας αλγόριθμος που να μπορεί να μας πει για οποιοδήποτε άλλο πρόγραμμα εάν αυτό θα τερματίσει ή όχι. Το πρόβλημα τερματισμού ανήκει στη κατηγορία των μη-αποφασίσιμων προβλημάτων. Γιάννης Ρεφανίδης 201 Turing αποφασίσιμες και αποδεκτές γλώσσες Αναφορά σε διαφάνειες 176-180. Αν L είναι μια Turing-αποφασίσιμη γλώσσα, το συμπλήρωμά της είναι επίσης Turing-αποφασίσιμη. Δεν είναι κάθε Turing-αποδεκτή γλώσσα Turingαποφασίσιμη. Το συμπλήρωμα μιας Turing-αποδεκτής γλώσσας δεν είναι συνήθως Turing-αποδεκτή γλώσσα. Εάν ωστόσο μια γλώσσα και το συμπλήρωμά της είναι Turing-αποδεκτές, τότε οι γλώσσες αυτές είναι και Turing-αποφασίσιμες. Γιάννης Ρεφανίδης 202 101

Μη αποφασίσιμα προβλήματα Ένα πρόβλημα λέγεται μη-αποφασίσιμο, εάν δεν υπάρχει μηχανή Turing που να το αποφασίζει. Οι Turing-αποδεκτές γλώσσες αποτελούν παράδειγμα μη-αποφασίσιμων προβλημάτων. Γιάννης Ρεφανίδης 203 Μη-αποφασίσιμα προβλήματα σχετικά με μηχανές Turing Τα παρακάτω αποτελούν παραδείγματα μηαποφασίσιμων προβλημάτων: Δεδομένης μιας μηχανής M και μιας λέξης w, τερματίζει η Μ με είσοδο w; Δεδομένης μιας μηχανής Μ, υπάρχει έστω και μια λέξη για την οποία η Μ τερματίζει; Δεδομένης μιας μηχανής Μ, τερματίζει η Μ για κάθε λέξη; Γιάννης Ρεφανίδης 204 102

Μη-αποφασίσιμα προβλήματα για γραμματικές ανεξάρτητες συμφραζομένων Για τυχαίες γραμματικές ανεξάρτητες από συμφραζόμενα G, G 1, G 2, τα παρακάτω προβλήματα είναι μη-αποφασίσιμα: Ισχύει L(G)=Σ* ; Ισχύει L(G 1 )=L(G 2 ) ; Γιάννης Ρεφανίδης 205 Μη αποφασίσιμα προβλήματα για γραμματικές χωρίς περιορισμούς Για τυχαίες γραμματικές χωρίς περιορισμούς G, G 1, G 2, τα παρακάτω προβλήματα είναι μηαποφασίσιμα: Για τυχαία λέξη w, ισχύει w L(G) ; Ισχύει L(G) = ; Γιάννης Ρεφανίδης 206 103

Μη ντετερμινιστικές μηχανές Turing Γιάννης Ρεφανίδης 207 Ορισμός Μια μη-ντετερμινιστική μηχανή Turing ορίζεται όμοια με μια ντετερμινιστική, με την εξής διαφορά: Για κάθε συνολική κατάσταση της μηχανής, μπορεί να ορίζονται περισσότερες από μια επόμενες καταστάσεις. Δημιουργείται το ερώτημα, πώς λειτουργεί. Γιάννης Ρεφανίδης 208 104

Μη-ντετερμινισμός και ημι-αποφασίσιμες γλώσσες Μια μη-ντετερμινιστική μηχανή Turing δέχεται μια είσοδο w, αν υπάρχει τρόπος ξεκινώντας με είσοδο το w να καταλήξουμε σε τελική κατάσταση. Η μη-ντετερμινιστική μηχανή Turing ημιαποφασίζει μια γλώσσα L, αν δέχεται κάθε λέξη w της L. Γιάννης Ρεφανίδης 209 Μη-ντετερμινισμός και αποφασίσιμες γλώσσες Μια μη-ντετερμινιστική μηχανή Turing Μ αποφασίζει μια γλώσσα L, αν για κάθε λέξη w Σ* ισχύουν τα εξής: Υπάρχει φυσικός αριθμός Ν που εξαρτάται από την Μ και την w, τέτοιος ώστε να μην υπάρχει κατάσταση C στην οποία να καταλήγει η μηχανή μετά από Ν μηντετερμινιστικά βήματα. Η w ανήκει στην L αν και μόνο αν η Μ με αρχική είσοδο την w καταλήγει στην «θετική» κατάσταση τερματισμού της. Γιάννης Ρεφανίδης 210 105

Μη-ντετερμινισμός και υπολογίσιμες συναρτήσεις Μια μη-ντετερμινιστική μηχανή Turing υπολογίζει μια συνάρτηση f: Σ* Σ*, αν ισχύουν τα εξής για κάθε λέξη w: Υπάρχει Ν που εξαρτάται από την f και την w, τέτοιος ώστε να μην υπάρχει συνολική κατάσταση C προσβάσιμη από την (s, #w#) σε Ν βήματα. (s,#w#) *(h,#u#) αν και μόνο αν f(w)=u. Όλοι οι δυνατοί υπολογισμοί πρέπει να συμφωνούν. Γιάννης Ρεφανίδης 211 Παράδειγμα: Σύνθετοι αριθμοί (1/2) Ένας σύνθετος αριθμός είναι το γινόμενο δύο μεγαλύτερων της μονάδας φυσικών αριθμών. Έστω C το σύνολο όλων σύνθετων αριθμών, σε δυαδική αναπαράσταση: C={100, 110, 1000, 1001, 1010,, 1011011, } Για να ελέγξει αν ένας αριθμός n είναι σύνθετος, μια ντετερμινιστική μηχανή θα έπρεπε να ελέγχει όλους τους μικρότερους αριθμούς... Γιάννης Ρεφανίδης 212 106

Παράδειγμα: Σύνθετοι αριθμοί (2/2) Για να ελέγξει αν ένας αριθμός n είναι σύνθετος, μια μη-ντετερμινιστική μηχανή: Θα επέλεγε μη-ντετερμινιστικά δύο αριθμούς p και q, μεγαλύτερους της μονάδας και μικρότερους από τον n. Θα τους πολλαπλασίαζε. Εάν n=p q, θα τερματίζει «θετικά». Εάν n p q, θα τερματίζει «αρνητικά». Γιάννης Ρεφανίδης 213 Σύγκριση ντετερμινιστικών και μη-ντετερμινιστικών μηχανών Turing Αν μια μη-ντετερμινιστική μηχανή Turing Μ αποφασίζει ή ημι-αποφασίζει μια γλώσσα ή υπολογίζει μια συνάρτηση, τότε υπάρχει μια ντετερμινιστική μηχανή Turing Μ' που αποφασίζει ή ημι-αποφασίζει την ίδια γλώσσα ή υπολογίζει την ίδια συνάρτηση. Η Μ' θα προσομοιώσει συστηματικά όλους τους υπολογισμούς της Μ. Η Μ' απαιτεί εκθετικά περισσότερο αριθμό βημάτων για να προσομοιώσει έναν υπολογισμο της Μ. Γιάννης Ρεφανίδης 214 107

Αναγωγές Έστω L 1, L 2 Σ*. Μια αναγωγή από την L 1 στην L 2 είναι μια συνάρτηση τ : Σ* Σ*, τέτοια ώστε x L 1 αν και μόνο αν τ(x) L 2. Κατεύθυνση αναγωγής: Από την L 1 στην L 2. Αν η L 1 δεν είναι αποφασίσιμη, και υπάρχει αναγωγή τ από την L 1 στην L 2, τότε ούτε η L 2 είναι αποφασίσιμη. Γιάννης Ρεφανίδης 215 Κατεύθυνση αναγωγής Η συνάρτηση τ(x) από την L 1 στην L 2 : Ορίζεται για όλες τις λέξεις της L 1 Δεν έχει ως τιμές της όλες τις λέξεις της L 2 Γενικά η συνάρτηση τ(x) δεν είναι αντιστρέψιμη. Αν είναι, τότε ορίζεται και η αντίστροφη αναγωγή. Αν λοιπόν η L 1 δεν είναι αποφασίσιμη, τότε για τα αντίστοιχα προβλήματα δεν είναι ούτε η L 2. Γιάννης Ρεφανίδης 216 108

Παράδειγμα αναγωγής (1/3) Έστω η γλώσσα: H={«Μ»«w» : Η μηχανή Turing M τερματίζει με συμβολοσειρά εισόδου το w} Η γλώσσα αυτή είναι ημι-αποφασίσιμη Πρόκειται για το πρόβλημα του τερματισμού Θα βρούμε συναρτήσεις αναγωγής τ από την Η σε άλλες γλώσσες. Γιάννης Ρεφανίδης 217 Παράδειγμα αναγωγής (2/3) Δεδομένης μιας μηχανής Turing Μ, τερματίζει η Μ με είσοδο κενή ταινία; Περιγράφουμε μια αναγωγή από την Η στην: L={«Μ» : Η Μ τερματίζει με είσοδο ε} Για κάθε λέξη «Μ»«w» της Η, όπου w=a 1 a 2 a n, κατασκευάζουμε μια λέξη «M w» της L ως εξής: M w =Ra 1 Ra 2 Ra n M Γιάννης Ρεφανίδης 218 109

Παράδειγμα αναγωγής (3/3) Δεδομένης μιας μηχανής Turing Μ, υπάρχει έστω και μια συμβολοσειρά για την οποία η Μ τερματίζει; Θα ανάγουμε την L στην L': L' = {«Μ» : Η Μ τερματίζει για κάποια είσοδο} Έχοντας μια μηχανή Μ (για την οποία δεν μπορούμε να αποφασίσουμε αν τερματίζει με κενή είσοδο), κατασκευάζουμε μια μηχανή Μ', η οποία στην αρχή της λειτουργίας της διαγράφει την είσοδό της και μετά συνεχίζει σαν την Μ. Γιάννης Ρεφανίδης 219 Μερικά ακόμη μη-αποφασίσιμα προβλήματα Πρόβλημα Thue Πρόβλημα αντιστοίχησης του Post Πρόβλημα πλακόστρωσης Γιάννης Ρεφανίδης 220 110

Πρόβλημα Thue (1/2) Έστω ένα πεπερασμένο αταξινόμητο σύνολο ζευγών λέξεων: {w 1,u 1 }, {w 2, u 2 },..., {w n, u n } Έστω δύο λέξεις w και u, τέτοιες ώστε: w=w i1 w i2...w ik u=u i1 u i2...u ik όπου i 1, i 2,..., i k {1, 2,...,n} Οι λέξεις w και u λέγονται ισοδύναμες. Γιάννης Ρεφανίδης 221 Πρόβλημα Thue (2/2) Παράδειγμα: Έστω {ab, a}, {bc, b}, {abc, c}. Έστω w=abbcabc Τότε η w είναι ισοδύναμη με την u=ababc Πράγματι, μπορούμε να τις γράψουμε: w=ab-bc-abc u=a-b-c Το πρόβλημα που τίθεται είναι εάν μπορεί να κατασκευασθεί ένα πρόγραμμα που να μας λέει εάν για τυχαίο σύστημα Thue υπάρχουν δύο λέξεις w και u που να είναι ισοδύναμες. Το πρόβλημα αυτό είναι μη-αποφασίσιμο. Γιάννης Ρεφανίδης 222 111

Πρόβλημα αντιστοίχησης του Post (1/2) (παραλλαγή του προβλήματος Thue) Έστω και πάλι ένα πεπερασμένο αταξινόμητο σύνολο ζευγών λέξεων: {w 1,u 1 }, {w 2, u 2 },..., {w n, u n } Έστω μια λέξη w τέτοια ώστε: w=w i1 w i2...w ik =u i1 u i2...u ik όπου i 1, i 2,..., i k {1, 2,...,n} Η λέξη w λέγεται ταίριασμα. Γιάννης Ρεφανίδης 223 Πρόβλημα αντιστοίχησης του Post (2/2) Παράδειγμα: Έστω {a, aaa}, {abaaa, ab}, {ab, b} Έστω w=abaaaaaab Τότε η w είναι ένα ταίριασμα, αφού: abaaa-a-a-ab = ab-aaa-aaa-b Το πρόβλημα που τίθεται εάν για τυχαίο σύστημα αντιστοίχησης υπάρχει ένα ταίριασμα. Το πρόβλημα αυτό είναι μη-αποφασίσιμο. Γιάννης Ρεφανίδης 224 112

Πρόβλημα πλακόστρωσης (1/2) Έστω ένα πεπερασμένο σύνολο από τετράγωνα πλακάκια. Κάθε τύπος από πλακάκι επιτρέπεται να συνορεύει προς κάθε κατεύθυνση με συγκεκριμένους τύπους από άλλα πλακάκια. Τα πλακάκια δεν επιτρέπεται να περιστραφούν. Έχουμε άπειρα πλακάκια από κάθε τύπο. Γιάννης Ρεφανίδης 225 Πρόβλημα πλακόστρωσης (2/2) Θέλουμε να πλακοστρώσουμε το πρώτο τεταρτημόριο του επιπέδου, τοποθετώντας στην κάτω αριστερή του γωνία ένα συγκεκριμένο πλακάκι. Το πρόβλημα που τίθεται είναι εάν, για τυχαίο σύστημα πλακόστρωσης, είναι δυνατή η πλακόστρωση του πρώτου τεταρτημόριου. Το πρόβλημα αυτό είναι μη-αποφασίσιμο. Γιάννης Ρεφανίδης 226 113

Ιδιότητες των αποφασίσιμων γλωσσών Μια γλώσσα είναι αποφασίσιμη, αν και μόνο αν το συμπλήρωμά της είναι επίσης αποφασίσιμο. Μια γλώσσα είναι αποφασίσιμη, αν και μόνο αν αυτή και το συμπλήρωμά της είναι ημιαποφασίσιμες. Γιάννης Ρεφανίδης 227 Απαριθμήσιμες γλώσσες Μια γλώσσα L είναι απαριθμίσιμη κατά Turing, αν και μόνο αν υπάρχει μηχανή Turing τέτοια ώστε: L={w : (s,#) * (q,#w#) } όπου q μια προκαθορισμένη «κατάσταση παρουσίασης» της M. Μια γλώσσα είναι ημι-αποφασίσιμη αν και μόνο αν είναι απαριθμήσιμη κατά Turing. Γιάννης Ρεφανίδης 228 114

Λεξικογραφικά απαριθμήσιμες γλώσσες Μια μηχανή Turing Μ λέμε ότι απαριθμεί λεξικογραφικά τη γλώσσα L, αν: Η Μ απαριθμεί την L. Όποτε συμβαίνει να ισχύει: (q,#w#) * (q,#w'#) τότε η w προηγείται λεξικογραφικά της w'. Μια γλώσσα είναι αποφασίσιμη, αν και μόνο αν είναι λεξικογραφικά απαριθμήσιμη. Γιάννης Ρεφανίδης 229 Θεώρημα του Rice Έστω ότι C είναι ένα γνήσιο μη-κενό υποσύνολο της κλάσης όλων των ημι-αποφασίσιμων γλωσσών. Τότε το ακόλουθο πρόβλημα είναι μηαποφασίσιμο: Δεδομένης μιας μηχανής Turing M, ισχύει ότι L(M) C; Δεν μπορούμε να αποδείξουμε στη γενική περίπτωση ότι η γλώσσα μιας μηχανής Turing είναι κανονική, χωρίς συμφραζόμενα, κλπ. Γιάννης Ρεφανίδης 230 115

Υπολογιστική πολυπλοκότητα Γιάννης Ρεφανίδης 231 Πρακτικά εφικτοί αλγόριθμοι Μια μηχανή Turing Μ ονομάζεται πολυωνυμικά φραγμένη, αν υπάρχει πολυώνυμο p(n) τέτοιο ώστε να ισχύει το εξής: Για κάθε είσοδο x, δεν υπάρχει κατάσταση C, τέτοια ώστε (s,#x#) p( x )+1 C Μια γλώσσα λέγεται πολυωνυμικά αποφασίσιμη, αν υπάρχει μια πολυωνυμικά φραγμένη μηχανή Turing που την αποφασίζει. Η κλάση όλων των πολυωνυμικά αποφασίσιμων γλωσσών συμβολίζεται με P. Γιάννης Ρεφανίδης 232 116

Θέση του Church (revisited) Οι πολυωνυμικά φραγμένες μηχανές Turing και η κλάση P εκφράζουν ικανοποιητικά τις διαισθητικές έννοιες, αντίστοιχα, των πρακτικά εφικτών αλγορίθμων και των ρεαλιστικά επιλύσιμων προβλημάτων. Η κλάση P είναι κλειστή ως προς το συμπλήρωμα. Γιάννης Ρεφανίδης 233 Προβλήματα Γιάννης Ρεφανίδης 234 117

Το πρόβλημα της συνεκτικότητας Δεδομένων ενός κατευθυνόμενου γραφήματος G VxV, όπου V={v 1,v 2,, v n } και δύο κόμβων v i,v j V, υπάρχει μονοπάτι από τον v i στον v j ; Είναι πρόβλημα, δεν είναι γλώσσα. Μπορεί να μετατραπεί σε γλώσσα ως εξής: L={(«G»,«v i»,«v j») : Υπάρχει μονοπάτι από τον v i στον v j στο γράφημα G. Οι γλώσσες κωδικοποιούν προβλήματα! Ανήκει στο P. Γιάννης Ρεφανίδης 235 Γράφημα Euler Δεδομένου ενός κατευθυνόμενου γραφήματος G, υπάρχει κλειστό μονοπάτι στο G το οποίο χρησιμοποιεί κάθε ακμή ακριβώς μία φορά; Γράφημα Euler ή γράφημα μοναδικής διάσχισης. L = { «G» : Το G είναι γράφημα Euler } Λύση: Υπάρχει μονοπάτι μεταξύ κάθε δύο κόμβων. Για κάθε κόμβο, το πλήθος των εισερχόμενων και εξερχόμων ακμών ταυτίζονται. Ανήκει στο P (μπορεί να αποδειχθεί και με αναγωγή στο πρόβλημα της συνεκτικότητας). Γιάννης Ρεφανίδης 236 118

Οι γέφυρες του Königsberg Πηγή: http://en.wikipedia.org/wiki/file:konigs burg_graph.svg Πηγή: http://en.wikipedia.org/wiki/file:labelle d_eulergraph.svg Γιάννης Ρεφανίδης 237 Γράφημα Hamilton Δεδομένου ενός γραφήματος G, υπάρχει κύκλος που διέρχεται από κάθε κόμβο του G ακριβώς μια φορά; Κύκλος Hamilton, γράφημα Hamilton. Δεν έχει βρεθεί κανείς πολυωνυμικός αλγόριθμος για αυτό το πρόβλημα. Μη-πολυωνυμική λύση: Εξέτασε όλες τις μεταθέσεις κόμβων του γραφήματος. Γιάννης Ρεφανίδης 238 119

Πηγή: http://upload.wikimedia.org/wikipedia/c ommons/6/60/hamiltonian_path.svg Πηγή: http://upload.wikimedia.org/wikipedia/c ommons/c/cf/herschel_graph.svg Γιάννης Ρεφανίδης 239 Πλανώδιος πωλητής Δοθέντος ενός πλήρους, μη κατευθυνόμενου γραφήματος G=VxV με κόμβους V={v 1,v 2,,v n }, καθώς και ενός συμμετρικού μη-αρνητικού πίνακα D διαστάσεων nxn, με τα στοιχεία του d ij να εκφράζουν το βάρος της ακμής (v i,v j ), ψάχνουμε μια μετάθεση π των κορυφών V, έτσι ώστε να ελαχιστοποιείται το παρακάτω άθροισμα: c(π)=d π(1)π(2) +d π(2)π(3) +...+d π(n-1)π(n) +d π(n)π(1) Πρόβλημα βελτιστοποίησης Γιάννης Ρεφανίδης 240 120

Μετατροπή προβλημάτων βελτιστοποίησης σε γλώσσες Ορίζουμε έναν περιορισμό στο κόστος της κάθε λύσης. Οι λύσεις που ικανοποιούν τον περιορισμό είναι αποδεκτές (θεωρούνται λέξεις της γλώσσας). Θέτουμε ένα ανώτατο όριο Β στο κόστος της λύσης και ψάχνουμε να βρούμε αν υπάρχει λύση με κόστος το πολύ Β. Αν το πρόβλημα βελτιστοποίησης ανήκει στο P, τότε και το πρόβλημα απόφασης ανήκει στο P. Γιάννης Ρεφανίδης 241 Ανεξάρτητο Σύνολο Δεδομένων ενός μη κατευθυνόμενου γραφήματος G και ενός ακεραίου Κ 2, υπάρχει υποσύνολο του C του V με C K, τέτοιο ώστε για κάθε v i,v j C, να μην υπάρχει ακμή μεταξύ των v i και v j ; Δεν έχει βρεθεί πολυωνυμικός αλγόριθμος. Γιάννης Ρεφανίδης 242 121

Πηγή:http://upload.wikimedia.org/wikipedia/commons/3/34/Independent_set_graph.svg Γιάννης Ρεφανίδης 243 Κλίκα Δεδομένων ενός μη κατευθυνόμενου γραφήματος G και ενός ακεραίου Κ 2, υπάρχει υποσύνολο του C του V με C K, τέτοιο ώστε για κάθε v i,v j C, να υπάρχει ακμή μεταξύ των v i και v j ; Δεν έχει βρεθεί πολυωνυμικός αλγόριθμος. Γιάννης Ρεφανίδης 244 122

Πηγή: http://en.wikipedia.org/wiki/file:brute_force_clique_algorithm.svg Γιάννης Ρεφανίδης 245 Κάλυμμα κόμβων Ένα σύνολο κόμβων καλύπτει μια ακμή, αν περιλαμβάνει μια τουλάχιστον το ένα άκρο της. Δεδομένων ενός μη κατευθυνόμενου γραφήματος G και ενός ακεραίου Β 2, υπάρχει υποσύνολο του C του V με C K, τέτοιο ώστε το C να καλύπτει όλες τις ακμές του G ; Σκεφτείτε το πρόβλημα της φρούρησης των διαδρόμων ενός μουσείου. Γιάννης Ρεφανίδης 246 123