249
Αυτόματα και Τυπικές Γλώσσες Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστημονική αρτιότητα και πληρότητα των συγγραμμάτων την αποκλειστική ευθύνη φέρουν οι συγγραφείς, κριτικοί αναγνώστες και ακαδημαϊκοί υπεύθυνοι που ανέλαβαν το έργο αυτό.

αυτόματα και τυπικές γλώσσες dimitriou

Embed Size (px)

Citation preview

Page 1: αυτόματα και τυπικές γλώσσες dimitriou

Αυτόματα και Τυπικές Γλώσσες

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

Page 2: αυτόματα και τυπικές γλώσσες dimitriou
Page 3: αυτόματα και τυπικές γλώσσες dimitriou

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

Σχολή Θετικών Επιστημών και Τεχνολογίας

Πρόγραμμα Σπουδών

ΠΛΗΡΟΦΟΡΙΚΗ

Θεματική Ενότητα

ΘΕΜΕΛΙΩΣΕΙΣ ΕΠΙΣΤΗΜΗΣ Η/Υ

Τόμος Γ'

Αυτόματα και Τυπικές Γλώσσες

ΑΝΑΣΤΑΣΙΟΣ ΔΗΜΗΤΡΙΟΥ

Δρ. Μηχανικός Ηλεκτρονικών Υπολογιστών και Πληροφορικής

ΠΑΤΡΑ 2002

Page 4: αυτόματα και τυπικές γλώσσες dimitriou

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

Σχολή Θετικών Επιστημών και Τεχνολογίας

Πρόγραμμα ΣπουδώνΠΛΗΡΟΦΟΡΙΚΗ

Θεματική ΕνότηταΘΕΜΕΛΙΩΣΕΙΣ ΕΠΙΣΤΗΜΗΣ Η/Υ

Τόμος Γ'Αυτόματα και Τυπικές Γλώσσες

ΣυγγραφήΑΝΑΣΤΑΣΙΟΣ ΔΗΜΗΤΡΙΟΥ

Δρ. Μηχανικός Ηλεκτρονικών Υπολογιστών και Πληροφορικής

Κριτική ΑνάγνωσηΜΩΫΣΗΣ ΜΠΟΥΝΤΟΥΡΙΔΗΣ

Αναπληρωτής Καθηγητής Τμήματος ΜαθηματικώνΠανεπιστημίου Πατρών

Ακαδημαϊκός Υπεύθυνος για την επιστημονική επιμέλεια του τόμουΠΑΥΛΟΣ ΣΠΥΡΑΚΗΣ

Καθηγητής Τμήματος Μηχανικών Η/Υ & ΠληροφορικήςΠανεπιστημίου Πατρών

Επιμέλεια στη μέθοδο της εκπαίδευσης από απόστασηΗΛΙΑΣ ΣΤΑΥΡΟΠΟΥΛΟΣ

Γλωσσική ΕπιμέλειαΒΑΣΙΛΙΚΗ ΔΗΜΗΤΡΟΠΟΥΛΟΥ

Τεχνική ΕπιμέλειαΕΣΠΙ ΕΚΔΟΤΙΚΗ Ε.Π.Ε.

Συντονισμός ανάπτυξης εκπαιδευτικού υλικού και γενική επιμέλεια των εκδόσεωνΟΜΑΔΑ ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ/2002

ISBN: 960-538-207-5Κωδικός Έκδοσης: ΠΛΗ 30/3

Copyright 2000 για την Ελλάδα και όλο τον κόσμοΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Οδός Παπαφλέσσα & Υψηλάντη, 26222 ΠάτραΤηλ: (061) 0314094, 0314206 Φαξ: (061) 0317244

Σύμφωνα με το Ν. 2121/1993απαγορεύεται η συνολική ή αποσπασματική

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

Page 5: αυτόματα και τυπικές γλώσσες dimitriou

Στην Περσεφόνη,για την αγάπη και υποστήριξη που μου έδειξε όλα αυτά τα χρόνια.

Page 6: αυτόματα και τυπικές γλώσσες dimitriou
Page 7: αυτόματα και τυπικές γλώσσες dimitriou

ΠεριεχόμεναΕισαγωγή ix

Μέρος IΜαθηματικές Έννοιες και Ορολογία 1

ΚΕΦΑΛΑΙΟ 1 Βασικά Μαθηματικά Αντικείμενα 3

1.1 Σύνολα ........................................................................................ 51.2 Συναρτήσεις και Σχέσεις ............................................................... 91.3 Λογικά Επιχειρήματα και Αποδείξεις.............................................. 141.4 Αλφάβητα και Γλώσσες ................................................................ 191.5 Γραφήματα και Δέντρα ................................................................. 23

ΚΕΦΑΛΑΙΟ 2 Μαθηματική Επαγωγή 37

2.1 Η Αρχή της Μαθηματικής Επαγωγής ............................................. 382.2 Η Ισχυρή Αρχή της Μαθηματικής Επαγωγής .................................. 422.3 Αναδρομικοί Ορισμοί .................................................................... 45

Βιβλιογραφία Μέρους I ................................................................. 53

Μέρος IIΠεπερασμένα Αυτόματα και Κανονικές Γλώσσες 55

ΚΕΦΑΛΑΙΟ 3 Κανονικές Εκφράσεις και Κανονικές Γλώσσες 57

3.1 Κανονικές Εκφράσεις .................................................................... 583.2 Παραδείγματα και Εφαρμογές........................................................ 61

ΚΕΦΑΛΑΙΟ 4 Πεπερασμένα Αυτόματα 67

4.1 Εισαγωγή ..................................................................................... 694.2 Ορισμοί και Αναπαράσταση .......................................................... 724.3 Τομή και Διαφορά Κανονικών Γλωσσών ........................................ 764.4 Αριθμός Καταστάσεων Αυτόματου................................................. 79

ΚΕΦΑΛΑΙΟ 5 Μη Ντετερμινισμός 95

5.1 Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα ................................. 965.2 Ισοδυναμία με Ντετερμινιστικά Πεπερασμένα Αυτόματα ................. 108

vii

Page 8: αυτόματα και τυπικές γλώσσες dimitriou

viii Περιεχόμενα

5.3 Θεώρημα Kleene .......................................................................... 111

ΚΕΦΑΛΑΙΟ 6 Μη Κανονικές Γλώσσες 129

6.1 Το Λήμμα Άντλησης ..................................................................... 1306.2 Αλγόριθμοι Απόφασης για Κανονικές Γλώσσες ............................... 134

Βιβλιογραφία Μέρους II................................................................ 141

Μέρος IIIΓλώσσες Ανεξάρτητες Συμφραζόμενων καιΑυτόματα Στοίβας 143

ΚΕΦΑΛΑΙΟ 7 Γλώσσες Ανεξάρτητες Συμφραζόμενων 145

7.1 Γραμματικές Ανεξάρτητες Συμφραζόμενων..................................... 1467.2 Κανονικές Γραμματικές ................................................................. 1527.3 Ένωση, Συνένωση, Αστέρι Kleene ................................................. 155

ΚΕΦΑΛΑΙΟ 8 Αυτόματα Στοίβας 165

8.1 Εισαγωγή ..................................................................................... 1668.2 Ορισμοί ....................................................................................... 1708.3 Ισοδυναμία με Γραμματικές ΑΣ ..................................................... 175

ΚΕΦΑΛΑΙΟ 9 Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων 189

9.1 Το Λήμμα Άντλησης για Γραμματικές ............................................ 1909.2 Αλγόριθμοι Απόφασης .................................................................. 197

ΚΕΦΑΛΑΙΟ 10 Συντακτική Ανάλυση 205

10.1 Ανάλυση από πάνω προς τα κάτω .................................................. 20610.2 Ανάλυση από κάτω προς τα πάνω .................................................. 211

Βιβλιογραφία Μέρους III............................................................... 218

Επίλογος - Μηχανές Turing και Υπολογισμός 221

ΠΑΡΑΡΤΗΜΑ A Απαντήσεις Ασκήσεων 223

ΠΑΡΑΡΤΗΜΑ B Γλωσσάρι Βασικών Όρων 229

Ευρετήριο 234

Page 9: αυτόματα και τυπικές γλώσσες dimitriou

ΕΙΣΑΓΩΓΗ

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

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

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

Κάπου πενήντα χρόνια πριν, ένας Άγγλος μαθηματικός, ο Alan Turing προσπά-θησε να ορίσει μαθηματικά τι είναι ένας υπολογιστής και τι κάνει. Το αποτέλεσμα,μία αφηρημένη μηχανή, η οποία το μόνο που έκανε ήταν να διαβάζει και να γράφεισύμβολα σε μια ταινία, αποδείχτηκε αρκετά ισχυρό: είναι γενικά παραδεκτό σήμεραότι οποιαδήποτε αλγοριθμική διαδικασία μπορεί να εκτελεστεί από μια μηχανή Tur-ing μ, ένα μικρό ρεπερτόριο εντολών. Εξαιτίας όμως της απλότητάς της μία τέτοιαμηχανή δεν είναι ο καλύτερος τρόπος επίλυσης πολύπλοκων προβλημάτων. Ησημασία της έγκειται στο γεγονός ότι αποτελεί ένα αφηρημένο μοντέλο υπολογισμού.

Έχοντας ορίσει τη μηχανή Turing, σ, αυτό το βιβλίο θα ορίσουμε τον υπολογισμόως κάτι που μπορεί να εκτελεστεί από μια τέτοια μηχανή. Μελετώντας λοιπόν

ix

Page 10: αυτόματα και τυπικές γλώσσες dimitriou

x Εισαγωγή

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

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

Στη δεκαετία του , 50, οι McCulloch και Pitt εισήγαγαν την έννοια μίας μηχανήςπεπερασμένων καταστάσεων με σκοπό τη μοντελοποίηση των δικτύων των νευρώ-νων του εγκεφάλου. Η βασική λειτουργία ενός πεπερασμένου αυτόματου, όπωςλέγεται μία τέτοια μηχανή, είναι αρκετά απλή: η μηχανή κάθε φορά βρίσκεται σεμία από ένα σύνολο καταστάσεων, αλλάζοντας κάθε φορά κατάσταση ανάλογα μετην είσοδο που δέχεται το σύστημα.

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

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

Page 11: αυτόματα και τυπικές γλώσσες dimitriou

Εισαγωγή xi

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

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

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

Είναι σημαντικό λοιπόν ο \πίνακας" να μη γεμίζει από μεγάλες αποδείξεις πουπροκαλούν την ανία του φοιτητή, αλλά η ώρα της διδασκαλίας να χρησιμοποιείταιγια την κατανόηση των βασικών θεμάτων χρησιμοποιώντας όχι τόσο αυστηράμαθηματικούς, αλλά κυρίως διαισθητικούς συλλογισμούς. Οι αποδείξεις υπάρχουνστο βιβλίο και ο φοιτητής θα πρέπει να τις διαβάζει και να προσπαθεί να τιςκατανοεί. Δεν είναι όμως αρκετό να μπορεί να τις επαναλάβει. Εκείνο που είναιπερισσότερο σημαντικό είναι να μπορεί να προσαρμόσει τις τεχνικές σε διαφορετι-κές περιπτώσεις. Για το λόγο αυτό στο τέλος κάθε κεφαλαίου υπάρχει ένα σύνολοασκήσεων που παίζουν σημαντικό ρόλο στη διαδικασία της μάθησης. Ο φοιτητήςθα πρέπει να δοκιμάζει να λύσει όσες περισσότερες ασκήσεις μπορεί και να συγκρί-νει τις απαντήσεις του με αυτές που υπάρχουν στο τέλος του βιβλίου. Είναιπεποίθησή μου ότι πολύ περισσότερα μαθαίνονται από τους φοιτητές λύνονταςασκήσεις (ακόμη και λανθασμένα) παρά απ, όλη τη συζήτηση στην τάξη και τιςαποδείξεις στο βιβλίο.

Page 12: αυτόματα και τυπικές γλώσσες dimitriou

xii Εισαγωγή

ΕΥΧΑΡΙΣΤΙΕΣ

Στο σημείο αυτό θα ήθελα να ευχαριστήσω όλους όσους βοήθησαν στη συγγραφήαυτού του βιβλίου. Θα ξεκινήσω από τους Νίκο Τσουρούλα και Θοδωρή Γναρδέλη,συνάδελφους στο γραφείο Έρευνας Πληροφορικής στη Σάμο. Χωρίς την τεχνικήβοήθεια που μου πρόσφεραν όταν ξεκινούσα να γράψω αυτό το βιβλίο τίποτα απ,

όλα αυτά δεν θα ήταν δυνατόν.Θα ήθελα επίσης να ευχαριστήσω τους κ. Παύλο Σπυράκη, Αθανάσιο Τσακαλί-

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

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

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

Αθήνα, Οκτώβριος 2001

Page 13: αυτόματα και τυπικές γλώσσες dimitriou

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

Μ Ε Ρ Ο Σ

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

Κύριο θέμα αυτού του βιβλίου είναι οι γλώσσες και οι \αφηρημένες μηχανές",μαθηματικά μοντέλα της έννοιας του υπολογισμού. Μία γλώσσα, σε αντιστοιχίαμε τις συνήθεις γλώσσες του κόσμου, δεν είναι παρά ένα σύνολο από λέξεις πουαποτελούνται από σύμβολα ενός άλλου συνόλου, του αλφάβητου. Τα βασικάσυστατικά των αφηρημένων μηχανών είναι πάλι σύνολα και ο τρόπος λειτουργίαςτους περιγράφεται με συναρτήσεις μεταξύ αυτών των βασικών συνόλων. Για τολόγο αυτό, τα δύο πρώτα \βασικά αντικείμενα" που περιγράφονται στο Κεφάλαιο1 είναι τα σύνολα και οι συναρτήσεις.

Στη συνέχεια θα μιλήσουμε για λογική και μερικά από τα λογικά επιχειρήματαπου χρησιμοποιούνται στις αποδείξεις. Δε θα μάθουμε πώς να φτιάχνουμε καλέςαποδείξεις, κάτι τέτοιο εξάλλου χρειάζεται πολύ εξάσκηση, αλλά θα δούμε μερικούςαπό τους βασικούς τύπους αποδείξεων και θα μάθουμε πώς λειτουργούν. Η χρήσητους είναι πολύ σημαντική και η εξοικείωση μαζί τους κρίνεται απαραίτητη, καθότιτο μεγαλύτερο μέρος του βιβλίου έχει να κάνει με αποδείξεις των ιδιοτήτων τωνγλωσσών και των αφηρημένων μηχανών. Τέλος, θα κλείσουμε το Κεφάλαιο 1εισάγοντας κάποια ορολογία που θα φανεί χρήσιμη στην ανάπτυξη των παραπάνωεννοιών.

Στο Κεφάλαιο 2 θα ασχοληθούμε με μια ακόμη τεχνική απόδειξης, την απόδειξημέσω Μαθηματικής Επαγωγής. Υπάρχουν τόσες πολλές προτάσεις που μπορούν

Page 14: αυτόματα και τυπικές γλώσσες dimitriou

2 Μαθηματικές Έννοιες και Ορολογία

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

Page 15: αυτόματα και τυπικές γλώσσες dimitriou

ΒΑΣΙΚΑ ΜΑΘΗΜΑΤΙΚΑΑΝΤΙΚΕΙΜΕΝΑ

Κ Ε Φ Α Λ Α Ι Ο

Σκοπός

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

Προσδοκώμενα Αποτελέσματα

Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε:

² ν, αναφέρετε τι είναι σύνολο, δυναμοσύνολο και Καρτεσιανό γινόμενο και ποιέςιδιότητες χαρακτηρίζουν τα μέλη τους,

² να περιγράψετε πότε ένα αντικείμενο ανήκει σε ένα σύνολο και πότε ένα σύνολοείναι υποσύνολο κάποιου άλλου συνόλου,

² να ορίσετε τις βασικές πράξεις μεταξύ συνόλων, ν, αναφέρετε τουλάχιστον δύοκανόνες χειρισμού τους και ν, απλοποιείτε εκφράσεις χρησιμοποιώντας τουςκανόνες αυτούς,

² να εξηγήσετε τη διαφορά των συναρτήσεων από τις σχέσεις,

² ν, αναφέρετε τα είδη συναρτήσεων και σχέσεων και να δώσετε τουλάχιστονένα παράδειγμα για κάθε μία,

3

Page 16: αυτόματα και τυπικές γλώσσες dimitriou

4 Βασικά Μαθηματικά Αντικείμενα

² να εξηγήσετε πως ορίζεται η αντίστροφη μιας συνάρτησης και οι κλάσεις ισοδυ-ναμίας μιας σχέσης,

² να βρίσκετε την τιμή αληθείας ενός ισχυρισμού χρησιμοποιώντας τους πίνακεςαληθείας των βασικών ισχυρισμών,

² ν, αναφέρετε τα τρία είδη των αποδείξεων και πως συνδέονται αυτές με τηναλήθεια του ισχυρισμού αν : : : τότε,

² να δώσετε τον ορισμό των γλωσσών, να περιγράψετε τις βασικές πράξεις αυτώνκαι να αναφέρετε τους δύο τρόπους περιγραφής τους,

² ν, αναφέρετε τί είναι γραφήματα και τί δέντρα.

Έννοιες-κλειδιά

² Σύνολο, στοιχεία συνόλου ² Συμβολοσειρές και γλώσσες

² Ένωση, τομή, διαφορά και συμπλήρωμα ² Συνένωση και αστέρι Kleene

² Δυναμοσύνολο και Καρτεσιανό γινόμενο ² Ισχυρισμοί, τιμές αληθείας

² Ένα προς ένα, επί και αντιστοιχία ² Πίνακες αληθείας

² Αντίστροφη συνάρτηση ² Ισοδυναμία ισχυρισμών

² Ανακλαστική, συμμετρική, μεταβατική σχέση ² Τύποι αποδείξεων

² Ισοδυναμία και κλάσεις ισοδυναμίας ² Γραφήματα και δέντρα

Εισαγωγικές Παρατηρήσεις

Το κεφάλαιο αυτό αποτελείται από πέντε ενότητες. Στην πρώτη θα δούμε τι είναισύνολο, ποιες ιδιότητες χαρακτηρίζουν τα μέλη του, τις βασικές πράξεις που ορίζονταιπάνω σε σύνολα καθώς και διάφορους κανόνες χειρισμού συνόλων. Στη δεύτερη θαμιλήσουμε για συναρτήσεις και σχέσεις καθώς και για τη διαφορά μεταξύ τους. Θαδούμε επίσης ποια είναι τα κύρια είδη τους και θα ορίσουμε την αντίστροφη μιαςσυνάρτησης και τις κλάσεις ισοδυναμίας μιας σχέσης. Στην τρίτη θα παρουσιάσουμετα κύρια επιχειρήματα που χρησιμοποιούνται στις αποδείξεις. Ιδιαίτερη σημασίαέχουν οι τρόποι που μπορούμε να αποδείξουμε ένα επιχείρημα, καθώς και η σχέσητους με την αλήθεια του ισχυρισμού αν : : : τότε. Στην τέταρτη θα ασχοληθούμεμε γλώσσες. Οι γλώσσες αποτελούν το κύριο θέμα αυτού του βιβλίου, οπότε ηεισαγωγική αυτή ενότητα θα πρέπει να προσεχθεί ιδιαίτερα. Τέλος, στην πέμπτη θαμιλήσουμε για γραφήματα και δέντρα. Αν και τα αντικείμενα αυτά έχουν ιδιαίτερη

Page 17: αυτόματα και τυπικές γλώσσες dimitriou

Σύνολα 5

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

1.1 Σύνολα

Οποιαδήποτε συλλογή αντικειμένων αποτελεί ένα σύνολο και τα αντικείμενα που Σύνολο

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

A = f®; ¯; °; : : : ; !g:

Το ® είναι στοιχείο του A και θα το συμβολίζουμε ® 2 A. Μερικές φορές απλάλέμε ότι το ® ανήκει στο A, ή ότι το A περιέχει το ®. Το d όμως δεν ανήκει στο A.Σ, αυτή την περίπτωση γράφουμε d62 A. Ένα σημείο που αξίζει να προσέξουμεστην αναπαράσταση του A είναι η χρησιμοποίηση τριών τελειών \. . . " στη θέσημιας μεγάλης ακολουθίας στοιχείων που προκύπτει εύκολα από το κείμενο. Με τονίδιο τρόπο θα αναπαριστούσαμε και ένα σύνολο με άπειρο αριθμό από μέλη, όπωςγια παράδειγμα το σύνολο των φυσικών αριθμών

N = f0; 1; 2; : : :g:

Ένας δεύτερος τρόπος για να περιγράψουμε σύνολα είναι χρησιμοποιώνταςκάποια ιδιότητα που χαρακτηρίζει τα μέλη τους. Το σύνολο fxjP (x)g αποτελείταιαπό όλα εκείνα τα στοιχεία για τα οποία ισχύει η ιδιότητα P (x). Για παράδειγμα,το σύνολο των ζυγών φυσικών αριθμών θα μπορούσε να περιγραφεί ως

fxj x 2 N και x είναι πολλαπλάσιο του 2g;

όπου η ιδιότητα P (x) είναι η \x 2 N και x είναι πολλαπλάσιο του 2".Πρέπει να τονίσουμε ότι ένα σύνολο περιέχει μόνο διακριτά αντικείμενα, δεν

επιτρέπονται δηλαδή επαναλήψεις των στοιχείων του: στο fμαύρο, άσπρο, μαύροg,το στοιχείο \μαύρο" υπολογίζεται μόνο μια φορά καθιστώντας το σύνολο ίδιο με τοfμαύρο, άσπροg. Επίσης η διάταξη των μελών δεν παίζει κανένα ρόλο: τα f1; 2; 3g,f2; 3; 1g και f3; 2; 1g αναπαριστούν το ίδιο ακριβώς σύνολο. Τέλος, τα μέλη δενείναι ανάγκη να σχετίζονται μεταξύ τους με οποιοδήποτε τρόπο. Για παράδειγματο fa; f3; κόκκινοgg είναι ένα σύνολο με δύο στοιχεία, εκ των οποίων το ένα είναικαι αυτό σύνολο. Εδώ πρέπει να σημειώσουμε ότι ο ορισμός ενός συνόλου δεναποκλείει την περίπτωση ύπαρξης ενός συνόλου χωρίς καθόλου στοιχεία. Ένατέτοιο σύνολο λέγεται κενό σύνολο και θα το συμβολίζουμε με fg ή Â. Για Κενό Σύνολο

παράδειγμα, αν S είναι το σύνολο των φοιτητών του Ανοικτού Πανεπιστημίου

Page 18: αυτόματα και τυπικές γλώσσες dimitriou

6 Βασικά Μαθηματικά Αντικείμενα

που πήραν πτυχίο μέχρι το 2000, τότε το S είναι κενό, καθότι μέχρι τη χρονιάαυτή δεν υπάρχουν απόφοιτοι του ΕΑΠ.

Αν τα A και B είναι σύνολα και κάθε στοιχείο του A είναι και στοιχείο τουB, θα λέμε ότι το A είναι υποσύνολο του B και θα το συμβολίζουμε A µ B.ΥποσύνολοΓια παράδειγμα, το σύνολο f1; 2g είναι υποσύνολο του fa; 1; b; 2g, αλλά δενείναι υποσύνολο του fa; b; 1; 3; 4g, ή αλλιώς f1; 2g 6µ fa; b; 1; 3; 4g. Το σύνολοτων φοιτητών που παρακολουθούν το μάθημα \Αυτόματα και Τυπικές Γλώσσες"είναι υποσύνολο του συνόλου των φοιτητών του Πανεπιστημίου, αλλά όχι καιτο αντίστροφο. Επίσης ένα σύνολο A μπορεί να είναι ταυτόχρονα μέλος αλλάκαι υποσύνολο κάποιου άλλου συνόλου B, όπως φαίνεται από τα A = f1; 2g καιB = f1; 2; f1; 2gg. Σαν άσκηση αφήνουμε στον αναγνώστη να δείξει τα παρακάτω:

1.11. Κάθε σύνολο είναι υποσύνολο του εαυτού του.

2. Το κενό είναι υποσύνολο οποιουδήποτε συνόλου.

ΆσκησηΑυτοαξιολόγησης1.1

Δύο σύνολα A και B θα λέγονται ίσα αν και μόνο αν αποτελούνται από τα ίδιαακριβώς στοιχεία. Αν όμως ισχύει αυτό, τότε όλα τα στοιχεία του A θα ανήκουνστο B και όλα τα στοιχεία του B θα ανήκουν στο A. Άρα ένας εναλλακτικόςτρόπος για να δείξουμε την ισότητα μεταξύ δύο συνόλων είναι να έχουμε A µ Bκαι B µ A.

Το συμπλήρωμα A0 ενός συνόλου A αποτελείται από όλα εκείνα τα στοιχείαΣυμπλήρωμα

που δεν ανήκουν στο A. Φυσικά, ο παραπάνω ορισμός έχει έννοια αν υποθέσουμετην ύπαρξη ενός συνόλου U (συνήθως λέγεται σύμπαν) που αποτελείται απ, όλαεκείνα τα στοιχεία που μας ενδιαφέρουν:

A0 = fx 2 U j x62 Ag:

Για παράδειγμα, αν U είναι το σύνολο των φοιτητών που παρακολουθούν τομάθημα Αυτόματα και Τυπικές Γλώσσες και το A δηλώνει τους φοιτητές πουπέρασαν το μάθημα, τότε A0 είναι το σύνολο των φοιτητών που παρακολούθησαναλλά δεν πέρασαν το μάθημα.

Για οποιαδήποτε δύο σύνολα A και B μπορούμε να σχηματίσουμε την ένωσητους A [B ή την τομή τους A \B, με τις σχέσειςΈνωση, Τομή

A [B = fx j x 2 A ή x 2 BgA \B = fx j x 2 A και x 2 Bg

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

Page 19: αυτόματα και τυπικές γλώσσες dimitriou

Σύνολα 7

στοιχεία που είναι κοινά και στα δύο σύνολα. Για παράδειγμα:

f1; 3; 4; 6g [ f2; 3; 4; 5g = f1; 2; 3; 4; 5; 6gf1; 3; 4; 6g \ f2; 3; 4; 5g = f3; 4g

Είναι δυνατό να σχηματίσουμε την τομή και την ένωση περισσότερων από δύοσυνόλων. Αν τα A1; A2; : : : είναι σύνολα, τότε η ένωση των A1; A2; : : :

[i

Ai = fx j x 2 Ai για τουλάχιστον ένα i ¸ 1g;

είναι το σύνολο που αποτελείται από τα στοιχεία όλων των Ai. Αντίστοιχα η τομήτων A1; A2; : : : ; AN

N\i=1

Ai = fx j x 2 Ai για κάθε 1 ∙ i ∙ Ng;

είναι το σύνολο που αποτελείται από τα κοινά στοιχεία όλων των A1; : : : ; AN .Τέλος, η διαφορά δύο συνόλων A και B είναι το σύνολο των στοιχείων του A Διαφορά

που δεν ανήκουν στο B:

A¡B = A \B0 = fx j x 2 A και x62 Bg:

Χρησιμοποιώντας τις παραπάνω πράξεις μπορούμε να φτιάξουμε πολύπλοκεςεκφράσεις που αφορούν σύνολα και συνήθως είναι απαραίτητο να υπάρχουν κάποιοικανόνες χειρισμού των εκφράσεων αυτών. Για παράδειγμα αν τα A;B και C είναισύνολα, ισχύουν οι κανόνες που φαίνονται στον Πίνακα 1.1.

Πίνακας 1.1. Νόμοι συνόλων

Αντιμεταθετικότητα A [B = B [AA \B = B \A

Προσεταιριστικότητα (A [B) [C = A [ (B [ C)(A \B) \C = A \ (B \ C)

Επιμεριστικότητα A [ (B \ C) = (A [B) \ (B [C)A \ (B [ C) = (A \B) [ (B \C)

Νόμοι De Morgan (A [B)0 = A0 \B0(A \B)0 = A0 [B0

Συμπλήρωμα και κενό σύνολο (A0)0 = A, A \A0 = Â και A [A0 = UA [Â = A και A \Â = Â

1.1

Page 20: αυτόματα και τυπικές γλώσσες dimitriou

8 Βασικά Μαθηματικά Αντικείμενα

Ας προσπαθήσουμε να αποδείξουμε τον πρώτο από τους νόμους De Morgan,

(A [B)0 = A0 \B0:

Εφόσον θέλουμε να αποδείξουμε μια ισότητα μεταξύ δύο συνόλων θα πρέπει να δείξουμεότι:

1. (A [B)0 µ A0 \B0 και2. A0 \B0 µ (A [B)0.

Θα αρχίσουμε με το (A [ B)0 µ A0 \ B0. Έστω x 2 (A [ B)0. Από τον ορισμό τουσυμπληρώματος, x62 (A[B). Μα τότε x62 A και x62 B γιατί αν το x ανήκε σε κάποιοαπό τα A ή B, τότε θα ανήκε και στην ένωσή τους A [ B. Άρα x 2 A0 και x 2 B0,επομένως x 2 A0 \B0 από τον ορισμό της τομής.Για να δείξουμε το αντίστροφο έστω x 2 A0 \ B0. Τότε x 2 A0 και x 2 B0, από τονορισμό της τομής. Επομένως, x 62 A και x 62 B. Μα αφού το x δεν είναι στοιχείοκανενός από τα A ή B, δε θα ανήκει και στην ένωσή τους. Άρα x62 (A [B), ή αλλιώςx 2 (A [B)0.

Παράδειγμα 1.1

Μπορούμε να χρησιμοποιήσουμε τους παραπάνω κανόνες για να απλοποιήσουμεδιάφορες εκφράσεις. Για παράδειγμα η έκφραση (A [B)¡A γίνεται

(A [B)¡A = (A [B) \A0 Ορισμός διαφοράς= A0 \ (A [B) Αντιμεταθετικότητα= (A0 \A) [ (A0 \B) Επιμεριστικότητα= Â [ (A0 \B) Ιδιότητα κενού συνόλου= B \A0 Αντιμεταθετικότητα= B ¡A Ορισμός διαφοράς

1.2Δουλεύοντας όπως παραπάνω, δείξτε ότι

(A¡ C)¡ (B ¡ C) = (A¡B)¡ C.

ΆσκησηΑυτοαξιολόγησης1.2

Για κάθε σύνολο A, το σύνολο όλων των δυνατών υποσυνόλων του A συμβολί-ζεται με 2A ή P(A) και ονομάζεται δυναμοσύνολο του A. Έστω, για παράδειγμα,Δυναμοσύνολο

το σύνολο A = f1; 2; 3g. Τότε2A = fÂ; f1g; f2g; f3g; f1; 2g; f1; 3g; f2; 3g; f1; 2; 3gg;

όπου το 2A περιέχει όλα τα υποσύνολα του A, από το κενό μέχρι το ίδιο το A.Το καρτεσιανό γινόμενο δύο συνόλων A και B αποτελείται από όλα τα διατεταγ-Καρτεσιανό

Γινόμενομένα ζεύγη της μορφής (a; b), όπου a 2 A και b 2 B, και συμβολίζεται με A£B.Διατεταγμένο ζεύγος σημαίνει ότι το (a; b) είναι διαφορετικό από το (b; a). Γιαπαράδειγμα, αν A = f1; 2; 3g και B = fa; bg,

fa; bg £ f1; 2; 3g = f(a; 1); (a; 2); (a; 3); (b; 1); (b; 2); (b; 3)g;

Page 21: αυτόματα και τυπικές γλώσσες dimitriou

Συναρτήσεις και Σχέσεις 9

και γενικότερα A1£A2£¢ ¢ ¢£An είναι το σύνολο όλων των διατεταγμένων n-άδων(a1; a2; : : : ; an), όπου για κάθε i, ai 2 Ai .1.3Ποιά από τα παρακάτω είναι αληθή;

Σωστό Λάθος 2  2 fÂg

fa; bg µ fa; b; ffa; bgggfa; bg 2 fa; b; ffa; bggg

fa; b; fa; bgg ¡ fa; bg = fa; bgfa; b;Âg ¡Â = fa; bgfÂg ¡ fa; b;Âg = Âfag µ 2fa;faggfag 2 2fa;fagg

ΆσκησηΑυτοαξιολόγησης

1.3

1.2 Συναρτήσεις και Σχέσεις

Μαζί με τα σύνολα οι συναρτήσεις αποτελούν μερικά από τα σπουδαιότερα μαθημα-τικά αντικείμενα.1.1Μία συνάρτηση f από το σύνολο A στο σύνολο B είναι ένας κανόνας που αντιστοιχεί σεκάθε στοιχείο του συνόλου A ένα μοναδικό στοιχείο του συνόλου B. Θα χρησιμοποιούμετα γράμματα f; g και h για συναρτήσεις και θα γράφουμε

f : A! B

για να δηλώσουμε ότι η f είναι μια συνάρτηση από το A στο B. Το σύνολο A λέγεταιπεδίο ορισμού της f . Αν a 2 A, τότε το f(a) (διαβάζεται f του a) είναι το μοναδικόστοιχείο του B που αντιστοιχεί στο a και λέγεται εικόνα του a.

Ορισμός 1.1

Έστω για παράδειγμα οι συναρτήσεις f και g, όπου A είναι το σύνολο όλων τωνανθρώπων και N το σύνολο των φυσικών αριθμών:

1. f : N ! N που ορίζεται ως εξής: f(x) = x2 και

2. g : A! N που ορίζεται ως εξής: g(x) = ηλικία του x.

Από τα παραπάνω φαίνεται ότι αν f είναι μια συνάρτηση από το A στο B,μπορεί να υπάρχουν στοιχεία y του B που δεν αντιστοιχούν σε κανένα x του Aή αν προτιμάτε δεν είναι εικόνα κανενός στοιχείου του A. Για παράδειγμα, στηνπρώτη συνάρτηση δεν υπάρχει x 2 N ώστε f(x) = 5. Ακριβώς γι, αυτό το λόγο,ορίζουμε ως πεδίο τιμών μίας συνάρτησης f το σύνολο των εικόνων της f , δηλαδή

Page 22: αυτόματα και τυπικές γλώσσες dimitriou

10 Βασικά Μαθηματικά Αντικείμενα

το σύνολο fy 2 Bj υπάρχει τουλάχιστον ένα x 2 A ώστε f(x) = yg. Έτσι, τοπεδίο τιμών της f είναι το σύνολο των αριθμών που αποτελούν τετράγωνα φυσικώναριθμών f0; 1; 4; 9; 16; ¢ ¢ ¢g, ενώ της g είναι το σύνολο f0; 1; : : : ;Hg, όπου H ηηλικία του γηραιότερου ανθρώπου που έζησε ποτέ.

Ας δούμε τώρα μερικά ενδιαφέροντα είδη συναρτήσεων. Μία συνάρτηση f :A ! B είναι ένα προς ένα ή 1-1, αν για κάθε δύο διαφορετικά a; a0 2 A ισχύει1-1f(a)6= f(a0). Για παράδειγμα, αν N είναι το σύνολο των νομών και Π το σύνολοτων πόλεων της Ελλάδας, τότε η συνάρτηση,

h : N ! Π που ορίζεται με h(x) = πρωτεύουσα του νομού x

είναι ένα προς ένα καθότι διαφορετικοί νομοί έχουν διαφορετικές πρωτεύουσες.Μια συνάρτηση f : A! B είναι επί, αν κάθε στοιχείο τουB είναι η εικόνα κάποιουΕπίστοιχείου του A. Η προηγούμενη συνάρτηση h δεν είναι επί γιατί υπάρχουν πόλειςπου δεν είναι πρωτεύουσες, αλλά η συνάρτηση που δίνεται παρακάτω είναι:

h0 : Π! N που ορίζεται με h0(x) = νομός στον οποίο ανήκει η πόλη x

Τέλος, μια συνάρτηση f : A ! B θα λέγεται αντιστοιχία, αν είναι ένα προς έναΑντιστοιχίακαι επί. Έτσι, αν στον ορισμό της h, Π είναι το σύνολο των πρωτευουσών, τότε ηh γίνεται αντιστοιχία.

Παρατηρήστε τώρα ότι, αν μια συνάρτηση f : A! B είναι αντιστοιχία, τότεγια κάθε y 2 B, υπάρχει τουλάχιστον ένα x 2 A με f(x) = y, αφού η f είναι επί,και για κάθε y 2 B, υπάρχει το πολύ ένα x 2 A με f(x) = y, αφού η f είναιένα προς ένα. Συνεπώς, για κάθε y 2 B, έχει νόημα να μιλάμε για το μοναδικόx 2 A για το οποίο f(x) = y, το οποίο συμβολίζουμε με f¡1(y), αλλά και για τησυνάρτηση f¡1 από το B στο A. f¡1(y) είναι το στοιχείο x 2 A για το οποίοισχύει f(x) = y. Αντικαθιστώντας x = f¡1(y) σ, αυτή την έκφραση παίρνουμετην f(f¡1(y)) = y. Αντίστοιχα, για x 2 A, f(f¡1(f(x))) = f(x). Η συνάρτησηf¡1 λέγεται αντίστροφη συνάρτηση της f και έχει τις ακόλουθες ιδιότητες:Αντίστροφη

για κάθε x 2 A, f¡1(f(x)) = xγια κάθε y 2 B, f(f¡1(y)) = y

1.2Είναι δυνατό να επεκτείνουμε τον ορισμό της αντίστροφης μίας συνάρτησης f : A !B ώστε να ισχύει ακόμα και όταν η f δεν είναι αντιστοιχία. Αυτό μπορούμε να τοκαταφέρουμε θεωρώντας την f¡1 ως μια συνάρτηση από το B στο 2A. Έτσι το f¡1(y)θα είναι απλά το σύνολο των x 2 A για τα οποία ισχύει f(x) = y. Για παράδειγμα, ανf : Π ! N , είναι η συνάρτηση που αντιστοιχεί κάθε πόλη x 2 Π στον νομό y 2 Nστον οποίο υπάγεται, τότε f¡1(y), όπου y νομός, είναι το σύνολο των πόλεων σ, αυτό τονομό.

Παράδειγμα 1.2

Page 23: αυτόματα και τυπικές γλώσσες dimitriou

Συναρτήσεις και Σχέσεις 11

1.4Θεωρήστε τη συνάρτηση f : N £N ! N που ορίζεται από τον τύπο f(m;n) =mn. Βρείτε α) το είδος της συνάρτησης. β) Τις τιμές f¡1(8); f¡1(16). γ)Το μέγεθος του f¡1(2k), όπου k κάποιος θετικός αριθμός. Για τα δύο τελευταίαερωτήματα χρησιμοποιείστε την επέκταση της αντίστροφης συνάρτησης, όπως δόθηκεστο προηγούμενο παράδειγμα.

ΆσκησηΑυτοαξιολόγησης

1.4

Αν f : A ! B και g : B ! C τότε f(x) 2 B. Σ, αυτή την περίπτωση έχεινόημα να μιλάμε για τη g(f(x)). Γενικότερα, αν f; g είναι δύο συναρτήσεις όπωςπαραπάνω και το πεδίο τιμών της f είναι υποσύνολο του B τότε η g(f(x)) παίρνειτιμές στο σύνολο C. Η συνάρτηση h : A ! C που ορίζεται όπως παραπάνωονομάζεται σύνθεση των f και g και συμβολίζεται με g ± f . Για παράδειγμα, αν f Σύνθεση

είναι η συνάρτηση που αντιστοιχεί ένα σπίτι στον ιδιοκτήτη του και g η συνάρτησηπου αντιστοιχεί ανθρώπους στις ηλικίες τους, τότε g ± f είναι η συνάρτηση πουαντιστοιχεί σπίτια στις ηλικίες των ιδιοκτητών τους. Παρόμοια, αν f(x) = log xκαι g(x) = x2 τότε (g ± f)(x) = (log x)2, ενώ (f ± g)(x) = log x2. Ο ορισμόςγενικεύεται και για τρεις συναρτήσεις f; g; h. Η σύνθεσή τους h±g±f υπολογίζεταιως εξής: Πρώτα υπολογίζουμε το f(x). Αφού εφαρμόσουμε πάνω του την g καιπάρουμε το g(f(x)), άλλη μία εφαρμογή της h μας δίνει το τελικό h(g(f(x))).

Σχέσεις

Είδαμε ότι οι συναρτήσεις συσχετίζουν στοιχεία ενός συνόλου με στοιχεία κάποιουάλλου συνόλου. Για παράδειγμα, ανθρώπους με τις ηλικίες τους, σπίτια με τουςιδιοκτήτες τους, κοκ. Δεν θα έβλαπτε λοιπόν να θεωρήσουμε μια συνάρτηση σανακριβώς αυτά τα ζεύγη. Ορίζοντας μια συνάρτηση μ, αυτό τον τρόπο δε χρειάζεταινα μιλούμε για \κανόνες αντιστοίχησης" ή άλλες εκφράσεις που μαθηματικά ίσωςνα μην είναι σωστές. Μπορούμε να δούμε τη συνάρτηση f : A ! B ως έναυποσύνολο f του A £ B ώστε για κάθε x 2 A, υπάρχει ακριβώς ένα στοιχείοy 2 B για το οποίο (x; y) 2 f . Η τιμή του y που αντιστοιχεί στο x είναι αυτή πουονομάζουμε f(x).

Μια συνάρτηση από το A στο B είναι ένα είδος αντιστοίχησης με τον επιπλέονπεριορισμό ότι σε κάθε x 2 A αντιστοιχεί ένα και μόνο ένα y 2 B. Αν άρουμε τονπεριορισμό αυτό, μπορούμε να αντιστοιχίσουμε σε κάθε στοιχείο του A πολλά ήκανένα στοιχεία του B, και σε κάθε στοιχείο του B πολλά ή κανένα στοιχεία του A.Μία τέτοια αντιστοίχηση ίσως να μην είναι πια συνάρτηση αλλά θα μπορεί ακόμανα αναπαρασταθεί σαν ένα υποσύνολο του A£B. Αν το ζεύγος (x; y) ανήκει στουποσύνολο, θα λέμε ότι το x \σχετίζεται" με το y. Ένα τέτοιο υποσύνολο R θα Σχέση

το ονομάζουμε σχέση από το A στο B και για ένα ζεύγος (x; y) θα γράφουμε xRy

Page 24: αυτόματα και τυπικές γλώσσες dimitriou

12 Βασικά Μαθηματικά Αντικείμενα

αντί για (x; y) 2 R.1.3Η ισότητα μεταξύ αριθμών αποτελεί και αυτή μια σχέση. Το όνομα της σχέσης είναι το\=" και για το λόγο αυτό γράφουμε x = y αντί για (x; y) 2 =. Το υποσύνολο = τουN £ N , όπου N το σύνολο των φυσικών αριθμών, είναι το f(0; 0); (1; 1); (2; 2); : : :g.Επίσης, η σχέση στο N £N που καθορίζεται από το υποσύνολο

f (0; 1),(0; 2), (1; 2),(0; 3), (1; 3), (2; 3),. . . g

είναι η σχέση μικρότερο \<".

Παράδειγμα 1.3

Θα δούμε τώρα μερικά βασικά είδη σχέσεων. Έστω μία σχέση R µ A£A.

1. Η R θα λέγεται ανακλαστική, αν κάθε στοιχείο σχετίζεται με τον εαυτό του,Ανακλαστική

δηλαδή για κάθε x 2 A, xRx. Η σχέση της ισότητας που αναφέραμε στοπροηγούμενο παράδειγμα είναι ανακλαστική.

2. Η R θα λέγεται συμμετρική, αν για κάθε x και y στο A για τα οποία xRy,Συμμετρική

τότε επίσης yRx. Γενικά, δύο στοιχεία δεν είναι ανάγκη να σχετίζονταιμεταξύ τους, αλλά αν η σχέση είναι συμμετρική και το πρώτο σχετίζεται μετο δεύτερο, τότε θα ισχύει και το αντίστροφο. Συμμετρική είναι η σχέση της\φιλίας" μεταξύ κάποιων ανθρώπων, αφού όταν ο x είναι φίλος του y, ο yείναι επίσης φίλος του x. Παράδειγμα σχέσης που είναι και ανακλαστικήκαι συμμετρική είναι η f(x; y) j x και y έχουν την ίδια μητέραg.

3. Η R θα λέγεται αντισυμμετρική, αν μόνο ένα εκ των δύο ζευγών (x; y) καιΑντισυμμετρική

(y; x) μπορεί να ανήκει στην R, δηλαδή αν xRy και x6= y, τότε δεν μπορείνα ισχύει yRx. Παράδειγμα αντισυμμετρικής σχέσης είναι η f(x; y) j x είναιο πατέρας του yg.

4. Η R θα λέγεται μεταβατική, αν για κάθε x; y και z στο A για τα οποία xRyΜεταβατική

και yRz, τότε επίσης xRz. Παράδειγμα μεταβατικής σχέσης είναι η \<".Αν x < y και y < z, τότε x < z.

5. Τέλος, η R θα λέγεται σχέση ισοδυναμίας αν είναι ανακλαστική, συμμετρικήΣχέσηΙσοδυναμίας

και μεταβατική. Παράδειγμα τέτοιας σχέσης είναι η \=".

1.5Έστω A το σύνολο των αυτοκινήτων. Θεωρήστε τη σχέση R πάνω στο A έτσι ώστε το(a; b) ν, ανήκει στην R, αν το αυτοκίνητο a είναι πιο γρήγορο και κοστίζει λιγότερο απότο αυτοκίνητο b. Τι θα μπορούσατε να πείτε για την R; Είναι ανακλαστική; Συμμετρική;Αντισυμμετρική; Μεταβατική;

ΆσκησηΑυτοαξιολόγησης1.5

Page 25: αυτόματα και τυπικές γλώσσες dimitriou

Συναρτήσεις και Σχέσεις 13

Έστω R µ A£ A μία σχέση ισοδυναμίας. Αν x είναι ένα στοιχείο του A, θαδηλώνουμε με [x]R (ή απλά [x] αν γνωρίζουμε για ποια σχέση μιλάμε) την κλάση Κλάση

Ισοδυναμίαςισοδυναμίας που περιέχει το x, δηλαδή το σύνολο

[x]R = fa 2 AjaRxg;όλων των στοιχείων a που σχετίζονται με το x. Το σημαντικό τώρα είναι ότι οικλάσεις ισοδυναμίας μίας σχέσης R σχηματίζουν μία διαμέριση του A, δηλαδή μίασυλλογή από υποσύνολα του A ώστε:

1. κανένα υποσύνολο δεν είναι ίσο με το κενό σύνολο Â,

2. τα υποσύνολα δεν έχουν κοινά στοιχεία μεταξύ τους και

3. η ένωσή τους περιέχει όλα τα στοιχεία του A.

Θεώρημα 1.1. Έστω R μία σχέση ισοδυναμίας πάνω σε ένα σύνολο A. Τότεοι κλάσεις ισοδυναμίας της R σχηματίζουν μία διαμέριση του A.

Απόδειξη: Πρέπει να δείξουμε ότι ισχύουν και οι τρεις προϋποθέσεις τουορισμού μίας διαμέρισης. Για να το κάνουμε αυτό θα φανταστούμε μία κλάση[x] σαν ένα δοχείο με ετικέτα [x] που περιέχει όλα τα στοιχεία a 2 A για ταοποία ισχύει aRx. Πρέπει λοιπόν να δείξουμε ότι α) κανένα δοχείο δεν είναικενό, β) δεν υπάρχουν δοχεία με κοινά στοιχεία και γ) όλα τα στοιχεία τουA ανήκουν σε κάποιο δοχείο.

Το α) δεν είναι δύσκολο να το δείξουμε, αφού ένα δοχείο με ετικέτα [x]σίγουρα περιέχει το x. Ο λόγος είναι ότι η σχέση είναι συμμετρική επομένωςxRx. Το β) είναι λίγο πιο δύσκολο. Έστω δύο διαφορετικά δοχεία [x] και[y]. Ας υποθέσουμε ότι τα δοχεία αυτά έχουν κάποιο κοινό στοιχείο, το οποίοονομάζουμε z. Άρα xRz και zRy. Από τη μεταβατικότητα της R θα ισχύεικαι xRy αλλά και yRx, εφόσον η R είναι συμμετρική. Έστω τώρα w έναοποιοδήποτε στοιχείο του δοχείου [x]. Εξ ορισμού θα ισχύει wRx, αλλά καιwRy λόγω μεταβατικότητας. Επομένως το z θα ανήκει στο δοχείο [y], άρα[x] µ [y]. Ανάλογα μπορούμε να δείξουμε ότι [y] µ [x]. Από τον ορισμό τηςισότητας συνόλων προκύπτει ότι [y] = [x], δηλαδή τα δύο δοχεία ταυτίζονται.Καταλήξαμε σε άτοπο, γιατί υποθέσαμε ότι δύο διαφορετικά δοχεία μπορούννα έχουν κοινά στοιχεία. Άρα δε μπορεί να συμβαίνει κάτι τέτοιο και οικλάσεις δεν έχουν κοινά στοιχεία.

Για το γ) αρκεί να παρατηρήσουμε ότι a 2 [a], αφού η σχέση είναι ανακλαστική,επομένως κάθε στοιχείο του A ανήκει σε κάποιο δοχείο.

1.6Αποδείξτε το αντίστροφο του προηγούμενου θεωρήματος. Έστω δηλαδή fA1; A2;: : : ; Ang μία διαμέριση ενός συνόλου A και R μία σχέση πάνω στο A που ορίζεταιως εξής: το ζεύγος (a; b) ανήκει στην R, αν και μόνο αν τα a και b ανήκουν στο ίδιοσύνολο της διαμέρισης. Δείξτε ότι η R είναι σχέση ισοδυναμίας.

ΆσκησηΑυτοαξιολόγησης

1.6

Page 26: αυτόματα και τυπικές γλώσσες dimitriou

14 Βασικά Μαθηματικά Αντικείμενα

1.3 Λογικά Επιχειρήματα και Αποδείξεις

Σ, αυτό το βιβλίο θα ασχοληθούμε με ιδιότητες των γλωσσών και των αφηρημένωνμηχανών όπως αυτές προκύπτουν από τους ορισμούς τους. Η διαδικασία τηςαπόδειξης έχει ως εξής: πρώτα διατυπώνουμε αυτό που θέλουμε να δείξουμεκαι στη συνέχεια με λογικά επιχειρήματα αποδεικνύουμε την αλήθεια (ή όχι) τουισχυρισμού μας. Μια καλή απόδειξη πείθει τον αναγνώστη ότι το αποτέλεσμαείναι σωστό, αλλά τον βοηθά επίσης να καταλάβει γιατί είναι σωστό και να τοσυνδέσει με την υπόλοιπη θεωρία. Από την άλλη, μια κακή απόδειξη πάλι πείθειγια το αποτέλεσμα, αλλά δε βοηθά τον αναγνώστη να βάλει τα πράγματα σε μιαπροοπτική. Σε αυτή την ενότητα δε θα μάθουμε πως να κατασκευάζουμε \καλές"αποδείξεις, κάτι τέτοιο απαιτεί συνεχή εξάσκηση, αλλά θα δούμε μερικούς απότους βασικούς τύπους αποδείξεων και θα μάθουμε πώς λειτουργούν.

Τα βασικά αντικείμενα στη λογική είναι οι ισχυρισμοί που παίρνουν κάποιαΙσχυρισμοί

τιμή αληθείας, μπορούν δηλαδή να είναι αληθείς ή ψευδείς αλλά όχι και τα δύο.Για παράδειγμα ο ισχυρισμός 0 < 1 είναι αληθής, ενώ ο 1 < 0 είναι ψευδής. Ητιμή αληθείας του ισχυρισμού x < 5 εξαρτάται από τη μεταβλητή x. Αν το xείναι φυσικός αριθμός και έχει μία από τις τιμές f0; 1; 2; 3; 4g τότε ο προηγούμενοςισχυρισμός είναι αληθής. Σε αντίθετη περίπτωση είναι ψευδής. Το σύνολο τωντιμών που καθιστούν έναν ισχυρισμό αληθή λέγεται σύνολο αληθείας.

Οι ισχυρισμοί όμως δεν περιορίζονται μόνο σε ιδιότητες αριθμών. Για παράδει-γμα ο ισχυρισμός

\Ο Σωκράτης είναι άνθρωπος."

είναι αληθής, αν φυσικά μιλάμε για τον άνθρωπο Σωκράτη. Αν όμως έχουμεονομάσει Σωκράτη το αγαπημένο μας κατοικίδιο τότε ο ισχυρισμός είναι ψευδής.Τα παραπάνω παραδείγματα δείχνουν ότι η τιμή αληθείας εξαρτάται πάντα από τοπεριεχόμενο του κειμένου ή για να είμαστε πιο ακριβείς από κάποιο σύμπαν U ,από το οποίο παίρνουν τιμές οι μεταβλητές.

Αν p και q είναι δύο ισχυρισμοί, θα λέμε ότι ο p συνεπάγεται τον q (ή p) q), αν\p) q"

η αλήθεια του q προκύπτει από την αλήθεια του p. Για παράδειγμα ο ισχυρισμός \Ηθερμοκρασία ήταν κάτω από τους 0±C" συνεπάγεται τον \Το νερό έγινε πάγος".Αν όμως p = \2 < 3" και q = \Είναι πρωί" τότε ο p δεν συνεπάγεται τον q,αφού η αλήθεια του δεύτερου δεν προκύπτει με κανένα τρόπο από την αλήθειατου πρώτου. Δύο ισχυρισμοί p και q θα λέγονται λογικά ισοδύναμοι (ή p , q),αν ο καθένας συνεπάγεται τον άλλο. Για παράδειγμα οι ισχυρισμοί \Γεννήθηκα το\p, q"

1967" και \Θα είμαι 33 χρονών το 2000" είναι ισοδύναμοι.Οι σύνδεσμοι και και ή παίζουν ένα σημαντικό ρόλο στο σχηματισμό σύνθετων

ισχυρισμών ξεκινώντας από δύο απλούστερους. Στην περίπτωση του και (θα το

Page 27: αυτόματα και τυπικές γλώσσες dimitriou

Λογικά Επιχειρήματα και Αποδείξεις 15

συμβολίζουμε με ^), ο σύνθετος ισχυρισμός p^q είναι αληθής, αν και μόνο αν και \p ^ q"ο p και ο q είναι αληθείς. Τη συνθήκη αυτή την αποτυπώνουμε και στον παρακάτωπίνακα αληθείας. Η στήλη p^q παίρνει την τιμή T (αληθής) μόνο στην περίπτωση

Πίνακας 1.2. Πίνακας αληθείας p ^ q

p q p ^ qF F FF T FT F FT T T

που και οι δύο p και q έχουν την τιμή Τ. Σ, όλες τις άλλες περιπτώσεις παίρνει τηντιμή F (ψευδής). Για παράδειγμα ο ισχυρισμός

\Οι άνθρωποι έχουν δύο χέρια και οι γάτες τέσσερα πόδια."

είναι αληθής αφού οι επιμέρους ισχυρισμοί είναι αληθείς. Στην περίπτωση του ή(θα το συμβολίζουμε με _), ο σύνθετος ισχυρισμός p _ q είναι αληθής, αν ένας \p _ q"τουλάχιστον από τους p και q είναι αληθής, όπως φαίνεται και στον Πίνακα 1.3.Για παράδειγμα, ο ισχυρισμός

\Οι άνθρωποι έχουν δύο χέρια ή οι γάτες πετάνε."

είναι αληθής αφού ο ισχυρισμός \Οι άνθρωποι έχουν δύο χέρια" είναι αληθής.

Πίνακας 1.3. Πίνακας αληθείας p _ q

p q p _ qF F FF T TT F TT T T

Τέλος, η χρήση του όχι (θα συμβολίζεται με :) αντιστρέφει την τιμή αληθείαςενός ισχυρισμού. Ο ισχυρισμός :p (ή ¹p) είναι αληθής, αν και μόνο αν ο p είναιψευδής. Όπως και στην περίπτωση των συνόλων έτσι και εδώ υπάρχουν κάποιοικανόνες απλούστευσης πολύπλοκων εκφράσεων ισχυρισμών. Οι κανόνες αυτοίπροκύπτουν, αν στον Πίνακα 1.1 αλλάξουμε τα [;\ και 0(συμπλήρωμα) με ^;_και :, αντίστοιχα. Μπορείτε τώρα να βρείτε σε τι αντιστοιχεί το κενό σύνολο Âκαι το σύμπαν U ;

Ένας άλλος τρόπος κατασκευής πολύπλοκων εκφράσεων προκύπτει χρησιμοποι-ώντας το σύνδεσμο !. Με p ! q συμβολίζουμε την έκφραση \αν p, τότε q". \p! q"

Page 28: αυτόματα και τυπικές γλώσσες dimitriou

16 Βασικά Μαθηματικά Αντικείμενα

Ποια όμως είναι η τιμή αληθείας ενός τέτοιου ισχυρισμού; Ο p! q είναι αληθής,αν και μόνο αν ο p είναι ψευδής ή ο q είναι αληθής. Για να βρούμε λοιπόν τηντιμή αληθείας του p! q διακρίνουμε τις παρακάτω περιπτώσεις:

1. Έστω ότι ο p είναι αληθής. Τότε για να είναι ο p! q αληθής πρέπει και οq να είναι αληθής.

2. Έστω ότι ο p είναι ψευδής. Τότε ο p! q είναι αληθής άσχετα από την τιμήτου p.

Ας εξηγήσουμε τα παραπάνω με τη χρήση ενός παραδείγματος.1.4Έστω p και q αντίστοιχα οι ισχυρισμοί \ανιχνεύτηκε καπνός" και \χτύπησε οσυναγερμός". Θεωρήστε τώρα την έκφραση \αν ανιχνεύτηκε καπνός, τότε χτύπησε οσυναγερμός". Ποια είναι η τιμή αληθείας ενός τέτοιου ισχυρισμού; Είναι ξεκάθαρο ότιο ισχυρισμός είναι αληθής, αν ο συναγερμός χτύπησε μόλις ανιχνεύτηκε καπνός (και ο pκαι ο q είναι αληθείς). Είναι επίσης φανερό ότι ο ισχυρισμός είναι ψευδής, αν συναγερμόςδε χτύπησε παρ, ότι ανιχνεύτηκε καπνός (ο p είναι αληθής αλλά ο q ψευδής).Τί γίνεται όμως στην περίπτωση που δεν ανιχνεύτηκε καπνός (p ψευδής); Σ, αυτή τηνπερίπτωση ο ισχυρισμός δεν μπορεί να είναι ψευδής, άσχετα με το αν χτύπησε ή όχι οσυναγερμός. Για το λόγο αυτό ο p ! q ορίζεται να είναι πάντα αληθής εκτός από τηνπερίπτωση που είναι φανερά ψευδής: να ισχύει δηλαδή το p και να μην ισχύει το q.

Παράδειγμα 1.4

Τα παραπάνω μπορούν αποτυπωθούν καλύτερα στον ακόλουθο πίνακα. Από την

Πίνακας 1.4. Πίνακας αληθείας p! q

p q p! q

F F TF T TT F FT T T

ανάλυση προκύπτει ότι(p! q), (:p _ q);

δηλαδή ότι οι δύο ισχυρισμοί είναι λογικά ισοδύναμοι. Υπάρχουν, λεκτικά, καιάλλοι τρόποι για να εκφράσουμε τον ισχυρισμό p ! q και θα τους δούμε συχνάσ, αυτό το βιβλίο. Ένας από τους πιο διαδεδομένους είναι η έκφραση \p μόνο ανq". Άλλοι φαίνονται στη συνέχεια:

όχι p εκτός αν qq προκύπτει από το pp είναι ικανό για το qq είναι αναγκαίο για το p

Page 29: αυτόματα και τυπικές γλώσσες dimitriou

Λογικά Επιχειρήματα και Αποδείξεις 17

Στο σημείο αυτό χρειάζεται ν, ανοίξουμε μια παρένθεση για να εξηγήσουμεκαλύτερα τη διαφορά μεταξύ του \)" και του \!". Αν p; q είναι ισχυρισμοί,τότε η έκφραση p ) q είναι μια δήλωση ότι η αλήθεια του δεύτερου ισχυρισμούπροκύπτει από την αλήθεια του πρώτου, όπως στην περίπτωση των \x = 2" και\x2 ¡ 4 = 0". Αντίθετα το σύμβολο \!" χρησιμοποιείται σαν συνδετικό (όπωςκαι τα ^, _) για την κατασκευή πιο πολύπλοκων ισχυρισμών, η αλήθεια τωνοποίων μπορεί να ελεγχθεί εντελώς μηχανικά. Θα μπορούσαμε κάλλιστα αντί γιατο σύμβολο! να χρησιμοποιήσουμε το σύμβολο } και να εννοούμε ότι ο σύνθετοςισχυρισμός p } q είναι ψευδής, μόνο στην περίπτωση που ο p είναι αληθής και οq ψευδής. Για παράδειγμα θεωρείστε τους ισχυρισμούς

p = \Μία πεταλούδα πέταξε στο Πεκίνο" και

q = \Τον Ιούλιο του 2001 εξερράγη το ηφαίστειο Αίτνα"

Είναι προφανές ότι p! q αλλά σε καμιά περίπτωση δεν μπορούμε να ισχυριστούμεότι η έκρηξη της Αίτνας οφείλεται στο πέταγμα μιας πεταλούδας, ή αλλιώς ότι p)q. Η διαφορά λοιπόν μεταξύ των! και) έγκειται στο ότι, το πρώτο δεν έχει σχέσημε την ουσία αυτών που ισχυριζόμαστε, ενώ το δεύτερο συλλαμβάνει ακριβώς τηναλήθεια των ισχυρισμών μας. Για περισσότερα \παράλογα" παραδείγματα τουτύπου p! q, δείτε την Άσκηση 1.20.

Τέλος, άλλος ένας σημαντικός ισχυρισμός είναι ο p$ q που διαβάζεται \p αν \p$ q"

και μόνο αν q" και αποτελεί συντομογραφία της έκφρασης (p! q)^ (q ! p). Γιανα είναι ο ισχυρισμός αυτός αληθής, τα p και q πρέπει να είναι και τα δύο αληθήή και τα δύο ψευδή. Για να βρούμε την τιμή αληθείας ενός τέτοιου ισχυρισμούσυνήθως τον χωρίζουμε στα δύο κομμάτια p ! q και q ! p και δουλεύουμε τοκάθε κομμάτι χωριστά.

1.7Οι τιμές αληθείας ενός σύνθετου ισχυρισμού μπορούν να διαπιστωθούν κατασκευάζονταςβήμα προς βήμα τον πίνακα αληθείας του. Αν

((p ^ q) _ (¹p ^ ¹q))! p

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

p q ¹p ¹q p ^ q ¹p ^ ¹q (p ^ q) _ (¹p ^ ¹q) ((p ^ q) _ (¹p ^ ¹q))! pF FF TT FT T

ΆσκησηΑυτοαξιολόγησης

1.7

Page 30: αυτόματα και τυπικές γλώσσες dimitriou

18 Βασικά Μαθηματικά Αντικείμενα

Από τη μέχρι τώρα συζήτηση προκύπτει ότι, αν ο ισχυρισμός p ! q είναιαληθής, τότε είναι αδύνατο να ισχύει το p και να μην ισχύει το q. Αλλά αυτό είναιτο ίδιο σαν να λέμε ότι όταν ο p είναι αληθής, ο q είναι αληθής ή αλλιώς p) q.

Κάποιος λοιπόν μπορεί να βρει την αλήθεια μιας πρότασης της μορφής p! q

πέφτοντας σε αντίφαση, να υποθέσει δηλαδή ότι δεν ισχύει το q, ενώ ισχύει τοΑντίφασηp, και να καταλήξει σε κάποια ασυνέπεια (για παράδειγμα ότι δεν ισχύει το p). Ηαπόδειξη του Θεωρήματος 1.1 ανήκει σ, αυτή την κατηγορία. Ας δούμε άλλο έναπαράδειγμα:

1.5Έστω m και n δύο ακέραιοι αριθμοί. Ας προσπαθήσουμε να αποδείξουμε ότι:

\αν το γινόμενό τους mn είναι περιττός, τότε και οι m και n είναι περιττοί."

Ας αρχίσουμε λέγοντας ακριβώς τι εννοούμε όταν λέμε ότι ένας αριθμός είναι περιττός.Ένας αριθμός m είναι περιττός, αν μπορεί να γραφεί στη μορφή m = 2k + 1 για κάποιοακέραιο k.Θέλουμε λοιπόν να δείξουμε ότι ο ισχυρισμός p! q είναι αληθής, όπου p =\το γινόμενόmn είναι περιττός" και q =\οι m και n είναι περιττοί".Ας υποθέσουμε, χάρη της αντίφασης, ότι το γινόμενό τους είναι περιττός (ισχύει το p),αλλά ότι κάποιος από τους m και n (ίσως και οι δύο) δεν είναι περιττός (δεν ισχύει τοq). Έστω ότι ο n δεν είναι περιττός. Άρα θα έχει τη μορφή n = 2l για κάποιο αριθμό l.Αν τώρα πάρουμε το γινόμενο τους, θα έχουμε

mn = (2k + 1)(2l) = 2(2kl + l)

από το οποίο συμπεραίνουμε ότι το mn δεν είναι περιττός εφόσον μπορεί να γραφεί στηνμορφή 2t, όπου t = 2kl + l. Αυτό όμως αντιτίθεται στην υπόθεση ότι το γινόμενό τουςείναι περιττός.Ο λόγος που πέσαμε σε αντίφαση είναι γιατί υποθέσαμε ότι κάποιος από τους δύο δενείναι περιττός. Άρα και οι δύο πρέπει να είναι περιττοί, οπότε αποδείξαμε το ζητούμενο.

Παράδειγμα 1.5

Ας δούμε τώρα μερικούς ακόμα τρόπους απόδειξης ισχυρισμών της μορφήςp ! q. Σε μία άμεση απόδειξη υποθέτουμε ότι το p είναι αληθές και δείχνουμε,Άμεση Απόδειξη

χρησιμοποιώντας την υπόθεση, ότι και το q είναι αληθές.

1.6

Page 31: αυτόματα και τυπικές γλώσσες dimitriou

Αλφάβητα και Γλώσσες 19

Έστω δύο ακέραιοι m;n. Ας προσπαθήσουμε να αποδείξουμε χρησιμοποιώντας τονπροηγούμενο τρόπο, ότι

\αν οι m και n είναι περιττοί, τότε και το γινόμενό τους mn είναι περιττός."

Σ, αυτήν την περίπτωση p =\οι m και n είναι περιττοί" και q =\το γινόμενο mnείναι περιττός". Ας υποθέσουμε ότι και δύο είναι περιττοί (ισχύει το p). Άρα υπάρχουνακέραιοι k; l ώστε να ισχύειm = 2k+1 και n = 2l+1. Θέλουμε να δείξουμε ότι υπάρχειένας ακέραιος t ώστε mn = 2t+ 1. Ας υπολογίσουμε λοιπόν το mn. Είναι φανερό ότι

mn = (2k + 1)(2l + 1) = 4kl + 2k + 2l + 1 = 2(2kl + k + l) + 1 = 2t+ 1

όπου θέσαμε t = 2kl + k + 1. Άρα και το q είναι αληθές, οπότε και ο ισχυρισμός είναιαληθής.

Παράδειγμα 1.6

Από τα Παραδείγματα 1.5 και 1.6 προκύπτει η αλήθεια του παρακάτω ισχυρισμούγια δύο ακέραιους m και n.

\το γινόμενό τους mn είναι περιττός, αν και μόνο αν και οι m και n είναιπεριττοί."

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

Ένας τρίτος τρόπος είναι η έμμεση απόδειξη που χρησιμοποιεί το γεγονός ότι ΈμμεσηΑπόδειξητο p ! q είναι λογικά ισοδύναμο με το :q ! :p. Ο δεύτερος ισχυρισμός

λέγεται αντιθετοαντίστροφος του πρώτου. Παραδείγματα τέτοιων ισοδυναμιώνχρησιμοποιούμε στην καθομιλουμένη: \Αν οδηγώ, δεν πίνω" είναι ισοδύναμο μετο \Αν πίνω, δεν οδηγώ". Η ισοδυναμία προκύπτει ως εξής:

p! q , :p _ q Ορισμός !, q _ :p Αντιμεταθετικότητα, :(:q) _ :p Διπλή χρήση της άρνησης :, :q ! :p Ορισμός !

Η ισοδυναμία μπορεί επίσης να αποδειχτεί συγκρίνοντας τους πίνακες αληθείαςτων δύο ισχυρισμών. Μία \απόδειξη με αντιθετοαντιστροφή" ότι το p ! q είναιαληθές υποθέτει ότι :q είναι αληθές και αποδεικνύει ότι το :p είναι αληθές.Είναι ουσιαστικά μία άμεση απόδειξη του λογικά ισοδύναμου αντιθετοαντίστροφουισχυρισμού.

1.4 Αλφάβητα και Γλώσσες

Για να μελετήσουμε τις αφηρημένες μηχανές και τις δυνατότητές τους θα χρειαστείνα αναπτύξουμε ένα μοντέλο για τα δεδομένα που θα επεξεργάζονται αυτές. Διαλέ-

Page 32: αυτόματα και τυπικές γλώσσες dimitriou

20 Βασικά Μαθηματικά Αντικείμενα

γουμε να αναπαριστούμε τα δεδομένα με σειρές από σύμβολα.Ας αρχίσουμε με την έννοια του αλφάβητου, το οποίο δεν είναι παρά έναΑλφάβητο

πεπερασμένο σύνολο από σύμβολα. Το δυαδικό αλφάβητο που χρησιμοποιούνοι υπολογιστές αποτελείται από τα σύμβολα 0 και 1. Γενικά, σ, αυτό το βιβλίοσπάνια θα χρειαστεί να ορίσουμε ένα αλφάβητο με περισσότερα από δύο σύμβολα¡ τα σύμβολα a; b ή 0; 1 θα είναι αρκετά. Ίσως αυτό φαίνεται αρκετά περιοριστικό,αρκεί όμως να σκεφτούμε ότι μεγαλύτερα αλφάβητα μπορούν να κωδικοποιηθούνχρησιμοποιώντας μόνο δύο σύμβολα, κάτι που κάνουν και οι υπολογιστές για νααναπαριστούν δεδομένα.

Συνήθως, θα αναπαριστούμε τα αλφάβητα με το γράμμα §. Μια συμβολοσειράΣυμβολοσειρά

ή λέξη του § είναι μια πεπερασμένη ακολουθία από σύμβολα του §. Αν γιαπαράδειγμα το αλφάβητό μας είναι το fa; bg, μερικές συμβολοσειρές είναι τα ab,abbb, bb και bbaabb. Αλλά μια συμβολοσειρά μπορεί να μην περιέχει καθόλουσύμβολα, να είναι δηλαδή κενή. Θα αναπαριστούμε την κενή συμβολοσειρά με τοσύμβολο ² και θα προσπαθούμε να αποφεύγουμε αλφάβητα που περιέχουν το ² γιανα μη δημιουργείται σύγχυση. Επίσης δε θα διακρίνουμε μεταξύ συμβολοσειρώνμήκους ένα και των αντίστοιχων συμβόλων τους. Αν και αποτελούν διαφορετικέςοντότητες διαλέγουμε να τις αναπαριστούμε με τον ίδιο τρόπο. Γενικά για τηναναπαράσταση των συμβολοσειρών θα χρησιμοποιούμε τα γράμματα u; v; w; x; yκαι z. Έτσι, x θα μπορούσε να είναι το όνομα του abbba.

To μήκος μιας συμβολοσειράς x είναι το πλήθος των συμβόλων από τα οποίααποτελείται, και συμβολίζεται με jxj. Έτσι jabbbaj = 5, jbj = 1 και j²j = 0. Τοσύνολο όλων των δυνατών συμβολοσειρών ενός αλφάβητου § θα το συμβολίζουμεμε §¤. Αν § = fa; bg, τότε

fa; bg¤ = f²; a; b; aa; ab; ba; bb; aaa; aab; aba; abb; : : :gόπου η κενή συμβολοσειρά ανήκει στο §¤.

Μια γλώσσα πάνω στο § είναι ένα υποσύνολο του §¤. Έτσι, τα §¤,  και §Γλώσσαείναι γλώσσες. Τις γλώσσες τις αναπαριστούμε όπως και τα σύνολα: απαριθμώνταςτα μέλη τους, όποτε αυτό είναι δυνατό, ή χρησιμοποιώντας κάποια ιδιότητα πουχαρακτηρίζει τις συμβολοσειρές της. Παραδείγματα γλωσσών πάνω στο fa; bgείναι τα

f²gfx 2 fa; bg¤j jxj είναι περιττόςgfx 2 fa; bg¤j x αρχίζει και τελειώνει με το agfx 2 fa; bg¤j x περιέχει τον ίδιο αριθμό από a και bg

Οι γλώσσες μπορούν, ως σύνολα που είναι, να συνδυαστούν με τις πράξειςτης τομής, της ένωσης και του συμπληρώματος. Το συμπλήρωμα L0 μίας γλώσσας

Page 33: αυτόματα και τυπικές γλώσσες dimitriou

Αλφάβητα και Γλώσσες 21

L είναι το σύνολο των συμβολοσειρών του §¤ που δεν ανήκουν στην L. Υπάρχουνόμως και πράξεις που έχουν νόημα μόνο όταν εφαρμόζονται πάνω σε συμβολοσειρέςκαι γενικότερα σε γλώσσες. Μια τέτοια πράξη είναι η συνένωση. Αν x και y είναι Συνένωση

στοιχεία του §¤, η συνένωση των x και y, συμβολίζεται με x ± y ή απλά xy,είναι η συμβολοσειρά που σχηματίζεται γράφοντας τα σύμβολα του x και στησυνέχεια τα σύμβολα του y. Για παράδειγμα, ² ± abb = abb, aaa ± bbb = aaabbb,make ± peace = makepeace. Επίσης θα λέμε ότι μια συμβολοσειρά x περιέχεταισε μία άλλη y, αν η x είναι τμήμα της y, δηλαδή αν υπάρχουν z; w 2 §¤, όχι και οιδύο κενές, ώστε y = zxw. Έτσι η συμβολοσειρά και περιέχεται στις συμβολοσειρέςκαιρός και ευκαιρία αλλά όχι στην καλός.

Αν L1 και L2 είναι γλώσσες ενός αλφάβητου §, τότε η συνένωσή τους είναι η \L1L2"

γλώσσα L1 ± L2, ή απλά L1L2, όπου

L1L2 = fxy j x 2 L1 και y 2 L2g:

Για παράδειγμα, αν L1 =fα, ευg, L2 =fπιστος, στοχος, ποροςg, τότεL1 ± L2 = fα, ευg±fπιστος, στοχος, ποροςg = fαπιστος, αστοχος, απορος,

ευπιστος, ευστοχος, ευποροςgΠαρόμοια, για κάθε γλώσσα L µ §¤ και k ¸ 0,

Lk =

kz }| {LL : : : L

είναι το σύνολο όλων των συμβολοσειρών που προκύπτουν συνενώνοντας οποιεσδή-ποτε k συμβολοσειρές της L. Έτσι για k = 0, L0 = f²g, ενώ, αν στη θέση τηςγλώσσας L θέσουμε το αλφάβητο §, τότε §k είναι το σύνολο των συμβολοσειρώνπου αποτελούνται από ακριβώς k σύμβολα του αλφάβητου, έχουν δηλαδή μήκοςk.

Μια άλλη πράξη είναι το αστέρι Kleene μιας γλώσσας L που συμβολίζεται με \L¤"

L¤. L¤ είναι το σύνολο των συμβολοσειρών που προκύπτουν συνενώνοντας μηδένή περισσότερες συμβολοσειρές της L,

L¤ =1[k=0

Lk

= fx 2 §¤j x = x1 ± x2 ± ¢ ¢ ¢ ± xk; για k ¸ 0 και x1; x2; : : : ; xk 2 Lg

όπως ακριβώς §¤ είναι το σύνολο των συμβολοσειρών που προκύπτουν συνενώνο-ντας οποιοδήποτε αριθμό από σύμβολα του §.1.7Ας προσπαθήσουμε να βρούμε το L¤, όταν L = Â. Η μόνη δυνατότητα συνένωσηςk ¸ 0 συμβολοσειρών x1; x2; : : : ; xk 2 L, είναι όταν k = 0, δηλαδή η συνένωση μηδέναπό αυτές. Άρα το μόνο στοιχείο της L¤ είναι η κενή συμβολοσειρά ².

Παράδειγμα 1.7

Page 34: αυτόματα και τυπικές γλώσσες dimitriou

22 Βασικά Μαθηματικά Αντικείμενα

Τέλος, με L+ θα συμβολίζουμε το σύνολο όλων των συμβολοσειρών που προκύ-πτουν από τη συνένωση μίας ή περισσότερων συμβολοσειρών της L,\L+"

L+ =1[k=1

Lk

= fx 2 §¤j x = x1 ± x2 ± ¢ ¢ ¢ ± xk; για k ¸ 1 και x1; x2; : : : ; xk 2 Lg

1.81. Γενικά, για μια γλώσσα L ισχύει L+ µ L¤. Κάτω από ποιες συνθήκες L+ = L¤;

2. Βρείτε παραδείγματα γλωσσών L1; L2 στο fa; bg ώστε (L1 [ L2)¤ 6= L¤1 [ L¤2.

ΆσκησηΑυτοαξιολόγησης1.8

Υπάρχουν αρκετοί τρόποι για να περιγράψει κανείς μια γλώσσα L. Σίγουρα, ανη L περιέχει άπειρο αριθμό συμβολοσειρών δεν μπορεί να περιγραφεί απαριθμώνταςτα μέλη της. Εκείνο που κάνουμε είναι να δώσουμε μια ιδιότητα που χαρακτηρίζειτις συμβολοσειρές της ή να χρησιμοποιήσουμε τις βασικές πράξεις για να εκφράσου-με τη γλώσσα όπως φαίνεται στα παρακάτω παραδείγματα:

L1 = fab; bbg¤ [ fbgfaa; bg¤

L2 = fx 2 fa; bg¤ j ο αριθμός των a στο x είναι πολλαπλάσιο του πέντεgΣτην πρώτη περίπτωση, ο ορισμός περιγράφει πως μπορούμε να κατασκευάσουμεή αλλιώς να παράγουμε συμβολοσειρές που ανήκουν στην L1. Στη δεύτερη, οορισμός μας βοηθάει να αναγνωρίσουμε συμβολοσειρές που ανήκουν στην L2:μετράμε τα a και βλέπουμε αν είναι πολλαπλάσια του πέντε. Ας δούμε όμως άλλοένα παράδειγμα:

L3 = fx 2 §¤ j για k; l;m 2 N ¡ f0g; kjxj + ljxj = mjxjg.

Η γλώσσα αυτή μας ζητάει να βρούμε τις συμβολοσειρές x, όπου jxj = n, ώστε γιακάποια k; l;m να ισχύει kn + ln = mn. Η γλώσσα αυτή αποτελεί μια μεταμφίεσητου Θεωρήματος του Fermat: να αποφασιστεί αν ένας αριθμός mn μπορεί ναεκφραστεί σαν το άθροισμα δύο αριθμών k; l με τον ίδιο εκθέτη. Ο Fermat είχεγράψει στο περιθώριο του βιβλίου του Arithmetica: \Είναι αδύνατο να χωρίσεικάποιος έναν κύβο σε δύο κύβους, ή γενικά οποιαδήποτε δύναμη εκτός από τετράγωνοσε δύο δυνάμεις με τον ίδιο εκθέτη. Ανακάλυψα μια απόδειξη γι, αυτό, που όμως τοπεριθώριο δεν είναι αρκετά μεγάλο για να την χωρέσει". Μέχρι πριν λίγα χρόνιατο θεώρημα αυτό αποτελούσε ένα άλυτο πρόβλημα αλλά τελικά αποδείχτηκε απότον Andrew Wiles1 το 1994 ότι ο Fermat είχε δίκιο: καμιά δύναμη ανώτερη τουδύο δε μπορεί να διασπαστεί σε δύο μέρη με τον ίδιο εκθέτη. Έτσι η γλώσσα L3περιέχει συμβολοσειρές μήκους το πολύ δύο!

1http://www.pbs.org/wgbh/nova/proof/wiles.html

Page 35: αυτόματα και τυπικές γλώσσες dimitriou

Γραφήματα και Δέντρα 23

Η περίπτωση της L3 μας φανερώνει ότι γενικά μπορεί να είναι πολύ δύσκολονα αποφασίσουμε ποιες συμβολοσειρές ανήκουν σε μια γλώσσα. Σ, αυτό το βιβλίοθα δούμε μεθόδους παραγωγής γλωσσών, αλλά και μεθόδους αναγνώρισης τωνσυμβολοσειρών αυτών των γλωσσών με τη χρήση αφηρημένων μηχανών. Οιαρχικές μηχανές θα είναι αρκετά απλές και περιορισμένων δυνατοτήτων αλλά όσοπροχωρούμε θα γνωρίζουμε όλο και ισχυρότερες μηχανές καθώς και τη σχέση τουςμε τις μεθόδους παραγωγής γλωσσών.1.9Εκφράστε, χρησιμοποιώντας τις βασικές πράξεις (ένωση, συνένωση, αστέρι Kleene), τιςγλώσσες:

1. L1 = fx 2 fa; bg¤ j το μήκος jxj είναι ζυγός αριθμόςg.2. L2 = fx 2 fa; bg¤ j η x περιέχει δύο ή τρία a, εκ των οποίων τα δύο πρώτα δεν

είναι συνεχόμεναg.

ΆσκησηΑυτοαξιολόγησης

1.9

1.5 Γραφήματα και Δέντρα

Ένα γράφημα (ή γράφος) G(V;E) αποτελείται από ένα σύνολο από κόμβους (ή Γράφημα

κορυφές) V και ένα σύνολο από πλευρές (ή ακμές) E, που συνδέουν τους κόμβουςμεταξύ τους. Παράδειγμα ενός τέτοιου γραφήματος φαίνεται στο Σχήμα 1.1(α). Τοσύνολο V αποτελείται από τους κόμβους 1; 2; 3; 4; 5; 6 και το E από τις πλευρέςπου συνδέουν τους αντίστοιχους κόμβους. Σ, ένα τέτοιο γράφημα η διάταξη τωνκόμβων στις πλευρές δεν παίζει κανένα ρόλο. Έτσι, για παράδειγμα, η πλευρά(1; 3) είναι ίδια με την πλευρά (3; 1).

1

2

5

4

3

6

(α)

1 3 4

(β)

2

Σχήμα 1.1. Παραδείγματα γραφημάτων: α) απλό γράφημα β) κατευθυνόμενο

Ένα μονοπάτι σ, ένα γράφημα είναι μια ακολουθία (v1; v2; : : : ; vk); k ¸ 1, από Μονοπάτι

κόμβους, όχι απαραίτητα διαφορετικούς μεταξύ τους, για την οποία υπάρχει μίαπλευρά (vi; vi+1) του E, για κάθε 1 ∙ i < k. To μήκος του μονοπατιού είναι

Page 36: αυτόματα και τυπικές γλώσσες dimitriou

24 Βασικά Μαθηματικά Αντικείμενα

1

3

6

2

4 5

7

Σχήμα 1.2. Παράδειγμα δέντρου

ο αριθμός των πλευρών που συνδέουν τους κόμβους, στην προκειμένη περίπτωσηk ¡ 1. Αν το μονοπάτι είναι κλειστό, δηλαδή αν a1 = ak, τότε λέγεται κύκλος.Έτσι η ακολουθία (1; 2; 4; 5) είναι ένα μονοπάτι μήκους τρία, ενώ η (2; 4; 5; 2)είναι κύκλος.

Ένα γράφημα G(V;E) λέγεται κατευθυνόμενο, αν η διάταξη των κόμβων στιςΚατευθυνόμενοΓράφημα

πλευρές έχει σημασία. Αν η πλευρά (u; v) ανήκει στο E, τότε την απεικονίζουμε μεμία κατευθυνόμενη γραμμή από το u στο v και είναι διαφορετική από την πλευρά(v; u). Αν (u; v) είναι μία πλευρά του E, θα λέμε ότι ο u προηγείται, ενώ ο v ότιακολουθεί. Παράδειγμα ενός τέτοιου γραφήματος φαίνεται στο Σχήμα 1.1(β).

Τα κατευθυνόμενα γραφήματα αποτελούν ένα ωραίο μέσο για να απεικονίζουμεγραφικά σχέσεις. Αν μας δίνεται μια σχέση R µ A £ A, τότε μπορούμε να τηναναπαραστήσουμε μ, ένα κατευθυνόμενο γράφημα όπου το σύνολο των κόμβωνείναι το A και το σύνολο των πλευρών αποτελείται από όλα τα ζεύγη (a; b) πουανήκουν στη σχέση. Έτσι το γράφημα του Σχήματος 1.1(β) θα μπορούσε νααναπαριστά τη σχέση

R = f(1; 2); (1; 3); (2; 2); (2; 3); (2; 4); (3; 2); (4; 3)g

Τέλος, ένα δέντρο είναι ένα κατευθυνόμενο γράφημα με τις ακόλουθες ιδιότητες:Δέντρο

1. Υπάρχει ένας κόμβος που λέγεται ρίζα από το οποίο ξεκινά ένα μονοπάτιπρος κάθε άλλο κόμβο.

2. Κάθε κόμβος (εκτός από τη ρίζα) έχει ακριβώς μία κατευθυνόμενη πλευράαπό κάποιο άλλο κόμβο.

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

Page 37: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 25

4, 6, 7 λέγονται φύλλα. Αν (u; v) είναι μια πλευρά του δέντρου, τότε ο κόμβος uθα λέγεται γονέας, ενώ ο v παιδί. Έτσι ο κόμβος 3 είναι γονιός του 5 και παιδί του1. Το ύψος ενός δέντρου είναι το μήκος του μεγαλύτερου μονοπατιού από τη ρίζαπρος κάποιο φύλλο. Το δέντρο του Σχήματος 1.2 έχει ύψος τρία, που είναι και τομήκος του μονοπατιού από τη ρίζα προς το κόμβο 7. Το βάθος ενός κόμβου u είναιίσο με το μήκος του μονοπατιού από τη ρίζα προς τον u. Έτσι η ρίζα έχει πάνταβάθος μηδέν, ενώ για παράδειγμα ο κόμβος 4 έχει βάθος δύο. Τέλος, ένα δέντροθα λέγεται δυαδικό αν κάθε εσωτερικός κόμβος έχει ακριβώς δύο παιδιά.

ΑΣΚΗΣΕΙΣ

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

1.1 Ποιοι από τους παρακάτω ισχυρισμούς είναι αληθείς;

α) Â µ Âβ) Â µ fÂgγ) fa; bg 2 fa; b; c; dgδ) fa; bg µ ffa; bggε) fa; bg 2 2fa;bg

στ) fa; bg µ 2fa;bg

ζ) 2fa;bg µ 2fa;b;cg

η) fa; b;Âg ¡Â = fa; bg

1.2 Βρείτε μια απλούστερη έκφραση για τα παρακάτω σύνολα:

α) A [ (B ¡A)β) A¡ (A¡B)γ) (A0 \B0)0δ) (A \B)¡A

1.3 Αποδείξτε τις παρακάτω ισότητες:

α) A \ (A [B) = Aβ) A [ (A \B) = Aγ) A¡ (B \ C) = (A¡B) [ (A¡ C)

Page 38: αυτόματα και τυπικές γλώσσες dimitriou

26 Πεπερασμένα Αυτόματα

1.4 Εκφράστε τα παρακάτω σύνολα χρησιμοποιώντας τα σύνολα A;B;C και τιςπράξεις ένωση, τομή και συμπλήρωμα.

α) fxj x ανήκει στο A ή στο B αλλά όχι και στα δύοgβ) fxj x ανήκει σε οποιαδήποτε δύο από τα τρία σύνολα A;B;Cg

1.5 Υπολογίστε τα σύνολα

α) 2Â

β) 2fa;b;cg ¡ 2fa;bg

γ) fag £ fb; cg £ f1g

1.6 Έστω η συνάρτηση f : N £N ! N που ορίζεται από τον τύπο f(m;n) =m + n. Εξετάστε αν η f είναι 1-1 και επί, και βρείτε τα σύνολα f¡1(10)και f¡1(k). Ποιό είναι το μέγεθος του f¡1(k);

1.7 Μας δίνεται ένα σύνολο S και μία συνάρτηση f από το 2S στο < ώστε

A \B = Â , f(A [B) = f(A) + f(B)

για A;B 2 2S . Δείξτε ότι

α) f(Â) = 0

β) f(A [B) + f(A \B) = f(A) + f(B)

1.8 Για κάθε ζεύγος πραγματικών αριθμών (a; b) ορίζουμε τη συνάρτηση fa;b :< ! < που δίνεται από τη σχέση fa;b(x) = ax + b, για κάθε x 2 <.Για ποια ζεύγη (a; b) είναι η fa;b αντιστοιχία; Ποια είναι τότε η αντίστροφησυνάρτηση;

1.9 Βρείτε τις f ± g, h ± g, h ± (g ± f) και (h ± g) ± f , όπου f = 2x, g = ex2 καιh = x3 συναρτήσεις πάνω στο <.

1.10 Έστω f : A ! B και g : B ! C δύο συναρτήσεις και h : A ! C ησύνθεσή τους g±f . Βρείτε ικανές και αναγκαίες συνθήκες ώστε η h να είναια) ένα προς ένα, β) επί, γ) αντιστοιχία.

1.11 Έστω R = f(1,1), (2,2), (2,3), (2,4), (3,1), (4,2)g και S = f(1,3), (1,5),(2,2), (2,3), (3,1), (3,3), (4,4), (5,1), (5,5)g δύο σχέσεις πάνω στο σύνολοf1; 2; 3; 4; 5g.

Page 39: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 27

α) Βρείτε αν καθεμιά από τις R;S είναι ανακλαστική, συμμετρική και μετα-βατική.β) Απεικονίστε όλες τις παραπάνω σχέσεις με τον τρόπο που περιγράψαμεστην Ενότητα 1.5. Πώς θα περιγράφατε γραφικά τις παραπάνω ιδιότητες;γ) Κάντε το ίδιο για τις σχέσεις R [ S και R \ S.

1.12 Μία σχέση R πάνω σ, ένα σύνολο A είναι ένα υποσύνολο του A £ A. Μετην έννοια αυτή και το κενό σύνολο Â αποτελεί σχέση. Βρείτε αν η σχέσηαυτή είναι ανακλαστική, συμμετρική, αντισυμμετρική και μεταβατική.

1.13 Έστω f μία οποιαδήποτε συνάρτηση από το A στο B και R η σχέση πουορίζεται ως εξής: για a; b 2 A, aRb αν και μόνο αν f(a) = f(b). Ποιες οιιδιότητες της σχέσεως αυτής;

1.14 Μία σχέση R µ A £ A θα λέγεται μερική διάταξη, αν είναι ανακλαστική,αντισυμμετρική και μεταβατική. Για παράδειγμα η σχέση

f(x; y)j x πρόγονος του yg

είναι μερική διάταξη (με την παραδοχή ότι καθένας είναι πρόγονος τουεαυτού του). Αν R µ A£A είναι μία σχέση μερικής διάταξης, ένα στοιχείοa 2 A λέγεται ελάχιστο αν (b; a) 2 R μόνο αν b = a. Βρείτε (αν υπάρχουν)τα ελάχιστα στοιχεία των παρακάτω σχέσεων:

α) R = f (1,1), (2,1), (2,2), (2,3), (3,3), (4,3), (4,4)g και A = f1; 2; 3; 4g.β) R είναι η σχέση μικρότερο ή ίσο και A το σύνολο των φυσικών αριθμών.

1.15 Απεικονίστε γραφικά τις προηγούμενες σχέσεις με τον τρόπο που περιγράψαμεστην Ενότητα 1.5. Πώς θα ξεχωρίζαμε αμέσως τα ελάχιστα στοιχεία;

1.16 Θα λέμε ότι a ´n b (διαβάζεται a είναι ίσο με το b modulo n), αν και μόνοαν το a¡b είναι πολλαπλάσιο του n, δηλαδή a¡b = kn, για κάποιο ακέραιοk. Αποδείξτε ότι η ´n είναι σχέση ισοδυναμίας.

1.17 Στην προηγούμενη άσκηση βρείτε τις κλάσεις ισοδυναμίας της ´n.

1.18 Δείξτε ότι για οποιοδήποτε σύνολο S, η R είναι σχέση ισοδυναμίας:

R = f(A;B)jA;B 2 2S ώστε υπάρχει μία αντιστοιχία από το A στο Bg

Αν το S αποτελείται από τέσσερα στοιχεία, ποιες είναι οι κλάσεις ισοδυναμίαςτης R;

Page 40: αυτόματα και τυπικές γλώσσες dimitriou

28 Πεπερασμένα Αυτόματα

1.19 Έστω R μία σχέση ισοδυναμίας ενός συνόλου A. Κατασκευάστε ένα σύνολοB και μία συνάρτηση f : A! B, ώστε για κάθε a; b 2 A

aRb αν και μόνο αν f(a) = f(b)

1.20 Βρείτε την τιμή αληθείας των ακόλουθων ισχυρισμών.

α) Ένας γάιδαρος πετάει μόνο αν τα πουλιά έχουν φτερά.

β) Αν τα πουλιά έχουν φτερά, οι γάιδαροι μπορούν να πετούν.

γ) Οι σκύλοι γαβγίζουν αν και μόνο αν το πέταγμα των γατών είναι ικανόγια να βρέχει βατράχια.

δ) Αν δεν ισχύει ότι οι γάτες πετούν, τότε οι βάτραχοι μιλούν μόνο αν καιτα πουλιά πετούν.

ε) Αν τα βατράχια γίνονται πρίγκιπες, η κοκκινοσκουφίτσα κινδυνεύει απότον κακό λύκο.

1.21 Ποιοι από τους παρακάτω ισχυρισμούς είναι αληθείς;

α) Αν 1 + 1 = 3, τότε 2 + 2 = 4.

β) 2 + 2 = 3 μόνο αν 1 + 1 = 0.

γ) 1 + 1 = 2 είναι ικανή συνθήκη για το 2 + 2 = 4.

δ) 3 + 3 = 6 είναι αναγκαία συνθήκη για το 2 + 2 = 3.

ε) 1 + 1 = 3 αν και μόνο αν 2 + 2 = 5.

στ) Μόνο αν 3¡ 2 = 1 είναι 26= 0.

1.22 Κατασκευάστε πίνακες αληθείας για τους παρακάτω ισχυρισμούς και βρείτεμε ποιους απλούστερους ισχυρισμούς είναι ισοδύναμοι.

α) (p! :q) ^ pβ) :q ! :pγ) (p! q)! q

δ) (p! q) ^ (q ! r)

ε) p ^ (p! q)

στ) p! (:p! q)

1.23 Αποδείξτε ότι οι ισχυρισμοί p _ q _ r _ s και (:p ^ :q) ! (:r ! s) είναιισοδύναμοι.

Page 41: αυτόματα και τυπικές γλώσσες dimitriou

Σύνοψη 29

1.24 Να αποδειχτεί για δύο αριθμούς m και n το εξής:

\m+ n είναι περιττός αν και μόνο αν ακριβώς ένας από τους mκαι n είναι περιττός"

1.25 Δείξτε για φυσικούς αριθμούς i; j και n ότι, αν ij = n, τότε ή i ∙ pn ή

j ∙ pn.

1.26 Δείξτε για οποιαδήποτε σύνολα A;B και C ότι, αν A \B = Â και C µ B,τότε και A \ C = Â.

1.27 Αν L1; L2 είναι δύο γλώσσες έτσι ώστε L1 µ L2, δείξτε ότι L¤1 µ L¤2.

1.28 Αν § = fa; bg και L = fx 2 §¤j ο αριθμός των a διαφέρει από τοναριθμό των b στο xg, δείξτε, χρησιμοποιώντας την προηγούμενη άσκηση,ότι L¤ = §¤.

1.29 Αποδείξτε ότι για κάθε γλώσσα L µ §¤

α) L¤ = (L¤)¤ = (L+)¤ = (L¤)+,

β) LÂ = ÂL = Â,

γ) f²g¤ = f²g.

1.30 Πώς θα περιγράφατε τις συμβολοσειρές της γλώσσας L = fa; bag¤;

1.31 Εκφράστε τις παρακάτω γλώσσες χρησιμοποιώντας τις συνήθεις πράξεις(ένωση, τομή, κλπ.)

α) L1 = fx 2 fa; bg¤j το x έχει τουλάχιστον δύο συνεχόμενα bgβ) L2 = fx 2 fa; bg¤j το jxj είναι περιττόςgγ) L3 = fx 2 fa; b; cg¤j το x δεν περιέχει την συμβολοσειρά acg

Σύνοψη

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

Page 42: αυτόματα και τυπικές γλώσσες dimitriou

30 Βασικά Μαθηματικά Αντικείμενα

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

Στη συνέχεια παρουσιάσαμε τις συναρτήσεις. Μια συνάρτηση f από ένα σύνολοA σε ένα σύνολο B αντιστοιχεί σε κάθε στοιχείο x του A ένα μοναδικό στοιχείοαπό το B, το οποίο λέγεται εικόνα του x και συμβολίζεται με f(x). Μία συνάρτησηf λέγεται ένα προς ένα, αν δύο διαφορετικά στοιχεία του A αντιστοιχίζονται σεδιαφορετικά στοιχεία του B. H f λέγεται επί, αν κάθε στοιχείο του B είναι εικόνακάποιου x του A. Τέλος, η f είναι αντιστοιχία αν είναι ένα προς ένα και επί. Σ, αυτήτην περίπτωση έχει νόημα να μιλάμε για την αντίστροφη της f η οποία συμβολίζεταιf¡1. Αν y ανήκει στο B τότε f¡1(y) είναι το μοναδικό x του A για το οποίο ισχύειf(x) = y.

Αλλά ενώ μια συνάρτηση αντιστοιχεί σε κάθε x του A ένα μοναδικό y του B,μια σχέση R επιτρέπει την αντιστοίχηση περισσότερων ή και κανενός στοιχείων απότο B. Σε αυτή την περίπτωση λέμε ότι το x σχετίζεται με το y και γράφουμε xRy.Μια σχέση R λέγεται ανακλαστική, αν κάθε x σχετίζεται με τον εαυτό του, δηλαδήxRx. H R είναι συμμετρική αν, όποτε ισχύει xRy, τότε ισχύει και yRx. H R είναιμεταβατική, αν όποτε ισχύουν τα xRy και yRz, τότε ισχύει και το xRz. Τέλος, ηR είναι σχέση ισοδυναμίας, αν έχει και τις τρεις παραπάνω ιδιότητες. Σ, αυτή τηνπερίπτωση έχει νόημα να μιλάμε για τις κλάσεις ισοδυναμίας της R. Μια κλάσηισοδυναμίας ενός στοιχείου x, συμβολίζεται με [x], είναι το σύνολο των στοιχείων yπου σχετίζονται με το x μέσω της R.

Στη συνέχεια αναφερθήκαμε στα λογικά επιχειρήματα που χρησιμοποιούνται στιςαποδείξεις. Ένας ισχυρισμός p είναι οποιαδήποτε πρόταση η οποία μπορεί να είναιαληθής ή ψευδής. Χρησιμοποιώντας τους συνδέσμους και, ή, όχι και αν : : : τότε, οιοποίοι συμβολίζονται αντίστοιχα με τα ^, _, : και !, μπορούμε να φτιάξουμε πιοσύνθετους ισχυρισμούς. Αν p; q είναι δύο ισχυρισμοί, τότε ο p^ q είναι αληθής μόνοαν και οι δύο είναι αληθείς. O p _ q είναι αληθής, αν τουλάχιστον ένας από τουςδύο είναι αληθής. Ο :p είναι αληθής μόνο αν ο p είναι ψευδής, ενώ ο p! q είναιαληθής, αν ο p είναι ψευδής ή ο q είναι αληθής. Η αλήθεια ενός ισχυρισμού τηςμορφής p ! q μπορεί να βρεθεί με τρεις τρόπους: Ο πρώτος είναι να υποθέσουμετην αλήθεια του p και να δείξουμε την αλήθεια του q. Αυτού του είδους η απόδειξηλέγεται άμεση. Σε μία έμμεση απόδειξη κάνουμε το αντίστροφο. Υποθέτουμε ότιο q είναι ψευδής και δείχνουμε ότι και ο p είναι ψευδής. Αυτό έχει νόημα γιατί οισχυρισμός :q ! :p είναι λογικά ισοδύναμος με τον p ! q, είναι δηλαδή αληθήςκάτω από τις ίδιες ακριβώς συνθήκες. Τέλος, σε μία απόδειξη μέσω αντίφασης,δείχνουμε ότι αν ο q είναι ψευδής τότε οδηγούμαστε σε κάποια αντίφαση.

Οι παραπάνω έννοιες θα μας βοηθήσουν να αποδείξουμε διάφορες ιδιότητες τωνγλωσσών. Μια γλώσσα δεν είναι παρά ένα σύνολο από λέξεις ενός αλφάβητου §, οι

Page 43: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης 31

οποίες ονομάζονται συμβολοσειρές. Οι πράξεις που εφαρμόζονται στις γλώσσεςείναι αυτές των συνόλων μαζί με δύο που έχουν νόημα μόνο για γλώσσες. Ησυνένωση L1 ± L2 είναι η γλώσσα που προκύπτει αν στις συμβολοσειρές της L1\κολλήσουμε" τις συμβολοσειρές της L2. Το αστέρι Kleene L¤ μίας γλώσσαςL, προκύπτει συνενώνοντας μηδέν ή περισσότερες συμβολοσειρές της ίδιας της L.Χρησιμοποιώντας τις παραπάνω πράξεις μπορούμε να περιγράψουμε πως μπορούννα παραχθούν οι συμβολοσειρές που ανήκουν σε μια γλώσσα. Ένας δεύτερος όμωςτρόπος είναι να δώσουμε μια ιδιότητα που χαρακτηρίζει τις συμβολοσειρές πουανήκουν στην γλώσσα. Σ, αυτή την περίπτωση μιλάμε για αναγνώριση των συμβολο-σειρών. Πρέπει όμως αυτές οι ιδιότητες να είναι υπολογιστικά εφικτές, αλλιώςθα μπορούσαμε να περιγράψουμε μία γλώσσα της οποίας τις συμβολοσειρές δε θαμπορούσαμε ποτέ να αναγνωρίσουμε.

Κλείνοντας το κεφάλαιο, μιλήσαμε για γραφήματα και δέντρα. Ένα γράφημα δενείναι παρά ένα σύνολο από κόμβους που συνδέονται μεταξύ τους με πλευρές. Τογράφημα λέγεται κατευθυνόμενο, αν η κατεύθυνση της πλευράς έχει σημασία. Έναμονοπάτι σε ένα γράφημα δεν είναι παρά μία ακολουθία από κόμβους που συνδέονταιμεταξύ τους με πλευρές. Τέλος, ένα δέντρο είναι ένα κατευθυνόμενο γράφημα πουέχει τις παρακάτω δύο ιδιότητες: α) υπάρχει ένας κόμβος που λέγεται ρίζα και απότον οποίο ξεκινά ένα μονοπάτι προς κάθε άλλο κόμβο και β) κάθε κόμβος εκτός απότη ρίζα δέχεται μια πλευρά από κάποιο άλλο κόμβο.

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης

Άσκηση 1.1 Ένα σύνολο A είναι υποσύνολο κάποιου άλλου συνόλου B, αν όλα ταστοιχεία του A ανήκουν στο B. Ισοδύναμα θα μπορούσαμε να πούμε ότι A µ B,αν δεν υπάρχει κάποιο στοιχείο του A που να μην περιέχεται στο B.

1. Βάλτε τώρα στη θέση του B το A. Είναι φανερό ότι όλα τα στοιχεία του Aανήκουν στο A, άρα A µ A.

2. Έστω S ένα οποιοδήποτε σύνολο. Υπάρχει στοιχείο του Â, που να μηνανήκει στο S; Η απάντηση είναι όχι, ακριβώς επειδή το κενό δεν έχει καθόλουστοιχεία. Άρα, με βάση το δεύτερο ορισμό που δώσαμε παραπάνω, Â µ S.

Η ερώτηση αυτή ήταν \πονηρή" γιατί έπρεπε ουσιαστικά να χρησιμοποιήσετε τηνάρνηση του ορισμού. Αν δεν τα καταφέρατε λοιπόν, μην απογοητεύεστε.

Άσκηση 1.2 Θα χρησιμοποιήσουμε τους κανόνες του Πίνακα 1.1 με τον τρόποπου περιγράφεται στη συνέχεια:

Page 44: αυτόματα και τυπικές γλώσσες dimitriou

32 Βασικά Μαθηματικά Αντικείμενα

(A¡C)¡ (B ¡ C) = (A \C 0)¡ (B \C 0) Ορισμός διαφοράς= (A \C 0) \ (B \C 0)0 Ορισμός διαφοράς= (A \C 0) \ (B0 [ C) Νόμος De Morgan= ((A \ C 0) \B0) [ ((A \C 0) \ C) Επιμεριστικότητα= (A \ (C 0 \B0)) [ (A \ (C 0 \ C)) Προσεταιριστικότητα= (A \ (B0 \ C0)) [ (A \Â) Κενό σύνολο= (A \ (B0 \ C0)) [Â Κενό σύνολο= (A \ (B0 \ C0)) Κενό σύνολο= ((A \B0) \C 0) Προσεταιριστικότητα= ((A¡B)¡ C) Ορισμός διαφοράς

Άσκηση 1.3 Οι σωστές απαντήσεις φαίνονται στον Πίνακα 1.5.

Πίνακας 1.5. Απαντήσεις Άσκησης 1.3

Σωστό Λάθος 2  p 2 fÂg p

fa; bg µ fa; b; ffa; bggg pfa; bg 2 fa; b; ffa; bggg p

fa; b; fa; bgg ¡ fa; bg = fa; bg pfa; b;Âg ¡Â = fa; bg pfÂg ¡ fa; b;Âg = Â pfag µ 2fa;fagg pfag 2 2fa;fagg p

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

Το δεύτερο είναι σωστό, γιατί το σύνολο στα δεξιά αποτελείται από ένα στοιχείοπου είναι και αυτό σύνολο και συγκεκριμένα το Â.

Το τρίτο είναι επίσης σωστό, γιατί όλα τα στοιχεία του αριστερού συνόλουανήκουν στο δεξιό.

Το τέταρτο είναι λάθος. Θα ήταν σωστό, αν το σύνολο στα δεξιά ήταν τοfa; b; fa; bgg.

Λάθος είναι και το πέμπτο. Αν από το πρώτο σύνολο αφαιρέσουμε τα στοιχείατου δευτέρου, εκείνο που μένει είναι το ffa; bgg.

Επίσης το έκτο είναι λάθος. Από τον ορισμό της διαφοράς έχουμε fa; b;Âg ¡Â = fa; b;Âg \Â0 = fa; b;Âg \ U = fa; b;Âg.

Το έβδομο είναι σωστό. Το κενό σύνολο είναι στοιχείο του δεύτερου συνόλουκαι αφαιρείται από το πρώτο.

Page 45: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης 33

Το όγδοο είναι λάθος. Από τον ορισμό του δυναμοσύνολου έχουμε 2fa;fagg =fÂ; fag; ffagg; fa; faggg, το οποίο δεν έχει το fag ως υποσύνολο. Εναλλακτικά,θα μπορούσαμε να σκεφτούμε ότι το στοιχείο a θα έπρεπε να ανήκει στο 2fa;fagg.Αυτό όμως δε γίνεται γιατί εξ ορισμού ένα δυναμοσύνολο περιέχει μόνο σύνολα.

Τέλος, με βάση τα παραπάνω, το ένατο είναι σωστό.Αν μπορέσατε να απαντήσετε όλες τις ερωτήσεις σωστά, μπράβο σας, γιατί

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

Άσκηση 1.4 α) Ας δούμε πρώτα αν η συνάρτηση είναι 1-1. Αν δεν είναι, θαυπάρχει κάποιος αριθμός k καθώς και m1; n1, m2; n2 διαφορετικά μεταξύ τους,ώστε να ισχύει m1n1 = m2n2 = k. Τέτοιοι αριθμοί υπάρχουν πολλοί. Έστω γιαπαράδειγμα ο 10. Αυτός μπορεί να γραφεί σαν 2 ¤ 5 και σαν 1 ¤ 10. Άρα η fδεν είναι 1-1. Για να είναι επί, θα πρέπει όλοι οι αριθμοί k 2 N να μπορούν ναγραφούν σαν το γινόμενο δύο αριθμών. Αυτό είναι γεγονός. Κάθε k γράφεται σαν1 ¤ k οπότε η f είναι επί.β) Θα χρησιμοποιήσουμε την επέκταση του ορισμού της αντίστροφης όπως αναπτύχ-θηκε στο Παράδειγμα 1.2. f¡1(k) είναι το σύνολο των ζευγών (m;n), των οποίωντο γινόμενο είναι ίσο με k. Έτσι έχουμε f¡1(8) = f(1; 8); (2; 4); (4; 2); (8; 1)g καιf¡1(16) = f(1; 16); (2; 8); (4; 4); (8; 2); (16; 1)g.γ) Το f¡1(2k) αποτελείται από όλα τα ζεύγη (2i; 2k¡i), όπου το i παίρνει τιμέςμεταξύ 0 και k. Άρα jf¡1(2k)j = k + 1.Άσκηση 1.5 Για να είναι η R συμμετρική θα πρέπει για κάθε αυτοκίνητο aνα έχουμε aRa, το οποίο μεταφράζεται ότι το a είναι πιο γρήγορο και κοστίζειλιγότερο από τον εαυτό του. Κάτι τέτοιο όμως δεν είναι δυνατό. Άρα η R δενείναι ανακλαστική. Αν το αυτοκίνητο a είναι πιο γρήγορο και κοστίζει λιγότεροαπό ένα αυτοκίνητο b, δηλαδή aRb, δεν μπορεί να ισχύει το ίδιο και για το b.Άρα η σχέση δεν είναι ούτε συμμετρική. Από αυτό φαίνεται ότι μόνο ένα εκτων δύο ζευγών (a; b); (b; a) μπορεί να ανήκει στην R. Αυτό κάνει τη σχέσηαντισυμμετρική. Τέλος, η σχέση είναι και μεταβατική. Αν το a είναι πιο γρήγοροαπό το b και το b είναι πιο γρήγορο από το c, τότε το a είναι πιο γρήγορο από c.Αντίστοιχα, αν το a κοστίζει λιγότερο από το b και αυτό λιγότερο από το c, τότεκαι το a κοστίζει λιγότερο από το c. Άρα αν, aRb και bRc, τότε aRc.

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

Άσκηση 1.6 Από τον ορισμό της διαμέρισης κάθε στοιχείο a ανήκει σε κάποιοσύνολο Ai, άρα aRa και η σχέση είναι ανακλαστική. Είναι επίσης συμμετρική,γιατί, αν aRb, δηλαδή τα a και b βρίσκονται στο ίδιο σύνολο, τότε θα ισχύει και

Page 46: αυτόματα και τυπικές γλώσσες dimitriou

34 Βασικά Μαθηματικά Αντικείμενα

bRa. Τέλος, η R είναι και μεταβατική. Αν το a βρίσκεται στο ίδιο σύνολο με τοb και το b στο ίδιο σύνολο με το c, τότε προφανώς και τα a; c θα είναι μέλη τουίδιου συνόλου. Εφόσον η σχέση είναι ανακλαστική, συμμετρική και μεταβατικήσυμπεραίνουμε ότι είναι σχέση ισοδυναμίας.

Άσκηση 1.7 Συμπληρώνουμε τις στήλες από αριστερά προς τα δεξιά χρησιμοποιώ-ντας ανάλογα με την περίπτωση τους πίνακες αληθείας των ^;_ και !.

p q ¹p ¹q p ^ q ¹p ^ ¹q (p ^ q) _ (¹p ^ ¹q) ((p ^ q) _ (¹p ^ ¹q))! p

F F T T F T T FF T T F F F F TT F F T F F F TT T F F T F T T

Αν συμπληρώσατε σωστά τον πίνακα τότε έχετε πιάσει το νόημα. Αν όχι, μηνανησυχείτε. Απλά επικεντρώστε την προσοχή σας στους πίνακες αληθείας τωνβασικών ισχυρισμών. Ο p ^ q είναι αληθής όταν και οι δύο επιμέρους ισχυρισμοίείναι αληθείς, ο p _ q όταν κάποιος από τους δύο είναι αληθής, και ο p! q ότανο p είναι ψευδής ή ο q αληθής.

Συγκρίνοντας την τελική στήλη με τον πίνακα αληθείας των p _ q, βλέπουμεότι οι δεξιές στήλες και στους δύο πίνακες έχουν ακριβώς τις ίδιες τιμές. Από αυτόσυμπεραίνουμε ότι οι ισχυρισμοί ((p^q)_ (¹p^ ¹q))! p και p_q είναι ισοδύναμοι.

Άσκηση 1.8

1. Αν παρατηρήσετε τους ορισμούς των L¤ και L+, θα δείτε ότι η διαφοράτους L¤ ¡ L+ είναι η γλώσσα L0, η οποία είναι ίση με f²g. Αν λοιπόν η Lπεριέχει την κενή συμβολοσειρά, τότε θα την περιέχει και η L+ και οι δύογλώσσες L¤, L+ θα ταυτίζονται.

2. Έστω L1 = fag και L2 = fbg. Τότε η (L1 [ L2)¤ είναι ίδια με τ理 και περιέχει όλες τις δυνατές συμβολοσειρές, ενώ η L¤1 [ L¤2 περιέχεισυμβολοσειρές που αποτελούνται μόνο από a ή μόνο από b.

Άσκηση 1.9 Ας προσπαθήσουμε πρώτα να βρούμε την ιδιότητα που χαρακτηρίζειτις συμβολοσειρές της γλώσσας. Έστω § = fa; bg.

1. Ας είναι x μία συμβολοσειρά της L1. Εφόσον το μήκος της x είναι ζυγόςαριθμός, μπορούμε να φανταστούμε τη x σαν μία ακολουθία από δυάδεςσυμβόλων του §. Άρα μπορούμε να εκφράσουμε την L1 στη μορφή faa; ab;ba; bbg¤. Μία ισοδύναμη έκφραση είναι η L1 = (§§)¤.

2. Ας αρχίσουμε πρώτα με τη γλώσσα M1 της οποίας οι συμβολοσειρές περιέ-χουν ακριβώς δύο, μη συνεχόμενα a. Αυτό σημαίνει ότι ανάμεσα στα a

Page 47: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης 35

πρέπει να παρεμβάλλεται μία ακολουθία από b, η οποία δεν μπορεί να είναικενή. Άρα η M1 μπορεί να γραφεί σαν fagfbg+fag. Θα πρέπει όμως ναεπιτρέψουμε και την ύπαρξη b στην αρχή και το τέλος των συμβολοσειρών,οπότε τελικά έχουμε M1 = fbg¤fagfbg+fagfbg¤. Συνενώνοντας τη M1 μετη γλώσσα fagfbg¤ παίρνουμε τη M2 που αποτελείται από τρία a, εκ τωνοποίων τα δύο πρώτα δεν είναι συνεχόμενα. Άρα η L2 μπορεί να εκφραστείσαν M1 [M2. Μία πιο σύντομη έκφραση όμως είναι η M1(f²g[ fagfbg¤).

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

Page 48: αυτόματα και τυπικές γλώσσες dimitriou

36 Βασικά Μαθηματικά Αντικείμενα

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝ

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

σύνολο set σύνθεση composition

συμπλήρωμα complement

ένωση union σχέση relation

τομή intersection ανακλαστική reflexive

διαφορά difference συμμετρική symmetric

αντιμεταθετικός commutative μεταβατική transitive

προσεταιριστικός associative ισοδυναμία equivalence

επιμεριστικός distributive διαμέριση partition

δυναμοσύνολο powerset κλάση ισοδυναμίας equivalence class

Καρτεσιανό γινόμενο Cartesian product

διατεταγμένη n-άδα ordered n-tuple ισχυρισμός argument

αντίφαση contradiction

συνάρτηση function αντιθετοαντίστροφος contrapositive

πεδίο ορισμού domain

πεδίο τιμών range γλώσσα language

εικόνα image συμβολοσειρά string

ένα προς ένα one to one συνένωση concatenation

επί onto

αντιστοιχία bijection κατευθυνόμενος γράφος directed graph

αντίστροφη inverse κόμβος/κορυφή/πλευρά node/vertex/edge

Page 49: αυτόματα και τυπικές γλώσσες dimitriou

ΜΑΘΗΜΑΤΙΚΗ ΕΠΑΓΩΓΗ

Κ Ε Φ Α Λ Α Ι Ο

Σκοπός

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

Προσδοκώμενα Αποτελέσματα

Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:

² αναφέρετε τι είναι επαγωγική απόδειξη και από ποια μέρη αποτελείται,

² αναφέρετε πότε χρησιμοποιούμε αυτή την τεχνική απόδειξης,

² εξηγήσετε τη διαφορά μεταξύ επαγωγής και ισχυρής επαγωγής,

² αναφέρετε ποια η σχέση μεταξύ επαγωγικών αποδείξεων και αναδρομικώνορισμών.

Έννοιες-κλειδιά

² Επαγωγή ² Ισχυρή αρχή επαγωγής

² Βάση ² Αναδρομικοί ορισμοί

² Επαγωγική υπόθεση ² Παλινδρομική συμβολοσειρά² Επαγωγικό βήμα ² Αντίστροφη συμβολοσειράς

² Αρχή της περιστεροφωλιάς

37

Page 50: αυτόματα και τυπικές γλώσσες dimitriou

38 Μαθηματική Επαγωγή

Εισαγωγικές Παρατηρήσεις

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

2.1 Η Αρχή της Μαθηματικής Επαγωγής

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

Σε μια τυπική επαγωγική απόδειξη μας δίνεται ένας ισχυρισμός και στόχοςμας είναι να δείξουμε ότι ισχύει για όλες τις τιμές του N μεγαλύτερες από μίααρχική τιμή. Έστω για παράδειγμα η ακόλουθη έκφραση που αφορά το άθροισμαN συνεχόμενων αριθμών.2.1Δείξτε ότι για οποιοδήποτε N ¸ 1, ισχύει

1 + 2 + 3 + ¢ ¢ ¢+N = N(N + 1)=2:

Παράδειγμα 2.1

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

N = 1: 1 = 1(1 + 1)=2N = 2: 1+2 = 2(2 + 1)=2N = 3: 1+2+3 = 3(3 + 1)=2N = 4: 1+2+3+4 = 4(4 + 1)=2

Δεν είναι δύσκολο να δει κανείς ότι για να υπολογίσουμε το άθροισμα 1+2+3+4δε χρειάζεται να κάνουμε τις πράξεις από την αρχή. Αρκεί να αντικαταστήσουμετο 1+2+3 με την τιμή που ήδη υπολογίσαμε, την 3(3+1)=2, και να προσθέσουμεσε αυτό το 4. Έτσι για την περίπτωση N = 4 παίρνουμε

3(3 + 1)=2 + 4 = 4(3=2 + 1) = 4 ¢ 5=2 = 4(4 + 1)=2

που φυσικά είναι σωστό και μας βοηθά να συμπεράνουμε ότι το ίδιο θα συμβαίνεικαι με οποιαδήποτε τιμή του N . Αλλά αποτελεί αυτό απόδειξη; Διαισθητικά

Page 51: αυτόματα και τυπικές γλώσσες dimitriou

Η Αρχή της Μαθηματικής Επαγωγής 39

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

Η ιδέα είναι να χρησιμοποιήσουμε μια αυθαίρετη τιμή του N , που θα τη λέμεN = K. Ας υποθέσουμε λοιπόν ότι ελέγξαμε την έκφραση για N = K και θέλουμενα την αποδείξουμε και για N = K + 1. Έχουμε λοιπόν

1 + 2 + ¢ ¢ ¢+K + (K + 1) = (1 + 2 + ¢ ¢ ¢+K) + (K + 1)

= K(K + 1)=2 + (K + 1) (Αποτέλεσμα για N = K)

= (K + 1)(K=2 + 1)

= (K + 1)(K + 2)=2

= (K + 1)((K + 1) + 1)=2

Δείξαμε λοιπόν ότι η αλήθεια της έκφρασης για N = K + 1 προκύπτει από τηναλήθεια για N = K. Εφόσον το K είναι αυθαίρετο, μπορούμε πλέον να μιλάμεγια την αλήθεια της έκφρασης για οποιαδήποτε τιμή του N .

Ας δούμε τα βασικά σημεία της απόδειξης. Το πρώτο ήταν ότι δείξαμε τηνπρόταση για κάποιες αρχικές τιμές, στην προκειμένη περίπτωση για N = 1; 2; 3.Στη συνέχεια υποθέτοντας την αλήθεια για N = K, τη δείξαμε και για N =

K + 1. Αλλά οι περιπτώσεις N = 2 και N = 3 ουσιαστικά ήταν περιττές.Τις χρησιμοποιήσαμε μόνο για να αποκτήσουμε κάποια διαίσθηση σχετικά με τοπρόβλημα. Κάλλιστα θα μπορούσαμε να τις παραλείψουμε, αφού καλύπτονται απότη γενική περίπτωση του δεύτερου μέρους της απόδειξης. Τα συστατικά μέρη είναιλοιπόν δύο: Πρώτον, η απόδειξη της έκφρασης για N = 1 και δεύτερον, το βήμααπό το N = K στο N = K+1. Είναι φανερό ότι και τα δύο είναι απαραίτητα. Δεθα ήταν χρήσιμο να δείξουμε ότι η αλήθεια της έκφρασης για κάποια τιμή του Nσυνεπάγεται την αλήθεια για την επόμενη τιμή, αν δε μπορούσαμε να τη δείξουμεγια κάποια αρχική τιμή. Ούτε θα μπορούσαμε να βασιστούμε στην αλήθεια μόνογια κάποιες αρχικές τιμές του N , αφού αυτές θα μπορούσαν να ισχύουν από κάποιαπερίεργη σύμπτωση. Για παράδειγμα ο ισχυρισμός:

\ο N δε διαιρείται από τα 26 και 56"

είναι αληθής για τις τιμές N = 1; : : : ; 999999 αλλά ψευδής για N = 1000000 καιτα πολλαπλάσια αυτού. Το γεγονός ότι μία υπόθεση είναι αληθής για τις πρώτες1000000 περιπτώσεις δεν συνεπάγεται ότι θα είναι αληθής και για την 1000001περίπτωση.

Υπάρχουν τόσες πολλές προτάσεις που μπορούν ν, αποδειχθούν μ, αυτό τοντρόπο που θα είναι πιο εύκολο να τις καταλάβουμε αν αναγνωρίσουμε σ, αυτές

Page 52: αυτόματα και τυπικές γλώσσες dimitriou

40 Μαθηματική Επαγωγή

...NK+1K321

... ...

Σχήμα 2.1. \Αρχή λειτουργίας μίας επαγωγικής απόδειξης"

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

Αρχή της Μαθηματικής Επαγωγής

Έστω P (N) η ιδιότητα που θέλουμε να δείξουμε ότι είναι αληθής για όλες τιςτιμές του N , που είναι μεγαλύτερες από μία αρχική τιμή N0. Τα δύο τυπικάμέρη μίας επαγωγικής απόδειξης είναι η βάση και το επαγωγικό βήμα, τα οποίαπεριγράφονται παρακάτω:

Βάση: Αποδεικνύουμε τον ισχυρισμό για κάποια αρχική τιμή N0. Δείχνουμεδηλαδή την αλήθεια της ιδιότητας P (N0).

Επαγωγική Υπόθεση: Υποθέτουμε την αλήθεια του ισχυρισμού P (K) γιακάποιο K ¸ N0.Επαγωγικό Βήμα: Αποδεικνύουμε την αλήθεια του ισχυρισμού P (K + 1),χρησιμοποιώντας την επαγωγική υπόθεση.

Μια επαγωγική απόδειξη μπορεί να παρομοιαστεί με μια ακολουθία από ντόμινο,όπως φαίνεται και στο Σχήμα 2.1. Αν τα ντόμινο είναι σωστά τοποθετημένα καιρίξουμε το πρώτο, διαισθητικά καταλαβαίνουμε ότι, ακόμα και αν η ακολουθία είναιαπείρου μήκους, τότε όλα τα ντόμινο θα πέσουν. Αυτό το εξασφαλίζουμε με δύοτρόπους: α) με το να ρίξουμε το πρώτο ντόμινο και β) με το να βεβαιωθούμε ότι γιαοποιοδήποτε K, το ντόμινο νούμερο K θα ρίξει το ντόμινο νούμερο K + 1. Αυτήακριβώς είναι η αρχή λειτουργίας της επαγωγικής μεθόδου. Πρώτα βεβαιωνόμαστεότι η ιδιότητα P ισχύει για κάποια αρχική τιμή και στη συνέχεια ότι η αλήθεια τηςπρότασης P (K) συνεπάγεται την αλήθεια της πρότασης P (K + 1).

Σ, αυτή ακριβώς την απλότητα της μεθόδου κρύβεται και η δύναμή της. Υπάρ-χουν τόσοι πολλοί ισχυρισμοί που μπορούν ν, αποδειχθούν μ, αυτό τον τρόπο που δε

Page 53: αυτόματα και τυπικές γλώσσες dimitriou

Η Αρχή της Μαθηματικής Επαγωγής 41

χρειάζονται να αφορούν μόνο μαθηματικές εκφράσεις. Το παρακάτω παράδειγμαείναι αρκετά διαφωτιστικό.2.2Έστω δύο μη κενά σύνολα A;B τέτοια ώστε jAj > jBj. Τότε δε μπορεί να υπάρχειένα προς ένα συνάρτηση από το A στο B. Μ, άλλα λόγια, αν προσπαθήσουμε ναταιριάξουμε τα στοιχεία του A με αυτά του B αναγκαστικά δύο στοιχεία από το A θααπεικονιστούν στο ίδιο στοιχείο. Η αρχή αυτή λέγεται Αρχή της Περιστεροφωλιάς καιχρησιμοποιείται συχνά στην πράξη όταν θέλουμε να καταλήξουμε σε κάποια αντίφαση:αν προσπαθήσουμε να βάλουμε n \περιστέρια" σε m < n \φωλιές", κάποια στιγμή θααναγκαστούμε να βάλουμε περισσότερα από ένα σε μια φωλιά.

Παράδειγμα 2.2

Απόδειξη: Θα εφαρμόσουμε την επαγωγική απόδειξη πάνω στο μέγεθοςτου B που θα το συμβολίζουμε με N . Η ιδιότητα P (N) που θέλουμε ναδείξουμε είναι:

\Αν N είναι το μέγεθος ενός συνόλου B και A είναι ένα άλλοσύνολο τέτοιο ώστε jAj > jBj, τότε δεν μπορεί να υπάρχει έναπρος ένα συνάρτηση από το A στο B."

Βάση: Η αρχική τιμή εδώ είναι N = 1. Έστω λοιπόν B ένα σύνολο πουπεριέχει μόνο ένα στοιχείο και jAj > 1. Αν υπάρχει συνάρτηση f : A! B,τότε θα υπάρχουν τουλάχιστον δύο στοιχεία του A που απεικονίζονται στομοναδικό στοιχείο του B. Άρα η f δε μπορεί να είναι ένα προς ένα.

Επαγωγική Υπόθεση: Υποθέτουμε την αλήθεια του ισχυρισμού P (K) γιακάποιο K ¸ 1. Έστω δηλαδή ότι για οποιαδήποτε συνάρτηση f : A ! B,με jBj = K και jAj > jBj, η f δεν είναι ένα προς ένα.

Επαγωγικό Βήμα: Έστω jBj = K + 1, jAj > jBj και f : A ! B μίαοποιαδήποτε συνάρτηση. Ας πάρουμε ένα οποιοδήποτε στοιχείο b 2 B και αςαναρωτηθούμε ποιο μπορεί να είναι το αντίστροφό του f¡1(b). Είναι φανερόότι, αν jf¡1(b)j ¸ 2 (όπου χρησιμοποιούμε την επέκταση του ορισμού τηςαντίστροφης μίας συνάρτησης σύμφωνα με το Παράδειγμα 1.2), τότε η f δενμπορεί να είναι ένα προς ένα και η απόδειξη τελειώνει εδώ. Ας υποθέσουμελοιπόν ότι jf¡1(b)j ∙ 1. Μπορούμε τώρα να αφαιρέσουμε τα f¡1(b) και bαπό τα A και B αντίστοιχα και να θεωρήσουμε τη συνάρτηση g : A0 ! B0,A0 = A¡f¡1(b), B0 = B¡fbg, που ταυτίζεται με την f σε όλα τα υπόλοιπαστοιχεία. Μπορεί η g να είναι ένα προς ένα; Η απάντηση είναι όχι, γιατίjB0j = K, jA0j > jB0j, άρα ισχύει η επαγωγική υπόθεση. Επομένως για δύοδιαφορετικά a1; a2 2 A0 θα ισχύει g(a1) = g(a2). Αλλά τότε f(a1) = f(a2)και η f δεν είναι ένα προς ένα.

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

Page 54: αυτόματα και τυπικές γλώσσες dimitriou

42 Μαθηματική Επαγωγή

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

(N ¡ 1)(N + 1) = N2 ¡ 1

Σίγουρα μπορούμε να τον αποδείξουμε χρησιμοποιώντας μαθηματική επαγωγή,αλλά όταν θα φτάναμε στο επαγωγικό βήμα θα βλέπαμε ότι η επαγωγική υπόθεσηήταν ουσιαστικά άχρηστη. Η αλήθεια της έκφρασης για το P (K+1) θα μπορούσενα αποδειχθεί απευθείας με τη χρήση άλγεβρας στο αριστερό μέρος της ισότητας.2.1Δείξτε, για κάθε θετικό ακέραιο n ¸ 2, ότι

1p1+ 1p

2+ ¢ ¢ ¢+ 1p

n>pn

ΆσκησηΑυτοαξιολόγησης2.1

2.2Τρία αδέρφια πρόκειται να μοιράσουν μεταξύ τους μία συλλογή από n3 + 2n, n ¸ 1,γραμματόσημα. Δείξτε ότι δε χρειάζεται να τσακωθούν για τη μοιρασιά.

ΆσκησηΑυτοαξιολόγησης2.2

2.2 Η Ισχυρή Αρχή της Μαθηματικής Επαγωγής

Υπάρχουν περιπτώσεις όπου, αν και η επαγωγική μέθοδος είναι η καταλληλότερημέθοδος για την απόδειξη, ωστόσο με τον τρόπο που την ορίσαμε δεν επαρκεί. Αςδούμε το επόμενο παράδειγμα:2.3Έστω P (N) ο ακόλουθος ισχυρισμός:

\Οποιοσδήποτε αριθμός N ¸ 8, μπορεί να γραφεί σαν άθροισμα από τριάριακαι πεντάρια."

Ας δοκιμάσουμε να αποδείξουμε τον ισχυρισμό επαγωγικά. Είναι φανερό ότι το 8 μπορείνα γραφεί σαν 5 + 3, άρα η βάση της επαγωγής είναι αληθής. Έστω λοιπόν, χάρητης επαγωγικής υπόθεσης, ότι οποιοσδήποτε αριθμός K ¸ 8 μπορεί να εκφραστεί μεπαρόμοιο τρόπο. Πώς μπορούμε να δείξουμε το ίδιο και για το K + 1; Η αλήθεια τηςπρότασης P (K) αρκεί για να δείξουμε ότι το K +3 ή το K +5 μπορεί να εκφραστεί μετο ζητούμενο τρόπο, αλλά όχι και το K + 1. Εκείνο που χρειαζόμαστε είναι η αλήθειατων προτάσεων P (K ¡ 2) ή P (K ¡ 4) ώστε προσθέτοντας σ, αυτά 3 ή 5 αντίστοιχα, ναπροκύψει η αλήθεια του P (K + 1).

Παράδειγμα 2.3

Βλέπουμε λοιπόν ότι η κλασική επαγωγή δεν είναι επαρκής. Αυτό που έχουμεανάγκη είναι μια ισχυρότερη επαγωγική υπόθεση: Για την απόδειξη του P (K+1),χρειαζόμαστε την αλήθεια όχι μόνο του P (K), αλλά όλων των P (N0), P (N0 +

Page 55: αυτόματα και τυπικές γλώσσες dimitriou

Η Ισχυρή Αρχή της Μαθηματικής Επαγωγής 43

1),. . . , P (K). Αυτή η νέα αρχή ονομάζεται Ισχυρή Αρχή της Μαθηματικής Επαγωγήςκαι περιγράφεται παρακάτω.

Ισχυρή Αρχή της Μαθηματικής Επαγωγής

Έστω P (N) μια ιδιότητα που θέλουμε να δείξουμε ότι είναι αληθής για όλεςτις τιμές του N μεγαλύτερες από μια αρχική τιμή N0. Τα συστατικά μέρηείναι τα εξής:

Βάση: Αποδεικνύουμε τον ισχυρισμό για κάποια αρχική τιμή N0. Δείχνουμεδηλαδή την αλήθεια της ιδιότητας P (N0).

Επαγωγική Υπόθεση: Για οποιοδήποτε K ¸ N0, υποθέτουμε την αλήθειατου ισχυρισμού P (N) για όλα τα N που είναι μικρότερα από K, δηλαδήικανοποιούν τη σχέση N0 ∙ N ∙ K.

Επαγωγικό Βήμα: Αποδεικνύουμε την αλήθεια του ισχυρισμού P (K + 1),χρησιμοποιώντας την επαγωγική υπόθεση.

Ας εφαρμόσουμε τα παραπάνω στο Παράδειγμα 2.3.2.3(Επαγωγική Απόδειξη) Ο ισχυρισμός P (N) προς απόδειξη είναι:

\Οποιοσδήποτε αριθμόςN ¸ 8, μπορεί να γραφεί σαν άθροισμα από τριάριακαι πεντάρια."

Βάση: Η αρχική τιμή είναι N = 8. Είναι φανερό ότι το οκτώ μπορεί να γραφεί σαν5 + 3, άρα η βάση είναι αληθής.

Επαγωγική Υπόθεση: Υποθέτουμε ότι K ¸ 8 και ο P (N) είναι αληθής για οποιοδήποτε8 ∙ N ∙ K.

Επαγωγικό Βήμα: Για να αποδείξουμε τον P (K + 1) αρκεί να χρησιμοποιήσουμε τηναλήθεια του P (K ¡ 2). Αν ο αριθμός K ¡ 2 μπορεί να εκφραστεί σαν άθροισμα απότριάρια και πεντάρια, το ίδιο θα συμβαίνει και με τον K+1, αφούK+1 = (K¡2)+3. Ηαλήθεια του P (K¡2) προκύπτει από την επαγωγική υπόθεση. Με μία μικρή λεπτομέρειαόμως: η επαγωγική υπόθεση ισχύει για όλα τα N ¸ 8, και K ¡ 2 ¸ 8 μόνο αν K ¸ 10.Εφόσον θέλουμε η πρόταση P (N) να είναι αληθής για κάθεK ¸ 8, θα πρέπει να δείξουμετις περιπτώσεις K = 8 και K = 9 ξεχωριστά.K = 8: Σ, αυτή την περίπτωση K + 1 = 9 το οποίο ισούται με 3 + 3 + 3.K = 9: Σ, αυτή την περίπτωση K + 1 = 10 το οποίο ισούται με 5 + 5.

Παράδειγμα 2.3

Ο λόγος που χρειάζεται αυτή η ανάλυση είναι επειδή το επαγωγικό βήμα πρέπεινα δουλεύει για κάθε K ¸ N0. Αν προσπαθούσαμε να δείξουμε την αλήθεια τηςέκφρασης για K + 1 = 9, θα έπρεπε να βασιστούμε στην αλήθεια της έκφρασης

Page 56: αυτόματα και τυπικές γλώσσες dimitriou

44 Μαθηματική Επαγωγή

για K ¡ 2 = 6 που όμως δεν καλύπτεται από την επαγωγική υπόθεση. Το ίδιοσυμβαίνει και με την περίπτωση K + 1 = 10. Άρα πρέπει να εξετάσουμε τιςπεριπτώσεις αυτές ξεχωριστά. Μη τήρηση των παραπάνω είναι λάθος και έχει σανσυνέπεια την \απόδειξη" μερικών παράδοξων καταστάσεων, όπως φαίνεται καιαπό την Άσκηση 2.6.

Ας δούμε άλλο ένα παράδειγμα εφαρμογής της ισχυρής αρχής της μαθηματικήςεπαγωγής.2.4Έστω ότι προσπαθούμε να ταξινομήσουμε N αριθμούς χρησιμοποιώντας την ακόλουθηδιαδικασία.

Sort (List[1..N ]) // List[1..N ] είναι η είσοδοςf

if (N ∙ 1)return (List);

elsereturn (Merge (Sort(List[1..bN=2c]), Sort(List[bN=2c+1..N ])));

g

Στο παραπάνω πρόγραμμα, List[1..N ] είναι μία ακολουθία N ακεραίων, ενώ Merge(List1, List2) είναι μία διαδικασία που παίρνει δύο ταξινομημένες λίστες και, αφού τιςσυγχωνεύσει, επιστρέφει το σωστό αποτέλεσμα. Για παράδειγμα, Merge(f1; 4; 7; 10g,f2; 5; 8g) = f1; 2; 4; 5; 7; 8; 10g.Η Sort δουλεύει ως εξής: Πρώτα ελέγχει, αν το μήκος της λίστας είναι ένα. Αν ναι, τότεεπιστρέφει τη λίστα που είναι ήδη ταξινομημένη. Αν όχι, ταξινομεί τα επιμέρους κομμάτιαList[1::bN=2c ] και List[bN=2c+1::N] (με bN=2c συμβολίζουμε το μεγαλύτερο ακέραιομικρότερο από N=2) και, αφού τα συγχωνεύσει με τη Merge, επιστρέφει τη τελική λίστα.Θα θέλαμε να αποδείξουμε ότι πραγματικά η Sort παράγει ταξινομημένες ακολουθίεςαριθμών μήκους N ¸ 1. Θα χρησιμοποιήσουμε για το λόγο αυτό επαγωγή στο μήκοςτης εισόδου N . Στην ανάλυση που ακολουθεί υποθέτουμε ότι η Merge λειτουργεί σωστά,δηλαδή η επαγωγή θα είναι πάνω στην ορθότητα της Sort.

Βάση: Είναι φανερό ότι για N = 1, η Sort επιστρέφει τη λίστα (μήκους ένα)ταξινομημένη.

Επαγωγική Υπόθεση: Έστω ότι K ¸ 1 και ότι για οποιοδήποτε N , 1 ∙ N ∙ K, η Sortταξινομεί σωστά μία οποιαδήποτε ακολουθία από N αριθμούς.

Επαγωγικό Βήμα: Θέλουμε να δείξουμε το ίδιο και για μία ακολουθία K + 1 αριθμών.ΑφούK+1 ¸ 2, η Sort εκτελεί τις εντολές Sort(List[1..b(K+1)=2c]) και Sort(List[b(K+1)=2c+1..(K+1)]). Η πρώτη λίστα έχει μήκος b(K+1)=2c, ενώ η δεύτερη K+1¡b(K+1)=2c. Εφόσον και οι δύο λίστες πληρούν τις προϋποθέσεις της επαγωγικής υπόθεσης,και οι δύο επιστρέφονται ταξινομημένες. Οι λίστες αυτές δίνονται ως είσοδος στη Merge,η οποία μας επιστρέφει το σωστό αποτέλεσμα.

Παράδειγμα 2.4

Page 57: αυτόματα και τυπικές γλώσσες dimitriou

Αναδρομικοί Ορισμοί 45

Πότε χρησιμοποιούμε όμως την ισχυρή αρχή της επαγωγής; Η απάντηση είναιη εξής: Όταν η πρώτη μέθοδος δεν επαρκεί, δηλαδή όταν για να αποδείξουμετην αλήθεια του ισχυρισμού P (K +1) χρειάζεται να υποθέσουμε την αλήθεια τουισχυρισμού όχι μόνο για N = K αλλά και για μικρότερες τιμές του N . Σ, αυτήτην περίπτωση χρησιμοποιούμε τη δεύτερη μέθοδο.

Μία τελευταία παρατήρηση σχετικά με τις δύο μεθόδους είναι ότι παρά τηναληθοφάνεια που τις διακρίνει δεν μπορούν να αποδειχτούν από άλλες βασικέςιδιότητες των αριθμών. Έτσι η αρχή της επαγωγής χρειάζεται να περιληφθεί ωςαξίωμα στα αξιώματα που διακρίνουν τους φυσικούς αριθμούς.2.3Ένας αριθμός μεγαλύτερος του 1 λέγεται πρώτος, αν δε διαιρείται από άλλο αριθμό εκτόςαπό τον εαυτό του και το 1. Δείξτε, ότι κάθε αριθμός N ¸ 2 είναι είτε πρώτος είτε μπορείνα γραφεί ως γινόμενο από πρώτους αριθμούς.

ΆσκησηΑυτοαξιολόγησης

2.3

2.3 Αναδρομικοί Ορισμοί

Θα κλείσουμε αυτό το κεφάλαιο αναφέροντας ένα ακόμη παράδειγμα χρήσης τηςεπαγωγής, αυτό του ορισμού διαφόρων εννοιών. Είδαμε ήδη επαγωγικές αποδείξειςκαι η κεντρική ιδέα είναι η ίδια. Υπάρχει η βάση του ορισμού που ισχύει για κάποιααρχική τιμή N0. Έπειτα με βάση τον ορισμό για N = K, ορίζουμε τα αντικείμεναγια N = K + 1.2.1Μια συμβολοσειρά ονομάζεται παλινδρομική, αν διαβάζεται το ίδιο από αριστερά προςτα δεξιά και από δεξιά προς τα αριστερά. Για παράδειγμα, η συμβολοσειρά:

νιψονανομηματαμημονανοψιν

είναι παλινδρομική. Ένας τυπικός ορισμός μπορεί να δοθεί χρησιμοποιώντας επαγωγή στομήκος της συμβολοσειράς. Έστω λοιπόν § ένα αλφάβητο.Οι συμβολοσειρές του §¤ πουείναι παλινδρομικές ορίζονται από τα παρακάτω:

1. Η κενή συμβολοσειρά ² είναι παλινδρομική.

2. Αν a 2 § οποιοδήποτε στοιχείο του αλφαβήτου, τότε η συμβολοσειρά a είναιπαλινδρομική.

3. Αν η συμβολοσειρά x 2 §¤ είναι παλινδρομική και a 2 §, τότε και η axa είναιπαλινδρομική.

4. Καμιά άλλη συμβολοσειρά δεν είναι παλινδρομική, εκτός αν προκύπτει από ταπαραπάνω.

Ορισμός 2.1

Page 58: αυτόματα και τυπικές γλώσσες dimitriou

46 Μαθηματική Επαγωγή

Είναι φανερό ότι οποιαδήποτε συμβολοσειρά κατασκευάζεται με βάση αυτούςτους κανόνες είναι σίγουρα παλινδρομική. Το ενδιαφέρον ερώτημα είναι όμωςτο αντίστροφο. Υπάρχουν συμβολοσειρές που ξεφεύγουν απ, αυτό τον ορισμό,που είναι μεν παλινδρομικές, αλλά έχουν προκύψει με κάποιο άλλο τρόπο; Αςυποθέσουμε ότι w είναι μια τέτοια συμβολοσειρά. Θα δείξουμε χρησιμοποιώνταςεπαγωγή στο μήκος N = jwj ότι και η w προκύπτει από τον ορισμό.

Βάση: Είναι φανερό ότι, αν N = 0, τότε w = ², και η w μπορεί να προκύψει απότον κανόνα 1.

Επαγωγική Υπόθεση: Έστω ότι K ¸ 0 και ότι οποιαδήποτε παλινδρομική συμβο-λοσειρά x μήκους N , 0 ∙ N ∙ K έχει προκύψει με τη χρήση των παραπάνωκανόνων.

Επαγωγικό Βήμα: Θα δείξουμε το ίδιο και για μία παλινδρομική συμβολοσειράw μήκους K + 1. Εξετάζουμε δύο περιπτώσεις: Αν K = 0, K + 1 = 1, άρα η wαποτελείται από ένα σύμβολο του αλφάβητου. Σ, αυτή την περίπτωση προκύπτειμε εφαρμογή του κανόνα 2. Αν K ¸ 1, K +1 ¸ 2, άρα η w μπορεί να γραφεί ωςaxa, για κάποιο σύμβολο a 2 § και κάποια συμβολοσειρά x 2 §¤. Ποιες είναιοι ιδιότητες της x; Η x έχει μήκος K ¡ 1 ¸ 0 και είναι παλινδρομική, γιατί ηw είναι. Άρα πληρούνται οι προϋποθέσεις της επαγωγικής υπόθεσης επομένως ηx έχει προκύψει με τη χρήση των παραπάνω κανόνων. Αλλά τότε και η w έχειπροκύψει με τη χρήση του κανόνα 3.

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

Θα κλείσουμε αυτό το κεφάλαιο μ, ένα ακόμη παράδειγμα όπου φαίνεται ότι ηεπιλογή του αριθμού της επαγωγής απαιτεί μερικές φορές κάποια εφευρετικότητα.2.2Η αντίστροφη μιας συμβολοσειράς w (θα τη συμβολίζουμε με wR) είναι η συμβολοσειράπου προκύπτει, αν γράψουμε τα σύμβολα της w με την αντίστροφη φορά, από δεξιά προςτα αριστερά. Έτσι, αντιστροφηR = ηφορτσιτνα. Ο αναδρομικός ορισμός που ακολουθείθα μας βοηθήσει να αποδείξουμε διάφορες ιδιότητες σχετικά με την αντίστροφη.

1. Αν w είναι η κενή συμβολοσειρά, τότε wR = w = ².

2. Αν w = xa, όπου a 2 § και x 2 §¤, τότε wR = (xa)R = axR.

Ορισμός 2.2

Page 59: αυτόματα και τυπικές γλώσσες dimitriou

Αναδρομικοί Ορισμοί 47

Θα δείξουμε τώρα ότι για οποιεσδήποτε συμβολοσειρές x και y, (xy)R =

yRxR. Για παράδειγμα (ασπρομαυρο)R = μαυροRασπροR = ορυαμορπσα. Θαχρησιμοποιήσουμε επαγωγή στο μήκος του y. Έστω P (N) ο ακόλουθος ισχυρισμός:

\Αν x; y 2 §¤ και jyj = N , τότε (xy)R = yRxR."

Θα δείξουμε ότι ο P (N) είναι αληθής για κάθε N ¸ 0.Βάση: Είναι φανερό ότι, αν N = 0, τότε y = ², οπότε

(xy)R = (x²)R

= xR (γιατί x² = x)= ²xR (γιατί xR = ²xR)= ²RxR (κανόνας 1 ορισμού, ² = ²R)= yRxR

Επαγωγική Υπόθεση: Έστω ότι K ¸ 0 και για οποιεσδήποτε x; y 2 §¤, μεjyj = K, ισχύει (xy)R = yRxR.

Επαγωγικό Βήμα: Θα δείξουμε ότι, αν x; y 2 §¤ και jyj = K + 1, τότε (xy)R =yRxR. Εφόσον jyj = K + 1 ¸ 1 μπορούμε να εκφράσουμε την y σαν za, όπουa 2 § και jzj = K. Άρα,

(xy)R = (x(za))R

= ((xz)a)R (ιδιότητα συνένωσης)= a(xz)R (κανόνας 2 ορισμού)= azRxR (εφαρμογή επαγωγικής υπόθεσης στο (xz)R)= (azR)xR

= (za)RxR (κανόνας 2 ορισμού)= yRxR

2.4Έστω L µ f0; 1g¤ η γλώσσα που ορίζεται όπως παρακάτω:

1. Οι συμβολοσειρές 0 και 10 ανήκουν στην L.

2. Αν x 2 L, τότε και x0 2 L.

3. Αν x 2 L, τότε και x10 2 L4. Τίποτε άλλο δεν ανήκει στην L, εκτός αν προκύπτει από τα παραπάνω.

Δείξτε ότι L = fx 2 f0; 1g¤ j η x τελειώνει σε 0 και δεν περιέχει τη συμβολοσειρά 11g.

ΆσκησηΑυτοαξιολόγησης

2.4

ΑΣΚΗΣΕΙΣ

2.1 Έστω L = faaa; aaaaaaag. Δείξτε ότι faN j N ¸ 12g µ L¤.

Page 60: αυτόματα και τυπικές γλώσσες dimitriou

48 Μαθηματική Επαγωγή

2.2 Αν T είναι ένα δέντρο με n κόμβους, τότε αυτό περιέχει n¡ 1 πλευρές.

2.3 Ένα δυαδικό δέντρο λέγεται πλήρες, αν κάθε φύλλο απέχει την ίδια απόστασηαπό τη ρίζα. Δείξτε ότι ένα πλήρες δυαδικό δέντρο ύψους h αποτελείται από2h+1 ¡ 1 κόμβους.

2.4 Δείξτε ότι το πλήθος των στοιχείων του δυναμοσυνόλου του A είναι ίσο με2jAj, όπου με jAj συμβολίζουμε το πλήθος των στοιχείων του A.

2.5 Χρησιμοποιήστε επαγωγή για να δείξετε ότι για κάθε N ¸ 0, ισχύεια) 12 + 22 + ¢ ¢ ¢+N2 = N(N + 1)(2N + 1)=6,

β) 1 ¢2 ¢3+2 ¢3 ¢4+ ¢ ¢ ¢+N(N +1)(N +2) = N(N +1)(N +2)(N +3)=4,γ) x0 + x1 + ¢ ¢ ¢+ xN = (xN+1 ¡ 1)=(x¡ 1), για κάθε αριθμό x6= 1.

2.6 Είναι φανερό ότι η ακόλουθη \απόδειξη" ότι όλα τα στοιχεία ενός συνόλουείναι ίδια μεταξύ τους είναι λανθασμένη. Μπορείτε να βρείτε το λάθος;

Βάση: Για σύνολα με ένα στοιχείο ο ισχυρισμός είναι αληθής.

Επαγωγική Υπόθεση: Έστω ότι ισχύει ο ισχυρισμός για όλα τα σύνολα μεK στοιχεία.

Επαγωγικό Βήμα: Θεωρήστε ένα σύνολο με K + 1 στοιχεία. Αφαιρέστεένα οποιοδήποτε στοιχείο a. Τα υπόλοιπα στοιχεία σχηματίζουν ένα σύνολομεγέθους K, άρα, από την επαγωγική υπόθεση, είναι όμοια μεταξύ τους.Βάλτε πίσω το a και βγάλτε ένα άλλο στοιχείο b. Ξανά το εναπομένωνσύνολο έχει μέγεθος K, άρα πάλι τα στοιχεία είναι όμοια μεταξύ τους. Άρακάθε φορά όλα τα στοιχεία είναι ίδια με τα a και b, επομένως είναι ίδιαμεταξύ τους.

2.7 Δώστε ένα αναδρομικό ορισμό του μήκους jxj, μιας συμβολοσειράς x. Στησυνέχεια αποδείξτε για δύο συμβολοσειρές x; y ότι

α) jxyj = jxj+ jyj,β) jxkj = kjxj, για κάθε k ¸ 0.

2.8 Δείξτε, για κάθε συμβολοσειρά x ότι

α) (xR)R = x,

β) (xk)R = (xR)k.

Page 61: αυτόματα και τυπικές γλώσσες dimitriou

Σύνοψη 49

2.9 Θεωρήστε ξανά το Παράδειγμα 2.4. Ο χρόνος που απαιτείται για να ταξινο-μήσει η Sort N αριθμούς ισούται με το χρόνο δύο κλήσεων της Sort σεακολουθίες N=2 στοιχείων, συν το χρόνο της Merge για να συγχωνεύσει τιςδύο λίστες. Αν T (N) είναι ο χρόνος εκτέλεσης της Sort για N αριθμούς,τότε τα παραπάνω μπορούν να εκφραστούν στη μορφή

T (N) = 2 ¢ T (N=2) + c ¢N

όπου c ¢N είναι ο χρόνος εκτέλεσης (γιατί;) της Merge, για κάποια σταθεράc. Δείξτε ότι, αν το N είναι δύναμη του δύο, έστω N = 2M , τότε

T (N) ∙ N ¢ (cM + 1) = N ¢ (c log2N + 1)

2.10 Μας δίνονται n δίσκοι τοποθετημένοι ο ένας πάνω στον άλλον, σ, έναν απότρεις στύλους A;B;C, κατά φθίνουσα σειρά μεγέθους (ο μεγαλύτερος είναικάτω και ο μικρότερος πάνω). Σκοπός είναι να μεταφέρουμε όλους τουςδίσκους από το στύλο A στο στύλο B χρησιμοποιώντας το C σαν ενδιάμεσο,κινώντας ένα δίσκο κάθε φορά και ποτέ τοποθετώντας ένα μεγαλύτερο δίσκοπάνω σε ένα μικρότερο. Αν T (n) είναι ο αριθμός των κινήσεων που απαιτού-νται, βρείτε ένα αναδρομικό ορισμό για το T (n) και προσπαθήστε να τουπολογίσετε δοκιμάζοντας μερικές τιμές του n και αποδεικνύοντάς το επαγω-γικά.Υπόδειξη: Σκεφτείτε πώς θα μετακινήσετε πρώτα το μεγαλύτερο δίσκο.

2.11 Βρείτε έναν αναδρομικό τύπο για το μέγιστο αριθμό Ln περιοχών που δημιουρ-γούνται, αν τραβήξουμε n γραμμές στο επίπεδο. Για παράδειγμα, μια γραμμήχωρίζει το επίπεδο σε δύο μέρη, άρα L1 = 2, δύο γραμμές το διαιρούν σετέσσερα μέρη, άρα L2 = 4, κοκ.

2.12 Θεωρήστε τον ακόλουθο αναδρομικό ορισμό των αριθμών Fibonacci:

F0 = 0

F1 = 1

Fn = Fn¡1 + Fn¡2; n > 1

Δείξτε ότι Fn = 1p5(Án ¡ Á̂n), όπου Á = (1 +p5)=2 και Á̂ = (1¡p5)=2.

Σύνοψη

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

Page 62: αυτόματα και τυπικές γλώσσες dimitriou

50 Μαθηματική Επαγωγή

δείξουμε ότι ένας ισχυρισμός P ισχύει για όλες τις τιμές του N μεγαλύτερες από μιααρχική τιμή N0. Τα τυπικά μέρη μιας επαγωγικής απόδειξης είναι η βάση στην οποίαδείχνουμε την αλήθεια της έκφρασης P (N0), η επαγωγική υπόθεση όπου υποθέτουμετην αλήθεια του ισχυρισμού P (K) για κάποιο K ¸ N0 και το επαγωγικό βήμαόπου αποδεικνύουμε την αλήθεια του ισχυρισμού P (K + 1), χρησιμοποιώντας τηνεπαγωγική υπόθεση.

Υπάρχουν όμως περιπτώσεις στις οποίες για την απόδειξη του P (K+1), χρειαζό-μαστε την αλήθεια όχι μόνο του P (K) αλλά και μερικών προηγούμενων τιμών τουN . Τότε χρησιμοποιούμε την Ισχυρή Αρχή της Μαθηματικής Επαγωγής.

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

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης

Άσκηση 2.1

Βάση: Πρέπει να δείξουμε ότι 1p1+ 1p

2>p2 ή 1 +

p22 >

p2 ή

1 >p22 ή 2 >

p2, το οποίο είναι αληθές.

Επαγωγική Υπόθεση: Έστω ότι η πρόταση ισχύει για n = k, δηλαδήότι 1p

1+ 1p

2+ ¢ ¢ ¢+ 1p

k>pk.

Επαγωγικό Βήμα: Θα πρέπει να δείξουμε ότι

1p1+

1p2+ ¢ ¢ ¢+ 1p

k+

1pk + 1

>pk + 1

Ομαδοποιώντας τους πρώτους k όρους του αθροίσματος και χρησιμο-ποιώντας την επαγωγική υπόθεση, το αριστερό μέλος είναι μεγαλύτεροαπό

pk + 1p

k+1. Αν δείξουμε τώρα ότι

pk + 1p

k+1>pk + 1,

θα έχουμε το ζητούμενο. Πολλαπλασιάζοντας και τα δύο μέλη τηςανισότητας με

pk + 1 έχουμε ισοδύναμα

pkpk + 1 + 1 > k + 1 ήp

kpk + 1 > k ή k(k + 1) > k2, υψώνοντας στο τετράγωνο τις δύο

πλευρές. Η τελευταία όμως ανισότητα δίνει k + 1 > k, το οποίο είναιαληθές.

Άσκηση 2.2 Αρκεί να δειχτεί ότι για κάθε n ¸ 1, το n3 + 2n διαιρείται με το 3.

Βάση: Για n = 1 έχουμε 13+2 = 3, το οποίο προφανώς διαιρείται μετο 3.

Page 63: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης 51

Επαγωγική Υπόθεση: Έστω ότι για n = k, το k3 + 2k διαιρείται μετο 3. Άρα θα υπάρχει αριθμός m ώστε k3 + 2k = 3m.

Επαγωγικό Βήμα: Θα δείξουμε ότι το ίδιο συμβαίνει και με το (k +1)3 + 2(k + 1). Έχουμε

(k + 1)3 + 2(k + 1) = (k + 1)2(k + 1) + 2(k + 1)

= (k2 + 2k + 1)(k + 1) + 2(k + 1)

= k3 + 3k2 + 3k + 1 + 2(k + 1)

= (k3 + 2k) + (3k2 + 3k + 3)

= 3m+ 3(k2 + k + 1) (Από την υπόθεση)

= 3(m+ k2 + k + 1)

το οποίο είναι πολλαπλάσιο του 3.

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

Άσκηση 2.3 Θα δείξουμε, χρησιμοποιώντας ισχυρή επαγωγή, ότι κάθε αριθμόςN ¸ 2 είναι είτε πρώτος είτε μπορεί να γραφεί σαν γινόμενο από πρώτους αριθμούς.

Βάση: Ο 2 είναι πρώτος, άρα ο ισχυρισμός είναι αληθής για N = 2.

Επαγωγική Υπόθεση: Έστω ότι για K ¸ 2 και οποιοδήποτε N με2 ∙ N ∙ K, ο N είναι είτε πρώτος είτε μπορεί να γραφεί ως γινόμενοαπό πρώτους αριθμούς.

Επαγωγικό Βήμα: Θα δείξουμε το ίδιο και για τον K+1. Αν οK+1είναι πρώτος, ο ισχυρισμός είναι αληθής. Αν όχι, τότε από τον ορισμότων πρώτων αριθμών, υπάρχουν δύο αριθμοί P;Q που δεν είναι ίσοιμε 1 ή με K + 1, ώστε K + 1 = PQ. Αυτοί οι αριθμοί όμως θα είναιμεγαλύτεροι από 1 και μικρότεροι από K+1. Άρα από την επαγωγικήυπόθεση και οι δύο θα είναι είτε πρώτοι είτε γινόμενα πρώτων αριθμών.Σε κάθε περίπτωση όμως, αφού K + 1 = PQ, προκύπτει ότι ο K + 1

είναι γινόμενο πρώτων αριθμών.

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

Page 64: αυτόματα και τυπικές γλώσσες dimitriou

52 Μαθηματική Επαγωγή

Άσκηση 2.4 Θα δείξουμε ότι η γλώσσα L µ f0; 1g¤ που ορίζεται από τουςπαρακάτω κανόνες είναι ίση με την M = fx 2 f0; 1g¤j η x τελειώνει σε 0 και δενπεριέχει τη συμβολοσειρά 11g.

1. Οι συμβολοσειρές 0 και 10 ανήκουν στην L.

2. Αν x 2 L, τότε και x0 2 L.

3. Αν x 2 L, τότε και x10 2 L.

4. Τίποτε άλλο δεν ανήκει στην L εκτός αν προκύπτει από τα παραπάνω.

Είναι φανερό ότι L µ M . Ο λόγος είναι ότι οι κανόνες 1, 2, 3 αναγκάζουν τιςσυμβολοσειρές να τελειώνουν σε 0 και ο κανόνας 3 δεν επιτρέπει μετά από κάποιο1 να ακολουθεί άλλο 1. Αν ισχύει και το αντίστροφοM µ L, τότε από τον ορισμότης ισότητας συνόλων θα έχουμε L = M . Θα δείξουμε, χρησιμοποιώντας ισχυρήεπαγωγή στο μήκος της συμβολοσειράς x, jxj ¸ 1, ότι κάθε x που ανήκει στη M ,μπορεί να προκύψει με τους παραπάνω κανόνες, ή αλλιώς ότι ανήκει στην L.

Βάση: Αν jxj = 1, τότε x = 0 και η x προκύπτει από τον κανόνα 1.

Επαγωγική Υπόθεση: Έστω ότι k ¸ 0 και κάθε x 2 M με jxj ∙ k,ανήκει στην L.

Επαγωγικό Βήμα: Θα δείξουμε ότι κάθε x 2 M , με jxj = k + 1,επίσης ανήκει στην L. Εφόσον x 2 M , αυτή μπορεί να γραφεί ωςx = y0, όπου jyj = k και η y δεν περιέχει το 11. Αν y = ², τότεx = 0, το οποίο προκύπτει από τον κανόνα 1. Αν η y τελειώνει σε 0,τότε, από την επαγωγική υπόθεση, y 2 L, οπότε και η x = y0 ανήκειστην L, χρησιμοποιώντας τον κανόνα 2. Αλλιώς η y τελειώνει σε 1και x = z10 για κάποιο z με jzj < k. Προσέξτε τώρα ότι το z δεμπορεί να τελειώνει σε 1, γιατί η x θα περιείχε τη συμβολοσειρά 11.Άρα είτε z = ², είτε το z τελειώνει σε 0 και δεν περιέχει το 11. Στηνπρώτη περίπτωση x = 10, η οποία ανήκει στην L λόγω του κανόνα1. Στη δεύτερη περίπτωση, z 2 L, άρα το ίδιο θα ισχύει και για τηx = z10 με βάση τον κανόνα 3.

Μπράβο σας, αν τα καταφέρατε. Αν δε μπορέσατε να βρείτε τη λύση μην απογοη-τεύεστε. Αυτή ήταν μια πολύ δύσκολη άσκηση. Το δυσκολότερο σημείο τηςαπόδειξης ήταν η ανάλυση των περιπτώσεων για τη x στο επαγωγικό βήμα. Σεκάθε περίπτωση έπρεπε να εκφράσουμε τη x σαν y0 ή z10, ώστε να μπορέσουμεστη συνέχεια να εφαρμόσουμε τον ορισμό. Οδηγός μας λοιπόν είναι οι κανόνες 2και 3 του ορισμού. Έχοντας αυτούς στο νου μας, μπορούμε να συμπληρώνουμε τακενά του επαγωγικού βήματος.

Page 65: αυτόματα και τυπικές γλώσσες dimitriou

Λεξιλόγιο Αγγλικών Όρων 53

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝ

Επαγωγή Induction

Βάση Basis

Επαγωγική Υπόθεση Inductive Hypothesis

Επαγωγικό Βήμα Inductive Step

Ισχυρή Επαγωγή Strong Induction

Αρχή Περιστεροφωλιάς Pigeonhole Principle

Αναδρομικοί Ορισμοί recursive definitions

Παλινδρομική Συμβολοσειρά palindrome

ΒΙΒΛΙΟΓΡΑΦΙΑ ΜΕΡΟΥΣ I

Epp, S. S. Discrete Mathematics with Applications, PWS Publishing Company,Boston, 1995.

Knuth, D. E. Concrete Mathematics, Addison-Wesley, Reading, 1990.

Liu, C. L. Combinatorial Mathematics, McGraw-Hill, New York, 1980.

Polya, G. Induction and Analogy in Mathematics, Princeton University Press, 1954.

Stoll, R. R. Set Theory and Logic, W. H. Freeman, San Francisco, 1963.

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

Ένας μεγάλος αριθμός βιβλίων πάνω στα διακριτά μαθηματικά έχει εμφανιστεί τατελευταία δέκα χρόνια που καλύπτουν πολλές από τις έννοιες του πρώτου μέρους.Καλό παράδειγμα αποτελεί το βιβλίο της Epp. Το βιβλίο του Liu είναι ένα χρήσιμοβιβλίο που περιέχει έννοιες που είναι απαραίτητες για το φοιτητή που θέλει να μάθειπερισσότερα για το είδος των μαθηματικών που χρησιμοποιούνται στην Επιστήμητων Υπολογιστών. Έχει μάλιστα μεταφραστεί και στα ελληνικά. Στο ίδιο πνεύμακινείται και το βιβλίο του Knuth, το οποίο όμως απευθύνεται περισσότερο σεμεταπτυχιακούς φοιτητές.

Ένα απολαυστικό βιβλίο πάνω στη μαθηματική επαγωγή είναι το βιβλίο τουPolya. Τέλος, για μια πιο αναλυτική προσέγγιση στη θεωρία συνόλων δείτε τοβιβλίο του Stoll.

Το διαδίκτυο επίσης προσφέρεται για την αναζήτηση βιβλίων σχετικών με ταμαθηματικά της Επιστήμης των Υπολογιστών. Αρκεί να επισκεφτεί κάποιος τις

Page 66: αυτόματα και τυπικές γλώσσες dimitriou

54 Μαθηματική Επαγωγή

ιστοσελίδες ενός ηλεκτρονικού βιβλιοπωλείου και να ψάξει με βάση τις λέξειςκλειδιά \Διακριτά Μαθηματικά" ή \Discrete Mathematics".

Page 67: αυτόματα και τυπικές γλώσσες dimitriou

ΠΕΠΕΡΑΣΜΕΝΑ ΑΥΤΟΜΑΤΑΚΑΙ

ΚΑΝΟΝΙΚΕΣ ΓΛΩΣΣΕΣ

Μ Ε Ρ Ο Σ

Στο Κεφάλαιο 1 είδαμε ότι υπάρχουν δύο τρόποι για να περιγράψει κάποιος μιαγλώσσα L. Ο πρώτος είναι να δώσει τον τρόπο με τον οποίο παράγονται οισυμβολοσειρές που ανήκουν στην L. Αυτό μπορεί να γίνει με τις συνήθεις πράξειςτης ένωσης, συνένωσης και αστεριού Kleene, που εφαρμόζονται πάνω στις γλώσσες.Ο δεύτερος είναι να περιγράψει τον τρόπο με τον οποίο αναγνωρίζονται οι συμβολο-σειρές που ανήκουν στη γλώσσα. Δύο τυπικά παραδείγματα ακολουθούν:

L1 = fab; bbg¤ [ fbgfaa; bg¤L2 = fx 2 fa; bg¤ j Η συμβολοσειρά x είναι παλινδρομικήg

Η L1 προκύπτει από την ένωση των επιμέρους γλωσσών fab; bbg¤ και fbgfaa; bg¤,ενώ η L2 μας περιγράφει πώς μπορούμε ν, αναγνωρίσουμε συμβολοσειρές πουανήκουν στη γλώσσα: απλά βλέπουμε αν διαβάζονται το ίδιο και από τις δύοκατευθύνσεις. Οι περιγραφές όμως αυτού του είδους πρέπει να ικανοποιούν ένακριτήριο: πρέπει να είναι υπολογιστικά εφικτές. Για να αποφασίσουμε αν μιασυμβολοσειρά ανήκει στη γλώσσα δε θα πρέπει να χρειάζεται να δώσουμε απάντησησ, ένα δύσκολο, αν όχι άλυτο, πρόβλημα, αλλά να έχουμε μία συστηματική διαδικα-σία (έναν αλγόριθμο), που θα μας απαντάει σε πεπερασμένο αριθμό βημάτων αν ησυμβολοσειρά ανήκει ή όχι στη γλώσσα.

Στο Μέρος II θα δούμε πώς μπορούμε να παράγουμε και στη συνέχεια νααναγνωρίσουμε μία ειδική κατηγορία γλωσσών, τις λεγόμενες κανονικές γλώσσες.Θα ξεκινήσουμε εξηγώντας πώς μια τέτοια γλώσσα μπορεί να παραχθεί από τηνκενή συμβολοσειρά και τα σύμβολα του αλφάβητου χρησιμοποιώντας έναν πεπερα-σμένο αριθμό εφαρμογών των βασικών πράξεων. Οι περιγραφές που θα προκύπτουν

Page 68: αυτόματα και τυπικές γλώσσες dimitriou

56 Πεπερασμένα Αυτόματα και Κανονικές Γλώσσες

μ, αυτό τον τρόπο θα ονομάζονται κανονικές εκφράσεις. Ο πρώτος μας χαρακτη-ρισμός είναι λοιπόν ότι μία γλώσσα θα είναι κανονική, αν και μόνο αν μπορεί ναπεριγραφεί από κάποια κανονική έκφραση.

Στη συνέχεια θα περιγράψουμε πώς μπορούν να αναγνωριστούν οι κανονικέςγλώσσες. Θα μιλήσουμε για αφηρημένες μηχανές που έχουν την ικανότητα να\θυμούνται" ώστε να μπορούν ν, αναγνωρίζουν εύκολα τις ιδιότητες των συμβολο-σειρών που ανήκουν στη γλώσσα. Οι μηχανές αυτές, που θα τις ονομάζουμεπεπερασμένα αυτόματα, θα έχουν κάποιο είδος μνήμης και θα μπορούν να διακρίνουνμεταξύ ενός πεπερασμένου αριθμού καταστάσεων.

Το σημαντικότερο αποτέλεσμα αυτών των κεφαλαίων θα είναι άλλος έναςχαρακτηρισμός των κανονικών γλωσσών: Μια γλώσσα θα είναι κανονική, αν καιμόνο αν μπορεί να αναγνωριστεί από ένα πεπερασμένο αυτόματο. Αν και θα μπορού-σαμε να ορίσουμε απευθείας τις κανονικές γλώσσες ως τις γλώσσες που γίνονταιδεκτές από πεπερασμένα αυτόματα, η προσέγγιση αυτή θα μας χρησιμεύσει στηνανάπτυξη μιας μεθοδολογίας που θα μας βοηθήσει να καταλάβουμε πότε μιαγλώσσα δεν μπορεί να είναι κανονική. Έχοντας διαπιστώσει τις αδυναμίες τωνπεπερασμένων αυτομάτων, θα μπορέσουμε να ορίσουμε στο Μέρος III μία ιεραρχίααπό \ανώτερες" γλώσσες, καθώς και τις αντίστοιχες μηχανές παραγωγής και ανα-γνώρισης αυτών.

Page 69: αυτόματα και τυπικές γλώσσες dimitriou

ΚΑΝΟΝΙΚΕΣ ΕΚΦΡΑΣΕΙΣ ΚΑΙΚΑΝΟΝΙΚΕΣ ΓΛΩΣΣΕΣ

Κ Ε Φ Α Λ Α Ι Ο

Σκοπός

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

Προσδοκώμενα Αποτελέσματα

Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:

² αναφέρετε τι είναι κανονική έκφραση και πώς ορίζεται,² εξηγήσετε γιατί οι κανονικές γλώσσες είναι κλειστές ως προς τις πράξεις ένωση,συνένωση και αστέρι Kleene,

² αποδείξετε αν δύο εκφράσεις αντιστοιχούν στην ίδια γλώσσα,

² εξηγήσετε γιατί κάθε πεπερασμένη γλώσσα είναι κανονική,

² βρείτε την κανονική έκφραση που αντιστοιχεί σε κάποια γλώσσα.

Έννοιες-κλειδιά

² Παραγωγή γλωσσών

² Κανονικές εκφράσεις

² Κανονικές γλώσσες

² Ισότητα κανονικών εκφράσεων

² Κλειστότητα κανονικών γλωσσών

57

Page 70: αυτόματα και τυπικές γλώσσες dimitriou

58 Κανονικές Εκφράσεις και Κανονικές Γλώσσες

Εισαγωγικές Παρατηρήσεις

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

3.1 Κανονικές Εκφράσεις

Κάθε πεπερασμένη γλώσσα μπορεί ν, αναπαρασταθεί με μια απλή απαρίθμησηόλων των συμβολοσειρών που ανήκουν σε αυτή. Τί γίνεται όμως στην περίπτωσημίας γλώσσας με άπειρο αριθμό συμβολοσειρών; Μπορεί ν, αναπαρασταθεί από μιαπεπερασμένη ακολουθία συμβόλων; Σ, αυτό και στα επόμενα κεφάλαια θα δούμεπότε μπορούμε να έχουμε μία τέτοια αναπαράσταση, καθώς και παραδείγματαγλωσσών για τις οποίες κάτι τέτοιο δεν είναι εφικτό. Θ, αρχίσουμε τη συζήτησήμας με ένα παράδειγμα.3.1Έστω L = fx 2 fa; bg¤j η x περιέχει το ba και τελειώνει σε bg. Η L μπορεί να περιγραφείμε τις συνήθεις πράξεις ως εξής:

fa; bg¤fbagfa; bg¤fbg

Ο λόγος είναι ότι αμέσως πριν και μετά το ba μπορεί να υπάρχει οτιδήποτε (αυτόεκφράζεται με τη γλώσσα fa; bg¤) και υποχρεωτικά να ακολουθεί το b (εκφράζεται με τηγλώσσα fbg).

Παράδειγμα 3.1

Οι γλώσσες, σαν αυτή του προηγούμενου παραδείγματος, που προκύπτουναπό ένα συνδυασμό των βασικών πράξεων ονομάζονται κανονικές γλώσσες καιΚανονική

Γλώσσαοι περιγραφές τους που χρησιμοποιούν τα σύμβολα f; g;[; ¤, κανονικές εκφράσεις.Στην πράξη όμως αντί για τα σύμβολα f; g;[ θα χρησιμοποιούμε τα σύμβολα(; );+ για να είναι οι εκφράσεις ευκολότερα αναγνώσιμες. Έτσι, η γλώσσα τουπροηγούμενου παραδείγματος απλά γίνεται

L = (a+ b)¤ba(a+ b)¤b

όπου fa; bg = (a+ b), γιατί ένα σύνολο είναι ουσιαστικά η ένωση των στοιχείωνπου το αποτελούν.

Μία κανονική έκφραση μπορεί να θεωρηθεί ως μια τυπική συμβολοσειρά τηςγλώσσας που εκπροσωπεί. Για παράδειγμα, η έκφραση ab¤ αναπαριστά μια συμβο-λοσειρά που αρχίζει με a και τελειώνει μ, έναν οποιοδήποτε αριθμό από b. Φυσικάη έκφραση αυτή αντιστοιχεί σε μια άπειρη γλώσσα, την fa; ab; abb; abbb; : : :g, αφούο αριθμός των b μπορεί να είναι οποιοσδήποτε.

Page 71: αυτόματα και τυπικές γλώσσες dimitriou

Κανονικές Εκφράσεις 59

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

1. Â είναι η κανονική έκφραση που αντιστοιχεί στην κενή γλώσσα Â.

2. ² είναι η κανονική έκφραση που αντιστοιχεί στη γλώσσα f²g.3. Για κάθε σύμβολο a 2 §, a είναι η κανονική έκφραση που αντιστοιχεί στη γλώσσαfag.

4. Αν r και s είναι εκφράσεις που αντιστοιχούν στις γλώσσες Lr και Ls, τότε και οι(rs), (r + s) και (r¤) είναι κανονικές εκφράσεις που αντιστοιχούν στις γλώσσεςLrLs, Lr [ Ls και L¤r .

5. Τίποτα άλλο δεν είναι κανονική έκφραση, εκτός αν προκύπτει από τους παραπάνωκανόνες.

Μια γλώσσα πάνω σ, ένα αλφάβητο § θα ονομάζεται κανονική, αν υπάρχει κάποιακανονική έκφραση που αντιστοιχεί σ, αυτή.

Ορισμός 3.1

Από τον ορισμό προκύπτει ότι μπορεί να υπάρχουν άπειρες εκφράσεις πουαναπαριστούν την ίδια γλώσσα. Για παράδειγμα οι εκφράσεις a και (a + Â)αντιστοιχούν στην ίδια γλώσσα. Το ίδιο και οι (a(ab)) και ((aa)b). Σ, αυτέςτις περιπτώσεις θα παραλείπουμε τις περιττές παρενθέσεις μιας και οι πράξειςτης ένωσης και της συνένωσης είναι προσεταιριστικές. Δεν μπορούμε όμως ναεξαλείψουμε εντελώς τις παρενθέσεις από τον κανόνα 4, γιατί τότε εκφράσεις όπωςη a+ ba θα μπορούσαν να ερμηνευθούν σαν (a+ b)a ή σαν a+ (ba).

Το παραπάνω πρόβλημα λύνεται αν δεχτούμε ότι η πράξη ¤ έχει τη μεγαλύτερηπροτεραιότητα, η συνένωση μικρότερη και η ένωση την πιο μικρή. Έτσι η έκφραση Προτεραιότητα

a+ ba αντιστοιχεί πια με μοναδικό τρόπο στην a+(ba). Επίσης εκφράσεις όπως ηa+ b+ c, που αναφέρονται στον ίδιο τελεστή, θα διαβάζονται από αριστερά προςτα δεξιά, αντιστοιχώντας στην έκφραση (a+ b) + c. Μία ακόμη διευκόλυνση πουθα δεχτούμε είναι να γράφουμε (r2) αντί για (rr), (r3) αντί για ((rr)r) καθώςεπίσης και (r+) αντί για ((r¤)r). Τέλος, θα λέμε ότι δύο εκφράσεις r και s είναιίσες αν αντιστοιχούν στην ίδια γλώσσα. Για παράδειγμα οι εκφράσεις a¤(a + ²) Ίσες Εκφράσεις

και a¤ είναι ίσες μεταξύ τους. Το ίδιο και οι (a+b+ b) και a¤b.3.1Δείξτε ότι οι εκφράσεις (a¤b¤)¤ και (a+ b)¤ είναι ίσες. Άσκηση

Αυτοαξιολόγησης3.1

Page 72: αυτόματα και τυπικές γλώσσες dimitriou

60 Κανονικές Εκφράσεις και Κανονικές Γλώσσες

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

Θεώρημα 3.1. Οι κανονικές γλώσσες είναι κλειστές ως προς τις πράξεις τηςένωσης, της συνένωσης και του αστεριού Kleene.

Απόδειξη: Το θεώρημα μας ζητά να αποδείξουμε ότι αν L1 και L2 είναιδύο κανονικές γλώσσες, τότε το ίδιο ισχύει και για τις L1[L2, L1L2 και L¤1.Η απόδειξη αφήνεται στον αναγνώστη, αφού προκύπτει με απλή εφαρμογήτου ορισμού.

3.2Αποδείξτε το Θεώρημα 3.1.Άσκηση

Αυτοαξιολόγησης3.2

Το Θεώρημα 3.1 μας λέει πως, αν μπορούμε να παράγουμε δύο γλώσσες L1και L2, τότε μπορούμε να παράγουμε και την ένωσή τους L1 [ L2. Στα επόμενακεφάλαια θα δούμε πως το παραπάνω ισχύει και όταν πρόκειται να αναγνωρίσουμεμια γλώσσα. Επιπλέον, θα δείξουμε ότι οι κανονικές γλώσσες είναι κλειστές και ωςπρος τις πράξεις της τομής και του συμπληρώματος, κάτι που δεν είναι προφανέςχρησιμοποιώντας κανονικές εκφράσεις.

Θεώρημα 3.2. Κάθε πεπερασμένη γλώσσα είναι κανονική.

Απόδειξη: Το θεώρημα μας ζητά να αποδείξουμε ότι αν L είναι μια γλώσσαμε πεπερασμένο αριθμό συμβολοσειρών, έστω N ¸ 0, τότε υπάρχει μιακανονική έκφραση που αντιστοιχεί σε αυτή.

Η εμφάνιση του αριθμού N μας προτρέπει να αποδείξουμε το θεώρημαχρησιμοποιώντας μαθηματική επαγωγή.

Βάση: Είναι φανερό ότι αν N = 0, τότε L = Â η οποία, σύμφωνα με τονΟρισμό 3.1, αντιστοιχεί στην κανονική έκφραση Â.

Επαγωγική Υπόθεση: Έστω ότι K ¸ 0 και ότι οποιαδήποτε γλώσσα L μεK συμβολοσειρές είναι κανονική.

Επαγωγικό Βήμα: Θα δείξουμε ότι, αν jLj = K+1, τότε η L είναι κανονική.Εφόσον μια γλώσσα δεν είναι παρά ένα σύνολο στοιχείων, η L μπορεί ναεκφραστεί σαν L1 [ L2, όπου η L1 αποτελείται από K συμβολοσειρές καιη L2 από μία. Αλλά τότε σύμφωνα με την επαγωγική υπόθεση θα υπάρχεικανονική έκφραση r1 που αντιστοιχεί στην L1. Αν μπορέσουμε να δείξουμεότι και η L2 αντιστοιχεί σε μία κανονική έκφραση r2 (Άσκηση 3.2), τότεσύμφωνα με τον Ορισμό 3.1, η (r1 [ r2) είναι μία κανονική έκφραση πουαντιστοιχεί στην L1 [ L2.

3.3Τι θα συμπεραίνατε για μια γλώσσα της οποίας η αντίστοιχη έκφραση δεν περιέχει τοντελεστή ¤;

ΆσκησηΑυτοαξιολόγησης3.3

Page 73: αυτόματα και τυπικές γλώσσες dimitriou

Παραδείγματα και Εφαρμογές 61

3.2 Παραδείγματα και Εφαρμογές

Σ, αυτή την ενότητα θα δούμε μερικά παραδείγματα κανονικών γλωσσών. Περισσό-τερα παραδείγματα μπορούν να βρεθούν στις ασκήσεις.3.2Έστω L η γλώσσα πάνω στο αλφάβητο § = f0; 1g, η οποία αποτελείται απ, όλες τιςσυμβολοσειρές με ζυγό αριθμό μηδενικών. Είναι η L κανονική, και αν ναι, ποια ηκανονική έκφραση που αντιστοιχεί σ, αυτή;Για ν, απαντήσουμε σ, αυτό το ερώτημα θα προσπαθήσουμε να βρούμε μια ιδιότητα πουχαρακτηρίζει τις συμβολοσειρές της L. Ας ξεκινήσουμε με μία τυπική συμβολοσειρά

x = 1110111011111000111110

Είναι φανερό ότι x 2 L. Θα διασπάσουμε τη x όπως στη συνέχεια για να φαίνονται τατμήματα που την αποτελούν:

x = 111|{z}A

±Bz }| {

01110 ± 11111| {z }A

±Bz}|{00 ±

Bz }| {0111110

Από τα παραπάνω φαίνεται ότι η x αποτελείται από ομάδες τύπου A συνενωμένεςμε ομάδες τύπου B. Οι πρώτες είναι απλά ακολουθίες από άσσους, ενώ οι δεύτερεςαποτελούνται από δύο μηδενικά με οποιοδήποτε αριθμό άσσων ανάμεσά τους. Άρα η Lμπορεί να εκφραστεί σαν το αστέρι Kleene των A και B, ή αλλιώς L = (A+B)¤.Αντικαθιστώντας τα A και B με τις εκφράσεις 1¤ και 01¤0 αντίστοιχα, προκύπτει ηζητούμενη έκφραση:

L = (1¤ + 01¤0)¤

Αλλά η L μπορεί να απλοποιηθεί και άλλο. Η έκφραση 1¤ μπορεί να αντικατασταθεί μετην 1, γιατί το ίδιο αποτέλεσμα μπορεί να επιτευχθεί και με το εξωτερικό αστέρι Kleene.Άρα η έκφραση γίνεται τελικά

L = (1 + 01¤0)¤.

Παράδειγμα 3.2

Από τα παραπάνω προκύπτει, όπως είπαμε και στην προηγούμενη ενότητα, ότιμπορούν να υπάρχουν πολλές εκφράσεις που αντιστοιχούν στην ίδια γλώσσα, τωνοποίων η απλοποίηση απαιτεί μερικές φορές κάποια ευρηματικότητα.3.3Έστω L = fx 2 f0; 1g¤j η x τελειώνει με 1 και δεν περιέχει το 00g. Για να βρούμε τηνιδιότητα που χαρακτηρίζει τις συμβολοσειρές της L αρκεί να απαντήσουμε στο ερώτημα:ποιές ακολουθίες από 0 και 1 δεν εμφανίζουν ποτέ δύο συνεχόμενα 0; Η απάντηση είναιαυτές που δεν επιτρέπουν μετά από 0 να ακολουθεί άλλο 0. Αν κάθε 0 ακολουθείταιαπό 1, τότε τα μόνα 0 υπάρχουν σε συμβολοσειρές του τύπου 01. Αν επιτρέψουμε καιτην εμφάνιση οποιουδήποτε αριθμού από 1, τότε η L αντιστοιχεί στην κανονική έκφρασηR = (1 + 01)+ εφόσον ²62 L.

Παράδειγμα 3.3

Page 74: αυτόματα και τυπικές γλώσσες dimitriou

62 Πεπερασμένα Αυτόματα

Για να είμαστε όμως πιο ακριβείς θα πρέπει να δείξουμε ότι η γλώσσα που αντιστοι-χεί στην R, ας την πούμε LR, είναι ίση με την L. Από τη θεωρία συνόλωνγνωρίζουμε ότι αυτό ισοδυναμεί με το να δείξουμε ότι LR µ L και L µ LR.Το πρώτο είναι αληθές, καθότι η LR κατασκευάστηκε ώστε να μην περιέχει το00. Για το αντίστροφο αρκεί να δείξουμε ότι μια τυχαία συμβολοσειρά της Lμπορεί να παραχθεί από την έκφραση R. Μια επαγωγική απόδειξη στο μήκος τηςσυμβολοσειράς αρκεί και η απόδειξη αφήνεται για τον αναγνώστη.3.4Όταν κάποιος προγραμματίζει σε μια γλώσσα προγραμματισμού χρησιμοποιεί μεταβλητέςγια να αποθηκεύσει κάποια ενδιάμεσα αποτελέσματα. Οι μεταβλητές αυτές δεν είναιτίποτε άλλο παρά ακολουθίες αλφαριθμητικών χαρακτήρων που μπορεί να έχουν έναμέγιστο μήκος και υποχρεωτικά πρέπει να αρχίζουν με κάποιο γράμμα. Αν L = fa, b ,...,w, A, B,..., Wg και D = f0; 1; : : : ; 9g, τότε όλες οι μεταβλητές με μέγιστο μήκος οκτώμπορούν να εκφραστούν ως

L(L+D + ²)7

όπου το ² χρειάζεται για τη δημιουργία μεταβλητών μήκους μικρότερου από οκτώ. Αν οιμεταβλητές δεν έχουν περιορισμό στο μήκος, τότε η έκφραση γίνεται

L(L+D + ²)¤.

Παράδειγμα 3.4

3.4Δώστε μια κανονική έκφραση για τη γλώσσα της οποίας οι συμβολοσειρές περιέχουνακριβώς μια εμφάνιση του 00 (τo 000 θεωρούμε ότι περιέχει δύο εμφανίσεις του 00).

ΆσκησηΑυτοαξιολόγησης3.4

3.5Κάντε το ίδιο για μια γλώσσα L, της οποίας οι συμβολοσειρές δεν περιέχουν το 110.Άσκηση

Αυτοαξιολόγησης3.5

ΑΣΚΗΣΕΙΣ

3.1 Πώς μπορούμε ν, αντικαταστήσουμε τη κενή συμβολοσειρά ² στον ορισμότων κανονικών εκφράσεων;

3.2 Δείξτε ότι κάθε συμβολοσειρά μήκους N ¸ 0 αντιστοιχεί σε μια κανονικήέκφραση.

3.3 Ποιά από τα παρακάτω είναι αληθή;

α) (a¤ + b¤) \ (ab¤ + ba¤ + b¤a+ (a¤b)¤) = Âβ) a¤b¤ \ b¤a¤ = a¤ + b¤

γ) 0¤1¤ \ a¤b¤ = Âδ) (r + s)¤ = r¤ + s¤

Page 75: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 63

3.4 Θεωρήστε τους ακόλουθους αναδρομικούς ορισμούς, όπου L μια γλώσσαπάνω στο § = f0; 1g:

α) ² 2 L. Αν το x ανήκει στην L, τότε και τα x1, 0x ανήκουν στην L.

β) Τα ²; 0; 00 ανήκουν στην L. Αν το x ανήκει στην L, τότε και τα x1,x10, x100 ανήκουν στην L.

Περιγράψτε τις γλώσσες L και δώστε κανονικές εκφράσεις γι, αυτές.

3.5 Έστω § = f0; 1g. Βρείτε κανονικές εκφράσεις για την L, όπου

α) Oι συμβολοσειρές της L περιέχουν ακριβώς δύο 0.

β) Oι συμβολοσειρές της L περιέχουν τουλάχιστον δύο 0.

γ) Οι συμβολοσειρές της L δεν περιέχουν το 111.

δ) Οι συμβολοσειρές της L δεν περιέχουν ούτε το 00 ούτε το 11.

ε) Oι συμβολοσειρές της L περιέχουν και το 01 και το 010.

στ) L = fx 2 §¤j η x περιέχει ίσο αριθμό από 0 και 1 και κάθε τμήμα τηςx έχει το πολύ ένα παραπάνω 0 από ότι 1 ή το πολύ ένα παραπάνω 1 απόότι 0g.

3.6 Δείξτε ότι οι παρακάτω γλώσσες είναι κανονικές:

α) fx 2 f0; 1g¤j η x αναπαριστά ένα δυαδικό αριθμό που διαιρείται με το2g.β) fx 2 f0; 1; :::; 9g¤j η x αναπαριστά ένα δεκαδικό αριθμό, ο οποίος είναιπολλαπλάσιο του 5g.

3.7 Περιγράψτε τις γλώσσες που αντιστοιχούν στις ακόλουθες εκφράσεις:

α) (11 + 0)¤(00 + 1)¤

β) 0¤1(0¤10¤1)¤0¤

γ) 0¤1(0 + 1)¤

δ) (00 + 01 + 10 + 11)¤

3.8 Αποδείξτε τις παρακάτω ισότητες:

α) (r + s)¤ = r¤(sr¤)¤

β) (r + s)¤ = (r¤s¤)¤

Page 76: αυτόματα και τυπικές γλώσσες dimitriou

64 Κανονικές Εκφράσεις και Κανονικές Γλώσσες

3.9 Χρησιμοποιώντας την Άσκηση 3.8(α), δείξτε ότι κάθε κανονική γλώσσαμπορεί ν, αναπαρασταθεί από μια κανονική έκφραση της μορφής (r1+ r2+¢ ¢ ¢+ rn) για κάποιο n ¸ 1, όπου καμιά από τις ri δεν περιέχει τον τελεστή+.

3.10 Έστω r μια κανονική έκφραση πάνω σ, ένα αλφάβητο §. Δείξτε ότι, ανκάθε σύμβολο a 2 § αντικατασταθεί με κάποια κανονική έκφραση ra, τοαποτέλεσμα είναι ξανά μια κανονική έκφραση.

3.11 Βρείτε μια κανονική έκφραση που εκφράζει τους αριθμούς που γίνονταιδεκτοί από την αγαπημένη σας γλώσσα προγραμματισμού.

3.12 Η αντίστροφη μιας γλώσσας L είναι η LR = fxR j x 2 Lg.

² Αν s είναι η έκφραση abb(abaa + ba)¤(aaab)¤ και Ls η γλώσσα πουαντιστοιχεί σε αυτή, βρείτε μια κανονική έκφραση για την αντίστροφηLRs .

² Χρησιμοποιώντας ως μοντέλο τον Ορισμό 3.1, περιγράψτε με αναδρομι-κό τρόπο την αντίστροφη μίας έκφρασης s, ώστε η γλώσσα που αντι-στοιχεί σ, αυτή να είναι η αντίστροφη της Ls.

Σύνοψη

Στο κεφάλαιο αυτό μελετήσαμε τις κανονικές εκφράσεις. Οι εκφράσεις αυτές δενείναι παρά μέθοδοι περιγραφής των συμβολοσειρών μιας γλώσσας και χαρακτηρίζουντη σειρά των πράξεων που απαιτούνται για να προκύψει μια τυπική συμβολοσειρά.Έτσι, αποτελούν μεθόδους παραγωγής συμβολοσειρών, σε αντιδιαστολή με τις μεθό-δους αναγνώρισης που θα μελετήσουμε σ, επόμενο κεφάλαιο. Οι γλώσσες πουμπορούν να περιγραφούν μ, αυτό τον τρόπο ονομάζονται normalfont.

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης

Άσκηση 3.1 Έστω § = fa; bg. Θέλουμε να δείξουμε ότι οι εκφράσεις r = (a¤b¤)¤και s = (a+b)¤ είναι ίσες. Ας είναι Lr και Ls οι αντίστοιχες γλώσσες. Θα δείξουμεότι η καθεμιά είναι υποσύνολο της άλλης, δηλαδή ότι Lr µ Ls και Ls µ Lr.

Η πρώτη ανισότητα είναι αληθής, γιατί η δεύτερη γλώσσα δεν είναι παρά τ理. Για το αντίστροφο παρατηρήστε ότι μια συμβολοσειρά x 2 §¤ δεν αποτελείταιπαρά από επαναλαμβανόμενες ομάδες από a ακολουθούμενα από b. Κάθε τέτοιαομάδα μπορεί να προκύψει από την έκφραση a¤b¤. Η συνένωση πολλών τέτοιωνομάδων δίνει τη συμβολοσειρά x και επιτυγχάνεται με το εξωτερικό αστέρι Kleene.

Page 77: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης 65

(Αν η x αρχίζει από b, τότε η πρώτη ομάδα αποτελείται μόνο από b και παράγεταιμε την έκφραση b¤, ενώ, αν η x τελειώνει σε a, τότε η αντίστοιχη ακολουθίαπαράγεται από την a¤.)

Άσκηση 3.2 Έστω L1 και L2 δύο κανονικές γλώσσες και r1; r2 οι αντίστοιχεςκανονικές εκφράσεις. Το θεώρημα μας ζητά να δείξουμε ότι και οι L1 [L2, L1L2και L¤1 είναι κανονικές. Αλλά αυτές περιγράφονται από τις εκφράσεις (r1 + r2),(r1r2) και r¤1, οπότε με βάση τον Ορισμό 3.1, είναι κανονικές.

Άσκηση 3.3 Ο τελεστής ¤ χρησιμοποιείται σε μια έκφραση, γιατί είναι ο μόνοςπου μπορεί να δημιουργήσει ένα άπειρο αριθμό συμβολοσειρών. Αν λοιπόν αυτός οτελεστής δεν υπάρχει σε μία κανονική έκφραση r, τότε η αντίστοιχη γλώσσα Lr θαείναι πεπερασμένη. Για μια πιο πλήρη απόδειξη μπορούμε να χρησιμοποιήσουμεισχυρή επαγωγή στον αριθμό των πράξεων που χρησιμοποιούνται για να προκύψειη r.

Βάση: Αν η r είναι ίση με το Â, ² ή κάποιο σύμβολο a 2 §, τότε ηLr είναι πεπερασμένη.

Επαγωγική Υπόθεση: Έστω ότι k ¸ 0 και ότι οποιαδήποτε έκφρασηπου δημιουργείται χρησιμοποιώντας n, 0 ∙ n ∙ k, φορές τους τελεστέςτης ένωσης και της συνένωσης, είναι πεπερασμένη.

Επαγωγικό Βήμα: Θα δείξουμε ότι, αν μία έκφραση r αποτελείται απόk + 1 τελεστές, είναι πεπερασμένη. Θεωρήστε την τελευταία πράξηαπό την οποία προέκυψε η r. Αυτή θα είναι είτε η ένωση (+), είτεη συνένωση (±), εφόσον η r δεν περιέχει τον τελεστή ¤. Έτσι, η rμπορεί να γραφεί σαν r1 + r2 ή r1r2, όπου για τις r1, r2 ισχύει ηεπαγωγική υπόθεση. Μα τότε και η r θα είναι πεπερασμένη ως ένωσηή συνένωση πεπερασμένων γλωσσών.

Συγχαρητήρια, αν βρήκατε τη σωστή απάντηση. Αν όχι, μην απογοητεύεστε. Αυτήήταν μία \πονηρή" άσκηση. Βεβαιωθείτε όμως ότι καταλάβατε τη χρήση τουαστεριού Kleene.

Άσκηση 3.4 Έστω L η γλώσσα της οποίας οι συμβολοσειρές περιέχουν ακριβώςμια εμφάνιση του 00. Για να κατασκευάσουμε μια κανονική έκφραση για τηνL μπορούμε να αρχίσουμε με την έκφραση 00 και να αναρωτηθούμε τι πρέπει ναβάλουμε δεξιά και αριστερά αυτής. Έστω l η έκφραση στα αριστερά. Η l δε μπορείνα επιτρέπει τη δημιουργία συνεχόμενων μηδενικών και δεν μπορεί να τελειώνει σε0, γιατί τότε θα είχαμε τη δημιουργία του 000. Αν λοιπόν αναγκάσουμε κάθε 0 ναακολουθείται από 1, τότε η ζητούμενη έκφραση είναι η l = (1+01)¤. Αντίστοιχα,αν r είναι η έκφραση στα δεξιά, τότε και αυτή δε μπορεί να περιέχει συνεχόμενα

Page 78: αυτόματα και τυπικές γλώσσες dimitriou

66 Κανονικές Εκφράσεις και Κανονικές Γλώσσες

μηδενικά αλλά και να αρχίζει από 0. Μια τέτοια έκφραση είναι η r = (1 + 10)¤.Άρα η ζητούμενη έκφραση για την L είναι η (1 + 01)¤00(1 + 10)¤.Σημείωση: Σε ασκήσεις αυτού του είδους θα πρέπει πρώτα να προσπαθούμε ναβρούμε την ιδιότητα που χαρακτηρίζει τις συμβολοσειρές της γλώσσας και έπειτανα περιγράψουμε αυτή χρησιμοποιώντας απλούστερες εκφράσεις. Αν δουλέψατεμε τον παραπάνω τρόπο, μπράβο σας γιατί έχετε πιάσει το νόημα. Αν όχι μηναπογοητεύεστε. Αυτή δεν ήταν μια εύκολη άσκηση.

Άσκηση 3.5 Έστω L η γλώσσα της οποίας οι συμβολοσειρές δεν περιέχουν το110. Λέγοντας ότι μια συμβολοσειρά δεν περιέχει το 110 είναι ισοδύναμο με το ναπούμε, ότι αν εμφανίζεται το 11 ή γενικότερα μια ακολουθία από 1, τότε δεν μπορείνα ακολουθεί 0. Άρα, μια συμβολοσειρά που δεν περιέχει το 110 αποτελείται απόένα αρχικό τμήμα που δεν περιέχει 11 (ώστε να επιτρέπεται η ύπαρξη 0) και μιαακολουθία από 1 στο τέλος. Το αρχικό τμήμα μπορεί να αποδοθεί με την έκφραση(0 + 10)¤. Άρα η ζητούμενη έκφραση για τη γλώσσα L είναι η (0 + 10)¤1¤.

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

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝκανονική έκφραση regular expression

κανονική γλώσσα regular language

Page 79: αυτόματα και τυπικές γλώσσες dimitriou

ΠΕΠΕΡΑΣΜΕΝΑ ΑΥΤΟΜΑΤΑ

Κ Ε Φ Α Λ Α Ι Ο

Σκοπός

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

Προσδοκώμενα Αποτελέσματα

Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:

² αναφέρετε τα βασικά χαρακτηριστικά μιας μηχανής πεπερασμένων καταστά-σεων και να περιγράψετε τη διαδικασία αναγνώρισης μιας συμβολοσειράς,

² αναφέρετε το είδος της μνήμης των μηχανών αυτών,

² δώσετε δύο παραδείγματα τέτοιων μηχανών που συναντάμε στην καθημερινήμας ζωή,

² εξηγήσετε τη χρήση διαγραμμάτων για την περιγραφή τους,

² δώσετε τον ορισμό ενός πεπερασμένου αυτόματου και να εξηγήσετε τι είναι ησυνάρτηση μετάβασης,

² περιγράψετε πώς μπορούμε να χρησιμοποιήσουμε τον πίνακα μετάβασης ενόςαυτόματου για να μειώσουμε τον αριθμό των καταστάσεών του,

² δώσετε τον ορισμό της γλώσσας που γίνεται δεκτή από ένα αυτόματο,

67

Page 80: αυτόματα και τυπικές γλώσσες dimitriou

68 Πεπερασμένα Αυτόματα

² εξηγήσετε πότε δύο συμβολοσειρές διακρίνονται μεταξύ τους όσον αφορά μιαγλώσσα L,

² αναφέρετε πώς σχετίζεται ο αριθμός των διακρινόμενων συμβολοσειρών μετον αριθμό καταστάσεων ενός αυτόματου,

² αναφέρετε έναν τρόπο με τον οποίο μπορούμε να δείχνουμε τη μη κανονικότηταμιας γλώσσας,

² εξηγήσετε γιατί η γλώσσα των παλινδρομικών συμβολοσειρών δεν είναι κανονι-κή,

² εξηγήσετε γιατί οι κανονικές γλώσσες είναι κλειστές ως προς τις πράξεις τομήκαι διαφορά.

Έννοιες-κλειδιά

² Μηχανή πεπερασμένων καταστάσεων,² Αυτόματο,

² Σύμβολα εισόδου και τελικές καταστάσεις,² Διάγραμμα καταστάσεων και πίνακας μεταβάσεων ενός αυτόματου,

² Απλοποίηση αυτομάτων,² Συνάρτηση μετάβασης ± και ±¤,² Γλώσσα που αναγνωρίζεται ή γίνεται δεκτή από ένα αυτόματο,

² Διάκριση συμβολοσειρών σε σχέση με μια γλώσσα L,

² Ελάχιστος αριθμός καταστάσεων αυτόματου,² Γλώσσες που δεν είναι κανονικές,² Τομή και συμπλήρωμα κανονικών γλωσσών,

Εισαγωγικές Παρατηρήσεις

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

Page 81: αυτόματα και τυπικές γλώσσες dimitriou

Εισαγωγή 69

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

4.1 Εισαγωγή

Στο προηγούμενο κεφάλαιο είδαμε πώς μπορούμε να παράγουμε κανονικές γλώσσες.Σ, αυτό το κεφάλαιο θα προσπαθήσουμε να ανακαλύψουμε τα ελάχιστα χαρακτηρι-στικά που πρέπει να έχει μια μηχανή για να μπορεί να αναγνωρίσει μια τέτοιαγλώσσα. Με τον όρο αναγνώριση εννοούμε ότι, αν μια συμβολοσειρά x δοθεί ωςείσοδος στη μηχανή, η μηχανή θα πρέπει να διαβάσει τα σύμβολα της x, ένα-ένα από αριστερά προς τα δεξιά και στο τέλος να αποφασίσει αν η συμβολοσειράανήκει στη γλώσσα. Αυτός ο τρόπος αναγνώρισης μπορεί να φαίνεται αρκετάπεριοριστικός αλλά θα μας βοηθήσει να καταλάβουμε τι είδους πληροφορία πρέπεινα \θυμάται" η μηχανή για το τμήμα της συμβολοσειράς που έχει αναγνώσει μέχρικάποια στιγμή, και αργότερα να ταξινομήσουμε τις γλώσσες με βάση την ποσότητατης πληροφορίας που απαιτείται για την αναγνώρισή τους.

Θα ξεκινήσουμε τη συζήτησή μας περιγράφοντας τη διαδικασία της αναγνώρι- Διαδικασίααναγνώρισηςσης λίγο καλύτερα. Όπως αναφέραμε η μηχανή διαβάζει τα σύμβολα ένα-ένα και

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

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

αναγνωρίσουμε τη γλώσσα.Το ερώτημα που γεννιέται τώρα είναι αν πρέπει να θυμόμαστε όλη τη συμβολο-

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

Page 82: αυτόματα και τυπικές γλώσσες dimitriou

70 Πεπερασμένα Αυτόματα

καμιά μνήμη δεν επαρκεί, γιατί πάντα θα μπορούσαμε να δώσουμε ως είσοδο μιαμεγαλύτερη συμβολοσειρά. Ίσως λοιπόν δε χρειάζεται να θυμόμαστε τόσα πολλά.Ας δούμε ένα παράδειγμα.4.1Έστω L η γλώσσα που αποτελείται από τις συμβολοσειρές x 2 f0; 1g¤ που τελειώνουνσε 00. Η απόφαση αν η x ανήκει ή όχι στην L εξαρτάται μόνο από τα δύο τελευταίαμηδενικά. Παρ, όλα αυτά η μηχανή θα πρέπει να κάνει κάτι παραπάνω από το νακατατάσσει τις συμβολοσειρές ανάλογα με το αν τελειώνουν ή όχι σε 00.Ας υποθέσουμε ότι έχει διαβαστεί η συμβολοσειρά 1010. Αν θυμόμαστε μόνο ότι δεντελειώνει σε 00, δε θα μπορέσουμε ποτέ να τη διακρίνουμε από κάποια άλλη που δεντελειώνει σε 00, για παράδειγμα την 001. Έτσι, αν το επόμενο σύμβολο που διαβαστείείναι το 0, τότε στην πρώτη περίπτωση θα έχουμε 10100, που ανήκει στη γλώσσα, ενώ στηδεύτερη 0010, που δεν ανήκει. Φαίνεται λοιπόν ότι θα πρέπει να θυμόμαστε αρκετά γιανα μπορούμε να διακρίνουμε τις 1010 και 001 τώρα, αλλά και να μπορούμε ένα σύμβολοαργότερα να αποφασίσουμε αν η μεγαλύτερη συμβολοσειρά ανήκει στη γλώσσα.Αυτό μπορούμε να το πετύχουμε, αν θυμόμαστε τα δύο τελευταία σύμβολα της τρέχουσαςσυμβολοσειράς. Υπάρχουν τέσσερις περιπτώσεις (00, 01, 10, 11) και κάθε φορά πρέπεινα γνωρίζουμε σε ποια είμαστε. Για παράδειγμα, αν είμαστε στην 10, αυτό σημαίνει ότιη τρέχουσα συμβολοσειρά τελειώνει σε 10 και φυσικά δεν ανήκει στη γλώσσα. Αν όμωςτο επόμενο σύμβολο που διαβαστεί είναι το 0, τότε μεταβαίνουμε στην κατάσταση 00και η συμβολοσειρά ανήκει στη γλώσσα. Αυτή ήταν η περίπτωση της 1010 παραπάνω.Αντίστοιχα, αν το επόμενο σύμβολο είναι το 1, τότε από την 10 πηγαίνουμε στην 01,γιατί τα δύο τελευταία σύμβολα είναι πια τα 01. Ανάλογα ισχύουν και για τις υπόλοιπεςπεριπτώσεις.Ταξινομήσαμε λοιπόν τις συμβολοσειρές σε τέσσερις τύπους, ανάλογα με τα δύο τελευταίασύμβολα τους, με εξαίρεση φυσικά αυτές που αποτελούνται από λιγότερα από δύοσύμβολα. Οι τρεις αυτές συμβολοσειρές (²; 0; 1) αποτελούν ξεχωριστές περιπτώσεις καιθα πρέπει να εξετάζονται διαφορετικά. Το συμπέρασμα που προκύπτει είναι ότι κατά τηνεπεξεργασία μιας συμβολοσειράς, για να αποφασίσουμε αν ανήκει ή όχι στη γλώσσα, δεχρειάζεται να θυμόμαστε τη συμβολοσειρά, αλλά μόνο τον τύπο στον οποίο ανήκει.

Παράδειγμα 4.1

Το παραπάνω παράδειγμα μπορεί να αποδοθεί σχηματικά με το διάγραμμα τουΣχήματος 4.1. Το μικρό βέλος στα αριστερά μας λέει από που να αρχίσουμε,όταν δεν έχει διαβαστεί κανένα σύμβολο. Ο διπλός κύκλος σημαίνει ότι, ανείμαστε σε αυτή την κατάσταση όταν φτάσουμε στο τέλος της συμβολοσειράς πουεπεξεργαζόμαστε, τότε η απάντηση πρέπει να είναι \Ναι, η συμβολοσειρά ανήκειΑναγνώριση!

στη γλώσσα". Οι καταστάσεις ²; 0; 1 είναι προσωρινές και χρησιμοποιούνται μόνομέχρι να διαβαστούν δύο σύμβολα. Οι τέσσερις καταστάσεις 00, 01, 10 και 11αντιστοιχούν στους τέσσερις τύπους που περιγράψαμε παραπάνω και τα βέλη μαςλένε, για κάθε δυνατό σύμβολο, πόσο πρέπει να θυμόμαστε.

Για παράδειγμα, αν κάποια στιγμή είμαστε στην κατάσταση 01 (η τρέχουσασυμβολοσειρά τελειώνει σε 01) και το επόμενο σύμβολο είναι 1, το βέλος που

Page 83: αυτόματα και τυπικές γλώσσες dimitriou

Εισαγωγή 71

01

10

11

ε

0

1

0

1

0

1

1

0

1

1 0

0

1

0

00

0

1

Σχήμα 4.1. Αναγνωρίζοντας τη γλώσσα του Παραδείγματος 4.1

προσδιορίζεται από 1 μας λέει να ξεχάσουμε τα πάντα για τη συμβολοσειρά εκτόςαπό το γεγονός ότι τώρα τελειώνει σε 11. Παρόμοια, αν η τρέχουσα συμβολοσειράτελειώνει σε 10 και το επόμενο σύμβολο είναι 0, τότε η νέα κατάσταση θα είναι η00.

Η ερμηνεία που δίνουμε στις καταστάσεις είναι για να θυμόμαστε εύκολα τηντρέχουσα κατάσταση καθώς και το λόγο μετάβασης από τη μια στην άλλη, κατάτην ανάγνωση ενός συμβόλου. Θα μπορούσαμε να τις ονομάσουμε 1, 2, 3 ή Α,Β, Γ ή ότι άλλο όνομα προτιμάτε αρκεί να μη δημιουργείται σύγχυση σχετικά μετο πού είμαστε. Αυτό μας οδηγεί σε μια νέα ερμηνεία του διαγράμματος ως μιααφηρημένη μηχανή που κάθε φορά βρίσκεται σε μια από τις εφτά καταστάσεις που Αφηρημένη

μηχανήαυθαίρετα ονομάσαμε ², 0, 1, 00, 01, 10 και 11. Αρχικά λοιπόν ξεκινάμε από τηνκατάσταση ². Η μηχανή δέχεται σύμβολα ως είσοδο και σαν αποτέλεσμα έχει τημετάβαση από την παρούσα κατάσταση σε μια νέα κατάσταση, χρησιμοποιώνταςτο βέλος που υποδεικνύεται από το σύμβολο της εισόδου. Επίσης, κάποιες απότις καταστάσεις είναι τελικές, πράγμα που σημαίνει ότι αν η μηχανή βρεθεί σε μια Τελικές

καταστάσειςτέτοια κατάσταση διαβάζοντας το τελευταίο σύμβολο, τότε η συμβολοσειρά ανήκειστη γλώσσα.4.1Έστω § = f0; 1g και L η γλώσσα της οποίας οι συμβολοσειρές περιέχουν ακριβώς δύο0. Περιγράψτε τον τρόπο λειτουργίας και δώστε το αντίστοιχο διάγραμμα μιας μηχανήςπου αναγνωρίζει την L.

ΆσκησηΑυτοαξιολόγησης

4.1

Page 84: αυτόματα και τυπικές γλώσσες dimitriou

72 Πεπερασμένα Αυτόματα

Ο λόγος που ονομάζουμε μια τέτοια μηχανή αφηρημένη είναι γιατί δεν μας ενδιαφέ-ρει να την υλοποιήσουμε χρησιμοποιώντας κάποιου είδους εξοπλισμό. Είναι ουσια-στικά ένα σύνολο προδιαγραφών για το τι πρέπει να γίνει. Και η πιο σπουδαίαιδιότητά της είναι ότι αποτελείται από ένα πεπερασμένο σύνολο καταστάσεων, ώστεΕίδος Μνήμης

η μηχανή δε χρειάζεται να θυμάται όλη τη συμβολοσειρά που έχει διαβάσει μέχριτώρα αλλά μόνο την κατάσταση στην οποία βρίσκεται. Και αυτό είναι το μόνο είδοςμνήμης που χαρακτηρίζει τη μηχανή. Δε θα πρέπει λοιπόν να μας εκπλήσσει τογεγονός ότι μηχανές με τόσο περιορισμένη μνήμη θα πρέπει να αναγνωρίζουν μόνοαπλές γλώσσες. Και όπως θα δούμε στη συνέχεια, οι γλώσσες αυτές δε θα είναιάλλες από τις κανονικές γλώσσες του προηγούμενου κεφαλαίου. Η προσέγγισηόμως αυτή θα μας φανεί χρήσιμη και για έναν ακόμη λόγο: θα μας βοηθήσει νακαταλάβουμε, αλλά και να εντοπίσουμε, γλώσσες που δεν είναι κανονικές, κάτιπου δεν είναι προφανές χρησιμοποιώντας κανονικές εκφράσεις.

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

Ένα τυπικό παράδειγμα αποτελεί ο μηχανισμός ελέγχου μιας συνηθισμένηςμηχανής πώλησης αναψυκτικών. Μια κατάσταση εδώ αντιστοιχεί στο ποσό πουέχει συμπληρωθεί μέχρι κάποια στιγμή. Η αρχική κατάσταση αντιστοιχεί σε μηδενι-κό ποσό και κάθε κέρμα που ρίχνουμε έχει σαν αποτέλεσμα τη μετάβαση σεμια νέα κατάσταση που αντανακλά το τρέχον ποσό. Επίσης, η μονάδα ελέγχουενός υπολογιστή αποτελεί και αυτή ένα παρόμοιο σύστημα. Κάθε σήμα ελέγχου(ανάγνωση/εγγραφή στη μνήμη, αίτηση διακοπής, κλπ.) έχει σαν αποτέλεσμα τημετάβαση της μονάδας σε μια νέα κατάσταση. Αν και οι καταστάσεις είναι πάραπολλές, γιατί τα σήματα είναι πάρα πολλά, ωστόσο και αυτή η περίπτωση μπορείνα μοντελοποιηθεί με ένα τέτοιο σύστημα.4.1Δώστε δύο παραδείγματα συστημάτων που μπορούν να περιγραφούν με ένα πεπερασμένοσύνολο καταστάσεων και αντιδρούν σε κάποια είσοδο μεταβαίνοντας σε διάφορεςκαταστάσεις.

Δραστηριότητα4.1

4.2 Ορισμοί και Αναπαράσταση

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

Page 85: αυτόματα και τυπικές γλώσσες dimitriou

Ορισμοί και Αναπαράσταση 73

4.1Ένα πεπερασμένο αυτόματο ή μηχανή πεπερασμένων καταστάσεων (θα γράφουμε ΠΑ)είναι μια 5-άδα (Q;§; q0; ±; F ), όπου Q είναι ένα πεπερασμένο σύνολο τα στοιχεία τουοποίου αντιστοιχούν στις καταστάσεις της μηχανής, § είναι το αλφάβητο των συμβόλωνεισόδου, q0 2 Q είναι η αρχική κατάσταση, ± : Q£§! Q είναι η συνάρτηση μετάβασης,και F µ Q είναι το σύνολο των τελικών καταστάσεων.

Ορισμός 4.1

Οι κανόνες σύμφωνα με τους οποίους ένα αυτόματο M επιλέγει την επόμενηκατάσταση κωδικοποιούνται στη συνάρτηση μετάβασης. Έτσι, αν τοM βρίσκεταιστην q 2 Q και το επόμενο σύμβολο είναι το a 2 §, τότε ±(q; a) είναι η Συνάρτηση

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

Είσοδος0 1

² 0 10 00 011 10 11

Κατάσταση 00 00 0101 10 1110 00 0111 10 11

Πίνακας μετάβασης για τοαυτόματο που αναγνωρίζει τηγλώσσα L = fx 2 f0; 1g¤j η xτελειώνει σε 00g.

Κάθε γραμμή σ, αυτό τον πίνακα αντιστοιχεί σε μια κατάσταση του αυτόματουκαι κάθε στήλη σ, ένα σύμβολο εισόδου. Το στοιχείο του πίνακα που αντιστοιχείστη γραμμή q και στη στήλη a είναι απλά η επόμενη κατάσταση ±(q; a).

Αν κοιτάξουμε προσεχτικά τον πίνακα θα δούμε ότι υπάρχουν καταστάσεις πουσυμπεριφέρονται με τον ίδιο ακριβώς τρόπο, όπως για παράδειγμα οι καταστάσεις1, 01 και 11. Καμιά από τις τρεις δεν είναι τελική και ξεκινώντας από οποιαδήποτεκαταλήγουμε στην ίδια ακριβώς κατάσταση: η είσοδος 0 μας πάει στην 10 και ηείσοδος 1 στην 11. Εφόσον δύο συμβολοσειρές που φέρνουν τη μηχανή σ, αυτέςτις καταστάσεις δεν είναι ανάγκη να διακριθούν ούτε τώρα (καμιά κατάστασηδεν είναι τελική), ούτε ένα σύμβολο αργότερα (η μηχανή καταλήγει στην ίδιακατάσταση), συμπεραίνουμε ότι αυτές οι τρεις καταστάσεις δεν αντιπροσωπεύουντρεις ξεχωριστές περιπτώσεις και μπορούν να συγχωνευθούν σε μια νέα κατάστασηπου θα την ονομάζουμε A.

Παρόμοια, οι δύο καταστάσεις 0 και 10 μπορούν να συγχωνευθούν σε μιανέα κατάσταση που θα την ονομάζουμε B. Έτσι καταφέραμε να μειώσουμε τιςκαταστάσεις από εφτά σε τέσσερις, τις ², 00, A και B. Αλλά μπορούμε να

Page 86: αυτόματα και τυπικές γλώσσες dimitriou

74 Πεπερασμένα Αυτόματα

συνεχίσουμε και άλλο. Εφόσον η 0 ταυτίζεται με την 10 και η 1 με την 11,δεν υπάρχει λόγος να ξεχωρίζουμε τις καταστάσεις 1 και ². Άρα και η ² μπορείνα μπει στην κατηγορία A. Έχουμε λοιπόν τρεις καταστάσεις και το αντίστοιχοαυτόματο φαίνεται στο Σχήμα 4.2.

A B1

0

1

0

0

00

1 Είσοδος0 1

A B AΚατάσταση B 00 A

00 00 A

Σχήμα 4.2. Απλοποιημένο αυτόματο Παραδείγματος 4.1.

Οι νέες καταστάσεις μπορούν να ερμηνευθούν ως εξής: Η A φανερώνει ότιδεν έχει γίνει καμιά πρόοδος προς το 00: η τρέχουσα συμβολοσειρά είτε είναι ηκενή είτε τελειώνει σε 1. Η B μας λέει ότι σχεδόν έχουμε φτάσει στο σκοπό μας:το τελευταίο σύμβολο είναι 0, αλλά θέλουμε ένα ακόμη 0 για να γίνει δεκτή ησυμβολοσειρά. Τέλος, η 00 είναι η τελική κατάσταση: η συμβολοσειρά ανήκει στηγλώσσα.

Η Συνάρτηση δ*

Είδαμε λοιπόν πότε μια συμβολοσειρά αναγνωρίζεται από ένα αυτόματο. Για ναείμαστε όμως ακριβείς θα πρέπει να ορίσουμε και μαθηματικά πότε συμβαίνει αυτό.

Ας είναι M ένα αυτόματο και ± η συνάρτηση μετάβασης του. Θέλουμε ναπεριγράψουμε την κατάσταση στην οποία πηγαίνει το M ξεκινώντας από μιακατάσταση q, αυτή τη φορά όμως διαβάζοντας όχι απλά ένα σύμβολο, αλλά μιασυμβολοσειρά x. Ας συμβολίσουμε αυτή την κατάσταση με ±¤(q; x).\±¤(q; x)"

Η ±¤ είναι τώρα μια συνάρτηση από το Q£§¤ στο Q και μπορεί να περιγραφείαναδρομικά χρησιμοποιώντας τις μεθόδους της Ενότητας 2.3. Πιο συγκεκριμένα,θα θέλαμε να ορίσουμε την ±¤(q; xa) χρησιμοποιώντας την ±¤(q; x), την κατάστασηστην οποία πηγαίνει τοM ξεκινώντας από την q και διαβάζοντας τη συμβολοσειράx. Ας είναι p αυτή η νέα κατάσταση. Μα τότε ±¤(q; xa) δεν είναι παρά ηκατάσταση που προκύπτει, αν από την p διαβάσουμε το σύμβολο a ή αλλιώς±¤(q; xa) = ±(p; a). Αφού p = ±¤(q; x), συμπεραίνουμε ότι το αναδρομικό τμήματου ορισμού είναι ±¤(q; xa) = ±(±¤(q; x); a). Για τη βάση, αρκεί να ορίσουμε τησυνάρτηση όταν x = ². Αλλά όταν η είσοδος είναι η κενή συμβολοσειρά, δενπεριμένουμε το αυτόματο να αλλάξει κατάσταση, οπότε ±¤(q; ²) = q.

4.2

Page 87: αυτόματα και τυπικές γλώσσες dimitriou

Ορισμοί και Αναπαράσταση 75

ΈστωM = (Q;§; q0; ±; F ) ένα πεπερασμένο αυτόματο. Η συνάρτηση ±¤ : Q£§¤ ! Q

ορίζεται αναδρομικά ως εξής:

1. Για κάθε q 2 Q, ±¤(q; ²) = q.

2. Για κάθε q 2 Q, x 2 §¤ και a 2 §, ±¤(q; xa) = ±(±¤(q; x); a).

Ορισμός 4.2

4.2Ας χρησιμοποιήσουμε αυτό τον ορισμό για να υπολογίσουμε την ±¤(A; 0010) τουαυτόματου του Σχήματος 4.2. Ακολουθώντας τα βέλη βλέπουμε ότι πρέπει νακαταλήξουμε στην κατάσταση B. (Για να μην δημιουργείται σύγχυση με τα σύμβολαεισόδου αλλάξαμε το όνομα της κατάστασης 00 σε q00).

±¤(A; 0010) = ±(±¤(A; 001); 0)

= ±(±(±¤(A; 00); 1); 0)

= ±(±(±(±¤(A; 0); 0); 1); 0)

= ±(±(±(±¤(A; ²0); 0); 1); 0)

= ±(±(±(±(±¤(A; ²); 0); 0); 1); 0)

= ±(±(±(±(A; 0); 0); 1); 0)

= ±(±(±(B; 0); 1); 0)

= ±(±(q00; 1); 0)

= ±(A; 0)

= B

Παράδειγμα 4.2

Άλλες ιδιότητες προκύπτουν εύκολα από τον ορισμό. Θεωρήστε για παράδειγματην παρακάτω άσκηση.4.2Χρησιμοποιώντας επαγωγή, δείξτε για δύο συμβολοσειρές x και y ότι

±¤(q; xy) = ±¤(±¤(q; x); y).

ΆσκησηΑυτοαξιολόγησης

4.2

Μπορούμε τώρα να ορίσουμε πότε μια γλώσσα γίνεται δεκτή από ένα αυτόματοM .4.3Μια συμβολοσειρά x 2 §¤ αναγνωρίζεται ή γίνεται δεκτή από ένα αυτόματο M =

(Q;§; q0; ±; F ), αν, ξεκινώντας από την αρχική κατάσταση q0 και διαβάζοντας την x,το M καταλήγει σε μια τελική κατάσταση, δηλαδή αν ±¤(q0; x) 2 F . Στην αντίθετηπερίπτωση θα λέμε ότι η x απορρίπτεται από το M . Η γλώσσα που γίνεται δεκτήή αναγνωρίζεται από το M , θα τη συμβολίζουμε με L(M), είναι το σύνολο τωνσυμβολοσειρών x που γίνονται δεκτές από το M .

Ορισμός 4.3

Page 88: αυτόματα και τυπικές γλώσσες dimitriou

76 Πεπερασμένα Αυτόματα

Ένα σημείο που δεν είναι ξεκάθαρο στον παραπάνω ορισμό είναι ότι το αυτόμα-το θα πρέπει να απορρίπτει όσες συμβολοσειρές δεν ανήκουν στην L και να δέχεταιμόνο αυτές που ανήκουν στην L. Δεν αρκεί να υπάρχει κάποιο αυτόματο που ναδέχεται όλες τις συμβολοσειρές της L (μπορείτε να βρείτε ποιο είναι αυτό;), αλλάνα υπάρχει ένα αυτόματο που να μπορεί να διακρίνει μεταξύ των δύο.

4.3 Τομή και Διαφορά Κανονικών Γλωσσών

Είδαμε στο Κεφάλαιο 3 (Θεώρημα 3.1) ότι οι κανονικές γλώσσες είναι κλειστές ωςπρος τις πράξεις της ένωσης, της συνένωσης και του αστεριού Kleene. Αναφέραμεεπίσης ότι οι κανονικές γλώσσες είναι κλειστές και ως προς τις πράξεις της τομήςκαι του συμπληρώματος αλλά δε στάθηκε εύκολο να δώσουμε μια μέθοδο παραγω-γής χρησιμοποιώντας κανονικές εκφράσεις.

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

Τομή, Διαφοράαναγνωρίζουν ακριβώς τις κανονικές γλώσσες (πρέπει να περιμένουμε μέχρι τοΚεφάλαιο 5), αλλά μ, αυτό στο μυαλό μας βλέπουμε ότι οι κανονικές γλώσσεςείναι κλειστές ως προς όλες τις βασικές πράξεις.

Έστω λοιπόν ότι έχουμε δύο γλώσσες L1 και L2 πάνω σ, ένα αλφάβητο§, που αναγνωρίζονται από τα αυτόματα M1 = (P;§; p0; ±1; F1) και M2 =

(Q;§; q0; ±2; F2), αντίστοιχα. Θέλουμε να κατασκευάσουμε ένα αυτόματο M =

(R;§; r0; ±; F ), το οποίο αναγνωρίζει τη γλώσσα L1 \ L2. Διαισθητικά το Mπρέπει να εξομοιώνει τη λειτουργία των M1 και M2, καθώς επεξεργάζονται τη\Εξομοίωση"

συμβολοσειρά εισόδου, και να την αναγνωρίζει όταν και τα δύο την αναγνωρίζουν.Για να το κάνουμε αυτό αρκεί το M να \θυμάται" σε ποιά κατάσταση βρίσκονταιτα επιμέρους αυτόματα. Αν λοιπόν οι καταστάσεις τουM είναι ζεύγη [p; q] 2 P£Q(χρησιμοποιούμε αγγύλες [ ] αντί για παρενθέσεις ( ) για να είναι οι εκφράσεις πιοευανάγνωστες), τότε όταν βρίσκεται σε μια τέτοια κατάσταση θα θυμάται ότι τοM1 βρίσκεται στην p και το M2 στην q.

Αρχικά λοιπόν το M θα βρίσκεται στην κατάσταση [p0; q0] μιας και τα M1,M2 ξεκινούν από τις p0 και q0 αντίστοιχα. Όταν τοM είναι στην κατάσταση [p; q]και διαβάσει το σύμβολο a, τότε θα πάει στην κατάσταση [p0; q0] που αντανακλά τημετάβαση των M1, M2. Μ

, άλλα λόγια p0 = ±1(p; a) και q0 = ±2(q; a). Τέλος, τοM θα δεχτεί τη συμβολοσειρά μόνο όταν τα M1, M2 φτάσουν και τα δύο σε μιατελική κατάσταση. Έτσι, οι τελικές καταστάσεις του M θα είναι τα ζεύγη [p; q]για τα οποία p 2 F1 και q 2 F2.

Page 89: αυτόματα και τυπικές γλώσσες dimitriou

Τομή και Διαφορά Κανονικών Γλωσσών 77

Με παρόμοιο τρόπο μπορούμε να κατασκευάσουμε ένα αυτόματο που αναγνωρί-ζει τη γλώσσα L1 ¡ L2. Η μόνη διαφορά είναι στις τελικές καταστάσεις του M .Το M πρέπει να αναγνωρίζει τις συμβολοσειρές που ανήκουν στην L1 αλλά όχιστην L2, άρα οι τελικές καταστάσεις του M θα είναι τα ζεύγη [p; q] για τα οποίαp 2 F1 αλλά q 62 F2. Το συμπλήρωμα L01 της L1 προκύπτει εύκολα από τηνπαραπάνω περίπτωση αρκεί να παρατηρήσουμε ότι L01 = §¤¡L1. Παρ, όλα αυτάόμως υπάρχει και μια απλούστερη μέθοδος. Μπορείτε να σκεφτείτε ποια;

Θεώρημα 4.1. Αν L1, L2 είναι κανονικές γλώσσες πάνω στο §¤, τότε και οιL1 \ L2, L1 ¡ L2 είναι κανονικές.

Απόδειξη: Έστω ότι οι L1, L2 αναγνωρίζονται αντίστοιχα από τα αυτόματαM1 = (P;§; p0; ±1; F1) και M2 = (Q;§; q0; ±2; F2). Ορίζουμε M = (R;§;

r0; ±; F ), το αυτόματο που αναγνωρίζει την L1 \ L2, ως εξής:

R = P £Qr0 = [p0; q0]

F = f[p; q] j p 2 F1 και q 2 F2g± : R£§! R που ορίζεται από την ±([p; q]; a) = [±1(p; a); ±2(q; a)]

Χρησιμοποιώντας μαθηματική επαγωγή μπορούμε να δείξουμε ότι για μιασυμβολοσειρά x 2 §¤ και μια κατάσταση [p; q] του M , ισχύει

±¤([p; q]; x) = [±¤1(p; x); ±¤2(q; x)] (4.1)

το οποίο όμως αφήνουμε στην Άσκηση 4.15.

Η x γίνεται δεκτή από το αυτόματο M , αν αυτό οδηγηθεί σε μια τελικήκατάσταση, ή αλλιώς αν ±¤([p0; q0]; x) 2 F . Από την (4.1) αυτό είναιισοδύναμο με την έκφραση [±¤1(p0; x); ±¤2(q0; x)] 2 F , το οποίο, από τονορισμό του F , συμβαίνει αν και μόνο αν ±¤1(p0; x) 2 F1 και ±¤2(q0; x) 2 F2.Αλλά τότε η x ανήκει στις L1; L2, επομένως ανήκει και στην τομή τουςL1 \ L2.

Ανάλογα δουλεύουμε και για την L1 ¡ L2. Η μόνη διαφορά έγκειται στονορισμό του F , το οποίο γίνεται F = f[p; q] j p 2 F1 και q62 F2g.

Το παραπάνω θεώρημα είναι το πρώτο από μια σειρά θεωρημάτων που μαςζητούν, δοθέντος κάποιου αυτόματου, να κατασκευάσουμε ένα άλλο που να εξομοι-ώνει τη λειτουργία του πρώτου και να δέχεται μια διαφορετική γλώσσα. Η βασικήιδέα είναι η ίδια: οι καταστάσεις του νέου αυτόματου κωδικοποιούν τις καταστάσειςτου αρχικού και μ, αυτό τον τρόπο μπορεί να \θυμάται" τη λειτουργία του πρώτου.

Page 90: αυτόματα και τυπικές γλώσσες dimitriou

78 Πεπερασμένα Αυτόματα

4.3Έστω L μια κανονική γλώσσα πάνω στο f0; 1g. Κατασκευάστε ένα αυτόματο που ν,

αναγνωρίζει τη γλώσσα L0 = fx2x1x4x3 ¢ ¢ ¢x2nx2n¡1j x1x2x3x4 ¢ ¢ ¢x2n¡1x2n 2 Lg,δηλαδή δοθέντος μιας συμβολοσειράς x = x1x2x3x4 ¢ ¢ ¢x2n¡1x2n που ανήκει στην Lπρέπει να φτιάξετε ένα αυτόματο που να δέχεται την x2x1x4x3 ¢ ¢ ¢x2nx2n¡1.Υπόδειξη: Το νέο αυτόματο θα πρέπει να επεξεργάζεται τα σύμβολα εισόδου ανά δύο καινα εξομοιώνει τη λειτουργία του αυτόματου για την L.

ΆσκησηΑυτοαξιολόγησης4.3

Θα κλείσουμε αυτή την ενότητα μ, ένα παράδειγμα εφαρμογής των παραπάνω.4.3Έστω M1 και M2 τα αυτόματα του Σχήματος 4.3 τα οποία αναγνωρίζουν τις γλώσσες:

L1 = fx 2 f0; 1g¤j η x περιέχει ζυγό αριθμό άσσωνgL2 = fx 2 f0; 1g¤j η x τελειώνει σε 00:g

Παράδειγμα 4.3

AX AY

BX BY

0

1

01

0

AZ

0

11

01 BZ

0

1

Μ1∩Μ2

BX BY

0

1

01

0

0

11

0

1BZ

0

1

Μ1−Μ2AYAX AZ

1

1

M 1A B

0 0

X Y1

0

1

0

0

Z

1

M 2

Σχήμα 4.3. Τομή και διαφορά δύο γλωσσών

Θεωρήστε πρώτα το αυτόματο για την τομή L1 \L2, το οποίο αποτελείται απότις έξι καταστάσεις (p; q) 2 fA;Bg£fX;Y;Zg. Αρχική είναι η κατάσταση [A;X],από την οποία με 0 μεταβαίνουμε στην κατάσταση [A; Y ], αφού ±1(A; 0) = A

και ±2(X; 0) = Y . Παρόμοια, ±([A;X]; 1) = [B;X]. Αφού τελειώσουμε μετην αρχική κατάσταση, υπολογίζουμε τις μεταβάσεις από τις νέες καταστάσεις

Page 91: αυτόματα και τυπικές γλώσσες dimitriou

Αριθμός Καταστάσεων Αυτόματου 79

που δημιουργούνται και σταματάμε τη διαδικασία όταν πια δεν εισάγονται νέεςκαταστάσεις. Όταν σχεδιάσουμε όλες τις μεταβάσεις, μπορεί να διαπιστώσουμε ότικάποιες καταστάσεις δεν είναι προσπελάσιμες (δείτε Άσκηση 4.4) από την αρχικήκατάσταση. Αυτές μπορούμε να τις παραλείψουμε χωρίς να αλλάζει η γλώσσαπου γίνεται δεκτή από το αυτόματο. Το αποτέλεσμα φαίνεται στο Σχήμα 4.3, όπουτελική είναι η κατάσταση [A;Z], γιατί A και Z είναι οι μόνες τελικές καταστάσειςτων M1 και M2 αντίστοιχα.

Για τη διαφορά L1¡L2 δουλεύουμε αντίστοιχα. Το αυτόματο αποτελείται απότις ίδιες ακριβώς καταστάσεις και μεταβάσεις με τη μόνη διαφορά ότι τελικές είναιοι καταστάσεις [A;X] και [A; Y ].4.4Χρησιμοποιήστε την κλειστότητα των κανονικών γλωσσών για να δείξετε τα παρακάτω:

1. Αν L είναι μια κανονική και F μια πεπερασμένη γλώσσα, τότε και οι L[F , L\Fκαι L¡ F είναι κανονικές.

2. Αν η γλώσσα L δεν είναι κανονική και η F είναι πεπερασμένη, τότε και οι L[Fκαι L¡ F δεν είναι κανονικές.

ΆσκησηΑυτοαξιολόγησης

4.4

4.4 Αριθμός Καταστάσεων Αυτόματου

Στην εισαγωγή του Μέρους II αναφέραμε ότι γλώσσες που γίνονται δεκτές απότα αυτόματα είναι ακριβώς οι κανονικές γλώσσες. Την απόδειξη όμως θα τηναφήσουμε για το Κεφάλαιο 5, όταν θα έχουμε εξοικειωθεί αρκετά με τη λειτουργίατων αυτομάτων. Για την ώρα ας δούμε ποια είναι η σημασία αυτού του εναλλακτικούορισμού των κανονικών γλωσσών. Από τα όσα είπαμε μέχρι τώρα βγαίνει τοσυμπέρασμα ότι μια γλώσσα είναι κανονική αν μπορούν οι συμβολοσειρές τηςνα ταξινομηθούν σε ένα πεπερασμένο, έστω N , αριθμό περιπτώσεων ώστε αντί ναθυμόμαστε τη συμβολοσειρά ή μέρος αυτής να θυμόμαστε μόνο σε ποια περίπτωσηβρισκόμαστε. Οι N περιπτώσεις αντιστοιχούν στις καταστάσεις του αυτόματου.

ZM

ZZ

MM

MZ0

0

0

0

1 1 11

Σχήμα 4.4. Αυτόματο για ζυγό αριθμό άσσων και μηδενικών

Page 92: αυτόματα και τυπικές γλώσσες dimitriou

80 Πεπερασμένα Αυτόματα

4.4Θεωρήστε το αυτόματο του Σχήματος 4.4, το οποίο αναγνωρίζει όλες τις συμβολοσειρέςπου περιέχουν ζυγό αριθμό από άσσους και μηδενικά. Το πρώτο γράμμα σε κάθεκατάσταση φανερώνει αν το πλήθος των μηδενικών είναι Μονό ή Ζυγό και το δεύτεροφανερώνει το ίδιο για τους άσσους. Αρχική και τελική είναι η κατάσταση ZZ, η οποία μαςλέει ότι η τρέχουσα συμβολοσειρά αποτελείται από ζυγό αριθμό άσσων και μηδενικών.Κάθε 0 προκαλεί τη μετάβαση σε μια από τις καταστάσεις στα δεξιά, MZ καιMM , ότανο αριθμός των μηδενικών είναι μονός, ή στα αριστερά, ZZ και ZM , όταν ο αριθμός αυτόςείναι ζυγός. Αντίστοιχα κάθε 1 προκαλεί τη μετάβαση σε μια από τις δύο καταστάσειςκάτω, όταν ο αριθμός των άσσων είναι μονός, ή πάνω, όταν ο αριθμός αυτός είναι ζυγός.Έτσι, το αυτόματο αντί να θυμάται τον ακριβή αριθμό των άσσων και μηδενικώνχρησιμοποιεί τις καταστάσεις του για να καταγράφει μόνο αν οι αριθμοί αυτοί είναιμονοί ή ζυγοί.

Παράδειγμα 4.4

4.5Δώστε αυτόματα για τις παρακάτω γλώσσες:

1. L1 = fx 2 f0; 1g¤j η x δεν περιέχει ζυγό αριθμό άσσων και μηδενικώνg.2. L2 = fx 2 f0; 1g¤j η x περιέχει ζυγό αριθμό μηδενικών και μονό αριθμό άσσων

ή μονό αριθμό μηδενικών και ζυγό αριθμό άσσωνg.

ΆσκησηΑυτοαξιολόγησης4.5

Το ερώτημα που γεννιέται τώρα είναι τι γίνεται στην περίπτωση που δεν υπάρχειτέτοιο N , απαιτούνται δηλαδή άπειρες καταστάσεις; Σ, αυτή την περίπτωση δενπεριμένουμε να υπάρχει αυτόματο που να αναγνωρίζει τη συγκεκριμένη γλώσσα.Άρα εξ ορισμού η γλώσσα δεν μπορεί να είναι κανονική.

Υπάρχουν όμως τέτοιες γλώσσες; Σ, αυτή την ενότητα θα δούμε μια τεχνικήγια να αποδεικνύουμε πότε μια γλώσσα δεν είναι κανονική και θα εντοπίσουμε τηνπρώτη μας μη κανονική γλώσσα. Αργότερα, στο Κεφάλαιο 6, θα δούμε μια πιοβελτιωμένη τεχνική, καθώς και άλλες γλώσσες που δεν είναι κανονικές.

Ας γυρίσουμε ξανά στο Παράδειγμα 4.1, όπου είδαμε ότι η ύπαρξη διαφορετικώνκαταστάσεων είναι απαραίτητη ώστε να διακρίνονται οι διάφοροι τύποι των συμβο-λοσειρών μεταξύ τους. Για παράδειγμα οι συμβολοσειρές 010 και 1011 διακρίνονταιΔιάκριση

συμβολοσειρώνμεταξύ τους επειδή αν \κολλήσουμε" σ, αυτές ένα 0, τότε η πρώτη ανήκει στηνγλώσσα, ενώ η δεύτερη δεν ανήκει.

Αντίστροφα, όπως εξηγήσαμε κατά την απλοποίηση του αυτόματου (Ενότητα4.2), δεν υπάρχει λόγος να διακρίνουμε μεταξύ δύο συμβολοσειρών που τελειώνουνσε 11 ή σε 01. Οποιαδήποτε συμβολοσειρά και να κολλήσουμε στο τέλος τους,το αυτόματο θα βρεθεί στην ίδια κατάσταση. Φαίνεται λοιπόν ότι ο αριθμόςτων συμβολοσειρών που πρέπει να διακριθούν μεταξύ τους και ο αριθμός τωνκαταστάσεων ενός αυτόματου σχετίζονται.

Page 93: αυτόματα και τυπικές γλώσσες dimitriou

Αριθμός Καταστάσεων Αυτόματου 81

4.4Έστω L μια γλώσσα πάνω σε ένα αλφάβητο §. Θα λέμε ότι δύο συμβολοσειρές x; y;2 §¤διακρίνονται ή είναι διακρινόμενες όσον αφορά την L, αν υπάρχει συμβολοσειρά z, πουμπορεί να εξαρτάται από τις x και y, ώστε μία και μόνο μία από τις xz και yz ν, ανήκειστην L.Οι x και y είναι μη διακρινόμενες, αν δε συμβαίνει το παραπάνω: για οποιοδήποτε z, οιxz και yz ή και οι δύο ανήκουν στην L ή καμιά τους.

Ορισμός 4.4

Γυρνώντας ξανά στο προηγούμενο παράδειγμα βλέπουμε γιατί οι συμβολοσειρές0101 και 011 είναι μη διακρινόμενες. Το 0101z ανήκει στην L, αν και μόνο αντο z τελειώνει σε 00, ενώ το ίδιο ισχύει και για το 011z. Άρα, 0101z 2 L, αν καιμόνο αν 011z 2 L.

Το επόμενο θεώρημα συσχετίζει τον αριθμό των διακρινόμενων συμβολοσειρώνμε τον αριθμό των καταστάσεων ενός αυτόματου.

Θεώρημα 4.2. Έστω L μια γλώσσα, για την οποία υπάρχουν n διακρινόμενεςανά δύο συμβολοσειρές. Τότε οποιοδήποτε αυτόματο αναγνωρίζει την L πρέπεινα έχει τουλάχιστον n καταστάσεις.

Απόδειξη: Έστω M ένα αυτόματο που αναγνωρίζει την L, και έστω S

ένα σύνολο από n συμβολοσειρές, οι οποίες ανά δύο διακρίνονται μεταξύτους όσον αφορά την L. Η βασική ιδέα είναι να δείξουμε ότι οποιεσδήποτεδύο από αυτές οδηγούν το αυτόματο σε διαφορετικές καταστάσεις. Εφόσονυποθέσαμε ότι υπάρχουν n συμβολοσειρές στο S, συμπεραίνουμε ότι θαυπάρχουν τουλάχιστον n καταστάσεις στο αυτόματο.

Έστω x και y δύο από αυτές. Από τον Ορισμό 4.4 προκύπτει ότι υπάρχεικάποιο z ώστε μόνο μια από τις xz και yz ν, ανήκει στην L. Εφόσον το Mαναγνωρίζει την L, μόνο μια από τις ±¤(q0; xz) και ±¤(q0; yz) είναι τελικήκατάσταση. Άρα,

±¤(q0; xz)6= ±¤(q0; yz)

ή αλλιώς (από Άσκηση Αυτοαξιολόγησης 4.2),

±¤(±¤(q0; x); z)6= ±¤(±¤(q0; y); z)

Ας ονομάσουμε p και q τις καταστάσεις ±¤(q0; x) και ±¤(q0; y), αντίστοιχα.Εφόσον ±¤(p; z)6= ±¤(q; z), συμπεραίνουμε ότι p6= q και η απόδειξη είναιπλήρης.

Page 94: αυτόματα και τυπικές γλώσσες dimitriou

82 Πεπερασμένα Αυτόματα

4.5Έστω Ln η ακόλουθη γλώσσα για κάποιο ακέραιο n ¸ 1:

Ln = fx 2 f0; 1g¤j jxj ¸ n και το n-οστό σύμβολο από τα δεξιά είναι 1g:

Θα δείξουμε ότι ένα αυτόματο για την Ln πρέπει να έχει τουλάχιστον 2n καταστάσεις.Σύμφωνα με το Θεώρημα 4.2 αρκεί να βρούμε ένα σύνολο από 2n συμβολοσειρές, οιοποίες διακρίνονται μεταξύ τους ανά δύο.Έστω S το σύνολο όλων των συμβολοσειρών μήκους n. Το μέγεθος του S είναι φυσικά2n. Θεωρήστε δύο από αυτές, τις x και y, οι οποίες διαφέρουν στη θέση i, 1 ∙ i ∙ n.Αν i = n, τότε αυτές διαφέρουν στο αριστερότερο σύμβολο και φυσικά διακρίνονταιόσον αφορά την Ln, αφού μόνο η μια ανήκει στην γλώσσα (στον Ορισμό 4.4 θέτουμεz = ²). Αλλιώς, i < n. Σ, αυτή την περίπτωση διαλέγουμε τη z να είναι οποιαδήποτεσυμβολοσειρά μήκους n¡ i. Αλλά τότε οι δύο συμβολοσειρές xz και yz διαφέρουν στηn-οστή θέση, οπότε μόνο μία ανήκει στη γλώσσα. Άρα οι x και y είναι διακρινόμενεςόσον αφορά την Ln.

Παράδειγμα 4.5

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

Θεώρημα 4.3. Η γλώσσα P = fx 2 f0; 1g¤j η x είναι παλινδρομικήg δενείναι κανονική.

Απόδειξη: Ας υποθέσουμε ότι υπάρχει ένα αυτόματο, n καταστάσεων,που αναγνωρίζει τη γλώσσα P . Με βάση το Θεώρημα 4.2, αν βρούμε ένασύνολο από m > n συμβολοσειρές, οι οποίες είναι διακρινόμενες ανά δύοόσον αφορά την P , τότε οποιοδήποτε αυτόματο για τη γλώσσα P θα πρέπει νααποτελείται από τουλάχιστον m καταστάσεις. Εφόσον υποθέσαμε την ύπαρξηενός αυτόματου n καταστάσεων για την P και οδηγηθήκαμε σε αντίφαση,συμπεραίνουμε ότι τέτοιο αυτόματο δε μπορεί να υπάρχει.

Θεωρήστε τις ακόλουθες m συμβολοσειρές: 1, 11, 111 και γενικότερα 1i, γιαόλα τα i ∙ m. Για να δείξουμε ότι οποιεσδήποτε δύο, έστω οι 1k, 1j όπουk6= j, διακρίνονται μεταξύ τους αρκεί να βρούμε ένα z ώστε μόνο μια απότις 1kz, 1jz να είναι παλινδρομική. Αυτό είναι εύκολο. Επιλέξτε το z να είναιτο 01k. Τότε 1kz = 1k01k, η οποία είναι παλινδρομική, ενώ η 1jz = 1j01k

δεν είναι.

4.6Δείξτε, χρησιμοποιώντας το Θεώρημα 4.2, ότι ο αριθμός καταστάσεων του αυτόματουτου Σχήματος 4.2 είναι ο ελάχιστος δυνατός.

ΆσκησηΑυτοαξιολόγησης4.6

Page 95: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 83

ΑΣΚΗΣΕΙΣ

4.1 Σ, αυτή την άσκηση θα προσπαθήσουμε να περιγράψουμε τη λειτουργίαμιας μηχανής πώλησης αναψυκτικών. Για ν, απλοποιήσουμε τη συζήτησηθα υποθέσουμε τα εξής:

² Η μηχανή έχει ένα μόνο είδος αναψυκτικού το οποίο κοστίζει πενήνταδραχμές.

² Η μηχανή δέχεται νομίσματα των 10, 20, 50 δραχμών και δε δίνειρέστα.

² Κάθε στιγμή ο αγοραστής μπορεί να ρίξει ένα από τα παραπάνω νομί-σματα ή να πατήσει ένα κουμπί για την απελευθέρωση του αναψυκτικού.

² H μηχανή επιστρέφει το αναψυκτικό μόλις πατηθεί το κουμπί και αφούέχουν συμπληρωθεί πενήντα ή περισσότερες δραχμές. Τότε επανέρχεταιστην αρχική της κατάσταση.

Δώστε το διάγραμμα καταστάσεων της παραπάνω μηχανής.

4.2 Έστω § = f0; 1g. Κατασκευάστε αυτόματα που αναγνωρίζουν τις παρακάτωγλώσσες:

α) Oι συμβολοσειρές της L περιέχουν τουλάχιστον δύο 0.

β) Οι συμβολοσειρές της L δεν περιέχουν το 111.

γ) Οι συμβολοσειρές της L δεν περιέχουν ούτε το 00 ούτε το 11.

δ) Oι συμβολοσειρές της L έχουν περιττό αριθμό από 1 και ζυγό αριθμόαπό 0.

4.3 Δώστε ένα αυτόματο που δέχεται τη γλώσσα L4 (Παράδειγμα 4.5). Απόπόσες καταστάσεις αποτελείται το αυτόματό σας; Πώς θα περιγράφατε τησυνάρτηση μετάβασης του αυτόματου για τη γλώσσα Ln;

4.4 Μια κατάσταση q ενός αυτόματου M = (Q;§; q0; ±; F ) λέγεται προσπελάσι-μη, αν υπάρχει x 2 §¤ τέτοιο ώστε ±¤(q0; x) = q. Δείξτε ότι, αν διαγράψουμεόλες εκείνες τις καταστάσεις του M που δεν είναι προσπελάσιμες (μαζί μετις μεταβάσεις από και προς αυτές), το αυτόματο δέχεται την ίδια γλώσσα.

4.5 Δείξτε ότι το αυτόματο του Σχήματος 4.5 αναγνωρίζει όλες τις συμβολοσειρέςπου περιέχουν ίσο αριθμό από 0 και 1, και κάθε τμήμα τους περιέχει τοπολύ ένα παραπάνω 0 από 1 ή το πολύ ένα παραπάνω 1 από 0. Υπόδειξη:Χαρακτηρίστε τις καταστάσεις του αυτόματου και χρησιμοποιήστε επαγωγή.

Page 96: αυτόματα και τυπικές γλώσσες dimitriou

84 Πεπερασμένα Αυτόματα

3

1

4

20

1

1

1 0 0

0,1

Σχήμα 4.5. Διάγραμμα καταστάσεων ενός αυτόματου

1

0

3

21

10

M 1

0,1

1

0

3

0,1

M 2

0,1

1 2

1

2

3

4

0,10

1

1

0

0

1

M 3

A

0 C

B1

0

0

1

1

0 01

1

M 4

0,1

Σχήμα 4.6. Διάφορα πεπερασμένα αυτόματα

4.6 Ποιες γλώσσες αναγνωρίζουν τα αυτόματα του Σχήματος 4.6;

4.7 Δείξτε, σχεδιάζοντας τα αντίστοιχα αυτόματα, ότι οι παρακάτω γλώσσες είναικανονικές.

α) fx 2 f0; 1g¤j η x αναπαριστά ένα δυαδικό αριθμό που διαιρείται με το2g.β) fx 2 f0; 1; :::; 9g¤j η x αναπαριστά ένα δεκαδικό αριθμό πολλαπλάσιοτου 5g.

4.8 Βρείτε ένα αυτόματο που αναγνωρίζει τη γλώσσα όλων των συμβολοσειρώναπό 0 και 1, ώστε αν ερμηνευθούν σαν δυαδικοί αριθμοί, είναι πολλαπλάσια

Page 97: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 85

του 3. Υπόδειξη: Μόνο τρεις καταστάσεις είναι απαραίτητες, οι οποίεςαναπαριστούν το υπόλοιπο της διαίρεσης με τον αριθμό 3. Θυμηθείτε επίσηςότι η συμβολοσειρά εισάγεται στο αυτόματο από αριστερά προς τα δεξιά.

4.9 Σχεδιάστε αυτόματα για τις γλώσσες που παράγονται από τις ακόλουθεςεκφράσεις:

α) 0¤1(0 + 1)¤

β) (00 + 01 + 10 + 11)¤

γ) (0 + 01)¤

4.10 Το διάγραμμα κατάστασης μιας μηχανής Mealy μοιάζει με αυτό ενός συνηθι-σμένου αυτόματου, εκτός από το γεγονός ότι κάθε βέλος έχει την ένδειξηa=w, που σημαίνει \αν το σύμβολο εισόδου είναι το a, ακολούθησε το βέλοςκαι δώσε σαν έξοδο το w". Μ, άλλα λόγια, η μηχανή αυτή χρησιμοποιείταιγια να μεταμορφώνει μια ακολουθία εισόδου σε μια άλλη ακολουθία. Έτσι,αφού δεν έχει νόημα να μιλάμε για αναγνώριση μιας γλώσσας, δεν υπάρχουντελικές καταστάσεις. Για παράδειγμα, η μηχανή Mealy του Σχήματος 4.7παράγει έξοδο a για κάθε 01 που διαβάζει στην είσοδο (² είναι η κενήσυμβολοσειρά).

M1

0/ε

0/ε

1/a2

1/ε

Σχήμα 4.7. Ένα Mealy αυτόματο

α) Δώστε ένα ορισμό για το αυτόματο Mealy, ανάλογο με τον Ορισμό 4.1.

β) Από πόσες καταστάσεις αποτελείται το αυτόματο Mealy που αντιστρέφειτα 0 και 1 στην έξοδο;

γ) Σχεδιάστε ένα αυτόματο Mealy που παράγει a, αν το τρέχων σύμβολοεισόδου είναι ίδιο με το προηγούμενο, και b διαφορετικά.

δ) Σχεδιάστε ένα αυτόματο Mealy που παράγει a για κάθε 00 ή 11 πουδιαβάζει στην είσοδο.

4.11 Έστω § και ¢ δύο αλφάβητα και h μια συνάρτηση από το § στο ¢¤.Μπορούμε να επεκτείνουμε την h από το §¤ στο ¢¤ με τον ακόλουθο

Page 98: αυτόματα και τυπικές γλώσσες dimitriou

86 Πεπερασμένα Αυτόματα

αναδρομικό ορισμό:

h(²) = ²

h(xa) = h(x)h(a); για κάποια x 2 §¤; a 2 §

Για παράδειγμα, αν § = f0; 1g, ¢ = fa; bg, h(0) = a και h(1) = ab, τότεh(0010) = aaaba. Κατ, επέκταση, αν L είναι μια γλώσσα, τότε:

h(L) = fh(x)j x 2 Lg

Έτσι, h(§¤) = fa; abg¤, είναι η γλώσσα των συμβολοσειρών που αρχίζουνμε a και κάθε a ακολουθείται από b.

α) Αν η L είναι κανονική, κατασκευάστε ένα αυτόματο για την h(L).

β) Αν M είναι το αυτόματο που αναγνωρίζει την L µ ¢¤, κατασκευάστεένα αυτόματο M 0 για την h¡1(L) = fy 2 §¤j h(y) 2 Lg. Υπόδειξη: Όταντο M 0 διαβάζει ένα σύμβολο a 2 §, θα πρέπει να εξομοιώνει τη λειτουργίατου M πάνω στο h(a).

4.12 Έστω IL η ακόλουθη σχέση πάνω στο §¤. Για δύο συμβολοσειρές x; y 2 §¤,xILy αν και μόνο αν οι x και y δεν είναι διακρινόμενες όσον αφορά την L.Βρείτε τι είδους σχέση είναι η IL.

4.13 Έστω M = (Q;§; q0; ±; F ) ένα αυτόματο που αναγνωρίζει μια γλώσσα L.Ορίζουμε

Lq = fx 2 §¤j ±¤(q0; x) = qg

το σύνολο των συμβολοσειρών που οδηγούν το αυτόματο από την αρχικήστην κατάσταση q. Δείξτε ότι για κάθε x; y 2 Lq έχουμε xILy.

4.14 Κάτω από ποιές προϋποθέσεις δύο σύνολα Lp, Lq, όπου p6= q, αποτελούνκλάσεις ισοδυναμίας της IL; Δείξτε ότι σε κάθε περίπτωση ο αριθμός τωνκλάσεων αυτών είναι πεπερασμένος.

4.15 Ολοκληρώστε την απόδειξη του Θεωρήματος 4.1. Αποδείξτε για μια συμβο-λοσειρά x 2 §¤ και μια κατάσταση [p; q] του M ότι

±¤([p; q]; x) = [±¤1(p; x); ±¤2(q; x)]:

4.16 Έστω L1; L2 µ §¤. Κατασκευάστε αυτόματα που δέχονται τις γλώσσεςL1 [ L2 και L01. Για το συμπλήρωμα L01, χρησιμοποιήστε μια απευθείαςπροσέγγιση.

Page 99: αυτόματα και τυπικές γλώσσες dimitriou

Σύνοψη 87

A B0

0

1 1

M 1Z

0

1

0,1

YX

1

0M 2

P Q1

0

1

0

0

R

1

M 3

Σχήμα 4.8. Αυτόματα Άσκησης 4.17

4.17 Θεωρήστε τα αυτόματα του Σχήματος 4.8:

α) Ποιές είναι οι γλώσσες που γίνονται δεκτές από τα M1;M2 και M3;

β) Σχεδιάστε τα αυτόματα που αναγνωρίζουν τις L1 [L2, L2 \L3, L1¡L3,L2 [ L3, L2 ¡ L3, L01, L03.

Σύνοψη

Στο κεφάλαιο αυτό μιλήσαμε για μηχανές πεπερασμένων καταστάσεων ή αλλιώςαυτόματα. Οι μηχανές αυτές συναντούνται αρκετά στην καθημερινή μας ζωή. Ωςπαραδείγματα θα μπορούσε να αναφέρει κανείς τις μηχανές που πουλάνε αναψυκτικά,τους υπολογιστές χειρός, κλπ. Η χρήση όμως που μας ενδιαφέρει σε αυτό το βιβλίοείναι αυτή της αναγνώρισης γλωσσών. Με τον όρο αναγνώριση εννοούμε πως, αν μιασυμβολοσειρά x δοθεί ως είσοδος σ, ένα αυτόματο M , αυτό θα πρέπει, διαβάζονταςτα σύμβολα της x ένα-ένα από αριστερά προς τα δεξιά, να αποφασίσει αν η x ανήκειή όχι στη γλώσσα. Αυτό είναι δυνατό γιατί το M χρησιμοποιεί τις καταστάσεις τουγια να \θυμάται" τις ιδιότητες που χαρακτηρίζουν τη x και γενικότερα τη γλώσσα L.Έτσι, αν το M , διαβάζοντας το τελευταίο σύμβολο έρθει σε μια από τις λεγόμενεςτελικές καταστάσεις, τότε η συμβολοσειρά ανήκει στην L.

Οι κανόνες σύμφωνα με τους οποίους το M επιλέγει την επόμενη κατάστασηκωδικοποιούνται στη συνάρτηση μετάβασης ±. Αν το αυτόματο βρίσκεται σε μιακατάσταση q και το επόμενο σύμβολο είναι το a, τότε ±(q; a) είναι η μοναδικήεπόμενη κατάσταση στην οποία περνάει το M . Κατ, επέκταση, ±¤(q; x) είναι ηκατάσταση που βρίσκεται το αυτόματο, αν από την q διαβάσει μια συμβολοσειρά x.

Page 100: αυτόματα και τυπικές γλώσσες dimitriou

88 Πεπερασμένα Αυτόματα

Έτσι, η γλώσσα που γίνεται δεκτή από το M είναι το σύνολο των συμβολοσειρώνπου οδηγούν το αυτόματο από την αρχική σε μια τελική κατάσταση.

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

Τέλος, ο αριθμός των καταστάσεων ενός αυτόματου σχετίζεται με τον αριθμό τωνσυμβολοσειρών που διακρίνονται μεταξύ τους. Δύο συμβολοσειρές x; y διακρίνονται,όσον αφορά μια γλώσσα L, αν υπάρχει μια συμβολοσειρά z ώστε μόνο μία εκτων xz; yz ν, ανήκει στην L. Αν λοιπόν υπάρχει ένα σύνολο από n διακρινόμενεςμεταξύ τους συμβολοσειρές, τότε οποιοδήποτε αυτόματο για την L θα αποτελείταιαπό τουλάχιστον n καταστάσεις. Έτσι, αν για μια γλώσσα L υπάρχουν αυθαίρεταμεγάλα σύνολα από διακρινόμενες συμβολοσειρές, αυτή η γλώσσα δεν μπορεί ναείναι κανονική.

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης

Άσκηση 4.1 Έστω L η γλώσσα fx 2 f0; 1g¤j η x περιέχει ακριβώς δύο μηδενικάg.Θέλουμε να περιγράψουμε τον τρόπο λειτουργίας μιας μηχανήςM που αναγνωρίζειτην L. Εφόσον η βασική ιδιότητα που χαρακτηρίζει τις συμβολοσειρές της L είναιο αριθμός των μηδενικών, θα χρησιμοποιήσουμε τις καταστάσεις της M για να\θυμόμαστε" από πόσα μηδενικά αποτελείται μια συμβολοσειρά x. Θα απαιτηθούνγια το λόγο αυτό τρεις βασικές καταστάσεις.

Αρχική είναι η κατάσταση q0, η οποία φανερώνει ότι δεν έχουν διαβαστείκαθόλου μηδενικά. Παραμένουμε λοιπόν σ, αυτή όσο διαβάζουμε άσσους. Μόλιςδιαβαστεί το πρώτο 0, μεταβαίνουμε στην κατάσταση q1. Εφόσον αυτή μαςυπενθυμίζει ότι στην τρέχουσα συμβολοσειρά υπάρχει ένα μηδενικό, δεν υπάρχειλόγος να φύγουμε από αυτή όσο διαβάζουμε άσσους. Όταν όμως διαβαστεί άλλοένα μηδενικό, τότε μεταβαίνουμε στην κατάσταση q2, που είναι και η τελική.Αν παραμείνουμε σ, αυτή διαβάζοντας και το τελευταίο σύμβολο της x, τότε ησυμβολοσειρά ανήκει στη γλώσσα. Αν όμως διαβαστεί ένα ακόμη μηδέν τότεπηγαίνουμε στην κατάσταση q3, στην οποία και παγιδευόμαστε. Η μηχανή παραμέ-νει σε αυτή την κατάσταση και ποτέ δεν πρόκειται να αναγνωρίσει τη συμβολοσειράεισόδου. Όλα τα παραπάνω φαίνονται στο διάγραμμα του Σχήματος 4.9.

Page 101: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης 89

1

0q3q0 q1 q2

0 0

1 1 0,1

Σχήμα 4.9. Διάγραμμα καταστάσεων

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

Άσκηση 4.2 Θέλουμε να αποδείξουμε ότι η κατάσταση που καταλήγει το αυτόματοδιαβάζοντας τη συμβολοσειρά xy, προκύπτει αν από την κατάσταση, όπου βρίσκεταιόταν διαβάσει τη x, συνεχίσει και διαβάσει την y, ή αλλιώς

±¤(q; xy) = ±¤(±¤(q; x); y):

Θα χρησιμοποιήσουμε επαγωγή στο μήκος n της συμβολοσειράς y. Ας είναι pη κατάσταση που μεταβαίνει το αυτόματο διαβάζοντας τη συμβολοσειρά x, δηλαδήp = ±¤(q; x).

Βάση: Έστω n = 0. Άρα y είναι η κενή συμβολοσειρά. Θα έχουμε λοιπόν

±¤(q; xy) = ±¤(q; x²)

= ±¤(q; x)

= p

= ±¤(p; ²) Ορισμός ±¤, Κανόνας 1

= ±¤(±¤(q; x); ²)

= ±¤(±¤(q; x); y)

Επαγωγική Υπόθεση: Έστω ότι k ¸ 0 και για οποιαδήποτε συμβολοσειρά yμήκους k ισχύει ±¤(q; xy) = ±¤(±¤(q; x); y).

Επαγωγικό Βήμα: Θα δείξουμε το ίδιο και για μια συμβολοσειρά y, μήκους k+1.Εφόσον η y μπορεί να εκφραστεί ως za, όπου z μια συμβολοσειρά μήκους k καιa ένα σύμβολο του αλφαβήτου, έχουμε:

Page 102: αυτόματα και τυπικές γλώσσες dimitriou

90 Πεπερασμένα Αυτόματα

±¤(q; xy) = ±¤(q; xza)

= ±¤(q; (xz)a)

= ±(±¤(q; xz); a) Oρισμός ±¤, Κανόνας 2

= ±(±¤(±¤(q; x); z); a) Επαγωγική Υπόθεση

= ±(±¤(p; z); a) Θέτοντας p = ±¤(q; x)

= ±¤(p; za) Oρισμός ±¤, Κανόνας 2

= ±¤(±¤(q; x); za) p = ±¤(q; x)

= ±¤(±¤(q; x); y) y = za

Άσκηση 4.5 Δώστε αυτόματα για τις παρακάτω γλώσσες:

1. L1 = fx 2 f0; 1g¤j η x δεν περιέχει ζυγό αριθμό άσσων και μηδενικώνg.Αν προσέξετε θα δείτε ότι η L1 είναι το συμπλήρωμα της γλώσσας L, τουΣχήματος 4.4. Αν η κατάσταση ZZ παραμείνει τελική, τότε το αυτόματοθα εξακολουθεί να αναγνωρίζει συμβολοσειρές της L. Δε θα πρέπει λοιπόννα επιτρέψουμε κάτι τέτοιο. Ποιες όμως θα είναι οι τελικές καταστάσειςτου νέου αυτόματου; Η απάντηση είναι όλες οι υπόλοιπες. Οι δυνατοίσυνδυασμοί άσσων και μηδενικών εκφράζονται από τις τέσσερις καταστάσειςZZ, ZM ,MZ,MM . Άρα τελικές θα είναι οι καταστάσεις ZM ,MZ,MM .

2. L2 = fx 2 f0; 1g¤j η x περιέχει ζυγό αριθμό μηδενικών και μονό αριθμόάσσων ή μονό αριθμό μηδενικών και ζυγό αριθμό άσσωνg. Πάλι ένα αυτόμα-το για την L2 θα αποτελείται από τις τέσσερις καταστάσεις ZZ, ZM , MZ,MM . Τελικές όμως θα είναι οι καταστάσεις ZM , MZ, οι οποίες αντιστοι-χούν στις δύο περιπτώσεις της άσσων και μηδενικών της L2.

Συγχαρητήρια, αν βρήκατε τη σωστή απάντηση. Αν όχι, μην απογοητεύεστε.Αυτή ήταν μια \πονηρή" ερώτηση.

Άσκηση 4.6 Έστω L η γλώσσα fx 2 f0; 1g¤j η x τελειώνει σε 00g και M τοαυτόματο του Σχήματος 4.2, το οποίο την αναγνωρίζει. Θέλουμε να δείξουμε ότι οαριθμός καταστάσεων τουM είναι ο ελάχιστος δυνατός. Σύμφωνα με το Θεώρημα4.2, αρκεί να βρούμε ένα σύνολο από τρεις συμβολοσειρές οι οποίες, ανά δύο, είναιδιακρινόμενες μεταξύ τους όσον αφορά την L.

Μια καλή επιλογή είναι τρεις συμβολοσειρές που αντιστοιχούν στις τρεις κατα-στάσεις του αυτόματου. Θεωρήστε για παράδειγμα τις ², 0 και 00. Για να δείξουμεότι είναι διακρινόμενες μεταξύ τους αρκεί να βρούμε μια συμβολοσειρά z, όχιαπαραίτητα την ίδια κάθε φορά, ώστε μόνο η μια από οποιεσδήποτε δύο ν, ανήκειστη γλώσσα.

Page 103: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης 91

Η επιλογή της z φαίνεται παρακάτω:

z = 0 ! ²z62 L αλλά 0z 2 Lz = ² ! ²z62 L αλλά 00z 2 Lz = ² ! 0z62 L αλλά 00z 2 L

Στην πρώτη περίπτωση συγκρίνονται οι συμβολοσειρές ² και 0, στη δεύτερη οι² και 00 και στη τρίτη οι 0 και 00. Εφόσον κάθε φορά μόνο μια ανήκει στηγλώσσα, σύμφωνα με το Θεώρημα 4.2 ένα αυτόματο που αναγνωρίζει την L θαχρειάζεται τουλάχιστον τρεις καταστάσεις. Αλλά εμείς ήδη έχουμε κατασκευάσειένα αυτόματο με τρεις καταστάσεις. Άρα ο αριθμός αυτός είναι ο καλύτεροςδυνατός.

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

Άσκηση 4.3 Έστω M = (Q;§; q0; ±; F ) ένα αυτόματο που δέχεται μια γλώσσαL. Θα κατασκευάσουμε ένα αυτόματο M 0 που θα αναγνωρίζει τη γλώσσα

L0 = fx2x1x4x3 ¢ ¢ ¢x2nx2n¡1j x1x2x3x4 ¢ ¢ ¢x2n¡1x2n 2 Lg:

Το νέο αυτόματο πρέπει να επεξεργάζεται τα σύμβολα εισόδου ανά δύο. Αρχικά\αποθηκεύει" το πρώτο σύμβολο, έστω a, στη μνήμη του και στη συνέχεια διαβάζο-ντας το δεύτερο σύμβολο b μεταβαίνει στην κατάσταση που θα πήγαινε τοM , αν ηείσοδος ήταν το ba. Πώς όμως μπορεί να γίνει αυτό; Καταρχήν τοM 0 έχει τις ίδιεςκαταστάσεις με το M συν μερικές βοηθητικές. Έστω τώρα ότι το M 0 βρίσκεταιστην κατάσταση q και διαβάζει το σύμβολο a. Λέγοντας ότι θυμάται το a εννοούμεότι μεταβαίνει σε μια κατάσταση [q; a], η οποία καταγράφει ακριβώς την παραπάνωπληροφορία. Διαβάζοντας τώρα το δεύτερο σύμβολο είναι εύκολο να βρούμε πουθα πήγαινε το M ξεκινώντας από την q. Θα πήγαινε στην κατάσταση ±¤(q; ba).Άρα το M 0 αποτελείται από τις καταστάσεις Q [Q£ §, έχει την ίδια αρχική καιτελικές καταστάσεις με το M και η συνάρτηση μετάβασης του ±0 ορίζεται όπωςπαρακάτω:

1. ±0(q; a) = [q; a]

2. ±0([q; a]; b) = ±(q; ba)

Page 104: αυτόματα και τυπικές γλώσσες dimitriou

92 Πεπερασμένα Αυτόματα

Θα δείξουμε τώρα, χρησιμοποιώντας επαγωγή στο n, ότι για κάθε κατάσταση q,

±0¤(q; x2x1x4x3 ¢ ¢ ¢x2nx2n¡1) = ±¤(q; x1x2x3x4 ¢ ¢ ¢x2n¡1x2n):

Αν ισχύει αυτό τότε τα δύο αυτόματα ξεκινώντας από την αρχική κατάσταση q0φτάνουν στην ίδια κατάσταση. Άρα η x2x1x4x3 ¢ ¢ ¢x2nx2n¡1 ανήκει στην L0, ανκαι μόνο αν η x1x2x3x4 ¢ ¢ ¢x2n¡1x2n ανήκει στην L.

Βάση: Για n = 0 έχουμε ±0¤(q; ²) = q = ±¤(q; ²).

Επαγωγική Υπόθεση: Έστω ότι για οποιοδήποτε k ¸ 0 ισχύει

±0¤(q; x2x1x4x3 ¢ ¢ ¢x2kx2k¡1) = ±¤(q; x1x2x3x4 ¢ ¢ ¢x2k¡1x2k)= p για κάποια κατάσταση p

Επαγωγικό Βήμα: Θα δείξουμε το ίδιο και για n = k + 1. Θα έχουμε

±0¤(q; x2x1x4x3 ¢ ¢ ¢x2kx2k¡1x2k+2x2k+1) = ±0¤(p; x2k+2x2k+1) Ιδιότητα ±0¤= ±0([p; x2k+2]; x2k+1) ±0, Κανόνας 1= ±¤(p; x2k+1x2k+2) ±0, Κανόνας 2

Η τελική όμως έκφραση δεν είναι παρά η

±¤(q; x1x2x3x4 ¢ ¢ ¢x2k¡1x2kx2k+1x2k+2)

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

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

Άσκηση 4.4 Θα χρησιμοποιήσουμε την κλειστότητα των κανονικών γλωσσών ωςπρος τις πράξεις της ένωσης, της τομής και του συμπληρώματος για να δείξουμετα παρακάτω:

1. Αν L είναι μια κανονική και F μια πεπερασμένη γλώσσα, τότε και οι L[F ,L \ F και L¡ F είναι κανονικές.

Κάθε πεπερασμένη γλώσσα F είναι κανονική σύμφωνα με το Θεώρημα 3.2,γιατί μπορεί να γραφεί ως (x1 + x2 + ¢ ¢ ¢+ xn), όπου xi οι συμβολοσειρέςτης F . Άρα με βάση το Θεώρημα 4.1 όλες οι παραπάνω γλώσσες είναικανονικές.

2. Αν η γλώσσα L δεν είναι κανονική και η F είναι πεπερασμένη, τότε και οιL [ F και L¡ F δεν είναι κανονικές.

Page 105: αυτόματα και τυπικές γλώσσες dimitriou

Λεξιλόγιο Αγγλικών Όρων 93

Θα αποδείξουμε τον παραπάνω ισχυρισμό πέφτοντας σ, αντίφαση. Έστωλοιπόν ότι οι L [ F , L¡ F είναι κανονικές. Θα δείξουμε, καταλήγοντας σεάτοπο, ότι και η L είναι κανονική.

Η L μπορεί να εκφραστεί ως L1 [ L2, όπου L1 = L¡ F και L2 = L \ F .Η L1 από υπόθεση είναι κανονική, όπως επίσης και η L2, ως υποσύνολοπεπερασμένης γλώσσας (της F ). Εφόσον και οι δύο είναι κανονικές, τοίδιο θα ισχύει και για την L. Ο λόγος που πέσαμε σε αντίφαση είναι γιατίυποθέσαμε ότι η L ¡ F είναι κανονική. Άρα η L ¡ F δεν μπορεί να είναικανονική.

Παρόμοια, η L μπορεί να εκφραστεί ως M1 [M2, όπου M1 = L [ F καιM2 = F ¡ L. Η M1 από υπόθεση είναι κανονική, όπως επίσης και η M2,ως υποσύνολο πεπερασμένης γλώσσας (της F ). Εφόσον και οι δύο είναικανονικές, το ίδιο θα ισχύει και για την L. Όπως παραπάνω, πέσαμε σεαντίφαση, γιατί υποθέσαμε ότι η L [ F είναι κανονική. Άρα η L [ F δεμπορεί να είναι κανονική.

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

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝ

αυτόματο automaton συνάρτηση μετάβασης transition function

κατάσταση state πίνακας μετάβασης transition table

διάγραμμα καταστάσεως state diagram γίνεται δεκτή is accepted

σύμβολα εισόδου input symbols αναγνωρίζεται is recognized

αρχική κατάσταση initial state διακρινόμενες distinguished

τελική κατάσταση final state

Page 106: αυτόματα και τυπικές γλώσσες dimitriou

94 Πεπερασμένα Αυτόματα

Page 107: αυτόματα και τυπικές γλώσσες dimitriou

ΜΗ ΝΤΕΤΕΡΜΙΝΙΣΜΟΣ

Κ Ε Φ Α Λ Α Ι Ο

Σκοπός

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

Προσδοκώμενα Αποτελέσματα

Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε:

² να εξηγήσετε τη διαφορά μεταξύ ντετερμινιστικών και μη αυτομάτων,

² ν, αναφέρετε τουλάχιστον δύο πλεονεκτήματα της χρήσης αυτών των αυτομάτων,

² να περιγράψετε τη συνάρτηση μετάβασης και να δώσετε τον ορισμό της γλώσσαςπου γίνεται δεκτή από ένα μη ντετερμινιστικό αυτόματο,

² ν, αναφέρετε τι είναι οι ²-κινήσεις σ, ένα αυτόματο,

² να εξαλείψετε τις ²-κινήσεις από ένα μη ντετερμινιστικό αυτόματο,

² να μετατρέψετε ένα μη ντετερμινιστικό αυτόματο σ, ένα ντετερμινιστικό πουδέχεται την ίδια γλώσσα,

² να κατασκευάζετε για κάθε κανονική έκφραση ένα αυτόματο που αναγνωρίζειτην αντίστοιχη γλώσσα,

² να κατασκευάζετε για κάθε αυτόματο μια έκφραση που περιγράφει τη γλώσσαπου γίνεται δεκτή από το αυτόματο.

95

Page 108: αυτόματα και τυπικές γλώσσες dimitriou

96 Μη Ντετερμινισμός

Έννοιες-κλειδιά

² Μη ντετερμινιστικό πεπερασμένο αυτόματο (ΜΠΑ)

² Διαφορά ΜΠΑ από Πεπερασμένα Αυτόματα (ΠΑ)

² Συνάρτηση μετάβασης ± και ±¤

² Γλώσσα που αναγνωρίζεται ή γίνεται δεκτή από ένα ΜΠΑ² Μη ντετερμινιστικά αυτόματα με ²-κινήσεις² Σύνολο καταστάσεων αυτόματου προσπελάσιμων μόνο με ²-κινήσεις² Ισοδυναμία ΜΠΑ με ²-κινήσεις με απλά ΜΠΑ² Ισοδυναμία ΜΠΑ με ντετερμινιστικά αυτόματα² Θεώρημα Kleene

Εισαγωγικές Παρατηρήσεις

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

5.1 Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα

Το κύριο χαρακτηριστικό των πεπερασμένων αυτόματων, όπως τα περιγράψαμεέως τώρα, είναι η μοναδικότητα της επόμενης κατάστασης. Αν είμαστε σε μιακατάσταση q και το σύμβολο εισόδου είναι το a, τότε η επόμενη κατάσταση είναιμοναδική και καθορίζεται από τη συνάρτηση μετάβασης ±. Υπό αυτή την έννοιαεκείνο που χαρακτηρίζει τα πεπερασμένα αυτόματα είναι ο ντετερμινισμός1 τηςΝτετερμινισμός

επόμενης κίνησης. Από την κατάσταση q διαβάζοντας το a υπάρχει μόνο μιαεπιλογή: να μεταβούμε στην κατάσταση ±(q; a).

1Επειδή ο όρος ντετερμινισμός χρησιμοποιείται συχνότερα από την έκφραση αιτιοκρατία,τουλάχιστον στην μελέτη μηχανών πεπερασμένων καταστάσεων, θα ονομάζουμε αυτά τα αυτόματαντετερμινιστικά.

Page 109: αυτόματα και τυπικές γλώσσες dimitriou

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα 97

Σ, αυτό το κεφάλαιο, θα προσθέσουμε ένα χαρακτηριστικό μη ντετερμινισμούστα πεπερασμένα αυτόματα. Τα αυτόματα θα αποτελούνται ξανά από ένα πεπερα-σμένο σύνολο καταστάσεων, αλλά για κάθε συνδυασμό κατάστασης και συμβόλου Μη

Ντετερμινισμόςεισόδου θα επιτρέπουμε να υπάρχουν περισσότερες από μία (ή και καμία) επόμενεςκαταστάσεις. Έτσι, καθώς το αυτόματο διαβάζει τα σύμβολα εισόδου θα μπορείνα πηγαίνει σε οποιαδήποτε από αυτές τις καταστάσεις και η επιλογή αυτή θα είναιαυθαίρετη ή αλλιώς μη ντετερμινιστική.

Ακόμη όμως και μ, αυτό το στοιχείο του μη ντετερμινισμού θα δούμε ότι οιγλώσσες που γίνονται δεκτές από τα αυτόματα αυτού του είδους είναι ακριβώςοι κανονικές γλώσσες. Μ, άλλα λόγια κάθε μη ντετερμινιστικό αυτόματο είναιισοδύναμο μ, ένα ντετερμινιστικό. Ποια είναι λοιπόν η χρησιμότητα αυτών τωναυτομάτων; Θα δούμε ότι αυτά τα αυτόματα είναι πιο εύκολο να σχεδιαστούν καιμερικές φορές απαιτούν πολύ λιγότερες καταστάσεις.5.1Θεωρήστε ξανά τη γλώσσα L5 του Παραδείγματος 4.5

L5 = fx 2 f0; 1g¤j jxj ¸ 5 και το 5ο σύμβολο από τα δεξιά είναι 1g

Από την περιγραφή εύκολα προκύπτει μια κανονική έκφραση γι, αυτή τη γλώσσα

(0 + 1)¤1(0 + 1)(0 + 1)(0 + 1)(0 + 1)

όμως, όπως είδαμε στο ίδιο παράδειγμα, οποιοδήποτε ντετερμινιστικό αυτόματο γι, αυτήθα πρέπει να αποτελείται από τουλάχιστον 25 = 32 καταστάσεις.Αντίθετα, ένα μη ντετερμινιστικό αυτόματο αποτελείται μόνο από έξι καταστάσεις, όπωςφαίνεται και στο Σχήμα 5.1. Γενικότερα, ενώ ένα αυτόματο για την Ln αποτελείται από2n τουλάχιστον καταστάσεις, το αντίστοιχο μη ντετερμινιστικό χρειάζεται μόνο n+ 1.

Παράδειγμα 5.1

q1 q2 q3 q4

0,1

q0

1 0,1 0,1 0,1 0,1q5

Σχήμα 5.1. Μη ντετερμινιστικό αυτόματο για τη γλώσσα L5

Το παραπάνω αυτόματο είναι μη ντετερμινιστικό επειδή από την αρχική κατάσταση,με είσοδο 1, υπάρχουν δύο βέλη που μπορούμε να ακολουθήσουμε. Έτσι, δενείναι ξεκάθαρο τι πρέπει να γίνει, όταν διαβαστεί το σύμβολο 1. Το αυτόματοθα παραμείνει στην q0 ή θα μεταβεί στην q1; Από την άλλη μεριά, το αυτόματοαυτό αντανακλά καλύτερα τη δομή της κανονικής έκφρασης και είναι πιο εύκολο νακαταλάβουμε τη γλώσσα που αναγνωρίζει αυτό παρά ένα αυτόματο 32 καταστάσεων:

Page 110: αυτόματα και τυπικές γλώσσες dimitriou

98 Μη Ντετερμινισμός

μένουμε στην κατάσταση q0 μέχρι να διαβαστεί το 1 που θεωρούμε ότι βρίσκεταιστην πέμπτη θέση. Τότε μεταβαίνουμε στην κατάσταση q1 και απ

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

Η διαφορά με τα συνηθισμένα αυτόματα είναι ότι αντί να ρωτάμε αν τοΔιαδικασίααναγνώρισης

μονοπάτι που αντιστοιχεί στη συμβολοσειρά εισόδου οδηγεί σε μια τελική κατάστα-ση, τώρα ρωτάμε αν υπάρχει κάποιο μονοπάτι2 που οδηγεί σε μια τελική κατάσταση.Για παράδειγμα, η συμβολοσειρά 0110000 δεν αναγνωρίζεται, αν παραμείνουμεστην αρχική κατάσταση όσο τη διαβάζουμε ή αν μεταβούμε στην κατάσταση 2με το πρώτο 1 που διαβαστεί. Αν όμως περιμένουμε να διαβαστούν τα δύο πρώτασύμβολα πριν μεταβούμε στην κατάσταση q1, τότε η συμβολοσειρά αναγνωρίζεταικανονικά.

Μέχρι στιγμής επιτρέψαμε στα αυτόματα να έχουν περισσότερες από μια επό-μενες καταστάσεις για ένα δεδομένο συνδυασμό κατάστασης και συμβόλου εισόδου.Το επόμενο βήμα είναι να επιτρέψουμε στα αυτόματα \δωρεάν" κινήσεις, δηλαδήμεταβάσεις σε επόμενες καταστάσεις χωρίς την ανάγνωση κάποιου συμβόλου.Μπορούμε να φανταστούμε μια τέτοια κίνηση σαν μια ²-μετάβαση, μια κίνηση²-κινήσεις

η οποία χρειάζεται μόνο την κενή συμβολοσειρά ως είσοδο. Ο λόγος αυτής τηςγενίκευσης είναι ότι απλοποιείται η διαδικασία σχεδίασης αυτομάτων, και όπως θαδούμε στη συνέχεια, θα μας βοηθήσει να σχεδιάζουμε, για οποιαδήποτε κανονικήγλώσσα, κάποια μηχανή που την αναγνωρίζει.5.2Θεωρήστε το αυτόματο του Σχήματος 5.2(α) και προσπαθήστε να περιγράψετε τη γλώσσαπου αναγνωρίζει. Ακόμα και αν σας πουν ότι αναγνωρίζει τη γλώσσα (0¤1+1¤0) θα σαςπάρει αρκετό χρόνο να πειστείτε γι, αυτό.Κοιτάξτε τώρα το αυτόματο του Σχήματος 5.2(β), στο οποίο μερικά απ, τα βέλη φέρουντην ένδειξη ². Μια συμβολοσειρά γίνεται δεκτή απ, τη μηχανή αυτή, αν υπάρχει κάποιομονοπάτι που οδηγεί απ, την αρχική στην τελική κατάσταση.Υπάρχουν δύο μονοπάτια από την q0 στην q3, τα οποία αντιστοιχούν στις κανονικέςεκφράσεις 0¤1 και 1¤0, αντίστοιχα. Άρα η γλώσσα που αναγνωρίζεται από το αυτόματοείναι η (0¤1 + 1¤0).

Παράδειγμα 5.2

Από τα μέχρι τώρα παραδείγματα συμπεραίνουμε ότι η μόνη διαφορά με τασυνήθη αυτόματα είναι στην επιλογή της επόμενης κατάστασης. Για ένα συγκεκρι-μένο συνδυασμό κατάστασης και συμβόλου εισόδου μπορεί να μην υπάρχει καμιάεπόμενη κατάσταση ή να υπάρχουν πολλές. Αν λοιπόν ± είναι η συνάρτησημετάβασης, τότε η τιμή της θα είναι όχι απλά ένα μέλος του Q αλλά ένα υποσύνολο

2Ως μονοπάτι εδώ εννούμε την ακολουθία των καταστάσεων στις οποίες μεταβαίνει το αυτόματοδιαβάζοντας τη συμβολοσειρά εισόδου.

Page 111: αυτόματα και τυπικές γλώσσες dimitriou

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα 99

q0 q3

q1

q2

1

0

0

1

ε

ε

(α) (β)

0

0

0

1

1 0,1

0,1

1

10

0

1

Σχήμα 5.2. Μη ντετερμινιστικό αυτόματο με ²-κινήσεις

του Q το οποίο μπορεί να είναι κενό ή να περιέχει κάποιες καταστάσεις. Μ, αυτότο σκεπτικό, ±(q; a) θα είναι το σύνολο των καταστάσεων στις οποίες μπορεί ναβρεθεί η μηχανή, αν από την κατάσταση q διαβάσει το σύμβολο a. Αν μάλισταπροσθέσουμε τη δυνατότητα ²-κινήσεων, τότε η ± ορίζεται πάνω στο Q £ (§ [f²g). Έτσι, η μηχανή δρα μη ντετερμινιστικά: κάποιες στιγμές μπορεί να έχειπερισσότερες από μια επιλογές κινήσεων και όταν συμβαίνει αυτό, επιλέγει αυθαί-ρετα μια απ, αυτές. Αλλά όπως θα δούμε στην επόμενη ενότητα αυτός ο μηντετερμινισμός είναι φαινομενικός. Κάθε μη ντετερμινιστικό αυτόματο μπορεί ναεξομοιωθεί πιστά από ένα ισοδύναμο ντετερμινιστικό.5.1Ένα μη ντετερμινιστικό πεπερασμένο αυτόματο (θα γράφουμε ΜΠΑ), είναι μια 5-άδα (Q;§; q0; ±; F ), όπου Q είναι ένα πεπερασμένο σύνολο, τα στοιχεία του οποίουαντιστοιχούν στις καταστάσεις της μηχανής, § είναι το αλφάβητο των συμβόλων εισόδου,q0 2 Q είναι η αρχική κατάσταση, ± : Q £ § ! 2Q είναι η συνάρτηση μετάβασης, καιF µ Q είναι το σύνολο των τελικών καταστάσεων.

Ορισμός 5.1

Για παράδειγμα το αυτόματο του Σχήματος 5.2 μπορεί να αποδοθεί με τονακόλουθο πίνακα μεταβάσεων:

Είσοδος0 1 ²

q0 Â Â fq1; q2gΚατάσταση q1 fq1g fq3g Â

q2 fq3g fq2g Âq3 Â Â Â

Πίνακας μετάβασης για το μηντετερμινιστικό αυτόματο τουΣχήματος 5.2(β).

Τα στοιχεία αυτού του πίνακα είναι σύνολα και όχι απλές καταστάσεις, επειδήη συνάρτηση μετάβασης παίρνει τιμές στο 2Q, το σύνολο όλων των δυνατών

Page 112: αυτόματα και τυπικές γλώσσες dimitriou

100 Μη Ντετερμινισμός

υποσυνόλων του Q, και όχι απλά στο Q. Έτσι, από κάποιες καταστάσεις δενυπάρχουν δυνατές μεταβάσεις (υποδηλώνεται με το κενό σύνολο Â) και από άλλεςμπορεί να υπάρχουν περισσότερες από μια (όπως οι ²-μεταβάσεις από την q0).

Αν όμως προσέξετε καλύτερα θα δείτε ότι στον Ορισμό 5.1 δεν έχουμε συμπερι-λάβει ²-κινήσεις. Ο λόγος είναι ότι αυτού του είδους οι κινήσεις μπορούν να εξαλει-φθούν εντελώς. Πριν όμως αποδείξουμε ότι τα ΜΠΑ με ²-κινήσεις είναι ισοδύναμαμε τα απλά ΜΠΑ θα πρέπει να ορίσουμε τις γλώσσες που γίνονται δεκτές απ, αυτά.

Όπως κάναμε και στην Ενότητα 4.2 θα ξεκινήσουμε ορίζοντας τη ±¤(q; x), τοσύνολο των καταστάσεων που μπορεί να βρεθεί ένα αυτόματο M ξεκινώντας απότην κατάσταση q και διαβάζοντας τη συμβολοσειρά x.

H ±¤ είναι μια συνάρτηση από το Q £ §¤ στο 2Q. Έστω λοιπόν ότι θέλουμενα υπολογίσουμε το ±¤(q; xa), όπου x είναι κάποια συμβολοσειρά και a ένασύμβολο του αλφάβητου. Εφόσον για κάθε συνδυασμό κατάστασης-συμβόλουμπορεί να υπάρχουν περισσότερες από μια επιλογές, το αυτόματο διαβάζοντας τησυμβολοσειρά x μπορεί να μεταβεί σε οποιαδήποτε από ένα σύνολο καταστάσεωνP . Αλλά τότε ±¤(q; xa) δεν είναι παρά η κατάσταση που μπορεί να βρεθεί τοαυτόματο αν από οποιαδήποτε κατάσταση του P διαβάσει το σύμβολο a. ΑφούP = ±¤(q; x), συμπεραίνουμε ότι το αναδρομικό τμήμα του ορισμού είναι

±¤(q; xa) = ±(P; a) = [p2P ±(p; a);

ενώ η βάση δίνεται απλά από την ±¤(q; ²) = fqg. (Για μεγαλύτερη ευκολία θαγράφουμε, για ένα σύνολο καταστάσεων P , ±(P; a) [ή ±¤(P; x)] αντί για το πιοπολύπλοκο [p2P ±(p; a) [ή [p2P ±¤(p; x)], εννοώντας ότι η ± [ή ±¤] θα πρέπει ναεφαρμοστεί σε κάθε κατάσταση του συνόλου P .)

5.2ΈστωM = (Q;§; q0; ±; F ) ένα ΜΠΑ χωρίς ²-κινήσεις. Η συνάρτηση ±¤ : Q£§¤ ! 2Q

ορίζεται αναδρομικά ως εξής:

1. Για κάθε q 2 Q, ±¤(q; ²) = fqg.2. Για κάθε q 2 Q, x 2 §¤, a 2 §, ±¤(q; xa) = ±(±¤(q; x); a) = [p2±¤(q;x)±(p; a).

Ορισμός 5.2

5.3

Page 113: αυτόματα και τυπικές γλώσσες dimitriou

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα 101

Ας υπολογίσουμε τη ±¤(q0; 10) για το αυτόματο του Σχήματος 5.1, δίνοντας τις τιμέςγια κάθε τμήμα της x = 10. Ακολουθώντας τα βέλη του διαγράμματος θα πρέπει νακαταλήξουμε στις καταστάσεις q0; q2.

±¤(q0; ²) = fq0g±¤(q0; 1) = ±(q0; 1)

= fq0; q1g±¤(q0; 10) = ±(±¤(q; 1); 0)

= ±(fq0; q1g; 0)= ±(q0; 0) [ ±(q1; 0)= fq0g [ fq2g= fq0; q2g

Παράδειγμα 5.3

5.1Αποδείξτε, για κάθε κατάσταση q και σύμβολο a, την ιδιότητα ±¤(q; a) = ±(q; a), τηνοποία χρησιμοποιήσαμε χωρίς απόδειξη στο παραπάνω παράδειγμα. Η γνωστή απότα ντετερμινιστικά αυτόματα ιδιότητα ±¤(q; xy) = ±¤(±¤(q; x); y) αφήνεται ως άσκηση(Άσκηση 5.5).

ΆσκησηΑυτοαξιολόγησης

5.1

Έχοντας ορίσει τη ±¤, μπορούμε τώρα να πούμε πότε μια συμβολοσειρά xγίνεται δεκτή από ένα ΜΠΑ M . Εφόσον το M μπορεί να ακολουθήσει πολλάμονοπάτια κατά την επεξεργασία του x, αρκεί κάποιο από αυτά τα μονοπάτια ναοδηγεί σε μια τελική κατάσταση.

5.3Μία συμβολοσειρά x 2 §¤ αναγνωρίζεται ή γίνεται δεκτή από ένα μη ντετερμινιστικόαυτόματο M = (Q;§; q0; ±; F ), αν ±¤(q0; x) \ F 6= Â. Η γλώσσα που γίνεται δεκτήή αναγνωρίζεται από το M , θα τη συμβολίζουμε με L(M), είναι το σύνολο τωνσυμβολοσειρών x που γίνονται δεκτές από το M .

Ορισμός 5.3

Ας προχωρήσουμε τώρα να ορίσουμε τις γλώσσες που γίνονται δεκτές απόΜΠΑ με ²-κινήσεις.

5.4Ένα μη ντετερμινιστικό αυτόματο με ²-κινήσεις (θα το συμβολίζουμε ΜΠΑ-²) είναι μια5-άδα (Q;§; q0; ±̂; F ), όπου Q;§; q0 και F είναι όπως πριν και

±̂ : Q£ (§ [ f²g)! 2Q

είναι η νέα συνάρτηση μετάβασης.

Ορισμός 5.4

Page 114: αυτόματα και τυπικές γλώσσες dimitriou

102 Μη Ντετερμινισμός

Όπως και προηγουμένως, για να ορίσουμε τις γλώσσες που γίνονται δεκτές απότα ΜΠΑ-² χρειάζεται να επεκτείνουμε τη ±̂ ώστε να περιγράφει το σύνολο τωνκαταστάσεων που μπορεί να βρεθεί το αυτόματο ξεκινώντας από μια κατάσταση qκαι διαβάζοντας μια συμβολοσειρά x.

Η διαφορά με τα απλά ΜΠΑ είναι ότι τώρα μπορούν να υπάρχουν \δωρεάν"κινήσεις μεταξύ συνηθισμένων μεταβάσεων. Αν για παράδειγμα το αυτόματο,διαβάζοντας μια συμβολοσειρά x, βρίσκεται σε μια μη τελική κατάσταση από τηνοποία ξεκινάει μια ²-μετάβαση προς μια τελική κατάσταση, τότε η συμβολοσειράθα πρέπει να γίνει δεκτή από το αυτόματο. Αυτό σημαίνει ότι θα πρέπει νατροποποιηθεί όχι μόνο το αναδρομικό τμήμα του ορισμού της ±̂¤ αλλά και η βάση±̂¤(q0; ²), η οποία θα πρέπει να περιλαμβάνει όχι μόνο την q0 αλλά και όλες τιςκαταστάσεις που είναι προσπελάσιμες από την q0 χρησιμοποιώντας μόνο ²-κινήσεις.

Δοθείσης μιας κατάστασης q 2 Q, ορίζουμε ως ²(q) το σύνολο των καταστάσε-\²(q)"

ων που είναι προσπελάσιμες από την q μόνο με ²-κινήσεις. Αν φανταστούμε τοαυτόματο σαν ένα κατευθυνόμενο γράφημα και από αυτό αφαιρέσουμε όλες τιςπλευρές εκτός από αυτές με την ένδειξη ², τότε στο ²(q) ανήκουν όλες οι καταστά-σεις που μπορούν να προσπελαστούν από την q ακολουθώντας κάποιο μονοπάτιτου γραφήματος.

5.5Έστω M = (Q;§; q0; ±; F ) ένα μη ντετερμινιστικό αυτόματο με ²-κινήσεις. Για μιακατάσταση q 2 Q, το σύνολο ²(q) ορίζεται αναδρομικά ως εξής:

1. q 2 ²(q).2. Για κάθε p 2 ²(q), κάθε στοιχείο του συνόλου ±(p; ²) ανήκει στο ²(q).3. Τίποτε άλλο δεν ανήκει στο ²(q), εκτός αν προκύπτει από τα 1 και 2.

Αν S είναι ένα υποσύνολο του Q, τότε ²(S) = [q2S²(q), είναι απλά η ένωση των ²(q)για κάθε q 2 S.

Ορισμός 5.5

Για να υπολογίσουμε το σύνολο ²(q) μιας κατάστασης q ξεκινάμε βάζονταςΑλγόριθμοςεύρεσης ²(q)

σε ένα σύνολο T αρχικά την κατάσταση q. Σε κάθε βήμα, προσθέτουμε στο Tτην ένωση όλων των συνόλων ±(p; ²), για κάθε p 2 T . Δηλαδή προσθέτουμεκαταστάσεις οι οποίες μπορούν να προσπελαστούν από υπάρχουσες καταστάσειςτου T μόνο με ²-κινήσεις. Η διαδικασία σταματά όταν κάποιο βήμα δεν αλλάζειτο T . Η τελική τιμή του T είναι το ζητούμενο ²(q).

5.4

Page 115: αυτόματα και τυπικές γλώσσες dimitriou

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα 103

Έστω ότι θέλουμε να υπολογίσουμε το ²(q3) του αυτόματου του Σχήματος 5.3(α).Θέτουμε αρχικά T = fq3g και παίρνουμε T = fq3; q5g μετά το δεύτερο βήμα,T = fq3; q5; q0g μετά το τρίτο και T = fq3; q5; q0; q1; q2g μετά το τέταρτο.Στο επόμενο βήμα η τιμή του T παραμένει η ίδια, οπότε ²(q3) = fq3; q5; q0; q1; q2g.Στο ίδιο συμπέρασμα θα φτάναμε με πιο απλό τρόπο, αν ρωτάγαμε ποιες καταστάσειςείναι προσπελάσιμες από την q3 στο γράφημα του Σχήματος 5.3(β) που προκύπτει αναπό το αυτόματο διατηρήσουμε μόνο τις ²-πλευρές. Όπως φαίνεται και στο σχήμα, οικαταστάσεις που είναι προσπελάσιμες από την q3 είναι οι q3; q5; q0; q1; q2.

Παράδειγμα 5.4

q0

q1

q2

1

0

0

1

ε

ε

q3

q4

q5

ε

ε

ε

(α)

q0

q1

q2

ε

ε

q3

q4

q5

ε

ε

ε

(β)

Σχήμα 5.3. Μη ντετερμινιστικό αυτόματο με ²-κινήσεις

Μπορούμε τώρα να προχωρήσουμε στον ορισμό της ±̂¤ και της γλώσσας πουγίνεται δεκτή από ένα ΜΠΑ-².

5.6Έστω M = (Q;§; q0; ±̂; F ) ένα ΜΠΑ με ²-κινήσεις. Η συνάρτηση ±̂¤ : Q£ §¤ ! 2Q

ορίζεται αναδρομικά ως εξής:

1. Για κάθε q 2 Q, ±̂¤(q; ²) = ²(q).

2. Για κάθε q 2 Q, x 2 §¤ και a 2 §,

±̂¤(q; xa) = ²(±̂(±̂¤(q; x); a)) = ²([p2±̂¤(q;x)±̂(p; a))

Μια συμβολοσειρά x 2 §¤ γίνεται δεκτή από το M , αν ±̂¤(q0; x) \ F 6= Â. Η L(M),η γλώσσα που αναγνωρίζεται από το M , είναι το σύνολο των συμβολοσειρών x πουγίνονται δεκτές από το M .

Ορισμός 5.6

5.5

Page 116: αυτόματα και τυπικές γλώσσες dimitriou

104 Μη Ντετερμινισμός

Θεωρήστε ξανά το αυτόματο του Σχήματος 5.3(α). Η συμβολοσειρά 101 πρέπει να γίνειδεκτή όπως φαίνεται και από την παρακάτω ακολουθία κινήσεων:

q0²! q1

1! q3²! q5

²! q0²! q1

0! q11! q3

²! q5

Ας δούμε τώρα αν η ±̂¤(q0; 101) περιέχει την q5. Αν συμβαίνει αυτό, η συμβολοσειράθα γίνει δεκτή από το αυτόματο. Θα ξεκινήσουμε υπολογίζοντας τις ±̂¤(q0; ²), ±̂¤(q0; 1),±̂¤(q0; 10) και τελικά τη ±̂¤(q0; 101).

±̂¤(q0; ²) = ²(q0)

= fq0; q1; q2g±̂¤(q0; 1) = ²(±̂(±̂¤(q0; ²); 1))

= ²(±̂(fq0; q1; q2g; 1))= ²(±̂(q0; 1) [ ±̂(q1; 1) [ ±̂(q2; 1))= ²(Â [ fq3g [ fq2g)= ²(fq3; q2g)= fq0; q1; q2; q3; q5g

±̂¤(q0; 10) = ²(±̂(±̂¤(q0; 1); 0))

= ²(±̂(fq0; q1; q2; q3; q5g; 0))= ²(±̂(q0; 0) [ ±̂(q1; 0) [ ±̂(q2; 0) [ ±̂(q3; 0) [ ±̂(q5; 0))= ²(Â [ fq1g [ fq4g [Â [Â)= ²(fq1; q4g)= fq0; q1; q2; q4; q5g

±̂¤(q0; 101) = ²(±̂(±̂¤(q0; 10); 1))

= ²(±̂(fq0; q1; q2; q4; q5g; 1))= ²(±̂(q0; 1) [ ±̂(q1; 1) [ ±̂(q2; 1) [ ±̂(q4; 1) [ ±̂(q5; 1))= ²(Â [ fq3g [ fq2g [Â [Â)= ²(fq3; q2g)= fq0; q1; q2; q3; q5g

Εφόσον η q5 ανήκει στη ±̂¤(q0; 101), συμπεραίνουμε ότι η συμβολοσειρά ανήκει στηγλώσσα.

Παράδειγμα 5.5

Ισοδυναμία με Απλά ΜΠΑ

Έχοντας ορίσει τους δύο τύπους των μη ντετερμινιστικών αυτομάτων μπορούμετώρα να αποδείξουμε την ισοδυναμία τους. Ένα ΜΠΑ μπορεί να θεωρηθεί σαν

Page 117: αυτόματα και τυπικές γλώσσες dimitriou

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα 105

ένας ειδικός τύπος ενός ΜΠΑ-² όπου δεν υπάρχουν ²-κινήσεις, δηλαδή για κάθεq 2 Q, ±̂(q; ²) = Â. Η μόνη διαφορά βρίσκεται στον ορισμό της αναγνώρισηςμιας συμβολοσειράς γιατί οι συναρτήσεις ±¤, ±̂¤ ορίζονται διαφορετικά. Αν όμωςθεωρήσουμε ένα ΜΠΑ σαν ένα ΜΠΑ-², οι δύο ορισμοί ταυτίζονται, γιατί ²(S) = S,για κάθε S µ Q. Άρα οι γλώσσες που αναγνωρίζονται από τα ΜΠΑ αναγνωρίζονταικαι από τα ΜΠΑ-². Στη συνέχεια θα δείξουμε και το αντίστροφο: δοθέντος ενόςΜΠΑ-² M̂ , θα κατασκευάσουμε ένα ισοδύναμο ΜΠΑ M , που αναγνωρίζει τηνίδια γλώσσα.

Η ιδέα είναι η εξής: Έστω ότι βρισκόμαστε σε μια κατάσταση q του M̂ από την Διαίσθηση γιαισοδυναμίαοποία ξεκινάει μια ²-μετάβαση προς μια κατάσταση p. Ας υποθέσουμε τώρα ότι

το αυτόματο από την q διαβάζει ένα σύμβολο a. Εφόσον η κίνηση προς την p δενκαταναλώνει καθόλου είσοδο, αυτό είναι ισοδύναμο σαν να βρισκόταν το αυτόματοστην p και από αυτή να διάβαζε το a. Άρα μπορούμε να αντικαταστήσουμε τις²-μεταβάσεις από την κατάσταση q με όλες τις μεταβάσεις προς τις καταστάσειςπου θα πήγαινε το αυτόματο, αν από την q διάβαζε κάποιο σύμβολο. Φυσικά,θα πρέπει να περιλάβουμε και όλες τις ²-μεταβάσεις από αυτές τις καταστάσειςδίνοντας έτσι έναν αναδρομικό χαρακτήρα στην όλη διαδικασία.

Θεώρημα 5.1. Έστω L µ §¤ μια γλώσσα η οποία αναγνωρίζεται από έναΜΠΑ-² M̂ = (Q;§; q0; ±̂; F̂ ). Τότε υπάρχει ένα ΜΠΑM που αναγνωρίζει τηνL.

Απόδειξη: Το πρόβλημα με την κατασκευή του M βρίσκεται στον ορισμότης ±. Η συνάρτηση μετάβασης θα πρέπει να οριστεί με τέτοιο τρόπο ώστε,αν το M̂ μπορεί να μεταβεί από μια κατάσταση p σε μια κατάσταση qχρησιμοποιώντας κάποια σύμβολα του § και ²-κινήσεις, τότε τοM θα πρέπεινα μεταβεί στην ίδια ακριβώς κατάσταση χρησιμοποιώντας μόνο τα σύμβολαεισόδου. Επίσης, αν η q0 δεν είναι τελική κατάσταση αλλά μπορούμε ναφτάσουμε σε μια τελική χρησιμοποιώντας μόνο ²-κινήσεις, η q0 θα πρέπει ναγίνει τελική στοM εφόσον η κενή συμβολοσειρά δε θα μπορεί να γίνει δεκτήαλλιώς.

Για κάθε κατάσταση q και σύμβολο a ορίζουμε

±(q; a) = ±̂¤(q; a):

Ας δούμε τι σημαίνει αυτό χρησιμοποιώντας τον Ορισμό 5.6.

±(q; a) = ±̂¤(q; a)

= ±̂¤(q; ²a)

= ²([p2±̂¤(q;²)±̂(p; a))= ²([p2²(q)±̂(p; a))

Page 118: αυτόματα και τυπικές γλώσσες dimitriou

106 Μη Ντετερμινισμός

Αυτό επιτυγχάνει ότι ακριβώς θέλαμε: ±(q; a) είναι το σύνολο των καταστά-σεων στις οποίες μεταβαίνει το ΜΠΑ M χρησιμοποιώντας μόνο το σύμβολοa, ενώ το αντίστοιχο ΜΠΕ-² χρησιμοποιεί ²-κινήσεις τόσο πριν όσο και μετάτην ανάγνωση του a.

Τέλος, χρειάζεται να ορίσουμε το σύνολο των τελικών καταστάσεων του Mώστε να λαμβάνεται υπόψη η περίπτωση που η q0 δεν είναι τελική κατάστασηστο M̂ , αλλά υπάρχει ένα ²-μονοπάτι που οδηγεί σε μια τελική κατάσταση.Σ, αυτή την περίπτωση, όπως και να ορίσουμε τη συνάρτηση μετάβασηςτου M , αν η q0 δεν περιληφθεί στις τελικές καταστάσεις του M η κενήσυμβολοσειρά δεν πρόκειται ποτέ να γίνει δεκτή, αφού η ±¤(q0; ²) δεν περιέχειάλλες καταστάσεις εκτός από την q0. Ορίζουμε λοιπόν

F =

½F̂ [ fq0g, αν το ²(q0) περιέχει μια τελική κατάστασηF̂ , αλλιώς

Θα δείξουμε τώρα χρησιμοποιώντας επαγωγή στο μήκος της συμβολοσειράςεισόδου x ότι τα δύο αυτόματα φτάνουν στις ίδιες ακριβώς καταστάσεις,δηλαδή ±¤(q0; x) = ±̂¤(q0; x). Όμως, ο παραπάνω ισχυρισμός μπορεί να μηνείναι αληθής για x = ², αφού ±¤(q0; ²) = fq0g, ενώ ±̂¤(q0; ²) = ²(q0). Θααρχίσουμε λοιπόν την επαγωγή μας με jxj = 1.

Βάση: Έστω x = a για κάποιο σύμβολο a. Θέλουμε να δείξουμε ότ鱤(q0; a) = ±̂¤(q0; a). Αμέσως μετά τον Ορισμό 5.2 (Άσκηση Αυτοαξιολόγη-σης 5.1) δείξαμε ότι ±¤(q0; a) = ±(q; a) και ορίσαμε το ±(q; a) ίσο με ±̂¤(q0; a).

Επαγωγική Υπόθεση: Ας υποθέσουμε ότι για κάθε k ¸ 1 και κάθε y 2 §¤τέτοιο ώστε jyj = k, ±¤(q0; y) = ±̂¤(q0; y).

Επαγωγικό Βήμα: Έστω ότι x = ya για κάποιο σύμβολο a 2 §. Τότε

±¤(q0; ya) = ±(±¤(q0; y); a) (Από τον Ορισμό 5.2)= ±(±̂¤(q0; y); a) (Από την επαγωγική υπόθεση)= ±̂¤(±̂¤(q0; y); a) (Από τον ορισμό της ±)= ±̂¤(q0; ya)

Για να ολοκληρώσουμε την απόδειξη θα δείξουμε ότι το ±¤(q0; x) περιέχει μιατελική κατάσταση του F , αν και μόνο αν το ±̂¤(q0; x) περιέχει μια κατάστασητου F̂ , δηλαδή τα δύο αυτόματα αναγνωρίζουν μια συμβολοσειρά x κάτω απότις ίδιες ακριβώς συνθήκες.

Αν x = ², αυτό προκύπτει από τον ορισμό του F . Δηλαδή ±¤(q0; ²) = fq0gκαι το q0 ανήκει στο F , αν το ±̂¤(q0; ²), που είναι ίσο με ²(q0), περιέχει μιατελική κατάσταση.

Αν x6= ², ±¤(q0; x) = ±̂¤(q0; x). Αυτό το σύνολο είτε περιέχει μια κατάστασητου F̂ (άρα και τα δύο αυτόματα αναγνωρίζουν τη x) ή δεν περιέχει ούτετην q0 ούτε καμιά άλλη κατάσταση του F̂ (άρα και τα δύο απορρίπτουν τη

Page 119: αυτόματα και τυπικές γλώσσες dimitriou

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα 107

x). Είναι αδύνατο να περιέχει την q0 και κανένα άλλο στοιχείο του F̂ , αν²(q0) \ F 6= Â. Ο λόγος είναι ότι αν q0 2 ±̂¤(q0; x), τότε αφού το ±̂¤(q0; x)περιέχει το ²(q0) (γιατί;) θα περιέχει και ένα στοιχείο του F̂ . Άρα τα δύοαυτόματα δέχονται τις ίδιες ακριβώς συμβολοσειρές.

1 0

1

3

1

2 4

1

1

1

5

1

6

1

0 1

1

(β)(α)

1

5

1 0ε

ε

3

ε

2 4

ε

61

Σχήμα 5.4. Μετατροπή από ΜΠΑ-² σε ΜΠΑ.

5.6Αν εφαρμόσουμε τα παραπάνω στο αυτόματο του Σχήματος 5.4(α) παίρνουμε το ΜΠΑτου Σχήματος 5.4(β) χωρίς ²-κινήσεις.Ας δούμε πώς προκύπτουν οι νέες μεταβάσεις από την κατάσταση 6. Από τον ορισμόέχουμε

±(6; 1) = ²(±̂(²(6); 1)

= ²(±̂(f6; 5g; 1))= ²(±̂(6; 1) [ ±̂(5; 1))= ²(Â [ f6g)= f5; 6g

±(6; 0) = ²(±̂(6; 0) [ ±̂(6; 0))= ²(Â [Â)= Â

Οι μεταβάσεις για τις υπόλοιπες καταστάσεις υπολογίζονται ανάλογα. Αξίζει νασημειώσουμε ότι η κατάσταση 1 είναι τελική στο νέο αυτόματο, επειδή το σύνολο ²(1)περιέχει μια τελική κατάσταση (την 2).

Παράδειγμα 5.6

5.2Εφαρμόστε τις παραπάνω ιδέες για να εξαλείψετε τις ²-κινήσεις από το ΜΠΑ-² τουΣχήματος 5.2(β).

ΆσκησηΑυτοαξιολόγησης

5.2

Page 120: αυτόματα και τυπικές γλώσσες dimitriou

108 Μη Ντετερμινισμός

5.2 Ισοδυναμία με Ντετερμινιστικά ΠεπερασμέναΑυτόματα

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

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

Σ, αυτή την ενότητα θα δείξουμε και το αντίστροφο. Για κάθε μη ντετερμινιστικόΙσοδυναμία μεντετερμινιστικάαυτόματα αυτόματο M υπάρχει ένα ισοδύναμο ντετερμινιστικό M 0 που αναγνωρίζει την

ίδια γλώσσα. Πώς όμως θα εξαλείψουμε το στοιχείο του μη ντετερμινισμού; Ηιδέα είναι παρόμοια μ, εκείνη που χρησιμοποιήσαμε στην Ενότητα 4.3 για νακατασκευάσουμε ένα αυτόματο που αναγνωρίζει την τομή δύο γλωσσών. Τοαυτόματο τότε χρησιμοποιούσε τις καταστάσεις του για να \θυμάται" σε ποιεςκαταστάσεις βρίσκονταν τα επιμέρους αυτόματα. Έτσι, οι καταστάσεις του ήτανουσιαστικά ζεύγη καταστάσεων. Τώρα το M 0 χρειάζεται να θυμάται όλες τιςΔιαίσθηση

δυνατές καταστάσεις που μπορεί να μεταβεί το M διαβάζοντας ένα σύμβολο a.Άρα οι καταστάσεις του θα είναι σύνολα καταστάσεων. Προσέξτε όμως ότι το νέοαυτόματο είναι ντετερμινιστικό. Στην περίπτωση του M , η συνάρτηση ± οδηγεί τοM σε μια από πολλές πιθανές καταστάσεις. Άρα υπάρχει επιλογή στην επόμενηκατάσταση. Τώρα το M 0 οδηγείται σε μια μοναδική κατάσταση, που δεν είναιπαρά το σύνολο όλων των πιθανών μεταβάσεων του M .

Αρχικά λοιπόν το M 0 θα βρίσκεται στην κατάσταση [q0] (χρησιμοποιούμεαγκύλες [ ] αντί για άγκιστρα f g για να είναι οι εκφράσεις περισσότερο ευανάγνω-στες), μιας και το M ξεκινάει από την κατάσταση q0. Όταν τοM 0 βρίσκεται στηνκατάσταση [q1; q2; : : : ; qk] και διαβάσει το σύμβολο a, τότε θα πάει στην κατάσταση[p1; p2; : : : ; pl] που αντανακλά τις πιθανές μεταβάσεις του M . Πιο συγκεκριμένα,εφαρμόζοντας τη ± σε καθεμία από τις καταστάσεις q1; q2; : : : ; qk και παίρνονταςτην ένωσή τους, το M οδηγείται σε μια από τις p1; p2; : : : ; pl. Αυτό το σύνολουποδηλώνεται με την κατάσταση [p1; p2; : : : ; pl] στοM 0 και αποτελεί την επόμενηκατάσταση αυτού, είναι δηλαδή η τιμή της ±0([q1; q2; : : : ; qk]; a). Πότε όμως μιασυμβολοσειρά x γίνεται δεκτή από το M 0; Ξέρουμε ότι το M αναγνωρίζει τη x,

Page 121: αυτόματα και τυπικές γλώσσες dimitriou

Ισοδυναμία με Ντετερμινιστικά Πεπερασμένα Αυτόματα 109

αν το σύνολο ±¤(q0; x) περιέχει μια τελική κατάσταση του M . Έτσι, αν το M ,διαβάζοντας τη x, μπορεί να βρεθεί σε μια από τις q1; q2; : : : ; qk και μια από αυτέςείναι τελική, τότε τοM 0, εξομοιώνοντας πιστά τη λειτουργία του πρώτου, θα βρεθείστην [q1; q2; : : : ; qk], η οποία πρέπει να γίνει και αυτή τελική. Άρα μια κατάσταση[q1; q2; : : : ; qk] θα είναι τελική, αν και μόνο αν κάποια από τις qi είναι τελική στοαρχικό αυτόματο.

Θεώρημα 5.2. Έστω L μια γλώσσα, η οποία γίνεται δεκτή από ένα μηντετερμινιστικό αυτόματο M . Τότε υπάρχει ένα ντετερμινιστικό αυτόματο M 0,που αναγνωρίζει την L.

Απόδειξη: Ας είναι M = (Q;§; q0; ±; F ) το ΜΠΑ που αναγνωρίζει την L.Ορίζουμε M 0 = (P;§; p0; ±0; F 0) το ισοδύναμο ντετερμινιστικό αυτόματο ωςεξής:

P = 2Q, το σύνολο όλων των δυνατών υποσυνόλων του Q.p0 = [q0]

±0 : P £§! P με ±0(p; a) = ±(p; a) = [q2p±(q; a).F 0 = fp 2 P j p \ F 6= Âg

Μπορούμε τώρα να δείξουμε ότι το M 0 εξομοιώνει πιστά τη λειτουργία τουM . Αν δηλαδή το M μπορεί να βρεθεί σε μια από τις q1; q2; : : : ; qk, τότε τοM 0 θα βρεθεί στην κατάσταση [q1; q2; : : : ; qk]. Αυτή η απόδειξη αφήνεταιγια τον αναγνώστη ως Άσκηση Αυτοαξιολόγησης 5.3.

Είναι τώρα εύκολο να δείξουμε ότι τα M και M 0 αναγνωρίζουν την ίδιαγλώσσα. Μία συμβολοσειρά x γίνεται δεκτή από το M 0, αν ±0(p0; x) 2 F 0.Αλλά από την παραπάνω άσκηση και τον ορισμό του F 0 αυτό συμβαίνει μόνοαν ±(q0; x) \ F 6= Â. Άρα, η x γίνεται δεκτή από το M 0, αν και μόνο αν ηx γίνεται δεκτή από το M .

5.3Δείξτε, χρησιμοποιώντας επαγωγή στο μήκος μιας συμβολοσειράς x, ότι

±0¤([q0]; x) = [q1; q2; : : : ; qk] αν και μόνο αν ±¤(q0; x) = fq1; q2; : : : ; qkg:

ΆσκησηΑυτοαξιολόγησης

5.3

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

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

Page 122: αυτόματα και τυπικές γλώσσες dimitriou

110 Μη Ντετερμινισμός

(α) (β)

[1] [5,6] ∅

[3,5,6] [3][2,4]

11

0

1

0,1

1

0

0 1

0

1 0

1

3

1

2 4

1

1

1

5

1

6

1

0 1

1

Σχήμα 5.5. Μετατροπή από μη ντετερμινιστικό σε ντετερμινιστικό αυτόματο.

5.7Θεωρήστε το μη ντετερμινιστικό αυτόματο του Σχήματος 5.5(α). Αυτό είναι το αυτόματοπου προέκυψε από την εξάλειψη των ²-κινήσεων στο αυτόματο του Παραδείγματος 5.6.Το ισοδύναμο ντετερμινιστικό αυτόματο M 0 φαίνεται στο Σχήμα 5.5(β).Ας δούμε πώς προκύπτουν μερικές από τις καταστάσεις του αυτόματου M 0. Αρχική είναιη κατάσταση [1]. Απ, αυτή, με είσοδο 1, το μη ντετερμινιστικό αυτόματο μπορεί ναμεταβεί σε μια από τις 3; 5 και 6. Άρα το M 0 θα μεταβεί στην κατάσταση [3; 5; 6]. Απότην 1 όμως δεν υπάρχει μετάβαση, όταν η είσοδος είναι το 0. Σ, αυτή την περίπτωση τοM 0 θα πάει στη μοναδική κατάσταση που δηλώνει αυτό το γεγονός, την Â.Ανάλογα συνεχίζουμε με κάθε νέα κατάσταση που δημιουργείται. Από την [3; 5; 6] μεείσοδο 1 το M μπορεί να πάει σε μια από τις 5 ή 6, και με είσοδο 0 σε μια από τις 2ή 4. Άρα το M 0 θα πάει αντίστοιχα στις [5; 6] και [2; 4]. Η διαδικασία σταματά, ότανέχουμε εξαντλήσει κάθε συνδυασμό κατάστασης-συμβόλου εισόδου και όταν δεν έχουμεδημιουργία καινούριων καταστάσεων. Τελικές θα είναι οι καταστάσεις που περιέχουν μιατελική κατάσταση από το αρχικό αυτόματο. Στην προκειμένη περίπτωση, τελικές είναιοι καταστάσεις [1], [3; 5; 6], [5; 6] και [2; 4].Ίσως προσέξατε ότι το M 0 δεν έχει 64 καταστάσεις (τόσα είναι τα υποσύνολα τουf1; 2; 3; 4; 5; 6g) αλλά μόνο έξι. Ο λόγος είναι ότι οι υπόλοιπες δεν είναι απαραίτητες γιατη λειτουργία του και μπορούν να παραληφθούν. Έτσι, αντί να ξεκινήσουμε σχεδιάζονταςόλες τις δυνατές καταστάσεις, σχεδιάζουμε μια κατάσταση μόνο όταν είναι απαραίτητο,όταν υπάρχει δηλαδή μια ακολουθία από μεταβάσεις που οδηγούν το αυτόματο σ, αυτή.Μ, αυτό τον τρόπο το διάγραμμα θα περιέχει μόνο εκείνες τις καταστάσεις που είναιπροσπελάσιμες από την αρχική κατάσταση.Μπορείτε τώρα να βρείτε ποια γλώσσα αναγνωρίζει αυτό το αυτόματο; Ίσως είναι πιοεύκολο να βρείτε τη γλώσσα που αναγνωρίζει το ΜΠΑ-² του Σχήματος 5.4(α) και ναελέγξετε αν το ντετερμινιστικό αυτόματο που μόλις κατασκευάσαμε αναγνωρίζει την ίδιαακριβώς γλώσσα.

Παράδειγμα 5.7

5.4

Page 123: αυτόματα και τυπικές γλώσσες dimitriou

Θεώρημα Kleene 111

Μετατρέψτε το μη ντετερμινιστικό αυτόματο που βρήκατε στην ΆσκησηΑυτοαξιολόγησης 5.2 σε ντετερμινιστικό. Είναι το ίδιο με το αυτόματο του Σχήματος5.2(α);

ΆσκησηΑυτοαξιολόγησης

5.4

5.3 Θεώρημα Kleene

Σ, αυτή την ενότητα θα δείξουμε ότι οι δύο τρόποι περιγραφής κανονικώνγλωσσών, οι κανονικές εκφράσεις και τα αυτόματα, είναι ισοδύναμοι. Το θεώρημααυτό είναι γνωστό ως θεώρημα Kleene και αποτελείται από δύο μέρη. Το πρώτομας λέει ότι, αν δοθεί μια κανονική έκφραση R για μια γλώσσα L, τότε υπάρχεικάποιο αυτόματο που αναγνωρίζει την L, και το δεύτερο ότι για κάθε γλώσσαπου αναγνωρίζεται από ένα αυτόματο M υπάρχει μια κανονική έκφραση που τηνπεριγράφει.

Θεώρημα 5.3. Αν R είναι μια κανονική έκφραση που περιγράφει μια γλώσσαL, τότε υπάρχει ένα ΜΠΑ-² που αναγνωρίζει την L.

Απόδειξη: Για ευκολία παραθέτουμε ξανά τον ορισμό των κανονικώνεκφράσεων.

1. Â είναι η κανονική έκφραση που αντιστοιχεί στη γλώσσα Â.

2. ² είναι η κανονική έκφραση που αντιστοιχεί στη γλώσσα f²g.3. Για κάθε σύμβολο a 2 §, a είναι η κανονική έκφραση που αντιστοιχεί

στη γλώσσα fag.4. Αν r και s είναι εκφράσεις που αντιστοιχούν στις γλώσσες Lr καιLs, τότε και οι (rs), (r + s) και (r¤) είναι κανονικές εκφράσεις πουαντιστοιχούν στις γλώσσες LrLs, Lr [ Ls και L¤r .

5. Τίποτα άλλο δεν είναι κανονική έκφραση, εκτός αν προκύπτει από τουςπαραπάνω κανόνες.

Θα δείξουμε, χρησιμοποιώντας επαγωγή στον αριθμό των εφαρμογών τουκανόνα 4, ότι υπάρχει ένα ΜΠΑ-² που δέχεται την ίδια γλώσσα.

Βάση: Η έκφραση R θα είναι Â, ² ή a για κάποιο a 2 §. Τα αυτόματα στοΣχήμα 5.6 σίγουρα αναγνωρίζουν τις αντίστοιχες γλώσσες.

Επαγωγική Υπόθεση: Έστω ότι το Θεώρημα είναι αληθές για όλες τιςεκφράσεις που προκύπτουν με k ή λιγότερες εφαρμογές του κανόνα 4.

Επαγωγικό Βήμα: Έστω R μια έκφραση που προκύπτει με k+1 εφαρμογέςτου παραπάνω κανόνα. Η τελευταία εφαρμογή θα αφορά δύο εκφράσεις rκαι s για τις οποίες ισχύει η επαγωγική υπόθεση, άρα θα υπάρχουν αυτόματα

Page 124: αυτόματα και τυπικές γλώσσες dimitriou

112 Μη Ντετερμινισμός

aq0

(α) R = ∅

q0

(β) R = ε

q0

(γ) R = a

qf

Σχήμα 5.6. Αυτόματα για τη βάση της επαγωγής του Θεωρήματος 5.3

τα οποία αναγνωρίζουν τις γλώσσες L(r) και L(s). Θα δείξουμε ότι το ίδιοισχύει και για την R. Διακρίνουμε τρεις περιπτώσεις ανάλογα με το αν η Rείναι ίση με (r + s), (rs) ή (r¤).

Περίπτωση 1: R = (r + s). Από την επαγωγική υπόθεση θα υπάρχουναυτόματα Mr = (Qr;§; qr; ±r; Fr) και Ms = (Qs;§; qs; ±s; Fs), τα οποίααναγνωρίζουν τις γλώσσες που παράγονται από τις εκφράσεις r και s. Θεω-ρούμε ότι τα αυτόματα αυτά δεν έχουν κοινές καταστάσεις, αφού πάνταμπορούμε να μετονομάσουμε τις καταστάσεις τους. Ας είναι q0 μια νέααρχική κατάσταση. Το ΜΠΑ-² M = (Q;§; q0; ±; F ), που αναγνωρίζει τηγλώσσα L(R), ορίζεται όπως παρακάτω:

Q = Qr [Qs [ fq0gF = Fr [ Fs± : Q£§! Q, που ορίζεται ως εξής

±(q0; ²) = fqr; qsg±(q; a) =

½±r(q; a), αν q 2 Qr±s(q; a), αν q 2 Qs

Η κατασκευή του M φαίνεται στο Σχήμα 5.7(α). Τα αυτόματα Mr και Ms

απεικονίζονται με μια μόνο τελική κατάσταση για να είναι τα σχήματα πιοαπλά. Όμως, χωρίς βλάβη της γενικότητας, μπορούμε να θεωρήσουμε (γιαποιο λόγο;) ότι αποτελούνται από μια ακριβώς τελική κατάσταση.

Οποιοδήποτε μονοπάτι σ, αυτό το αυτόματο ξεκινά από την q0 ακολουθώνταςένα από τα δύο βέλη με τις ²-μεταβάσεις. Εάν το μονοπάτι πάει στην qr, ησυμβολοσειρά εισόδου x θα γίνει δεκτή μόνο αν το αυτόματο καταλήξει στηνfr. Αντίστοιχα, αν το μονοπάτι πάει στην qs, η x θα γίνει δεκτή μόνο αντο αυτόματο καταλήξει στην fs. Άρα υπάρχει ένα μονοπάτι στο M από τηνq0 σε μια τελική κατάσταση, αν και μόνο αν υπάρχει ένα μονοπάτι στο Mr

από την qr στην fr ή ένα μονοπάτι στο Ms από την qs στην fs. Απ, αυτόπροκύπτει ότι L(M) = L(Mr) [ L(Ms).

Περίπτωση 2: R = (rs). Ας είναι Mr και Ms τα δύο αυτόματα, όπως στηνΠερίπτωση 1. Το ΜΠΑ-² M = (Q;§; q0; ±; F ) που αναγνωρίζει τη γλώσσαL(R) ορίζεται όπως παρακάτω:

Page 125: αυτόματα και τυπικές γλώσσες dimitriou

Θεώρημα Kleene 113

(γ)

ε

ε

q0 M r

qr

fr

(α)

(β)

ε

ε

q0

fsqs

M s

frqr

M r

εfrqr

M rfsqs

M s

Σχήμα 5.7. ΜΠΑ-² για α) ένωση, β) συνένωση και γ) αστέρι Kleene

Q = Qr [Qsq0 = qr

F = Fs

± : Q£§! Q, που ορίζεται ως εξής

±(fr; ²) = fqsg±(q; a) =

½±r(q; a), αν q 2 Qr±s(q; a), αν q 2 Qs

ΤοM φαίνεται στο Σχήμα 5.7(β). Η αρχική του κατάσταση είναι ίδια με τηναρχική κατάσταση του Mr και η τελική του ίδια με την τελική κατάστασητου Ms. Επίσης, μεταξύ των δύο αυτομάτων υπάρχει μια ²-μετάβαση απότην fr στην qs.

Οποιοδήποτε μονοπάτι σ, αυτό το αυτόματο ξεκινά από την qr και καταλήγειστην fs, μόνο αν η συμβολοσειρά εισόδου x μπορεί να γραφεί ως x = x1x2ή x = x1²x2. Σ, αυτή την περίπτωση η x1 οδηγεί το αυτόματο από τηνqr στην fr και η x2 οδηγεί το αυτόματο από την qs στην fs. Αλλά αυτόσημαίνει ότι x1 2 L(Mr) και x2 2 L(Ms). Αντίστροφα, αν x1 2 L(Mr) καιx2 2 L(Ms), τότε προφανώς η x1x2 ανήκει στην L(M). Αρκεί, τελειώνονταςτην ανάγνωση της x1, να χρησιμοποιήσουμε την ²-μετάβαση για να πάμε απότην fr στην qs και στη συνέχεια να διαβάσουμε τη x2. Από τα παραπάνωπροκύπτει ότι L(M) = L(Mr)L(Ms).

Page 126: αυτόματα και τυπικές γλώσσες dimitriou

114 Μη Ντετερμινισμός

Περίπτωση 3: R = (r¤). Έστω Mr = (Qr;§; qr; ±r; Fr) το αυτόματοτης γλώσσας L(r) και q0 μια νέα αρχική κατάσταση. Το ΜΠΑ-² M =

(Q;§; q0; ±; F ) που αναγνωρίζει τη γλώσσα L(R) ορίζεται όπως παρακάτω:

Q = Qr [ fq0gF = fq0g± : Q£§! Q, που ορίζεται ως εξής±(q; a) = ±r(q; a) όπου q 2 Qr±(q0; ²) = fqrg±(fr; ²) = ±r(fr; ²) [ fq0g±(q; ²) = ±r(q; ²) όπου q6= fr

Το M φαίνεται στο Σχήμα 5.7(γ). Η μόνη τελική κατάσταση είναι η q0, ηοποία είναι και αρχική. Μία συμβολοσειρά x γίνεται δεκτή από τοM , αν είναικενή (x = ²) ή αν υπάρχει κύκλος που ξεκινά από την q0, χρησιμοποιεί τιςκαταστάσεις του Mr και καταλήγει πάλι στην q0 (όχι απαραίτητα μία, αλλάπολλές φορές). Κάθε τέτοιος κύκλος αφορά μια συμβολοσειρά xi που ανήκειστην L(Mr). Άρα η x αναγνωρίζεται από το M , αν και μόνο αν μπορεί ναγραφεί ως x = x1x2 ¢ ¢ ¢xk, για κάποιο k ¸ 0, όπου κάθε xk 2 L(Mr). Απ

,

αυτό συμπεραίνουμε ότι L(M) = L(Mr)¤.

Η εφαρμογή του παραπάνω θεωρήματος δεν είναι δύσκολη. Διασπάμε κάθεκανονική έκφραση στα κομμάτια τα οποία την αποτελούν και χτίζουμε τα αυτόματασυνδέοντας τα κομμάτια μεταξύ τους. Το τελικό αυτόματο πάντα αντιστοιχεί στηναρχική έκφραση. Το τίμημα που πληρώνουμε είναι ότι τα αυτόματα αυτά δεν είναιπάντα τα απλούστερα δυνατά.5.8Ας κατασκευάσουμε ένα αυτόματο για την έκφραση R = (01)¤ + 1¤. H R μπορεί ναγραφεί ως r¤1 + r¤2 , όπου r1 = 01 και r2 = 1. Τα αυτόματα για τις r1 και r2 φαίνονταιστο Σχήμα 5.8, στα (α) και (β) αντίστοιχα. Τα αυτόματα για τις r¤1 , r¤2 κατασκευάζονταιεισάγοντας μια νέα αρχική κατάσταση και συνδέοντας αυτή με τις πρώην αρχικές καιτελικές καταστάσεις χρησιμοποιώντας ²-μεταβάσεις. Η κατασκευή φαίνεται στα σχήματα(γ) και (δ) αντίστοιχα. Όμως τα αυτόματα αυτά μπορούν να απλοποιηθούν, όπως φαίνεταιστα (ε) και (στ). Τέλος, η ένωση r¤1 + r¤2 φαίνεται στο σχήμα (ζ). Εισάγουμε μιανέα αρχική κατάσταση την οποία συνδέουμε με τις αρχικές καταστάσεις των επιμέρουςαυτομάτων.

Παράδειγμα 5.8

5.5Κατασκευάστε ένα αυτόματο για την έκφραση

R = (11 + 0)¤(00 + 1)¤.

ΆσκησηΑυτοαξιολόγησης5.5

Θα δείξουμε τώρα ότι οποιαδήποτε γλώσσα γίνεται δεκτή από ένα πεπερασμένοαυτόματο μπορεί να αναπαρασταθεί και από μια κανονική έκφραση.

Page 127: αυτόματα και τυπικές γλώσσες dimitriou

Θεώρημα Kleene 115

10ε

ε

1

ε

10

10

ε

1

ε

(α) (β)

(γ) (δ)

(στ)(ε)

10

ε

1

ε

ε

ε

(ζ)

Σχήμα 5.8. Κατασκευάζοντας ένα ΜΠΑ-² για την R = (01)¤ + 1¤.

Θεώρημα 5.4. Αν M = (Q;§; q0; ±; F ) είναι ένα αυτόματο που δέχεται μιαγλώσσα L, τότε υπάρχει μια κανονική έκφραση R που περιγράφει την L.

Απόδειξη: Η ιδέα είναι να βρούμε για κάθε ζεύγος καταστάσεων p και qτου M τις συμβολοσειρές που οδηγούν το αυτόματο από την p στην q. Αςσυμβολίζουμε με R(p; q) το σύνολο αυτών των συμβολοσειρών. Εφόσον ηL δεν είναι παρά η ένωση των R(q0; f), όπου f 2 F , μια κανονική έκφρασηγια την L προκύπτει από την ένωση κανονικών εκφράσεων για τις R(q0; f).

Όπως και με το Θεώρημα 5.3, έτσι και τώρα η απόδειξη θα είναι επαγωγική.Σε ποιόν αριθμό όμως k θα βασίσουμε την επαγωγή; Μια λύση είναι ναχρησιμοποιήσουμε τον αριθμό των καταστάσεων που μεσολαβούν σ, έναμονοπάτι από την p στην q. Σ, αυτή την περίπτωση όμως μια κατάσταση

Page 128: αυτόματα και τυπικές γλώσσες dimitriou

116 Μη Ντετερμινισμός

μπορεί να εμφανίζεται πολλές φορές και η απόδειξη γίνεται περίπλοκη. Μίακαλύτερη προσέγγιση είναι να αριθμήσουμε τις καταστάσεις του M από 1έως n και να ορίσουμε σαν k το όνομα της κατάστασης με το μεγαλύτεροαριθμό σ, ένα τέτοιο μονοπάτι. Πιο συγκεκριμένα, για κάθε k ¸ 0 ορίζουμετο σύνολο Rk(p; q) ως εξής:

Rk(p; q) = fx 2 §¤j η x αντιστοιχεί σ, ένα μονοπάτι από την p στην q πουδεν περνά από κατάσταση με αριθμό μεγαλύτερο του kg

Έτσι το R(p; q) δεν είναι παρά το σύνολο Rn(p; q), αφού n δεν είναι παρά ηκατάσταση με το μεγαλύτερο αριθμό. Αρκεί λοιπόν να βρούμε μια κανονικήέκφραση για κάθε Ri(p; q), 0 ∙ i ∙ n. Θα χρησιμοποιήσουμε για το λόγοαυτό επαγωγή.

Βάση: R0(p; q) είναι οι συμβολοσειρές που οδηγούν από την p στην qχωρίς να περνούν από κάποια άλλη κατάσταση με αριθμό μεγαλύτερο του0. Αλλά αυτό σημαίνει ότι δε χρησιμοποιούν καμιά άλλη κατάσταση. Άρα,το R0(p; q) αντιστοιχεί στα σύμβολα της μετάβασης από το την p στην q,συμπεριλαμβανομένου του ² αν p = q.

R0(p; q) =

½ fa j ±(p; a) = qg, αν p6= qfa j ±(p; a) = pg [ f²g; αν p = q

Επαγωγική Υπόθεση: Έστω ότι για κάθε p και q και οποιοδήποτε k, 0 ∙k ∙ n¡1, το σύνολο Rk(p; q) μπορεί να αποδοθεί με μια κανονική έκφραση.

Επαγωγικό Βήμα: Θα δείξουμε το ίδιο και για το Rk+1(p; q). Μπορούμενα ορίσουμε το σύνολο Rk+1(p; q) αναδρομικά ως εξής. Οι συμβολοσειρέςπου οδηγούν το αυτόματο από την p στην q χωρίς να περνούν από κάποιακατάσταση με αριθμό μεγαλύτερο του k + 1, ανήκουν είτε

1. στο σύνολο Rk(p; q), δηλαδή το μονοπάτι προσπερνά την κατάστασημε αριθμό k + 1 (θα τη συμβολίζουμε με pk+1), είτε

2. στο σύνολοRk(p; pk+1)(Rk(pk+1; pk+1))¤Rk(pk+1; q), δηλαδή σχημα-τίζονται από συμβολοσειρές στο Rk(p; pk+1) (οι οποίες οδηγούν τοαυτόματο στην pk+1 για πρώτη φορά), ακολουθούμενες από μηδέν ήπερισσότερες συμβολοσειρές στο (Rk(pk+1; pk+1))¤ (οι οποίες οδηγούντο M από την pk+1 ξανά πίσω στην pk+1 ), ακολουθούμενες απόσυμβολοσειρές στο Rk(pk+1; q) (οι οποίες οδηγούν τοM από την pk+1στην q).

Άρα το Rk+1(p; q) δίνεται από τη σχέση

Rk+1(p; q) = Rk(p; q) +Rk(p; pk+1)(Rk(pk+1; pk+1))

¤Rk(pk+1; q)

Είναι φανερό ότι ο παραπάνω αναδρομικός ορισμός παράγει μια κανονικήέκφραση αφού χρησιμοποιεί μόνο τις βασικές πράξεις των κανονικών εκφρά-σεων. Έτσι η ζητούμενη έκφραση για τη γλώσσα που αναγνωρίζει το M δεν

Page 129: αυτόματα και τυπικές γλώσσες dimitriou

Θεώρημα Kleene 117

είναι παρά η

R = Rn(q0; f1) +Rn(q0; f2) + ¢ ¢ ¢+Rn(q0; fm),

όπου q0 είναι η αρχική και f1; f2; : : : ; fm οι τελικές καταστάσεις του M .

1 21

0

1

0

0

3

1

Σχήμα 5.9. Αυτόματο Παραδείγματος 5.9

5.9Ας είναι M το αυτόματο του Σχήματος 5.9, το οποίο αναγνωρίζει τη γλώσσα L = fx 2f0; 1g¤j η x τελειώνει σε 00g.Οι εκφράσεις για τα Rk(p; q) φαίνονται στον Πίνακα 5.1. Για καθεμία εφαρμόζουμε τοναναδρομικό ορισμό που δόθηκε παραπάνω. Ας δούμε πως προκύπτουν μερικές από αυτές.Έστω ότι θέλουμε να υπολογίσουμε την R2(2; 2). Ξεκινάμε πρώτα από τις R0(2; 2) καιR1(2; 2).Η R0(2; 2) είναι ίση με ² καθότι δεν υπάρχει άλλη δυνατότητα μετάβασης από τηνκατάσταση 2 πίσω στον εαυτό της. Εφαρμόζοντας τον ορισμό για την R1(2; 2) καιχρησιμοποιώντας τις τιμές του πίνακα που έχουμε ήδη υπολογίσει, παίρνουμε

R1(2; 2) = R0(2; 2) +R0(2; 1)(R0(1; 1))¤R0(1; 2) = ²+ 1(1 + ²)¤0 = ²+ 1+0

Δουλεύοντας ανάλογα για την R2(2; 2) έχουμε

R2(2; 2) = R1(2; 2) +R1(2; 2)(R1(2; 2))¤R1(2; 2)

= R1(2; 2)(R1(2; 2))¤

= (²+ 1+0)(²+ 1+0)¤

= (²+ 1+0)(1+0)¤

= (1+0)¤

Παράδειγμα 5.9

Όλες οι εκφράσεις συνήθως χρειάζονται κάποια απλοποίηση για να φτάσουν σε μιακατανοητή μορφή. Για παράδειγμα, η προτελευταία ισότητα προέκυψε κάνονταςχρήση της ιδιότητας (²+ r)¤ = r¤, όπου r μια οποιαδήποτε έκφραση. Τι δηλώνειόμως η έκφραση (1+0)¤; Δηλώνει ότι για να φτάσουμε από την κατάσταση 2 πίσωστον εαυτό της χωρίς να χρησιμοποιήσουμε την 3, αρκεί να μεταβούμε στην 1 (με

Page 130: αυτόματα και τυπικές γλώσσες dimitriou

118 Μη Ντετερμινισμός

Πίνακας 5.1. Πίνακας εκφράσεων Rk(p; q).

k = 0 k = 1 k = 2

Rk(1; 1) 1 + ² 1¤ 1¤

Rk(1; 2) 0 1¤0 1¤0(1+0)¤

Rk(1; 3) Â Â 1¤0(1+0)¤0Rk(2; 1) 1 1+ (1+0)¤1+

Rk(2; 2) ² ²+ 1+0 (1+0)¤

Rk(2; 3) 0 0 (1+0)¤0Rk(3; 1) 1 1+ (1+0)¤1+

Rk(3; 2) Â 1+0 (1+0)+

Rk(3; 3) ²+ 0 ²+ 0 ²+ (1+0)¤0

το σύμβολο 1), να μείνουμε εκεί όσο θέλουμε (με το 1¤) και να γυρίσουμε πίσω στη2 (με το 0). Ενώνοντας όλα τα κομμάτια παίρνουμε την έκφραση 11¤0 = 1+0. Ανεπαναλάβουμε τα παραπάνω πολλές φορές καταλήγουμε στη ζητούμενη έκφραση(1+0)¤.

Αν είμαστε λοιπόν προσεκτικοί, μπορούμε να συμπληρώσουμε μερικά από τακενά του πίνακα κοιτώντας το διάγραμμα του Σχήματος 5.9. Για παράδειγμα,η R2(2; 3) προκύπτει, αν από την κατάσταση 2 κάνουμε ένα κύκλο πίσω σ,

αυτή και στη συνέχεια μεταβούμε (με 0) στην 3. Άρα R2(2; 3) = (1+0)¤0.Ανάλογα, η R2(3; 2) προκύπτει, αν από την 3 πάμε στην 1 (με 1) και από εκείχρησιμοποιήσουμε την τιμή της R2(1; 2) για να καταλήξουμε στην 2. Θα έχουμελοιπόν

R2(3; 2) = 1R2(1; 2) = 11¤0(1+0)¤ = 1+0(1+0)¤ = (1+0)+

5.9Έχοντας συμπληρώσει μόνο όσες τιμές του πίνακα είναι απαραίτητες προχωρούμε ναδώσουμε την κανονική έκφραση που αντιστοιχεί στο αυτόματο. Αφού η μόνη τελικήείναι η κατάσταση 3, η έκφραση θα είναι:

R = R3(1; 3)

= R2(1; 3) +R2(1; 3)(R2(3; 3))¤R2(3; 3)

= 1¤0(1+0)¤0 + 1¤0(1+0)¤0(²+ (1+0)¤0)¤(²+ (1+0)¤0)

= 1¤0(1+0)¤0 + 1¤0(1+0)¤0((1+0)¤0)¤(²+ (1+0)¤0)

= 1¤0(1+0)¤0((1+0)¤0)¤

= 1¤0((1+0)¤0)+

Παράδειγμα 5.9(Συνέχεια)

Page 131: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 119

Η έκφραση αυτή μπορεί να απλοποιηθεί και άλλο στην ((1¤0)+0)+ αλλά σε καμιάπερίπτωση δε μπορεί να γίνει (0 + 1)¤00, η οποία χαρακτηρίζει με απλούς όρουςτη γλώσσα. Μην ξεχνάτε όμως ότι η μέθοδος του Θεωρήματος 5.4 περιγράφειουσιαστικά τις συμβολοσειρές που γίνονται δεκτές από τις διάφορες καταστάσειςτου αυτόματου και γι, αυτό οι εκφράσεις δεν είναι πάντα οι απλούστερες δυνατές.Εκείνο που πρέπει να θυμόμαστε είναι ότι η μέθοδος μας δείχνει την ισοδυναμίαμεταξύ αυτομάτων και κανονικών εκφράσεων.

1

0

0

1

31

2

0

1

Σχήμα 5.10. Αυτόματο Άσκησης Αυτοαξιολόγησης 5.6

5.6Κατασκευάστε τον πίνακα των εκφράσεων Rk(p; q) και δώστε την κανονική έκφρασηπου αντιστοιχεί στο αυτόματο του Σχήματος 5.10.

ΆσκησηΑυτοαξιολόγησης

5.6

ΑΣΚΗΣΕΙΣ

5.1 Ποιες από τις παρακάτω συμβολοσειρές αναγνωρίζονται από τα αυτόματατου Σχήματος 5.11; α) 10, β) 10101, γ) 1001101, δ) 011001, ε) 10110110.

5.2 Δώστε κανονικές εκφράσεις για τις γλώσσες που γίνονται δεκτές από τααυτόματα του Σχήματος 5.11.

εε

0

1

0

1

0

0

1 11

001

M 1

M 2

Σχήμα 5.11. Διαγράμματα καταστάσεων μη ντετερμινιστικών αυτομάτων.

Page 132: αυτόματα και τυπικές γλώσσες dimitriou

120 Μη Ντετερμινισμός

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

α) (0 + 1)(100)¤(1010)¤

β) ((01 + 001)¤0)¤

γ) ((0¤1¤)¤0¤)¤

δ) (10 + 01)¤ + 00(10 + 0)¤11

ε) 1(01)¤ + 0¤101¤

5.4 Θεωρήστε το αυτόματο του Σχήματος 5.12. Υπολογίστε τα παρακάτω: α)²(f1g), β) ²(f3; 4g), γ) ±̂¤(1; 00), δ) ±̂¤(1; 10), ε) ±̂¤(1; 1010).

011 2 3 4 5 6

ε

ε

ε

ε

ε1

Σχήμα 5.12. Ένα ΜΠΑ-².

5.5 Αν M είναι ένα ΜΠΑ, δείξτε για οποιαδήποτε x; y 2 §¤ και q 2 Q ότι

±¤(q; xy) = ±¤(±¤(q; x); y) = [p2±¤(q;x)±¤(p; y)

5.6 Ας είναιM = (Q;§; q0; ±; F ) ένα ΜΠΑ-² και S; T µ Q. Αποδείξτε ή δώστεένα αντιπαράδειγμα ότι:

α) ²(S) = [p2S²(p).β) ²(²(S)) = ²(S).

γ) ²(S [ T ) = ²(S) [ ²(T ).δ) ²(S \ T ) = ²(S) \ ²(T ).

5.7 Έστω M = (Q;§; q0; ±; F ) ένα αυτόματο που αναγνωρίζει μια γλώσσα L.Αν από κάθε τελική κατάσταση του M προσθέσουμε μια ²-μετάβαση προςτην αρχική κατάσταση, ποια είναι η γλώσσα που αναγνωρίζεται από το νέοαυτόματο;

Page 133: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 121

Οι Ασκήσεις 5.8-5.10 είναι κατασκευαστικές όπως και η απόδειξη του Θεω-ρήματος 4.1: Μας δίνεται ένα αυτόματο που αναγνωρίζει μια γλώσσα L καιμας ζητείται να σχεδιάσουμε ένα άλλο που αναγνωρίζει μια γλώσσα L0.

5.8 Έστω L μια κανονική γλώσσα. Κατασκευάστε αυτόματα για τις παρακάτωγλώσσες:

α) Prefix(L)= fx 2 §¤j xy 2 L για κάποιο y 2 §¤g. Prefix(L) είναι ηγλώσσα όλων των προθεμάτων της L: αποτελείται από όλα τα x για ταοποία υπάρχει κάποιο y 2 §¤ ώστε xy 2 L.

β) Suffix(L)= fy 2 §¤j xy 2 L για κάποιο x 2 §¤g. Suffix(L) είναι ηγλώσσα όλων των επιθεμάτων της L: αποτελείται από όλα τα y για τα οποίαυπάρχει κάποιο x 2 §¤ ώστε xy 2 L.

5.9 Έστω L μια κανονική γλώσσα. Κατασκευάστε αυτόματα για τις παρακάτωγλώσσες:

α) Max(L)= fx 2 Lj xy 2 L μόνο αν y = ²g. Max(L) είναι η γλώσσαόλων των x 2 L που κατά κάποιο τρόπο είναι μέγιστα, δεν υπάρχει δηλαδήεπίθεμα y6= ² ώστε xy 2 L.

β) Min(L)= fx 2 Lj δεν υπάρχει πρόθεμα του x που ανήκει στην Lg.Min(L) είναι η γλώσσα όλων των x 2 L που κατά κάποιο τρόπο είναιελάχιστα, δεν υπάρχει δηλαδή πρόθεμα y του x, ώστε αν x = yw, γιακάποιο w6= ², τότε y 2 L.

5.10 Έστω L μια κανονική γλώσσα. Σχεδιάστε αυτόματα για τις παρακάτωγλώσσες.

α) Reverse(L) = fx 2 §¤j xR 2 Lg. Reverse(L) είναι η γλώσσα όλων τωναντίστροφων συμβολοσειρών της L.

β) Half(L) = fx 2 §¤j xy 2 L για κάποιο y τέτοιο ώστε jyj = jxjg. Half(L)είναι η γλώσσα των πρώτων μισών των συμβολοσειρών της L.

5.11 Έστω M = (Q;§; q0; ±; ffg) ένα αυτόματο με μόνο μια τελική κατάστασηf και στο οποίο δεν υπάρχουν μεταβάσεις προς την αρχική κατάσταση. Πώςμπορούμε να μετατρέψουμε οποιοδήποτε αυτόματο σε ένα που υπακούει στιςπαραπάνω προδιαγραφές; Βρείτε τις γλώσσες που αναγνωρίζονται από τααυτόματα που προκύπτουν από τις παρακάτω προσθήκες στο M :

α) Αν προσθέσουμε ²-μεταβάσεις από την q0 προς κάθε άλλη κατάσταση πουείναι προσπελάσιμη από την q0.

β) Αν προσθέσουμε ²-μεταβάσεις στην f από κάθε άλλη κατάσταση πουμπορεί να προσπελάσει την f .

Page 134: αυτόματα και τυπικές γλώσσες dimitriou

122 Μη Ντετερμινισμός

5.12 Βρείτε ένα μη ντετερμινιστικό αυτόματο που αναγνωρίζει τη γλώσσα L(R),όπου R = (0+1)¤(010+101)(0+1)¤. Στη συνέχεια μετατρέψτε το αυτόματοσε ντετερμινιστικό.

5.13 Ποια είναι η γλώσσα που αναγνωρίζει το ΜΠΑ-² του Σχήματος 5.3(α);Μετατρέψτε το αυτόματο σε ένα ισοδύναμο ντετερμινιστικό.

5.14 Μετατρέψτε τα αυτόματα του Σχήματος 5.13 σε ισοδύναμα ντετερμινιστικάαφού πρώτα εξαλείψετε τις ²-μεταβάσεις.

1

2

3

4

0,10

1

1

ε

0

M 4

1 0

1

32

0

1

ε

0

M 3

0

1

2 310

1

M 1

ε

1 21

40

3

00

M 2

0

Σχήμα 5.13. Μη ντετερμινιστικά αυτόματα.

5.15 Κατασκευάστε αυτόματα για τις παρακάτω εκφράσεις χρησιμοποιώντας τιςιδέες του Θεωρήματος 5.3. Μην προσπαθείτε ν, απλοποιήσετε τις απαντήσεις.

α) 101(00)¤10 + 1¤01¤

β) (10) + (100)¤(10 + 0¤)¤

γ) ((1 + 01)¤ + (0 + 01)¤)¤

5.16 Θεωρήστε τα αυτόματα M1 και M2 του Σχήματος 5.13, τα οποία αναγνωρί-ζουν κάποιες γλώσσες L1 και L2. Κατασκευάστε αυτόματα που δέχονται τιςπαρακάτω γλώσσες:

α) L1L¤2

Page 135: αυτόματα και τυπικές γλώσσες dimitriou

Σύνοψη 123

β) L¤1 + L¤2L1

γ) L1L¤2 + (L2L1)¤

5.17 Χρησιμοποιήστε τον αλγόριθμο του Θεωρήματος 5.4 για να βρείτε μια κανονικήέκφραση που αντιστοιχεί στα αυτόματα του Σχήματος 5.14.

1

0

3

21

10

M 1

0,1

1

0

3

0,1

M 2

0,1

1 2

1

2

3

4

0,10

1

1

0

0

1

M 31 2

1

0

1

0

0

3

1

M 4

Σχήμα 5.14. Ντετερμινιστικά αυτόματα.

Σύνοψη

Στο κεφάλαιο αυτό μελετήσαμε το στοιχείο του μη ντετερμινισμού στα αυτόματα. Ημόνη διαφορά ενός μη ντετερμινιστικού πεπερασμένου αυτόματου (ΜΠΑ) από ένααπλό αυτόματο είναι ότι για κάθε ζεύγος κατάστασης-συμβόλου εισόδου μπορεί ναυπάρχουν πολλές και όχι μόνο μια επόμενες καταστάσεις. Έτσι το αυτόματο, αντί ναμεταβεί σε μια συγκεκριμένη κατάσταση, μπορεί να επιλέξει πού θα πάει μέσα απόένα σύνολο καταστάσεων.

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

Αλλά ενώ θα περίμενε κανείς το στοιχείο του μη ντετερμινισμού να προσδίδειστα αυτόματα κάποιες παραπάνω δυνατότητες, τα ΜΠΑ είναι ισοδύναμα και με τα

Page 136: αυτόματα και τυπικές γλώσσες dimitriou

124 Μη Ντετερμινισμός

απλά αυτόματα. Δηλαδή, για κάθε ΜΠΑ M υπάρχει ένα ισοδύναμο ντετερμινιστικόM 0 που αναγνωρίζει την ίδια γλώσσα με το M . Η ιδέα κατασκευής του M 0 είναι ηεξής: οι καταστάσεις του M 0 αντιπροσωπεύουν τα σύνολα καταστάσεων που μπορείνα βρεθεί το M , όταν διαβάζει κάποιο σύμβολο a. Μ, αυτό τον τρόπο το M 0 μπορείνα \θυμάται" σε ποιες καταστάσεις βρίσκεται το M και να εξομοιώνει τη λειτουργίατου.

Τέλος, δείξαμε ότι οι γλώσσες που παράγονται από τις κανονικές εκφράσειςείναι οι γλώσσες που γίνονται δεκτές από τα πεπερασμένα αυτόματα. Το θεώρημααυτό είναι γνωστό ως θεώρημα Kleene και αποτελείται από δύο μέρη. Στο πρώτομέρος δείξαμε πώς μπορούμε να κατασκευάσουμε για κάθε κανονική έκφραση R ένααυτόματο που αναγνωρίζει τη γλώσσα L(R). Αυτό έγινε διασπώντας μια κανονικήέκφραση στα κομμάτια τα οποία την αποτελούν και χτίζοντας αυτόματα για καθένααπό τα επιμέρους κομμάτια. Στο δεύτερο μέρος δείξαμε το αντίστροφο, πως για κάθεαυτόματο μπορούμε να παράγουμε μια κανονική έκφραση. Αυτό έγινε υπολογίζονταςκανονικές εκφράσεις για όλες τις συμβολοσειρές που οδηγούν το αυτόματο από μιακατάσταση p σε μια κατάσταση q. Η ζητούμενη έκφραση τότε δεν είναι παρά ηένωση των εκφράσεων που φέρνουν το αυτόματο από την αρχική προς κάθε τελικήκατάσταση.

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης

Άσκηση 5.1 ΈστωM ένα αυτόματο χωρίς ²-κινήσεις και ± η συνάρτηση μετάβασήςτου. Θα αποδείξουμε την ιδιότητα ±¤(q; a) = ±(q; a), για μια κατάσταση q και ένασύμβολο a.

±¤(q; a) = ±¤(q; ²a) γιατί a = ²a=

Sp2±¤(q;²) ±(p; a) Ορισμός 5.2, Κανόνας 2

=Sp2fqg ±(p; a) Ορισμός 5.2, Κανόνας 1

= ±(q; a)

Άσκηση 5.2 Το αυτόματο που προκύπτει από την εφαρμογή του Θεωρήματος 5.1φαίνεται στο Σχήμα 5.15(α).

Η ²-μετάβαση από τη 0 στην κατάσταση 1 αντικαθίσταται με μια 0-μετάβασηπρος την 1 και με μια 1-μετάβαση προς την 3. Παρόμοια ισχύει και για την²-μετάβαση προς την κατάσταση 2. Ας δούμε αναλυτικά γιατί συμβαίνει αυτό.

±(0; 1) = ²(±̂(²(0); 1)

= ²(±̂(f0; 1; 2g; 1))= ²(±̂(0; 1) [ ±̂(1; 1) [ ±̂(2; 1)))= ²(Â [ f3g [ f2g)

Page 137: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης 125

(α) (β)

0 3

1

2

1

0

0

1

0

0,1

1

00

1

1

11

0

0[0]

1

[1,3]

[2,3] [2]

[1]

0

[3]0,1

0,1

Σχήμα 5.15. Αυτόματα Ασκήσεων Αυτοαξιολόγησης 5.2 και 5.4

= f3; 2g±(0; 0) = ²(±̂(0; 0) [ ±̂(1; 0) [ ±̂(2; 0)))

= ²(Â [ f1g [ f3g)= f1; 3g

Η αρχική κατάσταση 0 δεν είναι τελική στο νέο αυτόματο, επειδή το σύνολο ²(0) =f0; 1; 2g δεν περιέχει τελική κατάσταση.

Αν σχεδιάσετε σωστά το ζητούμενο αυτόματο, συγχαρητήρια. Αν όχι, μηναπογοητεύεστε. Θυμηθείτε ότι το σύνολο ²(q) μιας κατάστασης q προκύπτει εύκολααν στο αρχικό αυτόματο διατηρήσουμε μόνο τα βέλη με τις ²-μεταβάσεις και στονέο αυτόματο βρούμε ποιες καταστάσεις είναι προσπελάσιμες από την q.

Άσκηση 5.3 Ας είναι ±0 η συνάρτηση μετάβασης του αυτόματουM 0 που προκύπτειαπό τη μετατροπή του ΜΠΑ M 0. Θα δείξουμε, χρησιμοποιώντας επαγωγή στομήκος μιας συμβολοσειράς x, ότι

±0¤([q0]; x) = [q1; q2; : : : ; qk] αν και μόνο αν ±¤(q0; x) = fq1; q2; : : : ; qkg:

Βάση: Για x = ², ±0¤([q0]; ²) = [q0] και ±¤(q0; ²) = fq0g.Επαγωγική Υπόθεση: Ας υποθέσουμε ότι ο ισχυρισμός είναι αληθής για όλες τιςσυμβολοσειρές μήκους k.

Επαγωγικό Βήμα: Έστω xa μια συμβολοσειρά μήκους k + 1. Από τον ορισμότης ±0¤, θα έχουμε

±0¤([q0]; xa) = ±0(±0¤([q0]; x); a)= ±0([q1; q2; : : : ; qk]; a)= ±(q1; a) [ ±(q2; a) [ ¢ ¢ ¢ [ ±(qk; a) Από τον Ορισμό της ±0

Page 138: αυτόματα και τυπικές γλώσσες dimitriou

126 Μη Ντετερμινισμός

Αντίστοιχα, για τη συνάρτηση ±¤ θα έχουμε

±¤(q0; xa) = ±(±¤(q0; x); a)= ±(fq1; q2; : : : ; qkg; a) Από την Επαγωγική Υπόθεση= ±(q1; a) [ ±(q2; a) [ ¢ ¢ ¢ [ ±(qk; a)

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

Άσκηση 5.4 Η μετατροπή από ΜΠΑ χωρίς ²-κινήσεις σε ντετερμινιστικό φαίνεταιστο Σχήμα 5.15(β). Βλέπουμε λοιπόν ότι είναι ίδιο με το αυτόματο του Σχήματος5.2(α). Ας δούμε γιατί.

Από την κατάσταση [0] με είσοδο 0 το ΜΠΑ μπορεί να πάει είτε στην 1είτε στην 3. Άρα ±0([0]; 0) = [1; 3]. Ανάλογα, ±0([0]; 1) = [2; 3]. Από την [1; 3] μεείσοδο 0 εξετάζουμε πού θα πήγαινε το ΜΠΑ ξεκινώντας είτε από την 1 είτε από την3. Από την πρώτη, με 0, θα πήγαινε στην 1, ενώ από τη δεύτερη δεν υπάρχει δυνατήκίνηση. Άρα, ±0([1; 3]; 0) = [1]. Παρόμοια, αν η είσοδος είναι 1, τότε θα πάει στηνκατάσταση [3]. Άρα, ±0([1; 3]; 1) = [3]. Δουλεύοντας ανάλογα, οι μεταβάσεις με1 και 0 από την [2; 3] οδηγούν στις [2] και [3]. Όμως από την κατάσταση 3 τουΜΠΑ δεν υπάρχει δυνατή μετάβαση. Άρα ±0([3]; 0) = ±0([3]; 1) = [Â].

Αν μετατρέψατε σωστά το αυτόματο σε ντετερμινιστικό, σας αξίζουν συγχαρη-τήρια. Αν όχι, μην ανησυχείτε. Πηγαίνετε ξανά στην αντίστοιχη ενότητα καιβεβαιωθείτε ότι κατανοήσατε τον τρόπο μετατροπής του αυτόματου. Η βασικήιδέα είναι η εξής: Αν το αυτόματο βρίσκεται στην κατάσταση [p1; p2; : : : ; pk]και διαβαστεί το σύμβολο a, η επόμενη κατάσταση είναι η ένωση όλων τωνκαταστάσεων, στις οποίες θα μεταβεί το μη ντετερμινιστικό, όταν από κάθε piδιαβάσει το a.

Άσκηση 5.5 Τα αυτόματα για την έκφραση R = (11 + 0)¤(00 + 1)¤ φαίνονταιστο Σχήμα 5.16. Το r4 είναι η απλοποιημένη μορφή του r3 για τη γλώσσα 11+0.Το αυτόματο για την (00 + 1)¤ είναι ίδιο με το αυτόματο για την (11 + 0)¤, εκτόςαπό την εναλλαγή άσσων και μηδενικών.

Το τελικό αυτόματο προκύπτει τοποθετώντας τα αυτόματα σε \σειρά", συνδέο-ντας δηλαδή τις τελικές καταστάσεις τους με μια ²-μετάβαση, μόνο που η αρχικήκατάσταση του πρώτου παύει να είναι πια και τελική.

Άσκηση 5.6 Οι τιμές των εκφράσεων Rk(p; q) φαίνονται στον Πίνακα 5.2.Εφόσον υπάρχει μόνο μια τελική κατάσταση, η έκφραση που αντιστοιχεί στο

αυτόματο είναι η R3(1; 2). Αναπτύσσοντάς την παίρνουμε

R3(1; 2) = R2(1; 2) +R2(1; 3)(R2(3; 3))¤R2(3; 2)

= 1¤0+ + 1¤0+1((1 + 01¤0)0¤1)¤(1 + 01¤0)0¤

Page 139: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης 127

11

r1 = 11

0

r2 = 0 0

r3 = r1 + r2

11

ε

ε

0

r4 = r1 + r2

11

0

r5 = r 4* = (11+ 0) *

11

εε

1

s5 = (00 + 1) *

00

εε

0

R = r 5 s5

11

ε

ε

1

00

εεε

Σχήμα 5.16. Αυτόματα έκφρασης R = (11 + 0)¤(00 + 1)¤.

Αν θέλαμε να βρούμε μόνο την κανονική έκφραση που αντιστοιχεί σ, ένααυτόματο και όχι ολόκληρο τον πίνακα των εκφράσεων θα μπορούσαμε να δουλέ-ψουμε με τον τρόπο που προτείνεται σ, αυτή την άσκηση. Αρχίζοντας από τηνέκφραση που αντιστοιχεί στις τελικές καταστάσεις του αυτόματου

R = Rn(1; f1) +Rn(1; f2) + ¢ ¢ ¢+Rn(1; fm), όπου fi 2 F ,

δουλεύουμε προς τα \πίσω" και συμπληρώνουμε μόνο τις απαραίτητες τιμές στονπίνακα που χρειάζονται για τον υπολογισμό των Rn(1; fi). Μ, αυτό τον τρόπογλιτώνουμε χρόνο, ενώ η τελική έκφραση δεν αλλάζει. Έτσι, στο συγκεκριμένοπαράδειγμα, θ, αρχίζαμε από τις εκφράσεις R2(1; 2); R2(1; 3); R2(3; 3); R2(3; 2),ώστε να υπολογίσουμε την R3(1; 2), και κάθε φορά θα υπολογίζαμε μόνο τις

Page 140: αυτόματα και τυπικές γλώσσες dimitriou

128 Μη Ντετερμινισμός

Πίνακας 5.2. Πίνακας εκφράσεων Rk(p; q).

k = 0 k = 1 k = 2

Rk(1; 1) 1 + ² 1 + ² 1 + ²Rk(1; 2) 0 1¤0 1¤0+

Rk(1; 3) Â Â 1¤0+1Rk(2; 1) Â Â ÂRk(2; 2) ²+ 0 ²+ 0 0¤

Rk(2; 3) 1 1 0¤1Rk(3; 1) 0 01¤ 01¤

Rk(3; 2) 1 1 + 01¤0 (1 + 01¤0)0¤

Rk(3; 3) ² ² ²+ (1 + 01¤0)0¤1

απαραίτητες υποεκφράσεις που προκύπτουν από την εφαρμογή του αναδρομικούκανόνα.

Αν λοιπόν οι τιμές που βρήκατε είναι ίδιες με του Πίνακα 5.2, συγχαρητήρια.Αν κάποιες διαφέρουν, ελέγξτε αν αντιστοιχούν στις ίδιες εκφράσεις. Σε αντίθετηπερίπτωση μην απογοητεύεστε. Βεβαιωθείτε όμως ότι κατανοήσατε τις ιδέες τουΘεωρήματος 5.4.

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝμη ντετερμινισμός nondeterminism

²-μεταβάσεις ²-transitions

μέθοδος κατασκευής υποσυνόλων subset construction method

πρόθεμα prefix

επίθεμα suffix

Page 141: αυτόματα και τυπικές γλώσσες dimitriou

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

Κ Ε Φ Α Λ Α Ι Ο

Σκοπός

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

Προσδοκώμενα Αποτελέσματα

Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:

² αναφέρετε πώς σχετίζεται η πεπερασμένη μνήμη ενός αυτόματου με την αδυνα-μία αναγνώρισης γλωσσών,

² αναφέρετε τι είναι το Λήμμα Άντλησης και πώς χρησιμοποιείται,

² αναφέρετε πώς σχετίζεται το παραπάνω λήμμα με την ύπαρξη περιοδικότηταςσε μια άπειρη κανονική γλώσσα,

² αποδείξετε αν μια γλώσσα είναι κανονική ή όχι,

² εξηγήσετε πώς μπορούμε να χρησιμοποιήσουμε το Λήμμα Άντλησης για νααπαντήσουμε στο ερώτημα αν μια γλώσσα είναι πεπερασμένη ή όχι,

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

² επιλύετε προβλήματα απόφασης και να εξηγείτε τους λόγους για τους οποίουςενδιαφερόμαστε να δώσουμε απαντήσεις σ, αυτά τα προβλήματα.

129

Page 142: αυτόματα και τυπικές γλώσσες dimitriou

130 Μη Κανονικές Γλώσσες

Έννοιες-κλειδιά

² Μη κανονικές γλώσσες² Διακρινόμενες συμβολοσειρές² Πεπερασμένη μνήμη αυτόματου² Αδυναμία αναγνώρισης γλωσσών που απαιτούν μεγάλη μνήμη² Λήμμα Άντλησης² Αλγόριθμοι και προβλήματα απόφασης

Εισαγωγικές Παρατηρήσεις

Το κεφάλαιο αυτό αποτελείται από δύο ενότητες. Στην πρώτη ενότητα αναφερόμαστεστην αδυναμία αυτομάτων ν, αναγνωρίσουν γλώσσες, οι οποίες απαιτούν μεγάλη\μνήμη". Περιγράφουμε το Λήμμα Άντλησης και εξηγούμε πώς χρησιμοποιείται γιανα αποδείξουμε τη μη κανονικότητα μιας γλώσσας. Στη δεύτερη ενότητα, αναφερόμα-στε σε αλγόριθμους και προβλήματα απόφασης που αφορούν γλώσσες που γίνονταιδεκτές από αυτόματα. Μεταξύ άλλων μας ενδιαφέρει να γνωρίζουμε πότε μία γλώσσαείναι πεπερασμένη ή άπειρη, πότε δύο αυτόματα αναγνωρίζουν τις ίδιες γλώσσες, κοκ.

6.1 Το Λήμμα Άντλησης

Στο Κεφάλαιο 4 εντοπίσαμε την πρώτη μας μη κανονική γλώσσα, τη γλώσσα Pτων παλινδρομικών συμβολοσειρών,

P = fx 2 f0; 1g¤j η x είναι παλινδρομικήg:Αυτό το πετύχαμε σχετίζοντας τον αριθμό των καταστάσεων ενός αυτόματου γιατην P με τον αριθμό των διακρινόμενων συμβολοσειρών όσον αφορά την P . Γιαπληρότητα παραθέτουμε ξανά τον ορισμό αυτό.

Έστω L μια γλώσσα πάνω σ, ένα αλφάβητο §. Δύο συμβολοσειρέςΔιακρινόμενεςσυμβολοσειρές

x; y 2 §¤ διακρίνονται ή είναι διακρινόμενες όσον αφορά την L, ανυπάρχει συμβολοσειρά z, που μπορεί να εξαρτάται από τις x και y,ώστε μία και μόνο μία από τις xz και yz ν, ανήκει στην L. Οι x και yείναι μη διακρινόμενες, αν δε συμβαίνει το παραπάνω: για οποιοδήποτεz, οι xz και yz ή και οι δύο ανήκουν στην L ή καμιά τους.

Στο Θεώρημα 4.2 δείξαμε ότι, αν υπάρχει ένα σύνολο S από n διακρινόμενεςανά δύο συμβολοσειρές, τότε οποιοδήποτε αυτόματο για την L θα πρέπει να έχειτουλάχιστον n καταστάσεις. Πώς μπορούμε λοιπόν να χρησιμοποιήσουμε αυτό τοθεώρημα για να δείξουμε ότι μια γλώσσα δεν είναι κανονική; Με δύο τρόπους:

Page 143: αυτόματα και τυπικές γλώσσες dimitriou

Το Λήμμα Άντλησης 131

1. Nα βρούμε ένα μη πεπερασμένο (δηλαδή απείρου μεγέθους) σύνολο S απόδιακρινόμενες μεταξύ τους συμβολοσειρές, οπότε σύμφωνα με τα παραπάνωδεν μπορεί να υπάρχει πεπερασμένο αυτόματο για την L.

2. Nα οδηγηθούμε σε κάποια αντίφαση. Να υποθέσουμε δηλαδή την ύπαρξηενός αυτόματου m καταστάσεων για την L και να βρούμε ένα σύνολο μεπερισσότερες από m διακρινόμενες συμβολοσειρές. Αφού, σύμφωνα μετο παραπάνω θεώρημα, οποιοδήποτε αυτόματο για την L δεν μπορεί ναέχει λιγότερες από m καταστάσεις, συμπεραίνουμε ότι τέτοιο αυτόματο δενμπορεί να υπάρχει.

Διαισθητικά καταλαβαίνουμε ότι το πρόβλημα είναι η περιορισμένη \μνήμη" Μικρή μνήμη

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

Ο τρόπος που αποδείξαμε τη μη κανονικότητα της γλώσσας P ήταν χρησιμο-ποιώντας το άπειρο σύνολο S = f1; 11; 111; : : :g. Εάν η είσοδος στο αυτόματοείναι κάποιο από τα στοιχεία του S, έστω το 1i, το αυτόματο με κάποιο τρόπο θαπρέπει να θυμάται το i, γιατί, αν η είσοδος που ακολουθεί είναι το 01j , θα πρέπεινα μπορεί να συγκρίνει το i με το j για να αποφασίσει αν η συμβολοσειρά είναιπαλινδρομική. Μ, ένα πεπερασμένο αριθμό καταστάσεων αυτό δεν είναι δυνατόγιατί το i μπορεί να γίνει αυθαίρετα μεγάλο. Αυτός είναι ο διαισθητικός λόγος γιατον οποίο η γλώσσα P δεν είναι κανονική. Ας δούμε άλλο ένα παράδειγμα.6.1Έστω η γλώσσα L = f0n1nj n ¸ 0g. Διαισθητικά και αυτή η γλώσσα δεν μπορεί να είναικανονική, γιατί ένα αυτόματο θα πρέπει να μπορεί να θυμάται τον αριθμό των μηδενικώνώστε να το συγκρίνει με τον αριθμό των άσσων.Για να χρησιμοποιήσουμε το Θεώρημα 4.2 διαλέγουμε ως S το σύνολο f0nj n ¸ 0g. Αςείναι 0i, 0j , i 6= j, δύο συμβολοσειρές του S. Με ποιά συμβολοσειρά z μπορούμε ναδιακρίνουμε τη μια από την άλλη; H z θα πρέπει να είναι τέτοια ώστε μόνο μια από τιςδύο, έστω η πρώτη, να ανήκει στην L. Αυτό μας οδηγεί στην επιλογή της z = 1i. Είναιφανερό τώρα ότι 0iz 2 L ενώ 0jz62 L. Εφόσον το S είναι άπειρο συμπεραίνουμε ότι ηγλώσσα δεν είναι κανονική.

Παράδειγμα 6.1

6.1Δείξτε ότι η γλώσσα L = faibjckj όπου k > i+ jg δεν είναι κανονική χρησιμοποιώνταςτο άπειρο σύνολο S = fanj n ¸ 0g.

ΆσκησηΑυτοαξιολόγησης

6.1

Ο βασικός λόγος για τον οποίο οι παραπάνω γλώσσες δεν είναι κανονικές, είναιγιατί δεν υπάρχει κάποια περιοδικότητα στις συμβολοσειρές τους. Μια κανονική

Page 144: αυτόματα και τυπικές γλώσσες dimitriou

132 Μη Κανονικές Γλώσσες

γλώσσα με άπειρο αριθμό συμβολοσειρών έχει μια επαναλαμβανόμενη δομή πουπροκύπτει από την εφαρμογή του αστεριού Kleene στην αντίστοιχη έκφραση (συ-γκρίνετε με την Άσκηση Αυτοαξιολόγησης 3.3) ή από ένα κύκλο στο διάγραμμα τουαντίστοιχου αυτόματου. Θα χρησιμοποιήσουμε τώρα την παραπάνω παρατήρησηγια ν, αναπτύξουμε μια νέα τεχνική απόδειξης της μη κανονικότητας μιας γλώσσας.

Θεώρημα 6.1. [Λήμμα Άντλησης] Έστω L μια άπειρη κανονική γλώσσα.Τότε υπάρχει ένας αριθμός n έτσι ώστε κάθε x 2 L, με jxj ¸ n, μπορεί ναγραφεί στη μορφή x = uvw, όπου για τις συμβολοσειρές u; v και w ισχύει

juvj ∙ n,v6= ² καιuvmw 2 L, για κάθε m ¸ 0

Απόδειξη: Ας είναι M = (Q;§; ±; q0; F ) ένα αυτόματο n καταστάσεων,το οποίο αναγνωρίζει την L. Έστω τώρα μια οποιαδήποτε συμβολοσειράx μήκους l ¸ n, που αναγνωρίζεται από το M (τέτοιες συμβολοσειρέςυπάρχουν, γιατί η L είναι άπειρη).

Ας γράψουμε τώρα τη x στη μορφή x = a1a2 ¢ ¢ ¢ al και ας είναι qi ηκατάσταση που πηγαίνει το αυτόματο διαβάζοντας τα πρώτα i σύμβολα τηςx, δηλαδή

qi = ±¤(q0; a1a2 ¢ ¢ ¢ ai):

Καθώς το αυτόματο αποτελείται από n καταστάσεις, η εφαρμογή της Αρχήςτων Περιστεροφωλιών μας λέει ότι οι n + 1 καταστάσεις q0; q1; ¢ ¢ ¢ ; qn δενμπορεί να είναι όλες διαφορετικές μεταξύ τους. Θα υπάρχουν λοιπόν δείκτεςi; j, όπου i6= j, έτσι ώστε qi = qj . Άρα η μη κενή συμβολοσειρά ai+1 ¢ ¢ ¢ ajθα οδηγεί το αυτόματο από την κατάσταση qi ξανά πίσω στην qi.

Για να απλοποιήσουμε τις εκφράσεις θέτουμε u = a1 ¢ ¢ ¢ ai, v = ai+1 ¢ ¢ ¢ ajκαι w = aj+1 ¢ ¢ ¢ al. Εφόσον ±¤(qi; v) = qi, η v μπορεί να αφαιρεθεί από τηx ή να επαναληφθεί πολλές φορές και το αυτόματο ν, αναγνωρίζει τη νέα x.Αυτό φαίνεται καλύτερα στο Σχήμα 6.1.

q0 qfqi

uv

w

Σχήμα 6.1. Λήμμα Άντλησης

Το αρχικό τμήμα u οδηγεί το M από την q0 στην qi, το v από την qiξανά πίσω στην qi και το w από την qi στην τελική κατάσταση. Εφόσονο κύκλος v μπορεί να χρησιμοποιηθεί όσες φορές θέλουμε, συμπεραίνουμε

Page 145: αυτόματα και τυπικές γλώσσες dimitriou

Το Λήμμα Άντλησης 133

ότι ±¤(q0; uvmw) = qf , για κάθε m ¸ 0 ή αλλιώς uvmw 2 L, για κάθεm ¸ 0. Το θεώρημα προκύπτει αρκεί να παρατηρήσουμε ότι juvj ∙ n καιjvj 6= 0.

Το αποτέλεσμα αυτό είναι γνωστό με τον όρο Λήμμα Άντλησης, γιατί απόμια οποιαδήποτε συμβολοσειρά μιας γλώσσας L μπορούμε να \αντλήσουμε" ένακομμάτι v αυτής, εισάγοντας νέα αντίγραφα του v, ώστε οι συμβολοσειρές πουπροκύπτουν να ανήκουν πάλι στην L. Το Λήμμα Άντλησης είναι λοιπόν ένα ισχυρόεργαλείο για την απόδειξη της μη κανονικότητας μιας γλώσσας L. Η απόδειξή τουήταν σχετικά εύκολη, η εφαρμογή του όμως δεν είναι πάντα τόσο απλή. Ας δούμεμερικά από τα σημεία που πρέπει να προσέχουμε.

Πρώτα απ, όλα υποθέτουμε ότι η γλώσσα είναι κανονική με σκοπό να οδηγη- Σημεία προσοχής

θούμε σε κάποια αντίφαση. Αρχίζουμε λοιπόν υποθέτοντας την ύπαρξη κάποιουn, για το οποίο ισχύει το θεώρημα, αν και δεν ξέρουμε την τιμή του. Γνωρίζουμεόμως ότι, αν η γλώσσα είναι κανονική, αυτό το n θα υπάρχει και μπορεί να είναιο αριθμός καταστάσεων ενός αυτόματου για την L. Για να οδηγηθούμε τώρα σεαντίφαση αρκεί να βρούμε κάποια συμβολοσειρά x, με jxj ¸ n, η οποία μπορείνα γραφεί στη μορφή x = uvw, με juvj ∙ n και v 6= ², αλλά για κάποιο m ¸ 0δεν ισχύει uvmw 2 L. Ο λόγος είναι ότι το θεώρημα πρέπει να ισχύει για κάθε x.Αν λοιπόν δεν ισχύει για το συγκεκριμένο x, τότε θα έχουμε πέσει σε αντίφαση.Και πώς μπορεί να γίνει αυτό; Αν υπάρχει κάποιο m, για το οποίο uvmw62 L (τοθεώρημα πάλι πρέπει να ισχύει για κάθε m).

Ας δούμε μ, ένα παράδειγμα πώς εφαρμόζονται οι παραπάνω ιδέες.6.2Έστω L = f0k1kj k ¸ 0g. Ας υποθέσουμε ότι η L είναι κανονική και έστω n ο αριθμόςτου Θεωρήματος 6.1. Θα πρέπει να δείξουμε ότι οποιοδήποτε και αν είναι το n, υπάρχεικάποιο x που οδηγεί σε αντίφαση. Ας είναι x = 0n1n. Τότε υπάρχουν συμβολοσειρέςu; v; w, ώστε x = uvw, για τις οποίες ισχύουν τα συμπεράσματα του θεωρήματος. Ανκαι δεν μπορούμε να επιλέξουμε τη μορφή τους γνωρίζουμε ότι juvj ∙ n και v 6= ².Άρα το uv θα αποτελείται μόνο από μηδενικά, θα έχει δηλαδή τη μορφή 0i για κάποιοi. Επίσης το v θα είναι ίσο με 0j , για κάποιο j > 0. Αναρωτηθείτε τώρα αν μπορεί ναισχύει uvmw 2 L, για κάθε m ¸ 0. Ας υπολογίσουμε το uvmw.

uvmw = (uv)vm¡1w= 0k(0j)m¡10n¡k1n, γιατί w = 0n¡k1n, αφού uv = 0k= 0n+j(m¡1)1n

Για να ανήκει η παραπάνω συμβολοσειρά στην L θα πρέπει ο αριθμός των μηδενικώννα είναι ίσος με τον αριθμό των άσσων. Αυτό όμως ισχύει μόνο όταν m = 1. Γιαοποιαδήποτε άλλη τιμή η συμβολοσειρά δεν ανήκει στη γλώσσα. Μπορούμε λοιπόν ναεπιλέξουμε m = 0. Τότε uv0w = uw = 0n¡j1n, το οποίο δεν ανήκει στη γλώσσα γιατίj > 0. Εφόσον καταλήξαμε σε αντίφαση συμπεραίνουμε ότι η L δεν είναι κανονική.

Παράδειγμα 6.2

Page 146: αυτόματα και τυπικές γλώσσες dimitriou

134 Μη Κανονικές Γλώσσες

Στο προηγούμενο παράδειγμα η μόνη απαίτηση για το x είναι ότι το μήκος τουθα πρέπει να είναι τουλάχιστον n. Αντί για το 0n1n θα μπορούσαμε να είχαμεεπιλέξει το 0

n2 1

n2 , όμως η ανάλυση δε θα ήταν τόσο απλή. Συγκεκριμένα το uv δε

θα μπορούσε πια να αποτελείται μόνο από μηδενικά. Θα έπρεπε να θεωρήσουμεδύο ακόμη περιπτώσεις: Αν v = 0i1j , τότε για m > 1 η uvmw θα περιείχε τησυμβολοσειρά 10, οπότε δε θα μπορούσε να ανήκει στην L. Αν πάλι το v περιείχεμόνο άσσους θα καταλήγαμε σε αντίφαση με τον αρχικό τρόπο. Πάντα λοιπόνπροσπαθούμε να διαλέξουμε το x ώστε η αντίφαση να προκύπτει σχετικά εύκολα.

Ένα ακόμη σημείο που πρέπει να προσέχουμε στην εφαρμογή του ΛήμματοςΣημείοπροσοχής

Άντλησης είναι το εξής: από τη στιγμή που έχουμε επιλέξει το x δεν μπορούμε ναδιαλέξουμε τον τρόπο που σχηματίζονται τα u; v και w. Οποιαδήποτε επιλογή απόαυτά πρέπει να οδηγεί σε μια αντίφαση. Ο λόγος ξανά είναι ότι το θεώρημα δεναναφέρεται σε συγκεκριμένα u; v; w.6.3Έστω L = f1kj k πρώτοςg. Ας είναι n ο αριθμός του Θεωρήματος 6.1 και έστω x = 1p,όπου p > n ένας πρώτος αριθμός (τέτοιο p θα υπάρχει αφού το σύνολο των πρώτωναριθμών είναι άπειρο). Σύμφωνα με το Θεώρημα 6.1, το x μπορεί να εκφραστεί ως uvw.Έστω τώρα juj = a; jvj = b6= 0 και jwj = c. Θα δείξουμε ότι υπάρχει κάποιο m για τοοποίο η συμβολοσειρά uvmw = 1a1mb1c δεν ανήκει στην L ή αλλιώς ότι το άθροισμαa+mb+ c δεν είναι πρώτος. Εφόσον a+ b+ c = p, αρκεί να δείξουμε ότι το άθροισμαp+ (m¡ 1)b μπορεί να εκφραστεί ως γινόμενο δύο αριθμών μεγαλύτερων ή ίσων του 2.Διαλέξτε m = p+ 1. Τότε

p+ (m¡ 1)b = p+ pb = p(b+ 1)

το οποίο δεν είναι πρώτος, γιατί καθένας από τους παράγοντες του είναι μεγαλύτερος ήίσος του 2.

Παράδειγμα 6.3

6.2Δείξτε ότι η γλώσσα L = fx 2 f0; 1g¤j η x περιέχει ίσο αριθμό από άσσους και μηδενικάgδεν είναι κανονική.

ΆσκησηΑυτοαξιολόγησης6.2

6.2 Αλγόριθμοι Απόφασης για Κανονικές Γλώσσες

Τα πεπερασμένα αυτόματα είναι απλές μηχανές, οι οποίες δέχονται κάποια είσοδοx και παράγουν έξοδο της μορφής \Ναι" ή \Όχι", ανάλογα με το αν η x οδηγείή όχι το αυτόματο M σε κάποια τελική κατάσταση. Με την έννοια αυτή έχουνσχεδιαστεί για να λύνουν το ακόλουθο πρόβλημα απόφασης: Ανήκει η x στηνL(M);

Σ, αυτή την ενότητα θα ασχοληθούμε με προβλήματα απόφασης που αφορούντα ίδια τα αυτόματα. Θα θέλαμε να βρούμε αλγόριθμους που να απαντούν σ,

Page 147: αυτόματα και τυπικές γλώσσες dimitriou

Αλγόριθμοι Απόφασης για Κανονικές Γλώσσες 135

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

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

Θεώρημα 6.2. Η γλώσσα L των συμβολοσειρών που αναγνωρίζονται από ένααυτόματο M με n καταστάσεις,

1. δεν είναι κενή, αν και μόνο αν υπάρχει κάποια συμβολοσειρά x μήκουςμικρότερου του n που γίνεται δεκτή από το M ,

2. είναι άπειρη, αν και μόνο αν υπάρχει κάποια συμβολοσειρά x μήκουςn ∙ jxj < 2n που γίνεται δεκτή από το M .

Απόδειξη: Αν υπάρχει κάποια συμβολοσειρά x μήκους μικρότερου τουn που γίνεται δεκτή από το M , τότε φυσικά η L δεν είναι κενή. Για τοαντίστροφο, έστω x η μικρότερη συμβολοσειρά που αναγνωρίζεται από τοM . Αν jxj ¸ n, τότε από το Λήμμα Άντλησης η x μπορεί να γραφεί ως uvw,όπου jvj 6= 0. Αλλά τότε uv0w = uw είναι μια μικρότερη συμβολοσειρά πουανήκει στην L, δηλαδή έχουμε μια αντίφαση. Άρα jxj < n.

Αν η x αναγνωρίζεται από το αυτόματο και n ∙ jxj < 2n, τότε η L είναιάπειρη γιατί όλες οι συμβολοσειρές της μορφής uvmw; m ¸ 0 ανήκουνστη γλώσσα. Αντίστροφα, αν η L είναι άπειρη, τότε υπάρχει συμβολοσειράx με jxj ¸ n, η οποία ανήκει στη γλώσσα. Αν επίσης ισχύει jxj < 2n,τελειώσαμε. Αλλιώς, έστω z η μικρότερη συμβολοσειρά μήκους μεγαλύτερουή ίσου του 2n. Γράφοντας τη z στη μορφή uvw και χρησιμοποιώντας τοΛήμμα Άντλησης βλέπουμε πως η uw είναι ξανά μια μικρότερη από τη zσυμβολοσειρά που ανήκει στη γλώσσα. Αλλά τότε η uw έχει μήκος μεταξύn και 2n ¡ 1 ή η z δεν ήταν η μικρότερη. Και στις δύο όμως περιπτώσειςκαταλήγουμε σε αντίφαση.

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

Αν n είναι οι καταστάσεις του αυτόματου αρκεί να διαπιστώσουμε αν υπάρχεισυμβολοσειρά x μήκους μικρότερου του n που γίνεται δεκτή από το αυτόματο. Σ,

αυτή την περίπτωση η γλώσσα δεν μπορεί να είναι κενή. Για να δούμε αν είναιπεπερασμένη ή άπειρη εξετάζουμε αν υπάρχει συμβολοσειρά x μήκους μεταξύ nκαι 2n που αναγνωρίζεται από το M . Αν υπάρχει, τότε η L είναι άπειρη. Αλλιώςείναι πεπερασμένη.

Αν και οι παραπάνω αλγόριθμοι επιστρέφουν τις σωστές απαντήσεις δεν είναικαι τόσο αποτελεσματικοί. Υπάρχουν 2n συμβολοσειρές μήκους n, αριθμός υπερβο-λικά μεγάλος για να ελέγξουμε αν κάποια από αυτές ανήκει στην L. Η παρακάτω

Page 148: αυτόματα και τυπικές γλώσσες dimitriou

136 Μη Κανονικές Γλώσσες

άσκηση σας ζητά να βρείτε ένα πιο αποτελεσματικό τρόπο απάντησης των παραπάνωερωτημάτων.

6.3Πώς μπορούμε να τροποποιήσουμε το διάγραμμα ενός αυτόματου διαγράφοντας μηπροσπελάσιμες καταστάσεις, ώστε στο αυτόματο που προκύπτει να μπορούμε εύκολανα απαντήσουμε στα παραπάνω προβλήματα απόφασης;

ΆσκησηΑυτοαξιολόγησης6.3

Για να βρούμε αν δύο αυτόματαM1;M2 αναγνωρίζουν την ίδια γλώσσα σχεδιά-L(M1)?= L(M2)

ζουμε ένα αυτόματο που αναγνωρίζει τη γλώσσα L = (L(M1)¡L(M2))[(L(M2)¡L(M1)). Παρατηρήστε τώρα ότι ταM1;M2 αναγνωρίζουν την ίδια γλώσσα αν καιμόνο αν η L είναι κενή. Μπορούμε λοιπόν να χρησιμοποιήσουμε τον αλγόριθμοτου Θεωρήματος 6.2 για να απαντήσουμε σ, αυτό το ερώτημα.

Τέλος, δύο αυτόματα θα αναγνωρίζουν κάποιες κοινές συμβολοσειρές, αν ηL(M1) \ L(M2)?=

Âτομή των αντίστοιχων γλωσσών δεν είναι κενή. Κατασκευάζουμε λοιπόν το αυτόματογια την L = L(M1) \ L(M2) και ελέγχουμε αν L = Â.

6.4Δώστε αλγόριθμους για τα παρακάτω προβλήματα:

1. Aν M1;M2 είναι δύο αυτόματα, είναι η L(M1) υποσύνολο της L(M2);

2. Αν R1; R2 είναι δύο κανονικές εκφράσεις, παράγουν αυτές την ίδια γλώσσα;

ΆσκησηΑυτοαξιολόγησης6.4

Θα κλείσουμε αυτή την ενότητα εξηγώντας το λόγο για τον οποίο ενδιαφερόμα-στε να δώσουμε απαντήσεις σ, αυτά τα προβλήματα απόφασης. Ο βασικός λόγοςείναι απλά ότι δεν είναι όλα επιλύσιμα. Υπάρχουν προβλήματα για τα οποία μπορείΆλυτα

προβλήματα!να αποδειχθεί ότι δεν υπάρχει αλγόριθμος που να τα αποφασίζει. Το σημαντικότεροαπό αυτά είναι το πρόβλημα της αναγνώρισης μιας συμβολοσειράς x από μιαμηχανή M .

Είδαμε ότι στην περίπτωση των πεπερασμένων αυτομάτων αυτό το πρόβλημαέχει μια εύκολη λύση. Απλά \τρέχουμε" το αυτόματο και βλέπουμε αν φτάνει σεμια τελική κατάσταση. Αν όμως πάμε σε μια πιο πολύπλοκη μηχανή, τη λεγόμενημηχανή Turing, η οποία αποτελεί ένα γενικότερο μοντέλο υπολογισμού ισοδύναμοκατά μια έννοια με τους σημερινούς υπολογιστές, τότε το πρόβλημα αυτό γίνεταιάλυτο. Μ, αυτό τον όρο εννοούμε όχι ότι μέχρι τώρα δεν έχει βρεθεί κάποιοςαλγόριθμος, αλλά ότι τέτοιος αλγόριθμος δεν μπορεί να υπάρξει ποτέ, ούτε τώραούτε στο μέλλον λόγω θεωρητικών αδυναμιών στο τι μπορεί να υπολογισθεί! Γιατην ώρα όμως θα πρέπει να ικανοποιηθούμε με το γεγονός ότι για μερικά απλάερωτήματα που αφορούν κανονικές γλώσσες υπάρχουν απαντήσεις.

Page 149: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 137

ΑΣΚΗΣΕΙΣ

6.1 Αποδείξτε ότι οι ακόλουθες γλώσσες δεν είναι κανονικές.

α) L = f1m0n1m+nj m;n ¸ 0g.β) L = fx 2 f0; 1g¤j ο αριθμός των μηδενικών είναι μικρότερος από τοδιπλάσιο αριθμό άσσωνg.γ) L = fx 2 f0; 1g¤j η x είναι παλινδρομικήg.

6.2 Αποδείξτε την ακόλουθη ασθενή μορφή του Λήμματος Άντλησης. Έστω Lμια άπειρη κανονική γλώσσα. Τότε υπάρχουν αριθμοί p και q, με q > 0,τέτοιοι ώστε για κάθε m ¸ 0, η L περιέχει μια συμβολοσειρά μήκους p+mq.Χρησιμοποιήστε το λήμμα αυτό για να δείξετε ότι η γλώσσα L = f1kj kπρώτοςg δεν είναι κανονική.

6.3 Ποιες από τις παρακάτω γλώσσες είναι κανονικές; Δικαιολογήστε την απάντησήσας.

α) L = f12nj n ¸ 0g.β) L = f1n2 j n ¸ 0g.γ) L = fx 2 f0; 1g¤j ο αριθμός των μηδενικών στη x είναι τετράγωνοκάποιου αριθμούg.δ) L = fx 2 f0; 1g¤j η x δεν είναι παλινδρομικήg.ε) L = fxxj x 2 f0; 1g¤g.στ) L = fxxRj x 2 f0; 1g¤g.ζ) L = fx 2 f0; 1g¤j ο αριθμός των άσσων και των μηδενικών στη xδιαιρείται με το 4g.

6.4 Ποια από τα παρακάτω είναι αληθή; Δικαιολογήστε την απάντησή σας.

α) Αν L1 µ L2 και η L2 είναι κανονική, τότε και η L1 είναι κανονική.

β) Αν L1 µ L2 και η L2 δεν είναι κανονική, τότε και η L1 δεν είναι κανονική.

γ) Η ένωση ενός άπειρου αριθμού κανονικών γλωσσών είναι κανονική.

δ) Αν η L δεν είναι κανονική, τότε και η L0 (το συμπλήρωμα της L) δενείναι κανονική.

ε) Αν η L1 είναι κανονική και η L2 όχι, τότε η L1 [L2 δεν είναι κανονική.

στ) Αν η L1 είναι κανονική και η L2 όχι, τότε η L1 \ L2 είναι κανονική.

Page 150: αυτόματα και τυπικές γλώσσες dimitriou

138 Μη Κανονικές Γλώσσες

6.5 Βρείτε αλγόριθμους απόφασης για καθένα από τα παρακάτω ερωτήματα.

α) Αν M είναι ένα ΜΠΑ-², είναι η L(M) κενή, πεπερασμένη, άπειρη;

β) Αν M είναι ένα ΜΠΑ-², αναγνωρίζει το M κάποια άλλη συμβολοσειράεκτός από την κενή;

γ) Είναι οι γλώσσες που αναγνωρίζονται από ένα αυτόματο M και μιακανονική έκφραση R ισοδύναμες μεταξύ τους;

δ) Δοθέντων δύο αυτομάτων M1;M2 υπάρχουν συμβολοσειρές που δε γίνο-νται δεκτές από κανένα από τα δύο;

6.6 Αν L είναι η γλώσσα που αναγνωρίζεται από ένα αυτόματο M , δώστε έναναλγόριθμο που ν, αποφασίζει

α) αν L = §¤,

β) αν το συμπλήρωμα της L είναι πεπερασμένο.

Σύνοψη

Στο κεφάλαιο αυτό παρουσιάσαμε ένα πιο εύχρηστο εργαλείο για να αποδεικνύουμετη μη κανονικότητα μιας γλώσσας L. Το εργαλείο αυτό ονομάζεται Λήμμα Άντλησηςκαι βασίζεται στην ύπαρξη περιοδικότητας που πρέπει να εμφανίζεται σε μια άπειρηκανονική γλώσσα. Αν αυτό δε συμβαίνει, τότε η γλώσσα δεν μπορεί να είναικανονική.

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

Τα ερωτήματα αυτά, τα οποία ονομάζονται προβλήματα απόφασης, είναι εξαιρε-τικής σημασίας γιατί δεν μπορούν πάντα να απαντηθούν. Για παράδειγμα, το απλό(στην περίπτωση των αυτομάτων) πρόβλημα αν μια συμβολοσειρά αναγνωρίζεται απόμια μηχανή, γίνεται άλυτο όταν πάμε σ, ένα πιο πολύπλοκο μοντέλο υπολογισμού, τημηχανή Turing. Και αυτό συμβαίνει όχι γιατί δεν έχει βρεθεί κάποιος αλγόριθμοςπου να μπορεί να απαντήσει αυτό το ερώτημα, αλλά γιατί τέτοιος αλγόριθμος δενμπορεί να υπάρξει ποτέ!

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης

Άσκηση 6.1 Διαισθητικά καταλαβαίνουμε ότι η γλώσσα L = faibjckj όπου k >

Page 151: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης 139

i + jg δεν είναι κανονική, επειδή οποιοδήποτε αυτόματο για την L θα πρέπει ναθυμάται τον αριθμό των a και b, ώστε να μπορεί να το συγκρίνει με τον αριθμότων c. Κάτι τέτοιο όμως είναι αδύνατο.

Θα δείξουμε τώρα ότι οποιεσδήποτε δύο συμβολοσειρές ai; aj όπου i 6= j,του άπειρου συνόλου S = fanj n ¸ 0g μπορούν να διακριθούν από μια τρίτησυμβολοσειρά z. Ας υποθέσουμε ότι i < j. Αν δεν ισχύει αυτό απλά μετονομάζουμετις i; j. H z θα πρέπει να είναι τέτοια ώστε μόνο μια από τις δύο, έστω η πρώτη,ν, ανήκει στην L. Αυτό μας οδηγεί στην επιλογή της z = ci+1. Παρατηρήστετώρα ότι aiz = aici+1 2 L, γιατί i + 1 > i, ενώ ajz = ajci+1 62 L, επειδήj ¸ i + 1. Επειδή δύο οποιεσδήποτε συμβολοσειρές διακρίνονται και το S είναιάπειρο, συμπεραίνουμε ότι η L δεν είναι κανονική.

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

Άσκηση 6.2 Θα χρησιμοποιήσουμε το Λήμμα Άντλησης για να αποδείξουμε ότιη L = fx 2 f0; 1g¤j η x περιέχει ίσο αριθμό από άσσους και μηδενικάg δεν είναικανονική.

Έστω ότι η L είναι κανονική και ας είναι M ένα αυτόματο n καταστάσεων γιατην L. Σύμφωνα με το Θεώρημα 6.1 αρκεί να δείξουμε, οποιοδήποτε και αν είναιτο n, ότι υπάρχει κάποιο x που οδηγεί σε αντίφαση. Ας είναι x = 0n1n, όπως καιστο Παράδειγμα 6.2. Σημειώστε ότι οι συμβολοσειρές της L δεν είναι απαραίτητονα έχουν μόνο αυτή τη μορφή. Οι 11001100, 010101, κλπ. ανήκουν και αυτέςστην L, όμως επιλέγουμε την x με αυτό τον τρόπο για μεγαλύτερη ευκολία.

Έστω τώρα ότι υπάρχουν συμβολοσειρές u; v; w με x = uvw, για τις οποίεςισχύουν τα συμπεράσματα του θεωρήματος. Αν και δεν μπορούμε να επιλέξουμετη μορφή τους γνωρίζουμε ότι juvj ∙ n και v6= ². Άρα το uv θα αποτελείται μόνοαπό μηδενικά, θα έχει δηλαδή τη μορφή 0i για κάποιο i. Επίσης το v θα είναι ίσομε 0j για κάποιο j > 0. Όπως και στο Παράδειγμα 6.2, το uvmw θα είναι ίσο με0n+j(m¡1)1n. Διαλέγοντας m = 0 παίρνουμε uv0w = uw = 0n¡j1n, το οποίο δενανήκει στη γλώσσα γιατί j > 0. Εφόσον καταλήξαμε σε αντίφαση, συμπεραίνουμεότι η L δεν είναι κανονική.

Υπάρχει και ένας άλλος πιο εύκολος τρόπος για να αποδείξουμε τη μη κανονικό-τητα της L και αυτός είναι να χρησιμοποιήσουμε την κλειστότητα των κανονικώνγλωσσών ως προς την πράξη της τομής. Αρχικά υποθέτουμε ότι η L είναι κανονική.Τότε όμως και η M = L \ 0¤1¤ θα είναι κανονική ως τομή κανονικών γλωσσών.Αλλά η M δεν είναι παρά η γλώσσα f0k1kj k ¸ 0g, η οποία δεν είναι κανονική.

Page 152: αυτόματα και τυπικές γλώσσες dimitriou

140 Μη Κανονικές Γλώσσες

Εφόσον καταλήξαμε σε αντίφαση, συμπεραίνουμε ότι και η L δε μπορεί να είναικανονική.

Άσκηση 6.3 Θα πρέπει να τροποποιήσουμε το διάγραμμα καταστάσεων ενόςαυτόματου M διαγράφοντας μη προσπελάσιμες καταστάσεις, ώστε να μπορούμεεύκολα να απαντήσουμε αν η γλώσσα που αναγνωρίζεται από το ισοδύναμο αυτό-ματο M 0 είναι κενή, πεπερασμένη ή άπειρη.

Γνωρίζουμε ότι μια συμβολοσειρά γίνεται δεκτή από ένα αυτόματο M , ανυπάρχει μονοπάτι που οδηγεί από την αρχική σε μια τελική κατάσταση. Αν δενυπάρχει τέτοιο μονοπάτι, τότε η γλώσσα L(M) είναι κενή. Το πρώτο βήμα είναιλοιπόν να εξαλείψουμε τις καταστάσεις που δεν είναι προσπελάσιμες από τηναρχική. Αν στο αυτόματο που προκύπτει δεν απομείνει καμιά τελική κατάσταση,τότε φυσικά η γλώσσα που γίνεται δεκτή είναι το κενό σύνολο Â.

Ανάλογα, για να βρούμε αν η γλώσσα είναι άπειρη, αρκεί να εξετάσουμε ανυπάρχει κύκλος στο διάγραμμα του αυτόματου. Όμως, ο κύκλος αυτός μπορεί ναείναι μεταξύ καταστάσεων από τις οποίες δεν υπάρχει μονοπάτι προς μια τελικήκατάσταση (δείτε ξανά το Σχήμα 6.1, το οποίο χρησιμοποιήσαμε στην απόδειξητου Λήμματος Άντλησης). Πρέπει λοιπόν να εξαλείψουμε εκείνες τις καταστάσεις,οι οποίες δεν οδηγούν σε κάποια τελική. Το αυτόματο που παραμένει αναγνωρίζειτην ίδια γλώσσα με το αρχικό και είναι εύκολο να εντοπίσουμε έναν κύκλο.

Αν καταφέρατε να λύσετε αυτή την άσκηση, σας αξίζουν συγχαρητήρια. Ανόχι, μην απογοητεύεστε, γιατί αυτή ήταν μια \πονηρή" άσκηση.

Άσκηση 6.4

1. AνM1;M2 είναι δύο αυτόματα, είναι η L(M1) υποσύνολο της L(M2); Για νααπαντήσουμε σ, αυτό το ερώτημα προσέξτε ότι, αν L(M1) ½ L(M2), τότε ηL(M1) περιέχεται εξ ολοκλήρου στην L(M2). Αλλά τότε η L(M1)¡L(M2)

θα είναι ίση με το κενό σύνολο. Έτσι, ο αλγόριθμος απόφασης έχει ως εξής:Κατασκευάζουμε ένα αυτόματο M που ν, αναγνωρίζει την L(M1)¡L(M2)

και ρωτάμε αν η L(M) = Â. Αν η απάντηση είναι \Ναι", τότε η L(M1)

είναι υποσύνολο της L(M2).

2. Αν R1; R2 είναι δύο κανονικές εκφράσεις, παράγουν αυτές την ίδια γλώσσα;Αυτό το ερώτημα είναι πιο εύκολο να απαντηθεί. Απλά κατασκευάζουμετα αντίστοιχα αυτόματα και ρωτάμε αν οι γλώσσες που αναγνωρίζονται απ,

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

Μπράβο σας, αν καταφέρατε να δώσετε απαντήσεις στα παραπάνω ερωτήματα.Αν δεν τα καταφέρατε μην ανησυχείτε. Ασκήσεις αυτού του τύπου είναι από τις

Page 153: αυτόματα και τυπικές γλώσσες dimitriou

Λεξιλόγιο Αγγλικών Όρων 141

δυσκολότερες και προϋποθέτουν κάποια εξοικείωση και εμπειρία που αποκτιέταιμόνο με συνεχή εξάσκηση. Γυρίστε λοιπόν ξανά στην αντίστοιχη ενότητα καιπροσπαθήστε να κατανοήσετε καλύτερα τον τρόπο επίλυσης αυτών των προβλημά-των.

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝ

Λήμμα Άντλησης Pumping Lemma

Προβλήματα Απόφασης Decision Problems

Αλγόριθμοι Απόφασης Decision Algorithms

ΒΙΒΛΙΟΓΡΑΦΙΑ ΜΕΡΟΥΣ II

Bar-Hillel, Y., M. Perles and E. Shamir. \On Formal Properties of SimplePhase Structure Grammars", in Zeitschrift fur Phonetik Sprachwissenshhaft undKommunikations-forschung, pp. 143-172, 14, 1961.Cohen, D. I. A. Introduction to Computer Theory, Wiley, New York, 1986.Hopcroft, J. E. and J. D. Ullman. Introduction to Automαta, Theory, Languagesand Computation, 2nd Ed., Addison-Wesley, Reading, 1979.Kleene, S. C. \Representation of Events by Nerve Sets", in Automata Studies, pp.3-42, Princeton University Press, Princeton, 1956.Lewis, H. R. and C. Papadimitriou. Elements of the Theory of Computation,Prentice Hall, Englewood Cliffs, 1981.J. C. Martin. Introduction to Languages and the Theory of Computation, McGraw-Hill, 1991.McCulloch, W. S. and W. Pitts. \A Logical Calculus of the Ideas Immanent inNervous Activity", in Bulletin of Mathematical Biophysics, pp. 115-133, 5, 1943.M. O. Rabin and D. Scott. \Finite Automata and their Decision Problems", inIBM Journal of Research and Development, pp. 114-125, 3, 1959.M. Sipser. Introduction to the Theory of Computation, PWS Publishing Company,Boston, 1998.

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

Υπάρχει ένας αριθμός από πολύ καλά βιβλία που καλύπτουν τα θέματα του ΜέρουςII. Δύο από τα σπουδαιότερα είναι το βιβλίο των Lewis και Papadimitriou, τοοποίο μάλιστα έχει μεταφραστεί και στα ελληνικά, και το βιβλίο των Hopcroftκαι Ullman που απευθύνεται όμως σε μεταπτυχιακούς φοιτητές και προϋποθέτει

Page 154: αυτόματα και τυπικές γλώσσες dimitriou

142 Μη Κανονικές Γλώσσες

μεγάλη μαθηματική ωριμότητα. Πολύ καλά επίσης είναι και τα βιβλία των Co-hen, Martin και Sipser τα οποία είναι πιο πρόσφατα και μπορούν να διαβαστούνεύκολα. Το τελευταίο μάλιστα βιβλίο παρουσιάζει όλη τη θεωρία της Επιστήμηςτων Υπολογιστών από μια μοναδική προοπτική, αυτή της \μεγάλης εικόνας"!Χωρίς να μπαίνει ιδιαίτερα σε λεπτομέρειες και δίνοντας μεγάλη σημασία στηναπόκτηση διαίσθησης, φέρνει τον αναγνώστη σε επαφή με τις σημαντικότερεςέννοιες και προβλήματα της θεωρίας Υπολογισμού. Απ, όλα τα παραπάνω βιβλίαδανειστήκαμε σε ορολογία και οργάνωση των θεμάτων.

Τα πεπερασμένα αυτόματα εμφανίζονται για πρώτη φορά στο άρθρο των Mc-Culloch, W. S. and W. Pitts (1943) σαν ένα μοντέλο της λειτουργίας των νευρώνωντου εγκεφάλου. Η ισοδυναμία των αυτομάτων με τις κανονικές γλώσσες αποδεικνύ-εται από τον Kleene (1956). Τα μη ντετερμινιστικά αυτόματα και η ισοδυναμίατους με τα ντετερμινιστικά μελετήθηκαν από τους Rabin και Scott (1959). ΤοΛήμμα Άντλησης εμφανίζεται στο άρθρο των Bar-Hillel, M. Perles και E. Shamir(1961).

Page 155: αυτόματα και τυπικές γλώσσες dimitriou

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

Μ Ε Ρ Ο Σ

Στο Μέρος II χαρακτηρίσαμε τις κανονικές γλώσσες με δύο τρόπους: Ως τιςγλώσσες που παράγονται από τις κανονικές εκφράσεις και ως αυτές που αναγνωρί-ζονται από τα πεπερασμένα αυτόματα. Όμως τα αυτόματα δεν είναι παρά απλοϊκάμοντέλα υπολογισμού και γι, αυτό υπάρχουν σχετικά απλές γλώσσες, όπως γιαπαράδειγμα η f0n1nj n ¸ 0g, οι οποίες δεν μπορούν να αναγνωριστούν από αυτά.

Στο Μέρος III θα γνωρίσουμε γλώσσες, οι οποίες επιδεικνύουν μία πλουσιότερηδομή από τις κανονικές. Θα χαρακτηρίσουμε τις γλώσσες αυτές με γραμματικέςανεξάρτητες συμφραζόμενων, οι οποίες δεν είναι παρά μέθοδοι παραγωγής συμβολο-σειρών αντίστοιχες με τις κανονικές εκφράσεις για τις κανονικές γλώσσες. Κύριογνώρισμα αυτών των γραμματικών είναι η χρήση αναδρομής στους κανόνες μετους οποίους παράγονται οι συμβολοσειρές. Για το λόγο αυτό οι γραμματικές είναισε θέση να παράγουν ακόμη πιο σύνθετες γλώσσες.

Θα χαρακτηρίσουμε επίσης τις γλώσσες ανεξάρτητες συμφραζόμενων με μηχα-νές αναγνώρισης. Για να μπορούν όμως τα αυτόματα αυτά να αναγνωρίζουν και μηκανονικές γλώσσες θα πρέπει να επεκταθούν ώστε να υποστηρίζουν άπειρη μνήμη.Είναι όμως αρκετό η μνήμη αυτή να έχει τη μορφή μίας στοίβας ή σωρού. Οιμηχανές που προκύπτουν μ, αυτό τον τρόπο λέγονται αυτόματα στοίβας και, όπωςαποδεικνύεται στο Κεφάλαιο 8, είναι ισοδύναμες με τις γραμματικές ανεξάρτητεςσυμφραζόμενων. Με μια διαφορά όμως: η χρήση του μη ντετερμινισμού είναιαπαραίτητη σ, αυτή την περίπτωση, καθώς οι ντετερμινιστικές μηχανές δεν έχουντις ίδιες δυνατότητες με τις μη ντετερμινιστικές.

Όμως παρά τις αυξημένες δυνατότητες αναγνώρισης, θα δούμε ότι υπάρχουνακόμη γλώσσες που δεν μπορούν να αναγνωριστούν από αυτές. Στο Κεφάλαιο 9

Page 156: αυτόματα και τυπικές γλώσσες dimitriou

144 Γλώσσες Ανεξάρτητες Συμφραζόμενων και Αυτόματα Στοίβας

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

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

Page 157: αυτόματα και τυπικές γλώσσες dimitriou

ΓΛΩΣΣΕΣ ΑΝΕΞΑΡΤΗΤΕΣΣΥΜΦΡΑΖΟΜΕΝΩΝ

Κ Ε Φ Α Λ Α Ι Ο

Σκοπός

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

Προσδοκώμενα Αποτελέσματα

Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:

² αναφέρετε τι είναι μια γραμματική ανεξάρτητη συμφραζόμενων (ΑΣ) και πώςχρησιμοποιείται η αναδρομή στον ορισμό τέτοιων γραμματικών,

² αναφέρετε τι είναι μεταβλητές, τερματικά σύμβολα και παραγωγές των γραμμα-τικών,

² δώσετε τον ορισμό των γλωσσών που παράγονται απ, αυτές,

² δώσετε τουλάχιστον δύο παραδείγματα γραμματικών ΑΣ,

² εξηγήσετε γιατί οι γραμματικές αυτές λέγονται ανεξάρτητες συμφραζόμενων,

² εξηγήσετε πότε μια γραμματική είναι διφορούμενη,

² αναφέρετε ποιες είναι οι κανονικές γραμματικές και ποια η σχέση τους με τιςκανονικές γλώσσες,

² μετατρέπετε ένα αυτόματο σε μια κανονική γραμματική και αντίστροφα,

² εξηγήσετε γιατί οι γραμματικές ΑΣ είναι κλειστές ως προς τις πράξεις ένωση,συνένωση και αστέρι Kleene.

145

Page 158: αυτόματα και τυπικές γλώσσες dimitriou

146 Γλώσσες Ανεξάρτητες Συμφραζόμενων

Έννοιες-κλειδιά

² Γραμματικές Ανεξάρτητες Συμφραζόμενων (ΑΣ)

² Μεταβλητές, τερματικά σύμβολα και παραγωγές

² Γλώσσες Ανεξάρτητες Συμφραζόμενων

² Διφορούμενες γραμματικές

² Κανονικές Γραμματικές

² Ισοδυναμία κανονικών εκφράσεων και κανονικών γραμματικών

² Κλειστότητα ως προς ένωση, συνένωση, αστέρι Kleene

Εισαγωγικές Παρατηρήσεις

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

7.1 Γραμματικές Ανεξάρτητες Συμφραζόμενων

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

Page 159: αυτόματα και τυπικές γλώσσες dimitriou

Γραμματικές Ανεξάρτητες Συμφραζόμενων 147

7.1Θεωρήστε τη γλώσσα L, της οποίας οι συμβολοσειρές προκύπτουν από τους παρακάτωκανόνες:

1. ² 2 L.

2. Αν S 2 L τότε και 0S1 2 L.

3. Τίποτα άλλο δεν ανήκει στην L εκτός αν προκύπτει από τους παραπάνω κανόνες.

Δεν είναι δύσκολο να δει κάποιος ότι L = f0n1nj n ¸ 0g, η οποία όπως γνωρίζουμεδεν είναι κανονική. Αυτό γιατί αν ξεκινήσουμε από την μικρότερη συμβολοσειρά πουανήκει στην γλώσσα (την κενή) και, εφαρμόζοντας τον δεύτερο κανόνα, αρχίσουμε να\κολλάμε" δεξιά και αριστερά αυτής άσσους και μηδενικά, θα πάρουμε συμβολοσειρέςτου τύπου 0n1n.Αν τώρα θεωρήσουμε το σύμβολο S σαν μια μεταβλητή που αναπαριστά οποιαδήποτεσυμβολοσειρά της L, τότε οι παραπάνω κανόνες μπορούν να πάρουν τη μορφή

1. S ! ²

2. S ! 0S1

όπου το σύμβολο ! σημαίνει \μπορεί να πάρει τη τιμή".

Παράδειγμα 7.1

Το παράδειγμα αυτό μας λέει ότι ξεκινώντας από το S και χρησιμοποιώντας τουςπαραπάνω κανόνες μπορούμε να δημιουργήσουμε οποιαδήποτε συμβολοσειρά τηςL. Για παράδειγμα, η 000111 προκύπτει όπως παρακάτω:

S ) 0S1) 00S11) 000S111) 000²111 = 000111

Το σύμβολο S ονομάζεται μεταβλητή ενώ τα 0; 1 τερματικά σύμβολα ή απλά τερμα- Μεταβλητέςκαι Τερματικάτικά. Η βασική ιδέα είναι ότι ξεκινώντας από την αρχική μεταβλητή S και χρησιμο-

ποιώντας τους κανόνες αντικατάστασης μεταβλητών μπορούμε να παράγουμε συμ-βολοσειρές που περιέχουν μόνο τερματικά σύμβολα.7.1Μια γραμματική ανεξάρτητη συμφραζόμενων (ΑΣ) είναι μια τετράδα G = (V;§; S;R),όπου V είναι ένα πεπερασμένο σύνολο μεταβλητών, § είναι το σύνολο των τερματικώνσυμβόλων με V \§ = Â, S 2 V είναι η αρχική μεταβλητή και R είναι ένα πεπερασμένοσύνολο κανόνων της μορφής A! ®, όπου A 2 V και ® 2 (V [ §)¤.

Ορισμός 7.1

Γενικά, αν G = (V;§; S; P ) είναι μια γραμματική ΑΣ (ή ΓΑΣ), θα χρησιμοποι-ούμε τα ελληνικά γράμματα για να περιγράψουμε συμβολοσειρές του (V [ §)¤οι οποίες αποτελούνται από μεταβλητές και τερματικά σύμβολα. Για κάθε ®; ¯ 2(V [§)¤, θα γράφουμε ®)G ¯ (ή απλά ®) ¯, αν ξέρουμε για ποια γραμματικήμιλάμε), αν το ¯ μπορεί να προκύψει από το ® με αντικατάσταση κάποιας μεταβλη-τής που εμφανίζεται στο αριστερό μέρος ενός κανόνα της G. Για παράδειγμα, αν

Page 160: αυτόματα και τυπικές γλώσσες dimitriou

148 Γλώσσες Ανεξάρτητες Συμφραζόμενων

® = ®1A®2 και ¯ = ®1°®2, θα γράφουμε ® ) ¯, αν και μόνο αν υπάρχει οκανόνας A ! ° στη G. Σ, αυτή την περίπτωση θα λέμε ότι το ® παράγει το ¯.Επίσης θα γράφουμε ® ¤) ¯, αν το ¯ μπορεί να παραχθεί από το ® σε μηδέν ήπερισσότερα βήματα, δηλαδή αν ® = ¯ ή υπάρχει k ¸ 1 ώστε ® = ®0 ) ®1 ¢ ¢ ¢ )®k = ¯. Κάθε ακολουθία της μορφής ®0 ) ®1 ¢ ¢ ¢ ) ®n, θα ονομάζεται παραγωγήΠαραγωγή

του ®n από το ®0 και θα λέμε ότι η παραγωγή αποτελείται από n βήματα ή ότιέχει μήκος n.7.2Ας είναι G = (V;§; S; P ) μια γραμματική ΑΣ. Η γλώσσα που παράγεται από τηγραμματική G είναι το σύνολο όλων των συμβολοσειρών που μπορούν να παραχθούναπ, την αρχική μεταβλητή S. Δηλαδή,

L(G) = fx 2 §¤j S ¤) xg:

Μια γλώσσα L θα λέγεται ανεξάρτητη συμφραζόμενων (ΑΣ), αν υπάρχει γραμματική ΑΣG έτσι ώστε L = L(G).

Ορισμός 7.2

7.2Θεωρήστε τη γλώσσα P όλων των παλινδρομικών συμβολοσειρών στο f0; 1g¤.Γνωρίζουμε ότι οι ²; 0; 1 είναι παλινδρομικές συμβολοσειρές και ότι, αν η x ανήκει στηνP , τότε και οι 0x0, 1x1 ανήκουν στην P . Οι συμβολοσειρές της P μπορούν να παραχθούναπό τη γραμματική G = (fSg; f0; 1g; S;R), όπου το σύνολο των κανόνων R είναι το

S ! ² j 0 j 1S ! 0S0 j 1S1

Η γραμματική αποτελείται από μια μόνο μεταβλητή, την S, η οποία είναι και αρχική. Τοσύνολο R αποτελείται από τους πέντε κανόνες που φαίνονται παραπάνω. Το σύμβολο\|" σ, έναν κανόνα μεταφράζεται \ή". Έτσι ο κανόνας S ! 0S0 j 1S1 αποτελείσυντομογραφία των S ! 0S0 ή S ! 1S1. Μια τυπική παραγωγή της G φαίνεταιστη συνέχεια:

S ) 0S0) 01S10) 011S110) 0110110

Το πρώτο βήμα χρησιμοποιεί τον κανόνα S ! 0S0, το δεύτερο και τρίτο τον κανόναS ! 1S1 και το τελευταίο το S ! 0.

Παράδειγμα 7.2

Γραμματικές αυτού του είδους ονομάζονται ανεξάρτητες συμφραζόμενων γιατον εξής λόγο: Θεωρήστε τη συμβολοσειρά 01S10, η οποία είναι ένα ενδιάμεσοβήμα στην παραγωγή του 0110110. Οι συμβολοσειρές 01, 10 που περιβάλλουντο S δεν είναι παρά τα συμφραζόμενα του S στη συμβολοσειρά 01S10. ΟΣυμφραζόμενα

κανόνας S ! 1S1 μας λέει τώρα ότι μπορούμε ν, αντικαταστήσουμε το S μετη συμβολοσειρά 1S1 ανεξάρτητα από τις συμβολοσειρές που το περιβάλλουν. Μ,

άλλα λόγια ανεξάρτητα από τα συμφραζόμενα.

Page 161: αυτόματα και τυπικές γλώσσες dimitriou

Γραμματικές Ανεξάρτητες Συμφραζόμενων 149

7.1Δώστε μια γραμματική ΑΣ για τη γλώσσα όλων των συμβολοσειρών που δεν είναιπαλινδρομικές.

ΆσκησηΑυτοαξιολόγησης

7.1

Ο λόγος για τον οποίο οι μέθοδοι αυτοί παραγωγής συμβολοσειρών ονομάζονται\γραμματικές" οφείλεται στο γεγονός ότι αρχικά εφαρμόστηκαν στη μελέτη πραγ-ματικών γλωσσών όπως τα Αγγλικά. Αν και οι γραμματικές αυτές περιγράφουναρκετά καλά το συντακτικό μιας γλώσσας, ωστόσο οι εκφράσεις που παράγουνδεν είναι πάντα νοηματικά σωστές, ίσως γιατί πολλές εκφράσεις εξαρτώνται απότα συμφραζόμενα. Όμως στην περίπτωση των γλωσσών προγραμματισμού ταπράγματα βελτιώνονται σημαντικά και οι γραμματικές ΑΣ αποδίδουν με ακρίβειατο συντακτικό αυτών των γλωσσών.7.3Έστω G = (V;§; S;R) η γραμματική όπου V = fSg, § = f+;¡; =; ¤; (; ); x; yg και Rαποτελείται από τους κανόνες

S ! S + S j S ¡ S j S=S j S ¤ S j (S) j x j yΗ γραμματική αυτή παράγει τη γλώσσα όλων των σωστών αλγεβρικών εκφράσεων. Οαναδρομικός ορισμός που δίνεται από τους παραπάνω κανόνες δηλώνει ότι από δύοσωστές εκφράσεις, μια νέα έκφραση μπορεί να προκύψει είτε ενώνοντας τις δύο μεένα από τα σύμβολα +, ¡, =, ¤, ή τοποθετώντας την αρχική μέσα σε παρενθέσεις. Τασύμβολα x; y παίζουν το ρόλο των μεταβλητών που μετέχουν σ, αυτές τις αλγεβρικέςεκφράσεις. Δύο τυπικές παραγωγές για την έκφραση x+ x ¤ y φαίνονται παρακάτω:

S ) S + S ) x+ S ) x+ S ¤ S ) x+ x ¤ S ) x+ x ¤ yS ) S ¤ S ) S + S ¤ S ) x+ S ¤ S ) x+ x ¤ S ) x+ x ¤ y

Η πρώτη απ, αυτές τις δύο φαίνεται περισσότερο \φυσική", αφού αρχίζει με την έκφρασηS+S δηλώνοντας ότι εκείνο που έχουμε στο νου μας είναι η πρόσθεση δύο εκφράσεων,της x και της x ¤ y, αντιστοιχώντας στην έκφραση x + (x ¤ y). Η δεύτερη από τηνάλλη μεριά ερμηνεύει την έκφραση σαν γινόμενο. Αρχίζει με την παραγωγή S ¤ S καιαντιστοιχεί στην έκφραση (x + x) ¤ y. Όταν όμως έχουμε μια έκφραση της μορφήςx+ x ¤ y, συνήθως την ερμηνεύουμε σαν x+ (x ¤ y) και όχι σαν (x+ x) ¤ y, επειδή οπολλαπλασιασμός ¤ έχει μεγαλύτερη προτεραιότητα από την πρόσθεση +.

Παράδειγμα 7.3

Η ασάφεια που δημιουργείται κατά την ερμηνεία της παραπάνω έκφρασης Διφορούμενεςγραμματικέςοφείλεται στο γεγονός ότι η συγκεκριμένη γραμματική μπορεί να παράγει την ίδια

συμβολοσειρά με διαφορετικούς τρόπους. Θα ονομάζουμε μια τέτοια γραμματικήδιφορούμενη ή ασαφή ή διττή, αν υπάρχουν δύο ή περισσότερες αριστερές παραγω- Αριστερές

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

Page 162: αυτόματα και τυπικές γλώσσες dimitriou

150 Γλώσσες Ανεξάρτητες Συμφραζόμενων

Το πρόβλημα με γραμματικές αυτού του είδους γίνεται ακόμα πιο έντονοκατά τη φάση της Συντακτικής Ανάλυσης (Κεφάλαιο 10), όπου σκοπός είναι ναΣυντακτική

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

Σ, αυτές τις περιπτώσεις προσπαθούμε να μετατρέψουμε τη γραμματική σε μιαισοδύναμη, η οποία δεν είναι διφορούμενη. Κάτι τέτοιο όμως δεν είναι πάνταδυνατό καθότι μερικές γραμματικές παραμένουν ασαφείς όσες μετατροπές και ναγίνουν. Αποδεικνύεται μάλιστα ότι είναι άλυτο πρόβλημα να αποφασίσει κάποιοςαν μια γραμματική είναι διφορούμενη, δηλαδή δεν μπορεί να υπάρξει αλγόριθμοςαπόφασης που να απαντάει, δοθείσης μιας γραμματικής G, αν αυτή είναι ασαφήςή όχι.7.2Δείξτε ότι η γραμματική με κανόνες

S ! SS j (S) j ²

είναι διφορούμενη, ενώ η ακόλουθη ισοδύναμη γραμματική όχι.

S ! (S)S j ²

ΆσκησηΑυτοαξιολόγησης7.2

Θα κλείσουμε αυτή την ενότητα με ένα ακόμα παράδειγμα γραμματικής ΑΣ.7.4Ας προσπαθήσουμε να βρούμε μια γραμματική για τη γλώσσα L = fx 2 f0; 1g¤j η xπεριέχει περισσότερα 0 από 1g.Όπως και στο Παράδειγμα 7.1 θα προσπαθήσουμε να ορίσουμε την L αναδρομικά.Παρατηρήστε πρώτα ότι 0 2 L. Αν τώρα x είναι μια συμβολοσειρά της L, τότε καιοι 0x, x0 θα ανήκουν στην L. Από αυτές τις παρατηρήσεις προκύπτουν οι κανόνες

S ! 0 j 0S j S0

Θα πρέπει τώρα να επιτρέψουμε και την παρουσία άσσων, αλλιώς η γραμματική θααποτελείται μόνο από μηδενικά. Για να το κάνουμε αυτό θα χρησιμοποιήσουμε δύοσυμβολοσειρές x; y 2 L. Αν συνδυάσουμε αυτές τις δύο τότε θα έχουμε τουλάχιστονδύο περισσότερα 0 από 1, γιατί κάθε μια από τις x; y περιέχει τουλάχιστον ένα παραπάνω0 από 1. Άρα μπορούμε να προσθέσουμε έναν άσσο και η συμβολοσειρά που προκύπτεινα ανήκει πάλι στην L. Αυτός ο άσσος μπορεί να προστεθεί στα αριστερά, ανάμεσα ήστα δεξιά των x και y. Οι αντίστοιχοι κανόνες είναι

S ! 1SS j S1S j SS1

Άρα η ζητούμενη γραμματική G θα αποτελείται από τους παρακάτω κανόνες

S ! 0 j 0S j S0 j 1SS j S1S j SS1

Παράδειγμα 7.4

Page 163: αυτόματα και τυπικές γλώσσες dimitriou

Γραμματικές Ανεξάρτητες Συμφραζόμενων 151

Θα δείξουμε τώρα χρησιμοποιώντας επαγωγή ότι οι συμβολοσειρές που παράγονταιαπό την γραμματική του προηγούμενου παραδείγματος ανήκουν στην L ή αλλιώςότι L(G) µ L. Για το λόγο αυτό θ, αποδείξουμε τον ακόλουθο ισχυρισμό:

\Αν ® 2 (V [ §)¤ και S +) ® (όπου +) σημαίνει παραγωγή σε έναή περισσότερα βήματα), τότε το άθροισμα των S και 0 στο ® είναιμεγαλύτερο από τον αριθμό των 1."

Ο λόγος που υπολογίζουμε και τα S στο παραπάνω άθροισμα είναι, γιατί στη τελικήσυμβολοσειρά, η οποία ανήκει στο §¤, αυτά μετατρέπονται σε 0 μέσω του κανόναS ! 0. Έτσι, αυτή θα έχει περισσότερα 0 από 1. Η απόδειξη θα είναι με επαγωγήστο μήκος k μιας παραγωγής του ® από το S.Βάση: k = 1. Η παραγωγή θα χρησιμοποιεί κάποιο από τους κανόνες της G. Όμωςσ, όλους το άθροισμα των S και 0 είναι μεγαλύτερο από τον αριθμό των 1.

Επαγωγική Υπόθεση: Ας υποθέσουμε ότι ο ισχυρισμός είναι αληθής για όλα τα® που παράγονται από το S σε k ή λιγότερα βήματα.

Επαγωγικό Βήμα: Αν S +) ® σε k + 1 βήματα, τότε S +) ®0 σε k βήματαγια κάποια άλλη συμβολοσειρά ®0 2 (V [ §)¤ και ®0 ) ®. Από την επαγωγικήυπόθεση, η ®0 θα περιέχει έναν αριθμό από S και 0 μεγαλύτερο από τον αριθμό των1 και θα παράγει την ® με την εφαρμογή κάποιου κανόνα της γραμματικής. Όμωςόλοι οι κανόνες είτε αυξάνουν τον αριθμό των 0 (S ! 0S j S0) ή προσθέτουν απόέναν άσσο και ένα S (S ! 1SS j S1S j SS1) ή αντικαθιστούν ένα S με ένα 0(S ! 0). Σ, όλες τις περιπτώσεις ο ισχυρισμός παραμένει αληθής.

Θα δείξουμε τώρα το αντίστροφο, δηλαδή ότι οποιαδήποτε συμβολοσειρά τηςL μπορεί να παραχθεί από τη γραμματική ή αλλιώς ότι L µ L(G). Αυτό θαολοκληρώσει την απόδειξη ότι L = L(G). Χρησιμοποιώντας επαγωγή θα αποδεί-ξουμε τον ακόλουθο ισχυρισμό:

\Αν x 2 §¤ είναι μια συμβολοσειρά της L μήκους k ¸ 1, τότε η xμπορεί να παραχθεί από την G ή αλλιώς S +) x."

Βάση: k = 1. Τότε x = 0 και η x μπορεί να παραχθεί με τη χρήση του κανόναS ! 0.

Επαγωγική Υπόθεση: Ας υποθέσουμε ότι ο ισχυρισμός είναι αληθής για όλες τιςσυμβολοσειρές x, μήκους jxj ∙ k.

Επαγωγικό Βήμα: Αν jxj = k + 1, τότε διακρίνουμε τρεις περιπτώσεις ανάλογαμε το αν η x έχει τη μορφή x = y1, x = 1y ή x = 0y0.

Περίπτωση 1, x = y1: Παρατηρήστε ότι ο αριθμός των 0 στη y θα είναιτουλάχιστον κατά δύο μεγαλύτερος από τον αριθμό των 1, γιατί αλλιώς η x θα είχε

Page 164: αυτόματα και τυπικές γλώσσες dimitriou

152 Γλώσσες Ανεξάρτητες Συμφραζόμενων

ίσο αριθμό από 0 και 1. Άρα η y μπορεί να γραφεί στη μορφή y1y2, όπου καθεμίααπό τις y1; y2 περιέχει τουλάχιστον ένα επιπλέον 0 από ότι 1. Εφόσον αυτές έχουνμέγεθος μικρότερο του k, θα ισχύει η επαγωγική υπόθεση, ώστε καθεμία από αυτέςμπορεί να παραχθεί από τη G. Θα ισχύει λοιπόν S +) y1 και S

+) y2. Πώς μπορείτώρα να παραχθεί η x = y1y21; Με τον κανόνα S ! SS1 και τα βήματα πουφαίνονται στη συνέχεια:

S ) SS1+) y1S1

+) y1y21 = x

Περίπτωση 2, x = 1y: Η περίπτωση αυτή είναι ανάλογη με την πρώτη με τημόνη διαφορά ότι η παραγωγή της x δίνεται από την ακολουθία

S ) 1SS+) 1y1S

+) 1y1y2 = x

Περίπτωση 3, x = 0y0: Αν η y δεν περιέχει καθόλου 1, τότε η x εύκολαμπορεί να παραχθεί με τη χρήση των κανόνων S ! 0S j S0 και S ! 0. Αλλιώςη x μπορεί να γραφεί στη μορφή y11y2, όπου για καθένα από τα y1; y2 ισχύει ηεπαγωγική υπόθεση. Άρα η x μπορεί να παραχθεί με την ακολουθία

S ) S1S+) y11S

+) y11y2 = x

και η απόδειξη είναι πλήρης.7.3Δείξτε ότι η γραμματική με κανόνες

S ! AAA! AAA j bA j Ab j a

παράγει τη γλώσσα όλων των συμβολοσειρών x 2 fa; bg¤, στις οποίες ο αριθμός των aείναι ζυγός και μεγαλύτερος του μηδενός.

ΆσκησηΑυτοαξιολόγησης7.3

7.2 Κανονικές Γραμματικές

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

Θεωρήστε το αυτόματο του Σχήματος 7.1, το οποίο αναγνωρίζει τη γλώσσαόλων των συμβολοσειρών που τελειώνουν σε 00. Οι καταστάσεις από τις οποίεςπερνάει το αυτόματο διαβάζοντας τη συμβολοσειρά x = 100101000 φαίνονται στονδιπλανό πίνακα:

Page 165: αυτόματα και τυπικές γλώσσες dimitriou

Κανονικές Γραμματικές 153

S A1

0

1

0

0

F

1

Τμήμα της x πουέχει διαβαστεί Κατάσταση

² S1 S10 A100 F1001 S10010 A100101 S1001010 A10010100 F100101000 F

Σχήμα 7.1. Αυτόματο για τη γλώσσα L = fx 2 f0; 1g¤j η x τελειώνει σε 00g.

Αν παραθέσουμε τις γραμμές αυτού του πίνακα με ένα ) ανάμεσά τους,παίρνουμε την ακολουθία

S ) 1S ) 10A) 100F ) 1001S ) 10010A)100101S ) 1001010A) 10010100F ) 100101000F

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

S ! 1S, S ! 0A, A! 0F , F ! 1S, A! 1S, F ! 0F

επαρκούν για την παραγωγή της 100101000F . Αν μάλιστα προσθέσουμε και τονκανόνα F ! ², τότε μπορούμε να απαλλαγούμε και από το τελικό F . Από τηδιαδικασία αυτή φαίνεται ότι μεταβλητές της γραμματικής είναι οι καταστάσειςτου αυτόματου S;A; F . Γενικότερα, για κάθε p 2 Q και σύμβολο a 2 §, αν Εξομοίωση

αυτομάτων±(p; a) = q, τότε στη γραμματική υπάρχει ο κανόνας p! aq, ενώ για κάθε τελικήκατάσταση f 2 F υπάρχει ο κανόνας f ! ². Μ, αυτό τον τρόπο η γλώσσα πουαναγνωρίζεται από το αυτόματο μπορεί να παραχθεί από μια γραμματική ΑΣ, όπουοι παραγωγές μπορεί να θεωρηθεί ότι εξομοιώνουν τη λειτουργία του αυτόματου,καθώς διαβάζει τη συμβολοσειρά εισόδου. Κάθε γραμματική όπου το δεξιό μέροςενός κανόνα περιέχει το πολύ μια μεταβλητή ονομάζεται κανονική γραμματική.7.3Μια γραμματική ΑΣ G = (V;§; S;R) ονομάζεται κανονική, αν κάθε κανόνας έχει μιααπό τις παρακάτω μορφές

A! a

A! ²

A! aB

όπου a 2 § και A;B 2 V .

Ορισμός 7.3

Page 166: αυτόματα και τυπικές γλώσσες dimitriou

154 Γλώσσες Ανεξάρτητες Συμφραζόμενων

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

Θεώρημα 7.1. Μια γλώσσα L είναι κανονική, αν και μόνο αν μπορεί ναπαραχθεί από μια κανονική γραμματική G.

Απόδειξη: Η απόδειξη αποτελείται από δύο μέρη. Στο πρώτο μέρος θαδείξουμε ότι κάθε αυτόματο μπορεί να εξομοιωθεί από κάποια κανονικήγραμματική, ενώ στο δεύτερο το αντίστροφο. Έστω M = (Q;§; ±; q0; F )

το αυτόματο που αναγνωρίζει τη γλώσσα L και G = (V;§; S;R) η κανονικήγραμματική που ορίζεται όπως παρακάτω:

V = Q

S = q0

R = fp! aq j αν ±(p; a) = qg [ ff ! ² j για κάθε f 2 FgΘα δείξουμε τώρα ότι L(G) = L. Δεν είναι δύσκολο ν, αποδειχθεί (Άσκηση7.3) ότι για κάθε x 2 §¤

±¤(q0; x) = p αν και μόνο αν S¤) xp

Έστω τώρα ότι η x ανήκει στην L(M). Αυτό σημαίνει ότι ±¤(q0; x) = f ,για κάποια τελική κατάσταση f , και ισοδύναμα S ¤) xf . Χρησιμοποιώνταςτον κανόνα f ! ² παίρνουμε S ¤) x, το οποίο σημαίνει ότι x 2 L(G).Άρα L(M) µ L(G). Αντίστροφα, έστω ότι x 2 L(G) ή αλλιώς S ¤) x. Οτελευταίος κανόνας της παραγωγής θα πρέπει να ήταν της μορφής f ! ², γιακάποια f 2 F , άρα S ¤) xf ) x. Αλλά τότε ±¤(q0; x) = f και x 2 L(M).Άρα L(G) µ L(M) και οι δύο γλώσσες είναι ίδιες.Θα δείξουμε τώρα ότι οποιαδήποτε κανονική γραμματική G = (V;§; S;R)

μπορεί να εξομοιωθεί από ένα μη ντετερμινιστικό αυτόματοM = (Q;§; ±; q0;

F ), όπου

Q = V

q0 = S

F = ffg± : Q£§, που ορίζεται ως εξής

±(A; a) = B για κάθε κανόνα A! aB, όπου A;B 2 V και a 2 §.

±(A; a) = f για κάθε κανόνα A! a, όπου A 2 V και a 2 §.

±(A; ²) = f για κάθε κανόνα A! ², όπου A 2 V .

Όπως και προηγουμένως, οι παραγωγές εξομοιώνονται από κινήσεις τουM . fείναι η μοναδική τελική κατάσταση στην οποία μεταβαίνει το αυτόματο, ότανη παραγόμενη συμβολοσειρά δεν περιέχει μεταβλητές. Δεν είναι δύσκολο ναδειχθεί ότι για κάθε x 2 §¤

S¤) x αν και μόνο αν ±¤(S; x) = f

Page 167: αυτόματα και τυπικές γλώσσες dimitriou

Ένωση, Συνένωση, Αστέρι Kleene 155

Συνεπώς, αν x 2 L(G) και S ¤) x, τότε ±¤(S; x) = f ή αλλιώς x 2 L(M).Αντίστροφα, αν x 2 L(M), τότε ±¤(S; x) = f , ώστε S ¤) x. Αλλά τότεx 2 L(G) και οι δύο γλώσσες είναι ίδιες.

Η διαδικασία που περιγράφηκε στο πρώτο μέρος της απόδειξης του Θεωρήματος7.1 μπορεί να εφαρμοστεί και σε μη ντετερμινιστικά αυτόματα. Οι γραμματικέςόμως που παράγονται μπορεί να μην είναι κανονικές με τον τρόπο που ορίστηκανεδώ, γιατί μπορεί να περιέχουν κανόνες της μορφής A! B που δεν καλύπτονταιαπό τον Ορισμό 7.3. Παρ, όλα αυτά όμως δεν παύουν να είναι γραμματικές ΑΣ,αποδεικνύοντας ότι οι κανονικές γλώσσες είναι μέρος των γλωσσών ΑΣ.7.4Χρησιμοποιώντας την παραπάνω παρατήρηση, δώστε γραμματικές για τα αυτόματα M2

και M4 του Σχήματος 5.13 του Κεφαλαίου 5.

ΆσκησηΑυτοαξιολόγησης

7.4

7.3 Ένωση, Συνένωση, Αστέρι Kleene

Θεωρήστε ξανά τη γλώσσα L1 = fx 2 f0; 1g¤j η x περιέχει περισσότερα 0 από1g του Παραδείγματος 7.4. Μετονομάζοντας την αρχική μεταβλητή S σε A, ηγραμματική G1 δίνεται από τους παρακάτω κανόνες:

A! 0 j 0A j A0 j 1AA j A1A j AA1

Αντίστοιχα, αν L2 είναι η γλώσσα fx 2 f0; 1g¤j η x περιέχει περισσότερα 1 από0g, τότε μια γραμματική G2 προκύπτει αντιστρέφοντας τους ρόλους των 0 και 1.Θέτοντας B ως την αρχική μεταβλητή, παίρνουμε τους κανόνες

B ! 1 j 1B j B1 j 0BB j B0B j BB0

Υποθέστε τώρα ότι μας ζητείται να δώσουμε μια γραμματική για τη γλώσσαL όλων των συμβολοσειρών x 2 f0; 1g¤ στις οποίες ο αριθμός των 0 διαφέρειαπό τον αριθμό των 1. Είναι φανερό ότι η L μπορεί να εκφραστεί ως η ένωσητων L1, L2. Εισάγοντας λοιπόν μια νέα αρχική μεταβλητή S και τον κανόνα Κλειστότητα

ως προς ένωσηS ! A j B, μαζί με τους κανόνες των G1 και G2, η νέα γραμματική εκφράζει τηνένωση των L1, L2. Η ίδια τεχνική μπορεί να εφαρμοστεί για να δείξουμε ότι ηένωση δύο οποιωνδήποτε γλωσσών ΑΣ είναι πάλι ΑΣ. Το θεώρημα που ακολουθείαποδεικνύει ότι παρόμοιες κατασκευές υπάρχουν για τη συνένωση και το αστέριKleene γλωσσών ΑΣ.

Θεώρημα 7.2. Οι γλώσσες ανεξάρτητες συμφραζόμενων είναι κλειστές ωςπρος τις πράξεις ένωση, συνένωση και αστέρι Kleene.

Page 168: αυτόματα και τυπικές γλώσσες dimitriou

156 Γλώσσες Ανεξάρτητες Συμφραζόμενων

Απόδειξη: Έστω G1 = (V1;§; S1; R1) και G2 = (V2;§; S2; R2) δύογραμματικές ΑΣ, οι οποίες παράγουν τις γλώσσες L1 και L2. Θα κατασκευά-σουμε γραμματικές για τις γλώσσες L1 [ L2, L1L2 και L¤1.

Ένωση: Υποθέτουμε ότι V1 \ V2 = Â, αλλιώς μπορούμε να μετονομάσουμετις μεταβλητές, ώστε να ισχύει η υπόθεση. Έστω S μια νέα μεταβλητή. Ηγραμματική G = (V;§; S;R) που παράγει την ένωση των L1 και L2 δίνεταιαπό τα παρακάτω:

V = V1 [ V2 [ fSgR = R1 [R2 [ fS ! S1 j S2g

Για να δείτε ότι η G παράγει τη γλώσσα L1 [ L2 παρατηρήστε ότι η Sχρησιμοποιείται μόνο στους κανόνες S ! S1 και S ! S2. Έτσι για μιασυμβολοσειρά x 2 §¤ θα ισχύει S ¤) x αν και μόνο αν S1

¤) x ή S2¤) x.

Άρα x 2 L, αν και μόνο αν x 2 L1 ή x 2 L2.

Συνένωση: Ανάλογα δουλεύουμε και για τη γραμματική G που παράγει τηνL1L2. Αυτή τη φορά όμως το R είναι ίσο με

R = R1 [R2 [ fS ! S1S2g

Για μια συμβολοσειρά x θα ισχύει S ¤) x, αν και μόνο αν η x μπορεί ναγραφεί στη μορφή x1x2 όπου S1

¤) x1 και S2¤) x2. Μα τότε x 2 L1L2,

αν και μόνο αν x1 2 L1 και x2 2 L2.

Αστέρι Kleene: Για να παράγουμε την L¤1 είναι αρκετό η G να μπορεί ναπαράγει την κενή συμβολοσειρά ² και ακολουθίες της μορφής x = x1x2 ¢ ¢ ¢xk,όπου κάθε xi 2 L1. Αν S είναι μια νέα μεταβλητή, αρκεί στο σύνολο κανόνωνR1 να προσθέσουμε τους κανόνες

S ! S1S j ²

Τότε χρησιμοποιώντας την παραγωγή

S ) S1S ) S1S1S¤) S1S1 ¢ ¢ ¢S1S ) S1S1 ¢ ¢ ¢S1

μπορούμε να παράγουμε οποιοδήποτε αριθμό από S1, όπου το τελευταίο βήμαπροέκυψε με τον κανόνα S ! ². Εφόσον καθένα από τα S1 παράγει μιασυμβολοσειρά της L1, συμπεραίνουμε ότι x = x1x2 ¢ ¢ ¢xk 2 L(G), αν καιμόνο αν κάθε xi 2 L1 ή αλλιώς αν και μόνο αν x 2 L¤1.

7.5Στα παραπάνω κάναμε την υπόθεση ότι τα σύνολα V1 και V2 δεν περιέχουν κοινέςμεταβλητές. Δώστε ένα παράδειγμα που να δείχνει ότι το θεώρημα δεν ισχύει, ανV1 \ V2 6= Â.

ΆσκησηΑυτοαξιολόγησης7.5

Page 169: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 157

7.5Έστω L = faibjckj j = i + kg. Θα προσπαθήσουμε να εφαρμόσουμε τις ιδέες τουΘεωρήματος 7.2 για να εκφράσουμε την L ως τη συνένωση απλούστερων γλωσσών.Μια πρώτη προσέγγιση είναι να θέσουμε L = L1L2L3, όπου οι τρεις γλώσσες περιέχουνσυμβολοσειρές από a, b και c, αντίστοιχα. Κάτι τέτοιο όμως οδηγεί σε λάθος. Η L1

μπορεί να περιέχει το aa, η L2 το b και η L3 το c, όμως η L δεν περιέχει το aabc, αφούο αριθμός των b πρέπει να είναι ίσος με το άθροισμα των a και c.Υπάρχει όμως μια σχετικά εύκολη λύση. Η συμβολοσειρά aibjck, όπου j = i+k μπορείνα γραφεί

aibi+kck = aibibkck

Άρα η L είναι η συνένωση των L1, L2, όπου

L1 = faibij i ¸ 0gL2 = fbkckj k ¸ 0g

Όμως έχουμε ήδη γραμματικές γι, αυτές τις γλώσσες. Η L1 παράγεται με τους κανόνες

A! aAb j ²

και η L2 με τους κανόνεςC ! bCc j ²

Εισάγοντας μια νέα μεταβλητή S και συνενώνοντας τις αρχικές μεταβλητές των L1, L2παίρνουμε τους κανόνες για την L = L1L2:

S ! AC

A! aAb j ²C ! bCc j ²

Για παράδειγμα η συμβολοσειρά abbbcc = (ab)(b2c2) μπορεί να παραχθεί ως εξής:

S ) AC ) aAbC ) abC ) abbCc) abbbCcc) abbbcc

Παράδειγμα 7.5

7.6Αποδείξτε, χρησιμοποιώντας το Θεώρημα 7.2, ότι κάθε κανονική γλώσσα μπορεί ναπαραχθεί από μια γραμματική ΑΣ.

ΆσκησηΑυτοαξιολόγησης

7.6

ΑΣΚΗΣΕΙΣ

7.1 Δώστε μια γραμματική ΑΣ για τη γλώσσα όλων των παλινδρομικών συμβολο-σειρών περιττού μήκους στο fa; bg¤.

7.2 Βρείτε γραμματικές ΑΣ για τις ακόλουθες γλώσσες:

α) faibjckj i = j + kg

Page 170: αυτόματα και τυπικές γλώσσες dimitriou

158 Γλώσσες Ανεξάρτητες Συμφραζόμενων

β) faibjckj j6= i+ kgγ) faibjckj i = j ή i = kgδ) faibj j i ∙ j ∙ 2igε) faibjckdlj i+ j = k + l ή i > lgστ) Το συμπλήρωμα της fanbnj n ¸ 0g

7.3 Ολοκληρώστε την απόδειξη του πρώτου μέρους του Θεωρήματος 7.1 δείχνο-ντας επαγωγικά ότι για κάθε x 2 §¤ και p 2 P

±¤(q0; x) = p αν και μόνο αν S¤) xp

7.4 Έστω G η γραμματική με κανόνες

S ! aS j Sb j a j b

Δείξτε ότι καμιά συμβολοσειρά της L(G) δεν περιέχει το ba.

7.5 Βρείτε μια γραμματική ΑΣ για τη γλώσσα όλων των κανονικών εκφράσεων.Προσέξτε να διακρίνετε μεταξύ του συμβόλου ² που χρησιμοποιείται στιςεκφράσεις και του ² που χρησιμοποιείται σε κανόνες.

7.6 Έστω G η γραμματική ΑΣ με κανόνες

S ! aB j bAA! aS j bAA j aB ! bS j aBB j b

Δείξτε ότι η L(G) είναι η γλώσσα όλων των συμβολοσειρών x 2 fa; bg+που έχουν ίσο αριθμό από a και b.

7.7 Βρείτε τη γλώσσα που παράγεται από τη γραμματική με τους ακόλουθουςκανόνες:

S ! aA j bCA! aS j bBB ! aC j bAC ! aB j bS j ²

7.8 Μια γραμματική ονομάζεται αριστερά κανονική, αν κάθε κανόνας έχει μιααπό τις μορφές

A! a, A! Ba, A! ²

όπου A;B μεταβλητές και a στοιχείο του αλφάβητου. Δείξτε ότι μια γλώσσαL είναι κανονική, αν και μόνο αν υπάρχει μια αριστερά κανονική γραμματικήG ώστε L = L(G).

Page 171: αυτόματα και τυπικές γλώσσες dimitriou

Σύνοψη 159

7.9 Δώστε γραμματικές για τις γλώσσες που παράγονται από τις παρακάτω εκ-φράσεις μετατρέποντας τα αντίστοιχα μη ντετερμινιστικά αυτόματα σε γραμ-ματικές.

α) (a+ b)¤aba(a+ b)¤

β) (01)¤1(10 + 1)¤

7.10 Δείξτε ότι οι ακόλουθες γραμματικές είναι διφορούμενες. Έπειτα βρείτεισοδύναμες γραμματικές που δεν είναι.

α) S ! ABA, A! aA j ², B ! bB j ²β) S ! A j B, A! aAb j ab, B ! aBb j ²

Σύνοψη

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

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

Τέλος, αποδείξαμε ότι οι γλώσσες ΑΣ είναι κλειστές ως προς την ένωση, τησυνένωση και το αστέρι Kleene. Μπορούμε λοιπόν να σχεδιάζουμε γραμματικέςξεκινώντας από απλές γραμματικές και χρησιμοποιώντας τις παραπάνω πράξεις.

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης

Άσκηση 7.1 Θέλουμε να δώσουμε μια γραμματική ΑΣ για τη γλώσσα όλων τωνμη παλινδρομικών συμβολοσειρών. Στις ασκήσεις αυτού του είδους προσπαθούμεπρώτα να βρούμε κάποια ιδιότητα που χαρακτηρίζει τις συμβολοσειρές της γλώσσας.Έτσι, μια συμβολοσειρά x δε θα είναι παλινδρομική, αν καθώς συγκρίνουμε σύμβο-λα από τα δύο άκρα, κάποια στιγμή δύο απ, αυτά είναι διαφορετικά. Αρχικά λοιπόνθα έχουμε τους κανόνες

S ! 0S0 j 1S1 j A

Page 172: αυτόματα και τυπικές γλώσσες dimitriou

160 Γλώσσες Ανεξάρτητες Συμφραζόμενων

οι οποίοι, με τη μεταβλητή S, παράγουν ένα τμήμα που είναι παλινδρομικό καιμε την A, μια συμβολοσειρά στην οποία το πρώτο και τελευταίο σύμβολο είναιδιαφορετικά. Άρα μπορούμε να δοκιμάσουμε τους κανόνες

A! 0B1 j 1B0

όπου η μεταβλητή B χρησιμεύει για να παράγει οτιδήποτε, όπως φαίνεται παρακάτω

B ! 0B j 1B j ²

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

S ) 0S0) 0A0) 01A00) 01B00) 011B00) 0111B00) 011100

Αν δουλέψατε όπως παραπάνω ή αν βρήκατε μια παρόμοια γραμματική, συγχαρητή-ρια. Αν δεν τα καταφέρατε, μη στεναχωριέστε. Βεβαιωθείτε όμως ότι κατανοήσατετον τρόπο σκέψης.

Άσκηση 7.2 Η γραμματική με κανόνες

S ! SS j (S) j ²

είναι διφορούμενη, γιατί υπάρχουν δύο αριστερές παραγωγές για τη συμβολοσειρά()

S ) SS ) S ) (S)) ()

S ) (S)) ()

Θα αποδείξουμε ότι η ακόλουθη γραμματική

S ! (S)S j ²

δεν είναι διφορούμενη, δείχνοντας ότι για οποιαδήποτε συμβολοσειρά x που μπορείνα παραχθεί σε k βήματα, υπάρχει μόνο μια αριστερή παραγωγή. Αν k = 1, τότεπροφανώς υπάρχει μόνο μια αριστερή παραγωγή. Έστω ότι η υπόθεση είναι αληθήςγια όλες τις συμβολοσειρές που μπορούν να παραχθούν σε k ή λιγότερα βήματα.Ας είναι x μια συμβολοσειρά που μπορεί να παραχθεί σε k+1 βήματα. Το πρώτοβήμα αναγκαστικά θα είναι το S ) (S)S. Έστω λοιπόν y; z οι δύο συμβολοσειρέςπου παράγονται σε k ή λιγότερα βήματα απ, αυτά τα δύο S, ώστε x = (y)z.Από την επαγωγική όμως υπόθεση οι δύο αυτές συμβολοσειρές θα έχουν μόνο μιααριστερή παραγωγή. Άρα το ίδιο θα ισχύει και για τη x.

Page 173: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης 161

Άσκηση 7.3 Θα δείξουμε, δουλεύοντας όπως στο Παράδειγμα 7.4, ότι η γραμματικήμε κανόνες

S ! AA

A! AAA j bA j Ab j aπαράγει τη γλώσσα L = fx 2 fa; bg¤j ο αριθμός των a στη x είναι ζυγός καιμεγαλύτερος του μηδένg.

Πρώτα θα αποδείξουμε τον ακόλουθο ισχυρισμό.

\Αν ¯ 2 (V [ §)¤ και S +) ¯, τότε το άθροισμα των A και a στο ¯είναι ζυγός και μεγαλύτερος από το 0."

Στη τελική συμβολοσειρά, η οποία ανήκει στο §¤, τα A μετατρέπονται σε a μέσωτου κανόνα A! a. Έτσι ο αριθμός των a σ, αυτή θα είναι ζυγός και μεγαλύτεροςτου μηδέν. Η απόδειξη θα είναι με επαγωγή στο μήκος k μιας παραγωγής του ¯από το S.

Βάση: k = 1. S ) AA είναι η μόνη παραγωγή μήκους 1, οπότε η βάση είναιαληθής.

Επαγωγική Υπόθεση: Ας υποθέσουμε ότι ο ισχυρισμός είναι αληθής για όλα τα¯ που παράγονται από το S σε k ή λιγότερα βήματα.

Επαγωγικό Βήμα: Αν S +) ¯ σε k + 1 βήματα, τότε S +) ¯0 σε k βήματαγια κάποια άλλη συμβολοσειρά ¯0 2 (V [ §)¤ τέτοια ώστε ¯0 ) ¯. Από τηνεπαγωγική υπόθεση, η ¯0 θα περιέχει ένα θετικό, ζυγό αριθμό από A και a καιθα παράγει την ¯ με την εφαρμογή κάποιου κανόνα της γραμματικής. Όμως όλοιοι κανόνες είτε αυξάνουν τον αριθμό των A κατά δύο (S ! AA, A ! AAA) ήαντικαθιστούν ένα A με ένα a (A! a) ή δεν αλλάζουν καθόλου τον αριθμό τωνA και a (A ! bA j Ab). Σ, όλες τις περιπτώσεις λοιπόν ο ισχυρισμός παραμένειαληθής, άρα L(G) µ L.

Θα δείξουμε τώρα το αντίστροφο, δηλαδή ότι κάθε συμβολοσειρά της L μπορείνα παραχθεί από τη G. Έστω x μια τυπική συμβολοσειρά της L. Αυτή θααποτελείται από δυάδες των a στις οποίες παρεμβάλλεται ένας οποιοδήποτε αριθμόςαπό b. Κάθε τέτοια ομάδα θα έχει τη μορφή ab¤a και μπορεί να παραχθεί με τηνακολουθία:

S ) AA) AAAA Κανόνας A! AAA) AbAAA Κανόνας A! Ab

¢ ¢ ¢) Ab ¢ ¢ ¢ bAAA Εφαρμογή A! Ab, πολλές φορές) ab ¢ ¢ ¢ baAA Εφαρμογή A! a, δύο φορές

Page 174: αυτόματα και τυπικές γλώσσες dimitriou

162 Γλώσσες Ανεξάρτητες Συμφραζόμενων

Προσέξτε ότι αρχίσαμε με AA και παράγαμε την ab¤aAA. Συνεχίζοντας ανάλογαμπορεί να παραχθεί και η υπόλοιπη συμβολοσειρά. Άρα L µ L(G) και η απόδειξηείναι πλήρης.

Μπράβο σας αν φτάσατε στη σωστή λύση. Αν δεν τα καταφέρατε μη απογοητεύ-εστε. Μελετήστε ξανά το Παράδειγμα 7.4 και συγκρίνετε τις δύο αποδείξεις.

Άσκηση 7.4 Δώστε γραμματικές για τα αυτόματα M2 καιM4 του Σχήματος 5.13,του Κεφαλαίου 5.

Τα αυτόματα αποτελούνται από τέσσερις καταστάσεις, οπότε οι γραμματικές θαέχουν τέσσερις μεταβλητές, τις V1; V2; V3; V4. Η γραμματική G2, που αντιστοιχείστο M2, έχει αρχική μεταβλητή την V1 και δίνεται από τους εξής κανόνες:

V1 ! 0V2 j 0V3V2 ! 1V4

V3 ! 0V4

V4 ! 0V4 j V1 j ²

Ο κανόνας V4 ! ² υπάρχει, γιατί η V4 αντιστοιχεί σε μια τελική κατάσταση,ενώ ο κανόνας V4 ! V1, γιατί υπάρχει μια ²-μετάβαση από την κατάσταση 4στην κατάσταση 1. Η γραμματική αυτή δεν είναι κανονική λόγω της ύπαρξης τουπαραπάνω κανόνα. Αν όμως εξαλείψουμε την ²-μετάβαση τότε αυτή μετατρέπεταισε κανονική.

Δουλεύοντας ανάλογα, η γραμματική G4 δίνεται από τους παρακάτω κανόνες:

V1 ! 0V2 j 0V3 j ²V2 ! 1V1 j V4V3 ! 1V4

V4 ! 0V4 j 1V4Αν μετατρέψατε σωστά τα αυτόματα σε γραμματικές, σας αξίζουν συγχαρητήρια.

Αν δεν τα καταφέρατε, θυμηθείτε τα εξής δύο βασικά σημεία: α) Αν ±(p; a) = qείναι μια μετάβαση στο αυτόματο, τότε στη γραμματική εμφανίζεται ο κανόναςp! aq. β) Αν f είναι μια τελική κατάσταση, τότε εμφανίζεται ο κανόνας f ! ².

Άσκηση 7.5 Στην απόδειξη του Θεωρήματος 7.2 κάναμε την υπόθεση ότι τασύνολα V1 και V2 δεν περιέχουν κοινές μεταβλητές. Θα δώσουμε ένα παράδειγμαπου να δείχνει ότι το θεώρημα δεν ισχύει αν V1 \ V26= Â.

Θεωρήστε τις γραμματικές με κανόνες

S1 ! AB, A! a, B ! b και

S2 ! BC, B ! d, C ! c

Page 175: αυτόματα και τυπικές γλώσσες dimitriou

Λεξιλόγιο Αγγλικών Όρων 163

οι οποίες παράγουν τις συμβολοσειρές ab και dc, αντίστοιχα. Αν τώρα πάρουμετην ένωσή τους, χωρίς να μετονομάσουμε την κοινή μεταβλητή B, προκύπτει ηπαρακάτω παραγωγή,

S ) S1 ) AB ) aB ) ad

η οποία δεν ανήκει σε καμιά από τις δύο γραμματικές.

Άσκηση 7.6 Θα δείξουμε, χρησιμοποιώντας το Θεώρημα 7.2, ότι κάθε κανονικήγλώσσα μπορεί να παραχθεί από μια γραμματική ΑΣ.

Είναι γνωστό ότι αν r; s είναι δύο κανονικές εκφράσεις, τότε και οι εκφράσεις(r+ s), (rs) και r¤ είναι επίσης κανονικές. Αν λοιπόν έχουμε γραμματικές για τιςL(r); L(s), τις γλώσσες που παράγονται από τις εκφράσεις r; s, το Θεώρημα 7.2μας λέει ότι εύκολα μπορούμε να κατασκευάσουμε γραμματικές για τις L(r)[L(s),L(r)L(s) και L(r)¤.

Αρκεί λοιπόν να δείξουμε ότι υπάρχουν γραμματικές για τις βασικές κανονικέςεκφράσεις, τις Â, ² και a, για κάθε a 2 §. Αυτό δεν είναι δύσκολο. H γραμματι-κή για το Â περιέχει μόνο μια αρχική μεταβλητή, χωρίς καθόλου κανόνες. Ηγραμματική για την ², περιέχει τον κανόνα S ! ², ενώ για την a τον κανόναS ! a. Φαίνεται λοιπόν, γι, άλλη μια φορά, ότι οι κανονικές γλώσσες είναιυποσύνολο των γλωσσών ΑΣ.

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝΓραμματικές Ανεξάρτητες Συμφραζόμενων Context Free Grammars

Μεταβλητές, τερματικά σύμβολα Variables, terminal symbols

Παραγωγές Derivations

Διφορούμενη Γραμματική Ambiguous grammar

Συντακτική Ανάλυση Parsing

Page 176: αυτόματα και τυπικές γλώσσες dimitriou

164 Γλώσσες Ανεξάρτητες Συμφραζόμενων

Page 177: αυτόματα και τυπικές γλώσσες dimitriou

ΑΥΤΟΜΑΤΑ ΣΤΟΙΒΑΣ

Κ Ε Φ Α Λ Α Ι Ο

Σκοπός

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

Προσδοκώμενα Αποτελέσματα

Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε:

² ν, αναφέρετε τα βασικά χαρακτηριστικά ενός ΑΣ και να περιγράψετε τη διαδικα-σία αναγνώρισης μιας συμβολοσειράς,

² ν, αναφέρετε το είδος της μνήμης των μηχανών αυτών,

² να δώσετε τον ορισμό ενός αυτόματου στοίβας και να εξηγήσετε πώς ορίζεταιη συνάρτηση μετάβασης του,

² ν, αναφέρετε τι είδους πληροφορία απαιτείται για να περιγραφεί η κατάστασηενός αυτόματου στοίβας,

² ν, αναφέρετε τα δύο είδη αναγνώρισης συμβολοσειρών καθώς και τις αντίστοι-χες γλώσσες που γίνονται δεκτές από αυτά τα αυτόματα,

² να εξηγήσετε γιατί οι δύο τύποι αναγνώρισης είναι ισοδύναμοι,

² ν, αναφέρετε πώς ορίζεται ένα ντετερμινιστικό αυτόματο στοίβας,

² να εξηγήσετε γιατί τα αυτόματα στοίβας αναγνωρίζουν ακριβώς τις γλώσσεςανεξάρτητες συμφραζόμενων.

165

Page 178: αυτόματα και τυπικές γλώσσες dimitriou

166 Αυτόματα Στοίβας

Έννοιες-κλειδιά

² Αυτόματα Στοίβας (ΑΣ)

² Σωρός² Συνάρτηση μετάβασης και στιγμιαία περιγραφή ενός ΑΣ² Αναγνώριση με τελική κατάσταση ή άδειο σωρό² Γλώσσες που γίνονται δεκτές από τα ΑΣ² Ντετερμινιστικά ΑΣ² Ισοδυναμία αυτόματων στοίβας και γραμματικών ανεξάρτητων συμφραζόμενων

Εισαγωγικές Παρατηρήσεις

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

8.1 Εισαγωγή

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

Το βασικό πρόβλημα των αυτόματων είναι η περιορισμένη μνήμη τους πουεκφράζεται με τον αριθμό των καταστάσεών τους. Όσο και να αυξήσουμε τοναριθμό αυτών των καταστάσεων τα αυτόματα δε θα μπορέσουν ποτέ ν, αναγνωρί-σουν μη κανονικές γλώσσες. Χρειάζονται άπειρες καταστάσεις, αλλά τότε πώς θαπεριγράφαμε ένα τέτοιο αυτόματο;

Page 179: αυτόματα και τυπικές γλώσσες dimitriou

Εισαγωγή 167

Η λύση είναι να εξοπλίσουμε το αυτόματο με πρόσθετη μνήμη. Για ν, αναγνω-ρίζονται όμως γλώσσες όπως η L = f0n1nj n ¸ 0g η μηχανή θα πρέπει να\θυμάται" μεγάλα ποσά πληροφορίας, άρα η μνήμη αυτή θα πρέπει να είναιάπειρη. Θα δούμε τώρα ποια μορφή πρέπει να έχει αυτή η μνήμη με τη χρήσηενός παραδείγματος.8.1Έστω η γλώσσα των παλινδρομικών συμβολοσειρών των οποίων το μήκος είναι ζυγόςαριθμός,

L = fyyRj y 2 fa; bg¤g:Για να ελέγξουμε αν μια συμβολοσειρά x ανήκει στην L, μια μηχανή M θα πρέπει ναθυμάται όλο το πρώτο μισό ώστε να μπορεί να το συγκρίνει με το δεύτερο μισό. Κάθεφορά που διαβάζεται ένα σύμβολο τοποθετείται στη μνήμη ώστε να συγκριθεί με τοαντίστοιχο σύμβολο από το δεύτερο μισό.Θεωρήστε για παράδειγμα τη συμβολοσειρά x = abaaba. Το τέταρτο σύμβολο θα πρέπεινα συγκριθεί με το τρίτο, το πέμπτο με το δεύτερο, το έκτο με το πρώτο. Αυτό δείχνειότι, καθώς διαβάζουμε τα σύμβολα της x από αριστερά προς τα δεξιά (πρώτο, δεύτερο,τρίτο, . . . ), αυτά θα πρέπει να τοποθετούνται στη μνήμη και να γίνονται αντικείμενοεπεξεργασίας με την αντίστροφη σειρά (. . . , τρίτο, δεύτερο, πρώτο). Μ, άλλα λόγια τοτελευταίο μέσα θα πρέπει να είναι το πρώτο έξω. Αυτή η μέθοδος οργάνωσης της μνήμηςλέγεται στοίβα ή σωρός, γιατί τα δεδομένα που αποθηκεύονται στη μνήμη υπακούουνστον παραπάνω κανόνα.Ίσως η οργάνωση αυτή της μνήμης γίνει πιο αντιληπτή μ, ένα παράδειγμα από τηνκαθημερινή μας ζωή. Φανταστείτε ότι πλένετε μια σειρά από βρώμικα πιάτα ώστε κάθεπλυμένο πιάτο τοποθετείται πάνω στο προηγούμενο δημιουργώντας έτσι ένα σωρό ή μιαστοίβα από πιάτα. Όταν θελήσετε να χρησιμοποιήσετε κάποιο απ, αυτά για να φάτεθα διαλέξετε φυσικά το πιάτο που είναι στην κορυφή. Οποιαδήποτε άλλη επιλογή ίσωςοδηγήσει σε δυσάρεστα αποτελέσματα. Άρα το τελευταίο πιάτο που πλύθηκε (ή μπήκεστο σωρό) είναι το πρώτο που χρησιμοποιείται. Για το λόγο αυτό και η παραπάνω μέθοδοςοργάνωσης της μνήμης λέγεται σωρός. Κάθε σύμβολο που διαβάζεται μπαίνει απλά στηνκορυφή του σωρού ώστε το τελευταίο σύμβολο που θα μπει να είναι το πρώτο που θαχρησιμοποιηθεί.

Παράδειγμα 8.1

Στοίβα

Από το παράδειγμα φαίνεται ότι η μηχανή μας αποτελείται από ένα πεπερασμένοσύνολο καταστάσεων Q και έναν άπειρο σωρό που λειτουργεί ως μνήμη. Τοσύνολο Q έχει τρεις καταστάσεις, q0, q1 και q2. Όταν η μηχανή βρίσκεται στηνκατάσταση q0, τότε κάθε σύμβολο που διαβάζει τοποθετείται στο σωρό. Στηνκατάσταση q1 κάθε σύμβολο εισόδου συγκρίνεται με το σύμβολο στην κορυφή τουσωρού. Αν ταιριάζουν, αυτό αφαιρείται από το σωρό και η μηχανή διαβάζει τοεπόμενο σύμβολο εισόδου. Αν δεν ταιριάζουν, τότε η μηχανή δεν πρόκειται ποτένα αναγνωρίσει τη συμβολοσειρά. Τέλος, αφού έχει διαβαστεί και ταιριαστεί καιτο τελευταίο σύμβολο, τότε η μηχανή μεταβαίνει στην κατάσταση q2, η οποία είναι

Page 180: αυτόματα και τυπικές γλώσσες dimitriou

168 Αυτόματα Στοίβας

τελική. Το σημείο όμως που πρέπει να προσέξουμε στην παραπάνω περιγραφή είναιη μετάβαση από την κατάσταση q0 στην κατάσταση q1. Πώς ξέρει η μηχανή πότεέχει διαβαστεί το πρώτο μισό, αφού δεν ξέρει καν το μήκος της x; Η απάντησηείναι ότι μαντεύει ή αλλιώς δρα μη ντετερμινιστικά και σε κάποιο σημείο αποφασίζειότι πρέπει ν, αρχίσει να συγκρίνει τα σύμβολα εισόδου μ, αυτά στο σωρό.

Από τα παραπάνω φαίνεται ότι κάθε κίνηση της μηχανής εξαρτάται από τρειςπαραμέτρους: την τρέχουσα κατάσταση q, το σύμβολο εισόδου a και το σύμβολοZ στην κορυφή του σωρού. Αποτέλεσμα της κίνησης είναι η μετάβαση σε μιακαινούρια κατάσταση και πιθανώς η τροποποίηση της κορυφής του σωρού.

Αν § είναι το αλφάβητο εισόδου, ¡ το αλφάβητο των συμβόλων του σωρούκαι ± η \συνάρτηση μετάβασης", τότε ±(q; a; Z) = (p; ®) σημαίνει τη μετάβασηΣυνάρτηση

μετάβασηςστην κατάσταση p και την αντικατάσταση του Z με τη συμβολοσειρά ® 2 ¡¤. Ηαφαίρεση λοιπόν του Z επιτυγχάνεται θέτοντας ® = ², ενώ η προσθήκη ενός νέουσυμβόλου Y στο σωρό γίνεται θέτοντας ® = Y Z, κάνοντας τη σύμβαση ότι τοαριστερότερο σύμβολο του ® αντιστοιχεί στην κορυφή του σωρού. Όμως εκτόςαπ, αυτό τον τύπο κίνησης υπάρχει και η ²-κίνηση, όπου το σύμβολο εισόδου δεχρησιμοποιείται, επιτρέποντας έτσι στη μηχανή να επεξεργάζεται μόνο τα σύμβολαστο σωρό.

Φαίνεται λοιπόν ότι η ± ορίζεται στο σύνολο Q£ (§[ ²)£¡ και παίρνει τιμέςστο σύνολο Q £ ¡¤. Τι γίνεται όμως στην περίπτωση που ο σωρός δεν περιέχεικανένα σύμβολο, όπως για παράδειγμα κατά το ξεκίνημα της μηχανής; Από τονορισμό της ± κάτι τέτοιο δεν πρέπει να συμβαίνει γι, αυτό θεωρούμε ότι η μηχανήξεκινάει πάντα με ένα ειδικό σύμβολο Z0 στο σωρό, το οποίο ονομάζουμε αρχικό.Αρχικό σύμβολο

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

Επειδή η μηχανή δρα μη ντετερμινιστικά, δε βλάπτει να επιτρέψουμε την ύπαρξηΜηΝτετερμινισμός

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

±(q; a; Z) = f(p1; ®1); (p2; ®2); : : : ; (pn; ®n)g

όπου κάθε pi είναι η νέα κατάσταση της μηχανής και ®i η συμβολοσειρά πουαντικαθιστά το σύμβολο Z στην κορυφή του σωρού, όταν η μηχανή βρίσκεταιστην κατάσταση q και διαβάζει το σύμβολο a. Επίσης η κίνηση

±(q; ²; Z) = f(p1; ®1); (p2; ®2); : : : ; (pn; ®n)g

σημαίνει ότι, ανεξάρτητα από το σύμβολο εισόδου και με Z στην κορυφή τουσωρού, η μηχανή μεταβαίνει στην κατάσταση pi και αντικαθιστά το Z με τησυμβολοσειρά ®i. Και στις δύο παραπάνω περιπτώσεις όμως ο αριθμός n των

Page 181: αυτόματα και τυπικές γλώσσες dimitriou

Εισαγωγή 169

δυνατών επιλογών θα πρέπει να είναι πεπερασμένος. Άρα η ± θα ορίζεται όπωςπαρακάτω:

± : Q£ (§ [ ²)£ ¡!(πεπερασμένα υποσύνολα του) Q£ ¡¤

ή αν προτιμάτε, η ± είναι μια σχέση στο

(Q£ (§ [ ²)£ ¡)£ (Q£ ¡¤)

8.1Μπορούμε τώρα να ορίσουμε τη συνάρτηση μετάβασης για τη μηχανή που αναγνωρίζειτην L. Η μηχανή αποτελείται από τρεις καταστάσεις q0, q1 και q2, όπου q0 είναι η αρχικήκαι q2 η τελική. Η συνάρτηση μετάβασης φαίνεται στον Πίνακα 8.1.Οι κινήσεις 1-2 βάζουν το σύμβολο εισόδου στο σωρό όταν αυτός είναι κενός (περιέχειμόνο το αρχικό σύμβολο Z0). Το ίδιο κάνουν και οι κινήσεις 3-4 μόνο που τώρα η κορυφήτου σωρού περιέχει το σύμβολο Z, το οποίο μπορεί να είναι a ή b. Ανεξάρτητα λοιπόναπό την τιμή του Z, στο σωρό τοποθετείται ή σπρώχνεται το σύμβολο εισόδου. Προσέξτεόμως ότι καθεμία από τις 3 και 4 αντιστοιχεί ουσιαστικά σε δύο κινήσεις: μία, όταν ηκορυφή του σωρού έχει a και μία όταν έχει b. Για να διατηρούνται όμως οι πίνακες απλοίθα χρησιμοποιούμε τη Z σαν μεταβλητή που μπορεί να πάρει συγκεκριμένες τιμές.Με τις κινήσεις 5-6 η μηχανή μαντεύει το μέσο της συμβολοσειράς. Χωρίς να πειράζειτη συμβολοσειρά εισόδου ή το σωρό πηγαίνει στην κατάσταση q1 απ, όπου θα γίνει ησύγκριση του πρώτου και δεύτερου μισού με τις κινήσεις 7 και 8. Τότε κάθε σύμβολοεισόδου συγκρίνεται με το σύμβολο στην κορυφή του σωρού, ώστε αν είναι ίδια αφαιρείταιτο τελευταίο και διαβάζεται το επόμενο σύμβολο. Αν κάποια στιγμή ο σωρός περιέχειμόνο το Z0 και δεν υπάρχει άλλη είσοδος, τότε η μηχανή, με την κίνηση 9, μεταβαίνειστην κατάσταση q2 που είναι και τελική.

Παράδειγμα 8.1(συνέχεια)

Πίνακας 8.1. Συνάρτηση μετάβασης αυτόματου για τη γλώσσα L = fxxRjx 2 §¤g

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

1 q0 a Z0 (q0; aZ0)2 q0 b Z0 (q0; bZ0)3 q0 a Z (q0; aZ) Z = a ή b4 q0 b Z (q0; bZ) Z = a ή b5 q0 ² Z0 (q1; Z0)6 q0 ² Z (q1; Z) Z = a ή b7 q1 a a (q1; ²)8 q1 b b (q1; ²)9 q1 ² Z0 (q2; Z0)

(Οι υπόλοιποι συνδυασμοί) (Τίποτα)

Page 182: αυτόματα και τυπικές γλώσσες dimitriou

170 Αυτόματα Στοίβας

Ίσως η λειτουργία της μηχανής γίνει ακόμη περισσότερο κατανοητή αν την\τρέξουμε" με κάποια είσοδο. Ο πίνακας που ακολουθεί δείχνει βήμα προς βήματη λειτουργία της μηχανής για τη συμβολοσειρά x = abba.

ΑριθμόςΚίνησης

ΕπόμενηΚατάσταση

Συμβολοσειράπου Απομένει Σωρός Επεξηγήσεις

q0 abba Z0 Αρχικοποίηση1 q0 bba aZ04 q0 ba baZ06 q1 ba baZ0 Μέση συμβολοσειράς8 q1 a aZ08 q1 ¡ Z09 q2 ¡ Z0 Αναγνώριση

Ας δούμε τώρα τι γίνεται και για μια συμβολοσειρά η οποία δεν πρέπει να γίνειδεκτή, όπως η x = abbb.

ΑριθμόςΚίνησης

ΕπόμενηΚατάσταση

Συμβολοσειράπου Απομένει Σωρός Επεξηγήσεις

q0 abbb Z0 Αρχικοποίηση1 q0 bbb aZ04 q0 bb baZ06 q1 bb baZ0 Μέση συμβολοσειράς8 q1 b aZ0

\Πάγωμα" μηχανής

Εφόσον δεν υπάρχει τρόπος να ταιριάξει το σύμβολο σωρού με την είσοδο συμπεραί-νουμε ότι η μηχανή δεν μπορεί ν, αναγνωρίσει τη συμβολοσειρά.

8.1Δώστε ένα αυτόματο στοίβας για τη γλώσσα

L = fanb2nj n ¸ 0g.

ΆσκησηΑυτοαξιολόγησης8.1

8.2 Ορισμοί

Μηχανές όπως η προηγούμενη ονομάζονται αυτόματα στοίβας και δρουνκυρίως μη ντετερμινιστικά. Ένας τυπικός ορισμός ακολουθεί στη συνέχεια.

Page 183: αυτόματα και τυπικές γλώσσες dimitriou

Ορισμοί 171

8.1Ένα αυτόματο στοίβας ή σωρού (θα γράφουμε ΑΣ), είναι μια 7-άδα (Q;§;¡; q0; Z0; ±; F ),όπου Q είναι ένα πεπερασμένο σύνολο καταστάσεων, § και ¡ είναι αντίστοιχα τααλφάβητα των συμβόλων εισόδου και σωρού, q0 2 Q είναι η αρχική κατάσταση, Z0 2 ¡είναι το αρχικό σύμβολο του σωρού,

± : Q£ (§ [ ²)£ ¡! (πεπερασμένα υποσύνολα του) Q£ ¡¤

είναι η συνάρτηση μετάβασης και F µ Q είναι το σύνολο των τελικών καταστάσεων.

Ορισμός 8.1

8.2Δείξτε ότι για κάθε απλό αυτόματοM υπάρχει ένα αυτόματο στοίβαςM 0 που αναγνωρίζειτην ίδια γλώσσα.

ΆσκησηΑυτοαξιολόγησης

8.2

Για να ορίσουμε τις γλώσσες που γίνονται δεκτές από τα αυτόματα στοίβαςχρειάζεται να ξέρουμε όχι μόνο την κατάσταση στην οποία μεταβαίνει το αυτόματοαλλά και τα περιεχόμενα του σωρού. Ο λόγος είναι ότι, ενώ στα απλά αυτόματαη κίνηση εξαρτάται μόνο από το τρέχον σύμβολο, στα ΑΣ η κίνηση εξαρτάταικαι από το σύμβολο στην κορυφή του σωρού. Αφού μια τέτοια κίνηση μπορείνα μεταβάλλει σημαντικό τμήμα του σωρού, χρειάζεται να φυλάμε όλη αυτή τηνπληροφορία, ακριβώς όπως κάναμε όταν παρακολουθήσαμε βήμα προς βήμα τηλειτουργία της μηχανής στο Παράδειγμα 8.1.8.2Μια στιγμιαία περιγραφή (ΣΠ) ενός αυτόματου στοίβας M είναι μια 3-άδα (q; x; ®), όπουq είναι η τρέχουσα κατάσταση του M , x 2 §¤ είναι το τμήμα της συμβολοσειράς πουαπομένει να διαβαστεί και ® 2 ¡¤ είναι τα περιεχόμενα του σωρού με το αριστερότεροσύμβολο του ® ν, αντιστοιχεί στην κορυφή του σωρού.

Ορισμός 8.2

Αν M = (Q;§;¡; q0; Z0; ±; F ) είναι ένα αυτόματο στοίβας θα γράφουμε

(q; ax; Z¯) j=M (p; x; ®¯)

και θα λέμε ότι η περιγραφή (q; ax; Z¯) παράγει σ, ένα βήμα την περιγραφή(p; x; ®¯), αν και μόνο αν το αυτόματο από την κατάσταση q, διαβάζοντας τοa και έχοντας το σύμβολο Z στην κορυφή του σωρού, μεταβαίνει στην κατάστασηp και αντικαθιστά το Z με ®, ή αλλιώς αν η ±(q; a; Z) περιέχει την κίνηση(p; ®). Προσέξτε ότι αν a = ², η κενή συμβολοσειρά, τότε απλά η νέα περιγραφήαντιστοιχεί σε μια ²-κίνηση, η οποία αλλάζει την κατάσταση τουM και αντικαθιστάτα περιεχόμενα του σωρού. Σε αντιστοιχία με τις γραμματικές, θα γράφουμε(q; x; ®) j=¤M (p; y; ¯), αν η (q; x; ®) παράγει την (p; y; ¯) σε μηδέν ή περισσότερα Παράγει (\j=")βήματα. Μπορούμε τώρα να ορίσουμε τις γλώσσες που γίνονται δεκτές από τααυτόματα στοίβας.

Page 184: αυτόματα και τυπικές γλώσσες dimitriou

172 Αυτόματα Στοίβας

8.3Έστω M = (Q;§;¡; q0; Z0; ±; F ) ένα αυτόματο στοίβας. Μια συμβολοσειρά x 2 §¤γίνεται δεκτή από το M με τελική κατάσταση, αν

(q0; x; Z0) j=¤M (f; ²; ®)

για κάποιο ® 2 ¡¤ και f 2 F . H x γίνεται δεκτή από το M με άδειο σωρό αν

(q0; x; Z0) j=¤M (q; ²; ²)

για κάποια q 2 Q. Αντίστοιχα, οι γλώσσες Lf (M) και Le(M) είναι τα σύνολα τωνσυμβολοσειρών που γίνονται δεκτές από το M με τελική κατάσταση και άδειο σωρό.

Ορισμός 8.3

Στην πρώτη περίπτωση, υπάρχει μια ακολουθία κινήσεων που οδηγεί το αυτό-ματο M από την αρχική ΣΠ (q0; x; Z0) σε μια όπου η κατάσταση του M είναιτελική και όλα τα σύμβολα του x έχουν διαβαστεί. Σ, αυτή την περίπτωση ταπεριεχόμενα του σωρού δε μας ενδιαφέρουν. Αντίθετα, στη δεύτερη επικεντρώνου-με την προσοχή μας στο σωρό. Αν διαβάζοντας το τελευταίο σύμβολο, ο σωρόςδεν περιέχει τίποτα, τότε η συμβολοσειρά ανήκει στη γλώσσα ανεξάρτητα από τηνκατάσταση που καταλήγει το M . Σ, αυτή την περίπτωση το σύνολο F μπορεί ναείναι κενό.

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

8.3Δώστε ένα αυτόματο στοίβας που αναγνωρίζει με άδειο σωρό τη γλώσσα L τουΠαραδείγματος 8.1.

ΆσκησηΑυτοαξιολόγησης8.3

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

Θεώρημα 8.1. Μια γλώσσα L αναγνωρίζεται με τελική κατάσταση από ένααυτόματο στοίβας M , αν και μόνο αν αναγνωρίζεται με άδειο σωρό από ένααυτόματο στοίβας M 0.

Page 185: αυτόματα και τυπικές γλώσσες dimitriou

Ορισμοί 173

Απόδειξη: Πρώτα θα δείξουμε ότι, αν η L αναγνωρίζεται με τελική κατάστα-ση από ένα ΑΣ M = (Q;§;¡; q0; Z0; ±; F ), τότε αναγνωρίζεται με άδειοσωρό από ένα ΑΣ M 0 = (Q0;§;¡0; q00; Z0; ±0;Â).

Η ιδέα είναι το M 0 να εξομοιώνει τη λειτουργία του M ώστε καθώς τα δύοαυτόματα επεξεργάζονται την είσοδο, ο σωρός του M 0 να είναι άδειος, όταντο M μεταβαίνει σε μια τελική κατάσταση. Αυτό μπορούμε εύκολα να τοπετύχουμε προσθέτοντας μερικές καταστάσεις στο M , οι οποίες αδειάζουν τοσωρό, όταν το M μπαίνει σε μια τελική κατάσταση. Τι γίνεται όμως στηνπερίπτωση που τοM αδειάσει το σωρό του κατά λάθος, όπως για παράδειγμαστην περίπτωση κάποιας συμβολοσειράς x, που, ενώ δεν οδηγεί τοM σε μιατελική κατάσταση, ωστόσο έχει αδειάσει το σωρό; Δυστυχώς, σ, αυτή τηνπερίπτωση η x θα αναγνωριστεί από το M 0 σύμφωνα με τον Ορισμό 8.3,αφού το M 0 κατά τ, άλλα είναι αντίγραφο του M .

Για να μη συμβεί αυτό θα προσθέσουμε ένα άλλο σύμβολο ? στο σωρό,κάτω από το Z0. Έτσι, ο σωρός δε θα αδειάσει ποτέ κατά λάθος. Μόλις τοM μεταβεί σε κάποια τελική κατάσταση f 2 F , τότε το M 0 θα μπει σε μιακατάσταση qe, χρησιμοποιώντας ²-κινήσεις, απ

, όπου θα αδειάσει εντελώς τοσωρό του. Η περιγραφή του M 0 φαίνεται στη συνέχεια:

Q0 = Q [ fq00; qeg¡0 = ¡ [ f?g, όπου ?62 ¡

Η συνάρτηση μετάβασης ±0 ορίζεται ως εξής:

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

q00 ² Z0 (q0; Z0?) Τοποθέτηση ?(Οι υπόλοιπες κινήσεις όπως στο M )

f ² Z (qe; Z) Για κάθε f 2 Fqe ² Z (qe; ²) και Z 2 ¡0

Με την πρώτη κίνηση το M 0 τοποθετεί το σύμβολο ? κάτω από το Z0και από το σημείο αυτό λειτουργεί όπως θα λειτουργούσε το M πάνω στησυμβολοσειρά εισόδου. Αν το M την αναγνωρίσει μεταβαίνοντας σε μιακατάσταση f 2 F , τότε τοM 0 μεταβαίνει στην qe απ

, όπου αδειάζει το σωρότου.

Έστω x 2 Lf (M). Τότε από τον ορισμό (q0; x; Z0) j=¤M (f; ²; ®) για κάποιαf 2 F και ® 2 ¡¤. Εφόσον όμως κάθε κίνηση του M είναι κίνηση και τουM 0, θα ισχύει επίσης (q0; x; Z0) j=¤M 0 (f; ²; ®).

Παρατήρηση: Προσέξτε ότι, αν ένα αυτόματο μπορεί να εκτελέσει μιαακολουθία κινήσεων, ξεκινώντας από κάποια ΣΠ1 με τη συμβολοσειρά ®στο σωρό, θα μπορεί να εκτελέσει την ίδια ακολουθία ξεκινώντας από μιαπεριγραφή που προκύπτει από τη ΣΠ1 με την προσθήκη κάποιων συμβόλων

Page 186: αυτόματα και τυπικές γλώσσες dimitriou

174 Αυτόματα Στοίβας

κάτω από το ®. Δηλαδή, αν

(q; x; ®) j=¤M 0 (p; y; ¯)

τότε επίσης θα ισχύει και

(q; x; ®°) j=¤M 0 (p; y; ¯°)

για κάποιο ° 2 ¡¤. Η απόδειξη αυτή αφήνεται στην Άσκηση 8.2. Θα έχουμελοιπόν

(q00; x; Z0) j=M 0 (q0; x; Z0?) Πρώτη κίνησηj=¤M 0 (f; ²; ®?) Παραπάνω παρατήρησηj=M 0 (qe; ²; ®?) Μετάβαση στην qej=¤M 0 (qe; ²; ²) Άδειασμα σωρού

Άρα x 2 Le(M 0) και επομένως Lf (M) µ Le(M 0).

Έστω τώρα x 2 Le(M 0). Ο μόνος τρόπος για να αφαιρεθεί το ? από τοσωρό είναι να φτάσει το αυτόματο στην κατάσταση qe. Θα έχουμε λοιπόν

(q00; x; Z0) j=M 0 (q0; x; Z0?) j=¤M 0 (qe; ²;?) j=M 0 (qe; ²; ²)

Εφόσον η κατάσταση qe προσπελαύνεται μόνο από τελικές καταστάσεις, θαισχύει (q0; x; Z0?) j=¤M 0 (f; ²; ®?), για κάποια f 2 F και ® 2 ¡¤. Σύμφωναόμως με την παρατήρηση που κάναμε παραπάνω θα έχουμε (q0; x; Z0) j=¤M 0

(f; ²; ®) και επειδή τα δύο αυτόματα εκτελούν κατά τα άλλα τις ίδιες κινήσειςθα ισχύει επίσης (q0; x; Z0) j=¤M (f; ²; ®). Άρα x 2 Lf (M) και επομένωςLe(M

0) µ Lf (M), δηλαδή οι δύο γλώσσες είναι ίδιες.

Για να ολοκληρωθεί η απόδειξη του θεωρήματος θα πρέπει επίσης να δείξουμεότι αν η L αναγνωρίζεται με άδειο σωρό από ένα ΑΣM 0 = (Q0;§;¡0; q00; Z0;±0;Â) τότε αναγνωρίζεται με τελική κατάσταση από ένα ΑΣM = (Q;§;¡; q0;

Z0; ±; F ).

Η απόδειξη όμως αυτή είναι παρόμοια με το πρώτο μέρος και αφήνεται ωςΆσκηση 8.3.

Θα κλείσουμε αυτή την ενότητα με το θέμα του ντετερμινισμού στα αυτόματαστοίβας. Γενικά, ένα αυτόματο στοίβας θα είναι ντετερμινιστικό αν για κάθεΝτετερμινιστικά

ΑΣστιγμιαία περιγραφή υπάρχει μόνο μία δυνατή επόμενη κίνηση. Το αυτόματο τουΠαραδείγματος 8.1 δεν είναι ντετερμινιστικό, γιατί από την περιγραφή (q0; ba; baZ0)υπάρχουν δύο δυνατές κινήσεις: μια προς την (q1; ba; baZ0) και μια προς την(q0; a; bbaZ0). Η πρώτη μεταφέρει το αυτόματο στην κατάσταση q1 χρησιμοποιώ-ντας την ²-μετάβαση 8 του Πίνακα 8.1, ενώ η δεύτερη απλά τοποθετεί το b στοσωρό, χρησιμοποιώντας τη μετάβαση 4, με Z = b.

Ο λόγος για τον οποίο το αυτόματο δεν είναι ντετερμινιστικό δεν είναι τόσο ηύπαρξη κινήσεων της μορφής ±(q; ²; Z), αλλά η ταυτόχρονη ύπαρξη κινήσεων τηςμορφής ±(q; a; Z), για κάποιο σύμβολο a 2 §. Οι παρατηρήσεις αυτές οδηγούνστον ακόλουθο ορισμό:

Page 187: αυτόματα και τυπικές γλώσσες dimitriou

Ισοδυναμία με Γραμματικές ΑΣ 175

8.4Ένα αυτόματο στοίβας M = (Q;§;¡; q0; Z0; ±; F ) είναι ντετερμινιστικό αν ισχύουν ταπαρακάτω:

1. Για κάθε q 2 Q, a 2 §[f²g και Z 2 ¡, η ±(q; a; Z) περιέχει το πολύ μια επόμενηκίνηση.

2. Για κάθε q 2 Q και Z 2 ¡, αν ±(q; ²; Z) 6= Â, τότε για οποιοδήποτε a 2 §,±(q; a; Z) = Â.

Ορισμός 8.4

Αν και, όπως είδαμε στο Κεφάλαιο 5, τα μη ντετερμινιστικά αυτόματα είναιισοδύναμα με τα ντετερμινιστικά, δεν ισχύει το ίδιο και με τ, αυτόματα στοίβας.Τα μη ντετερμινιστικά αποδεικνύονται ισχυρότερα των ντετερμινιστικών. Έτσι, ηγλώσσα του Παραδείγματος 8.1 δεν μπορεί να γίνει δεκτή από ένα ντετερμινιστικόαυτόματο στοίβας.8.4Σχεδιάστε ένα ντετερμινιστικό αυτόματο στοίβας που αναγνωρίζει τη γλώσσα L = fx 2f0; 1g¤j ο αριθμός των 0 στη x είναι ίσος με τον αριθμό των 1g.

ΆσκησηΑυτοαξιολόγησης

8.4

8.3 Ισοδυναμία με Γραμματικές ΑΣ

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

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

παραγωγώνG. Οι κινήσεις του λοιπόν θα είναι δύο ειδών:

1. Να ταιριάζει το σύμβολο του σωρού με το σύμβολο εισόδου και να το αφαιρείαπό το σωρό, αν δεν είναι μεταβλητή.

2. Να αντικαθιστά μια μεταβλητή A στο σωρό με το δεξιό μέρος ®, αν A! ®

είναι ένας κανόνας της G.

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

Page 188: αυτόματα και τυπικές γλώσσες dimitriou

176 Αυτόματα Στοίβας

Θεώρημα 8.2. Κάθε γλώσσα ανεξάρτητη συμφραζόμενων αναγνωρίζεται απόένα αυτόματο στοίβας.

Απόδειξη: Έστω G = (V;§; S;R) μια γραμματική ΑΣ. Το αυτόματο M =

(Q;§;¡; q0; Z0; ±; F ), που εξομοιώνει τη G, δίνεται από τα παρακάτω:Q = fq0; q1; fg¡ = V [ § [ fZ0g, όπου Z0 62 V [ §F = ffg

Η συνάρτηση μετάβασης ± ορίζεται ως εξής:

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

0 q0 ² Z0 (q1; SZ0) Τοποθέτηση S.

1 q1 a a (q1; ²)Ταίριασμα συμβόλων,για κάθε a 2 §.

2 q1 ² A (q1; ®)Αντικατάσταση A με ®,για κάθε κανόνα A! ®.

3 q1 ² Z0 (f; Z0)

Πρώτα θα δείξουμε ότι L(G) µ L(M). Εκείνο που θα θέλαμε είναι να ισχύεικάποιος ισχυρισμός της μορφής

\Αν S ¤) x τότε (q0; x; Z0) j=¤ (f; ²; Z0)."

Αντί όμως γι, αυτόν θα δείξουμε τον ακόλουθο ισχυρισμό:

\Αν S ¤) x®, όπου x 2 §¤ και ® 2 V (V [ §)¤ [ f²g,τότε (q0; x; Z0) j=¤ (q1; ²; ®Z0)."

Παρατηρήστε ότι το ζητούμενο προκύπτει θέτοντας ® = ². Τότε (q0; x; Z0) j=¤(q1; ²; Z0) j= (f; ²; Z0) ή αλλιώς x 2 L(M).Αυτό που λέει ο παραπάνω ισχυρισμός είναι ότι, αν x® είναι μια συμβολοσειράπου προκύπτει από μια αριστερή παραγωγή της G, όπου x 2 §¤ και ®αρχίζει με μεταβλητή, τότε το αυτόματο θα ταιριάξει τα σύμβολα της x μεσύμβολα από το σωρό και θα αφήσει σ, αυτόν το ®. Για την απόδειξη θαχρησιμοποιήσουμε επαγωγή στο μήκος n μιας παραγωγής του x®.

Βάση: Αν η παραγωγή έχει μήκος 0, τότε x = ² και ® = S. Αλλά τότε(q0; ²; Z0) j= (q1; ²; SZ0), με την κίνηση 0, και η βάση είναι αληθής.

Επαγωγική Υπόθεση: Έστω ότι, αν S ¤) x®, με μια παραγωγή μήκουςn ∙ k, τότε (q0; x; Z0) j=¤ (q1; ²; ®Z0).Επαγωγικό Βήμα: Θεωρήστε μια παραγωγή k + 1 βημάτων του x®. Το kπρώτα βήματα θα έχουν παράγει κάποια συμβολοσειρά της μορφής x1A°,όπου η x1 αποτελείται μόνο από τελικά σύμβολα, A 2 V και ° 2 (V [ §)¤.Από την επαγωγική υπόθεση θα ισχύει λοιπόν

(q0; x1; Z0) j=¤ (q1; ²; A°Z0) (8.1)

Page 189: αυτόματα και τυπικές γλώσσες dimitriou

Ισοδυναμία με Γραμματικές ΑΣ 177

Για να προκύψει η x® στο βήμα k + 1, θα πρέπει ν, αντικατασταθεί ημεταβλητή A με τη χρήση κάποιου κανόνα της μορφής A ! x2¯, όπουx2 2 §¤ και ¯ 2 (V [ §)¤, αφού η παραγωγή είναι αριστερή. Θα έχουμελοιπόν

S¤) x1A° ) x1x2¯° = x®

από το οποίο προκύπτει ότι x = x1x2 και ® = ¯°. Ισοδύναμα, το αυτόματομε είσοδο x = x1x2 θα εκτελέσει τις κινήσεις

(q0; x; Z0) = (q0; x1x2; Z0)j=¤ (q1; x2; A°Z0) Από την Σχέση (8.1)j= (q1; x2; x2¯°Z0) Κίνηση τύπου 2, αφού A! x2¯j=¤ (q1; ²; ¯°Z0) Κινήσεις τύπου 1, ταίριασμα συμβόλων= (q1; ²; ®Z0) Αφού ® = ¯°

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

αν (q0; x1; Z0) j=¤ (q1; ²; A°Z0), τότε (q0; x1x2; Z0) j=¤ (q1; x2; A°Z0)

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

Θα δείξουμε τώρα το αντίστροφο, δηλαδή ότι L(M) µ L(G), αποδεικνύονταςτον ισχυρισμό

\Αν (q1; x; SZ0) j=¤ (q1; ²; ®Z0), όπου x 2 §¤ και ® 2(V [§)¤,

τότε S ¤) x®."

Παρατηρήστε ότι αν ® = ², τότε x 2 L(M), αφού το αυτόματο χρησιμοποιείτην κίνηση 0 για να σπρώξει το S στο σωρό και την κίνηση 3 για να μεταβείστην τελική κατάσταση f . Αλλά τότε επίσης x 2 L(G) και το ζητούμενοπροκύπτει. Θα αποδείξουμε τον παραπάνω ισχυρισμό χρησιμοποιώντας επα-γωγή, αυτή τη φορά στο μήκος n μιας ακολουθίας κινήσεων του αυτόματου.

Βάση: Αν η ακολουθία έχει μήκος 0, τότε (q1; x; SZ0) = (q1; ²; ®Z0). Άραθα ισχύει x = ² και ® = S και προφανώς S ¤) S.

Επαγωγική Υπόθεση: Έστω ότι, αν (q1; x; SZ0) j=¤ (q1; ²; ®Z0), με μιαακολουθία n ∙ k βημάτων, τότε S ¤) x®.

Επαγωγικό Βήμα: Έστω (q1; x; SZ0) j=¤ (q1; ²; ®Z0) σε k+1 βήματα. Γιατα k πρώτα θα έχουμε (q1; x; SZ0) j=¤ (q1; a; °Z0) ενώ για το τελευταίο(q1; a; °Z0) j= (q1; ²; ®Z0), για κάποια a 2 § [ f²g και ° 2 (V [ §)¤. Θαισχύει λοιπόν x = ya για κάποιο y 2 §¤. Από την επαγωγική υπόθεση όμωςγια τα k πρώτα βήματα παίρνουμε (q1; y; SZ0) j=¤ (q1; ²; °Z0) και επομένωςS

¤) y°.

Page 190: αυτόματα και τυπικές γλώσσες dimitriou

178 Αυτόματα Στοίβας

Η τελευταία όμως κίνηση θα είναι είτε μια κίνηση τύπου 2, είτε μια κίνησητύπου 3. Στην πρώτη περίπτωση, a 2 §, η κίνηση έχει τη μορφή (q1; a; a®Z0) j=(q1; ²; ®Z0) και ταιριάζει το τελευταίο σύμβολο εισόδου με το σύμβολο στοσωρό. Άρα ° = a® και επομένως S ¤) y° = ya® = x®.

Στη δεύτερη περίπτωση, a = ², η κίνηση έχει τη μορφή (q1; ²; B±Z0) j=(q1; ²; ¯±Z0) και αντικαθιστά μια μεταβλητή B με το δεξιό μέρος του κανόναB ! ¯. Άρα y = x, ° = B±, ® = ¯± και επομένως S ¤) xB± ) x¯± = x®.

8.2Θεωρήστε τη γραμματική G = (fSg; f0; 1g; S; fS ! 0S1 j ²g), η οποία παράγει τηγλώσσα L = f0n1nj n ¸ 0g. Εφαρμόζοντας τις ιδέες του Θεωρήματος 8.2 παίρνουμε τοαυτόματο M = (fq0; q1; fg;§;¡; q0; Z0; ±; ffg), όπου § = f0; 1g, ¡ = fS;Z0; 0; 1g και± όπως παρακάτω:

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

0 q0 ² Z0 (q1; SZ0)1.1 q1 0 0 (q1; ²) Ταίριασμα 01.2 q1 1 1 (q1; ²) Ταίριασμα 12.1 q1 ² S (q1; 0S1) S ! 0S12.2 q1 ² S (q1; ²) S ! ²3 q1 ² Z0 (f; Z0)

(Οι υπόλοιποι συνδυασμοί) (Τίποτα)

Οι κινήσεις του αυτόματου καθώς αναγνωρίζει τη συμβολοσειρά x = 0011 φαίνονταιστον ακόλουθο πίνακα. Κάθε κίνηση στην οποία μια μεταβλητή αντικαθίσταται απόμια συμβολοσειρά στο σωρό αντιστοιχεί σ, ένα βήμα μιας αριστερής παραγωγής τηςγραμματικής. Τα βήματα αυτά φαίνονται στη στήλη \Παραγωγή".

ΑριθμόςΚίνησης

ΕπόμενηΚατάσταση

Συμβολοσειράπου Απομένει Σωρός Παραγωγή

q0 0011 Z00 q1 0011 SZ0 S

2.1 q1 0011 0S1Z0 ) 0S11.1 q1 011 S1Z02.1 q1 011 0S11Z0 ) 00S111.1 q1 11 S11Z02.2 q1 11 11Z0 ) 00111.2 q1 1 1Z01.2 q1 ¡ Z03 f ¡ Z0

Παράδειγμα 8.2

Θα προχωρήσουμε τώρα να δείξουμε το αντίστροφο του Θεωρήματος 8.2, ότι οιγραμματικές μπορούν να εξομοιώσουν τη λειτουργία των αυτόματων στοίβας. Στο

Page 191: αυτόματα και τυπικές γλώσσες dimitriou

Ισοδυναμία με Γραμματικές ΑΣ 179

πρώτο μέρος είδαμε ότι, αν μια γραμματική G έχει παράγει μια συμβολοσειρά x®,τότε το ισοδύναμο αυτόματοM έχει διαβάσει το x και στο σωρό του υπάρχει το ®.Τώρα θα απαιτήσουμε το αντίστροφο: η συμβολοσειρά x που έχει διαβαστεί μέχρικάποια στιγμή από το M θα είναι το αρχικό τμήμα μιας αριστερής παραγωγής τηςG, ενώ ότι απομένει στο σωρό θα αντιστοιχεί στο υπόλοιπο της παραγωγής. Άρα, ταπεριεχόμενα του σωρού θα πρέπει ν, αντιστοιχούν σε μεταβλητές της γραμματικής.Με μια μικρή λεπτομέρεια όμως. Οι μεταβλητές θα πρέπει να τροποποιηθούν ώστενα λαμβάνουν υπόψη τους και τις καταστάσεις του αυτόματου. Θα τους δώσουμελοιπόν τη μορφή

[p; Z; q]

ώστε να αντιστοιχούν σε μια ακολουθία κινήσεων που οδηγούν το αυτόματο απότην κατάσταση p στην κατάσταση q έχοντας σαν αποτέλεσμα την απομάκρυνσητου Z από το σωρό. Τι γίνεται όμως στην περίπτωση όπου το αυτόματο διαβάζειτο σύμβολο a, μεταβαίνει από την κατάσταση p στην q1 και αντικαθιστά το Z στοσωρό με Z1Z2 ¢ ¢ ¢Zn; Σ, αυτή την περίπτωση θα πρέπει να παραχθεί το a από τηγραμματική, εφόσον η παραγόμενη συμβολοσειρά πρέπει ν, αντιστοιχεί στην είσοδοπου έχει διαβαστεί μέχρι αυτή τη στιγμή. Θα πρέπει όμως ν, απομακρυνθούν καιτα Zi από το σωρό πριν μεταβούμε στην κατάσταση q. Ας υποθέσουμε λοιπόνότι ξεκινώντας από την q1 με μια ακολουθία κινήσεων καταλήγουμε σε κάποιακατάσταση q2 με απομάκρυνση του Z1 από το σωρό, από την q2 σε κάποια q3 μεαπομάκρυνση του Z2 , . . . , από την qn¡1 σε κάποια qn με απομάκρυνση του Zn¡1και τέλος από την qn στην q με απομάκρυνση του Zn. Εφόσον οι καταστάσειςq2; : : : ; qn μπορεί να είναι οποιεσδήποτε, στη γραμματική θα πρέπει να υπάρχουνοι κανόνες

[p; Z; q]! a[q1; Z1; q2][q2; Z2; q3] ¢ ¢ ¢ [qn¡1; Zn¡1; qn][qn; Zn; q]

για όλους τους δυνατούς συνδυασμούς καταστάσεων q2; : : : ; qn, με την προϋπόθεσηφυσικά ότι η ±(p; a; Z) περιέχει την (q1; Z1Z2 ¢ ¢ ¢Zn). Αν όμως η κίνηση απλάβγάζει το σύμβολο Z από το σωρό, τότε η γραμματική θα περιέχει τον κανόνα

[p; Z; q]! a

Για ν, απλοποιήσουμε τη συζήτηση θα θεωρήσουμε ότι το αυτόματο αναγνωρίζειτη συμβολοσειρά με άδειο σωρό, αφού σύμφωνα με το Θεώρημα 8.1 κάτι τέτοιοείναι δυνατό. Πώς θα αρχίζει λοιπόν μια παραγωγή της G; Γνωρίζουμε ότι q0 είναιη αρχική κατάσταση του αυτόματου. Εφόσον σκοπός μας είναι τελικά ν, αφαιρεθείτο αρχικό σύμβολο Z0 από το σωρό (αναγνώριση με άδειο σωρό), αν S είναι ηαρχική μεταβλητή της G, τότε στη γραμματική θα πρέπει να υπάρχει ο κανόνας

S ! [q0; Z0; q]

Page 192: αυτόματα και τυπικές γλώσσες dimitriou

180 Αυτόματα Στοίβας

για οποιαδήποτε κατάσταση q.

Θεώρημα 8.3. Κάθε γλώσσα που αναγνωρίζεται από ένα αυτόματο στοίβαςείναι ανεξάρτητη συμφραζόμενων.

Απόδειξη: Έστω M = (Q;§;¡; q0; Z0; ±;Â) ένα αυτόματο στοίβας. Ηγραμματική G = (V;§; S;R) που εξομοιώνει τη λειτουργία του M ορίζεταιόπως παρακάτω:

V = fSg [ f[p; Z; q] j για κάθε p; q 2 Q και Z 2 ¡g.Το σύνολο R περιέχει τους παρακάτω κανόνες:

1. S ! [q0; Z0; q], για κάθε q 2 Q.

2. [p; Z; q]! a, για κάθε p; q 2 Q, a 2 §[ f²g και Z 2 ¡ τέτοια ώστε η±(p; a; Z) περιέχει την κίνηση (q; ²).

3. [p; Z; qn+1]! a[q1; Z1; q2][q2; Z2; q3] ¢ ¢ ¢ [qn¡1; Zn¡1; qn][qn; Zn; qn+1],n ¸ 1, για κάθε p; q1; q2; : : : ; qn+1 2 Q, a 2 §[f²g και Z;Z1; Z2; : : : ;Zn 2 ¡ τέτοια ώστε η ±(p; a; Z) περιέχει την κίνηση (q1; Z1Z2 ¢ ¢ ¢Zn).

Για να δείξουμε ότι L(G) = L(M) θα αποδείξουμε τον ακόλουθο ισχυρισμό:

\(p; x; Z) j=¤ (q; ²; ²) αν και μόνο αν [p; Z; q] ¤) x,για κάθε p; q 2 Q, Z 2 ¡ και x 2 §¤."

Παρατηρήστε ότι ο παραπάνω ισχυρισμός αρκεί για την απόδειξη του Θεωρή-ματος 8.3. Αν x 2 Le(M), τότε (q0; x; Z0) j=¤ (q; ²; ²), για κάποια q 2Q. Αλλά τότε επίσης [q0; Z0; q]

¤) x. Εφόσον όμως S ! [q0; Z0; q] είναικανόνας της G, συμπεραίνουμε ότι S ¤) x ή x 2 L(G). Αντίστροφα, αν x 2L(G) τότε S ) [q0; Z0; q]

¤) x, για κάποια q 2 Q. Αλλά τότε (q0; x; Z0) j=¤(q; ²; ²) ή x 2 Le(M).Στο πρώτο μέρος θα χρησιμοποιήσουμε επαγωγή στο μήκος n μιας ακολουθίαςκινήσεων του αυτόματου για να δείξουμε ότι

\Αν (p; x; Z) j=¤ (q; ²; ²), τότε [p; Z; q] ¤) x."

Βάση: Αν n = 1, τότε η x είναι είτε κάποιο σύμβολο ® 2 § ή ². Σεκάθε περίπτωση η ±(p; x; Z) περιέχει την (q; ²). Όμως από τον ορισμό τηςγραμματικής (κανόνας 2) θα ισχύει [p; Z; q]) x και η βάση είναι αληθής.

Επαγωγική Υπόθεση: Έστω ότι ο ισχυρισμός είναι αληθής για όλες τιςακολουθίες μήκους n ∙ k.

Επαγωγικό Βήμα: Θα δείξουμε ότι το ίδιο ισχύει και για μια ακολουθίαμήκους k + 1, k ¸ 1. Παρατηρήστε κατ, αρχήν ότι το x μπορεί να γραφείστη μορφή x = ay, για κάποιο a 2 § [ f²g και y 2 §¤.

Το πρώτο βήμα σε μια τέτοια ακολουθία θα αφορά το διάβασμα του a, τημετάβαση σε μια κατάσταση q1 και την αντικατάσταση του Z στο σωρό με

Page 193: αυτόματα και τυπικές γλώσσες dimitriou

Ισοδυναμία με Γραμματικές ΑΣ 181

μια συμβολοσειρά Z1Z2 ¢ ¢ ¢Zm, για κάποια Zi 2 ¡. Έτσι, η ±(p; a; Z) θαπεριέχει την (q1; Z1Z2 ¢ ¢ ¢Zm) και η πρώτη κίνηση του αυτόματου θα έχειτη μορφή

(p; x; Z) = (p; ay; Z) j= (q1; y; Z1Z2 ¢ ¢ ¢Zm)

Θυμηθείτε τώρα ότι στο τέλος των k + 1 κινήσεων ο σωρός θα πρέπει ν,

αδειάσει. Αυτό σημαίνει ότι θα υπάρχουν συμβολοσειρές y1; y2; : : : ; ym 2 §¤τέτοιες ώστε για κάθε i, 1 ∙ i ∙ m, το αυτόματο περνάει από την κατάστασηqi σε κάποια κατάσταση qi+1, διαβάζοντας τη yi και απομακρύνοντας τη Ziαπό το σωρό, δηλαδή, αφήνοντας σ, αυτόν τη Zi+1 ¢ ¢ ¢Zm. (Αν i = m

τότε το αυτόματο περνάει από την qm στην qm+1 = q και ο σωρός αδειάζειεντελώς.) Επιπλέον, θα ισχύει y = y1y2 ¢ ¢ ¢ ym και για κάθε 1 ∙ i ∙ m,(qi; yi; Zi) j=¤ (qi+1; ²; ²). Από την επαγωγική υπόθεση όμως θα έχουμε[qi; Zi; qi+1]

¤) yi, ενώ από το πρώτο βήμα του αυτόματου, στη γραμματικήθα υπάρχει ο κανόνας (τύπου 3)

[p; Z; q]! a[q1; Z1; q2][q2; Z2; q3] ¢ ¢ ¢ [qm¡1; Zm¡1; qm][qm; Zm; q],

γιατί qm+1 = q. Συνδέοντας τα επιμέρους κομμάτια μεταξύ τους, καταλήγου-με στο ζητούμενο,

[p; Z; q]¤) ay1y2 ¢ ¢ ¢ ym = ay = x

Στο δεύτερο μέρος, χρησιμοποιώντας επαγωγή στο μήκος n μιας παραγωγής,θα δείξουμε ότι

\Αν [p; Z; q] ¤) x τότε (p; x; Z) j=¤ (q; ²; ²)."

Βάση: Έστω [p; Z; q] ) x. Τότε η x είναι είτε κάποιο σύμβολο ® 2 § ή². Από τον ορισμό των κανόνων αυτό σημαίνει ότι η ±(p; x; Z) περιέχει την(q; ²), άρα (p; x; Z) j= (q; ²; ²).Επαγωγική Υπόθεση: Έστω ότι ο ισχυρισμός είναι αληθής για όλες τιςπαραγωγές μήκους n ∙ k.

Επαγωγικό Βήμα: Θα δείξουμε ότι το ίδιο ισχύει και για μια παραγωγήμήκους k + 1, k ¸ 1. Το πρώτο βήμα μιας τέτοιας παραγωγής θα έχει τημορφή

[p;Z; q]) a[q1; Z1; q2][q2; Z2; q3] ¢ ¢ ¢ [qm¡1; Zm¡1; qm][qm; Zm; q]

για κάποια ακολουθία καταστάσεων q1; : : : ; qm 2 Q, a 2 § [ f²g καιZ1Z2 ¢ ¢ ¢Zm 2 ¡, έτσι ώστε η ±(q; a; Z) περιέχει την (q1; Z1Z2 ¢ ¢ ¢Zm).Εφόσον όμως η γραμματική παράγει τη x, κάθε [qi; Zi; qi+1] θα παράγεικάποια συμβολοσειρά xi, ώστε να ισχύει x = ax1x2 ¢ ¢ ¢xm. Εφαρμόζονταςτην επαγωγική υπόθεση θα έχουμε για κάθε 1 ∙ i ∙ m

(qi; xi; Zi) j=¤ (qi+1; ²; ²)

Page 194: αυτόματα και τυπικές γλώσσες dimitriou

182 Αυτόματα Στοίβας

ενώ από το πρώτο βήμα

(q; x; Z) = (q; ax1x2 ¢ ¢ ¢xm; Z) j= (q1; x1x2 ¢ ¢ ¢xm; Z1Z2 ¢ ¢ ¢Zm)

Από εκεί το αυτόματο με μια ακολουθία βημάτων μπορεί να περάσει διαδοχικάστις περιγραφές (q2; x2 ¢ ¢ ¢xm; Z2 ¢ ¢ ¢Zm), : : :, (qm; xm; Zm) και τελικά στην(q; ²; ²), οπότε προκύπτει το ζητούμενο.

8.3ΈστωM = (fq0; q1g; f0; 1g; fa; Z0g; q0; Z0; ±;Â) το αυτόματο στοίβας όπου η ± ορίζεταιόπως παρακάτω:

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

1 q0 1 Z0 (q0; aZ0)2 q0 1 a (q0; aa)3 q0 0 a (q1; a)4 q0 ² Z0 (q0; ²)5 q1 1 a (q1; ²)6 q1 0 Z0 (q0; Z0)

(Οι υπόλοιποι συνδυασμοί) (Τίποτα)

Παράδειγμα 8.3

Θα περιγράψουμε μια γραμματική G = (V; f0; 1g; S;R) που παράγει την ίδιαγλώσσα με το αυτόματοM . Η γραμματική αυτή θα αποτελείται από τις μεταβλητέςV = fS, [q0; a; q0], [q0; a; q1], [q1; a; q0], [q1; a; q1], [q0; Z0; q0], [q0; Z0; q1], [q1; Z0;q0], [q1; Z0; q1]g. Για να κατασκευάσουμε το σύνολο R αρχίζουμε με τις παραγωγέςαπό το S. Αυτές είναι οι

S ! [q0; Z0; q0] και S ! [q0; Z0; q1]

Στη συνέχεια προσθέτουμε τις παραγωγές για τις [q0; Z0; q0] και [q0; Z0; q1], όπωςπροκύπτουν από τη ±(q0; 1; Z0) = (q0; aZ0) (Κίνηση 1). Αυτές είναι οι

[q0; Z0; q0]! 1[q0; a; q0][q0; Z0; q0]

[q0; Z0; q0]! 1[q0; a; q1][q1; Z0; q0]

[q0; Z0; q1]! 1[q0; a; q0][q0; Z0; q1]

[q0; Z0; q1]! 1[q0; a; q1][q1; Z0; q1]

Αντίστοιχα από τη ±(q0; 1; a) = (q0; aa) (Κίνηση 2) παίρνουμε τις

[q0; a; q0]! 1[q0; a; q0][q0; a; q0]

[q0; a; q0]! 1[q0; a; q1][q1; a; q0]

[q0; a; q1]! 1[q0; a; q0][q0; a; q1]

[q0; a; q1]! 1[q0; a; q1][q1; a; q1]

Page 195: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 183

Παρόμοια, από τη ±(q0; 0; a) = (q1; a) (Κίνηση 3) τις

[q0; a; q0]! 0[q1; a; q0]

[q0; a; q1]! 0[q1; a; q1]

Από τις ±(q0; ²; Z0) = (q0; ²) (Κίνηση 4) και ±(q1; 1; a) = (q1; ²) (Κίνηση 5) τις

[q0; Z0; q0]! ² και [q1; a; q1]! 1

και τέλος από τη ±(q1; 0; Z0) = (q0; Z0) (Κίνηση 6) τις

[q1; Z0; q0]! 0[q0; Z0; q0]

[q1; Z0; q1]! 0[q0; Z0; q1]

Αν παρατηρήσετε τους κανόνες θα δείτε ότι από τις μεταβλητές [q0; a; q0]και [q1; a; q0] δεν μπορούν να προκύψουν τελικά σύμβολα. Μπορούμε λοιπόν ναδιαγράψουμε όσους κανόνες περιέχουν μια απ, αυτές τις δύο μεταβλητές ή κάποιαάλλη διαγραμμένη μεταβλητή. Οι κανόνες που απομένουν είναι οι εξής:

S ! [q0; Z0; q0] [q1; Z0; q0]! 0[q0; Z0; q0][q0; Z0; q0]! 1[q0; a; q1][q1; Z0; q0] [q0; Z0; q0]! ²[q0; a; q1]! 0[q1; a; q1] [q1; a; q1]! 1

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

ΑΣΚΗΣΕΙΣ

8.1 Έστω § = fa; bg. Κατασκευάστε αυτόματα στοίβας για:

α) τη γλώσσα όλων των παλινδρομικών συμβολοσειρών περιττού μήκους,

β) τη γλώσσα των συμβολοσειρών όπου ο μεσαίος χαρακτήρας είναι το a,

γ) τη γλώσσα όλων των μη παλινδρομικών συμβολοσειρών,

δ) τη γλώσσα των συμβολοσειρών όπου ο πρώτος και ο τελευταίοςχαρακτήρας είναι ίδιοι.

8.2 Δείξτε ότι, αν (q; x; ®) j=¤M 0 (p; y; ¯), τότε επίσης θα ισχύει και (q; x; ®°) j=¤M 0

(p; y; ¯°) για κάποιο ° 2 ¡¤.

8.3 Δείξτε ότι, αν μια γλώσσα L αναγνωρίζεται με άδειο σωρό από ένα ΑΣ M 0,τότε αναγνωρίζεται με τελική κατάσταση από ένα ΑΣ M .

Page 196: αυτόματα και τυπικές γλώσσες dimitriou

184 Αυτόματα Στοίβας

8.4 Έστω § = fa; bg. Δώστε ντετερμινιστικά αυτόματα για τις παρακάτωγλώσσες:

α) fx 2 §¤j o αριθμός των a είναι ίσος με τον αριθμό των b στη xg.

β) fx 2 §¤j o αριθμός των a είναι μεγαλύτερος από τον αριθμό των b στηxg.

γ) fxcxRj x 2 §¤g.

δ) L(G), όπου G = (fV g;§; S;R) και R = fS ! SS j [S] j ²g.

8.5 Έστω L μια γλώσσα, η οποία περιέχει δύο συμβολοσειρές x; y, x6= y, γιατις οποίες ισχύει y = xz, για κάποιο z 2 §¤, δηλαδή η x είναι πρόθεμα τηςy. Δείξτε ότι κανένα ντετερμινιστικό αυτόματο δεν μπορεί ν, αναγνωρίσειτην L με άδειο σωρό.

8.6 Αν M είναι ένα αυτόματο στοίβας για το οποίο ισχύει (p; x; ®) j=¤M (q; ²; ¯)

και (q; y; ¯°) j=¤M (r; ²; ±), τότε (p; xy; ®°) j=¤M (r; ²; ±).

8.7 Δείξτε ότι για κάθε αυτόματο στοίβας M υπάρχει ένα ισοδύναμο αυτόματοM 0, του οποίου οι μεταβάσεις έχουν τη μορφή: ±0(q; a; Z) = (p; ®), μεj®j ∙ 2.

8.8 Έστω L μια γλώσσα που γίνεται δεκτή από ένα αυτόματο στοίβας του οποίουο σωρός περιέχει πάντα το πολύ k σύμβολα. Τί θα συμπεραίνατε για την L;

8.9 ΈστωM1;M2 δύο αυτόματα στοίβας που αναγνωρίζουν τις γλώσσες L1; L2.Κατασκευάστε αυτόματα για τις γλώσσες L1 [ L2, L1L2 και L¤1.

8.10 Κατασκευάστε αυτόματα ισοδύναμα με τις γραμματικές:

α) S ! SS j aSb j ab.

β) S ! SS j [S] j ².

Στη συνέχεια \τρέξτε" τα αυτόματά σας για κάποια συμβολοσειρά της γραμ-ματικής, όπως κάναμε στο Παράδειγμα 8.2.

8.11 Δώστε μια ισοδύναμη γραμματική για το παρακάτω αυτόματο στοίβας:

Page 197: αυτόματα και τυπικές γλώσσες dimitriou

Σύνοψη 185

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

1 q0 0 Z0 (q0; aZ0)2 q0 0 a (q0; aa)3 q0 1 a (q1; ²)4 q1 1 a (q1; ²)5 q1 ² a (q1; ²)6 q1 ² Z0 (q1; ²)

(Οι υπόλοιποι συνδυασμοί) (Τίποτα)

Σύνοψη

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

Κατά τ, άλλα τα αυτόματα στοίβας λειτουργούν όπως και τα συνηθισμένα αυτόμα-τα. Η μόνη διαφορά στη συνάρτηση μετάβασης είναι ότι λαμβάνεται υπόψη και τοκορυφαίο σύμβολο του σωρού εκτός από το σύμβολο εισόδου. Τότε το αυτόματομεταβαίνει σε μια άλλη κατάσταση και πιθανώς τροποποιεί το σωρό. Μια συμβολο-σειρά γίνεται δεκτή, όταν το αυτόματο εξαντλήσει την είσοδό του και μεταβεί σε μιατελική κατάσταση. Ένας άλλος τρόπος αναγνώρισης είναι να αδειάσει ο σωρός,αφού διαβαστεί η είσοδος. Αποδεικνύεται όμως ότι οι δύο τρόποι αναγνώρισης είναιισοδύναμοι.

Η ύπαρξη του σωρού είναι το χαρακτηριστικό που δίνει στα αυτόματα στοίβαςτη δύναμή τους. Με τη χρήση του ένα τέτοιο αυτόματο μπορεί να εξομοιώσει τηλειτουργία μιας γραμματικής. Αποδεικνύεται όμως ότι και μια γραμματική μπορεί ναεξομοιώσει τη λειτουργία ενός αυτόματου στοίβας. Άρα οι γλώσσες που αναγνωρίζο-νται από τα αυτόματα είναι ακριβώς οι γλώσσες ανεξάρτητες συμφραζόμενων.

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης

Άσκηση 8.1 Ο πίνακας μετάβασης ενός αυτόματουM για την L = fanb2nj n ¸ 0gφαίνεται στη συνέχεια.

Page 198: αυτόματα και τυπικές γλώσσες dimitriou

186 Αυτόματα Στοίβας

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

1 q0 a Z0 (q1; aaZ0)2 q1 a a (q1; aaa)3 q1 b a (q2; ²)4 q2 b a (q2; ²)5 q2 ² Z0 (q3; Z0)

(Οι υπόλοιποι συνδυασμοί) (Τίποτα)

Το αυτόματο, για κάθε a που διαβάζει, σπρώχνει δύο a στο σωρό εφόσον οαριθμός των b πρέπει να είναι διπλάσιος από τον αριθμό των a (Κινήσεις 1-2).Μόλις διαβάσει το πρώτο b, τοM μεταβαίνει στην κατάσταση q2 από όπου αρχίζεινα ταιριάζει τα b με τα a του σωρού (Κινήσεις 3-4). Μόλις τελειώσουν τα bμεταβαίνει στην κατάσταση q3, η οποία είναι τελική. Επίσης τελική είναι και ηκατάσταση q0, ώστε να γίνεται δεκτή η κενή συμβολοσειρά.

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

Άσκηση 8.2 ΈστωM = (Q;§; q0; ±; F ) ένα πεπερασμένο αυτόματο που αναγνω-ρίζει μια γλώσσα L. Ένα αυτόματο στοίβας M 0 = (Q;§;¡; q0; Z0; ±0; F ) για τηνL θα έχει την ίδια αρχική και τελικές καταστάσεις με το M και δε θα χρησιμοποιείκαθόλου το σωρό του. Αν ± είναι η συνάρτηση μετάβασης τουM , τότε η συνάρτηση±0 θα ορίζεται όπως παρακάτω:

±0(p; a; Z0) = (q; Z0) αν και μόνο αν ±(p; a) = q

Μ, άλλα λόγια το M 0 απλά εξομοιώνει τη λειτουργία του M αφήνοντας το σωρότου με το σύμβολο Z0.

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

Άσκηση 8.3 Η μόνη τροποποίηση που πρέπει να κάνουμε στον Πίνακα 8.1είναι στην κίνηση 9. Αντί το αυτόματο να μεταβαίνει στην τελική κατάστασηq2 αφήνοντας το σωρό ως έχει, απλά θα πρέπει να βγάζει το Z0 από το σωρό. Ηαπαιτούμενη κίνηση είναι λοιπόν η

±(q1; ²; Z0) = (q2; ²)

Άσκηση 8.4 Ο πίνακας μετάβασης του αυτόματου για την L = fx 2 f0; 1g¤j οαριθμός των 0 είναι ίσος με τον αριθμό των 1g φαίνεται στη συνέχεια:

Page 199: αυτόματα και τυπικές γλώσσες dimitriou

Λεξιλόγιο Αγγλικών Όρων 187

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

1 q0 0 Z0 (q1; 0Z0)2 q0 1 Z0 (q1; 1Z0)3 q1 0 0 (q1; 00)4 q1 1 1 (q1; 11)5 q1 0 1 (q1; ²)6 q1 1 0 (q1; ²)7 q1 ² Z0 (q0; Z0)

(Οι υπόλοιποι συνδυασμοί) (Τίποτα)

Η q0 είναι η αρχική καθώς επίσης και η μόνη τελική κατάσταση. Το αυτόματοαρχικά σπρώχνει το πρώτο σύμβολο στο σωρό (Κινήσεις 1-2) και στη συνέχειαμεταβαίνει στην κατάσταση q1. Από την q1 ένα σύμβολο σπρώχνεται στο σωρό, ανταιριάζει με το σύμβολο του σωρού (Κινήσεις 3-4), αλλιώς και τα δύο απομακρύνο-νται αν είναι διαφορετικά (Κινήσεις 5-6). Μια ακολουθία από 0 στο σωρό σημαίνειπερίσσευμα από 0, αλλιώς περίσσευμα από 1. Αν ο αριθμός των 0 είναι ίσος μετον αριθμό των 1, ο σωρός είναι άδειος και το αυτόματο μεταβαίνει ξανά στηνκατάσταση q0 (Κίνηση 7).

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝΣτοίβα ή Σωρός Stack

Αυτόματο Στοίβας Pushdown automaton

Στιγμιαία Περιγραφή Instantaneous description

Παραγωγή Production

Page 200: αυτόματα και τυπικές γλώσσες dimitriou

188 Αυτόματα Στοίβας

Page 201: αυτόματα και τυπικές γλώσσες dimitriou

ΓΛΩΣΣΕΣ ΟΧΙ ΑΝΕΞΑΡΤΗΤΕΣΣΥΜΦΡΑΖΟΜΕΝΩΝ

Κ Ε Φ Α Λ Α Ι Ο

Σκοπός

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

Προσδοκώμενα Αποτελέσματα

Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:

² αναφέρετε τι είναι το Λήμμα Άντλησης και πως χρησιμοποιείται,

² αναφέρετε τι είδους περιοδικότητα πρέπει να υπάρχει σε μια γραμματική γιατην εφαρμογή του λήμματος,

² δώσετε τον ορισμό των δέντρων παραγωγής,

² αποδείξετε αν μια γλώσσα είναι ανεξάρτητη συμφραζόμενων ή όχι,

² εξηγήσετε γιατί οι γλώσσες ΑΣ δεν είναι κλειστές ως προς την τομή και τοσυμπλήρωμά τους,

² αναφέρετε σε ποια περίπτωση η τομή δύο γλωσσών ΑΣ είναι ΑΣ,

² αναφέρετε πώς μπορεί να μετατραπεί μια γραμματική σε μια ισοδύναμη πουδεν περιέχει ² ή μοναδιαίους κανόνες,

² εξηγήσετε πώς χρησιμοποιείται το Λήμμα Άντλησης για να δώσουμε απάντησηστο ερώτημα αν μια γλώσσα ΑΣ είναι πεπερασμένη ή όχι,

189

Page 202: αυτόματα και τυπικές γλώσσες dimitriou

190 Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

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

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

Έννοιες-κλειδιά

² Γλώσσες όχι ανεξάρτητες συμφραζόμενων² Συντακτικά δέντρα ή δέντρα παραγωγής² Λήμμα Άντλησης² Κλειστότητα ως προς τομή και συμπλήρωμα² Τομή με κανονική γλώσσα² Αλγόριθμοι και προβλήματα απόφασης

Εισαγωγικές Παρατηρήσεις

Το κεφάλαιο αυτό αποτελείται από δύο ενότητες. Στην πρώτη ενότητα περιγράφουμετο Λήμμα Άντλησης και εξηγούμε πώς χρησιμοποιείται για να αποδείξουμε πότε μιαγλώσσα δεν είναι ΑΣ. Εξηγούμε επίσης γιατί οι γλώσσες ΑΣ δεν είναι κλειστές ωςπρος τις πράξεις της τομής και του συμπληρώματος, ενώ είναι κλειστές ως προςτην τομή με κανονικές γλώσσες. Στη δεύτερη ενότητα αναφερόμαστε σε αλγόριθμουςκαι προβλήματα απόφασης που αφορούν γλώσσες που παράγονται από γραμματικές.Μεταξύ άλλων μας ενδιαφέρει να γνωρίζουμε πότε μια γλώσσα είναι πεπερασμένη ήάπειρη και πότε μια γραμματική παράγει μια συγκεκριμένη συμβολοσειρά. Γι, αυτάτα ερωτήματα παρουσιάζουμε αλγόριθμους απόφασης. Υπάρχουν όμως προβλήματαπου, ενώ στην περίπτωση των κανονικών γλωσσών είναι επιλύσιμα, όταν μεταβαίνου-με σε γραμματικές ΑΣ δε μπορούν να λυθούν. Τέτοιο είναι για παράδειγμα τοπρόβλημα της ισοδυναμίας δύο γραμματικών.

9.1 Το Λήμμα Άντλησης για Γραμματικές

Στο Κεφάλαιο 6 αναπτύξαμε μια μέθοδο για να αποδεικνύουμε τη μη κανονικότηταμιας γλώσσας, το λεγόμενο Λήμμα Άντλησης. Στην απόδειξη του λήμματος αυτούχρησιμοποιήσαμε δύο παρατηρήσεις: πρώτον, ότι κάθε κανονική γλώσσα μπορείνα αναγνωριστεί από κάποιο πεπερασμένο αυτόματο, και δεύτερον, ότι μια άπειρηκανονική γλώσσα εμφανίζει μια περιοδικότητα, η οποία οφείλεται στο γεγονόςότι κάθε αρκετά μεγάλη συμβολοσειρά της αναγκάζει το αντίστοιχο αυτόματο ναεπισκεφτεί κάποια από τις καταστάσεις του περισσότερες από μια φορές (Θεώρημα

Page 203: αυτόματα και τυπικές γλώσσες dimitriou

Το Λήμμα Άντλησης για Γραμματικές 191

6.1). Έτσι, κάθε τέτοια συμβολοσειρά z μπορεί να γραφεί στη μορφή z = uvw,για κάποια u; v; w 2 §¤, jvj > 0, ώστε όλες οι συμβολοσειρές της μορφής uviwνα μπορούν να γίνουν δεκτές από το αυτόματο.

Δε θα πρέπει να μας εκπλήσσει το γεγονός ότι και για τις γλώσσες ανεξάρτητεςσυμφραζόμενων υπάρχει ένα παρόμοιο λήμμα του οποίου η φιλοσοφία είναι ακρι-βώς η ίδια. Η μόνη διαφορά είναι, ότι αντί να εισάγουμε αντίγραφα μιας συμβολο-σειράς v στη z, τώρα υπάρχουν δύο συμβολοσειρές v; x οι οποίες μπορούν να Άντληση δύο

συμβολοσειρώνεπαναληφθούν όσες φορές θέλουμε και το αποτέλεσμα ν, ανήκει πάλι στη γλώσσα.Στην περίπτωση αυτή όμως είναι πιο εύκολο να δουλέψουμε με γραμματικές παράμε αυτόματα. Ας δούμε γιατί. Έστω, ότι μια παραγωγή μιας γραμματικής Gχρησιμοποιεί μια μεταβλητή A περισσότερο από μια φορά, όπως η

S¤) uAy

¤) uvAxy¤) uvwxy

όπου u; v;w; x; y 2 §¤. Από τα παραπάνω προκύπτει ότι A ¤) vAx και A ¤) w.Άρα μπορούμε να γράψουμε

A¤) vAx

¤) v2Ax2¤) v3Ax3 ¢ ¢ ¢

και να συμπεράνουμε ότι όλες οι συμβολοσειρές uwy, uvwxy, uv2wx2y, : : :ανήκουν στην L(G). Αν λοιπόν δείξουμε ότι για κάθε μεγάλη συμβολοσειράισχύει κάτι παρόμοιο και καταφέρουμε να θέσουμε περιορισμούς στο μέγεθος τωνu; v;w; x; y, τότε θα έχουμε ένα νέο Λήμμα Άντλησης, αυτή τη φορά όμως γιαγλώσσες ανεξάρτητες συμφραζόμενων.

Θα είναι πιο εύκολο ν, αποδείξουμε το παραπάνω λήμμα, αν χρησιμοποιήσουμεδέντρα παραγωγής ή συντακτικά δέντρα, τα οποία δεν αποτελούν παρά ένα γραφικό Συντακτικά

δέντρατρόπο αναπαράστασης των παραγωγών μιας γραμματικής. Τα δέντρα αυτά μπορούννα οριστούν με τον ακόλουθο αναδρομικό τρόπο: Στη ρίζα κάθε τέτοιου δέντρουβρίσκεται η μεταβλητή με την οποία αρχίζει η παραγωγή. Κάθε φορά που αντικαθί-σταται μια μεταβλητή από το δεξιό μέρος ® ενός κανόνα A! ®, η A αναπαρίστα-ται στο δέντρο από τη ρίζα ενός νέου υποδέντρου της οποίας τα παιδιά είναι τασύμβολα του ®, διαβάζοντάς το ® από τα αριστερά προς τα δεξιά. Για παράδειγμαη παραγωγή

S ) S + S ) x+ S ) x+ S ¤ S ) x+ x ¤ S ) x+ x ¤ y

έχει το δέντρο παραγωγής που φαίνεται Σχήμα 9.1.Υπενθυμίζουμε ξανά ότι μια ακολουθία κόμβων του δέντρου ονομάζεται μονο-

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

Page 204: αυτόματα και τυπικές γλώσσες dimitriou

192 Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

S

S S+

x S S*

x y

Σχήμα 9.1. Δέντρο Παραγωγής

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

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

Λήμμα 9.1. Για κάθε m ¸ 1, αν ο αριθμός των φύλλων ενός δέντρου είναιμεγαλύτερος από cm, όπου c ο μέγιστος αριθμός παιδιών κάθε κόμβου, τότευπάρχει ένα μονοπάτι, του οποίου το μήκος είναι μεγαλύτερο από m.

Απόδειξη: Για την απόδειξη θα χρησιμοποιήσουμε επαγωγή στο m. Αντίόμως για τον παραπάνω ισχυρισμό θα αποδείξουμε τον ακόλουθο ισοδύναμο:

\Αν T είναι ένα δέντρο, του οποίου όλα τα μονοπάτια έχουν μήκοςτο πολύ m (ή αλλιώς το ύψος του δέντρου είναι το πολύ m), τότεο αριθμός των φύλλων του T δεν ξεπερνάει το cm."

Βάση: Αν m = 1 τότε προφανώς το δέντρο θα περιέχει το πολύ c φύλλα.

Επαγωγική Υπόθεση: Έστω ότι κάθε δέντρο ύψους μικρότερου ή ίσου τουm αποτελείται από cm το πολύ φύλλα.

Επαγωγικό Βήμα: Θα δείξουμε ότι κάθε δέντρο ύψους m + 1 δεν έχειπαραπάνω από cm+1 φύλλα. Θεωρήστε τη ρίζα ενός τέτοιου δέντρου. Αυτήέχει το πολύ c παιδιά, καθένα από τα οποία είναι ρίζα ενός υποδέντρου ύψους

Page 205: αυτόματα και τυπικές γλώσσες dimitriou

Το Λήμμα Άντλησης για Γραμματικές 193

μικρότερου ή ίσου τουm. Από την επαγωγική υπόθεση κάθε τέτοιο υποδέντροθα έχει το πολύ cm φύλλα. Όμως ο αριθμός των φύλλων του αρχικού δέντρουδεν είναι παρά το άθροισμα των φύλλων των υποδέντρων, οπότε καταλήγουμεστο ότι ο αριθμός αυτός είναι το πολύ ίσος με c cm ∙ cm+1.

Θα προχωρήσουμε τώρα στην απόδειξη του Λήμματος Άντλησης για γλώσσεςανεξάρτητες συμφραζόμενων.

Θεώρημα 9.1. [Λήμμα Άντλησης] Έστω L μια γλώσσα ανεξάρτητη συμφρα-ζόμενων. Τότε υπάρχει ένας αριθμός n έτσι ώστε κάθε z 2 L, με jzj ¸ n, ναμπορεί να γραφεί στη μορφή z = uvwxy, όπου για τις συμβολοσειρές u; v; w; xκαι y ισχύει

jvxj > 0,jvwxj ∙ n καιuviwxiy 2 L, για κάθε i ¸ 0

Απόδειξη: Ας είναι G = (V;§; S;R) μια γραμματική m μεταβλητών, ηοποία αναγνωρίζει την L. Αυτό που θέλουμε να δείξουμε είναι ότι κάθεσυμβολοσειρά z, με jzj ¸ n, όπου το n εξαρτάται από τη G και θα οριστείστη συνέχεια, έχει μια παραγωγή της μορφής

S¤) uAy

¤) uvAxy¤) uvwxy

για κάποια μεταβλητή A και κάποιες συμβολοσειρές u; v;w; x και y πουικανοποιούν τις συνθήκες του θεωρήματος. Τότε εύκολα προκύπτει ότι όλεςοι συμβολοσειρές της μορφής uviwxiy ανήκουν στην L.

Ας είναι c ο μεγαλύτερος αριθμός συμβόλων που εμφανίζονται σε κάποιοκανόνα της G. Είναι προφανές ότι κάθε κόμβος ενός δέντρου παραγωγής γιατη z θα αποτελείται από c το πολύ παιδιά, σύμφωνα με τον παραπάνω ορισμότου c.

Ας ορίσουμε n = cm+1 και έστω z οποιαδήποτε συμβολοσειρά της L μήκουςjzj ¸ n. Σύμφωνα με το Λήμμα 9.1, οποιοδήποτε δέντρο για τη z θα έχειύψος τουλάχιστον m+1. Έστω P ένα μονοπάτι μέγιστου μήκους. Εφόσον οτελευταίος κόμβος του P είναι φύλλο, όλοι οι υπόλοιποι m+1 κόμβοι πάνωαπ, αυτόν θα αντιστοιχούν σε μεταβλητές της γραμματικής. Άρα θα υπάρχεικάποια μεταβλητή A, η οποία θα εμφανίζεται τουλάχιστον δύο φορές. Έστωw το τμήμα της z, που παράγεται από το A που βρίσκεται πλησιέστερα στοφύλλο (δηλαδή A ¤) w), και vwx το τμήμα που παράγεται από το άλλο A(δηλαδή A ¤) vAx). Αν u και y είναι αντίστοιχα το αρχικό και τελικό τμήματης z, θα έχουμε z = uvwxy (ή αλλιώς S ¤) uAy). Αυτό φαίνεται καλύτεραστο Σχήμα 9.2.

Θεωρήστε το υποδέντρο που αρχίζει από το A πλησιέστερα στη ρίζα καιπαράγει τη συμβολοσειρά vwx. Εφόσον αυτό το υποδέντρο έχει ύψος μικρό-τερο ή ίσο του m+1 θα ισχύει jvwxj ∙ cm+1 = n. Προσέξτε τώρα ότι και το

Page 206: αυτόματα και τυπικές γλώσσες dimitriou

194 Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

S

A

A

wv xu y

Σχήμα 9.2. Λήμμα Άντλησης

v και το x θα μπορούσαν να είναι ίσα με ², αλλά αυτό δεν μπορεί να συμβαίνειγια κάθε μονοπάτι P και κάθε μεταβλητή A που εμφανίζεται δύο φορές στοP , γιατί τότε το τμήμα μεταξύ των δύο A θα μπορούσε να παραληφθεί. Ανόλα τα μονοπάτια μπορούσαν να μικρύνουν μ, αυτό τον τρόπο θα παίρναμεένα δέντρο ύψους μικρότερου ή ίσου από m+ 1, το οποίο θα παρήγαγε πάλιτο z που έχει μήκος μεγαλύτερο από n = cm+1. Αυτό, όμως από το Λήμμα9.1, είναι αδύνατο. Άρα jvxj > 0 και η απόδειξη είναι πλήρης.

Όπως και στην περίπτωση των κανονικών γλωσσών, ας δούμε μερικά από τασημεία που πρέπει να προσέξουμε.

Πρώτα απ, όλα υποθέτουμε ότι η γλώσσα είναι ανεξάρτητη συμφραζόμενωνΣημείαπροσοχής

με σκοπό να οδηγηθούμε σε κάποια αντίφαση. Αρχίζουμε λοιπόν υποθέτοντας τηνύπαρξη κάποιου n για το οποίο ισχύει το θεώρημα, αν και δεν ξέρουμε την τιμήτου. Γνωρίζουμε όμως ότι, αν η γλώσσα είναι ΑΣ, αυτό το n θα υπάρχει. Γιανα οδηγηθούμε τώρα σε αντίφαση αρκεί να βρούμε κάποια συμβολοσειρά z μεjzj ¸ n, η οποία μπορεί να γραφεί στη μορφή z = uvwxy, με jvwxj ∙ n καιjvxj > 0, έτσι ώστε για κάποιο i ¸ 0 να μην ισχύει uviwxiy 2 L . Ο λόγοςείναι ότι το θεώρημα πρέπει να ισχύει για κάθε z. Αν λοιπόν δεν ισχύει για τοσυγκεκριμένο z, τότε θα έχουμε πέσει σε αντίφαση. Και πώς μπορεί να γίνει αυτό;Αν υπάρχει κάποιο i, για το οποίο uviwxiy62 L (το θεώρημα πάλι πρέπει να ισχύειγια κάθε i).

Ένα ακόμη σημείο που πρέπει να προσέξουμε είναι το εξής: από τη στιγμή πουέχουμε επιλέξει το z, δεν μπορούμε να διαλέξουμε τον τρόπο που σχηματίζονται ταu; v; w; x και y. Οποιαδήποτε επιλογή απ, αυτά πρέπει να οδηγεί σε μια αντίφαση.

Page 207: αυτόματα και τυπικές γλώσσες dimitriou

Το Λήμμα Άντλησης για Γραμματικές 195

Ο λόγος ξανά είναι ότι το θεώρημα δεν αναφέρεται σε συγκεκριμένα u; v; w; x; y.Ας δούμε μ, ένα παράδειγμα πώς εφαρμόζονται οι παραπάνω ιδέες.

9.1Έστω L = f0k1k2kj k ¸ 0g. Ο διαισθητικός λόγος, για τον οποίο η γλώσσα αυτή δενείναι ΑΣ είναι γιατί ένας σωρός επαρκεί για να συγκρίνει τον αριθμό των 0 με τον αριθμότων 1, αλλά δε μπορεί να χρησιμοποιηθεί για να συγκρίνει αυτά με τον αριθμό των 2. Αςχρησιμοποιήσουμε λοιπόν το Λήμμα Άντλησης για να αποδείξουμε τη διαίσθησή μας.Αρχικά υποθέτουμε ότι η L είναι ανεξάρτητη συμφραζόμενων και έστω n ο αριθμός τουΘεωρήματος 9.1. Θα πρέπει να δείξουμε ότι, οποιοδήποτε και αν είναι το n, υπάρχεικάποιο z μήκους μεγαλύτερου του n που οδηγεί σε αντίφαση. Ας είναι z = 0n1n2n.Τότε υπάρχουν συμβολοσειρές u; v; w; x; y, ώστε z = uvwxy, για τις οποίες ισχύουν τασυμπεράσματα του θεωρήματος. Αν και δεν μπορούμε να επιλέξουμε τη μορφή τους,γνωρίζουμε ότι jvwxj ∙ n, τα v και x δεν μπορεί να είναι και τα δύο κενά και τοuviwxiy ανήκει στην L για κάθε i ¸ 0. Εφόσον το μήκος του vwx δεν ξεπερνάει το n,συμπεραίνουμε ότι το vwx θα περιέχει το πολύ δύο (ίσως και ένα) από τα τρία σύμβολα0; 1; 2. Όμως, όποια και να είναι η περίπτωση, τα v και x δεν μπορεί να είναι και ταδύο κενά, άρα το vx θα περιέχει τουλάχιστον ένα σύμβολο. Μα τότε η συμβολοσειράuv2wx2y περιέχει επιπρόσθετες εμφανίσεις των συμβόλων που υπάρχουν στα v και x καισυνεπώς δεν μπορεί να περιέχει ίσο αριθμό και από τα τρία σύμβολα. Άρα uv2wx2y62 L.Εφόσον καταλήξαμε σε άτοπο συμπεραίνουμε ότι η γλώσσα δεν είναι ΑΣ.

Παράδειγμα 9.1

9.1Θεωρήστε τη γλώσσα L = fx 2 f0; 1; 2g¤j ο αριθμός των 0 στη x είναι μικρότεροςαπό τον αριθμό των 1 και μικρότερος από τον αριθμό των 2g. Δείξτε ότι η L δεν είναιανεξάρτητη συμφραζόμενων.

ΆσκησηΑυτοαξιολόγησης

9.1

Τα παραπάνω παραδείγματα θα μας βοηθήσουν να δούμε ότι οι γλώσσες ανεξάρ-τητες συμφραζόμενων είναι πιο πολύπλοκες από τις κανονικές για έναν ακόμη λόγο:η τομή και το συμπλήρωμά τους δεν είναι απαραίτητα ανεξάρτητες συμφραζόμενων.

Θεώρημα 9.2. Οι γλώσσες ανεξάρτητες συμφραζόμενων δεν είναι κλειστέςως προς τις πράξεις της τομής και του συμπληρώματος.

Απόδειξη: Εκείνο που πρέπει να κάνουμε είναι να βρούμε δύο γλώσσες L1και L2, οι οποίες είναι ΑΣ έτσι ώστε, αν πάρουμε την τομή τους L = L1\L2,τότε η L δεν είναι ΑΣ.

Εφόσον ήδη γνωρίζουμε ότι η γλώσσα f0n1n2nj n ¸ 0g δεν είναι ΑΣ, αρκείνα βρούμε δύο γλώσσες ΑΣ L1 και L2 τέτοιες ώστε L1\L2 = f0n1n2nj n ¸0g. Αυτό όμως είναι εύκολο. Ας είναι L1 = f0n1n2mj n;m ¸ 0g καιL2 = f0m1n2nj n;m ¸ 0g, οι οποίες είναι ΑΣ. Είναι προφανές ότι η τομήτων δύο γλωσσών αποτελείται από εκείνες τις συμβολοσειρές που έχουν τονίδιο αριθμό από 0, 1 και 2 άρα δε μπορεί να είναι ΑΣ.

Page 208: αυτόματα και τυπικές γλώσσες dimitriou

196 Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

Έχοντας δείξει ότι οι γλώσσες ανεξάρτητες συμφραζόμενων δεν είναι κλειστέςως προς την τομή είναι εύκολο να δείξουμε ότι δεν είναι κλειστές και ως προςτο συμπλήρωμά τους. Αυτό όμως αφήνεται ως άσκηση (Άσκηση 9.7).

Το παραπάνω θεώρημα μας λέει πως γενικά δεν μπορούμε να κατασκευάσουμεένα αυτόματο στοίβας M , που να εξομοιώνει τη λειτουργία δύο επιμέρους αυτόμα-των M1 και M2 και να δέχεται τη γλώσσα L(M1) \ L(M2). Ο κυριότερος λόγοςείναι ότι τοM δεν μπορεί να διαχειρίζεται σωστά τα περιεχόμενα των δύο σωρών.Αν τα σύμβολα του σωρού του M έχουν τη μορφή [X;Y ] όπου τα X και Y είναιτα σύμβολα στις κορυφές των σωρών των M1 και M2, μπορείτε να φανταστείτετι πρέπει να γίνει αν κάποιο από τα αυτόματα πρέπει να διώξει ή να προσθέσεικάποιο σύμβολο στο σωρό;

Το πρόβλημα όμως λύνεται αν κάποιο από τα αυτόματα δεν έχει σωρό, ή, ανΑΣ \ Reg= ΑΣ

θέλετε, η γλώσσα που αναγνωρίζεται από ένα απ, αυτά είναι κανονική.

Θεώρημα 9.3. Αν L1 είναι μια γλώσσα ανεξάρτητη συμφραζόμενων και L2είναι μια κανονική γλώσσα τότε και η L1\L2 είναι ανεξάρτητη συμφραζόμενων.

Απόδειξη: Έστω M1 = (Q1;§;¡; q1; Z0; ±1; F1) το αυτόματο στοίβας πουαναγνωρίζει την L1 και M2 = (Q2;§; q2; ±2; F2) το πεπερασμένο αυτόματοπου αναγνωρίζει την L2. Το αυτόματο στοίβας για την L = L1 \L2 είναι τοM = (Q;§;¡; q0; Z0; ±; F ) το οποίο φαίνεται στη συνέχεια:

Q = Q1 £Q2F = F1 £ F2

Για κάθε p 2 Q1, q 2 Q2, a 2 § και Z 2 ¡, η συνάρτηση μετάβασης ±ορίζεται ως παρακάτω:

±([p; q]; a; Z) = f([p0; q0]; ®)j αν η ±1(p; a; Z) περιέχει το (p0; a) και ±2(q; a) = q0g±([p; q]; ²; Z) = f([p0; q]; ®)j αν η ±1(p; ²; Z) περιέχει το (p0; a)g

Προσέξτε ότι με τις παραπάνω κινήσεις το M εξομοιώνει τη λειτουργία τωνM1 και M2, ενώ τα περιεχόμενα του σωρού του είναι πάντα ίδια μ, αυτάτου M1. Έτσι αν τοM1 μπορεί διαβάζοντας μια συμβολοσειρά y να μεταβείσε μια κατάσταση p και να αφήσει το ® στο σωρό του και το M2 μπορείδιαβάζοντας τη y να μεταβεί σε μια κατάσταση q, τότε τοM διαβάζοντας τηy θα μεταβεί στην κατάσταση [p; q] και θα αφήσει το ® στο σωρό του.

Πιο συγκεκριμένα, για κάθε p 2 Q1, q 2 Q2, y; z 2 §¤ και ® 2 ¡¤, μπορούμενα δείξουμε χρησιμοποιώντας επαγωγή στο k ¸ 0 (αφήνεται ως Άσκηση 9.12)ότι

\(q1; yz; Z0) j=kM1(p; z; ®) και ±¤2(q2; y) = q αν και μόνο αν

([q1; q2]; yz; Z0) j=kM ([p; q]; z; ®)."

Page 209: αυτόματα και τυπικές γλώσσες dimitriou

Αλγόριθμοι Απόφασης 197

Αυτό έχει σαν συνέπεια ότι, αν x 2 L(M1), δηλαδή (q1; x; Z0) j=¤M1(p; ²; ®)

για κάποια p 2 F1, και x 2 L(M2), δηλαδή ±¤2(q2; x) = q για κάποιαq 2 F2, τότε ([q1; q2]; x; Z0) j=¤M ([p; q]; ²; ®), για κάποια [p; q] 2 F , δηλαδήx 2 L(M) και αντιστρόφως.

9.2Δείξτε ότι η γλώσσα L = fx 2 fa; bg¤j η x αποτελείται από ίσο αριθμό a και b, αλλάδεν περιέχει τη συμβολοσειρά abbg είναι ΑΣ.Η γλώσσα αυτή μπορεί να εκφραστεί σαν η τομή μιας γλώσσας ΑΣ, της L1 = fx 2fa; bg¤j η x αποτελείται από ίσο αριθμό a και bg και του συμπληρώματος μιας κανονικήςγλώσσας, της L2 = fx 2 fa; bg¤j η x περιέχει τη συμβολοσειρά abbg, η οποία παράγεταιαπό την έκφραση §¤abb§¤ και μπορεί να αναγνωριστεί με ένα απλό αυτόματο. Άρα μεβάση το Θεώρημα 9.3 συμπεραίνουμε ότι η L είναι ΑΣ.

Παράδειγμα 9.2

9.2 Αλγόριθμοι Απόφασης

Στην Ενότητα 6.2 ασχοληθήκαμε με αλγόριθμους απόφασης που αφορούν κανονικέςγλώσσες και πεπερασμένα αυτόματα. Μπορέσαμε να δώσουμε αλγόριθμους γιαπολλά ερωτήματα του τύπου αν μια συμβολοσειρά γίνεται δεκτή από ένα αυτόματοM , αν η γλώσσα L(M) είναι κενή, πεπερασμένη ή άπειρη, αν δύο αυτόματααναγνωρίζουν την ίδια γλώσσα, καθώς και πολλά άλλα.

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

Θα ξεκινήσουμε τη συζήτηση με το πρόβλημα της παραγωγής μιας συμβολοσει- Παράγεται ησυμβολοσειρά x;ράς x από μια γραμματική G. Μια πρώτη προσπάθεια για να απαντήσουμε

το ερώτημα αυτό θα ήταν να μετατρέψουμε τη γραμματική σ, ένα ισοδύναμοαυτόματο στοίβαςM και να τρέξουμε τοM με είσοδο x μέχρι αυτό να σταματήσει.Υπάρχουν όμως πολλά προβλήματα μ, αυτή την προσέγγιση. Ένα αυτόματο στοί-βας μπορεί να τρέχει για πολύ χρόνο χωρίς να καταναλώνει κανένα σύμβολοεισόδου. Πόσο λοιπόν χρόνο θα το αφήναμε να τρέχει; Από την άλλη, έστω ότι μιαακολουθία κινήσεων απέρριψε τη x. Σημαίνει αυτό ότι η x δεν ανήκει στη γλώσσα;Όχι απαραίτητα. Αν το αυτόματο είναι μη ντετερμινιστικό μπορεί να υπάρχειμια άλλη ακολουθία κινήσεων που οδηγεί στην αναγνώριση της x. Μόνο αν το

Page 210: αυτόματα και τυπικές γλώσσες dimitriou

198 Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

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

Αντί λοιπόν να μετατρέψουμε τη γραμματική G σ, ένα ισοδύναμο αυτόματο,θα μετατρέψουμε την G σε μια ισοδύναμη γραμματική G0 της οποίας οι κανόνες

Μετατροπή σεαπλούστερημορφή έχουν μια από τις δύο παρακάτω μορφές:

1. A! ¾, όπου ¾ 2 §, ή

2. A! ®, όπου ® 2 (V [ §)¤ και j®j ¸ 2.

Προσέξτε τώρα ότι, αν ισχύουν τα παραπάνω, κάθε βήμα μιας παραγωγής της G0 θααυξάνει το μήκος της παραγόμενης συμβολοσειράς, εκτός από την περίπτωση πουμια μεταβλητή A αντικαθίσταται από ένα τελικό σύμβολο ¾. Άρα καμιά παραγωγήμήκους μεγαλύτερου του 2jxj δε χρειάζεται να εξεταστεί για να αποφασίσουμε ανη x ανήκει ή όχι στην G0. Ο αλγόριθμος λοιπόν έχει ως εξής: Εξετάζουμε όλες τιςπαραγωγές μήκους k, όπου k < 2jxj, μέχρι να βρεθεί μια για το x ή να απορριφθούνόλες που έχουν μήκος το πολύ 2jxj. Αν δε βρεθεί παραγωγή για το x, τότε η x δενπαράγεται από την G0 και ισοδύναμα ούτε από την G.

Αρκεί λοιπόν να δείξουμε ότι κάθε γραμματική G μπορεί να μετατραπεί σεμια ισοδύναμη G0, η οποία δεν περιέχει κανόνες της μορφής A ! ®, όπου το® είναι είτε η κενή συμβολοσειρά ² είτε κάποια μεταβλητή B. Τι γίνεται όμωςστην περίπτωση που η γραμματική παράγει τη κενή συμβολοσειρά; Σίγουρα δενμπορούμε να παραλείψουμε όλους τους κανόνες της μορφής A ! ² (θα τουςονομάζουμε ²-κανόνες), γιατί τότε το ² δε θα μπορεί να παραχθεί. Μπορούμε όμως²-κανόνες

να παραλείψουμε όλους αυτούς τους κανόνες εκτός από έναν, τον S ! ², αν² 2 L(G).

Έστω G = (V;§; S;R). Η διαδικασία αποτελείται από τα παρακάτω βήματα:

Αλγόριθμος απαλοιφής ²-κανόνων

1. Αν A ! ² είναι κανόνας της G, τότε για κάθε κανόνα B ! ®1A®2, όπου®1; ®2 2 (V [ §)¤, προσθέστε τον B ! ®1®2 στο σύνολο των κανόνων.

2. Εξαλείψτε τον A! ² από τη γραμματική, εκτός αν A = S.

3. Επαναλάβετε τα βήματα 1 και 2 μέχρι να μη μπορούν να προστεθούν άλλοικανόνες στη G.

Η διαδικασία αυτή θα τελειώσει κάποια στιγμή, αφού το δεξιό μέρος κάθενέου κανόνα είναι μικρότερο από το δεξιό μέρος του αρχικού κανόνα. Επίσης, ηγλώσσα που παράγεται παραμένει η ίδια γιατί κάθε χρήση ενός κανόνα A! ² σεμια παραγωγή γίνεται για να αντικαταστήσει κάποιο A που έχει προκύψει από έναν

Page 211: αυτόματα και τυπικές γλώσσες dimitriou

Αλγόριθμοι Απόφασης 199

άλλο κανόνα B ! ®1A®2. Όμως, αντί γι, αυτούς τους δύο κανόνες μπορεί στηθέση τους να χρησιμοποιηθεί ο B ! ®1®2 χωρίς να αλλάξει η παραγωγή.

Έτσι, η νέα γραμματική G0 περιέχει τον κανόνα S ! ², μόνο αν ² 2 L(G0),ενώ κάθε συμβολοσειρά x 2 L(G0) έχει μια παραγωγή όπου δε χρησιμοποιούνταικανόνες της μορφής A! ².

Θα πρέπει στη συνέχεια να εξαλείψουμε και τους κανόνες της μορφής A! B

(ή αλλιώς μοναδιαίους κανόνες). Για να γίνει όμως αυτό θα πρέπει να εντοπίσουμε Μοναδιαίοικανόνεςόλα τα ζεύγη για τα οποία A ¤) B. Τότε μόνο θα μπορούμε για κάθε κανόνα B ! ¯

να προσθέσουμε τον κανόνα A! ¯, όπου j¯j ¸ 2 και να αφαιρέσουμε τον A! B

από την G0. Αυτό όμως είναι εύκολο. Για να ισχύει A ¤) B θα πρέπει η παραγωγήαυτή να χρησιμοποιεί μόνο μοναδιαίους κανόνες, κάτι το οποίο ελέγχεται εύκολα.Ο λόγος είναι ότι η γραμματική δεν περιέχει πια ²-κανόνες οι οποίοι μειώνουν τομήκος της παραγωγής.

Προσέξτε ξανά ότι η γλώσσα που αναγνωρίζεται παραμένει η ίδια. Κάθε φοράπου η ακολουθία A ¤) B ) ¯ χρησιμοποιείται σε μια παραγωγή, μπορεί απλά νααντικατασταθεί από τον κανόνα A! ¯.

Άρα βρήκαμε έναν αλγόριθμο που απαντάει στο ερώτημα αν μια συμβολοσειράx μπορεί να παραχθεί από μια γραμματική G. Εφόσον όμως οι γραμματικές είναιισοδύναμες με τα αυτόματα στοίβας, οι ίδιοι αλγόριθμοι μπορούν να χρησιμοποιη-θούν για να απαντήσουμε τα ίδια ερωτήματα για τα αυτόματα στοίβας.

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

Θεώρημα 9.4. Η γλώσσα L των συμβολοσειρών που παράγονται από μιαγραμματική G

1. δεν είναι κενή, αν και μόνο αν υπάρχει κάποια συμβολοσειρά z, όπουjzj < n και το n εξαρτάται από τη G, έτσι ώστε η z να παράγεται απότη G,

2. είναι άπειρη, αν και μόνο αν υπάρχει κάποια συμβολοσειρά z μήκουςn ∙ jzj < 2n που παράγεται από τη G.

Απόδειξη: Ας είναι n η σταθερά που εμφανίζεται στο Λήμμα Άντλησηςγια γλώσσες ΑΣ (Θεώρημα 9.1). Αν υπάρχει κάποια συμβολοσειρά z μήκουςμικρότερου του n, που παράγεται από τη G, τότε φυσικά η L δεν είναι κενή.Αλλιώς ας είναι z, jzj ¸ n η μικρότερη συμβολοσειρά που ανήκει στην L(G).Aπό το Λήμμα Άντλησης η z μπορεί να γραφεί στη μορφή z = uvwxy, όπουjvxj > 0. Αλλά τότε uv0wx0y = uwy είναι μια μικρότερη συμβολοσειράπου ανήκει στην L, δηλαδή έχουμε μια αντίφαση. Άρα jzj < n.

Παρόμοια, αν η L(G) είναι άπειρη, τότε θα υπάρχει κάποια συμβολοσειράz 2 L(G) με n ∙ jzj < 2n. Όμως και αυτή η απόδειξη είναι ανάλογη μ, αυτή

Page 212: αυτόματα και τυπικές γλώσσες dimitriou

200 Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

του Θεωρήματος 6.2 για κανονικές γλώσσες και αφήνεται για τον αναγνώστη.

Χρησιμοποιώντας το Θεώρημα 9.4 είναι εύκολο να βρούμε αλγόριθμους για ναχαρακτηρίσουμε τη γλώσσα L(G) που παράγεται από τη G. Πρώτα εξετάζουμεγια κάθε i, 0 ∙ i < n, αν υπάρχει συμβολοσειρά μήκους i η οποία παράγεται απότη G. Αν δεν υπάρχει, τότε L(G) = Â. Στη συνέχεια εξετάζουμε αν για κάθε i,n ∙ i < 2n, υπάρχει συμβολοσειρά μήκους i, η οποία ανήκει στην L(G). Αν δενυπάρχει, τότε η γλώσσα είναι πεπερασμένη, αλλιώς είναι άπειρη.

Δυστυχώς κάπου εδώ τελειώνει και η λίστα των προβλημάτων για τα οποίαυπάρχουν αλγόριθμοι απόφασης. Για άλλα, τα οποία στην περίπτωση των κανονικώνΆλυτα

προβλήματαγλωσσών είναι επιλύσιμα, όπως αν δύο γραμματικές είναι ισοδύναμες, αν υπάρχουνσυμβολοσειρές που παράγονται από δύο γραμματικές, κλπ., δεν υπάρχουν αλγόριθ-μοι απόφασης. Θα πρέπει όμως να είμαστε ευχαριστημένοι με το γεγονός ότι μερικάβασικά ερωτήματα μπορούν να απαντηθούν.9.2Δείξτε ότι εύκολα μπορούμε ν, απαντήσουμε, αν η διαφορά μιας γλώσσας ΑΣ από μιακανονική γλώσσα είναι κενή ή όχι.

ΆσκησηΑυτοαξιολόγησης9.2

ΑΣΚΗΣΕΙΣ

9.1 Δώστε ένα αναδρομικό ορισμό των συντακτικών δέντρων φροντίζοντας ναείστε όσο το δυνατόν περισσότερο ακριβείς.

9.2 Δώστε συντακτικά δέντρα για τις γραμματικές της Άσκησης 9.15 και τησυμβολοσειρά aabb.

9.3 Δείξτε ότι η γλώσσα L = faibjaibj j i; j ¸ 0g δεν είναι ΑΣ.

9.4 Έχοντας αποδείξει ότι η γλώσσα της προηγούμενης άσκησης δεν είναι ΑΣ,πώς θα χρησιμοποιούσατε το Θεώρημα 9.3 για να δείξετε ότι η γλώσσα= fxxj x 2 fa; bg¤g δεν είναι ΑΣ;

9.5 Χρησιμοποιώντας το Λήμμα Άντλησης δείξτε ότι οι παρακάτω γλώσσες δενείναι ανεξάρτητες συμφραζόμενων.

α) faibjckj i < j < kg.β) fapj όπου p πρώτος αριθμός g.γ) faibj j j = i2g.

Page 213: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 201

9.6 Ποιες από τις παρακάτω γλώσσες είναι ΑΣ; Δικαιολογήστε την απάντησήσας.

α) fx 2 fa; b; cg¤j η x έχει τον ίδιο αριθμό από a; b και cg.β) fxxxj x 2 fa; b; cg¤g.γ) fxayj x; y 2 fa; bg¤ και jxj = jyjg.δ) fx 2 fa; bg¤j ο αριθμός των b στη x είναι διπλάσιος από τον αριθμό τωνag.ε) fxyxj x; y 2 fa; bg¤ και jxj ¸ 1g.στ) Το συμπλήρωμα της fanbnj n ¸ 1g.

9.7 Δείξτε ότι οι γλώσσες ανεξάρτητες συμφραζόμενων δεν είναι κλειστές ωςπρος το συμπλήρωμά τους.

9.8 Είδαμε στο Θεώρημα 9.2 ότι το συμπλήρωμα μιας γλώσσας ΑΣ δεν είναιαπαραίτητα ΑΣ. Άρα η κατασκευή (για τις κανονικές γλώσσες) όπου παίρ-νουμε ένα αυτόματο και απλά αντιστρέφουμε τις τελικές καταστάσεις τουδεν μπορεί να ισχύει στην περίπτωση των αυτόματων στοίβας. Μπορείτε νασκεφτείτε γιατί;

9.9 Έστω L μια γλώσσα ΑΣ. Τι μπορείτε να πείτε για την LR, τη γλώσσα τωναντίστροφων συμβολοσειρών;

9.10 Ας είναι h μια συνάρτηση από το §¤ στο §¤, έτσι ώστε για οποιεσδήποτεδύο συμβολοσειρές u; v 2 §¤, h(uv) = h(u)h(v) (δείτε ξανά την Άσκηση4.11). Αποδείξτε ότι, αν L είναι μια γλώσσα ΑΣ, τότε και η h(L) είναι ΑΣ.

9.11 Έστω L = fbabaab ¢ ¢ ¢ ban¡1banbj n ¸ 1g. Χρησιμοποιώντας την Άσκηση9.10 δείξτε ότι η L δεν είναι ανεξάρτητη συμφραζόμενων.

9.12 Ολοκληρώστε την απόδειξη του Θεωρήματος 9.3. Δείξτε δηλαδή για κάθεp 2 Q1, q 2 Q2, y; z 2 §¤, ® 2 ¡¤ και k ¸ 0 ότι

(q1; yz; Z0) j=kM1(p; z; ®) και ±¤2(q2; y) = q αν και μόνο αν

([q1; q2]; yz; Z0) j=kM ([p; q]; z; ®)

9.13 Κανονική μορφή Chomsky. Δείξτε ότι κάθε γλώσσα ανεξάρτητη συμφραζό- ΜορφήChomskyμενων (η οποία δεν περιέχει ²) μπορεί να παραχθεί από μια γραμματική στην

οποία όλοι οι κανόνες έχουν τη μορφή A! ¾ ή A! BC, όπου ¾ 2 § καιA;B;C μεταβλητές.

Page 214: αυτόματα και τυπικές γλώσσες dimitriou

202 Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

9.14 Πώς αλλάζει η σταθερά n στην απόδειξη του Λήμματος Άντλησης, αν ηγραμματική είναι σε μορφή Chomsky;

9.15 Τροποποιήστε τις παρακάτω γραμματικές έτσι ώστε να μην περιέχουν κανόνεςτης μορφής A ! ² ή A ! B παρά μόνο τον κανόνα S ! ², αν είναιαπαραίτητο.

α) S ! ABA A! aA j ² B ! bB j ²β) S ! AB j ² A! aASb j a B ! bS

9.16 Μετατρέψτε τις παραπάνω γραμματικές σε μορφή Chomsky.

9.17 Αν η L είναι μια γλώσσα ΑΣ και η R κανονική, τι μπορείτε να πείτε για τηνL¡R; Για την R¡ L;

9.18 Αν η L δεν είναι ΑΣ και η F είναι πεπερασμένη, τι μπορείτε να πείτε γιατην L¡ F ; Για την L [ F ;

9.19 Δείξτε ότι η γλώσσα L = faibjckj i6= j ή i6= kg είναι ΑΣ. Στη συνέχειαδείξτε ότι το συμπλήρωμά της δεν είναι.

Σύνοψη

Στο κεφάλαιο αυτό παρουσιάσαμε το Λήμμα Άντλησης για γλώσσες ΑΣ το οποίο μαςεπιτρέπει να αποδεικνύουμε πότε μια γλώσσα L δεν είναι ΑΣ. Δείξαμε επίσης ότι, σεαντίθεση με τις κανονικές γλώσσες, οι γλώσσες ΑΣ δεν είναι κλειστές ως προς τιςπράξεις της τομής και του συμπληρώματος.

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

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης

Άσκηση 9.1 Θα χρησιμοποιήσουμε το Λήμμα Άντλησης για να δείξουμε ότι ηγλώσσα L = fx 2 f0; 1; 2g¤j ο αριθμός των 0 στη x είναι μικρότερος από τοναριθμό των 1 και μικρότερος από τον αριθμό των 2g δεν είναι ΑΣ.

Page 215: αυτόματα και τυπικές γλώσσες dimitriou

Λεξιλόγιο Αγγλικών Όρων 203

Διαισθητικά ο λόγος για τον οποίο η γλώσσα αυτή δεν είναι ΑΣ είναι γιατί οσωρός ενός αυτόματου στοίβας θα επέτρεπε τη σύγκριση των 0 με τα 1 ή των 0 μετα 2, αλλά όχι και των δύο ταυτοχρόνως. Ας υποθέσουμε λοιπόν ότι η γλώσσα είναιΑΣ και έστω n ο αριθμός του Λήμματος Άντλησης. Επιλέγουμε z = 0n1n+12n+1,το οποίο ανήκει στην L. Εφόσον jzj > n, θα ισχύουν τα συμπεράσματα τουΘεωρήματος 9.1. Άρα z = uvwxy, jvxj > 0, jvwxj ∙ n και uviwxiy 2 L, γιακάθε i ¸ 0.

Διακρίνουμε τώρα δύο περιπτώσεις: Αν το v ή το x περιέχουν τουλάχιστονένα 0, τότε λόγω του περιορισμού jvwxj ∙ n δεν μπορούν να περιέχουν κανένα 2.Άρα η συμβολοσειρά uv2wx2y θα περιέχει περισσότερα 0 από 2 και δεν μπορείνα ανήκει στην L.

Αντίθετα, αν τα v και x δεν περιέχουν 0, θα περιέχουν μόνο 1 ή 2. Αλλά τότεη συμβολοσειρά uv0wx0y θα περιέχει περισσότερα 0 και πάλι δε θα ανήκει στηνL.

Άσκηση 9.2 Ας είναι L1 μια γλώσσα ΑΣ και L2 μια κανονική γλώσσα. Θέλουμενα δείξουμε ότι υπάρχει αλγόριθμος απόφασης που ν, αποφασίζει αν η γλώσσαL1 ¡ L2 είναι κενή.

Γνωρίζουμε κατ, αρχήν ότι η διαφορά L1¡L2 μπορεί να γραφεί σαν L1 \L02,όπου L02 το συμπλήρωμα της L2. Όμως η L2 είναι κανονική γλώσσα, άρα τοίδιο θα ισχύει και για το συμπλήρωμά της. Από το Θεώρημα 9.3 γνωρίζουμε ότι ηγλώσσα L1\L02 είναι ανεξάρτητη συμφραζόμενων. Αλλά τότε υπάρχει αλγόριθμοςπου ν, αποφασίζει αν αυτή είναι κενή ή όχι.

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝΛήμμα Άντλησης Pumping Lemma

Προβλήματα Απόφασης Decision Problems

Αλγόριθμοι Απόφασης Decision Algorithms

Δέντρα Παραγωγής/Συντακτικά Δέντρα Derivation/Parsing Trees

Page 216: αυτόματα και τυπικές γλώσσες dimitriou

204 Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

Page 217: αυτόματα και τυπικές γλώσσες dimitriou

ΣΥΝΤΑΚΤΙΚΗ ΑΝΑΛΥΣΗ

Κ Ε Φ Α Λ Α Ι Ο

Σκοπός

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

Προσδοκώμενα Αποτελέσματα

Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:

² αναφέρετε τι είναι συντακτική ανάλυση και πώς σχετίζεται με την κατασκευήσυντακτικών δέντρων,

² αναφέρετε ποια είναι τα κύρια είδη της συντακτικής ανάλυσης,

² εξηγήσετε τι είναι αριστερή παραγοντοποίηση μιας γραμματικής και πότε χρειά-ζεται να εφαρμοστεί,

² περιγράψετε πώς λύνετε το πρόβλημα της αριστερής αναδρομής σε μια γραμμα-τική κατά τη διάρκεια της συντακτικής ανάλυσης από πάνω προς τα κάτω,

² περιγράψετε τις βασικές λειτουργίες ενός αναλυτή από κάτω προς τα πάνω,

² αναφέρετε πώς γίνεται η επιλογή μεταξύ μετακίνησης ενός συμβόλου στο σωρόκαι αναγωγής μιας συμβολοσειράς από το σωρό στην ανάλυση από κάτω προςτα πάνω.

205

Page 218: αυτόματα και τυπικές γλώσσες dimitriou

206 Συντακτική Ανάλυση

Έννοιες-κλειδιά

² Συντακτική ανάλυση² Είδη συντακτικής ανάλυσης² Μετατροπή ενός αυτόματου στοίβας σε συντακτικό αναλυτή² Προβλήματα κατά τη φάση της ανάλυσης από πάνω προς τα κάτω

² Αριστερή αναδρομή και παραγοντοποίηση μιας γραμματικής² Βασικές λειτουργίες ενός αναλυτή από κάτω προς τα πάνω

² Σχέσεις προτεραιότητας στη συντακτική ανάλυση

Εισαγωγικές Παρατηρήσεις

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

10.1 Ανάλυση από πάνω προς τα κάτω

Είδαμε πόσο σημαντικό είναι να γνωρίζουμε την ακολουθία των κανόνων σύμφωναμε την οποία παράγεται μια συμβολοσειρά από μια γραμματική. Για παράδειγμα,η έκφραση x+x¤y μπορεί να ερμηνευθεί ως x+(x¤y) ή ως (x+x)¤y ανάλογαμε την παραγωγή από την οποία έχει προκύψει. Φυσικά η γραμματική θα πρέπεινα μην είναι διφορούμενη, αλλά όπως αναφέραμε στο Κεφάλαιο 7 αυτό δεν είναιπάντα δυνατό.

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

ανάλυσηνται για το σκοπό αυτό ονομάζονται συντακτικοί αναλυτές. Σ, αυτό το κεφάλαιοθα δούμε δύο από τις βασικές μεθόδους συντακτικής ανάλυσης και τον τρόπομετατροπής ενός αυτόματου στοίβας σε συντακτικό αναλυτή. Οι μέθοδοι αυτές

Page 219: αυτόματα και τυπικές γλώσσες dimitriou

Ανάλυση από πάνω προς τα κάτω 207

δεν εξαντλούν φυσικά τη θεωρία αλλά αποτελούν τη βάση για την κατασκευήαποτελεσματικών συντακτικών αναλυτών.

Θα ξεκινήσουμε τη συζήτηση μ, ένα παράδειγμα. Θεωρήστε τη γλώσσα L =f0n1nj n ¸ 0g, η οποία παράγεται από τη γραμματική με κανόνες S ! 0S1 καιS ! ². Δεν είναι δύσκολο να κατασκευάσουμε ένα ντετερμινιστικό αυτόματοστοίβας για την L, επειδή όμως θέλουμε μια γενική μέθοδο κατασκευής αναλυτών, Κατασκευή

Αναλυτώνθ, αρχίσουμε κατασκευάζοντας πρώτα ένα ισοδύναμο με τη γραμματική μη ντετερ-μινιστικό αυτόματο χρησιμοποιώντας τις ιδέες του Θεωρήματος 8.2. Στη συνέχειαθα δώσουμε τους γενικούς κανόνες μετατροπής ενός τέτοιου αυτόματου σε ντετερ-μινιστικό. Θα είναι όμως πιο εύκολο να θεωρήσουμε ότι κάθε συμβολοσειρά της Lτελειώνει σε $ ή με άλλα λόγια ότι η γλώσσα προς αναγνώριση είναι η L0 = L$. Η \L0 = L$"

αντίστοιχη γραμματική τώρα δίνεται από τους κανόνες S ! T$ και T ! 0T1 j ².Εφαρμόζοντας την κατασκευή του Θεωρήματος 8.2 παίρνουμε το αυτόματο

M = (fp; q; fg;§;¡; p; Z0; ±; ffg), όπου § = f0; 1; $g, ¡ = fS; T;Z0g και ησυνάρτηση μετάβασης ± ορίζεται όπως παρακάτω:

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

0 p ² Z0 (q; SZ0)1 q ² S (q; T$) S ! T$2 q 0 0 (q; ²) Ταίριασμα 03 q 1 1 (q; ²) Ταίριασμα 14 q ² T (q; 0T1) T ! 0T15 q ² T (q; ²) T ! ²6 q $ $ (q; ²) Ταίριασμα $7 q ² Z0 (f; Z0)

(Οι υπόλοιποι συνδυασμοί) (Τίποτα)

Το παραπάνω αυτόματο μιμείται τις αριστερές παραγωγές της γραμματικής,αφού κάθε μεταβλητή στην κορυφή του σωρού αντικαθίσταται από το δεξιό μέροςτου αντίστοιχου κανόνα. Το μόνο που πρέπει να κάνουμε τώρα είναι να εξοπλίσουμετο αυτόματο με δυνατότητα παραγωγής μηνυμάτων. Έτσι, όταν αυτό χρησιμοποιείμια από τις κινήσεις 1, 4 και 5, θα μπορεί να μας ειδοποιεί για τον αντίστοιχο κανόνατης γραμματικής (δείτε ξανά το Παράδειγμα 8.2, καθώς το αυτόματο αναγνωρίζειτη συμβολοσειρά 0011). Τέτοια αυτόματα με δυνατότητες εξόδου είναι ουσιαστικάοι συντακτικοί αναλυτές. Προσέξτε τώρα ότι ο αναλυτής αυτός δουλεύει από πάνω Ανάλυση από

\πάνω προςτα κάτω"

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

Page 220: αυτόματα και τυπικές γλώσσες dimitriou

208 Συντακτική Ανάλυση

Όμως το παραπάνω αυτόματο δεν πληρεί όλες τις προϋποθέσεις που πρέπει ναέχει ένας συντακτικός αναλυτής. Αν προσέξετε καλύτερα θα δείτε ότι το M δενείναι ντετερμινιστικό, αφού, όταν στην κορυφή του σωρού είναι το T , το αυτόματοθα πρέπει να μαντέψει ποιες από τις δύο κινήσεις 4 και 5 να χρησιμοποιήσει. Ηκίνηση 4 αντικαθιστά το T με 0T1, το οποίο είναι σωστό αν το επόμενο σύμβολοεισόδου είναι το 0, ενώ σε οποιαδήποτε άλλη περίπτωση θα πρέπει να αφαιρεθεί τοT από το σωρό. Φαίνεται λοιπόν ότι μπορούμε να εξαλείψουμε το μη ντετερμινισμόκοιτώντας \μπροστά" ένα σύμβολο, χρησιμοποιώντας δηλαδή το επόμενο σύμβολοΠρόβλεψη

συμβόλωνεισόδου για να εντοπίσουμε τη σωστή κίνηση. Έτσι, αν το σύμβολο εισόδου είναι0, το αυτόματο θα πρέπει να αντικαταστήσει το T με 0T1, ενώ αν το σύμβολοείναι 1, θα πρέπει να αφαιρέσει το T από το σωρό. Ο τρόπος με τον οποίο τοM καταφέρνει να προβλέπει τη σωστή κίνηση είναι ενσωματώνοντας το επόμενοσύμβολο σε μια από τις καταστάσεις του.

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

0 p ² Z0 (q; SZ0)1 q ² S (q; T$) S ! T$2 q 0 ² (q0; ²) Πρόβλεψη 0

2.1 q0 ² 0 (q; ²) Ταίριασμα 03 q 1 ² (q1; ²) Πρόβλεψη 1

3.1 q1 1 ² (q; ²) Ταίριασμα 14 q0 ² T (q0; 0T1) T ! 0T15 q1 ² T (q1; ²) T ! ²6 q $ $ (q; ²) Ταίριασμα $7 q1 ² Z0 (f; Z0)

(Οι υπόλοιποι συνδυασμοί) (Τίποτα)

Από την κατάσταση q το αυτόματο διαβάζει ένα σύμβολο (0 ή 1) και μπαίνει σεμια από τις νέες καταστάσεις q0; q1 (κινήσεις 2 και 3). Από αυτές τις καταστάσειςξέρει ότι θα πρέπει να ταιριάξει αντίστοιχα το 0 ή 1 στην κορυφή του σωρού(κινήσεις 2:1 και 3:1). Αν όμως στην κορυφή βρίσκεται το σύμβολο T , τότε απότην πρώτη κατάσταση θα σπρώξει το 0T1 στο σωρό (κίνηση 4), ενώ από τη δεύτερηαπλά θα αφαιρέσει το T (κίνηση 5). Άρα το αυτόματο είναι ντετερμινιστικό καιαντιστοιχεί σ, έναν αναλυτή από πάνω προς τα κάτω με πρόβλεψη ενός συμβόλου.Πρόβλεψη ενός

συμβόλουΔυστυχώς, η παραπάνω ιδέα δεν μπορεί να εφαρμοστεί σε όλα τα αυτόματα που

προκύπτουν από τη εφαρμογή του Θεωρήματος 8.2. Ο λόγος είναι ότι υπάρχουνγλώσσες που γίνονται δεκτές από μη ντετερμινιστικά αυτόματα αλλά από κανέναντετερμινιστικό. Έτσι, δεν μπορούν να προκύψουν σωστοί αναλυτές ακόμα και ανχρησιμοποιήσουμε πρόβλεψη περισσότερων συμβόλων. Υπάρχουν όμως περιπτώ-σεις στις οποίες το αυτόματο μπορεί να γίνει ντετερμινιστικό, αν η γραμματική

Page 221: αυτόματα και τυπικές γλώσσες dimitriou

Ανάλυση από πάνω προς τα κάτω 209

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

ματος. Θεωρήστε τη γραμματική με κανόνες

S ! aSb j abS j aSbS j ab

η οποία προκύπτει από τη γραμματική

S ! aSbS j ²

αφαιρώντας τις ²-παραγωγές. Ένας αναλυτής γι, αυτή τη γλώσσα θα είχε πρόβλημανα αποφασίσει για τη σωστή κίνηση μιας και όλοι οι κανόνες αρχίζουν με το ίδιοσύμβολο a. Έτσι, ακόμα και αν κοιτάξουμε μπροστά ένα σύμβολο, αν το σύμβολοστο σωρό είναι το S δε θα μπορέσουμε να διαλέξουμε το σωστό κανόνα, αφού καιοι τέσσερις αρχίζουν με a. Η λύση εδώ είναι να παραγοντοποιήσουμε τα δεξιά μέρη Παραγοντοποίησητων κανόνων και να αντικαταστήσουμε τα μη κοινά μέρη με νέες μεταβλητές. Ηπαραπάνω γραμματική γίνεται λοιπόν

S ! aT

T ! Sb j bS j SbS j b

Τώρα όμως χρειάζεται να παραγοντοποιήσουμε το δεξιό μέρος των κανόνωνπου προκύπτουν από το T , γιατί κάποιοι απ, αυτούς αρχίζουν με μια κοινή συμβολο-σειρά, την \Sb". Εισάγοντας μια νέα μεταβλητή X και παραγοντοποιώντας το\Sb" παίρνουμε τους κανόνες

S ! aT

T ! SbX j bXX ! S j ²

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

Αριστερή Παραγοντοποίηση:

Όταν σε μια γραμματική υπάρχουν οι κανόνες A ! ®¯ και A !®°, όπου ® 6= ², τότε εισάγουμε μια νέα μεταβλητή A0 και τουςαντικαθιστούμε με τους κανόνες A! ®A0 και A0 ! ¯ j °.

Θα προχωρήσουμε τώρα στη δεύτερη των περιπτώσεων στις οποίες μπορείεύκολα να εξαλειφθεί ο μη ντετερμινισμός με ακόμη μια μικρή τροποποίηση της

Page 222: αυτόματα και τυπικές γλώσσες dimitriou

210 Συντακτική Ανάλυση

γραμματικής. Θεωρήστε τη γραμματική που παράγει ένα υποσύνολο των σωστώναλγεβρικών εκφράσεων:

S ! S + T

S ! T

T ! T ¤ xT ! x

Έστω ότι το αυτόματο βρίσκεται σε μια κατάσταση στην οποία το επόμενοσύμβολο εισόδου είναι το x και στην κορυφή του σωρού βρίσκεται το S. Τοαυτόματο τώρα έχει τις παρακάτω επιλογές: η επόμενη κίνηση μπορεί απλά νααντικαταστήσει το S με T , αν η είσοδος είναι το x. Ή μπορεί να αντικαταστήσειτο S με S + T και ξανά το νέο S με T , αν η είσοδος είναι το x+ x. Ή τέλος νααντικαταστήσει το νέο S με S+T , αν η είσοδος είναι το x+x+x, κοκ. Φαίνεταιλοιπόν ότι όσο μπροστά και να κοιτάξει το αυτόματο πάντα μπορεί να υπάρξει μιαείσοδος, η οποία θα το οδηγήσει σε λάθος πρόβλεψη. Το πρόβλημα εδώ είναι οικανόνες της μορφής S ! S + T , στους οποίους η μεταβλητή στο αριστερό μέροςεμφανίζεται στην αρχή και του δεξιού μέρους. Το φαινόμενο αυτό λέγεται αριστερήΑριστερή

αναδρομήαναδρομή και μπορεί να εξαλειφθεί με τη χρήση των παρακάτω κανόνων.

Αριστερή Αναδρομή:

Όταν σε μια γραμματική υπάρχουν οι κανόνες A ! A®i, 1 ∙ i ∙ mκαι A ! ¯i, 1 ∙ i ∙ n, όπου τα ¯i δεν αρχίζουν με τη μεταβλητήA, τότε εισάγουμε μια νέα μεταβλητή A0 και τους αντικαθιστούμε απότους κανόνες A ! ¯iA

0, A0 ! ®iA0 και A0 ! ², για κάθε i όπως

παραπάνω.

Ας προσπαθήσουμε να εφαρμόσουμε τις παραπάνω ιδέες για να εξαλείψουμετην αριστερή αναδρομή από τους κανόνες S ! S + T j T . Εδώ το ρόλο του ®παίζει η συμβολοσειρά +T και του ¯ η T . Εισάγοντας λοιπόν μια νέα μεταβλητήS0 παίρνουμε τους κανόνες

S ! TS0

S0 ! +TS0

S0 ! ²

Αντίστοιχα για τους κανόνες T ! T ¤ x j x παίρνουμε τις ισοδύναμες εκφράσεις

T ! xT 0

T 0 ! ¤xT 0T 0 ! ²

Έτσι η γραμματική μετατρέπεται σε μια ισοδύναμη, η οποία δεν περιέχειαριστερή αναδρομή και επομένως μπορεί να αναγνωριστεί από ένα ντετερμινιστικό

Page 223: αυτόματα και τυπικές γλώσσες dimitriou

Ανάλυση από κάτω προς τα πάνω 211

αυτόματο με πρόβλεψη ενός συμβόλου. Γραμματικές σαν την παραπάνω, πουπροκύπτουν με εξάλειψη της αναδρομής και πιθανώς αριστερή παραγοντοποίηση,ονομάζονται LL(1), γιατί μπορούν να παράγουν αποτελεσματικούς αναλυτές μεπρόβλεψη ενός συμβόλου. Αν απαιτούνται k ¸ 1 σύμβολα για τη σωστή αναγνώρι-σή τους, τότε ονομάζονται LL(k).10.1Για την ακόλουθη γραμματική, βρείτε μια ισοδύναμη LL(1) γραμματική.

S ! aAb j aAA j aB j bbAA! aAb j abB ! bBa j ba

ΆσκησηΑυτοαξιολόγησης

10.1

10.2 Ανάλυση από κάτω προς τα πάνω

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

Στην αντίθετη προσέγγιση η κατασκευή του δέντρου γίνεται από κάτω προς Ανάλυση από\κάτω προςτα πάνω"

τα πάνω. Όταν στο σωρό υπάρχουν τα παιδιά ενός κόμβου (το δεξιό μέρος ενόςκανόνα), αυτά αντικαθίστανται από τη ρίζα του υποδέντρου (τη μεταβλητή στοαριστερό μέρος του κανόνα). Η λειτουργία αυτή επιτυγχάνεται με δύο τύπουςκινήσεων: τη \μετακίνηση" των συμβόλων εισόδου στο σωρό μέχρι να σχηματιστεί Μετακίνηση,

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

Θεώρημα 10.1. Κάθε γλώσσα ανεξάρτητη συμφραζόμενων μπορεί να αναγνω-ριστεί από ένα αυτόματο στοίβας που λειτουργεί από \κάτω προς τα πάνω".

Απόδειξη: Έστω G = (V;§; S;R) μια γραμματική ΑΣ. Το αυτόματο M =

(Q;§;¡; q0; Z0; ±; F ) που εξομοιώνει τη G δίνεται από τα παρακάτω:Q = fp; fg¡ = V [§ [ fZ0g, όπου Z0 62 V [§F = ffg

Page 224: αυτόματα και τυπικές γλώσσες dimitriou

212 Συντακτική Ανάλυση

Η συνάρτηση μετάβασης ± ορίζεται ως εξής:

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολαΣωρού Κινήσεις Επεξηγήσεις

1 p a ² (p; a)Μετακίνηση συμβόλων,για κάθε a 2 §.

2 p ² ®R (p;A) Αναγωγή ®R με A, γιακάθε κανόνα A! ®.

3 p ² S (f; ²) Τελική κίνηση

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

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

Θα δείξουμε τώρα ότι η μηχανή αναγνωρίζει την ίδια γλώσσα μ, αυτή πουπαράγεται από τη γραμματική G, δηλαδή L(M) = L(G). H απόδειξη είναιανάλογη του Θεωρήματος 8.2. Η μόνη διαφορά είναι ότι τώρα μιλάμε γιαδεξιές παραγωγές, δηλαδή παραγωγές στις οποίες μόνο η δεξιότερη μεταβλητήαντικαθίσταται κάθε φορά.

Ο ισχυρισμός που επαρκεί για την απόδειξη και αφήνεται σαν άσκηση γιατον αναγνώστη (Άσκηση 10.3) είναι ο ακόλουθος:

\Αν S ¤) ®x με μια δεξιά παραγωγή, όπου x 2 §¤ και ® 2 (V [ §)¤,τότε (p; x; ®RZ0) j=¤ (p; ²; SZ0)."

Παρατηρήστε ότι θέτοντας ® = ², η x παράγεται από τη γραμματική, αν καιμόνο αν (p; x; Z0) j=¤ (p; ²; SZ0) j= (f; ²; Z0), δηλαδή αν και μόνο αν η xγίνεται δεκτή από το αυτόματο. Άρα οι δύο γλώσσες είναι ίδιες.

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

Page 225: αυτόματα και τυπικές γλώσσες dimitriou

Ανάλυση από κάτω προς τα πάνω 213

S ! E$

E ! E + T

E ! T

T ! T ¤ xT ! x

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολαΣωρού Κινήσεις Επεξηγήσεις

1 p a ² (p; a) Μετακίνηση a 2 fx;+; ¤; $g2 p ² $E (p; S) Αναγωγή S ! E$3 p ² T +E (p;E) Αναγωγή E ! E + T4 p ² T (p;E) Αναγωγή E ! T5 p ² x ¤ T (p; T ) Αναγωγή T ! T ¤ x6 p ² x (p; T ) Αναγωγή T ! x7 p ² S (f; ²)

(Οι υπόλοιποι συνδυασμοί) (Τίποτα)

Παρατηρήστε ότι η κίνηση 3, η οποία αφαιρεί το T + E από το σωρό και τοαντικαθιστά με E μπορεί να εξομοιωθεί από την παρακάτω ακολουθία κινήσεων:

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

3.1 p ² T (pT ; ²) Αφαίρεση T3.2 pT ² + (p+; ²) Αφαίρεση +3.3 p+ ² E (p;E) Αφαίρεση E και αναγωγή

Το παραπάνω αυτόματο όμως δεν είναι ντετερμινιστικό για δύο κυρίως λόγους.Ο πρώτος λόγος είναι ότι δεν είναι ξεκάθαρο πότε πρέπει να γίνει η μετακίνησηενός συμβόλου στο σωρό και πότε η αναγωγή μιας συμβολοσειράς στην κορυφήτου σωρού. Για παράδειγμα, αν T είναι το σύμβολο στο σωρό, αυτό μπορεί ναείναι το T στο δεξιό μέρος του κανόνα T ! T ¤ x, οπότε η μετακίνηση είναι ησωστή κίνηση, ή να είναι το T στον κανόνα S ! S + T , οπότε η αναγωγή είναιαπαραίτητη. Ο δεύτερος λόγος είναι ότι ακόμη και στην περίπτωση που ξέρουμε ότιπρέπει να ανάγουμε μπορεί να υπάρχουν περισσότερες από μια δυνατές αναγωγές,όπως στην περίπτωση των κανόνων T ! T ¤ x και T ! x των οποίων τα δεξιάτους μέρη τελειώνουν σε x. Είναι όμως αρκετό κάθε φορά να επιλέγουμε τημεγαλύτερη συμβολοσειρά στην κορυφή του σωρού που ταιριάζει στο δεξιό μέροςκάποιου κανόνα της γραμματικής. Άρα στην παραπάνω περίπτωση θα πρέπει ναχρησιμοποιήσουμε τον πρώτο κανόνα και να ανάγουμε το T + x στο T .

Θα δούμε τώρα πώς να επιλέγουμε μεταξύ μετακίνησης ενός συμβόλου στοσωρό ή αναγωγής κάποιας συμβολοσειράς στο σωρό. Έστω ότι στην κορυφή

Page 226: αυτόματα και τυπικές γλώσσες dimitriou

214 Συντακτική Ανάλυση

του σωρού βρίσκεται το σύμβολο a, το οποίο μπορεί να είναι μεταβλητή, ενώ τοσύμβολο εισόδου είναι το b. Η απόφαση μεταξύ μετακίνησης ή αναγωγής βασίζεταισε μια σχέση R µ (V [ §)£§, η οποία λέγεται σχέση προτεραιότητας. Έτσι, ανΣχέση

Προτεραιότηταςτο ζεύγος (a; b) ανήκει στην R, θα λέμε ότι το a έχει προτεραιότητα ή προηγείταιτου b και η σωστή κίνηση θα είναι η αναγωγή. Για να δούμε γιατί, έστω μια δεξιάπαραγωγή της μορφής S ¤) °Abx ) °¯abx. Εφόσον χτίζουμε τις παραγωγέςαπό δεξιά προς τα αριστερά, είναι λογικό να αντικαταστήσουμε τη συμβολοσειρά(¯a)R στο σωρό με το A του κανόνα A ! ¯a, όταν το a προηγείται του b ή μεάλλα λόγια όταν (a; b) 2 R.

Ο αναλυτής για τη γραμματική του παραδείγματός μας, με τα διάφορα είδηκινήσεων, φαίνεται στον Πίνακα 10.1.

Πίνακας 10.1. Συντακτικός αναλυτής μετακίνησης-αναγωγής

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

Μετακίνηση Συμβόλων1 p a Z (p; aZ) a 2 §, Z 2 fZ0; E;+; ¤g2 p a T (p; aT ) a62 f+; $g

Αναγωγή S ! E$

3 p ² $ (p$; ²)4 p$ ² E (p; S)

Αναγωγή T ! T ¤ x ή T ! x

5 p ² x (px;1; ²)6 px;1 ² ¤ (px;2; ²)7 px;2 ² T (p; T ) T ! T ¤ x8 px;1 ² Z (p; TZ) T ! x, Z6= ¤

Αναγωγή E ! E + T ή E ! T και μετακίνηση συμβόλου a 2 f+; $g9 p a T (pT;a;1; ²)10 pT;a;1 ² + (pT;a;2; ²)11 pT;a;2 ² E (p; aE) E ! E + T12 pT;a;1 ² Z (p; TZ) E ! T , Z6= +

Τελική κίνηση13 p ² S (f; ²)

(Οι υπόλοιποι συνδυασμοί) (Τίποτα)

Όπως φαίνεται από τους παραπάνω πίνακες τα σύμβολα στο σωρό είναι τεσσά-ρων ειδών: αυτά που απαιτούν μετακίνηση του επόμενου συμβόλου στο σωρό(Z0, E, + και ¤), αυτά που απαιτούν αναγωγή (x, $), αυτά που οδηγούν στην

Page 227: αυτόματα και τυπικές γλώσσες dimitriou

Ασκήσεις 215

αναγνώριση της συμβολοσειράς (S) και τέλος αυτά όπου η σωστή κίνηση εξαρτάταιαπό το επόμενο σύμβολο εισόδου (T ).

Γραμματικές όπως η παραπάνω για τις οποίες μπορεί να προκύψουν αναλυτέςβασιζόμενοι σε σχέσεις προτεραιότητας, ονομάζονται γραμματικές προτεραιότητας. Γραμματικές

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

ΑΣΚΗΣΕΙΣ

10.1 Κατασκευάστε ντετερμινιστικά αυτόματα για τις παρακάτω γραμματικές:

α) S ! aA A! aA j bA j ²β) S ! aSb j bSa j ²

10.2 Μετατρέψτε τις παρακάτω γραμματικές σε LL(1) και δώστε τους αντίστοι-χους συντακτικούς αναλυτές:

α) S ! () j x j (A) A! S j A;Sβ) S ! SA j ab A! aAbb j ab

10.3 Ολοκληρώστε την απόδειξη του Θεωρήματος 10.1 αποδεικνύοντας τον ακό-λουθο ισχυρισμό:

\Αν S ¤) ®x με μια δεξιά παραγωγή, όπου x 2 §¤ και ® 2(V [ §)¤,

τότε (p; x; ®RZ0) j=¤ (p; ²; SZ0)."

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

10.5 Κατασκευάστε έναν αναλυτή από κάτω προς τα πάνω για τη γλώσσα L$ τηςΆσκησης 10.2(α). Μπορείτε να βρείτε τη σχέση προτεραιότητας;

10.6 Η παρακάτω γραμματική είναι επίσης ασθενής γραμματική προτεραιότητας.Δώστε έναν αναλυτή από κάτω προς τα πάνω για τη γλώσσα L$.

S ! E$

E ! E + T j E ¡ T j TT ! T ¤ F j T=F j FF ! (E) j x

Page 228: αυτόματα και τυπικές γλώσσες dimitriou

216 Συντακτική Ανάλυση

Σύνοψη

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

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

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

Στην περίπτωση της ανάλυσης από κάτω προς τα πάνω ο αναλυτής επιτελείδύο βασικές λειτουργίες: μετακίνηση συμβόλων στο σωρό και αναγωγή, δηλαδήαντικατάσταση του δεξιού μέρους κάποιου κανόνα που έχει σχηματιστεί στο σωρόαπό το αντίστοιχο αριστερό μέρος του κανόνα. Το πρόβλημα σ, αυτή την περίπτωσηείναι η επιλογή μεταξύ μετακίνησης και αναγωγής. Ο αναλυτής επιλέγει τη σωστήκίνηση χρησιμοποιώντας μια σχέση προτεραιότητας R. Αν το σύμβολο στο σωρόείναι το a και το επόμενο σύμβολο εισόδου είναι b τότε η σωστή κίνηση είναιη αναγωγή, αν και μόνο αν (a; b) 2 R. Γραμματικές για τις οποίες μπορεί ναπροκύψουν σωστοί αναλυτές χρησιμοποιώντας σχέσεις προτεραιότητας, ονομάζονταιγραμματικές προτεραιότητας.

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης

Άσκηση 10.1 Έστω η ακόλουθη γραμματική

S ! aAb j aAA j aB j bbAA! aAb j abB ! bBa j ba

Θα τη μετατρέψουμε σε μια ισοδύναμη γραμματική εφαρμόζοντας πρώτα αριστερήπαραγοντοποίηση. Θα ξεκινήσουμε με τον κανόνα S παραγοντοποιώντας το a καιεισάγοντας μια νέα μεταβλητή X. Παίρνουμε λοιπόν

S ! aX j bbAX ! Ab j AA j B

Page 229: αυτόματα και τυπικές γλώσσες dimitriou

Λεξιλόγιο Αγγλικών Όρων 217

Συνεχίζοντας με τη X και παραγοντοποιώντας το A έχουμε τους εξής ισοδύναμουςκανόνες για τη S:

S ! aX j bbAX ! AY j BY ! b j A

Προχωρούμε τώρα να διορθώσουμε τους A-κανόνες, των οποίων το αριστερό μέροςαρχίζει με a. Δουλεύοντας παρόμοια παίρνουμε

A! aZ

Z ! Ab j bΚάνοντας το ίδιο και με τους B-κανόνες καταλήγουμε στους

B ! bW

W ! Ba j aΗ γραμματική που προέκυψε είναι ισοδύναμη με την αρχική και μπορεί να

εφαρμοστεί σ, αυτή πρόβλεψη ενός συμβόλου. Εφόσον δεν υπάρχει αριστερήαναδρομή συμπεραίνουμε ότι είναι LL(1) και μπορεί εύκολα να κατασκευαστείσυντακτικός αναλυτής γι, αυτήν.

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝΣυντακτική Ανάλυση Parsing

Ανάλυση από πάνω προς τα κάτω Top down Parsing

Ανάλυση από κάτω προς τα πάνω Bottom up Parsing

Συντακτικός Αναλυτής Parser

Αριστερή Παραγοντοποίηση Left Factoring

Αριστερή Αναδρομή Left Recursion

Πρόβλεψη Lookahead

Αναλυτής Μετακίνησης-Αναγωγής Shift-reduce Parser

Σχέση Προτεραιότητας Precedence Relation

Page 230: αυτόματα και τυπικές γλώσσες dimitriou

218 Συντακτική Ανάλυση

ΒΙΒΛΙΟΓΡΑΦΙΑ ΜΕΡΟΥΣ III

A.V. Aho and J.D. Ullman. Principles of Compiler Design, Addison-Wesley,Reading, 1977.Bar-Hillel, Y., M. Perles and E. Shamir \On Formal Properties of Simple PhaseStructure Grammars", in Zeitschrift fur Phonetik Sprachwissenshhaft und Kommuni-kations-forschung, pp. 143-172, 14, 1961.N. Chomsky \Three Models for the Description of Languages", in IRE Transactionson Information Theory, 2, no. 3, (1956), pp. 113-114N. Chomsky \On Certain Formal Properties of Grammars", in Information andControl, 2, no. 2, (1959), pp. 137-167.N. Chomsky \Context Free Grammars and Pushdown Storage", in Quarterly Pro-gress Report, 65, MIT Lab, Cambridge, Mass., (1962), pp. 187-194.N. Chomsky and G.A. Miller \Finite-state Languages", in Information and Con-trol, 1, (1958), pp. 91-112.J. Evey \Application of Pushdown Store Machines", in Proceedings of the 1963Fall Joint Computer Conference, Montreal, AFIPS Press, 1963, 1, pp. 215-217.Hopcroft, J. E. and J. D. Ullman. Introduction to Automαta, Theory, Languagesand Computation, 2nd Ed., Addison-Wesley, Reading, 1979.J.D. Ichbiah and S.P. Morse \A Technique for Generating almost Optimal Floyd-Evans Productions for Precedence Grammars", in Communications of the ACM, 13,no. 8, (1970) pp. 501-508.D.E. Knuth \Top Down Syntax Analysis", in Acta Informatica, 1, no. 2, (1971)pp. 79-110.Lewis, H. R. and C. Papadimitriou. Elements of the Theory of Computation,Prentice Hall, Englewood Cliffs, 1981.P.M. Lewis and R.E. Stearns \Syntax Directed Translation", in Journal of ACM,15, no. 3, (1968) pp. 465-488.J. C. Martin, Introduction to Languages and the Theory of Computation, McGraw-Hill, New York, 1991.M. Sipser, Introduction to the Theory of Computation, PWS Publishing Company,Boston, 1998.A.G. Oettinger \Automatic Syntactic Analysis and the Pushdown Store", in Pro-ceedings of Symposia in Applied Mathematics, Vol. 12, Providence R.I., AmericanMathematical Society, 1961.M.P. Schutzenberger \On Context Free languages and Pushdown Automata", inInformation and Control, 6, no. 3 (1963), pp. 246-264.S. Sippu and E. Soisalon-Soininen Parsing Theory, Springer-Verlag, New York,1987.

Page 231: αυτόματα και τυπικές γλώσσες dimitriou

Βιβλιογραφία 219

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

Τα βιβλία που αναφέρθηκαν στο Μέρος II καλύπτουν πολλά από τα θέματα καιτου Μέρους III. Ένα κλασσικό βιβλίο πάνω στη θεωρία των μεταγλωττιστών είναιτο βιβλίο των Aho και Ullman, ενώ ένα πιο πρόσφατο βιβλίο πάνω σε τεχνικέςσυντακτικής ανάλυσης είναι το βιβλίο των Sippu και Soisalon-Soininen.

Οι γραμματικές ανεξάρτητες συμφραζόμενων και οι ιδιότητές τους εμφανίζονταιγια πρώτη φορά στα άρθρα του Chomsky (1956) και (1959), ενώ η ισοδυναμίατων κανονικών γραμματικών με τα πεπερασμένα αυτόματα αποδείχθηκε από τουςChomsky και Miller (1958). Τα αυτόματα στοίβας μελετήθηκαν για πρώτη φοράαπό τον Oettinger (1961), ενώ η ισοδυναμία τους με τις γραμματικές αποδείχθηκεανεξάρτητα από τους Chomsky (1962), Evey (1963) και Schutzenberger (1963). ToΛήμμα Άντλησης για γραμματικές εμφανίζεται στο άρθρο των Bar-Hillel, M. Perlesκαι E. Shamir (1961). Οι LL(1) γραμματικές εμφανίζονται για πρώτη φορά σταάρθρα των Lewis και R.E. Stearns (1968) και Knuth (1971), ενώ οι γραμματικέςπροτεραιότητας στο άρθρο των Ichbiah και Morse (1970).

Page 232: αυτόματα και τυπικές γλώσσες dimitriou

220 Συντακτική Ανάλυση

Page 233: αυτόματα και τυπικές γλώσσες dimitriou

ΕΠΙΛΟΓΟΣ

ΜΗΧΑΝΕΣ TURING ΚΑΙΥΠΟΛΟΓΙΣΜΟΣ

Στα Μέρη II και III είδαμε ότι ούτε τα πεπερασμένα αυτόματα ούτε τα αυτόματαστοίβας μπορούν να θεωρηθούν γενικά μοντέλα υπολογισμού, αφού δεν μπορούννα αναγνωρίσουν απλές γλώσσες όπως την fanbncnj n ¸ 0g. Τα πεπερασμένααυτόματα μπορούν να \θυμούνται" μόνο ένα περιορισμένο ποσό πληροφορίας,ενώ τα αυτόματα στοίβας μπορούν να επεξεργαστούν την πληροφορία σύμφωναμε τους κανόνες που καθορίζουν τη δομή του σωρού.

Πενήντα χρόνια πριν, ένας Άγγλος μαθηματικός, ο Alan Turing, προσπάθησενα ορίσει μια μηχανή που ν, αποτελεί ένα \μοντέλο υπολογισμού". Το πρότυπό τουήταν ένας \ανθρώπινος υπολογιστής", δηλαδή ένας άνθρωπος με μολύβι και χαρτίπου προσπαθεί να λύσει ένα πρόβλημα με κάποιο συστηματικό τρόπο. O Turing,εντοπίζοντας τα στοιχειώδη βήματα που απαιτούσε η διαδικασία της επίλυσης απότον άνθρωπο, προσπάθησε να ορίσει μια μηχανή που θα ήταν ικανή να λειτουργήσειμε παρόμοιο τρόπο. Ήθελε έτσι να καταλήξει στο συμπέρασμα ότι κάθε αλγοριθμικήδιαδικασία θα μπορούσε να εκτελεστεί και από μια μηχανή μ, ένα βασικό ρεπερτόριοεντολών.

Οι στοιχειώδεις λειτουργίες ενός υπολογισμού από έναν άνθρωπο σύμφωνα μετον Turing είναι η εξέταση κάποιου συμβόλου, η αντικατάστασή του με κάποιοάλλο και η μεταβίβαση της προσοχής σε κάποιο άλλο σημείο του χαρτιού. Όλααυτά όμως με την προϋπόθεση ότι η επιλογή μεταξύ αυτών των λειτουργιώνεξαρτάται από το τρέχον σύμβολο και την προηγούμενη κατάσταση στην οποίαείχε περιέλθει ο \ανθρώπινος υπολογιστής".

221

Page 234: αυτόματα και τυπικές γλώσσες dimitriou

222 Επίλογος

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

Τι όμως μας κάνει να πιστεύουμε ότι μία τέτοια μηχανή θα μπορούσε νααποτελεί ένα γενικό μοντέλο υπολογισμού; Η απάντηση είναι ότι οποιαδήποτεεπέκταση της βασικής μηχανής δε φαίνεται να προσθέτει σε \υπολογιστική ισχύ",αλλά είναι ισοδύναμη με την αρχική. Φυσικά, όλες οι επεκτάσεις θα πρέπει νακινούνται στο ίδιο κλίμα, δηλαδή οι λειτουργίες της μηχανής θα πρέπει να μπορούννα εκτελεστούν μόνο μ, ένα πεπερασμένο ποσό δουλειάς σε κάθε βήμα. Ανεπιτρέπαμε τη δυνατότητα η μηχανή μας να μπορεί να απαντήσει άπειρες ερωτήσειςσ, ένα μόνο βήμα, τότε φυσικά τα μοντέλα δε θα ήταν ίδια, αλλά πόσο ρεαλιστικόθα ήταν κάτι τέτοιο;

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

Είναι πεποίθησή μου ότι με τις γνώσεις που απόκτησε ο αναγνώστης σε αυτότο βιβλίο θα μπορέσει να κατανοήσει περισσότερο τα ερωτήματα που προκύπτουναπό τη μελέτη των μοντέλων υπολογισμού και να καταλάβει καλύτερα τι σημαίνειΘεωρία Υπολογισμού.

Page 235: αυτόματα και τυπικές γλώσσες dimitriou

ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ

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

Κεφάλαιο 11.1 Αληθής, Αληθής, Ψευδής, Ψευδής, Αληθής, Ψευδής, Αληθής, Ψευδής.

1.2 A [B, A \B, A [B, Â.

1.4 (A [B)¡ (A \B), (A [B [C)¡ (A \B \C).

1.5 fÂg, ffcg; fa; cg; fb; cg; fa; b; cgg, f(a; b; 1); (a; c; 1)g.

1.6 f¡1(10) = f(0; 10); (1; 9); (2; 8); (3; 7); (4; 6); (5; 5); (6; 4); (7; 3); (8; 2); (9; 1);(10; 0)g. Το μέγεθος του f¡1(k) είναι k + 1.

1.8 Θα πρέπει a6= 0. Τότε f¡1a;b (y) = (y ¡ b)=a.

1.10 α) Και οι δύο 1-1. β) g επί και g¡1(C) µ f(A).

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

1.13 Η R είναι σχέση ισοδυναμίας.

1.14 f2; 4g, f0g, fÂg.

1.18 fÂg, ffag; fbg; fcgg, ffa; bg; fb; cg; fa; cgg, ffa; b; cgg.

1.19 Η f μπορεί να είναι οποιαδήποτε αρκεί ν, αναθέτει την ίδια τιμή στα στοιχείαμιας κλάσης.

1.20 Αληθής, Ψευδής, Αληθής, Αληθής, Αληθής.

223

Page 236: αυτόματα και τυπικές γλώσσες dimitriou

224 Απαντήσεις Ασκήσεων

1.21 Όλοι Αληθείς.

1.22 p ^ :q, p! q, p _ q, (:p ^ :q) _ (:p ^ r) _ (q ^ r), p ^ q, T .

1.28 Σίγουρα ισχύει L¤ ½ §¤. Δείξτε χρησιμοποιώντας την προηγούμενη άσκησηότι §¤ µ L¤.

1.30 Οι συμβολοσειρές αρχίζουν από a και δεν περιέχουν δύο συνεχόμενα b.

1.31 L1 = fa; bg¤fbbgfa; bg¤, L2 = §(§§)¤, L3 = c¤(a+ bc¤)¤.

Κεφάλαιο 2

2.1 Δείξτε ότι κάθε συμβολοσειρά μήκους μεγαλύτερου του 12 μπορεί να εκφραστείσαν άθροισμα από 3 και 7.

2.6 Το επαγωγικό βήμα δεν ισχύει για K = 1, δηλαδή όταν το σύνολο αποτελείταιαπό δύο στοιχεία.

2.9 Χρησιμοποιήστε επαγωγή στο M .

2.10 Μετακινούμε πρώτα τους n¡ 1 δίσκους στο στύλο B, χρησιμοποιώντας τονC σαν ενδιάμεσο. Έπειτα το μεγαλύτερο δίσκο στο C και τέλος τους n¡ 1δίσκους από το B στο C. Η αναδρομική σχέση είναι λοιπόν T (n) = 2T (n¡1) + 1. Η λύση της αναδρομής είναι T (n) = 2n ¡ 1.

2.11 L(n) = L(n¡ 1) + n.

Κεφάλαιο 3

3.1 ² = ¤.

3.3 Ψευδές, Αληθές, Ψευδές, Ψευδές.

3.4 0¤1¤, (²+ 0 + 00)(1 + 10 + 100)¤.

3.5 α) 1¤01¤01¤, β) (0 + 1)¤01¤0(0 + 1)¤, γ) (0 + 10 + 110)¤(² + 1 + 11), δ)(²+ 1)(01)¤(0 + ²), ε) (0 + 1)¤010(0 + 1)¤, στ) (01 + 10)¤

3.6 (0 + 1)¤0, (0 + 5)¤.

3.12 Αν r; s είναι δύο εκφράσεις, τότε (rs)R = (sRrR), (r+ s)R = (rR+ sR) και(r¤)R = (rR)¤.

Page 237: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων 225

Κεφάλαιο 4

4.1 Το αλφάβητο είναι το § = f10; 20; 50;Kg, όπου K είναι το σύμβολο πουδηλώνει το πάτημα του κουμπιού. Οι καταστάσεις του αυτόματου απλάθυμούνται το ποσό που έχει αποθηκευτεί στη μηχανή.

4.4 Αν τα δύο αυτόματα δεν αναγνωρίζουν την ίδια γλώσσα, θα υπάρχει κάποιοx που χρησιμοποιεί τις διαγραμμένες καταστάσεις για να γίνει δεκτό. Όμωςαυτές οι καταστάσεις δεν είναι προσπελάσιμες, άρα δεν μπορεί να υπάρχειτέτοιο x.

4.5 Το αυτόματο μεταβαίνει στην κατάσταση 2, αν η συμβολοσειρά περιέχει ακρι-βώς ένα παραπάνω 0 από ότι 1. Αντίστροφα ισχύει για την κατάσταση 3.Χρησιμοποιείστε τώρα επαγωγή στο μήκος μιας συμβολοσειράς που γίνεταιδεκτή απ, το αυτόματο.

4.6 L1 = (01)¤0, L2 = ², L3 = (10 + 01)¤, L4 = (00)¤ + (00)¤11(11)¤.

4.8 Το αυτόματο αποτελείται από τρεις καταστάσεις, τις 0, 1 και 2. Από τηνκατάσταση K με είσοδο 0 πηγαίνουμε στην κατάσταση 2K (modulo 3), ενώμε είσοδο 1 στην κατάσταση 2K + 1 (modulo 3).

4.12 Η IL είναι σχέση ισοδυναμίας.

4.14 Το αυτόματο πρέπει ν, αποτελείται απ, τον ελάχιστο αριθμό καταστάσεων.Ο αριθμός των κλάσεων είναι πεπερασμένος, γιατί και οι καταστάσεις είναιπεπερασμένες.

4.16 Για το συμπλήρωμα απλά μετατρέπουμε τις μη τελικές καταστάσεις τουαυτόματου σε τελικές.

Κεφάλαιο 5

5.2 L1 = (10 + 101)¤, L2 = (01 + 10)¤(11 + 00)¤

5.4 α) f1; 2; 5; 6; 3g, β) f3; 4; 1; 2; 5; 6g γ) f4; 1; 2; 5; 6; 3g, δ) f4; 1; 2; 5; 6; 3g, ε)f4, 1, 2, 5, 6, 3g.

5.6 α) Αληθές, β) Αληθές γ) Αληθές δ) Ψευδές

5.7 Αν ²62 L, το νέο αυτόματο αναγνωρίζει τη γλώσσα L+.

5.8 Δείτε την Άσκηση 5.11.

Page 238: αυτόματα και τυπικές γλώσσες dimitriou

226 Απαντήσεις Ασκήσεων

5.10 α) Αντιστρέψτε τα βέλη του αυτόματου και ξεκινήστε από τις τελικές καταστά-σεις. Πότε η συμβολοσειρά γίνεται δεκτή;β) Ξεκινήστε από τα δύο άκρα του αυτομάτου (αρχική, τελικές καταστάσεις)για να συναντηθείτε στη μέση.

5.13 L = (0¤1 + 1¤0)¤.

Κεφάλαιο 6

6.2 Θέστε q = jvj και p = juj+ jwj.

6.3 Κανονικές είναι η (α) και η (ζ).

6.4 α) Ψευδές β) Ψευδές γ) Ψευδές δ) Αληθές ε) Ψευδές στ) Ψευδές.

6.5 α) Μετατρέψτε το αυτόματο σε ντετερμινιστικό.

β) Ελέγξτε αν L(M) = L1 όπου L1 = f²g.γ) Κατασκευάστε πρώτα ένα αυτόματο για την R.

δ) Ελέγξτε αν L(M1) [ L(M2) = §¤.

6.6 α) Ελέγξτε αν L1¡L = Â, όπου L1 = §¤. Γιατί είναι λάθος να ελέγξουμε ανL¡ L1 = Â;β) Κατασκευάστε το αυτόματο για την L0. Προσέξτε δεν αρκεί να ελέγξουμεαν η L είναι άπειρη.

Κεφάλαιο 7

7.1 S ! aSa j bSb j a j b.

7.2 α) Το aibjck μπορεί να γραφεί στη μορφή ak+jbjck = akajbjck.β, γ) Εκφράστε τις γραμματικές ως ένωση απλούστερων γραμματικών.δ) Για κάθε a που παράγεται πρέπει να παράγονται ένα ή δύο b.ε) Αναλύστε τη γλώσσα faibjckdlj i + j = k + lg ως ένωση απλούστερωνγλωσσών, όπου i+ j = k + l αλλά i = l, i > l ή i < l.στ) Το συμπλήρωμα της fanbnj n ¸ 0g θα αποτελείται από συμβολοσειρέςπου αρχίζουν από b ή περιέχουν κάποιο b που ακολουθείται από a ή έχουντη μορφή aibj , όπου i6= j. Όλες αυτές οι γλώσσες μπορούν να εκφραστούνμε γραμματικές.

7.7 Η γλώσσα όλων των συμβολοσειρών στο fa; bg¤ που περιέχουν ζυγό αριθμόαπό a και μονό αριθμό από b.

Page 239: αυτόματα και τυπικές γλώσσες dimitriou

Απαντήσεις Ασκήσεων 227

7.10 α) Η γλώσσα που παράγεται απ, τη γραμματική είναι η a¤b¤a¤. Είναι φανερόότι η γραμματική είναι διφορούμενη, αφού μια ακολουθία από a (χωρίςκαθόλου b) μπορεί να προκύψει είτε απ, το πρώτο A είτε απ, το τελευταίο.Υποχρεώνοντας τις ακολουθίες αυτές να προκύπτουν μόνο απ, το πρώτο A,παίρνουμε την ακόλουθη γραμματική.

S ! aA j ²A! aA j bB j ²B ! bB j aA0 j ²A0 ! aA0 j ²

β) Η γλώσσα που παράγεται απ, τη γραμματική είναι η fakbk+(ab)kj k ¸ 0g.Η ασάφεια οφείλεται στο γεγονός ότι το ab μπορεί να παραχθεί τόσο απ, τοA όσο και απ, το B. Η παρακάτω γραμματική λύνει αυτό το πρόβλημα καιπαράγει την ίδια γλώσσα.

S ! aAb j abB j ab j ²A! aAb j abB ! abB j ab

Κεφάλαιο 8

8.5 Αν υπάρχει κάποιο ντετερμινιστικό αυτόματο M που αναγνωρίζει την L μεάδειο σωρό, τότε το M θα αδειάσει το σωρό του διαβάζοντας το τελευταίοσύμβολο της x και θα την αναγνωρίσει αφού x 2 L. Εφόσον όμως η yπεριέχει τουλάχιστον ένα ακόμη σύμβολο πέραν της x, η y δε θα γίνει δεκτήγιατί ο σωρός θα είναι άδειος και το αυτόματο δε θα μπορεί να κινηθεί.

8.7 Εισάγετε νέες καταστάσεις ώστε η συμβολοσειρά που αντικαθιστά την κορυφήτου σωρού να μπορεί να προκύψει από μικρότερες συμβολοσειρές μήκους 2.

8.8 H L είναι κανονική. Εφόσον ο σωρός περιέχει πάντα το πολύ k σύμβολα, τοαυτόματο στοίβας θα βρίσκεται πάντα σε μία από ένα πεπερασμένο πλήθοςκαταστάσεων. Τότε όμως μπορεί να εξομοιωθεί από ένα απλό αυτόματο.

8.10 Το αυτόματο για το β) φαίνεται παρακάτω:

Page 240: αυτόματα και τυπικές γλώσσες dimitriou

228 Απαντήσεις Ασκήσεων

ΑριθμόςΚίνησης Κατάσταση Σύμβολο

ΕισόδουΣύμβολοΣωρού Κινήσεις Επεξηγήσεις

0 q0 ² Z0 (q1; SZ0)1.1 q1 [ [ (q1; ²) Ταίριασμα [1.2 q1 ] ] (q1; ²) Ταίριασμα ]2.1 q1 ² S (q1; SS) S ! SS2.2 q1 ² S (q1; [S]) S ! [S]2.3 q1 ² S (q1; ²) S ! ²3 q1 ² Z0 (f; Z0)

(Οι υπόλοιποι συνδυασμοί) (Τίποτα)

8.11 Η γραμματική αποτελείται από τους παρακάτω κανόνες:

S ! [q0; Z0; q1] [q1; Z0; q1]! ²

[q0; Z0; q1]! 0[q0; a; q1][q1; Z0; q1] [q1; a; q1]! ²

[q1; a; q1]! 0[q0; a; q1][q1; a; q1] [q1; a; q1]! 1

[q0; a; q1]! 1

Κεφάλαιο 9

9.4 M \ fa¤b¤a¤b¤g = L.

9.6 α) Όχι ΑΣ β) Όχι ΑΣ γ) ΑΣ δ) ΑΣ ε) Όχι ΑΣ στ) ΑΣ

9.8 Το πρόβλημα είναι ο μη ντετερμινισμός.

9.9 Η LR είναι και αυτή ΑΣ.

9.11 Ποια γλώσσα h(L) προκύπτει, αν πάρουμε h(a) = aa και h(b) = a; Είναιαυτή η γλώσσα ΑΣ;

9.13 Καταρχήν μετατρέψτε τη γραμματική σε μια που δεν περιέχει ² ή μοναδιαίουςκανόνες. Στη συνέχεια εισάγετε νέες μεταβλητές για να φέρετε τη γραμματικήσε μορφή Chomsky.

9.14 Κάθε κόμβος έχει το πολύ δύο παιδιά, άρα n = 2m+1, όπου m ο αριθμός τωνμεταβλητών.

9.17 Η L¡R είναι ΑΣ λόγω του Θεωρήματος 9.3. H R¡ L όχι απαραίτητα.

9.18 Και οι δύο δεν είναι ΑΣ.

Page 241: αυτόματα και τυπικές γλώσσες dimitriou

ΓΛΩΣΣΑΡΙ ΒΑΣΙΚΩΝ ΟΡΩΝ

Στο παράρτημα αυτό παραθέτουμε ένα γλωσσάρι με τους κυριότερους όρους πουεμφανίζονται σ, αυτό το βιβλίο.

Μοντέλο ΥπολογισμούΗ θεωρία του υπολογισμού αρχίζει μ, ένα ερώτημα: Ποια είναι η έννοια του

υπολογισμού; Ίσως αυτή δεν είναι μια τόσο έξυπνη ερώτηση, αφού θα μπορούσαμεν, απαντήσουμε ότι υπολογισμός είναι ό,τι κάνει ένας υπολογιστής. Και σχεδόνόλοι έχουμε δει ή έχουμε ακούσει για τους υπολογιστές. Όμως, οι πραγματικοίυπολογιστές είναι αρκετά περίπλοκοι για να χτιστεί μια μαθηματική θεωρία πάνωτους, πόσο μάλλον να δώσει απαντήσεις στα ερωτήματα που προκύπτουν από τημελέτη αλγοριθμικών διαδικασιών. Για το λόγο αυτό χρησιμοποιούμε εξιδανικευμέ-νους υπολογιστές, τους οποίους καλούμε μοντέλα υπολογισμού. Ένα τέτοιο μοντέλο,όπως κάθε μοντέλο, μπορεί να είναι ακριβές και να περιγράφει σωστά ορισμέναφαινόμενα, αλλά όχι όλα. Ανάλογα λοιπόν με τα χαρακτηριστικά που θέλουμε ν,

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

Πεπερασμένο ΑυτόματοΤα πεπερασμένα αυτόματα αποτελούν καλά μοντέλα για υπολογιστές με πάρα

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

229

Page 242: αυτόματα και τυπικές γλώσσες dimitriou

230 Γλωσσάρι Βασικών Όρων

Συνάρτηση Μετάβασης ΑυτομάτουΌταν ένα αυτόματο M δεχτεί κάποια είσοδο, τότε αντιδρά μεταβαίνοντας σε

μια νέα κατάσταση. Οι κανόνες σύμφωνα με τους οποίους το αυτόματο επιλέγειτην επόμενη κατάσταση κωδικοποιούνται στη συνάρτηση μετάβασης ±. Έτσι, αντο M βρίσκεται στην κατάσταση q και διαβάζει το σύμβολο ¾, τότε με ±(q; ¾)συμβολίζεται η κατάσταση στην οποία περνά το αυτόματο.

Αναγνώριση ΓλωσσώνΑν το αυτόματο ξεκινώντας από μια αρχική κατάσταση και διαβάζοντας τα

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

Κανονικές ΕκφράσειςΣτα μαθηματικά, μπορούμε να χρησιμοποιήσουμε τα σύμβολα + και £ για να

φτιάξουμε εκφράσεις, όπως η (4 £ 5) + 10. Με παρόμοιο τρόπο, μπορούμε ναχρησιμοποιήσουμε τις κανονικές πράξεις για να φτιάξουμε εκφράσεις που περιγρά-φουν γλώσσες. Ενώ όμως η τιμή μιας αριθμητικής έκφρασης είναι ένας αριθμός,η τιμή μιας κανονικής έκφρασης είναι μια γλώσσα. Ως παράδειγμα θεωρήστετην έκφραση 1(0 [ 1)¤0, η οποία περιγράφει τη γλώσσα των συμβολοσειρών πουαρχίζουν με 1 και τελειώνουν με 0. Οι κανονικές εκφράσεις παίζουν σημαντικόρόλο σε υπολογιστικές εφαρμογές χειρισμού κειμένων. Κάποιος χρήστης που θαήθελε να βρει σ, ένα κείμενο μια ακολουθία χαρακτήρων που αρχίζει από 1 καιτελειώνει σε 0 θα μπορούσε να την περιγράψει με μια κανονική έκφραση όπως ηπαραπάνω.

Κανονικές ΓλώσσεςΜια γλώσσα δεν είναι παρά ένα σύνολο από διαφορετικές ακολουθίες χαρακτή-

ρων, τις λεγόμενες συμβολοσειρές. Όταν μια τέτοια γλώσσα μπορεί να παραχθείμε εφαρμογή των (κανονικών) πράξεων της ένωσης, συνένωσης και του αστεριούKleene, τότε η γλώσσα λέγεται κανονική. Ισοδύναμα, θα μπορούσαμε να πούμεότι κανονικές είναι γλώσσες που μπορούν ν, αναγνωριστούν από πεπερασμένααυτόματα, αφού αποδεικνύεται ότι οι δύο ορισμοί ταυτίζονται. Με αυτή την έννοιαγνωρίζουμε ακριβώς τις δυνατότητες των πεπερασμένων αυτομάτων. Αν θέλουμελοιπόν ν, αναγνωρίσουμε και πιο πολύπλοκες γλώσσες θα πρέπει ν, αυξήσουμε ταχαρακτηριστικά τους, δηλαδή να περάσουμε σε πιο ισχυρά μοντέλα υπολογισμού.

Page 243: αυτόματα και τυπικές γλώσσες dimitriou

Γλωσσάρι Βασικών Όρων 231

Μη ΝτετερμινισμόςΈνας τρόπος αύξησης των δυνατοτήτων ενός αυτόματου είναι με τη χρήση

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

Λήμμα Άντλησης για Κανονικές ΓλώσσεςΜια τεχνική απόδειξης της μη κανονικότητας μιας γλώσσας προκύπτει από

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

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

Γραμματικές Ανεξάρτητες Συμφραζόμενων (ΑΣ)Τα αυτόματα και οι κανονικές εκφράσεις είναι δύο ισοδύναμες μέθοδοι περιγρα-

φής γλωσσών. Παρ, όλη όμως την εκφραστικότητά τους δεν μπορούν να περιγρά-ψουν σχετικά απλές γλώσσες όπως την f0n1n j n ¸ 0g. Οι γραμματικές ανεξάρτη-τες συμφραζόμενων είναι μια πιο ισχυρή μέθοδος περιγραφής γλωσσών, αφούμπορούν να χρησιμοποιηθούν για να περιγράψουν χαρακτηριστικά που έχουν κάποιααναδρομική δομή. Μια γραμματική αποτελείται από μια συλλογή κανόνων τηςμορφής A ! ®, όπου το A λέγεται μεταβλητή και το ® είναι μια συμβολοσειράπου μπορεί να αποτελείται από μεταβλητές ή απλά σύμβολα. Ένας τέτοιος κανόνας

Page 244: αυτόματα και τυπικές γλώσσες dimitriou

232 Γλωσσάρι Βασικών Όρων

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

ΑσάφειαΜερικές φορές μια γραμματική μπορεί να παράγει μια συμβολοσειρά με πολ-

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

Αυτόματα ΣτοίβαςΈνα άλλο μοντέλο υπολογισμού είναι τα αυτόματα στοίβας. Τα αυτόματα

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

Λήμμα Άντλησης για Γλώσσες ΑΣΑν και οι κανονικές γλώσσες είναι γνήσιο υποσύνολο των γλωσσών ανεξάρτη-

των συμφραζόμενων, ωστόσο υπάρχουν απλές γλώσσες που δεν μπορούν να παραχ-θούν ούτε από κάποια γραμματική. Το λήμμα άντλησης για γλώσσες ΑΣ είναι μιατεχνική που μας επιτρέπει να δείξουμε ότι κάποιες άπειρες γλώσσες δεν είναι ΑΣ(μια πεπερασμένη γλώσσα είναι κανονική, άρα και ΑΣ). Βασίζεται και αυτό σε μιαιδιότητα όλων των γλωσσών ΑΣ που λέει ότι οι συμβολοσειρές τους μπορούν ν,

αντληθούν απεριόριστα. Σ, αυτή την περίπτωση όμως η \άντληση" είναι λίγο πιοπερίπλοκη: οποιαδήποτε συμβολοσειρά, μήκους μεγαλύτερου από κάποιο συγκεκρι-μένο αριθμό, μπορεί να χωριστεί σε πέντε τμήματα, ώστε το δεύτερο και τοτέταρτο μπορούν να επαναληφθούν πολλές φορές και η προκύπτουσα συμβολοσειρά

Page 245: αυτόματα και τυπικές γλώσσες dimitriou

Γλωσσάρι Βασικών Όρων 233

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

Συντακτική ΑνάλυσηΜια σημαντική εφαρμογή των γραμματικών ΑΣ συναντάται κατά τη φάση του

μεταγλωττισμού (compilation) ενός προγράμματος γραμμένου σε κάποια γλώσσαπρογραμματισμού. Οι περισσότεροι μεταγλωττιστές περιέχουν ένα τμήμα πουλέγεται συντακτικός αναλυτής, το οποίο προσπαθεί να εξάγει το νόημα του προγράμ-ματος πριν από την παραγωγή του κώδικα μηχανής και γενικότερα, για δεδομένηγραμματική, να βρεί μια ακολουθία κανόνων της γραμματικής η οποία παράγει μιασυγκεκριμένη συμβολοσειρά. Η φάση αυτή της επεξεργασίας του προγράμματοςλέγεται συντακτική ανάλυση. Δύο βασικές μέθοδοι συντακτικής ανάλυσης είναι ηανάλυση από πάνω προς τα κάτω και η ανάλυση από κάτω προς τα πάνω, οι οποίεςδιαφοροποιούνται ως προς τον τρόπο που αναπαράγουν την ακολουθία κανόνων.Η πρώτη αναπαράγει τη συμβολοσειρά ξεκινώντας από την αρχική μεταβλητή τηςγραμματικής, ενώ η δεύτερη από τη ζητούμενη συμβολοσειρά.

Μηχανές TuringΤα πεπερασμένα αυτόματα είναι καλά μοντέλα για συσκευές που έχουν περιορι-

σμένη μνήμη. Τα αυτόματα στοίβας είναι καλά μοντέλα για συσκευές που μπορούννα χρησιμοποιηθούν μόνο με τον τρόπο ενός σωρού. Είναι όμως φανερό ότικαι τα δύο είναι πολύ περιοριστικά για να θεωρηθούν μοντέλα για πραγματικούςυπολογιστές. Ένα πιο ισχυρό μοντέλο, που προτάθηκε από τον Alan Turing το1936, είναι η μηχανή Turing. Παρόμοια με ένα πεπερασμένο αυτόματο, αλλά μεάπειρη μνήμη, μια τέτοια μηχανή μπορεί να κάνει οτιδήποτε μπορεί να κάνει καιένας πραγματικός υπολογιστής. Μελετώντας λοιπόν τις μηχανές αυτές μπορούμενα καταλάβουμε καλύτερα την έννοια του υπολογισμού και γενικότερα τι μπορεί ναεπιλυθεί από μια αλγοριθμική διαδικασία. Δυστυχώς όμως, ακόμα και μια τέτοιαμηχανή δεν μπορεί να λύσει ορισμένα προβλήματα. Ο λόγος είναι όχι επειδή δενείμαστε αρκετά έξυπνοι για να βρούμε λύση αλλά επειδή τέτοια λύση δεν μπορείνα υπάρξει ποτέ. Κατά κάποια έννοια, αυτά τα προβλήματα είναι πέρα από ταθεωρητικά όρια του υπολογισμού. Αντικείμενο λοιπόν της θεωρίας υπολογισμούείναι η μελέτη των ερωτημάτων που έχουν να κάνουν με τις διάφορες πεπερασμένεςμηχανές και γενικότερα με την έννοια του υπολογισμού.

Page 246: αυτόματα και τυπικές γλώσσες dimitriou

ΕΥΡΕΤΗΡΙΟ

Α

ΑΣ, Δες Αυτόματα ΣτοίβαςΑΣ, Δες Ανεξάρτητες ΣυμφραζόμενωνΑλγόριθμος, 55Αλγόριθμος απόφασης, 134-137, 197-200Αλφάβητο, 20Άμεση απόδειξη, 18Αν . . . τότε, 16Αν και μόνο αν, 17Αναγνώριση

από ΑΣμε άδειο σωρό, 172ισοδυναμία δύο τύπων, 172-175με τελική κατάσταση, 172

από ΠΑ, 75από ΜΠΑ, 101από ΜΠΑ-², 103

Αναγνώριση γλωσσών, 22, 55, 75, 101Αναγωγή, 211Αναδρομικός ορισμός, 45Ανακλαστική, 12Ανάλυση, Δες Συντακτική ΑνάλυσηΑναλυτής, Δες Συντακτικός ΑναλυτήςΑντιθετοαντίστροφος, 19Αντιμεταθετικότητα, 7Αντιστοιχία, 10Αντίστροφη

γλώσσα, 121συμβολοσειρά, 46συνάρτηση, 10

Αντισυμμετρική, 12Απόδειξη

Άμεση, 18Έμμεση, 19με αντιθετοαντιστροφή, 19με αντίφαση, 18με επαγωγή, Δες Αρχή μαθηματικής Ε-

παγωγήςΑρχή μαθηματικής επαγωγής, 38, 42Αρχή περιστεροφωλιών, 41Αρχική κατάσταση

σε ΑΣ, 171σε ΠΑ, 73

Αριστερή αναδρομή, 210Αλγόριθμος εξάλειψης, 210

Αριστερή παραγωγή, 149Αρχικό σύμβολο σωρού, 168, 171Ασάφεια, 149Ασαφείς γραμματικές, 149Αστέρι Kleene, 21Ασθενείς γραμματικές προτεραιότητας, 215Αυτόματο στοίβας, x, 143, 171

Αναγνώρισημε άδειο σωρό, 172με τελική κατάσταση, 172

Εξομοίωση παραγωγής από, 176Ισοδυναμία δύο τύπων αναγνώρισης, 172-

175Ντετερμινιστικό, 175Ορισμός, 171Στιγμιαία περιγραφή, 171που αντιστοιχεί σε Γραμματική ΑΣ, 176-

178Αφηρημένη μηχανή, 23, 71

Β

Βάση επαγωγής, 40, 43

Γ

Γράφημα, 23Γραμματική Ανεξάρτητη Συμφραζόμενων, 143,

147Γλώσσα που παράγεται από, 148Ισοδύναμη με ΑΣ, 178-182Κανονική, Δες Κανονική Γραμματική

Γλώσσα Ανεξάρτητη Συμφραζόμενων, 148Ένωση, 155Συνένωση και Αστέρι Kleene, 155Συμπλήρωμα, 195Τομή με, 195Τομή με κανονική γλώσσα, 196που γίνεται δεκτή από ντετερμινιστικό

ΑΣ, 175Γλώσσα μη Ανεξάρτητη Συμφραζόμενων, 193-

195Γραμματική προτεραιότητας, 215

234

Page 247: αυτόματα και τυπικές γλώσσες dimitriou

ΕΥΡΕΤΗΡΙΟ 235

Δ

Δέντρο, 23Δέντρα παραγωγής, 191Δεξιά παραγωγή, 211Διάγραμμα καταστάσεων

για ΠΑ, 71για ΜΠΑ, 97

Διάγραμμα μεταβάσεων, Δες διάγραμμα κα-ταστάσεων

Διακρινόμενες συμβολοσειρές, 81εφαρμογή στον αριθμό καταστάσεων αυ-

τομάτου, 81και μη κανονικότητα μίας γλώσσας, 82,

130Διατεταγμένο ζεύγος, 8Διαφορά συνόλων, 6Δυναμοσύνολο, 8

Ε

Ένα προς ένα, 10Ένωση

Γλωσσών ΑΣ, 155Κανονικών γλωσσών, 60, 111Συνόλων, 6

Έμμεση απόδειξη, 19Επαγωγική υπόθεση, 40, 43Επαγωγικό βήμα, 40, 43Επαγωγικός ορισμός, Δες Αναδρομικός ορι-

σμόςΕπί, 10Επίθεμα, 121Επιμεριστικότητα, 7²-κανόνες, 198

εξάλειψη από μία γραμματική, 198²-κίνηση, Δες ²-μετάβαση²-μετάβαση

αφαίρεση από ΜΠΑ, 105σε ΑΣ, 171σε ΜΠΑ, 98

²-σύνολο, 102αλγόριθμος υπολογισμού, 102

Η

Ή, 14

Θ

Θεώρημα Kleene, 111

Ι

Ισχυρή αρχή μαθηματικής επαγωγής, 42

Κ

ΚΑΙ, 14Κανόνες γραμματικής, 147Κανονική μορφή Chomsky, 201Κανονικές γλώσσες, 59, 111

Ένωση, συνένωση, Kleene ¤, 60, 111Τομή, διαφορά, συμπλήρωμα, 77

Κανονική γραμματική, 153που αντιστοιχεί σε ΠΑ, 154

Κανονική έκφραση, 58γλώσσα που αντιστοιχεί σε, 59ορισμός, 59που αντιστοιχεί σε ΠΑ, 115-119

Κατασκευή υποσυνόλων, 109Καταστάσεις, 71Καρτεσιανό γινόμενο, 8Κενή γλώσσα, 59

αλγόριθμος που αποφασίζει αν ένα ΠΑαναγνωρίζει μία, 135

αλγόριθμος που αποφασίζει αν μία γραμ-ματική ΑΣ παράγει μία, 199

Κενό σύνολο, 5Κλάση ισοδυναμίας, 12Κλειστότητα, 60, 111, 155Κόμβοι γραφήματος, 23Kleene

θεώρημα, Δες Θεώρημα Kleene¤, Δες Αστέρι Kleene

Λ

Λεξική ανάλυση, xΛήμμα άντλησης

ασθενή μορφή, 137για γλώσσες ΑΣ, 193για κανονικές γλώσσες, 132εφαρμογή σε προβλήματα απόφασης, 134,

197Λογικά επιχειρήματα, 14Λογικοί ισχυρισμοί, 14Λογικά ισοδύναμο, 14LL(k) γραμματικές, 211

Μ

ΜΠΑ, ΔεςΜη ντετερμινιστικό πεπερασμένοαυτόματο

ΜΠΑ-², ΔεςΜη ντετερμινιστικό πεπερασμέ-νο αυτόματο με ²-κινήσεις

Μαθηματική επαγωγή, Δες Αρχή μαθηματι-κής επαγωγής

Μερική διάταξη, 27Μεταβατική, 12

Page 248: αυτόματα και τυπικές γλώσσες dimitriou

236 ΕΥΡΕΤΗΡΙΟ

Μεταβλητέςσε γραμματικές ΑΣ, 147σε λογικούς ισχυρισμούς, 14

Μετακίνηση, 211Μη διακρινόμενες συμβολοσειρές, Δες Δια-

κρινόμενες συμβολοσειρέςΜη κανονικές γλώσσες, 82, 130

παραδείγματα, 133, 134Μη ντετερμινισμός

αφαίρεση από ένα ΜΠΑ, 108-111σε ένα ΠΑ, 96σε ένα ΑΣ, 168, 170

Μη ντετερμινιστικό πεπερασμένο αυτόματο,99

γλώσσα που γίνεται δεκτή από, 101ισοδύναμο με ΠΑ, 108συνάρτηση μετάβασης, 99

Μη ντετερμινιστικό πεπερασμένο αυτόματομε ²-κινήσεις, 101

γλώσσα που γίνεται δεκτή από, 103ισοδύναμο με απλό ΜΠΑ, 105που αναγνωρίζει τις L1 [L2, L1L2, L¤,

111συνάρτηση μετάβασης, 101

Μήκος συμβολοσειράς, 20Μηχανή πεπερασμένων καταστάσεων, Δες

Πεπερασμένο αυτόματοΜηχανή Turing, ix, 136, 222

πρόβλημα τερματισμού σε μία, 136Μνήμη που απαιτείται για αναγνώριση, 70Μοναδιαίοι κανόνες, 199

Ν

Ντετερμινιστικό αυτόματο, Δες Πεπερασμέ-νο αυτόματο

Ντετερμινιστικό αυτόματο στοίβας, 175Νόμοι De Morgan, 7Ντόμινο, 40

Ο

ΟΧΙ, 15

Π

ΠΑ, Δες Πεπερασμένο αυτόματοΠαλινδρομική συμβολοσειρά, 45

αυτόματο στοίβας για αναγνώριση, 167-170

μη κανονικότητα, 82, 130Παραγοντοποίηση σε μία γραμματική ΑΣ,

209Παραγωγή σε μία γραμματική ΑΣ, 148

εξομοίωση από ένα αυτόματο στοίβας,176-178

Πεδίο τιμών, 9Πεπερασμένη γλώσσα, 60, 135

αλγόριθμος που αποφασίζει αν ένα ΠΑδέχεται μία, 135

αλγόριθμος που αποφασίζει αν μία γραμ-ματική ΑΣ παράγει μία, 199

Πεπερασμένο αυτόματο, x, 55, 73γλώσσα που αναγνωρίζεται από, 75ισοδύναμο με μη ντετερμινιστικό, 108συμβολοσειρά που γίνεται δεκτή από, 75

Περιγραφή, Δες Στιγμιαία περιγραφήΠεριεχόμενο μίας γλώσσας ΑΣ, Δες Συμφρα-

ζόμεναΠεριστεροφωλιά, Δες Αρχή περιστεροφωλιώνΠίνακας αληθείας, 14Πίνακας μεταβάσεων, 73Πλευρές γράφου, 23Πρόβλεψη ενός συμβόλου, 208Προβλήματα απόφασης

Άλυτα, 136, 150για γλώσσες ΑΣ, 197-200για κανονικές γλώσσες, 134-137

Πρόθεμα, 121Προσεταιριστικότητα, 7Προσπελάσιμες καταστάσεις

μόνο με ²-κινήσεις, 102σε ένα ΠΑ, 79, 83

Προτεραιότητα τελεστώνσε αλγεβρικές εκφράσεις, 149σε κανονικές εκφράσεις, 59

Σ

ΣΠ, Δες Στιγμιαία περιγραφήΣτιγμιαία περιγραφή, 171Συμβολοσειρά, 20

μήκος, 20που γίνεται δεκτή από ΜΠΑ, 101που γίνεται δεκτή από ΠΑ, 75

Συμμετρική σχέση, 12Συμφραζόμενα, 148Σύμπαν, 5Συμπλήρωμα

ενός συνόλου, 5μίας γλώσσας ΑΣ, 195μίας κανονικής γλώσσας, 77

Συνάρτηση, 10Συνάρτηση μετάβασης

για ΑΣ, 171για ΜΠΑ, 99για ΜΠΑ-², 101για ΠΑ, 73

Page 249: αυτόματα και τυπικές γλώσσες dimitriou

ΕΥΡΕΤΗΡΙΟ 237

Συνένωσηγλωσσών, 21γλωσσών ΑΣ, 155κανονικών γλωσσών, 60, 111συμβολοσειρών, 21

Σύνθεση συναρτήσεων, 11Σύνολα, 5

αληθείας, 14ισότητα, 5νόμοι, 7συμπλήρωμα, 5

Συντακτική ανάλυση, xi, 144, 206από κάτω προς τα πάνω, 211από πάνω προς τα κάτω, 206

Συντακτικός αναλυτήςμετακίνησης-αναγωγής, 211μη ντετερμινιστικός από κάτω προς τα

πάνω, 211μη ντετερμινιστικός από πάνω προς τα

κάτω, 207ντετερμινιστικός από κάτω προς τα πάνω,

213-215ντετερμινιστικός από πάνω προς τα κάτω,

207-211Σχέση

ανακλαστική, 12αντισυμμετρική, 12μεταβατική, 12ισοδυναμίας, 12συμμετρική, 12

Σχέση προτεραιότητας, 214Σωρός, 143, 167

Τ

Τελευταίο μέσα, πρώτο έξω, 167Τελική κατάσταση

σε ένα ΑΣ, 171σε ένα ΜΠΑ, 99σε ένα ΠΑ, 73

Τερματικό σύμβολο, 147Τομή

γλώσσας ΑΣ με κανονική, 196γλωσσών ΑΣ, 195κανονικών γλωσσών, 77συνόλων, 6

Turing, ix, 136, 222