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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Σχολή Θετικών Επιστημών και Τεχνολογίας

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

ΠΛΗΡΟΦΟΡΙΚΗ

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

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

Τόμος Γ'

Αυτόματα και Τυπικές Γλώσσες
ΑΝΑΣΤΑΣΙΟΣ ΔΗΜΗΤΡΙΟΥ
Δρ. Μηχανικός Ηλεκτρονικών Υπολογιστών και Πληροφορικής

ΠΑΤΡΑ 2002

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Σχολή Θετικών Επιστημών και Τεχνολογίας
Πρόγραμμα Σπουδών

ΠΛΗΡΟΦΟΡΙΚΗ
Θεματική Ενότητα

ΘΕΜΕΛΙΩΣΕΙΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Τόμος Γ'

Αυτόματα και Τυπικές Γλώσσες
Συγγραφή

ΑΝΑΣΤΑΣΙΟΣ ΔΗΜΗΤΡΙΟΥ
Δρ. Μηχανικός Ηλεκτρονικών Υπολογιστών και Πληροφορικής
Κριτική Ανάγνωση

ΜΩΫΣΗΣ ΜΠΟΥΝΤΟΥΡΙΔΗΣ
Αναπληρωτής Καθηγητής Τμήματος Μαθηματικών
Πανεπιστημίου Πατρών
Ακαδημαϊκός Υπεύθυνος για την επιστημονική επιμέλεια του τόμου

ΠΑΥΛΟΣ ΣΠΥΡΑΚΗΣ
Καθηγητής Τμήματος Μηχανικών Η/Υ & Πληροφορικής
Πανεπιστημίου Πατρών
Επιμέλεια στη μέθοδο της εκπαίδευσης από απόσταση

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

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

ΕΣΠΙ ΕΚΔΟΤΙΚΗ Ε.Π.Ε.
Συντονισμός ανάπτυξης εκπαιδευτικού υλικού και γενική επιμέλεια των εκδόσεων

ΟΜΑΔΑ ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ/2002
ISBN: 960-538-207-5
Κωδικός Έκδοσης: ΠΛΗ 30/3
Copyright 2000 για την Ελλάδα και όλο τον κόσμο
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Οδός Παπαφλέσσα & Υψηλάντη, 26222 Πάτρα
Τηλ: (061) 0314094, 0314206 Φαξ: (061) 0317244
Σύμφωνα με το Ν. 2121/1993
απαγορεύεται η συνολική ή αποσπασματική
αναδημοσίευση του Βιβλίου αυτού ή η αναπαραγωγή του
με οποιοδήποτε μέσο, χωρίς την άδεια του εκδότη.

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

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

ix

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

1

ΚΕΦΑΛΑΙΟ 1

3

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

1.1

Σύνολα ........................................................................................

5

1.2

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

9

1.3

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

1.4

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

1.5

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

ΚΕΦΑΛΑΙΟ 2

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

37

2.1

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

2.2

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

2.3

Αναδρομικοί Ορισμοί .................................................................... 45
Βιβλιογραφία Μέρους I................................................................. 53

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

55

ΚΕΦΑΛΑΙΟ 3

57

Κανονικές Εκφράσεις και Κανονικές Γλώσσες

3.1

Κανονικές Εκφράσεις .................................................................... 58

3.2

Παραδείγματα και Εφαρμογές........................................................ 61

ΚΕΦΑΛΑΙΟ 4

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

67

4.1

Εισαγωγή ..................................................................................... 69

4.2

Ορισμοί και Αναπαράσταση .......................................................... 72

4.3

Τομή και Διαφορά Κανονικών Γλωσσών ........................................ 76

4.4

Αριθμός Καταστάσεων Αυτόματου................................................. 79

ΚΕΦΑΛΑΙΟ 5

Μη Ντετερμινισμός

95

5.1

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα ................................. 96

5.2

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

viii

Περιεχόμενα

5.3

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

ΚΕΦΑΛΑΙΟ 6

Μη Κανονικές Γλώσσες

129

6.1

Το Λήμμα Άντλησης ..................................................................... 130

6.2

Αλγόριθμοι Απόφασης για Κανονικές Γλώσσες ............................... 134
Βιβλιογραφία Μέρους II................................................................ 141

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

143

ΚΕΦΑΛΑΙΟ 7

145

Γλώσσες Ανεξάρτητες Συμφραζόμενων

7.1

Γραμματικές Ανεξάρτητες Συμφραζόμενων..................................... 146

7.2

Κανονικές Γραμματικές................................................................. 152

7.3

Ένωση, Συνένωση, Αστέρι Kleene ................................................. 155

ΚΕΦΑΛΑΙΟ 8

Αυτόματα Στοίβας

165

8.1

Εισαγωγή ..................................................................................... 166

8.2

Ορισμοί ....................................................................................... 170

8.3

Ισοδυναμία με Γραμματικές ΑΣ ..................................................... 175

ΚΕΦΑΛΑΙΟ 9

Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

189

9.1

Το Λήμμα Άντλησης για Γραμματικές ............................................ 190

9.2

Αλγόριθμοι Απόφασης .................................................................. 197

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

205

10.1 Ανάλυση από πάνω προς τα κάτω .................................................. 206
10.2 Ανάλυση από κάτω προς τα πάνω .................................................. 211
Βιβλιογραφία Μέρους III............................................................... 218

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

221

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

223

ΠΑΡΑΡΤΗΜΑ B

229

Ευρετήριο

Γλωσσάρι Βασικών Όρων

234

ΕΙΣΑΓΩΓΗ

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

x

Εισαγωγή

τις δυνατότητες των μηχανών αυτών, και κάτι τέτοιο είναι δυνατό, αφού αυτές
ορίζονται μαθηματικά, μπορούμε να καταλάβουμε την έννοια του υπολογισμού,
και γενικότερα τι μπορεί να επιλυθεί από οποιαδήποτε αλγοριθμική διαδικασία.
Η θεωρία του υπολογισμού ασχολείται λοιπόν τόσο με τα αφηρημένα μοντέλα
υπολογισμού όπως είναι οι μηχανές Turing, τα προβλήματα τα οποία μπορούν
να λύσουν, αλλά εξίσου σημαντικά και με τους τύπους των προβλημάτων που δεν
μπορούν να λύσουν. Η θεωρία του υπολογισμού όμως δεν έχει να κάνει μόνο με τις
δυνατότητες των υπολογιστών και τους περιορισμούς τους, αλλά και με τα μοντέλα
άλλων μηχανών λιγότερο γενικών από τις μηχανές Turing. Αν και οι μηχανές
αυτές έχουν περιορισμένες δυνατότητες σε σχέση με τις μηχανές Turing, ωστόσο
η μελέτη τους είναι σημαντική, γιατί ανοίγουν το δρόμο για την κατανόηση των
πιο ισχυρών μηχανών αλλά και γιατί έχουν πολλές εφαρμογές στην Επιστήμη των
Υπολογιστών. Οι μηχανές αυτές, που αποτελούν και το περιεχόμενο του βιβλίου
είναι τα πεπερασμένα αυτόματα και τα αυτόματα στοίβας. Θα αρχίσουμε λοιπόν τη
συζήτησή μας με την απλούστερη των μηχανών, ένα πεπερασμένο αυτόματο.
,
Στη δεκαετία του 50, οι McCulloch και Pitt εισήγαγαν την έννοια μίας μηχανής
πεπερασμένων καταστάσεων με σκοπό τη μοντελοποίηση των δικτύων των νευρώνων του εγκεφάλου. Η βασική λειτουργία ενός πεπερασμένου αυτόματου, όπως
λέγεται μία τέτοια μηχανή, είναι αρκετά απλή: η μηχανή κάθε φορά βρίσκεται σε
μία από ένα σύνολο καταστάσεων, αλλάζοντας κάθε φορά κατάσταση ανάλογα με
την είσοδο που δέχεται το σύστημα.
,
Παρά την απλότητά τους, η θεωρία πίσω απ αυτές τις μηχανές είναι αρκετά
κομψή και πλούσια, και όταν την κατανοήσουμε θα μπορούμε να εκτιμήσουμε
,
καλύτερα τα χαρακτηριστικά που θα πρέπει να προσθέσουμε σ αυτές τις μηχανές
για να αυξήσουμε τις υπολογιστικές τους δυνατότητες. Όμως ένας άλλος λόγος για
τον οποίο αξίζει να μελετήσουμε τα αυτόματα είναι οι εφαρμογές που βρίσκουν
στην Επιστήμη των Υπολογιστών. Για παράδειγμα, η φάση της λεξικής ανάλυσης
ενός μεταγλωττιστή βασίζεται στη προσομοίωση ενός κατάλληλου πεπερασμένου
,
αυτόματου. Το πρόβλημα του εντοπισμού μιας λέξης σ ένα κείμενο μπορεί επίσης
να λυθεί με μεθόδους από τη θεωρία των αυτομάτων.
Περίπου τον ίδιο καιρό, ο Noam Chomsky εισήγαγε τον αμέσως επόμενο σε
πολυπλοκότητα φορμαλισμό, τις γραμματικές ανεξάρτητες συμφραζόμενων. Μία
γραμματική αποτελείται από ένα σύνολο κανόνων, οι οποίοι προσπαθούν να μοντελοποιήσουν τις ιδιότητες μιας γλώσσας, όλων δηλαδή των λέξεων που μπορούν να
παραχθούν χρησιμοποιώντας τους κανόνες της γραμματικής. Αν και οι γραμματικές
αρχικά χρησιμοποιήθηκαν για τη μοντελοποίηση πραγματικών γλωσσών, γρήγορα
έγινε φανερό ότι μπορούσαν να χρησιμοποιηθούν για να εκφράσουν τη συντακτική
δομή όλων των μοντέρνων γλωσσών προγραμματισμού. Παράλληλα αποδείχτηκε

Εισαγωγή

ότι οι γραμματικές είναι ισοδύναμες με ένα είδος αυτόματου, το αυτόματο στοίβας.
Ισοδύναμες σημαίνει ότι για κάθε γραμματική υπάρχει ένα αυτόματο στοίβας που
μπορεί να αναγνωρίσει όλες τις λέξεις που παράγονται από τη γραμματική αλλά
και αντίστροφα: για κάθε αυτόματο υπάρχει μια γραμματική που παράγει τη
γλώσσα που αναγνωρίζεται από το αυτόματο. Λόγω της ισοδυναμίας τους με
τις γραμματικές, τα αυτόματα αυτά χρησιμοποιούνται στη φάση της συντακτικής
ανάλυσης των μεταγλωττιστών, εργαλείων που μετατρέπουν τις εντολές μίας γλώσσας προγραμματισμού σε εντολές κατανοητές από τον υπολογιστή.
Η μελέτη όλων αυτών των απλών μοντέλων υπολογισμού έχει ένα σκοπό. Να
προετοιμάσει τον αναγνώστη για τη μελέτη των δυνατοτήτων των μηχανών Turing
καθώς και των προβλημάτων που αυτές μπορούν να επιλύσουν. Αρχίζοντας με τα
απλούστερα μοντέλα θα μπορέσουμε να αναπτύξουμε την κατάλληλη μαθηματική
,
ορολογία και να δώσουμε απαντήσεις σε ερωτήματα που αργότερα θ αποδειχθούν
,
αναπάντητα για πιο περίπλοκα μοντέλα. Παρ όλα αυτά όμως η μελέτη των
μηχανών αυτών δε θα πρέπει μόνο να γίνει γιατί υπάγεται σε μια κομψή θεωρία
αλλά γιατί είναι ενδιαφέρουσα από μόνη της. Εξοικειώνει το φοιτητή με τα μεγάλα
ερωτήματα που αφορούν τη θεωρία του υπολογισμού και δείχνει τη δύναμη των
μαθηματικών εργαλείων και τεχνικών όσο και την εφαρμογή τους στην έννοια του
υπολογισμού.
Όμως τίποτα στη προηγούμενη εκπαίδευση του φοιτητή στα Μαθηματικά ή
στην Επιστήμη των Υπολογιστών δεν έχει προετοιμάσει το φοιτητή για τις τεχνικές
απόδειξης και τους τύπους των συλλογισμών που συναντούνται στη μελέτη αυτού
του αντικειμένου, σχεδόν οτιδήποτε απαιτεί λεπτομερείς κατασκευές και επαγωγικές
αποδείξεις.
Είναι σημαντικό λοιπόν ο \πίνακας" να μη γεμίζει από μεγάλες αποδείξεις που
προκαλούν την ανία του φοιτητή, αλλά η ώρα της διδασκαλίας να χρησιμοποιείται
για την κατανόηση των βασικών θεμάτων χρησιμοποιώντας όχι τόσο αυστηρά
μαθηματικούς, αλλά κυρίως διαισθητικούς συλλογισμούς. Οι αποδείξεις υπάρχουν
στο βιβλίο και ο φοιτητής θα πρέπει να τις διαβάζει και να προσπαθεί να τις
κατανοεί. Δεν είναι όμως αρκετό να μπορεί να τις επαναλάβει. Εκείνο που είναι
περισσότερο σημαντικό είναι να μπορεί να προσαρμόσει τις τεχνικές σε διαφορετικές περιπτώσεις. Για το λόγο αυτό στο τέλος κάθε κεφαλαίου υπάρχει ένα σύνολο
ασκήσεων που παίζουν σημαντικό ρόλο στη διαδικασία της μάθησης. Ο φοιτητής
θα πρέπει να δοκιμάζει να λύσει όσες περισσότερες ασκήσεις μπορεί και να συγκρίνει τις απαντήσεις του με αυτές που υπάρχουν στο τέλος του βιβλίου. Είναι
πεποίθησή μου ότι πολύ περισσότερα μαθαίνονται από τους φοιτητές λύνοντας
,
ασκήσεις (ακόμη και λανθασμένα) παρά απ όλη τη συζήτηση στην τάξη και τις
αποδείξεις στο βιβλίο.

xi

xii

Εισαγωγή

ΕΥΧΑΡΙΣΤΙΕΣ
Στο σημείο αυτό θα ήθελα να ευχαριστήσω όλους όσους βοήθησαν στη συγγραφή
αυτού του βιβλίου. Θα ξεκινήσω από τους Νίκο Τσουρούλα και Θοδωρή Γναρδέλη,
συνάδελφους στο γραφείο Έρευνας Πληροφορικής στη Σάμο. Χωρίς την τεχνική
,
βοήθεια που μου πρόσφεραν όταν ξεκινούσα να γράψω αυτό το βιβλίο τίποτα απ
όλα αυτά δεν θα ήταν δυνατόν.
Θα ήθελα επίσης να ευχαριστήσω τους κ. Παύλο Σπυράκη, Αθανάσιο Τσακαλίδη, καθηγητές του τμήματος Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής και τον κ. Μωϋσή Μπουντουρίδη, καθηγητή του Μαθηματικού τμήματος του
Πανεπιστημίου Πατρών, για τα τεχνικά τους σχόλια που βοήθησαν σημαντικά στη
βελτίωση του κειμένου. Επίσης τον κ. Σ. Περσίδη για την πολύ καλή δουλειά
που έκανε με την τεχνική επιμέλεια του κειμένου, καθώς και τους κριτικούς του
Ανοικτού Πανεπιστημίου για όλες τις διορθώσεις και υποδείξεις που μου πρότειναν,
ελπίζοντας ότι δεν τους δυσκόλεψα πάρα πολύ. Φυσικά το φταίξιμο για όλα τα
υπόλοιπα λάθη παραμένει σε μένα.
Ένα μεγάλο ευχαριστώ πηγαίνει στην Αφροδίτη Χουρμούζη, του Ινστιτούτου
Τεχνολογίας Υπολογιστών, που αποτέλεσε το σύνδεσμό μου με το Ανοικτό Πανεπιστήμιο και διεκπεραίωσε όλες τις υποθέσεις με απίστευτη ακρίβεια. Της χρωστάω
μεγάλη χάρη αφού όλα έγιναν από την καλή της θέληση και μόνο.
Τέλος, θα ήθελα να ευχαριστήσω τη σύζυγό μου Περσεφόνη για όλη την
υπομονή και υποστήριξη που έδειξε κατά τη διάρκεια αυτού του έργου.
Αθήνα, Οκτώβριος 2001

Μ Ε Ρ Ο Σ

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

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

2

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

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

Κ Ε Φ Α Λ Α Ι Ο

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

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

Προσδοκώμενα Αποτελέσματα
Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε:
,
² ν αναφέρετε τι είναι σύνολο, δυναμοσύνολο και Καρτεσιανό γινόμενο και ποιές
ιδιότητες χαρακτηρίζουν τα μέλη τους,

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

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

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

3

4

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

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

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

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

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

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

Έννοιες-κλειδιά
² Σύνολο, στοιχεία συνόλου

² Συμβολοσειρές και γλώσσες

² Δυναμοσύνολο και Καρτεσιανό γινόμενο

² Ισχυρισμοί, τιμές αληθείας

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

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

² Συνένωση και αστέρι Kleene
² Πίνακες αληθείας

² Αντίστροφη συνάρτηση

² Ισοδυναμία ισχυρισμών

² Ισοδυναμία και κλάσεις ισοδυναμίας

² Γραφήματα και δέντρα

² Ανακλαστική, συμμετρική, μεταβατική σχέση

² Τύποι αποδείξεων

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

Σύνολα

5

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

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

Σύνολο

το συνθέτουν ονομάζονται στοιχεία ή μέλη του. Η αναπαράσταση των συνόλων
γίνεται απαριθμώντας τα μέλη τους μέσα σε άγκιστρα. Έτσι για παράδειγμα, το
σύνολο των μικρών γραμμάτων του ελληνικού αλφάβητου είναι το
A = f®; ¯; °; : : : ; !g:
Το ® είναι στοιχείο του A και θα το συμβολίζουμε ® 2 A. Μερικές φορές απλά

λέμε ότι το ® ανήκει στο A, ή ότι το A περιέχει το ®. Το d όμως δεν ανήκει στο A.
,
2 A. Ένα σημείο που αξίζει να προσέξουμε
Σ αυτή την περίπτωση γράφουμε d 6
στην αναπαράσταση του A είναι η χρησιμοποίηση τριών τελειών \. . . " στη θέση
μιας μεγάλης ακολουθίας στοιχείων που προκύπτει εύκολα από το κείμενο. Με τον
ίδιο τρόπο θα αναπαριστούσαμε και ένα σύνολο με άπειρο αριθμό από μέλη, όπως
για παράδειγμα το σύνολο των φυσικών αριθμών
N = f0; 1; 2; : : :g:
Ένας δεύτερος τρόπος για να περιγράψουμε σύνολα είναι χρησιμοποιώντας
κάποια ιδιότητα που χαρακτηρίζει τα μέλη τους. Το σύνολο fxj P (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 είναι το σύνολο των φοιτητών του Ανοικτού Πανεπιστημίου

Κενό Σύνολο

6

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

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

B, θα λέμε ότι το A είναι υποσύνολο του B και θα το συμβολίζουμε A µ B.
Για παράδειγμα, το σύνολο f1; 2g είναι υποσύνολο του fa; 1; b; 2g, αλλά δεν

µ fa; b; 1; 3; 4g. Το σύνολο
είναι υποσύνολο του fa; b; 1; 3; 4g, ή αλλιώς f1; 2g 6
των φοιτητών που παρακολουθούν το μάθημα \Αυτόματα και Τυπικές Γλώσσες"

είναι υποσύνολο του συνόλου των φοιτητών του Πανεπιστημίου, αλλά όχι και
το αντίστροφο. Επίσης ένα σύνολο A μπορεί να είναι ταυτόχρονα μέλος αλλά
και υποσύνολο κάποιου άλλου συνόλου B, όπως φαίνεται από τα A = f1; 2g και
B = f1; 2; f1; 2gg. Σαν άσκηση αφήνουμε στον αναγνώστη να δείξει τα παρακάτω:
1.1

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

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

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

Συμπλήρωμα

και B µ A.

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

που δεν ανήκουν στο A. Φυσικά, ο παραπάνω ορισμός έχει έννοια αν υποθέσουμε
,
την ύπαρξη ενός συνόλου U (συνήθως λέγεται σύμπαν) που αποτελείται απ όλα
εκείνα τα στοιχεία που μας ενδιαφέρουν:
A0 = fx 2 U j x 6
2 Ag:
Για παράδειγμα, αν U είναι το σύνολο των φοιτητών που παρακολουθούν το
μάθημα Αυτόματα και Τυπικές Γλώσσες και το A δηλώνει τους φοιτητές που
πέρασαν το μάθημα, τότε A0 είναι το σύνολο των φοιτητών που παρακολούθησαν
αλλά δεν πέρασαν το μάθημα.
Για οποιαδήποτε δύο σύνολα A και B μπορούμε να σχηματίσουμε την ένωση
Ένωση, Τομή

τους A [ B ή την τομή τους A \ B, με τις σχέσεις
A [ B = fx j x 2 A ή x 2 Bg

A \ B = fx j x 2 A και x 2 Bg
Η ένωση είναι το σύνολο που αποτελείται από τα στοιχεία που ανήκουν στα
επιμέρους σύνολα (χωρίς επαναλήψεις όμως), ενώ η τομή αποτελείται από τα

Σύνολα

7

στοιχεία που είναι κοινά και στα δύο σύνολα. Για παράδειγμα:
f1; 3; 4; 6g [ f2; 3; 4; 5g = f1; 2; 3; 4; 5; 6g
f1; 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 ∙ N g;

είναι το σύνολο που αποτελείται από τα κοινά στοιχεία όλων των A1 ; : : : ; AN .
Τέλος, η διαφορά δύο συνόλων A και B είναι το σύνολο των στοιχείων του A
που δεν ανήκουν στο B:
A ¡ B = A \ B 0 = fx j x 2 A και x 6
2 Bg:
Χρησιμοποιώντας τις παραπάνω πράξεις μπορούμε να φτιάξουμε πολύπλοκες
εκφράσεις που αφορούν σύνολα και συνήθως είναι απαραίτητο να υπάρχουν κάποιοι
κανόνες χειρισμού των εκφράσεων αυτών. Για παράδειγμα αν τα A; B και C είναι
σύνολα, ισχύουν οι κανόνες που φαίνονται στον Πίνακα 1.1.
Πίνακας 1.1. Νόμοι συνόλων
Αντιμεταθετικότητα
Προσεταιριστικότητα
Επιμεριστικότητα
Νόμοι De Morgan
Συμπλήρωμα και κενό σύνολο

1.1

A[B =B[A
A\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)
(A [ B)0 = A0 \ B 0
(A \ B)0 = A0 [ B 0
(A0 )0 = A, A \ A0 = Â και A [ A0 = U
A [ Â = A και A \ Â = Â

Διαφορά

8
Παράδειγμα 1.1

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

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

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

=

=
=
=
=

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

Δυναμοσύνολο

=

(A [ B) \ A0

A0 \ (A [ B)
(A0

\ A) [

 [ (A0

B\

A0

(A0

\ B)

B¡A

Ορισμός διαφοράς

Αντιμεταθετικότητα
\ B)

Επιμεριστικότητα
Ιδιότητα κενού συνόλου
Αντιμεταθετικότητα
Ορισμός διαφοράς

Δουλεύοντας όπως παραπάνω, δείξτε ότι
(A ¡ C) ¡ (B ¡ C) = (A ¡ B) ¡ C.

Για κάθε σύνολο 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;

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

9

και γενικότερα A1 £A2 £¢ ¢ ¢£An είναι το σύνολο όλων των διατεταγμένων n-άδων

(a1 ; a2 ; : : : ; an ), όπου για κάθε i, ai 2 Ai .
1.3
Ποιά από τα παρακάτω είναι αληθή;

Σωστό

Λάθος

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

Â2Â
 2 fÂg
fa; bg µ fa; b; ffa; bggg
fa; bg 2 fa; b; ffa; bggg
fa; b; fa; bgg ¡ fa; bg = fa; bg
fa; b; Âg ¡ Â = fa; bg
fÂg ¡ fa; b; Âg = Â
fag µ 2fa;fagg
fag 2 2fa;fagg

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.

Έστω για παράδειγμα οι συναρτήσεις 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 , δηλαδή

Ορισμός 1.1

10

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

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

Ας δούμε τώρα μερικά ενδιαφέροντα είδη συναρτήσεων. Μία συνάρτηση f :
1-1

A ! B είναι ένα προς ένα ή 1-1, αν για κάθε δύο διαφορετικά a; a0 2 A ισχύει

f (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
Παράδειγμα 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 νομός, είναι το σύνολο των πόλεων σ αυτό το
νομό.

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

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

Σχέση

12

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

αντί για (x; y) 2 R.
1.3
Παράδειγμα 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
είναι η σχέση μικρότερο \<".

Θα δούμε τώρα μερικά βασικά είδη σχέσεων. Έστω μία σχέση 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 και x 6
= 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

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

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

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

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 ;
: : : ; An g μία διαμέριση ενός συνόλου A και R μία σχέση πάνω στο A που ορίζεται
ως εξής: το ζεύγος (a; b) ανήκει στην R, αν και μόνο αν τα a και b ανήκουν στο ίδιο
σύνολο της διαμέρισης. Δείξτε ότι η R είναι σχέση ισοδυναμίας.

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

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" είναι ισοδύναμοι.
Οι σύνδεσμοι και και ή παίζουν ένα σημαντικό ρόλο στο σχηματισμό σύνθετων
ισχυρισμών ξεκινώντας από δύο απλούστερους. Στην περίπτωση του και (θα το

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

15

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

\p ^ q"

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

q
F
T
F
T

p^q
F
F
F
T

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

\p _ q"

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

q
F
T
F
T

p_q
F
T
T
T

Τέλος, η χρήση του όχι (θα συμβολίζεται με :) αντιστρέφει την τιμή αληθείας

ενός ισχυρισμού. Ο ισχυρισμός :p (ή p¹) είναι αληθής, αν και μόνο αν ο p είναι

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

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

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

\p ! q"

16

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

Ποια όμως είναι η τιμή αληθείας ενός τέτοιου ισχυρισμού; Ο p ! q είναι αληθής,

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

1. Έστω ότι ο p είναι αληθής. Τότε για να είναι ο p ! q αληθής πρέπει και ο
q να είναι αληθής.
2. Έστω ότι ο p είναι ψευδής. Τότε ο p ! q είναι αληθής άσχετα από την τιμή
του p.
Ας εξηγήσουμε τα παραπάνω με τη χρήση ενός παραδείγματος.
1.4
Παράδειγμα 1.4

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

Τα παραπάνω μπορούν αποτυπωθούν καλύτερα στον ακόλουθο πίνακα. Από την
Πίνακας 1.4. Πίνακας αληθείας p ! q
p
F
F
T
T

q
F
T
F
T

p!q
T
T
F
T

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

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

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 αν

και μόνο αν q" και αποτελεί συντομογραφία της έκφρασης (p ! q) ^ (q ! p). Για

\p $ q"

να είναι ο ισχυρισμός αυτός αληθής, τα p και q πρέπει να είναι και τα δύο αληθή

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

κάθε κομμάτι χωριστά.
1.7

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

q
F
T
F
T

p^q

p¹ ^ q¹

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

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

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

18

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

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

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

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

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

1.5
Παράδειγμα 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. Αυτό όμως αντιτίθεται στην υπόθεση ότι το γινόμενό τους
είναι περιττός.
Ο λόγος που πέσαμε σε αντίφαση είναι γιατί υποθέσαμε ότι κάποιος από τους δύο δεν
είναι περιττός. Άρα και οι δύο πρέπει να είναι περιττοί, οπότε αποδείξαμε το ζητούμενο.

Ας δούμε τώρα μερικούς ακόμα τρόπους απόδειξης ισχυρισμών της μορφής
Άμεση Απόδειξη

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

1.6

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

19

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

Παράδειγμα 1.6

\αν οι 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.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 Αλφάβητα και Γλώσσες
Για να μελετήσουμε τις αφηρημένες μηχανές και τις δυνατότητές τους θα χρειαστεί
να αναπτύξουμε ένα μοντέλο για τα δεδομένα που θα επεξεργάζονται αυτές. Διαλέ-

Έμμεση
Απόδειξη

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²g

fx 2 fa; bg¤ j jxj είναι περιττόςg

fx 2 fa; bg¤ j x αρχίζει και τελειώνει με το ag

fx 2 fa; bg¤ j x περιέχει τον ίδιο αριθμό από a και bg
Οι γλώσσες μπορούν, ως σύνολα που είναι, να συνδυαστούν με τις πράξεις
της τομής, της ένωσης και του συμπληρώματος. Το συμπλήρωμα L0 μίας γλώσσας

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

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 είναι γλώσσες ενός αλφάβητου §, τότε η συνένωσή τους είναι η

\L1 L2 "

γλώσσα L1 ± L2 , ή απλά L1 L2 , όπου
L1 L2 = fxy j x 2 L1 και y 2 L2 g:
Για παράδειγμα, αν L1 =fα, ευg, L2 =fπιστος, στοχος, ποροςg, τότε
L1 ± L2 =

fα, ευg±fπιστος, στοχος, ποροςg =

fαπιστος, αστοχος, απορος,
ευπιστος, ευστοχος, ευποροςg

Παρόμοια, για κάθε γλώσσα L µ §¤ και k ¸ 0,
k

z

k

}|

{

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

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

Μια άλλη πράξη είναι το αστέρι Kleene μιας γλώσσας L που συμβολίζεται με
¤
L . L¤ είναι το σύνολο των συμβολοσειρών που προκύπτουν συνενώνοντας μηδέν

\L¤ "

ή περισσότερες συμβολοσειρές της L,
¤

L

=

1
[

Lk

k=0

= 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

22

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

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

πτουν από τη συνένωση μίας ή περισσότερων συμβολοσειρών της L,
L+ =

1
[

Lk

k=1

= fx 2 §¤ j x = x1 ± x2 ± ¢ ¢ ¢ ± xk ; για k ¸ 1 και x1 ; x2 ; : : : ; xk 2 Lg
1.8
Άσκηση
Αυτοαξιολόγησης
1.8

1. Γενικά, για μια γλώσσα L ισχύει L+ µ L¤ . Κάτω από ποιες συνθήκες L+ = L¤ ;
2. Βρείτε παραδείγματα γλωσσών L1 ; L2 στο fa; bg ώστε (L1 [ L2 )¤ 6
= L¤1 [ L¤2 .

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

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

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

23

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

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

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

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

Γράφημα

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

4

1

6
3

1

2

3

4

5

(α)

(β)

Σχήμα 1.1. Παραδείγματα γραφημάτων: α) απλό γράφημα β) κατευθυνόμενο
,
Ένα μονοπάτι σ ένα γράφημα είναι μια ακολουθία (v1 ; v2 ; : : : ; vk ); k ¸ 1, από

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

Μονοπάτι

24

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

1
2

4

3

5

6

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 λέγονται εσωτερικοί, ενώ οι

Ασκήσεις

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 \ B 0 )0

δ) (A \ B) ¡ A
1.3 Αποδείξτε τις παρακάτω ισότητες:
α) A \ (A [ B) = A
β) A [ (A \ B) = A
γ) A ¡ (B \ C) = (A ¡ B) [ (A ¡ C)

25

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 αντιστοιχία; Ποια είναι τότε η αντίστροφη
συνάρτηση;
2

1.9 Βρείτε τις f ± g, h ± g, h ± (g ± f ) και (h ± g) ± f , όπου f = 2x, g = ex και
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.

Ασκήσεις

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;

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.
= 0.
στ) Μόνο αν 3 ¡ 2 = 1 είναι 2 6
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) είναι
ισοδύναμοι.

Σύνοψη

29

1.24 Να αποδειχτεί για δύο αριθμούς m και n το εξής:
\m + n είναι περιττός αν και μόνο αν ακριβώς ένας από τους m
και n είναι περιττός"
1.25 Δείξτε για φυσικούς αριθμούς i; j και n ότι, αν ij = n, τότε ή i ∙
p
j ∙ n.

p

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

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

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 είναι ψευδής τότε οδηγούμαστε σε κάποια αντίφαση.
Οι παραπάνω έννοιες θα μας βοηθήσουν να αποδείξουμε διάφορες ιδιότητες των
γλωσσών. Μια γλώσσα δεν είναι παρά ένα σύνολο από λέξεις ενός αλφάβητου §, οι

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

οποίες ονομάζονται συμβολοσειρές. Οι πράξεις που εφαρμόζονται στις γλώσσες
είναι αυτές των συνόλων μαζί με δύο που έχουν νόημα μόνο για γλώσσες. Η
συνένωση L1 ± L2 είναι η γλώσσα που προκύπτει αν στις συμβολοσειρές της L1

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

\κολλήσουμε" τις συμβολοσειρές της L2 .

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

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης
Άσκηση 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 με τον τρόπο
που περιγράφεται στη συνέχεια:

31

32

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

(A ¡ C) ¡ (B ¡ C)

= (A \ C 0 ) ¡ (B \ C 0 )
=

=

(A \ C 0 ) \ (B

(A \ C 0 ) \ (B 0

= ((A \

=
=
=

C 0)

Ορισμός διαφοράς
Νόμος De Morgan

[ C)

\ B 0 ) [ ((A \ C 0 ) \

(A \ (C 0

\ B 0 )) [ (A \

(A \ (B 0

C 0 )) [ Â

(A \ (B 0

Ορισμός διαφοράς

\ C 0 )0

\
\

C 0 )) [ (A \

(C 0
Â)

Επιμεριστικότητα

C)

Προσεταιριστικότητα

\ C))

Κενό σύνολο
Κενό σύνολο

= (A \ (B 0 \ C 0 ))

= ((A \

Κενό σύνολο

B0) \ C 0)

Προσεταιριστικότητα
Ορισμός διαφοράς

= ((A ¡ B) ¡ C)

Άσκηση 1.3 Οι σωστές απαντήσεις φαίνονται στον Πίνακα 1.5.
Πίνακας 1.5. Απαντήσεις Άσκησης 1.3
Σωστό
Â2Â
 2 fÂg
fa; bg µ fa; b; ffa; bggg
fa; bg 2 fa; b; ffa; bggg
fa; b; fa; bgg ¡ fa; bg = fa; bg
fa; b; Âg ¡ Â = fa; bg
fÂg ¡ fa; b; Âg = Â
fag µ 2fa;fagg
fag 2 2fa;fagg

p
p

p
p

Λάθος
p
p
p
p
p

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

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

του δευτέρου, εκείνο που μένει είναι το ffa; bgg.

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

και αφαιρείται από το πρώτο.

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

Το όγδοο είναι λάθος. Από τον ορισμό του δυναμοσύνολου έχουμε 2fa;fagg =
fÂ; fag; ffagg; fa; faggg, το οποίο δεν έχει το fag ως υποσύνολο. Εναλλακτικά,
θα μπορούσαμε να σκεφτούμε ότι το στοιχείο a θα έπρεπε να ανήκει στο 2fa;fagg .
Αυτό όμως δε γίνεται γιατί εξ ορισμού ένα δυναμοσύνολο περιέχει μόνο σύνολα.
Τέλος, με βάση τα παραπάνω, το ένατο είναι σωστό.
Αν μπορέσατε να απαντήσετε όλες τις ερωτήσεις σωστά, μπράβο σας, γιατί
έχετε κατανοήσει το υλικό της ενότητας. Αν όχι, μην απογοητεύεστε. Γυρίστε
ξανά στους ορισμούς και προσπαθήστε να βρείτε που κάνατε λάθος.
Άσκηση 1.4 α) Ας δούμε πρώτα αν η συνάρτηση είναι 1-1. Αν δεν είναι, θα
υπάρχει κάποιος αριθμός k καθώς και m1 ; n1 , m2 ; n2 διαφορετικά μεταξύ τους,
ώστε να ισχύει m1 n1 = m2 n2 = 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 βρίσκονται στο ίδιο σύνολο, τότε θα ισχύει και

33

34

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

bRa. Τέλος, η R είναι και μεταβατική. Αν το a βρίσκεται στο ίδιο σύνολο με το
b και το b στο ίδιο σύνολο με το c, τότε προφανώς και τα a; c θα είναι μέλη του
ίδιου συνόλου. Εφόσον η σχέση είναι ανακλαστική, συμμετρική και μεταβατική
συμπεραίνουμε ότι είναι σχέση ισοδυναμίας.
Άσκηση 1.7 Συμπληρώνουμε τις στήλες από αριστερά προς τα δεξιά χρησιμοποιώντας ανάλογα με την περίπτωση τους πίνακες αληθείας των ^; _ και !.
p
F
F
T
T

q
F
T
F
T


T
T
F
F


T
F
T
F

p^q
F
F
F
T

p¹ ^ q¹ (p ^ q) _ (¹
p ^ q¹)
T
T
F
F
F
F
F
T

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

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

Συγκρίνοντας την τελική στήλη με τον πίνακα αληθείας των p _ q, βλέπουμε

ότι οι δεξιές στήλες και στους δύο πίνακες έχουν ακριβώς τις ίδιες τιμές. Από αυτό
p ^ q¹)) ! p και p _ q είναι ισοδύναμοι.
συμπεραίνουμε ότι οι ισχυρισμοί ((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

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

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

οποίων τα δύο πρώτα δεν είναι συνεχόμενα. Άρα η L2 μπορεί να εκφραστεί
σαν M1 [ M2 . Μία πιο σύντομη έκφραση όμως είναι η M1 (f²g [ fagfbg¤ ).
Αν καταφέρατε να εκφράσετε σωστά τις παραπάνω γλώσσες, μπράβο σας. Αν
όχι μην ανησυχείτε. Τα κεφάλαια που θα ακολουθήσουν θα σας βοηθήσουν να
αποκτήσετε άνεση με τις έννοιες αυτές.

35

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

Κ Ε Φ Α Λ Α Ι Ο

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

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

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

Έννοιες-κλειδιά
² Επαγωγή

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

² Βάση

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

² Επαγωγική υπόθεση

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

² Επαγωγικό βήμα

² Αντίστροφη συμβολοσειράς

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

38

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

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

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

Δείξτε ότι για οποιοδήποτε N ¸ 1, ισχύει
1 + 2 + 3 + ¢ ¢ ¢ + N = N (N + 1)=2:

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

= 1:
= 2:
= 3:
= 4:

1
1+2
1+2+3
1+2+3+4

=
=
=
=

1(1 + 1)=2
2(2 + 1)=2
3(3 + 1)=2
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 . Αλλά αποτελεί αυτό απόδειξη; Διαισθητικά

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

καταλαβαίνουμε ότι με κάποιο τρόπο πρέπει να ενσωματώσουμε το προηγούμενο
αποτέλεσμα στον υπολογισμό της τρέχουσας τιμής του 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
περίπτωση.

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

39

40

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

...
K

K+1

...

N

...

3

2

1

Σχήμα 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).
,
Σ αυτή ακριβώς την απλότητα της μεθόδου κρύβεται και η δύναμή της. Υπάρ,
,
χουν τόσοι πολλοί ισχυρισμοί που μπορούν ν αποδειχθούν μ αυτό τον τρόπο που δε

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

41

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

Απόδειξη: Θα εφαρμόσουμε την επαγωγική απόδειξη πάνω στο μέγεθος
του 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 ! B 0 ,
A0 = A¡f ¡1 (b), B 0 = B ¡fbg, που ταυτίζεται με την f σε όλα τα υπόλοιπα
στοιχεία. Μπορεί η g να είναι ένα προς ένα; Η απάντηση είναι όχι, γιατί
jB 0 j = K, jA0 j > jB 0 j, άρα ισχύει η επαγωγική υπόθεση. Επομένως για δύο
διαφορετικά a1 ; a2 2 A0 θα ισχύει g(a1 ) = g(a2 ). Αλλά τότε f (a1 ) = f (a2 )
και η f δεν είναι ένα προς ένα.

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

Παράδειγμα 2.2

42

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

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

Δείξτε, για κάθε θετικό ακέραιο n ¸ 2, ότι
p1
1

+

p1
2

+ ¢¢¢ +

p1
n

>

p
n

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

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

2.2 Η Ισχυρή Αρχή της Μαθηματικής Επαγωγής
Υπάρχουν περιπτώσεις όπου, αν και η επαγωγική μέθοδος είναι η καταλληλότερη
μέθοδος για την απόδειξη, ωστόσο με τον τρόπο που την ορίσαμε δεν επαρκεί. Ας
δούμε το επόμενο παράδειγμα:
2.3
Παράδειγμα 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).

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

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

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.

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

Παράδειγμα 2.3

44

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

για K ¡ 2 = 6 που όμως δεν καλύπτεται από την επαγωγική υπόθεση. Το ίδιο

συμβαίνει και με την περίπτωση K + 1 = 10. Άρα πρέπει να εξετάσουμε τις
περιπτώσεις αυτές ξεχωριστά. Μη τήρηση των παραπάνω είναι λάθος και έχει σαν

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

Έστω ότι προσπαθούμε να ταξινομήσουμε N αριθμούς χρησιμοποιώντας την ακόλουθη
διαδικασία.
Sort (List[1..N ])
// List[1..N ] είναι η είσοδος
f
if (N ∙ 1)
return (List);
else
return (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,
η οποία μας επιστρέφει το σωστό αποτέλεσμα.

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

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

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
Ορισμός 2.2

Η αντίστροφη μιας συμβολοσειράς w (θα τη συμβολίζουμε με wR ) είναι η συμβολοσειρά
που προκύπτει, αν γράψουμε τα σύμβολα της w με την αντίστροφη φορά, από δεξιά προς
τα αριστερά. Έτσι, αντιστροφηR = ηφορτσιτνα. Ο αναδρομικός ορισμός που ακολουθεί
θα μας βοηθήσει να αποδείξουμε διάφορες ιδιότητες σχετικά με την αντίστροφη.
1. Αν w είναι η κενή συμβολοσειρά, τότε wR = w = ².
2. Αν w = xa, όπου a 2 § και x 2 §¤ , τότε wR = (xa)R = axR .

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

47

Θα δείξουμε τώρα ότι για οποιεσδήποτε συμβολοσειρές x και y, (xy)R =
y R xR . Για παράδειγμα (ασπρομαυρο)R = μαυροR ασπροR = ορυαμορπσα. Θα
χρησιμοποιήσουμε επαγωγή στο μήκος του y. Έστω P (N ) ο ακόλουθος ισχυρισμός:
\Αν x; y 2 §¤ και jyj = N , τότε (xy)R = y R xR ."
Θα δείξουμε ότι ο P (N ) είναι αληθής για κάθε N ¸ 0.
Βάση: Είναι φανερό ότι, αν N = 0, τότε y = ², οπότε
(xy)R

=
=
=
=
=

(x²)R
xR
²xR
²R xR
yR xR

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

Επαγωγική Υπόθεση: Έστω ότι K ¸ 0 και για οποιεσδήποτε x; y 2 §¤ , με

jyj = K, ισχύει (xy)R = y R xR .

Επαγωγικό Βήμα: Θα δείξουμε ότι, αν x; y 2 §¤ και jyj = K + 1, τότε (xy)R =

y R xR . Εφόσον jyj = K + 1 ¸ 1 μπορούμε να εκφράσουμε την y σαν za, όπου
a 2 § και jzj = K. Άρα,
(xy)R

=
=
=
=
=
=
=

(x(za))R
((xz)a)R
a(xz)R
az R xR
(az R )xR
(za)R xR
y R xR

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

2.4
Έστω L µ f0; 1g¤ η γλώσσα που ορίζεται όπως παρακάτω:
1. Οι συμβολοσειρές 0 και 10 ανήκουν στην L.
2. Αν x 2 L, τότε και x0 2 L.
3. Αν x 2 L, τότε και x10 2 L
4. Τίποτε άλλο δεν ανήκει στην L, εκτός αν προκύπτει από τα παραπάνω.
Δείξτε ότι L = fx 2 f0; 1g¤ j η x τελειώνει σε 0 και δεν περιέχει τη συμβολοσειρά 11g.

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

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

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 + ¢ ¢ ¢ + N 2 = 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,
= 1.
γ) x0 + x1 + ¢ ¢ ¢ + xN = (xN +1 ¡ 1)=(x ¡ 1), για κάθε αριθμό x 6
2.6 Είναι φανερό ότι η ακόλουθη \απόδειξη" ότι όλα τα στοιχεία ενός συνόλου
είναι ίδια μεταξύ τους είναι λανθασμένη. Μπορείτε να βρείτε το λάθος;
Βάση: Για σύνολα με ένα στοιχείο ο ισχυρισμός είναι αληθής.
Επαγωγική Υπόθεση: Έστω ότι ισχύει ο ισχυρισμός για όλα τα σύνολα με
K στοιχεία.
Επαγωγικό Βήμα: Θεωρήστε ένα σύνολο με K + 1 στοιχεία. Αφαιρέστε
ένα οποιοδήποτε στοιχείο a. Τα υπόλοιπα στοιχεία σχηματίζουν ένα σύνολο
μεγέθους K, άρα, από την επαγωγική υπόθεση, είναι όμοια μεταξύ τους.
Βάλτε πίσω το a και βγάλτε ένα άλλο στοιχείο b. Ξανά το εναπομένων
σύνολο έχει μέγεθος K, άρα πάλι τα στοιχεία είναι όμοια μεταξύ τους. Άρα
κάθε φορά όλα τα στοιχεία είναι ίδια με τα a και b, επομένως είναι ίδια
μεταξύ τους.
2.7 Δώστε ένα αναδρομικό ορισμό του μήκους jxj, μιας συμβολοσειράς x. Στη
συνέχεια αποδείξτε για δύο συμβολοσειρές x; y ότι
α) jxyj = jxj + jyj,
β) jxk j = kjxj, για κάθε k ¸ 0.
2.8 Δείξτε, για κάθε συμβολοσειρά x ότι
α) (xR )R = x,
β) (xk )R = (xR )k .

Σύνοψη

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 log2 N + 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 =

p1 (Án
5

¡ Á^n ), όπου Á = (1 +

p
p
5)=2 και Á^ = (1 ¡ 5)=2.

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

50

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

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

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης
Άσκηση 2.1
Βάση: Πρέπει να δείξουμε ότι p11 + p12 >
p
p
1 > 22 ή 2 > 2, το οποίο είναι αληθές.

p
2 ή 1+

p
2
2

>

p
2 ή

Επαγωγική Υπόθεση: Έστω ότι η πρόταση ισχύει για n = k, δηλαδή
p
ότι p11 + p12 + ¢ ¢ ¢ + p1k > k.
Επαγωγικό Βήμα: Θα πρέπει να δείξουμε ότι
p
1
1
1
1
p + p + ¢¢¢ + p + p
> k+1
k+1
1
2
k
Ομαδοποιώντας τους πρώτους k όρους του αθροίσματος και χρησιμοποιώντας την επαγωγική υπόθεση, το αριστερό μέλος είναι μεγαλύτερο
p
p
p
1
1
> k + 1,
από k + pk+1
. Αν δείξουμε τώρα ότι k + pk+1
θα έχουμε το ζητούμενο. Πολλαπλασιάζοντας και τα δύο μέλη της
p p
p
ανισότητας με k + 1 έχουμε ισοδύναμα k k + 1 + 1 > k + 1 ή
p p
k k + 1 > k ή k(k + 1) > k2 , υψώνοντας στο τετράγωνο τις δύο
πλευρές. Η τελευταία όμως ανισότητα δίνει k + 1 > k, το οποίο είναι
αληθές.
Άσκηση 2.2 Αρκεί να δειχτεί ότι για κάθε n ¸ 1, το n3 + 2n διαιρείται με το 3.
Βάση: Για n = 1 έχουμε 13 + 2 = 3, το οποίο προφανώς διαιρείται με
το 3.

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

Επαγωγική Υπόθεση: Έστω ότι για n = k, το k3 + 2k διαιρείται με
το 3. Άρα θα υπάρχει αριθμός m ώστε k 3 + 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 + 3k 2 + 3k + 1 + 2(k + 1)
= (k3 + 2k) + (3k2 + 3k + 3)
= 3m + 3(k 2 + k + 1) (Από την υπόθεση)
= 3(m + k 2 + 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 = P Q. Αυτοί οι αριθμοί όμως θα είναι
μεγαλύτεροι από 1 και μικρότεροι από K + 1. Άρα από την επαγωγική
υπόθεση και οι δύο θα είναι είτε πρώτοι είτε γινόμενα πρώτων αριθμών.
Σε κάθε περίπτωση όμως, αφού K + 1 = P Q, προκύπτει ότι ο K + 1
είναι γινόμενο πρώτων αριθμών.
Αν δουλέψατε με παρόμοιο τρόπο, μπράβο σας. Αν δεν τα καταφέρατε, μην
ανησυχείτε. Αυτή ήταν όντως μία δύσκολη επαγωγή, γιατί δεν αρκούσε μόνο
να χρησιμοποιήσουμε τον ορισμό ενός πρώτου αριθμού, αλλά και την άρνησή του
στο επαγωγικό βήμα.

51

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 του ορισμού. Έχοντας αυτούς στο νου μας, μπορούμε να συμπληρώνουμε τα
κενά του επαγωγικού βήματος.

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

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝ
Επαγωγή 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.
Το διαδίκτυο επίσης προσφέρεται για την αναζήτηση βιβλίων σχετικών με τα
μαθηματικά της Επιστήμης των Υπολογιστών. Αρκεί να επισκεφτεί κάποιος τις

53

54

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

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

Μ Ε Ρ Ο Σ

ΠΕΠΕΡΑΣΜΕΝΑ ΑΥΤΟΜΑΤΑ
ΚΑΙ
ΚΑΝΟΝΙΚΕΣ ΓΛΩΣΣΕΣ
Στο Κεφάλαιο 1 είδαμε ότι υπάρχουν δύο τρόποι για να περιγράψει κάποιος μια
γλώσσα L. Ο πρώτος είναι να δώσει τον τρόπο με τον οποίο παράγονται οι
συμβολοσειρές που ανήκουν στην L. Αυτό μπορεί να γίνει με τις συνήθεις πράξεις
της ένωσης, συνένωσης και αστεριού Kleene, που εφαρμόζονται πάνω στις γλώσσες.
Ο δεύτερος είναι να περιγράψει τον τρόπο με τον οποίο αναγνωρίζονται οι συμβολοσειρές που ανήκουν στη γλώσσα. Δύο τυπικά παραδείγματα ακολουθούν:
L1 = fab; bbg¤ [ fbgfaa; bg¤

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

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

56

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

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

Κ Ε Φ Α Λ Α Ι Ο

ΚΑΝΟΝΙΚΕΣ ΕΚΦΡΑΣΕΙΣ ΚΑΙ
ΚΑΝΟΝΙΚΕΣ ΓΛΩΣΣΕΣ
Σκοπός
Το κεφάλαιο αυτό αναφέρεται σε μια ειδική κατηγορία γλωσσών, τις κανονικές
γλώσσες, οι οποίες μπορούν να περιγραφούν χρησιμοποιώντας σύμβολα ενός απλού
,
αλφάβητου. Οι περιγραφές που προκύπτουν μ αυτόν τον τρόπο ονομάζονται κανονικές εκφράσεις. Σκοπός του κεφαλαίου είναι η εξοικείωση του αναγνώστη με τις
κανονικές εκφράσεις ως μεθόδους περιγραφής και παραγωγής γλωσσών.

Προσδοκώμενα Αποτελέσματα
Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:
² αναφέρετε τι είναι κανονική έκφραση και πώς ορίζεται,
² εξηγήσετε γιατί οι κανονικές γλώσσες είναι κλειστές ως προς τις πράξεις ένωση,
συνένωση και αστέρι Kleene,

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

Έννοιες-κλειδιά
² Παραγωγή γλωσσών

² Κανονικές εκφράσεις
² Κανονικές γλώσσες

² Ισότητα κανονικών εκφράσεων

² Κλειστότητα κανονικών γλωσσών
57

58

Κανονικές Εκφράσεις και Κανονικές Γλώσσες

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

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

Έστω L = fx 2 fa; bg¤ j η x περιέχει το ba και τελειώνει σε bg. Η L μπορεί να περιγραφεί
με τις συνήθεις πράξεις ως εξής:
fa; bg¤ fbagfa; bg¤ fbg
Ο λόγος είναι ότι αμέσως πριν και μετά το ba μπορεί να υπάρχει οτιδήποτε (αυτό
εκφράζεται με τη γλώσσα fa; bg¤ ) και υποχρεωτικά να ακολουθεί το b (εκφράζεται με τη
γλώσσα fbg).

Κανονική
Γλώσσα

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

(; ); + για να είναι οι εκφράσεις ευκολότερα αναγνώσιμες. Έτσι, η γλώσσα του
προηγούμενου παραδείγματος απλά γίνεται
L = (a + b)¤ ba(a + b)¤ b
όπου fa; bg = (a + b), γιατί ένα σύνολο είναι ουσιαστικά η ένωση των στοιχείων

που το αποτελούν.

Μία κανονική έκφραση μπορεί να θεωρηθεί ως μια τυπική συμβολοσειρά της
γλώσσας που εκπροσωπεί. Για παράδειγμα, η έκφραση ab¤ αναπαριστά μια συμβο,
λοσειρά που αρχίζει με a και τελειώνει μ έναν οποιοδήποτε αριθμό από b. Φυσικά
η έκφραση αυτή αντιστοιχεί σε μια άπειρη γλώσσα, την fa; ab; abb; abbb; : : :g, αφού
ο αριθμός των b μπορεί να είναι οποιοσδήποτε.

Κανονικές Εκφράσεις

59

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

,
Μια κανονική έκφραση πάνω σ ένα αλφάβητο §, αλλά και η αντίστοιχη γλώσσα, ορίζεται
ως εξής:

Ορισμός 3.1

1. Â είναι η κανονική έκφραση που αντιστοιχεί στην κενή γλώσσα Â.
2. ² είναι η κανονική έκφραση που αντιστοιχεί στη γλώσσα f²g.
3. Για κάθε σύμβολο a 2 §, a είναι η κανονική έκφραση που αντιστοιχεί στη γλώσσα
fag.
4. Αν r και s είναι εκφράσεις που αντιστοιχούν στις γλώσσες Lr και Ls , τότε και οι
(rs), (r + s) και (r¤ ) είναι κανονικές εκφράσεις που αντιστοιχούν στις γλώσσες
Lr Ls , Lr [ Ls και L¤r .
5. Τίποτα άλλο δεν είναι κανονική έκφραση, εκτός αν προκύπτει από τους παραπάνω
κανόνες.
,
Μια γλώσσα πάνω σ ένα αλφάβητο § θα ονομάζεται κανονική, αν υπάρχει κάποια
,
κανονική έκφραση που αντιστοιχεί σ αυτή.

Από τον ορισμό προκύπτει ότι μπορεί να υπάρχουν άπειρες εκφράσεις που
αναπαριστούν την ίδια γλώσσα. Για παράδειγμα οι εκφράσεις 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+ b + b)

και

Ίσες Εκφράσεις

a¤ b.

3.1
Δείξτε ότι οι εκφράσεις (a¤ b¤ )¤ και (a + b)¤ είναι ίσες.

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

60

Κανονικές Εκφράσεις και Κανονικές Γλώσσες

Θα κλείσουμε αυτή την ενότητα αναφέροντας δύο θεωρήματα που αφορούν τις
κανονικές γλώσσες.
Θεώρημα 3.1. Οι κανονικές γλώσσες είναι κλειστές ως προς τις πράξεις της
ένωσης, της συνένωσης και του αστεριού Kleene.
Απόδειξη: Το θεώρημα μας ζητά να αποδείξουμε ότι αν L1 και L2 είναι
δύο κανονικές γλώσσες, τότε το ίδιο ισχύει και για τις L1 [ L2 , L1 L2 και L¤1 .
Η απόδειξη αφήνεται στον αναγνώστη, αφού προκύπτει με απλή εφαρμογή
του ορισμού.

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

Αποδείξτε το Θεώρημα 3.1.

Το Θεώρημα 3.1 μας λέει πως, αν μπορούμε να παράγουμε δύο γλώσσες L1
και L2 , τότε μπορούμε να παράγουμε και την ένωσή τους L1 [ L2 . Στα επόμενα

κεφάλαια θα δούμε πως το παραπάνω ισχύει και όταν πρόκειται να αναγνωρίσουμε
μια γλώσσα. Επιπλέον, θα δείξουμε ότι οι κανονικές γλώσσες είναι κλειστές και ως
προς τις πράξεις της τομής και του συμπληρώματος, κάτι που δεν είναι προφανές
χρησιμοποιώντας κανονικές εκφράσεις.
Θεώρημα 3.2. Κάθε πεπερασμένη γλώσσα είναι κανονική.
Απόδειξη: Το θεώρημα μας ζητά να αποδείξουμε ότι αν L είναι μια γλώσσα
με πεπερασμένο αριθμό συμβολοσειρών, έστω N ¸ 0, τότε υπάρχει μια
κανονική έκφραση που αντιστοιχεί σε αυτή.
Η εμφάνιση του αριθμού N μας προτρέπει να αποδείξουμε το θεώρημα
χρησιμοποιώντας μαθηματική επαγωγή.
Βάση: Είναι φανερό ότι αν N = 0, τότε L = Â η οποία, σύμφωνα με τον
Ορισμό 3.1, αντιστοιχεί στην κανονική έκφραση Â.
Επαγωγική Υπόθεση: Έστω ότι K ¸ 0 και ότι οποιαδήποτε γλώσσα L με
K συμβολοσειρές είναι κανονική.

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

Επαγωγικό Βήμα: Θα δείξουμε ότι, αν jLj = K +1, τότε η L είναι κανονική.
Εφόσον μια γλώσσα δεν είναι παρά ένα σύνολο στοιχείων, η L μπορεί να
εκφραστεί σαν L1 [ L2 , όπου η L1 αποτελείται από K συμβολοσειρές και
η L2 από μία. Αλλά τότε σύμφωνα με την επαγωγική υπόθεση θα υπάρχει
κανονική έκφραση r1 που αντιστοιχεί στην L1 . Αν μπορέσουμε να δείξουμε
ότι και η L2 αντιστοιχεί σε μία κανονική έκφραση r2 (Άσκηση 3.2), τότε
σύμφωνα με τον Ορισμό 3.1, η (r1 [ r2 ) είναι μία κανονική έκφραση που
αντιστοιχεί στην L1 [ L2 .

Τι θα συμπεραίνατε για μια γλώσσα της οποίας η αντίστοιχη έκφραση δεν περιέχει τον
τελεστή ¤ ;

Παραδείγματα και Εφαρμογές

61

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

,
Έστω L η γλώσσα πάνω στο αλφάβητο § = f0; 1g, η οποία αποτελείται απ όλες τις
συμβολοσειρές με ζυγό αριθμό μηδενικών. Είναι η L κανονική, και αν ναι, ποια η
,
κανονική έκφραση που αντιστοιχεί σ αυτή;
,
,
Για ν απαντήσουμε σ αυτό το ερώτημα θα προσπαθήσουμε να βρούμε μια ιδιότητα που
χαρακτηρίζει τις συμβολοσειρές της L. Ας ξεκινήσουμε με μία τυπική συμβολοσειρά

Παράδειγμα 3.2

x = 1110111011111000111110
Είναι φανερό ότι x 2 L. Θα διασπάσουμε τη x όπως στη συνέχεια για να φαίνονται τα
τμήματα που την αποτελούν:
B

B

B

z }| {
z}|{ z }| {
x = |{z}
111 ± 01110 ± 11111
00 ± 0111110
±
| {z }
A

A

Από τα παραπάνω φαίνεται ότι η 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.3
Έστω L = fx 2 f0; 1g¤ j η x τελειώνει με 1 και δεν περιέχει το 00g. Για να βρούμε την
ιδιότητα που χαρακτηρίζει τις συμβολοσειρές της L αρκεί να απαντήσουμε στο ερώτημα:
ποιές ακολουθίες από 0 και 1 δεν εμφανίζουν ποτέ δύο συνεχόμενα 0; Η απάντηση είναι
αυτές που δεν επιτρέπουν μετά από 0 να ακολουθεί άλλο 0. Αν κάθε 0 ακολουθείται
από 1, τότε τα μόνα 0 υπάρχουν σε συμβολοσειρές του τύπου 01. Αν επιτρέψουμε και
την εμφάνιση οποιουδήποτε αριθμού από 1, τότε η L αντιστοιχεί στην κανονική έκφραση
2 L.
R = (1 + 01)+ εφόσον ² 6

Παράδειγμα 3.3

62

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

Για να είμαστε όμως πιο ακριβείς θα πρέπει να δείξουμε ότι η γλώσσα που αντιστοιχεί στην R, ας την πούμε LR , είναι ίση με την L. Από τη θεωρία συνόλων
γνωρίζουμε ότι αυτό ισοδυναμεί με το να δείξουμε ότι LR µ L και L µ LR .

Το πρώτο είναι αληθές, καθότι η LR κατασκευάστηκε ώστε να μην περιέχει το
00. Για το αντίστροφο αρκεί να δείξουμε ότι μια τυχαία συμβολοσειρά της L
μπορεί να παραχθεί από την έκφραση R. Μια επαγωγική απόδειξη στο μήκος της
συμβολοσειράς αρκεί και η απόδειξη αφήνεται για τον αναγνώστη.
3.4
Παράδειγμα 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.5
Άσκηση
Αυτοαξιολόγησης
3.5

Κάντε το ίδιο για μια γλώσσα L, της οποίας οι συμβολοσειρές δεν περιέχουν το 110.

ΑΣΚΗΣΕΙΣ
,
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¤

Ασκήσεις

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¤ )¤

63

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 η γλώσσα που
αντιστοιχεί σε αυτή, βρείτε μια κανονική έκφραση για την αντίστροφη
LR
s.
² Χρησιμοποιώντας ως μοντέλο τον Ορισμό 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.

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

(Αν η x αρχίζει από b, τότε η πρώτη ομάδα αποτελείται μόνο από b και παράγεται
με την έκφραση b¤ , ενώ, αν η x τελειώνει σε a, τότε η αντίστοιχη ακολουθία
παράγεται από την a¤ .)
Άσκηση 3.2 Έστω L1 και L2 δύο κανονικές γλώσσες και r1 ; r2 οι αντίστοιχες
κανονικές εκφράσεις. Το θεώρημα μας ζητά να δείξουμε ότι και οι L1 [ L2 , L1 L2
και L¤1 είναι κανονικές. Αλλά αυτές περιγράφονται από τις εκφράσεις (r1 + r2 ),
(r1 r2 ) και r1¤ , οπότε με βάση τον Ορισμό 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 ή r1 r2 , όπου για τις r1 , r2 ισχύει η
επαγωγική υπόθεση. Μα τότε και η r θα είναι πεπερασμένη ως ένωση
ή συνένωση πεπερασμένων γλωσσών.
Συγχαρητήρια, αν βρήκατε τη σωστή απάντηση. Αν όχι, μην απογοητεύεστε. Αυτή
ήταν μία \πονηρή" άσκηση. Βεβαιωθείτε όμως ότι καταλάβατε τη χρήση του
αστεριού Kleene.
Άσκηση 3.4 Έστω L η γλώσσα της οποίας οι συμβολοσειρές περιέχουν ακριβώς
μια εμφάνιση του 00. Για να κατασκευάσουμε μια κανονική έκφραση για την
L μπορούμε να αρχίσουμε με την έκφραση 00 και να αναρωτηθούμε τι πρέπει να
βάλουμε δεξιά και αριστερά αυτής. Έστω l η έκφραση στα αριστερά. Η l δε μπορεί
να επιτρέπει τη δημιουργία συνεχόμενων μηδενικών και δεν μπορεί να τελειώνει σε
0, γιατί τότε θα είχαμε τη δημιουργία του 000. Αν λοιπόν αναγκάσουμε κάθε 0 να
ακολουθείται από 1, τότε η ζητούμενη έκφραση είναι η l = (1 + 01)¤ . Αντίστοιχα,
αν r είναι η έκφραση στα δεξιά, τότε και αυτή δε μπορεί να περιέχει συνεχόμενα

65

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

Κ Ε Φ Α Λ Α Ι Ο

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

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

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

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

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

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

² δώσετε τον ορισμό της γλώσσας που γίνεται δεκτή από ένα αυτόματο,
67

68

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

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

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

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

² εξηγήσετε γιατί η γλώσσα των παλινδρομικών συμβολοσειρών δεν είναι κανονική,

² εξηγήσετε γιατί οι κανονικές γλώσσες είναι κλειστές ως προς τις πράξεις τομή
και διαφορά.

Έννοιες-κλειδιά
² Μηχανή πεπερασμένων καταστάσεων,
² Αυτόματο,
² Σύμβολα εισόδου και τελικές καταστάσεις,
² Διάγραμμα καταστάσεων και πίνακας μεταβάσεων ενός αυτόματου,
² Απλοποίηση αυτομάτων,

² Συνάρτηση μετάβασης ± και ± ¤ ,

² Γλώσσα που αναγνωρίζεται ή γίνεται δεκτή από ένα αυτόματο,
² Διάκριση συμβολοσειρών σε σχέση με μια γλώσσα L,
² Ελάχιστος αριθμός καταστάσεων αυτόματου,
² Γλώσσες που δεν είναι κανονικές,
² Τομή και συμπλήρωμα κανονικών γλωσσών,

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

Εισαγωγή

69

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

4.1 Εισαγωγή
Στο προηγούμενο κεφάλαιο είδαμε πώς μπορούμε να παράγουμε κανονικές γλώσσες.
,
Σ αυτό το κεφάλαιο θα προσπαθήσουμε να ανακαλύψουμε τα ελάχιστα χαρακτηριστικά που πρέπει να έχει μια μηχανή για να μπορεί να αναγνωρίσει μια τέτοια
γλώσσα. Με τον όρο αναγνώριση εννοούμε ότι, αν μια συμβολοσειρά x δοθεί ως
είσοδος στη μηχανή, η μηχανή θα πρέπει να διαβάσει τα σύμβολα της x, έναένα από αριστερά προς τα δεξιά και στο τέλος να αποφασίσει αν η συμβολοσειρά
ανήκει στη γλώσσα. Αυτός ο τρόπος αναγνώρισης μπορεί να φαίνεται αρκετά
περιοριστικός αλλά θα μας βοηθήσει να καταλάβουμε τι είδους πληροφορία πρέπει
να \θυμάται" η μηχανή για το τμήμα της συμβολοσειράς που έχει αναγνώσει μέχρι
κάποια στιγμή, και αργότερα να ταξινομήσουμε τις γλώσσες με βάση την ποσότητα
της πληροφορίας που απαιτείται για την αναγνώρισή τους.
Θα ξεκινήσουμε τη συζήτησή μας περιγράφοντας τη διαδικασία της αναγνώρισης λίγο καλύτερα. Όπως αναφέραμε η μηχανή διαβάζει τα σύμβολα ένα-ένα και
οποιαδήποτε απόφαση παίρνει αφορά το τμήμα της συμβολοσειράς που έχει δει
μέχρι αυτή τη στιγμή. Με άλλα λόγια, μετά από κάθε σύμβολο αποφασίζουμε αν η
x ανήκει ή όχι στη γλώσσα άσχετα με το αν αποτελεί μέρος κάποιας μεγαλύτερης
συμβολοσειράς. Εδώ δε θα πρέπει να μας προβληματίζει το γεγονός ότι το τρέχον
σύμβολο μπορεί να μην είναι το τελευταίο σύμβολο της x. Εκείνο που έχει σημασία
είναι ότι , όταν διαβαστεί και το τελευταίο σύμβολο, η τελική απόφαση θα αφορά
πια ολόκληρη τη συμβολοσειρά και όχι μόνο ένα μέρος αυτής.
Ίσως εδώ να φαίνεται ότι μια καλύτερη λύση θα ήταν να περιμένουμε να
διαβαστεί ολόκληρη η συμβολοσειρά πριν η μηχανή πάρει οποιαδήποτε απόφαση.
Θυμηθείτε όμως ότι σκοπός μας είναι να ταξινομήσουμε τις γλώσσες ανάλογα
,
με το ποσό της πληροφορίας που πρέπει να θυμόμαστε σε κάθε βήμα για ν
αναγνωρίσουμε τη γλώσσα.
Το ερώτημα που γεννιέται τώρα είναι αν πρέπει να θυμόμαστε όλη τη συμβολο,
σειρά που έχουμε διαβάσει για ν αποφασίσουμε αν ανήκει ή όχι στη γλώσσα.
Σίγουρα, αν συμβαίνει αυτό εύκολα μπορούμε να αποφασίσουμε, αφού έχουμε
τη μέγιστη δυνατή πληροφορία. Κάτι τέτοιο όμως θα προϋπόθεται την ύπαρξη
μνήμης, πολύ μεγάλης χωρητικότητας. Αν όμως σκεφτείτε καλύτερα θα δείτε ότι

Διαδικασία
αναγνώρισης

70

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

καμιά μνήμη δεν επαρκεί, γιατί πάντα θα μπορούσαμε να δώσουμε ως είσοδο μια
μεγαλύτερη συμβολοσειρά. Ίσως λοιπόν δε χρειάζεται να θυμόμαστε τόσα πολλά.
Ας δούμε ένα παράδειγμα.
4.1
Παράδειγμα 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. Το μικρό βέλος στα αριστερά μας λέει από που να αρχίσουμε,
όταν δεν έχει διαβαστεί κανένα σύμβολο. Ο διπλός κύκλος σημαίνει ότι, αν
είμαστε σε αυτή την κατάσταση όταν φτάσουμε στο τέλος της συμβολοσειράς που
Αναγνώριση!

επεξεργαζόμαστε, τότε η απάντηση πρέπει να είναι \Ναι, η συμβολοσειρά ανήκει
στη γλώσσα". Οι καταστάσεις ²; 0; 1 είναι προσωρινές και χρησιμοποιούνται μόνο
μέχρι να διαβαστούν δύο σύμβολα. Οι τέσσερις καταστάσεις 00, 01, 10 και 11
αντιστοιχούν στους τέσσερις τύπους που περιγράψαμε παραπάνω και τα βέλη μας
λένε, για κάθε δυνατό σύμβολο, πόσο πρέπει να θυμόμαστε.
Για παράδειγμα, αν κάποια στιγμή είμαστε στην κατάσταση 01 (η τρέχουσα
συμβολοσειρά τελειώνει σε 01) και το επόμενο σύμβολο είναι 1, το βέλος που

Εισαγωγή

71

0
00

0

1

0

1

0

0

01
1

ε
1

0

0
1

10
0

1
1

11
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

72

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

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

ιδιότητά της είναι ότι αποτελείται από ένα πεπερασμένο σύνολο καταστάσεων, ώστε
η μηχανή δε χρειάζεται να θυμάται όλη τη συμβολοσειρά που έχει διαβάσει μέχρι
τώρα αλλά μόνο την κατάσταση στην οποία βρίσκεται. Και αυτό είναι το μόνο είδος
μνήμης που χαρακτηρίζει τη μηχανή. Δε θα πρέπει λοιπόν να μας εκπλήσσει το
γεγονός ότι μηχανές με τόσο περιορισμένη μνήμη θα πρέπει να αναγνωρίζουν μόνο
απλές γλώσσες. Και όπως θα δούμε στη συνέχεια, οι γλώσσες αυτές δε θα είναι
άλλες από τις κανονικές γλώσσες του προηγούμενου κεφαλαίου. Η προσέγγιση
όμως αυτή θα μας φανεί χρήσιμη και για έναν ακόμη λόγο: θα μας βοηθήσει να
καταλάβουμε, αλλά και να εντοπίσουμε, γλώσσες που δεν είναι κανονικές, κάτι
που δεν είναι προφανές χρησιμοποιώντας κανονικές εκφράσεις.
Όμως τέτοιου είδους μηχανές δε χρησιμοποιούνται μόνο για αναγνώριση γλωσσών. Υπάρχουν πολλά συστήματα που δέχονται διακριτές εισόδους και χρειάζεται
να βρίσκονται σε κάποια από ένα πεπερασμένο πλήθος καταστάσεων. Οι καταστάσεις αυτές είναι εκείνες που καθορίζουν τη συμπεριφορά του συστήματος σε νέες
εισόδους.
Ένα τυπικό παράδειγμα αποτελεί ο μηχανισμός ελέγχου μιας συνηθισμένης
μηχανής πώλησης αναψυκτικών. Μια κατάσταση εδώ αντιστοιχεί στο ποσό που
έχει συμπληρωθεί μέχρι κάποια στιγμή. Η αρχική κατάσταση αντιστοιχεί σε μηδενικό ποσό και κάθε κέρμα που ρίχνουμε έχει σαν αποτέλεσμα τη μετάβαση σε
μια νέα κατάσταση που αντανακλά το τρέχον ποσό. Επίσης, η μονάδα ελέγχου
ενός υπολογιστή αποτελεί και αυτή ένα παρόμοιο σύστημα. Κάθε σήμα ελέγχου
(ανάγνωση/εγγραφή στη μνήμη, αίτηση διακοπής, κλπ.) έχει σαν αποτέλεσμα τη
μετάβαση της μονάδας σε μια νέα κατάσταση. Αν και οι καταστάσεις είναι πάρα
πολλές, γιατί τα σήματα είναι πάρα πολλά, ωστόσο και αυτή η περίπτωση μπορεί
να μοντελοποιηθεί με ένα τέτοιο σύστημα.
4.1

Δραστηριότητα
4.1

Δώστε δύο παραδείγματα συστημάτων που μπορούν να περιγραφούν με ένα πεπερασμένο
σύνολο καταστάσεων και αντιδρούν σε κάποια είσοδο μεταβαίνοντας σε διάφορες
καταστάσεις.

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

Ορισμοί και Αναπαράσταση

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
00
01
10
11

Είσοδος
0
1
0
1
00 01
10 11
00 01
10 11
00 01
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. Αλλά μπορούμε να

Συνάρτηση
μετάβασης

74

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

συνεχίσουμε και άλλο. Εφόσον η 0 ταυτίζεται με την 10 και η 1 με την 11,
δεν υπάρχει λόγος να ξεχωρίζουμε τις καταστάσεις 1 και ². Άρα και η ² μπορεί
να μπει στην κατηγορία A. Έχουμε λοιπόν τρεις καταστάσεις και το αντίστοιχο
αυτόματο φαίνεται στο Σχήμα 4.2.
0

1
1
A

B
0
1

0

00

Κατάσταση

A
B
00

Είσοδος
0
1
B
A
00 A
00 A

Σχήμα 4.2. Απλοποιημένο αυτόματο Παραδείγματος 4.1.

Οι νέες καταστάσεις μπορούν να ερμηνευθούν ως εξής: Η A φανερώνει ότι
δεν έχει γίνει καμιά πρόοδος προς το 00: η τρέχουσα συμβολοσειρά είτε είναι η
κενή είτε τελειώνει σε 1. Η B μας λέει ότι σχεδόν έχουμε φτάσει στο σκοπό μας:
το τελευταίο σύμβολο είναι 0, αλλά θέλουμε ένα ακόμη 0 για να γίνει δεκτή η
συμβολοσειρά. Τέλος, η 00 είναι η τελική κατάσταση: η συμβολοσειρά ανήκει στη
γλώσσα.

Η Συνάρτηση δ*
Είδαμε λοιπόν πότε μια συμβολοσειρά αναγνωρίζεται από ένα αυτόματο. Για να
είμαστε όμως ακριβείς θα πρέπει να ορίσουμε και μαθηματικά πότε συμβαίνει αυτό.
Ας είναι M ένα αυτόματο και ± η συνάρτηση μετάβασης του. Θέλουμε να
περιγράψουμε την κατάσταση στην οποία πηγαίνει το M ξεκινώντας από μια
κατάσταση q, αυτή τη φορά όμως διαβάζοντας όχι απλά ένα σύμβολο, αλλά μια
\± ¤ (q; x)"

συμβολοσειρά 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

Ορισμοί και Αναπαράσταση

75

Έστω M = (Q; §; q0 ; ±; F ) ένα πεπερασμένο αυτόματο. Η συνάρτηση ± ¤ : Q£§¤ ! Q
ορίζεται αναδρομικά ως εξής:

Ορισμός 4.2

1. Για κάθε q 2 Q, ± ¤ (q; ²) = q.
2. Για κάθε q 2 Q, x 2 §¤ και a 2 §, ± ¤ (q; xa) = ±(± ¤ (q; x); a).

4.2
Ας χρησιμοποιήσουμε αυτό τον ορισμό για να υπολογίσουμε την ± ¤ (A; 0010) του
αυτόματου του Σχήματος 4.2. Ακολουθώντας τα βέλη βλέπουμε ότι πρέπει να
καταλήξουμε στην κατάσταση B. (Για να μην δημιουργείται σύγχυση με τα σύμβολα
εισόδου αλλάξαμε το όνομα της κατάστασης 00 σε q00 ).

Παράδειγμα 4.2

± ¤ (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
Χρησιμοποιώντας επαγωγή, δείξτε για δύο συμβολοσειρές 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

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) και q 0 = ±2 (q; a). Τέλος, το
M θα δεχτεί τη συμβολοσειρά μόνο όταν τα M1 , M2 φτάσουν και τα δύο σε μια
τελική κατάσταση. Έτσι, οι τελικές καταστάσεις του M θα είναι τα ζεύγη [p; q]
για τα οποία p 2 F1 και q 2 F2 .

Τομή και Διαφορά Κανονικών Γλωσσών

77

Με παρόμοιο τρόπο μπορούμε να κατασκευάσουμε ένα αυτόματο που αναγνωρίζει τη γλώσσα L1 ¡ L2 . Η μόνη διαφορά είναι στις τελικές καταστάσεις του M .
Το M πρέπει να αναγνωρίζει τις συμβολοσειρές που ανήκουν στην L1 αλλά όχι
στην L2 , άρα οι τελικές καταστάσεις του M θα είναι τα ζεύγη [p; q] για τα οποία
p 2 F1 αλλά q 6
2 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 £Q
r0 = [p0 ; q0 ]
F = f[p; q] j p 2 F1 και q 2 F2 g

± : 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 και q 6
2 F2 g.

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

78

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

4.3

,
Έστω L μια κανονική γλώσσα πάνω στο f0; 1g. Κατασκευάστε ένα αυτόματο που ν
αναγνωρίζει τη γλώσσα L0 = fx2 x1 x4 x3 ¢ ¢ ¢ x2n x2n¡1 j x1 x2 x3 x4 ¢ ¢ ¢ x2n¡1 x2n 2 Lg,
δηλαδή δοθέντος μιας συμβολοσειράς x = x1 x2 x3 x4 ¢ ¢ ¢ x2n¡1 x2n που ανήκει στην L
πρέπει να φτιάξετε ένα αυτόματο που να δέχεται την x2 x1 x4 x3 ¢ ¢ ¢ x2n x2n¡1 .
Υπόδειξη: Το νέο αυτόματο θα πρέπει να επεξεργάζεται τα σύμβολα εισόδου ανά δύο και
να εξομοιώνει τη λειτουργία του αυτόματου για την L.

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

,
Θα κλείσουμε αυτή την ενότητα μ ένα παράδειγμα εφαρμογής των παραπάνω.
4.3
Παράδειγμα 4.3

Έστω M1 και M2 τα αυτόματα του Σχήματος 4.3 τα οποία αναγνωρίζουν τις γλώσσες:
L1
L2

0

= fx 2 f0; 1g¤ j η x περιέχει ζυγό αριθμό άσσωνg
= fx 2 f0; 1g¤ j η x τελειώνει σε 00:g

M2

1

M1

A

0

1

0

B

1
X

0

Y

Z

0

1

1
0

Μ1∩Μ2

0

AX

1

AY

0
1

1

1
BX

1
0

AZ

0

Μ1−Μ2

0

AX

1

0

BZ

0

AZ
1

1

1

1
BY

AY

BX

1
0

0

1
BY

0

BZ

0

Σχήμα 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]. Αφού τελειώσουμε με
την αρχική κατάσταση, υπολογίζουμε τις μεταβάσεις από τις νέες καταστάσεις

Αριθμός Καταστάσεων Αυτόματου

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 Αριθμός Καταστάσεων Αυτόματου
Στην εισαγωγή του Μέρους II αναφέραμε ότι γλώσσες που γίνονται δεκτές από
τα αυτόματα είναι ακριβώς οι κανονικές γλώσσες. Την απόδειξη όμως θα την
αφήσουμε για το Κεφάλαιο 5, όταν θα έχουμε εξοικειωθεί αρκετά με τη λειτουργία
των αυτομάτων. Για την ώρα ας δούμε ποια είναι η σημασία αυτού του εναλλακτικού
ορισμού των κανονικών γλωσσών. Από τα όσα είπαμε μέχρι τώρα βγαίνει το
συμπέρασμα ότι μια γλώσσα είναι κανονική αν μπορούν οι συμβολοσειρές της
να ταξινομηθούν σε ένα πεπερασμένο, έστω N , αριθμό περιπτώσεων ώστε αντί να
θυμόμαστε τη συμβολοσειρά ή μέρος αυτής να θυμόμαστε μόνο σε ποια περίπτωση
βρισκόμαστε. Οι N περιπτώσεις αντιστοιχούν στις καταστάσεις του αυτόματου.
0
ZZ

1

MZ

1

0
0

ZM

1

1
MM

0

Σχήμα 4.4. Αυτόματο για ζυγό αριθμό άσσων και μηδενικών

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

80

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

4.4
Παράδειγμα 4.4

Θεωρήστε το αυτόματο του Σχήματος 4.4, το οποίο αναγνωρίζει όλες τις συμβολοσειρές
που περιέχουν ζυγό αριθμό από άσσους και μηδενικά. Το πρώτο γράμμα σε κάθε
κατάσταση φανερώνει αν το πλήθος των μηδενικών είναι Μονό ή Ζυγό και το δεύτερο
φανερώνει το ίδιο για τους άσσους. Αρχική και τελική είναι η κατάσταση ZZ, η οποία μας
λέει ότι η τρέχουσα συμβολοσειρά αποτελείται από ζυγό αριθμό άσσων και μηδενικών.
Κάθε 0 προκαλεί τη μετάβαση σε μια από τις καταστάσεις στα δεξιά, M Z και M M , όταν
ο αριθμός των μηδενικών είναι μονός, ή στα αριστερά, ZZ και ZM , όταν ο αριθμός αυτός
είναι ζυγός. Αντίστοιχα κάθε 1 προκαλεί τη μετάβαση σε μια από τις δύο καταστάσεις
κάτω, όταν ο αριθμός των άσσων είναι μονός, ή πάνω, όταν ο αριθμός αυτός είναι ζυγός.
Έτσι, το αυτόματο αντί να θυμάται τον ακριβή αριθμό των άσσων και μηδενικών
χρησιμοποιεί τις καταστάσεις του για να καταγράφει μόνο αν οι αριθμοί αυτοί είναι
μονοί ή ζυγοί.

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

Δώστε αυτόματα για τις παρακάτω γλώσσες:
1. L1 = fx 2 f0; 1g¤ j η x δεν περιέχει ζυγό αριθμό άσσων και μηδενικώνg.
2. L2 = fx 2 f0; 1g¤ j η x περιέχει ζυγό αριθμό μηδενικών και μονό αριθμό άσσων
ή μονό αριθμό μηδενικών και ζυγό αριθμό άσσωνg.

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

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

Αριθμός Καταστάσεων Αυτόματου

81

4.4
Έστω L μια γλώσσα πάνω σε ένα αλφάβητο §. Θα λέμε ότι δύο συμβολοσειρές x; y; 2 §¤
διακρίνονται ή είναι διακρινόμενες όσον αφορά την L, αν υπάρχει συμβολοσειρά z, που
,
μπορεί να εξαρτάται από τις x και y, ώστε μία και μόνο μία από τις xz και yz ν ανήκει
στην L.
Οι x και y είναι μη διακρινόμενες, αν δε συμβαίνει το παραπάνω: για οποιοδήποτε z, οι
xz και yz ή και οι δύο ανήκουν στην L ή καμιά τους.

Γυρνώντας ξανά στο προηγούμενο παράδειγμα βλέπουμε γιατί οι συμβολοσειρές
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 ; y); z)
± ¤ (± ¤ (q0 ; x); z) 6
Ας ονομάσουμε p και q τις καταστάσεις ± ¤ (q0 ; x) και ± ¤ (q0 ; y), αντίστοιχα.
Εφόσον ± ¤ (p; z) 6
= ± ¤ (q; z), συμπεραίνουμε ότι p 6
= q και η απόδειξη είναι
πλήρης.

Ορισμός 4.4

82

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

4.5
Παράδειγμα 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.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 ώστε μόνο μια από
τις 1k z, 1j z να είναι παλινδρομική. Αυτό είναι εύκολο. Επιλέξτε το z να είναι
το 01k . Τότε 1k z = 1k 01k , η οποία είναι παλινδρομική, ενώ η 1j z = 1j 01k
δεν είναι.

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

Δείξτε, χρησιμοποιώντας το Θεώρημα 4.2, ότι ο αριθμός καταστάσεων του αυτόματου
του Σχήματος 4.2 είναι ο ελάχιστος δυνατός.

Ασκήσεις

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. Υπόδειξη:
Χαρακτηρίστε τις καταστάσεις του αυτόματου και χρησιμοποιήστε επαγωγή.

84

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

1

2

0
3

1

1

0
4

0,1

Σχήμα 4.5. Διάγραμμα καταστάσεων ενός αυτόματου

M1

0
1

M2

2
1

1

0

1

2

1

0

0,1

3

3

0,1

0,1
0,1
0,1

0
M3

1

2

0

1

3

1

1

C

0

4

1
0

0
M4

0

0
A

1

1

0
B

1
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, ώστε αν ερμηνευθούν σαν δυαδικοί αριθμοί, είναι πολλαπλάσια

Ασκήσεις

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 που διαβάζει στην είσοδο (² είναι η κενή
συμβολοσειρά).
0/ε
M

1/ε
1/a

1

2
0/ε

Σχήμα 4.7. Ένα Mealy αυτόματο
α) Δώστε ένα ορισμό για το αυτόματο Mealy, ανάλογο με τον Ορισμό 4.1.
β) Από πόσες καταστάσεις αποτελείται το αυτόματο Mealy που αντιστρέφει
τα 0 και 1 στην έξοδο;
γ) Σχεδιάστε ένα αυτόματο Mealy που παράγει a, αν το τρέχων σύμβολο
εισόδου είναι ίδιο με το προηγούμενο, και b διαφορετικά.
δ) Σχεδιάστε ένα αυτόματο Mealy που παράγει a για κάθε 00 ή 11 που
διαβάζει στην είσοδο.
4.11 Έστω § και ¢ δύο αλφάβητα και h μια συνάρτηση από το § στο ¢¤ .
Μπορούμε να επεκτείνουμε την h από το §¤ στο ¢¤ με τον ακόλουθο

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 §¤ ,

xIL y αν και μόνο αν οι x και y δεν είναι διακρινόμενες όσον αφορά την L.
Βρείτε τι είδους σχέση είναι η IL .

4.13 Έστω M = (Q; §; q0 ; ±; F ) ένα αυτόματο που αναγνωρίζει μια γλώσσα L.
Ορίζουμε
Lq = fx 2 §¤ j ± ¤ (q0 ; x) = qg
το σύνολο των συμβολοσειρών που οδηγούν το αυτόματο από την αρχική
στην κατάσταση q. Δείξτε ότι για κάθε x; y 2 Lq έχουμε xIL y.
4.14 Κάτω από ποιές προϋποθέσεις δύο σύνολα Lp , Lq , όπου p 6
= 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 , χρησιμοποιήστε μια απευθείας

προσέγγιση.

Σύνοψη

87

1
M1

1

1
0

A

0

M2

B

X

0

Y

0

Z

1

0

1
M3

0,1

1
P

Q

0

R

0
1

Σχήμα 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.

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.

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

89

1

1

0

q0

q1

1

0

q2

0,1

0

q3

Σχήμα 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; ²)

=

± ¤ (± ¤ (q; x); ²)

=

± ¤ (± ¤ (q; x); y)

Ορισμός ± ¤ , Κανόνας 1

Επαγωγική Υπόθεση: Έστω ότι k ¸ 0 και για οποιαδήποτε συμβολοσειρά y
μήκους k ισχύει ± ¤ (q; xy) = ± ¤ (± ¤ (q; x); y).

Επαγωγικό Βήμα: Θα δείξουμε το ίδιο και για μια συμβολοσειρά y, μήκους k +1.
Εφόσον η y μπορεί να εκφραστεί ως za, όπου z μια συμβολοσειρά μήκους k και
a ένα σύμβολο του αλφαβήτου, έχουμε:

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 , M Z, M M . Άρα τελικές θα είναι οι καταστάσεις ZM , M Z, M M .
2. L2 = fx 2 f0; 1g¤ j η x περιέχει ζυγό αριθμό μηδενικών και μονό αριθμό
άσσων ή μονό αριθμό μηδενικών και ζυγό αριθμό άσσωνg. Πάλι ένα αυτόματο για την L2 θα αποτελείται από τις τέσσερις καταστάσεις ZZ, ZM , M Z,
M M . Τελικές όμως θα είναι οι καταστάσεις ZM , M Z, οι οποίες αντιστοιχούν στις δύο περιπτώσεις της άσσων και μηδενικών της L2 .
Συγχαρητήρια, αν βρήκατε τη σωστή απάντηση. Αν όχι, μην απογοητεύεστε.
Αυτή ήταν μια \πονηρή" ερώτηση.
Άσκηση 4.6 Έστω L η γλώσσα fx 2 f0; 1g¤ j η x τελειώνει σε 00g και M το
αυτόματο του Σχήματος 4.2, το οποίο την αναγνωρίζει. Θέλουμε να δείξουμε ότι ο
αριθμός καταστάσεων του M είναι ο ελάχιστος δυνατός. Σύμφωνα με το Θεώρημα
4.2, αρκεί να βρούμε ένα σύνολο από τρεις συμβολοσειρές οι οποίες, ανά δύο, είναι
διακρινόμενες μεταξύ τους όσον αφορά την L.
Μια καλή επιλογή είναι τρεις συμβολοσειρές που αντιστοιχούν στις τρεις καταστάσεις του αυτόματου. Θεωρήστε για παράδειγμα τις ², 0 και 00. Για να δείξουμε
ότι είναι διακρινόμενες μεταξύ τους αρκεί να βρούμε μια συμβολοσειρά z, όχι
,
απαραίτητα την ίδια κάθε φορά, ώστε μόνο η μια από οποιεσδήποτε δύο ν ανήκει
στη γλώσσα.

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

Η επιλογή της z φαίνεται παρακάτω:
z = 0 ! ²z 6
2 L αλλά 0z 2 L

z = ² ! ²z 6
2 L αλλά 00z 2 L

z = ² ! 0z 6
2 L αλλά 00z 2 L
Στην πρώτη περίπτωση συγκρίνονται οι συμβολοσειρές ² και 0, στη δεύτερη οι
² και 00 και στη τρίτη οι 0 και 00. Εφόσον κάθε φορά μόνο μια ανήκει στη
γλώσσα, σύμφωνα με το Θεώρημα 4.2 ένα αυτόματο που αναγνωρίζει την L θα
χρειάζεται τουλάχιστον τρεις καταστάσεις. Αλλά εμείς ήδη έχουμε κατασκευάσει
ένα αυτόματο με τρεις καταστάσεις. Άρα ο αριθμός αυτός είναι ο καλύτερος
δυνατός.
Αν λύσατε αυτή την άσκηση σας αξίζουν συγχαρητήρια. Έχετε πραγματικά
κάνει δική σας τη θεωρία. Αν δεν τα καταφέρατε μην απογοητεύεστε. Αυτή ήταν
μια όντως δύσκολη άσκηση. Το δύσκολο σημείο είναι η επιλογή των συμβολοσειρών.
Η ιδέα να χρησιμοποιήσουμε κάποιες από τις συμβολοσειρές που οδηγούν στις
καταστάσεις του αυτόματου έρχεται φυσικά, αφού σκοπός μας είναι να διακρίνουμε
αυτές τις καταστάσεις.
Άσκηση 4.3 Έστω M = (Q; §; q0 ; ±; F ) ένα αυτόματο που δέχεται μια γλώσσα
L. Θα κατασκευάσουμε ένα αυτόματο M 0 που θα αναγνωρίζει τη γλώσσα
L0 = fx2 x1 x4 x3 ¢ ¢ ¢ x2n x2n¡1 j x1 x2 x3 x4 ¢ ¢ ¢ x2n¡1 x2n 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)

91

92

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

Θα δείξουμε τώρα, χρησιμοποιώντας επαγωγή στο n, ότι για κάθε κατάσταση q,
± 0¤ (q; x2 x1 x4 x3 ¢ ¢ ¢ x2n x2n¡1 ) = ± ¤ (q; x1 x2 x3 x4 ¢ ¢ ¢ x2n¡1 x2n ):
Αν ισχύει αυτό τότε τα δύο αυτόματα ξεκινώντας από την αρχική κατάσταση q0
φτάνουν στην ίδια κατάσταση. Άρα η x2 x1 x4 x3 ¢ ¢ ¢ x2n x2n¡1 ανήκει στην L0 , αν
και μόνο αν η x1 x2 x3 x4 ¢ ¢ ¢ x2n¡1 x2n ανήκει στην L.
Βάση: Για n = 0 έχουμε ± 0¤ (q; ²) = q = ± ¤ (q; ²).
Επαγωγική Υπόθεση: Έστω ότι για οποιοδήποτε k ¸ 0 ισχύει
± 0¤ (q; x2 x1 x4 x3 ¢ ¢ ¢ x2k x2k¡1 ) = ± ¤ (q; x1 x2 x3 x4 ¢ ¢ ¢ x2k¡1 x2k )
= p

για κάποια κατάσταση p

Επαγωγικό Βήμα: Θα δείξουμε το ίδιο και για n = k + 1. Θα έχουμε
± 0¤ (q; x2 x1 x4 x3 ¢ ¢ ¢ x2k x2k¡1 x2k+2 x2k+1 )

=
=
=

± 0¤ (p; x2k+2 x2k+1 )
± 0 ([p; x2k+2 ]; x2k+1 )
± ¤ (p; x2k+1 x2k+2 )

Ιδιότητα ± 0¤
± 0 , Κανόνας 1
± 0 , Κανόνας 2

Η τελική όμως έκφραση δεν είναι παρά η
± ¤ (q; x1 x2 x3 x4 ¢ ¢ ¢ x2k¡1 x2k x2k+1 x2k+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 δεν είναι κανονικές.

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

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

94

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

Κ Ε Φ Α Λ Α Ι Ο

ΜΗ ΝΤΕΤΕΡΜΙΝΙΣΜΟΣ

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

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

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

,
,
² ν αναφέρετε τι είναι οι ²-κινήσεις σ ένα αυτόματο,
² να εξαλείψετε τις ²-κινήσεις από ένα μη ντετερμινιστικό αυτόματο,

,
² να μετατρέψετε ένα μη ντετερμινιστικό αυτόματο σ ένα ντετερμινιστικό που
δέχεται την ίδια γλώσσα,

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

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

95

96

Μη Ντετερμινισμός

Έννοιες-κλειδιά
² Μη ντετερμινιστικό πεπερασμένο αυτόματο (ΜΠΑ)
² Διαφορά ΜΠΑ από Πεπερασμένα Αυτόματα (ΠΑ)
² Συνάρτηση μετάβασης ± και ± ¤
² Γλώσσα που αναγνωρίζεται ή γίνεται δεκτή από ένα ΜΠΑ
² Μη ντετερμινιστικά αυτόματα με ²-κινήσεις
² Σύνολο καταστάσεων αυτόματου προσπελάσιμων μόνο με ²-κινήσεις
² Ισοδυναμία ΜΠΑ με ²-κινήσεις με απλά ΜΠΑ
² Ισοδυναμία ΜΠΑ με ντετερμινιστικά αυτόματα
² Θεώρημα Kleene

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

5.1 Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα
Το κύριο χαρακτηριστικό των πεπερασμένων αυτόματων, όπως τα περιγράψαμε
έως τώρα, είναι η μοναδικότητα της επόμενης κατάστασης. Αν είμαστε σε μια
κατάσταση q και το σύμβολο εισόδου είναι το a, τότε η επόμενη κατάσταση είναι
Ντετερμινισμός

μοναδική και καθορίζεται από τη συνάρτηση μετάβασης ±. Υπό αυτή την έννοια
εκείνο που χαρακτηρίζει τα πεπερασμένα αυτόματα είναι ο ντετερμινισμός1 της
επόμενης κίνησης. Από την κατάσταση q διαβάζοντας το a υπάρχει μόνο μια
επιλογή: να μεταβούμε στην κατάσταση ±(q; a).
1

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

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα

97

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

Μη
Ντετερμινισμός

καταστάσεις. Έτσι, καθώς το αυτόματο διαβάζει τα σύμβολα εισόδου θα μπορεί
να πηγαίνει σε οποιαδήποτε από αυτές τις καταστάσεις και η επιλογή αυτή θα είναι
αυθαίρετη ή αλλιώς μη ντετερμινιστική.
,
Ακόμη όμως και μ αυτό το στοιχείο του μη ντετερμινισμού θα δούμε ότι οι
γλώσσες που γίνονται δεκτές από τα αυτόματα αυτού του είδους είναι ακριβώς
,
οι κανονικές γλώσσες. Μ άλλα λόγια κάθε μη ντετερμινιστικό αυτόματο είναι
,
ισοδύναμο μ ένα ντετερμινιστικό. Ποια είναι λοιπόν η χρησιμότητα αυτών των
αυτομάτων; Θα δούμε ότι αυτά τα αυτόματα είναι πιο εύκολο να σχεδιαστούν και
μερικές φορές απαιτούν πολύ λιγότερες καταστάσεις.
5.1
Παράδειγμα 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.

0,1

q0

1

q1

0,1

q2

0,1

q3

0,1

q4

0,1

q5

Σχήμα 5.1. Μη ντετερμινιστικό αυτόματο για τη γλώσσα L5
Το παραπάνω αυτόματο είναι μη ντετερμινιστικό επειδή από την αρχική κατάσταση,
με είσοδο 1, υπάρχουν δύο βέλη που μπορούμε να ακολουθήσουμε. Έτσι, δεν
είναι ξεκάθαρο τι πρέπει να γίνει, όταν διαβαστεί το σύμβολο 1. Το αυτόματο
θα παραμείνει στην q0 ή θα μεταβεί στην q1 ; Από την άλλη μεριά, το αυτόματο
αυτό αντανακλά καλύτερα τη δομή της κανονικής έκφρασης και είναι πιο εύκολο να
καταλάβουμε τη γλώσσα που αναγνωρίζει αυτό παρά ένα αυτόματο 32 καταστάσεων:

98

Μη Ντετερμινισμός

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

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

²-κινήσεις

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

Παράδειγμα 5.2

Θεωρήστε το αυτόματο του Σχήματος 5.2(α) και προσπαθήστε να περιγράψετε τη γλώσσα
που αναγνωρίζει. Ακόμα και αν σας πουν ότι αναγνωρίζει τη γλώσσα (0¤ 1 + 1¤ 0) θα σας
,
πάρει αρκετό χρόνο να πειστείτε γι αυτό.
,
Κοιτάξτε τώρα το αυτόματο του Σχήματος 5.2(β), στο οποίο μερικά απ τα βέλη φέρουν
,
την ένδειξη ². Μια συμβολοσειρά γίνεται δεκτή απ τη μηχανή αυτή, αν υπάρχει κάποιο
,
μονοπάτι που οδηγεί απ την αρχική στην τελική κατάσταση.
Υπάρχουν δύο μονοπάτια από την q0 στην q3 , τα οποία αντιστοιχούν στις κανονικές
εκφράσεις 0¤ 1 και 1¤ 0, αντίστοιχα. Άρα η γλώσσα που αναγνωρίζεται από το αυτόματο
είναι η (0¤ 1 + 1¤ 0).

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

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

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα

99
0

0
0,1

0
1

0
1

ε
0,1

1

q0

0
1

q1

q3
ε

0
1
1

q2

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.2 μπορεί να αποδοθεί με τον
ακόλουθο πίνακα μεταβάσεων:

Κατάσταση

q0
q1
q2
q3

Είσοδος
0
1
²
Â
Â
fq1 ; q2 g
fq1 g fq3 g
Â
fq3 g fq2 g
Â
Â
Â
Â

Πίνακας μετάβασης για το μη
ντετερμινιστικό αυτόματο του
Σχήματος 5.2(β).

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

Ορισμός 5.1

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
Ορισμός 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.3

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα

Ας υπολογίσουμε τη ± ¤ (q0 ; 10) για το αυτόματο του Σχήματος 5.1, δίνοντας τις τιμές
για κάθε τμήμα της x = 10. Ακολουθώντας τα βέλη του διαγράμματος θα πρέπει να
καταλήξουμε στις καταστάσεις q0 ; q2 .

101
Παράδειγμα 5.3

± ¤ (q0 ; ²) = fq0 g

± ¤ (q0 ; 1) = ±(q0 ; 1)
= fq0 ; q1 g

± ¤ (q0 ; 10) = ±(± ¤ (q; 1); 0)
= ±(fq0 ; q1 g; 0)
= ±(q0 ; 0) [ ±(q1 ; 0)
= fq0 g [ fq2 g
= fq0 ; q2 g

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
Ένα μη ντετερμινιστικό αυτόματο με ²-κινήσεις (θα το συμβολίζουμε ΜΠΑ-²) είναι μια
^ F ), όπου Q; §; q0 και F είναι όπως πριν και
5-άδα (Q; §; q0 ; ±;
±^ : Q £ (§ [ f²g) ! 2Q
είναι η νέα συνάρτηση μετάβασης.

Ορισμός 5.4

102

Μη Ντετερμινισμός

Όπως και προηγουμένως, για να ορίσουμε τις γλώσσες που γίνονται δεκτές από
τα ΜΠΑ-² χρειάζεται να επεκτείνουμε τη ±^ ώστε να περιγράφει το σύνολο των
καταστάσεων που μπορεί να βρεθεί το αυτόματο ξεκινώντας από μια κατάσταση q
και διαβάζοντας μια συμβολοσειρά x.
Η διαφορά με τα απλά ΜΠΑ είναι ότι τώρα μπορούν να υπάρχουν \δωρεάν"
κινήσεις μεταξύ συνηθισμένων μεταβάσεων. Αν για παράδειγμα το αυτόματο,
διαβάζοντας μια συμβολοσειρά x, βρίσκεται σε μια μη τελική κατάσταση από την
οποία ξεκινάει μια ²-μετάβαση προς μια τελική κατάσταση, τότε η συμβολοσειρά
θα πρέπει να γίνει δεκτή από το αυτόματο. Αυτό σημαίνει ότι θα πρέπει να
τροποποιηθεί όχι μόνο το αναδρομικό τμήμα του ορισμού της ±^¤ αλλά και η βάση
±^¤ (q0 ; ²), η οποία θα πρέπει να περιλαμβάνει όχι μόνο την q0 αλλά και όλες τις
καταστάσεις που είναι προσπελάσιμες από την q0 χρησιμοποιώντας μόνο ²-κινήσεις.
\²(q)"

Δοθείσης μιας κατάστασης q 2 Q, ορίζουμε ως ²(q) το σύνολο των καταστάσεων που είναι προσπελάσιμες από την q μόνο με ²-κινήσεις. Αν φανταστούμε το
αυτόματο σαν ένα κατευθυνόμενο γράφημα και από αυτό αφαιρέσουμε όλες τις
πλευρές εκτός από αυτές με την ένδειξη ², τότε στο ²(q) ανήκουν όλες οι καταστάσεις που μπορούν να προσπελαστούν από την q ακολουθώντας κάποιο μονοπάτι
του γραφήματος.
5.5

Ορισμός 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.

Αλγόριθμος
εύρεσης ²(q)

Για να υπολογίσουμε το σύνολο ²(q) μιας κατάστασης q ξεκινάμε βάζοντας
σε ένα σύνολο T αρχικά την κατάσταση q. Σε κάθε βήμα, προσθέτουμε στο T
την ένωση όλων των συνόλων ±(p; ²), για κάθε p 2 T . Δηλαδή προσθέτουμε
καταστάσεις οι οποίες μπορούν να προσπελαστούν από υπάρχουσες καταστάσεις

του T μόνο με ²-κινήσεις. Η διαδικασία σταματά όταν κάποιο βήμα δεν αλλάζει
το T . Η τελική τιμή του T είναι το ζητούμενο ²(q).
5.4

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα

103

Έστω ότι θέλουμε να υπολογίσουμε το ²(q3 ) του αυτόματου του Σχήματος 5.3(α).
Θέτουμε αρχικά T = fq3 g και παίρνουμε T = fq3 ; q5 g μετά το δεύτερο βήμα,
T = fq3 ; q5 ; q0 g μετά το τρίτο και T = fq3 ; q5 ; q0 ; q1 ; q2 g μετά το τέταρτο.
Στο επόμενο βήμα η τιμή του T παραμένει η ίδια, οπότε ²(q3 ) = fq3 ; q5 ; q0 ; q1 ; q2 g.
Στο ίδιο συμπέρασμα θα φτάναμε με πιο απλό τρόπο, αν ρωτάγαμε ποιες καταστάσεις
είναι προσπελάσιμες από την q3 στο γράφημα του Σχήματος 5.3(β) που προκύπτει αν
από το αυτόματο διατηρήσουμε μόνο τις ²-πλευρές. Όπως φαίνεται και στο σχήμα, οι
καταστάσεις που είναι προσπελάσιμες από την q3 είναι οι q3 ; q5 ; q0 ; q1 ; q2 .

Παράδειγμα 5.4

0

ε

q1

1

q3

ε

ε

q0
ε

q2

1

0

ε
q5

q4

ε

(α)

q1

q3

ε

ε

q0
ε

q2

q5
q4

ε

(β)

Σχήμα 5.3. Μη ντετερμινιστικό αυτόματο με ²-κινήσεις
Μπορούμε τώρα να προχωρήσουμε στον ορισμό της ±^¤ και της γλώσσας που
γίνεται δεκτή από ένα ΜΠΑ-².
5.6
^ F ) ένα ΜΠΑ με ²-κινήσεις. Η συνάρτηση ±^¤ : Q £ §¤ ! 2Q
Έστω M = (Q; §; q0 ; ±;
ορίζεται αναδρομικά ως εξής:
1. Για κάθε q 2 Q, ±^¤ (q; ²) = ²(q).
2. Για κάθε q 2 Q, x 2 §¤ και a 2 §,
^ ±^¤ (q; x); a)) = ²([ ^¤
^
±^¤ (q; xa) = ²(±(
p2± (q;x) ±(p; a))
= Â. Η L(M ),
Μια συμβολοσειρά x 2 §¤ γίνεται δεκτή από το M , αν ±^¤ (q0 ; x) \ F 6
η γλώσσα που αναγνωρίζεται από το M , είναι το σύνολο των συμβολοσειρών x που
γίνονται δεκτές από το M .

5.5

Ορισμός 5.6

104
Παράδειγμα 5.5

Μη Ντετερμινισμός

Θεωρήστε ξανά το αυτόματο του Σχήματος 5.3(α). Η συμβολοσειρά 101 πρέπει να γίνει
δεκτή όπως φαίνεται και από την παρακάτω ακολουθία κινήσεων:
²

1

²

²

²

0

1

²

q0 ! q1 ! q3 ! q5 ! q0 ! q1 ! q1 ! q3 ! q5
Ας δούμε τώρα αν η ±^¤ (q0 ; 101) περιέχει την q5 . Αν συμβαίνει αυτό, η συμβολοσειρά
θα γίνει δεκτή από το αυτόματο. Θα ξεκινήσουμε υπολογίζοντας τις ±^¤ (q0 ; ²), ±^¤ (q0 ; 1),
±^¤ (q0 ; 10) και τελικά τη ±^¤ (q0 ; 101).
±^¤ (q0 ; ²) = ²(q0 )

= fq0 ; q1 ; q2 g

^ ±^¤ (q0 ; ²); 1))
± (q0 ; 1) = ²(±(
^ 0 ; q1 ; q2 g; 1))
= ²(±(fq

^ 1 ; 1) [ ±(q
^ 2 ; 1))
^ 0 ; 1) [ ±(q
= ²(±(q
= ²(Â [ fq3 g [ fq2 g)
= ²(fq3 ; q2 g)

= fq0 ; q1 ; q2 ; q3 ; q5 g

^ ±^¤ (q0 ; 1); 0))
± (q0 ; 10) = ²(±(

^ 0 ; q1 ; q2 ; q3 ; q5 g; 0))
= ²(±(fq

^ 1 ; 0) [ ±(q
^ 2 ; 0) [ ±(q
^ 3 ; 0) [ ±(q
^ 5 ; 0))
^ 0 ; 0) [ ±(q
= ²(±(q

= ²(Â [ fq1 g [ fq4 g [ Â [ Â)
= ²(fq1 ; q4 g)
= fq0 ; q1 ; q2 ; q4 ; q5 g

^ ±^¤ (q0 ; 10); 1))
±^¤ (q0 ; 101) = ²(±(
^ 0 ; q1 ; q2 ; q4 ; q5 g; 1))
= ²(±(fq

^ 1 ; 1) [ ±(q
^ 2 ; 1) [ ±(q
^ 4 ; 1) [ ±(q
^ 5 ; 1))
^ 0 ; 1) [ ±(q
= ²(±(q

= ²(Â [ fq3 g [ fq2 g [ Â [ Â)
= ²(fq3 ; q2 g)
= fq0 ; q1 ; q2 ; q3 ; q5 g
Εφόσον η q5 ανήκει στη ±^¤ (q0 ; 101), συμπεραίνουμε ότι η συμβολοσειρά ανήκει στη
γλώσσα.

Ισοδυναμία με Απλά ΜΠΑ
Έχοντας ορίσει τους δύο τύπους των μη ντετερμινιστικών αυτομάτων μπορούμε
τώρα να αποδείξουμε την ισοδυναμία τους. Ένα ΜΠΑ μπορεί να θεωρηθεί σαν

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα

105

ένας ειδικός τύπος ενός ΜΠΑ-² όπου δεν υπάρχουν ²-κινήσεις, δηλαδή για κάθε
^ ²) = Â. Η μόνη διαφορά βρίσκεται στον ορισμό της αναγνώρισης
q 2 Q, ±(q;
μιας συμβολοσειράς γιατί οι συναρτήσεις ± ¤ , ±^¤ ορίζονται διαφορετικά. Αν όμως
θεωρήσουμε ένα ΜΠΑ σαν ένα ΜΠΑ-², οι δύο ορισμοί ταυτίζονται, γιατί ²(S) = S,
για κάθε S µ Q. Άρα οι γλώσσες που αναγνωρίζονται από τα ΜΠΑ αναγνωρίζονται
και από τα ΜΠΑ-². Στη συνέχεια θα δείξουμε και το αντίστροφο: δοθέντος ενός
^ , θα κατασκευάσουμε ένα ισοδύναμο ΜΠΑ M , που αναγνωρίζει την
ΜΠΑ-² M

ίδια γλώσσα.
^ από την
Η ιδέα είναι η εξής: Έστω ότι βρισκόμαστε σε μια κατάσταση q του M
οποία ξεκινάει μια ²-μετάβαση προς μια κατάσταση p. Ας υποθέσουμε τώρα ότι
το αυτόματο από την q διαβάζει ένα σύμβολο a. Εφόσον η κίνηση προς την p δεν
καταναλώνει καθόλου είσοδο, αυτό είναι ισοδύναμο σαν να βρισκόταν το αυτόματο
στην p και από αυτή να διάβαζε το a. Άρα μπορούμε να αντικαταστήσουμε τις
²-μεταβάσεις από την κατάσταση q με όλες τις μεταβάσεις προς τις καταστάσεις
που θα πήγαινε το αυτόματο, αν από την q διάβαζε κάποιο σύμβολο. Φυσικά,
θα πρέπει να περιλάβουμε και όλες τις ²-μεταβάσεις από αυτές τις καταστάσεις
δίνοντας έτσι έναν αναδρομικό χαρακτήρα στην όλη διαδικασία.
Θεώρημα 5.1. Έστω L µ §¤ μια γλώσσα η οποία αναγνωρίζεται από ένα
^ F^ ). Τότε υπάρχει ένα ΜΠΑ M που αναγνωρίζει την
^ = (Q; §; q0 ; ±;
ΜΠΑ-² M
L.
Απόδειξη: Το πρόβλημα με την κατασκευή του M βρίσκεται στον ορισμό
της ±. Η συνάρτηση μετάβασης θα πρέπει να οριστεί με τέτοιο τρόπο ώστε,
^ μπορεί να μεταβεί από μια κατάσταση p σε μια κατάσταση q
αν το M
χρησιμοποιώντας κάποια σύμβολα του § και ²-κινήσεις, τότε το M θα πρέπει
να μεταβεί στην ίδια ακριβώς κατάσταση χρησιμοποιώντας μόνο τα σύμβολα
εισόδου. Επίσης, αν η q0 δεν είναι τελική κατάσταση αλλά μπορούμε να
φτάσουμε σε μια τελική χρησιμοποιώντας μόνο ²-κινήσεις, η q0 θα πρέπει να
γίνει τελική στο M εφόσον η κενή συμβολοσειρά δε θα μπορεί να γίνει δεκτή
αλλιώς.
Για κάθε κατάσταση q και σύμβολο a ορίζουμε
±(q; a) = ±^¤ (q; a):
Ας δούμε τι σημαίνει αυτό χρησιμοποιώντας τον Ορισμό 5.6.
±(q; a) = ±^¤ (q; a)
= ±^¤ (q; ²a)
^ a))
= ²([p2±^¤ (q;²) ±(p;
^ a))
= ²([p2²(q) ±(p;

Διαίσθηση για
ισοδυναμία

106

Μη Ντετερμινισμός
Αυτό επιτυγχάνει ότι ακριβώς θέλαμε: ±(q; a) είναι το σύνολο των καταστάσεων στις οποίες μεταβαίνει το ΜΠΑ M χρησιμοποιώντας μόνο το σύμβολο
a, ενώ το αντίστοιχο ΜΠΕ-² χρησιμοποιεί ²-κινήσεις τόσο πριν όσο και μετά
την ανάγνωση του a.
Τέλος, χρειάζεται να ορίσουμε το σύνολο των τελικών καταστάσεων του M
ώστε να λαμβάνεται υπόψη η περίπτωση που η q0 δεν είναι τελική κατάσταση
^ , αλλά υπάρχει ένα ²-μονοπάτι που οδηγεί σε μια τελική κατάσταση.
στο M
,
Σ αυτή την περίπτωση, όπως και να ορίσουμε τη συνάρτηση μετάβασης
του M , αν η q0 δεν περιληφθεί στις τελικές καταστάσεις του M η κενή
συμβολοσειρά δεν πρόκειται ποτέ να γίνει δεκτή, αφού η ± ¤ (q0 ; ²) δεν περιέχει
άλλες καταστάσεις εκτός από την q0 . Ορίζουμε λοιπόν
½
F^ [ fq0 g, αν το ²(q0 ) περιέχει μια τελική κατάσταση
F =
F^ ,
αλλιώς
Θα δείξουμε τώρα χρησιμοποιώντας επαγωγή στο μήκος της συμβολοσειράς
εισόδου x ότι τα δύο αυτόματα φτάνουν στις ίδιες ακριβώς καταστάσεις,
δηλαδή ± ¤ (q0 ; x) = ±^¤ (q0 ; x). Όμως, ο παραπάνω ισχυρισμός μπορεί να μην
είναι αληθής για x = ², αφού ± ¤ (q0 ; ²) = fq0 g, ενώ ±^¤ (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)
±(±^¤ (q0 ; y); a)
±^¤ (±^¤ (q0 ; y); a)
±^¤ (q0 ; ya)

(Από τον Ορισμό 5.2)
(Από την επαγωγική υπόθεση)
(Από τον ορισμό της ±)

Για να ολοκληρώσουμε την απόδειξη θα δείξουμε ότι το ± ¤ (q0 ; x) περιέχει μια
τελική κατάσταση του F , αν και μόνο αν το ±^¤ (q0 ; x) περιέχει μια κατάσταση
του F^ , δηλαδή τα δύο αυτόματα αναγνωρίζουν μια συμβολοσειρά x κάτω από
τις ίδιες ακριβώς συνθήκες.
Αν x = ², αυτό προκύπτει από τον ορισμό του F . Δηλαδή ± ¤ (q0 ; ²) = fq0 g
και το q0 ανήκει στο F , αν το ±^¤ (q0 ; ²), που είναι ίσο με ²(q0 ), περιέχει μια
τελική κατάσταση.
Αν x 6
= ², ± ¤ (q0 ; x) = ±^¤ (q0 ; x). Αυτό το σύνολο είτε περιέχει μια κατάσταση
του F^ (άρα και τα δύο αυτόματα αναγνωρίζουν τη x) ή δεν περιέχει ούτε
την q0 ούτε καμιά άλλη κατάσταση του F^ (άρα και τα δύο απορρίπτουν τη

Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα

107

x). Είναι αδύνατο να περιέχει την q0 και κανένα άλλο στοιχείο του F^ , αν
= Â. Ο λόγος είναι ότι αν q0 2 ±^¤ (q0 ; x), τότε αφού το ±^¤ (q0 ; x)
²(q0 ) \ F 6
περιέχει το ²(q0 ) (γιατί;) θα περιέχει και ένα στοιχείο του F^ . Άρα τα δύο
αυτόματα δέχονται τις ίδιες ακριβώς συμβολοσειρές.

ε

ε

2

1

3

0

4

1

2

3

0

4

1

1

1
ε

1

0

5

1

1
1

6

5

ε

1

6

1
1

(α)

1

(β)
Σχήμα 5.4. Μετατροπή από ΜΠΑ-² σε ΜΠΑ.
5.6
Αν εφαρμόσουμε τα παραπάνω στο αυτόματο του Σχήματος 5.4(α) παίρνουμε το ΜΠΑ
του Σχήματος 5.4(β) χωρίς ²-κινήσεις.
Ας δούμε πώς προκύπτουν οι νέες μεταβάσεις από την κατάσταση 6. Από τον ορισμό
έχουμε

Παράδειγμα 5.6

^
±(6; 1) = ²(±(²(6);
1)
^
= ²(±(f6;
5g; 1))
^ 1) [ ±(5;
^ 1))
= ²(±(6;
= ²(Â [ f6g)
= f5; 6g

^ 0) [ ±(6;
^ 0))
±(6; 0) = ²(±(6;
= ²(Â [ Â)
= Â
Οι μεταβάσεις για τις υπόλοιπες καταστάσεις υπολογίζονται ανάλογα. Αξίζει να
σημειώσουμε ότι η κατάσταση 1 είναι τελική στο νέο αυτόματο, επειδή το σύνολο ²(1)
περιέχει μια τελική κατάσταση (την 2).

5.2
Εφαρμόστε τις παραπάνω ιδέες για να εξαλείψετε τις ²-κινήσεις από το ΜΠΑ-² του
Σχήματος 5.2(β).

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

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,

Ισοδυναμία με Ντετερμινιστικά Πεπερασμένα Αυτόματα

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).
= Âg
F 0 = fp 2 P j p \ F 6
Μπορούμε τώρα να δείξουμε ότι το 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 ; : : : ; qk g:

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

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

110

Μη Ντετερμινισμός
1

0
1

2

3

0

0
[3,5,6]

4

1
1

1

1

1
1

1

5

6

1
1

1

(α)

0

[2,4]
0

[1]

[5,6]

[3]

1
1

1
0

0,1

(β)

Σχήμα 5.5. Μετατροπή από μη ντετερμινιστικό σε ντετερμινιστικό αυτόματο.

5.7
Παράδειγμα 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.4

Θεώρημα Kleene

111

Μετατρέψτε το μη ντετερμινιστικό αυτόματο που βρήκατε στην Άσκηση
Αυτοαξιολόγησης 5.2 σε ντετερμινιστικό. Είναι το ίδιο με το αυτόματο του Σχήματος
5.2(α);

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¤ ) είναι κανονικές εκφράσεις που
αντιστοιχούν στις γλώσσες Lr Ls , Lr [ Ls και L¤r .
5. Τίποτα άλλο δεν είναι κανονική έκφραση, εκτός αν προκύπτει από τους
παραπάνω κανόνες.
Θα δείξουμε, χρησιμοποιώντας επαγωγή στον αριθμό των εφαρμογών του
κανόνα 4, ότι υπάρχει ένα ΜΠΑ-² που δέχεται την ίδια γλώσσα.
Βάση: Η έκφραση R θα είναι Â, ² ή a για κάποιο a 2 §. Τα αυτόματα στο
Σχήμα 5.6 σίγουρα αναγνωρίζουν τις αντίστοιχες γλώσσες.
Επαγωγική Υπόθεση: Έστω ότι το Θεώρημα είναι αληθές για όλες τις
εκφράσεις που προκύπτουν με k ή λιγότερες εφαρμογές του κανόνα 4.
Επαγωγικό Βήμα: Έστω R μια έκφραση που προκύπτει με k + 1 εφαρμογές
του παραπάνω κανόνα. Η τελευταία εφαρμογή θα αφορά δύο εκφράσεις r
και s για τις οποίες ισχύει η επαγωγική υπόθεση, άρα θα υπάρχουν αυτόματα

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

112

Μη Ντετερμινισμός

q0

q0

(α) R = ∅

(β) R = ε

a

q0

qf

(γ) R = a

Σχήμα 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 [ fq0 g
F = Fr [ Fs
± : Q £ § ! Q, που ορίζεται ως εξής
±(q0 ; ²) = fqr ; qs g
½
±r (q; a), αν q 2 Qr
±(q; a) =
±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) ορίζεται όπως παρακάτω:

Θεώρημα Kleene

113

qr

Mr

fr

ε
q0

qr

ε
qs

Ms

Mr

fr

fs

ε

qs

(β)

(α)
ε

qr

Mr

q0

ε

fr

(γ)
Σχήμα 5.7. ΜΠΑ-² για α) ένωση, β) συνένωση και γ) αστέρι Kleene

Q = Qr [ Qs
q0 = qr
F = Fs
± : Q £ § ! Q, που ορίζεται ως εξής
±(fr ; ²) = fqs g
½
±r (q; a), αν q 2 Qr
±(q; a) =
±s (q; a), αν q 2 Qs
Το M φαίνεται στο Σχήμα 5.7(β). Η αρχική του κατάσταση είναι ίδια με την
αρχική κατάσταση του Mr και η τελική του ίδια με την τελική κατάσταση
του Ms . Επίσης, μεταξύ των δύο αυτομάτων υπάρχει μια ²-μετάβαση από
την fr στην qs .
,
Οποιοδήποτε μονοπάτι σ αυτό το αυτόματο ξεκινά από την qr και καταλήγει
στην fs , μόνο αν η συμβολοσειρά εισόδου x μπορεί να γραφεί ως x = x1 x2
,
ή 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 ), τότε προφανώς η x1 x2 ανήκει στην L(M ). Αρκεί, τελειώνοντας
την ανάγνωση της x1 , να χρησιμοποιήσουμε την ²-μετάβαση για να πάμε από
την fr στην qs και στη συνέχεια να διαβάσουμε τη x2 . Από τα παραπάνω
προκύπτει ότι L(M ) = L(Mr )L(Ms ).

Ms

fs

114

Μη Ντετερμινισμός
Περίπτωση 3: R = (r¤ ). Έστω Mr = (Qr ; §; qr ; ±r ; Fr ) το αυτόματο
της γλώσσας L(r) και q0 μια νέα αρχική κατάσταση. Το ΜΠΑ-² M =
(Q; §; q0 ; ±; F ) που αναγνωρίζει τη γλώσσα L(R) ορίζεται όπως παρακάτω:
Q = Qr [ fq0 g
F = fq0 g
± : Q £ § ! Q, που ορίζεται ως εξής
±(q; a)
±(q0 ; ²)
±(fr ; ²)
±(q; ²)

=
=
=
=

±r (q; a) όπου q 2 Qr
fqr g
±r (fr ; ²) [ fq0 g
= fr
±r (q; ²) όπου q 6

Το M φαίνεται στο Σχήμα 5.7(γ). Η μόνη τελική κατάσταση είναι η q0 , η
οποία είναι και αρχική. Μία συμβολοσειρά x γίνεται δεκτή από το M , αν είναι
κενή (x = ²) ή αν υπάρχει κύκλος που ξεκινά από την q0 , χρησιμοποιεί τις
καταστάσεις του Mr και καταλήγει πάλι στην q0 (όχι απαραίτητα μία, αλλά
πολλές φορές). Κάθε τέτοιος κύκλος αφορά μια συμβολοσειρά xi που ανήκει
στην L(Mr ). Άρα η x αναγνωρίζεται από το M , αν και μόνο αν μπορεί να
,
γραφεί ως x = x1 x2 ¢ ¢ ¢ xk , για κάποιο k ¸ 0, όπου κάθε xk 2 L(Mr ). Απ
αυτό συμπεραίνουμε ότι L(M ) = L(Mr )¤ .

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

Ας κατασκευάσουμε ένα αυτόματο για την έκφραση R = (01)¤ + 1¤ . H R μπορεί να
γραφεί ως r1¤ + r2¤ , όπου r1 = 01 και r2 = 1. Τα αυτόματα για τις r1 και r2 φαίνονται
στο Σχήμα 5.8, στα (α) και (β) αντίστοιχα. Τα αυτόματα για τις r1¤ , r2¤ κατασκευάζονται
εισάγοντας μια νέα αρχική κατάσταση και συνδέοντας αυτή με τις πρώην αρχικές και
τελικές καταστάσεις χρησιμοποιώντας ²-μεταβάσεις. Η κατασκευή φαίνεται στα σχήματα
(γ) και (δ) αντίστοιχα. Όμως τα αυτόματα αυτά μπορούν να απλοποιηθούν, όπως φαίνεται
στα (ε) και (στ). Τέλος, η ένωση r1¤ + r2¤ φαίνεται στο σχήμα (ζ). Εισάγουμε μια
νέα αρχική κατάσταση την οποία συνδέουμε με τις αρχικές καταστάσεις των επιμέρους
αυτομάτων.

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

Κατασκευάστε ένα αυτόματο για την έκφραση
R = (11 + 0)¤ (00 + 1)¤ .

Θα δείξουμε τώρα ότι οποιαδήποτε γλώσσα γίνεται δεκτή από ένα πεπερασμένο
αυτόματο μπορεί να αναπαρασταθεί και από μια κανονική έκφραση.

Θεώρημα Kleene

115

0

ε

1

1

(α)

(β)

ε

ε

0

ε

1

(γ)

(δ)

ε
0

1

ε
1

1

(ε)

(στ)
ε
0

1

ε

ε
ε

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. Σ αυτή την περίπτωση όμως μια κατάσταση

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.
½
fa j ±(p; a) = qg,
αν p 6
=q
0
R (p; q) =
fa 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 δεν

Θεώρημα Kleene

117

είναι παρά η
R = Rn (q0 ; f1 ) + Rn (q0 ; f2 ) + ¢ ¢ ¢ + Rn (q0 ; fm ),
όπου q0 είναι η αρχική και f1 ; f2 ; : : : ; fm οι τελικές καταστάσεις του M .

0

1
1
1

2

0

3

0
1

Σχήμα 5.9. Αυτόματο Παραδείγματος 5.9
5.9
Ας είναι M το αυτόματο του Σχήματος 5.9, το οποίο αναγνωρίζει τη γλώσσα L = fx 2
f0; 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)¤

Όλες οι εκφράσεις συνήθως χρειάζονται κάποια απλοποίηση για να φτάσουν σε μια
κατανοητή μορφή. Για παράδειγμα, η προτελευταία ισότητα προέκυψε κάνοντας
χρήση της ιδιότητας (² + r)¤ = r¤ , όπου r μια οποιαδήποτε έκφραση. Τι δηλώνει
όμως η έκφραση (1+ 0)¤ ; Δηλώνει ότι για να φτάσουμε από την κατάσταση 2 πίσω
στον εαυτό της χωρίς να χρησιμοποιήσουμε την 3, αρκεί να μεταβούμε στην 1 (με

Παράδειγμα 5.9

118

Μη Ντετερμινισμός

Πίνακας 5.1. Πίνακας εκφράσεων Rk (p; q).

Rk (1; 1)
Rk (1; 2)
Rk (1; 3)
Rk (2; 1)
Rk (2; 2)
Rk (2; 3)
Rk (3; 1)
Rk (3; 2)
Rk (3; 3)

k=0
1+²
0
Â
1
²
0
1
Â
²+0

k=1

1¤ 0
Â
1+
² + 1+ 0
0
1+
1+ 0
²+0

k=2

1¤ 0(1+ 0)¤
1¤ 0(1+ 0)¤ 0
(1+ 0)¤ 1+
(1+ 0)¤
(1+ 0)¤ 0
(1+ 0)¤ 1+
(1+ 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
Παράδειγμα 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)+

Ασκήσεις

119

Η έκφραση αυτή μπορεί να απλοποιηθεί και άλλο στην ((1¤ 0)+ 0)+ αλλά σε καμιά
περίπτωση δε μπορεί να γίνει (0 + 1)¤ 00, η οποία χαρακτηρίζει με απλούς όρους
τη γλώσσα. Μην ξεχνάτε όμως ότι η μέθοδος του Θεωρήματος 5.4 περιγράφει
ουσιαστικά τις συμβολοσειρές που γίνονται δεκτές από τις διάφορες καταστάσεις
,
του αυτόματου και γι αυτό οι εκφράσεις δεν είναι πάντα οι απλούστερες δυνατές.
Εκείνο που πρέπει να θυμόμαστε είναι ότι η μέθοδος μας δείχνει την ισοδυναμία
μεταξύ αυτομάτων και κανονικών εκφράσεων.
0

1

1

0

1
2

3

1

0

Σχήμα 5.10. Αυτόματο Άσκησης Αυτοαξιολόγησης 5.6
5.6
Άσκηση
Αυτοαξιολόγησης
5.6

Κατασκευάστε τον πίνακα των εκφράσεων Rk (p; q) και δώστε την κανονική έκφραση
που αντιστοιχεί στο αυτόματο του Σχήματος 5.10.

ΑΣΚΗΣΕΙΣ
5.1 Ποιες από τις παρακάτω συμβολοσειρές αναγνωρίζονται από τα αυτόματα
του Σχήματος 5.11; α) 10, β) 10101, γ) 1001101, δ) 011001, ε) 10110110.
5.2 Δώστε κανονικές εκφράσεις για τις γλώσσες που γίνονται δεκτές από τα
αυτόματα του Σχήματος 5.11.
1

ε
0

0
1

0
1

ε
1

1
0

0

M1
M2
Σχήμα 5.11. Διαγράμματα καταστάσεων μη ντετερμινιστικών αυτομάτων.

1
0

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).
ε

ε
1

ε

2

1

3

0

4

1

5

ε

6

ε

Σχήμα 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 προσθέσουμε μια ²-μετάβαση προς
την αρχική κατάσταση, ποια είναι η γλώσσα που αναγνωρίζεται από το νέο
αυτόματο;

Ασκήσεις

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 που κατά κάποιο τρόπο είναι μέγιστα, δεν υπάρχει δηλαδή
= ² ώστε xy 2 L.
επίθεμα y 6

β) Min(L)= fx 2 Lj δεν υπάρχει πρόθεμα του x που ανήκει στην Lg.
Min(L) είναι η γλώσσα όλων των x 2 L που κατά κάποιο τρόπο είναι

ελάχιστα, δεν υπάρχει δηλαδή πρόθεμα y του x, ώστε αν x = yw, για
= ², τότε y 2 L.
κάποιο w 6
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 ; ±; ff g) ένα αυτόματο με μόνο μια τελική κατάσταση
f και στο οποίο δεν υπάρχουν μεταβάσεις προς την αρχική κατάσταση. Πώς
μπορούμε να μετατρέψουμε οποιοδήποτε αυτόματο σε ένα που υπακούει στις
παραπάνω προδιαγραφές; Βρείτε τις γλώσσες που αναγνωρίζονται από τα
αυτόματα που προκύπτουν από τις παρακάτω προσθήκες στο M :
α) Αν προσθέσουμε ²-μεταβάσεις από την q0 προς κάθε άλλη κατάσταση που
είναι προσπελάσιμη από την q0 .
β) Αν προσθέσουμε ²-μεταβάσεις στην f από κάθε άλλη κατάσταση που
μπορεί να προσπελάσει την f .

122

Μη Ντετερμινισμός

5.12 Βρείτε ένα μη ντετερμινιστικό αυτόματο που αναγνωρίζει τη γλώσσα L(R),
όπου R = (0+1)¤ (010+101)(0+1)¤ . Στη συνέχεια μετατρέψτε το αυτόματο
σε ντετερμινιστικό.
5.13 Ποια είναι η γλώσσα που αναγνωρίζει το ΜΠΑ-² του Σχήματος 5.3(α);
Μετατρέψτε το αυτόματο σε ένα ισοδύναμο ντετερμινιστικό.
5.14 Μετατρέψτε τα αυτόματα του Σχήματος 5.13 σε ισοδύναμα ντετερμινιστικά
αφού πρώτα εξαλείψετε τις ²-μεταβάσεις.

0

1

2

0

ε

1
0

3

0

1

1

1

2

0

M1

4
0

3

M2
0

1

0,1
0

1

0

0
2

1

ε

M3

3

1

2

1
0

ε
4

3

1

M4

Σχήμα 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 . Κατασκευάστε αυτόματα που δέχονται τις
παρακάτω γλώσσες:
α) L1 L¤2

Σύνοψη

123

β) L¤1 + L¤2 L1
γ) L1 L¤2 + (L2 L1 )¤
5.17 Χρησιμοποιήστε τον αλγόριθμο του Θεωρήματος 5.4 για να βρείτε μια κανονική
έκφραση που αντιστοιχεί στα αυτόματα του Σχήματος 5.14.
0

M1

1

M2

2
1

1

1

0

3

0,1

0,1

M3

1

2

1
1
0

3

0

1

0
4

2
0,1

3

0,1
0

0

1

M4

1
1

1

2

0

3

0
1

Σχήμα 5.14. Ντετερμινιστικά αυτόματα.

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

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)

S
±(p; a)
¤
Sp2± (q;²)
p2fqg ±(p; a)

γιατί a = ²a
Ορισμός 5.2, Κανόνας 2
Ορισμός 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))
^ 1)))
^ 1) [ ±(2;
^ 1) [ ±(1;
= ²(±(0;
= ²(Â [ f3g [ f2g)

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

125
0

0

0

1

1

0,1

0
1

2

0
3

0

[1,3]

0

[1]

0,1
1

1

[0]

[3]

0
1

[2,3]

1

1

[2]

0

1

(α)

(β)

Σχήμα 5.15. Αυτόματα Ασκήσεων Αυτοαξιολόγησης 5.2 και 5.4

= f3; 2g

^ 0)))
^ 0) [ ±(2;
^ 0) [ ±(1;
±(0; 0) = ²(±(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 ; : : : ; qk g:
Βάση: Για x = ², ± 0¤ ([q0 ]; ²) = [q0 ] και ± ¤ (q0 ; ²) = fq0 g.
Επαγωγική Υπόθεση: Ας υποθέσουμε ότι ο ισχυρισμός είναι αληθής για όλες τις
συμβολοσειρές μήκους 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

0,1

126

Μη Ντετερμινισμός

Αντίστοιχα, για τη συνάρτηση ± ¤ θα έχουμε
± ¤ (q0 ; xa)

=
=
=

±(± ¤ (q0 ; x); a)
±(fq1 ; q2 ; : : : ; qk g; 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¤

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

127
1

1

ε
1

0

1

ε

r2 = 0

r1 = 11

0

r3 = r1 + r2
1

1

0

1

1

0
ε

ε

ε

0

0

1

r5 = r 4* = (11+ 0) *

r4 = r1 + r2

s5 = (00 + 1) *

1

0

1

0
ε

ε

ε

ε

0

ε

ε

1

R = r 5 s5
Σχήμα 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), και κάθε φορά θα υπολογίζαμε μόνο τις

128

Μη Ντετερμινισμός

Πίνακας 5.2. Πίνακας εκφράσεων Rk (p; q).

Rk (1; 1)
Rk (1; 2)
Rk (1; 3)
Rk (2; 1)
Rk (2; 2)
Rk (2; 3)
Rk (3; 1)
Rk (3; 2)
Rk (3; 3)

k=0
1+²
0
Â
Â
²+0
1
0
1
²

k=1
1+²
1¤ 0
Â
Â
²+0
1
01¤
1 + 01¤ 0
²

k=2
1+²
1¤ 0+
1¤ 0+ 1
Â

0¤ 1
01¤
(1 + 01¤ 0)0¤
² + (1 + 01¤ 0)0¤ 1

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

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝ
μη ντετερμινισμός nondeterminism
²-μεταβάσεις ²-transitions
μέθοδος κατασκευής υποσυνόλων subset construction method
πρόθεμα prefix
επίθεμα suffix

Κ Ε Φ Α Λ Α Ι Ο

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

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

Προσδοκώμενα Αποτελέσματα
Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:
² αναφέρετε πώς σχετίζεται η πεπερασμένη μνήμη ενός αυτόματου με την αδυναμία αναγνώρισης γλωσσών,

² αναφέρετε τι είναι το Λήμμα Άντλησης και πώς χρησιμοποιείται,
² αναφέρετε πώς σχετίζεται το παραπάνω λήμμα με την ύπαρξη περιοδικότητας
σε μια άπειρη κανονική γλώσσα,

² αποδείξετε αν μια γλώσσα είναι κανονική ή όχι,
² εξηγήσετε πώς μπορούμε να χρησιμοποιήσουμε το Λήμμα Άντλησης για να
απαντήσουμε στο ερώτημα αν μια γλώσσα είναι πεπερασμένη ή όχι,

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

² επιλύετε προβλήματα απόφασης και να εξηγείτε τους λόγους για τους οποίους
,
ενδιαφερόμαστε να δώσουμε απαντήσεις σ αυτά τα προβλήματα.
129

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 καταστάσεις. Πώς μπορούμε λοιπόν να χρησιμοποιήσουμε αυτό το
θεώρημα για να δείξουμε ότι μια γλώσσα δεν είναι κανονική; Με δύο τρόπους:

Το Λήμμα Άντλησης

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 = f0n 1n j n ¸ 0g. Διαισθητικά και αυτή η γλώσσα δεν μπορεί να είναι
κανονική, γιατί ένα αυτόματο θα πρέπει να μπορεί να θυμάται τον αριθμό των μηδενικών
ώστε να το συγκρίνει με τον αριθμό των άσσων.
Για να χρησιμοποιήσουμε το Θεώρημα 4.2 διαλέγουμε ως S το σύνολο f0n j n ¸ 0g. Ας
είναι 0i , 0j , i 6
= j, δύο συμβολοσειρές του S. Με ποιά συμβολοσειρά z μπορούμε να
διακρίνουμε τη μια από την άλλη; H z θα πρέπει να είναι τέτοια ώστε μόνο μια από τις
δύο, έστω η πρώτη, να ανήκει στην L. Αυτό μας οδηγεί στην επιλογή της z = 1i . Είναι
φανερό τώρα ότι 0i z 2 L ενώ 0j z 6
2 L. Εφόσον το S είναι άπειρο συμπεραίνουμε ότι η
γλώσσα δεν είναι κανονική.

Παράδειγμα 6.1

6.1
Δείξτε ότι η γλώσσα L = fai bj ck j όπου k > i + jg δεν είναι κανονική χρησιμοποιώντας
το άπειρο σύνολο S = fan j n ¸ 0g.

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

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

132

Μη Κανονικές Γλώσσες

γλώσσα με άπειρο αριθμό συμβολοσειρών έχει μια επαναλαμβανόμενη δομή που
προκύπτει από την εφαρμογή του αστεριού Kleene στην αντίστοιχη έκφραση (συγκρίνετε με την Άσκηση Αυτοαξιολόγησης 3.3) ή από ένα κύκλο στο διάγραμμα του
αντίστοιχου αυτόματου. Θα χρησιμοποιήσουμε τώρα την παραπάνω παρατήρηση
,
για ν αναπτύξουμε μια νέα τεχνική απόδειξης της μη κανονικότητας μιας γλώσσας.
Θεώρημα 6.1. [Λήμμα Άντλησης] Έστω L μια άπειρη κανονική γλώσσα.
Τότε υπάρχει ένας αριθμός n έτσι ώστε κάθε x 2 L, με jxj ¸ n, μπορεί να
γραφεί στη μορφή x = uvw, όπου για τις συμβολοσειρές u; v και w ισχύει
juvj ∙ n,
v6
= ² και
uv m w 2 L, για κάθε m ¸ 0
Απόδειξη: Ας είναι M = (Q; §; ±; q0 ; F ) ένα αυτόματο n καταστάσεων,
το οποίο αναγνωρίζει την L. Έστω τώρα μια οποιαδήποτε συμβολοσειρά
x μήκους l ¸ n, που αναγνωρίζεται από το M (τέτοιες συμβολοσειρές
υπάρχουν, γιατί η L είναι άπειρη).
Ας γράψουμε τώρα τη x στη μορφή x = a1 a2 ¢ ¢ ¢ al και ας είναι qi η
κατάσταση που πηγαίνει το αυτόματο διαβάζοντας τα πρώτα i σύμβολα της
x, δηλαδή
qi = ± ¤ (q0 ; a1 a2 ¢ ¢ ¢ ai ):
Καθώς το αυτόματο αποτελείται από n καταστάσεις, η εφαρμογή της Αρχής
των Περιστεροφωλιών μας λέει ότι οι n + 1 καταστάσεις q0 ; q1 ; ¢ ¢ ¢ ; qn δεν
μπορεί να είναι όλες διαφορετικές μεταξύ τους. Θα υπάρχουν λοιπόν δείκτες
i; j, όπου i 6
= 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.

v
u
q0

w
qi

qf

Σχήμα 6.1. Λήμμα Άντλησης
Το αρχικό τμήμα u οδηγεί το M από την q0 στην qi , το v από την qi
ξανά πίσω στην qi και το w από την qi στην τελική κατάσταση. Εφόσον
ο κύκλος v μπορεί να χρησιμοποιηθεί όσες φορές θέλουμε, συμπεραίνουμε

Το Λήμμα Άντλησης

133

ότι ± ¤ (q0 ; uv m w) = qf , για κάθε m ¸ 0 ή αλλιώς uv m w 2 L, για κάθε
m ¸ 0. Το θεώρημα προκύπτει αρκεί να παρατηρήσουμε ότι juvj ∙ n και
jvj =
60.

Το αποτέλεσμα αυτό είναι γνωστό με τον όρο Λήμμα Άντλησης, γιατί από
μια οποιαδήποτε συμβολοσειρά μιας γλώσσας L μπορούμε να \αντλήσουμε" ένα
κομμάτι v αυτής, εισάγοντας νέα αντίγραφα του v, ώστε οι συμβολοσειρές που
προκύπτουν να ανήκουν πάλι στην L. Το Λήμμα Άντλησης είναι λοιπόν ένα ισχυρό
εργαλείο για την απόδειξη της μη κανονικότητας μιας γλώσσας L. Η απόδειξή του
ήταν σχετικά εύκολη, η εφαρμογή του όμως δεν είναι πάντα τόσο απλή. Ας δούμε
μερικά από τα σημεία που πρέπει να προσέχουμε.
,
Πρώτα απ όλα υποθέτουμε ότι η γλώσσα είναι κανονική με σκοπό να οδηγη- Σημεία προσοχής
θούμε σε κάποια αντίφαση. Αρχίζουμε λοιπόν υποθέτοντας την ύπαρξη κάποιου
n, για το οποίο ισχύει το θεώρημα, αν και δεν ξέρουμε την τιμή του. Γνωρίζουμε
όμως ότι, αν η γλώσσα είναι κανονική, αυτό το n θα υπάρχει και μπορεί να είναι
ο αριθμός καταστάσεων ενός αυτόματου για την L. Για να οδηγηθούμε τώρα σε
αντίφαση αρκεί να βρούμε κάποια συμβολοσειρά x, με jxj ¸ n, η οποία μπορεί
= ², αλλά για κάποιο m ¸ 0
να γραφεί στη μορφή x = uvw, με juvj ∙ n και v 6

δεν ισχύει uvm w 2 L. Ο λόγος είναι ότι το θεώρημα πρέπει να ισχύει για κάθε x.

Αν λοιπόν δεν ισχύει για το συγκεκριμένο x, τότε θα έχουμε πέσει σε αντίφαση.
2 L (το
Και πώς μπορεί να γίνει αυτό; Αν υπάρχει κάποιο m, για το οποίο uvm w 6
θεώρημα πάλι πρέπει να ισχύει για κάθε m).
,
Ας δούμε μ ένα παράδειγμα πώς εφαρμόζονται οι παραπάνω ιδέες.
6.2

Έστω L = f0k 1k j k ¸ 0g. Ας υποθέσουμε ότι η L είναι κανονική και έστω n ο αριθμός
του Θεωρήματος 6.1. Θα πρέπει να δείξουμε ότι οποιοδήποτε και αν είναι το n, υπάρχει
κάποιο x που οδηγεί σε αντίφαση. Ας είναι x = 0n 1n . Τότε υπάρχουν συμβολοσειρές
u; v; w, ώστε x = uvw, για τις οποίες ισχύουν τα συμπεράσματα του θεωρήματος. Αν
και δεν μπορούμε να επιλέξουμε τη μορφή τους γνωρίζουμε ότι juvj ∙ n και v 6
= ².
Άρα το uv θα αποτελείται μόνο από μηδενικά, θα έχει δηλαδή τη μορφή 0i για κάποιο
i. Επίσης το v θα είναι ίσο με 0j , για κάποιο j > 0. Αναρωτηθείτε τώρα αν μπορεί να
ισχύει uv m w 2 L, για κάθε m ¸ 0. Ας υπολογίσουμε το uv m w.
uv m w

= (uv)v m¡1 w
= 0k (0j )m¡1 0n¡k 1n , γιατί w = 0n¡k 1n , αφού uv = 0k
= 0n+j(m¡1) 1n

Για να ανήκει η παραπάνω συμβολοσειρά στην L θα πρέπει ο αριθμός των μηδενικών
να είναι ίσος με τον αριθμό των άσσων. Αυτό όμως ισχύει μόνο όταν m = 1. Για
οποιαδήποτε άλλη τιμή η συμβολοσειρά δεν ανήκει στη γλώσσα. Μπορούμε λοιπόν να
επιλέξουμε m = 0. Τότε uv0 w = uw = 0n¡j 1n , το οποίο δεν ανήκει στη γλώσσα γιατί
j > 0. Εφόσον καταλήξαμε σε αντίφαση συμπεραίνουμε ότι η L δεν είναι κανονική.

Παράδειγμα 6.2

134

Μη Κανονικές Γλώσσες

Στο προηγούμενο παράδειγμα η μόνη απαίτηση για το x είναι ότι το μήκος του
θα πρέπει να είναι τουλάχιστον n. Αντί για το 0n 1n θα μπορούσαμε να είχαμε
n n
επιλέξει το 0 2 1 2 , όμως η ανάλυση δε θα ήταν τόσο απλή. Συγκεκριμένα το uv δε
θα μπορούσε πια να αποτελείται μόνο από μηδενικά. Θα έπρεπε να θεωρήσουμε
δύο ακόμη περιπτώσεις: Αν v = 0i 1j , τότε για m > 1 η uvm w θα περιείχε τη
συμβολοσειρά 10, οπότε δε θα μπορούσε να ανήκει στην L. Αν πάλι το v περιείχε

Σημείο
προσοχής

μόνο άσσους θα καταλήγαμε σε αντίφαση με τον αρχικό τρόπο. Πάντα λοιπόν
προσπαθούμε να διαλέξουμε το x ώστε η αντίφαση να προκύπτει σχετικά εύκολα.
Ένα ακόμη σημείο που πρέπει να προσέχουμε στην εφαρμογή του Λήμματος
Άντλησης είναι το εξής: από τη στιγμή που έχουμε επιλέξει το x δεν μπορούμε να
διαλέξουμε τον τρόπο που σχηματίζονται τα u; v και w. Οποιαδήποτε επιλογή από
αυτά πρέπει να οδηγεί σε μια αντίφαση. Ο λόγος ξανά είναι ότι το θεώρημα δεν
αναφέρεται σε συγκεκριμένα u; v; w.
6.3

Παράδειγμα 6.3

Έστω L = f1k j k πρώτοςg. Ας είναι n ο αριθμός του Θεωρήματος 6.1 και έστω x = 1p ,
όπου p > n ένας πρώτος αριθμός (τέτοιο p θα υπάρχει αφού το σύνολο των πρώτων
αριθμών είναι άπειρο). Σύμφωνα με το Θεώρημα 6.1, το x μπορεί να εκφραστεί ως uvw.
Έστω τώρα juj = a; jvj = b 6
= 0 και jwj = c. Θα δείξουμε ότι υπάρχει κάποιο m για το
οποίο η συμβολοσειρά uv m w = 1a 1mb 1c δεν ανήκει στην 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.2
Άσκηση
Αυτοαξιολόγησης
6.2

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

6.2 Αλγόριθμοι Απόφασης για Κανονικές Γλώσσες
Τα πεπερασμένα αυτόματα είναι απλές μηχανές, οι οποίες δέχονται κάποια είσοδο
x και παράγουν έξοδο της μορφής \Ναι" ή \Όχι", ανάλογα με το αν η x οδηγεί
ή όχι το αυτόματο M σε κάποια τελική κατάσταση. Με την έννοια αυτή έχουν
σχεδιαστεί για να λύνουν το ακόλουθο πρόβλημα απόφασης: Ανήκει η x στην
L(M );
,
Σ αυτή την ενότητα θα ασχοληθούμε με προβλήματα απόφασης που αφορούν
,
τα ίδια τα αυτόματα. Θα θέλαμε να βρούμε αλγόριθμους που να απαντούν σ

Αλγόριθμοι Απόφασης για Κανονικές Γλώσσες

ερωτήματα του τύπου: Είναι η γλώσσα που αναγνωρίζεται από ένα αυτόματο κενή,
πεπερασμένη ή άπειρη; Αναγνωρίζουν δύο αυτόματα την ίδια γλώσσα; Δοθέντων
δύο αυτομάτων, υπάρχουν κάποιες συμβολοσειρές που αναγνωρίζονται και από τα
δύο; Το θεώρημα που ακολουθεί θα μας βοηθήσει να δώσουμε απαντήσεις στα
παραπάνω ερωτήματα καθώς και σε πολλά άλλα.
Θεώρημα 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 =
60. Αλλά τότε uv 0 w = uw είναι μια μικρότερη συμβολοσειρά που
ανήκει στην L, δηλαδή έχουμε μια αντίφαση. Άρα jxj < n.
Αν η x αναγνωρίζεται από το αυτόματο και n ∙ jxj < 2n, τότε η L είναι
άπειρη γιατί όλες οι συμβολοσειρές της μορφής uv m w; 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. Η παρακάτω

135
Προβλήματα
απόφασης

136

Μη Κανονικές Γλώσσες

άσκηση σας ζητά να βρείτε ένα πιο αποτελεσματικό τρόπο απάντησης των παραπάνω
ερωτημάτων.
6.3
Άσκηση
Αυτοαξιολόγησης
6.3

?

L(M1 ) = L(M2 )

Πώς μπορούμε να τροποποιήσουμε το διάγραμμα ενός αυτόματου διαγράφοντας μη
προσπελάσιμες καταστάσεις, ώστε στο αυτόματο που προκύπτει να μπορούμε εύκολα
να απαντήσουμε στα παραπάνω προβλήματα απόφασης;

Για να βρούμε αν δύο αυτόματα M1 ; 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

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

Δώστε αλγόριθμους για τα παρακάτω προβλήματα:
1. Aν M1 ; M2 είναι δύο αυτόματα, είναι η L(M1 ) υποσύνολο της L(M2 );
2. Αν R1 ; R2 είναι δύο κανονικές εκφράσεις, παράγουν αυτές την ίδια γλώσσα;

Άλυτα
προβλήματα!

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

Ασκήσεις

137

ΑΣΚΗΣΕΙΣ
6.1 Αποδείξτε ότι οι ακόλουθες γλώσσες δεν είναι κανονικές.
α) L = f1m 0n 1m+n j 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 = f1k j k

πρώτοςg δεν είναι κανονική.

6.3 Ποιες από τις παρακάτω γλώσσες είναι κανονικές; Δικαιολογήστε την απάντησή
σας.
α) L = f12n j n ¸ 0g.
2

β) L = f1n 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 = fxxR j 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 είναι κανονική.

138

Μη Κανονικές Γλώσσες

6.5 Βρείτε αλγόριθμους απόφασης για καθένα από τα παρακάτω ερωτήματα.
α) Αν M είναι ένα ΜΠΑ-², είναι η L(M ) κενή, πεπερασμένη, άπειρη;
β) Αν M είναι ένα ΜΠΑ-², αναγνωρίζει το M κάποια άλλη συμβολοσειρά
εκτός από την κενή;
γ) Είναι οι γλώσσες που αναγνωρίζονται από ένα αυτόματο M και μια
κανονική έκφραση R ισοδύναμες μεταξύ τους;
δ) Δοθέντων δύο αυτομάτων M1 ; M2 υπάρχουν συμβολοσειρές που δε γίνονται δεκτές από κανένα από τα δύο;
6.6 Αν L είναι η γλώσσα που αναγνωρίζεται από ένα αυτόματο M , δώστε έναν
,
αλγόριθμο που ν αποφασίζει
α) αν L = §¤ ,
β) αν το συμπλήρωμα της L είναι πεπερασμένο.

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

Αν αυτό δε συμβαίνει, τότε η γλώσσα δεν μπορεί να είναι

κανονική.

,
Με το Λήμμα Άντλησης μπορούμε να απαντήσουμε σ ένα πλήθος ερωτημάτων

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

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης
Άσκηση 6.1 Διαισθητικά καταλαβαίνουμε ότι η γλώσσα L = fai bj ck j όπου k >

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

i + jg δεν είναι κανονική, επειδή οποιοδήποτε αυτόματο για την L θα πρέπει να
θυμάται τον αριθμό των a και b, ώστε να μπορεί να το συγκρίνει με τον αριθμό
των c. Κάτι τέτοιο όμως είναι αδύνατο.
= j,
Θα δείξουμε τώρα ότι οποιεσδήποτε δύο συμβολοσειρές ai ; aj όπου i 6

του άπειρου συνόλου S = fan j n ¸ 0g μπορούν να διακριθούν από μια τρίτη
συμβολοσειρά z. Ας υποθέσουμε ότι i < j. Αν δεν ισχύει αυτό απλά μετονομάζουμε
τις i; j. H z θα πρέπει να είναι τέτοια ώστε μόνο μια από τις δύο, έστω η πρώτη,
,
ν ανήκει στην L. Αυτό μας οδηγεί στην επιλογή της z = ci+1 . Παρατηρήστε
2 L, επειδή
τώρα ότι ai z = ai ci+1 2 L, γιατί i + 1 > i, ενώ aj z = aj ci+1 6

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 = 0n 1n , όπως και
στο Παράδειγμα 6.2. Σημειώστε ότι οι συμβολοσειρές της L δεν είναι απαραίτητο
να έχουν μόνο αυτή τη μορφή. Οι 11001100, 010101, κλπ. ανήκουν και αυτές
στην L, όμως επιλέγουμε την x με αυτό τον τρόπο για μεγαλύτερη ευκολία.
Έστω τώρα ότι υπάρχουν συμβολοσειρές u; v; w με x = uvw, για τις οποίες
ισχύουν τα συμπεράσματα του θεωρήματος. Αν και δεν μπορούμε να επιλέξουμε
= ². Άρα το uv θα αποτελείται μόνο
τη μορφή τους γνωρίζουμε ότι juvj ∙ n και v 6

από μηδενικά, θα έχει δηλαδή τη μορφή 0i για κάποιο i. Επίσης το v θα είναι ίσο
με 0j για κάποιο j > 0. Όπως και στο Παράδειγμα 6.2, το uv m w θα είναι ίσο με

0n+j(m¡1) 1n . Διαλέγοντας m = 0 παίρνουμε uv 0 w = uw = 0n¡j 1n , το οποίο δεν
ανήκει στη γλώσσα γιατί j > 0. Εφόσον καταλήξαμε σε αντίφαση, συμπεραίνουμε
ότι η L δεν είναι κανονική.
Υπάρχει και ένας άλλος πιο εύκολος τρόπος για να αποδείξουμε τη μη κανονικότητα της L και αυτός είναι να χρησιμοποιήσουμε την κλειστότητα των κανονικών
γλωσσών ως προς την πράξη της τομής. Αρχικά υποθέτουμε ότι η L είναι κανονική.
Τότε όμως και η M = L \ 0¤ 1¤ θα είναι κανονική ως τομή κανονικών γλωσσών.

Αλλά η M δεν είναι παρά η γλώσσα f0k 1k j k ¸ 0g, η οποία δεν είναι κανονική.

139

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 είναι δύο κανονικές εκφράσεις, παράγουν αυτές την ίδια γλώσσα;
Αυτό το ερώτημα είναι πιο εύκολο να απαντηθεί. Απλά κατασκευάζουμε
,
τα αντίστοιχα αυτόματα και ρωτάμε αν οι γλώσσες που αναγνωρίζονται απ
,
αυτά είναι ίδιες. Γι αυτό όμως το ερώτημα έχουμε ήδη έναν αλγόριθμο
απόφασης. Άρα το ίδιο ισχύει και για τις γλώσσες που αναγνωρίζονται από
τις κανονικές εκφράσεις.
Μπράβο σας, αν καταφέρατε να δώσετε απαντήσεις στα παραπάνω ερωτήματα.
Αν δεν τα καταφέρατε μην ανησυχείτε. Ασκήσεις αυτού του τύπου είναι από τις

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

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

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝ
Λήμμα Άντλησης Pumping Lemma
Προβλήματα Απόφασης Decision Problems
Αλγόριθμοι Απόφασης Decision Algorithms

ΒΙΒΛΙΟΓΡΑΦΙΑ ΜΕΡΟΥΣ II
Bar-Hillel, Y., M. Perles and E. Shamir. \On Formal Properties of Simple
Phase Structure Grammars", in Zeitschrift fur Phonetik Sprachwissenshhaft und
Kommunikations-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, Languages
and 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, McGrawHill, 1991.
McCulloch, W. S. and W. Pitts. \A Logical Calculus of the Ideas Immanent in
Nervous Activity", in Bulletin of Mathematical Biophysics, pp. 115-133, 5, 1943.
M. O. Rabin and D. Scott. \Finite Automata and their Decision Problems", in
IBM 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 που απευθύνεται όμως σε μεταπτυχιακούς φοιτητές και προϋποθέτει

141

142

Μη Κανονικές Γλώσσες

μεγάλη μαθηματική ωριμότητα. Πολύ καλά επίσης είναι και τα βιβλία των Cohen, Martin και Sipser τα οποία είναι πιο πρόσφατα και μπορούν να διαβαστούν
εύκολα. Το τελευταίο μάλιστα βιβλίο παρουσιάζει όλη τη θεωρία της Επιστήμης
των Υπολογιστών από μια μοναδική προοπτική, αυτή της \μεγάλης εικόνας"!
Χωρίς να μπαίνει ιδιαίτερα σε λεπτομέρειες και δίνοντας μεγάλη σημασία στην
απόκτηση διαίσθησης, φέρνει τον αναγνώστη σε επαφή με τις σημαντικότερες
,
έννοιες και προβλήματα της θεωρίας Υπολογισμού. Απ όλα τα παραπάνω βιβλία
δανειστήκαμε σε ορολογία και οργάνωση των θεμάτων.
Τα πεπερασμένα αυτόματα εμφανίζονται για πρώτη φορά στο άρθρο των McCulloch, W. S. and W. Pitts (1943) σαν ένα μοντέλο της λειτουργίας των νευρώνων
του εγκεφάλου. Η ισοδυναμία των αυτομάτων με τις κανονικές γλώσσες αποδεικνύεται από τον Kleene (1956). Τα μη ντετερμινιστικά αυτόματα και η ισοδυναμία
τους με τα ντετερμινιστικά μελετήθηκαν από τους Rabin και Scott (1959). Το
Λήμμα Άντλησης εμφανίζεται στο άρθρο των Bar-Hillel, M. Perles και E. Shamir
(1961).

Μ Ε Ρ Ο Σ

ΓΛΩΣΣΕΣ ΑΝΕΞΑΡΤΗΤΕΣ
ΣΥΜΦΡΑΖΟΜΕΝΩΝ ΚΑΙ
ΑΥΤΟΜΑΤΑ ΣΤΟΙΒΑΣ
Στο Μέρος II χαρακτηρίσαμε τις κανονικές γλώσσες με δύο τρόπους: Ως τις
γλώσσες που παράγονται από τις κανονικές εκφράσεις και ως αυτές που αναγνωρίζονται από τα πεπερασμένα αυτόματα. Όμως τα αυτόματα δεν είναι παρά απλοϊκά
,
μοντέλα υπολογισμού και γι αυτό υπάρχουν σχετικά απλές γλώσσες, όπως για
παράδειγμα η f0n 1n j n ¸ 0g, οι οποίες δεν μπορούν να αναγνωριστούν από αυτά.
Στο Μέρος III θα γνωρίσουμε γλώσσες, οι οποίες επιδεικνύουν μία πλουσιότερη

δομή από τις κανονικές. Θα χαρακτηρίσουμε τις γλώσσες αυτές με γραμματικές
ανεξάρτητες συμφραζόμενων, οι οποίες δεν είναι παρά μέθοδοι παραγωγής συμβολοσειρών αντίστοιχες με τις κανονικές εκφράσεις για τις κανονικές γλώσσες. Κύριο
γνώρισμα αυτών των γραμματικών είναι η χρήση αναδρομής στους κανόνες με
τους οποίους παράγονται οι συμβολοσειρές. Για το λόγο αυτό οι γραμματικές είναι
σε θέση να παράγουν ακόμη πιο σύνθετες γλώσσες.
Θα χαρακτηρίσουμε επίσης τις γλώσσες ανεξάρτητες συμφραζόμενων με μηχανές αναγνώρισης. Για να μπορούν όμως τα αυτόματα αυτά να αναγνωρίζουν και μη
κανονικές γλώσσες θα πρέπει να επεκταθούν ώστε να υποστηρίζουν άπειρη μνήμη.
Είναι όμως αρκετό η μνήμη αυτή να έχει τη μορφή μίας στοίβας ή σωρού. Οι
,
μηχανές που προκύπτουν μ αυτό τον τρόπο λέγονται αυτόματα στοίβας και, όπως
αποδεικνύεται στο Κεφάλαιο 8, είναι ισοδύναμες με τις γραμματικές ανεξάρτητες
συμφραζόμενων. Με μια διαφορά όμως: η χρήση του μη ντετερμινισμού είναι
,
απαραίτητη σ αυτή την περίπτωση, καθώς οι ντετερμινιστικές μηχανές δεν έχουν
τις ίδιες δυνατότητες με τις μη ντετερμινιστικές.
Όμως παρά τις αυξημένες δυνατότητες αναγνώρισης, θα δούμε ότι υπάρχουν
ακόμη γλώσσες που δεν μπορούν να αναγνωριστούν από αυτές. Στο Κεφάλαιο 9

144

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

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

Κ Ε Φ Α Λ Α Ι Ο

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

Προσδοκώμενα Αποτελέσματα
Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:
² αναφέρετε τι είναι μια γραμματική ανεξάρτητη συμφραζόμενων (ΑΣ) και πώς
χρησιμοποιείται η αναδρομή στον ορισμό τέτοιων γραμματικών,

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

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

² μετατρέπετε ένα αυτόματο σε μια κανονική γραμματική και αντίστροφα,
² εξηγήσετε γιατί οι γραμματικές ΑΣ είναι κλειστές ως προς τις πράξεις ένωση,
συνένωση και αστέρι Kleene.

145

146

Γλώσσες Ανεξάρτητες Συμφραζόμενων

Έννοιες-κλειδιά
² Γραμματικές Ανεξάρτητες Συμφραζόμενων (ΑΣ)
² Μεταβλητές, τερματικά σύμβολα και παραγωγές
² Γλώσσες Ανεξάρτητες Συμφραζόμενων
² Διφορούμενες γραμματικές
² Κανονικές Γραμματικές
² Ισοδυναμία κανονικών εκφράσεων και κανονικών γραμματικών
² Κλειστότητα ως προς ένωση, συνένωση, αστέρι Kleene

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

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

Γραμματικές Ανεξάρτητες Συμφραζόμενων

147

7.1
Θεωρήστε τη γλώσσα L, της οποίας οι συμβολοσειρές προκύπτουν από τους παρακάτω
κανόνες:

Παράδειγμα 7.1

1. ² 2 L.
2. Αν S 2 L τότε και 0S1 2 L.
3. Τίποτα άλλο δεν ανήκει στην L εκτός αν προκύπτει από τους παραπάνω κανόνες.
Δεν είναι δύσκολο να δει κάποιος ότι L = f0n 1n j n ¸ 0g, η οποία όπως γνωρίζουμε
δεν είναι κανονική. Αυτό γιατί αν ξεκινήσουμε από την μικρότερη συμβολοσειρά που
ανήκει στην γλώσσα (την κενή) και, εφαρμόζοντας τον δεύτερο κανόνα, αρχίσουμε να
\κολλάμε" δεξιά και αριστερά αυτής άσσους και μηδενικά, θα πάρουμε συμβολοσειρές
του τύπου 0n 1n .
Αν τώρα θεωρήσουμε το σύμβολο S σαν μια μεταβλητή που αναπαριστά οποιαδήποτε
συμβολοσειρά της L, τότε οι παραπάνω κανόνες μπορούν να πάρουν τη μορφή
1. S ! ²
2. S ! 0S1
όπου το σύμβολο ! σημαίνει \μπορεί να πάρει τη τιμή".

Το παράδειγμα αυτό μας λέει ότι ξεκινώντας από το 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 [ §)¤ .

Γενικά, αν G = (V; §; S; P ) είναι μια γραμματική ΑΣ (ή ΓΑΣ), θα χρησιμοποιούμε τα ελληνικά γράμματα για να περιγράψουμε συμβολοσειρές του (V [ §)¤

οι οποίες αποτελούνται από μεταβλητές και τερματικά σύμβολα. Για κάθε ®; ¯ 2
(V [ §)¤ , θα γράφουμε ® )G ¯ (ή απλά ® ) ¯, αν ξέρουμε για ποια γραμματική
μιλάμε), αν το ¯ μπορεί να προκύψει από το ® με αντικατάσταση κάποιας μεταβλη-

τής που εμφανίζεται στο αριστερό μέρος ενός κανόνα της G. Για παράδειγμα, αν

Ορισμός 7.1

148

Γλώσσες Ανεξάρτητες Συμφραζόμενων

® = ®1 A®2 και ¯ = ®1 °®2 , θα γράφουμε ® ) ¯, αν και μόνο αν υπάρχει ο
,
κανόνας A ! ° στη G. Σ αυτή την περίπτωση θα λέμε ότι το ® παράγει το ¯.
¤
Επίσης θα γράφουμε ® ) ¯, αν το ¯ μπορεί να παραχθεί από το ® σε μηδέν ή
Παραγωγή

περισσότερα βήματα, δηλαδή αν ® = ¯ ή υπάρχει k ¸ 1 ώστε ® = ®0 ) ®1 ¢ ¢ ¢ )
®k = ¯. Κάθε ακολουθία της μορφής ®0 ) ®1 ¢ ¢ ¢ ) ®n , θα ονομάζεται παραγωγή
του ®n από το ®0 και θα λέμε ότι η παραγωγή αποτελείται από n βήματα ή ότι
έχει μήκος n.
7.2

Ορισμός 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!²j0j1
S ! 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.

Γραμματικές αυτού του είδους ονομάζονται ανεξάρτητες συμφραζόμενων για
τον εξής λόγο: Θεωρήστε τη συμβολοσειρά 01S10, η οποία είναι ένα ενδιάμεσο
βήμα στην παραγωγή του 0110110. Οι συμβολοσειρές 01, 10 που περιβάλλουν
Συμφραζόμενα

το S δεν είναι παρά τα συμφραζόμενα του S στη συμβολοσειρά 01S10. Ο
,
κανόνας S ! 1S1 μας λέει τώρα ότι μπορούμε ν αντικαταστήσουμε το S με
,
τη συμβολοσειρά 1S1 ανεξάρτητα από τις συμβολοσειρές που το περιβάλλουν. Μ
άλλα λόγια ανεξάρτητα από τα συμφραζόμενα.

Γραμματικές Ανεξάρτητες Συμφραζόμενων

149

7.1
Δώστε μια γραμματική ΑΣ για τη γλώσσα όλων των συμβολοσειρών που δεν είναι
παλινδρομικές.

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

Ο λόγος για τον οποίο οι μέθοδοι αυτοί παραγωγής συμβολοσειρών ονομάζονται
\γραμματικές" οφείλεται στο γεγονός ότι αρχικά εφαρμόστηκαν στη μελέτη πραγματικών γλωσσών όπως τα Αγγλικά. Αν και οι γραμματικές αυτές περιγράφουν
αρκετά καλά το συντακτικό μιας γλώσσας, ωστόσο οι εκφράσεις που παράγουν
δεν είναι πάντα νοηματικά σωστές, ίσως γιατί πολλές εκφράσεις εξαρτώνται από
τα συμφραζόμενα. Όμως στην περίπτωση των γλωσσών προγραμματισμού τα
πράγματα βελτιώνονται σημαντικά και οι γραμματικές ΑΣ αποδίδουν με ακρίβεια
το συντακτικό αυτών των γλωσσών.
7.3
Έστω G = (V; §; S; R) η γραμματική όπου V = fSg, § = f+; ¡; =; ¤; (; ); x; yg και R
αποτελείται από τους κανόνες

Παράδειγμα 7.3

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¤y
S )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, επειδή ο
πολλαπλασιασμός ¤ έχει μεγαλύτερη προτεραιότητα από την πρόσθεση +.

Η ασάφεια που δημιουργείται κατά την ερμηνεία της παραπάνω έκφρασης
οφείλεται στο γεγονός ότι η συγκεκριμένη γραμματική μπορεί να παράγει την ίδια

Διφορούμενες
γραμματικές

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

Αριστερές
παραγωγές

150

Συντακτική
Ανάλυση

Γλώσσες Ανεξάρτητες Συμφραζόμενων

Το πρόβλημα με γραμματικές αυτού του είδους γίνεται ακόμα πιο έντονο
κατά τη φάση της Συντακτικής Ανάλυσης (Κεφάλαιο 10), όπου σκοπός είναι να
βρεθεί η ακολουθία των κανόνων που χρησιμοποιήθηκαν για την παραγωγή μιας
συμβολοσειράς. Αν μια γραμματική είναι ασαφής, τότε κάτι τέτοιο δεν είναι
,
δυνατό μ αποτέλεσμα να μη μπορεί να αποδοθεί σωστά το νόημα της παραγόμενης
συμβολοσειράς, όπως είδαμε και στο Παράδειγμα 7.3.
,
Σ αυτές τις περιπτώσεις προσπαθούμε να μετατρέψουμε τη γραμματική σε μια
ισοδύναμη, η οποία δεν είναι διφορούμενη. Κάτι τέτοιο όμως δεν είναι πάντα
δυνατό καθότι μερικές γραμματικές παραμένουν ασαφείς όσες μετατροπές και να
γίνουν. Αποδεικνύεται μάλιστα ότι είναι άλυτο πρόβλημα να αποφασίσει κάποιος
αν μια γραμματική είναι διφορούμενη, δηλαδή δεν μπορεί να υπάρξει αλγόριθμος
απόφασης που να απαντάει, δοθείσης μιας γραμματικής G, αν αυτή είναι ασαφής
ή όχι.
7.2

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

Δείξτε ότι η γραμματική με κανόνες
S ! SS j (S) j ²
είναι διφορούμενη, ενώ η ακόλουθη ισοδύναμη γραμματική όχι.
S ! (S)S j ²

Θα κλείσουμε αυτή την ενότητα με ένα ακόμα παράδειγμα γραμματικής ΑΣ.
7.4
Παράδειγμα 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

Γραμματικές Ανεξάρτητες Συμφραζόμενων

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 θα είχε

152

Γλώσσες Ανεξάρτητες Συμφραζόμενων

ίσο αριθμό από 0 και 1. Άρα η y μπορεί να γραφεί στη μορφή y1 y2 , όπου καθεμία
από τις y1 ; y2 περιέχει τουλάχιστον ένα επιπλέον 0 από ότι 1. Εφόσον αυτές έχουν
μέγεθος μικρότερο του k, θα ισχύει η επαγωγική υπόθεση, ώστε καθεμία από αυτές
+

+

μπορεί να παραχθεί από τη G. Θα ισχύει λοιπόν S ) y1 και S ) y2 . Πώς μπορεί
τώρα να παραχθεί η x = y1 y2 1; Με τον κανόνα S ! SS1 και τα βήματα που
φαίνονται στη συνέχεια:

+

+

S ) SS1 ) y1 S1 ) y1 y2 1 = x
Περίπτωση 2, x = 1y: Η περίπτωση αυτή είναι ανάλογη με την πρώτη με τη
μόνη διαφορά ότι η παραγωγή της x δίνεται από την ακολουθία
+

+

S ) 1SS ) 1y1 S ) 1y1 y2 = x
Περίπτωση 3, x = 0y0: Αν η y δεν περιέχει καθόλου 1, τότε η x εύκολα
μπορεί να παραχθεί με τη χρήση των κανόνων S ! 0S j S0 και S ! 0. Αλλιώς
η x μπορεί να γραφεί στη μορφή y1 1y2 , όπου για καθένα από τα y1 ; y2 ισχύει η
επαγωγική υπόθεση. Άρα η x μπορεί να παραχθεί με την ακολουθία
+

+

S ) S1S ) y1 1S ) y1 1y2 = x
και η απόδειξη είναι πλήρης.
7.3
Άσκηση
Αυτοαξιολόγησης
7.3

Δείξτε ότι η γραμματική με κανόνες
S ! AA
A ! AAA j bA j Ab j a
παράγει τη γλώσσα όλων των συμβολοσειρών x 2 fa; bg¤ , στις οποίες ο αριθμός των a
είναι ζυγός και μεγαλύτερος του μηδενός.

7.2 Κανονικές Γραμματικές
Στα Παραδείγματα 7.1 και 7.2 είδαμε ότι υπάρχουν γραμματικές ανεξάρτητες συμφραζόμενων, οι οποίες δεν είναι κανονικές. Στην ενότητα αυτή θα δείξουμε ότι
όλες οι κανονικές γλώσσες μπορούν να παραχθούν από κάποια γραμματική ΑΣ.
Επιπλέον, θα δείξουμε ότι οι γραμματικές αυτές είναι ενός συγκεκριμένου τύπου,
παρέχοντας με αυτό τον τρόπο άλλο ένα χαρακτηρισμό των κανονικών γλωσσών.
Θεωρήστε το αυτόματο του Σχήματος 7.1, το οποίο αναγνωρίζει τη γλώσσα
όλων των συμβολοσειρών που τελειώνουν σε 00. Οι καταστάσεις από τις οποίες
περνάει το αυτόματο διαβάζοντας τη συμβολοσειρά x = 100101000 φαίνονται στον
διπλανό πίνακα:

Κανονικές Γραμματικές

153

Τμήμα της x που
έχει διαβαστεί
²
1
10
100
1001
10010
100101
1001010
10010100
100101000

0

1
1
S

A

0

F

0
1

Κατάσταση
S
S
A
F
S
A
S
A
F
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 2 § και A; B 2 V .

A ! aB

Ορισμός 7.3

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 F g
,
Θα δείξουμε τώρα ότι 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 = ff g

± : 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

Ένωση, Συνένωση, Αστέρι 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.

Κλειστότητα
ως προς ένωση

156

Γλώσσες Ανεξάρτητες Συμφραζόμενων
Απόδειξη:
Έστω G1 = (V1 ; §; S1 ; R1 ) και G2 = (V2 ; §; S2 ; R2 ) δύο
γραμματικές ΑΣ, οι οποίες παράγουν τις γλώσσες L1 και L2 . Θα κατασκευάσουμε γραμματικές για τις γλώσσες L1 [ L2 , L1 L2 και L¤1 .
Ένωση: Υποθέτουμε ότι V1 \ V2 = Â, αλλιώς μπορούμε να μετονομάσουμε
τις μεταβλητές, ώστε να ισχύει η υπόθεση. Έστω S μια νέα μεταβλητή. Η
γραμματική G = (V; §; S; R) που παράγει την ένωση των L1 και L2 δίνεται
από τα παρακάτω:
V = V1 [ V2 [ fSg
R = R1 [ R2 [ fS ! S1 j S2 g
Για να δείτε ότι η 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 που παράγει την
L1 L2 . Αυτή τη φορά όμως το R είναι ίσο με
R = R1 [ R2 [ fS ! S1 S2 g
¤

Για μια συμβολοσειρά x θα ισχύει S ) x, αν και μόνο αν η x μπορεί να
¤
¤
γραφεί στη μορφή x1 x2 όπου S1 ) x1 και S2 ) x2 . Μα τότε x 2 L1 L2 ,
αν και μόνο αν x1 2 L1 και x2 2 L2 .
Αστέρι Kleene: Για να παράγουμε την L¤1 είναι αρκετό η G να μπορεί να
παράγει την κενή συμβολοσειρά ² και ακολουθίες της μορφής x = x1 x2 ¢ ¢ ¢ xk ,
όπου κάθε xi 2 L1 . Αν S είναι μια νέα μεταβλητή, αρκεί στο σύνολο κανόνων
R1 να προσθέσουμε τους κανόνες
S ! S1 S j ²
Τότε χρησιμοποιώντας την παραγωγή
¤

S ) S1 S ) S1 S1 S ) S1 S1 ¢ ¢ ¢ S1 S ) S1 S1 ¢ ¢ ¢ S1
μπορούμε να παράγουμε οποιοδήποτε αριθμό από S1 , όπου το τελευταίο βήμα
προέκυψε με τον κανόνα S ! ². Εφόσον καθένα από τα S1 παράγει μια
συμβολοσειρά της L1 , συμπεραίνουμε ότι x = x1 x2 ¢ ¢ ¢ xk 2 L(G), αν και
μόνο αν κάθε xi 2 L1 ή αλλιώς αν και μόνο αν x 2 L¤1 .

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

Στα παραπάνω κάναμε την υπόθεση ότι τα σύνολα V1 και V2 δεν περιέχουν κοινές
μεταβλητές. Δώστε ένα παράδειγμα που να δείχνει ότι το θεώρημα δεν ισχύει, αν
V1 \ V2 6
= Â.

Ασκήσεις

157

7.5
Έστω L = fai bj ck j j = i + kg. Θα προσπαθήσουμε να εφαρμόσουμε τις ιδέες του
Θεωρήματος 7.2 για να εκφράσουμε την L ως τη συνένωση απλούστερων γλωσσών.
Μια πρώτη προσέγγιση είναι να θέσουμε L = L1 L2 L3 , όπου οι τρεις γλώσσες περιέχουν
συμβολοσειρές από a, b και c, αντίστοιχα. Κάτι τέτοιο όμως οδηγεί σε λάθος. Η L1
μπορεί να περιέχει το aa, η L2 το b και η L3 το c, όμως η L δεν περιέχει το aabc, αφού
ο αριθμός των b πρέπει να είναι ίσος με το άθροισμα των a και c.
Υπάρχει όμως μια σχετικά εύκολη λύση. Η συμβολοσειρά ai bj ck , όπου j = i + k μπορεί
να γραφεί
ai bi+k ck = ai bi bk ck

Παράδειγμα 7.5

Άρα η L είναι η συνένωση των L1 , L2 , όπου
L1 = fai bi j i ¸ 0g

L2 = fbk ck j k ¸ 0g

,
Όμως έχουμε ήδη γραμματικές γι αυτές τις γλώσσες. Η L1 παράγεται με τους κανόνες
A ! aAb j ²
και η L2 με τους κανόνες
C ! bCc j ²
Εισάγοντας μια νέα μεταβλητή S και συνενώνοντας τις αρχικές μεταβλητές των L1 , L2
παίρνουμε τους κανόνες για την L = L1 L2 :
S ! AC
A ! aAb j ²
C ! bCc j ²
Για παράδειγμα η συμβολοσειρά abbbcc = (ab)(b2 c2 ) μπορεί να παραχθεί ως εξής:
S ) AC ) aAbC ) abC ) abbCc ) abbbCcc ) abbbcc

7.6
Αποδείξτε, χρησιμοποιώντας το Θεώρημα 7.2, ότι κάθε κανονική γλώσσα μπορεί να
παραχθεί από μια γραμματική ΑΣ.

ΑΣΚΗΣΕΙΣ
7.1 Δώστε μια γραμματική ΑΣ για τη γλώσσα όλων των παλινδρομικών συμβολοσειρών περιττού μήκους στο fa; bg¤ .
7.2 Βρείτε γραμματικές ΑΣ για τις ακόλουθες γλώσσες:
α) fai bj ck j i = j + kg

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

158

Γλώσσες Ανεξάρτητες Συμφραζόμενων

= i + kg
β) fai bj ck j j 6
γ) fai bj ck j i = j ή i = kg
δ) fai bj j i ∙ j ∙ 2ig
ε) fai bj ck dl j i + j = k + l ή i > lg
στ) Το συμπλήρωμα της fan bn j 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 bA

A ! aS j bAA j a

B ! bS j aBB j b

Δείξτε ότι η L(G) είναι η γλώσσα όλων των συμβολοσειρών x 2 fa; bg+

που έχουν ίσο αριθμό από a και b.

7.7 Βρείτε τη γλώσσα που παράγεται από τη γραμματική με τους ακόλουθους
κανόνες:
S ! aA j bC

A ! aS j bB

B ! aC j bA

C ! aB j bS j ²

7.8 Μια γραμματική ονομάζεται αριστερά κανονική, αν κάθε κανόνας έχει μια
από τις μορφές
A ! a, A ! Ba, A ! ²
όπου A; B μεταβλητές και a στοιχείο του αλφάβητου. Δείξτε ότι μια γλώσσα
L είναι κανονική, αν και μόνο αν υπάρχει μια αριστερά κανονική γραμματική
G ώστε L = L(G).

Σύνοψη

159

7.9 Δώστε γραμματικές για τις γλώσσες που παράγονται από τις παρακάτω εκφράσεις μετατρέποντας τα αντίστοιχα μη ντετερμινιστικά αυτόματα σε γραμματικές.
α) (a + b)¤ aba(a + b)¤
β) (01)¤ 1(10 + 1)¤
7.10 Δείξτε ότι οι ακόλουθες γραμματικές είναι διφορούμενες. Έπειτα βρείτε
ισοδύναμες γραμματικές που δεν είναι.
α) S ! ABA,

A ! aA j ²,

β) S ! A j B,

A ! aAb j ab,

B ! bB j ²
B ! aBb j ²

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

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης
Άσκηση 7.1 Θέλουμε να δώσουμε μια γραμματική ΑΣ για τη γλώσσα όλων των
μη παλινδρομικών συμβολοσειρών. Στις ασκήσεις αυτού του είδους προσπαθούμε
πρώτα να βρούμε κάποια ιδιότητα που χαρακτηρίζει τις συμβολοσειρές της γλώσσας.
Έτσι, μια συμβολοσειρά x δε θα είναι παλινδρομική, αν καθώς συγκρίνουμε σύμβο,
λα από τα δύο άκρα, κάποια στιγμή δύο απ αυτά είναι διαφορετικά. Αρχικά λοιπόν
θα έχουμε τους κανόνες
S ! 0S0 j 1S1 j A

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.

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

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
) AbAAA
¢¢¢
) Ab ¢ ¢ ¢ bAAA
) ab ¢ ¢ ¢ baAA

Κανόνας A ! AAA
Κανόνας A ! Ab
Εφαρμογή A ! Ab, πολλές φορές
Εφαρμογή A ! a, δύο φορές

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 0V3
V2 ! 1V4
V3 ! 0V4
V4 ! 0V4 j V1 j ²
Ο κανόνας V4 ! ² υπάρχει, γιατί η V4 αντιστοιχεί σε μια τελική κατάσταση,

ενώ ο κανόνας V4 ! V1 , γιατί υπάρχει μια ²-μετάβαση από την κατάσταση 4
στην κατάσταση 1. Η γραμματική αυτή δεν είναι κανονική λόγω της ύπαρξης του
παραπάνω κανόνα. Αν όμως εξαλείψουμε την ²-μετάβαση τότε αυτή μετατρέπεται
σε κανονική.
Δουλεύοντας ανάλογα, η γραμματική G4 δίνεται από τους παρακάτω κανόνες:
V1 ! 0V2 j 0V3 j ²
V2 ! 1V1 j V4
V3 ! 1V4
V4 ! 0V4 j 1V4
Αν μετατρέψατε σωστά τα αυτόματα σε γραμματικές, σας αξίζουν συγχαρητήρια.
Αν δεν τα καταφέρατε, θυμηθείτε τα εξής δύο βασικά σημεία: α) Αν ±(p; a) = q
είναι μια μετάβαση στο αυτόματο, τότε στη γραμματική εμφανίζεται ο κανόνας
p ! aq. β) Αν f είναι μια τελική κατάσταση, τότε εμφανίζεται ο κανόνας f ! ².
Άσκηση 7.5 Στην απόδειξη του Θεωρήματος 7.2 κάναμε την υπόθεση ότι τα

σύνολα V1 και V2 δεν περιέχουν κοινές μεταβλητές. Θα δώσουμε ένα παράδειγμα
= Â.
που να δείχνει ότι το θεώρημα δεν ισχύει αν V1 \ V2 6
Θεωρήστε τις γραμματικές με κανόνες

S1 ! AB, A ! a, B ! b
S2 ! BC, B ! d, C ! c

και

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

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

164

Γλώσσες Ανεξάρτητες Συμφραζόμενων

Κ Ε Φ Α Λ Α Ι Ο

ΑΥΤΟΜΑΤΑ ΣΤΟΙΒΑΣ

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

Προσδοκώμενα Αποτελέσματα
Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε:
,
² ν αναφέρετε τα βασικά χαρακτηριστικά ενός ΑΣ και να περιγράψετε τη διαδικασία αναγνώρισης μιας συμβολοσειράς,

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

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

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

² να εξηγήσετε γιατί οι δύο τύποι αναγνώρισης είναι ισοδύναμοι,

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

165

166

Αυτόματα Στοίβας

Έννοιες-κλειδιά
² Αυτόματα Στοίβας (ΑΣ)
² Σωρός
² Συνάρτηση μετάβασης και στιγμιαία περιγραφή ενός ΑΣ
² Αναγνώριση με τελική κατάσταση ή άδειο σωρό
² Γλώσσες που γίνονται δεκτές από τα ΑΣ
² Ντετερμινιστικά ΑΣ
² Ισοδυναμία αυτόματων στοίβας και γραμματικών ανεξάρτητων συμφραζόμενων

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

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

Επειδή όμως

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

Εισαγωγή

167

,
Η λύση είναι να εξοπλίσουμε το αυτόματο με πρόσθετη μνήμη. Για ν αναγνωρίζονται όμως γλώσσες όπως η L = f0n 1n j n ¸ 0g η μηχανή θα πρέπει να
\θυμάται" μεγάλα ποσά πληροφορίας, άρα η μνήμη αυτή θα πρέπει να είναι
άπειρη. Θα δούμε τώρα ποια μορφή πρέπει να έχει αυτή η μνήμη με τη χρήση
ενός παραδείγματος.
8.1
Έστω η γλώσσα των παλινδρομικών συμβολοσειρών των οποίων το μήκος είναι ζυγός
αριθμός,
L = fyy R j y 2 fa; bg¤ g:
Για να ελέγξουμε αν μια συμβολοσειρά x ανήκει στην L, μια μηχανή M θα πρέπει να
θυμάται όλο το πρώτο μισό ώστε να μπορεί να το συγκρίνει με το δεύτερο μισό. Κάθε
φορά που διαβάζεται ένα σύμβολο τοποθετείται στη μνήμη ώστε να συγκριθεί με το
αντίστοιχο σύμβολο από το δεύτερο μισό.
Θεωρήστε για παράδειγμα τη συμβολοσειρά x = abaaba. Το τέταρτο σύμβολο θα πρέπει
να συγκριθεί με το τρίτο, το πέμπτο με το δεύτερο, το έκτο με το πρώτο. Αυτό δείχνει
ότι, καθώς διαβάζουμε τα σύμβολα της x από αριστερά προς τα δεξιά (πρώτο, δεύτερο,
τρίτο, . . . ), αυτά θα πρέπει να τοποθετούνται στη μνήμη και να γίνονται αντικείμενο
,
επεξεργασίας με την αντίστροφη σειρά (. . . , τρίτο, δεύτερο, πρώτο). Μ άλλα λόγια το
τελευταίο μέσα θα πρέπει να είναι το πρώτο έξω. Αυτή η μέθοδος οργάνωσης της μνήμης
λέγεται στοίβα ή σωρός, γιατί τα δεδομένα που αποθηκεύονται στη μνήμη υπακούουν
στον παραπάνω κανόνα.
,
Ίσως η οργάνωση αυτή της μνήμης γίνει πιο αντιληπτή μ ένα παράδειγμα από την
καθημερινή μας ζωή. Φανταστείτε ότι πλένετε μια σειρά από βρώμικα πιάτα ώστε κάθε
πλυμένο πιάτο τοποθετείται πάνω στο προηγούμενο δημιουργώντας έτσι ένα σωρό ή μια
,
στοίβα από πιάτα. Όταν θελήσετε να χρησιμοποιήσετε κάποιο απ αυτά για να φάτε
θα διαλέξετε φυσικά το πιάτο που είναι στην κορυφή. Οποιαδήποτε άλλη επιλογή ίσως
οδηγήσει σε δυσάρεστα αποτελέσματα. Άρα το τελευταίο πιάτο που πλύθηκε (ή μπήκε
στο σωρό) είναι το πρώτο που χρησιμοποιείται. Για το λόγο αυτό και η παραπάνω μέθοδος
οργάνωσης της μνήμης λέγεται σωρός. Κάθε σύμβολο που διαβάζεται μπαίνει απλά στην
κορυφή του σωρού ώστε το τελευταίο σύμβολο που θα μπει να είναι το πρώτο που θα
χρησιμοποιηθεί.

Από το παράδειγμα φαίνεται ότι η μηχανή μας αποτελείται από ένα πεπερασμένο
σύνολο καταστάσεων Q και έναν άπειρο σωρό που λειτουργεί ως μνήμη. Το
σύνολο Q έχει τρεις καταστάσεις, q0 , q1 και q2 . Όταν η μηχανή βρίσκεται στην
κατάσταση q0 , τότε κάθε σύμβολο που διαβάζει τοποθετείται στο σωρό. Στην
κατάσταση q1 κάθε σύμβολο εισόδου συγκρίνεται με το σύμβολο στην κορυφή του
σωρού. Αν ταιριάζουν, αυτό αφαιρείται από το σωρό και η μηχανή διαβάζει το
επόμενο σύμβολο εισόδου. Αν δεν ταιριάζουν, τότε η μηχανή δεν πρόκειται ποτέ
να αναγνωρίσει τη συμβολοσειρά. Τέλος, αφού έχει διαβαστεί και ταιριαστεί και
το τελευταίο σύμβολο, τότε η μηχανή μεταβαίνει στην κατάσταση q2 , η οποία είναι

Παράδειγμα 8.1

Στοίβα

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 των

Εισαγωγή

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. Συνάρτηση μετάβασης αυτόματου για τη γλώσσα L = fxxR jx 2 §¤ g
Αριθμός
Κίνησης
1
2
3
4
5
6
7
8
9

Κατάσταση

Σύμβολο
Εισόδου

q0
q0
q0
q0
q0
q0
q1
q1
q1
(Οι υπόλοιποι

Σύμβολο
Σωρού

a
Z0
b
Z0
a
Z
b
Z
²
Z0
²
Z
a
a
b
b
²
Z0
συνδυασμοί)

Κινήσεις
(q0 ; aZ0 )
(q0 ; bZ0 )
(q0 ; aZ)
(q0 ; bZ)
(q1 ; Z0 )
(q1 ; Z)
(q1 ; ²)
(q1 ; ²)
(q2 ; Z0 )

Επεξηγήσεις

Z=aήb
Z=aήb
Z=aήb

(Τίποτα)

Παράδειγμα 8.1
(συνέχεια)

170

Αυτόματα Στοίβας

Ίσως η λειτουργία της μηχανής γίνει ακόμη περισσότερο κατανοητή αν την
\τρέξουμε" με κάποια είσοδο. Ο πίνακας που ακολουθεί δείχνει βήμα προς βήμα
τη λειτουργία της μηχανής για τη συμβολοσειρά x = abba.

Αριθμός
Κίνησης

Επόμενη
Κατάσταση

1
4
6
8
8
9

q0
q0
q0
q1
q1
q1
q2

Συμβολοσειρά
Σωρός
που Απομένει
abba
bba
ba
ba
a
¡
¡

Z0
aZ0
baZ0
baZ0
aZ0
Z0
Z0

Επεξηγήσεις
Αρχικοποίηση

Μέση συμβολοσειράς

Αναγνώριση

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

Επόμενη
Κατάσταση

Συμβολοσειρά
Σωρός
που Απομένει

1
4
6
8

q0
q0
q0
q1
q1

abbb
Z0
bbb
aZ0
bb
baZ0
bb
baZ0
b
aZ0
\Πάγωμα" μηχανής

Επεξηγήσεις
Αρχικοποίηση

Μέση συμβολοσειράς

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

Δώστε ένα αυτόματο στοίβας για τη γλώσσα
L = fan b2n j n ¸ 0g.

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

Ορισμοί

171

8.1
Ένα αυτόματο στοίβας ή σωρού (θα γράφουμε ΑΣ), είναι μια 7-άδα (Q; §; ¡; q0 ; Z0 ; ±; F ),
όπου Q είναι ένα πεπερασμένο σύνολο καταστάσεων, § και ¡ είναι αντίστοιχα τα
αλφάβητα των συμβόλων εισόδου και σωρού, q0 2 Q είναι η αρχική κατάσταση, Z0 2 ¡
είναι το αρχικό σύμβολο του σωρού,

Ορισμός 8.1

± : Q £ (§ [ ²) £ ¡ ! (πεπερασμένα υποσύνολα του) Q £ ¡¤
είναι η συνάρτηση μετάβασης και F µ Q είναι το σύνολο των τελικών καταστάσεων.

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=")

172

Αυτόματα Στοίβας

8.3
Ορισμός 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 με τελική κατάσταση και άδειο σωρό.

Στην πρώτη περίπτωση, υπάρχει μια ακολουθία κινήσεων που οδηγεί το αυτόματο M από την αρχική ΣΠ (q0 ; x; Z0 ) σε μια όπου η κατάσταση του M είναι
,
τελική και όλα τα σύμβολα του x έχουν διαβαστεί. Σ αυτή την περίπτωση τα
περιεχόμενα του σωρού δε μας ενδιαφέρουν. Αντίθετα, στη δεύτερη επικεντρώνουμε την προσοχή μας στο σωρό. Αν διαβάζοντας το τελευταίο σύμβολο, ο σωρός
δεν περιέχει τίποτα, τότε η συμβολοσειρά ανήκει στη γλώσσα ανεξάρτητα από την
,
κατάσταση που καταλήγει το M . Σ αυτή την περίπτωση το σύνολο F μπορεί να
είναι κενό.
Ο λόγος για τον οποίο ορίζουμε την αναγνώριση με άδειο σωρό είναι γιατί
,
θέλουμε να ξέρουμε αν τα αυτόματα αναγνωρίζουν περισσότερες γλώσσες μ αυτό
τον τρόπο. Το βιβλίο αυτό ασχολείται με τη μελέτη μοντέλων αναγνώρισης γλωσσών, είναι λοιπόν σημαντικό να γνωρίζουμε αν οι δύο τύποι αναγνώρισης είναι
ισοδύναμοι, κάτι που ίσως ήδη φανταστήκατε ότι ισχύει.
8.3
Άσκηση
Αυτοαξιολόγησης
8.3

Δώστε ένα αυτόματο στοίβας που αναγνωρίζει με άδειο σωρό τη γλώσσα L του
Παραδείγματος 8.1.

Ανεξάρτητα από το είδος αναγνώρισης, όταν λέμε ότι μια συμβολοσειρά γίνεται
δεκτή εννοούμε ότι υπάρχει κάποια ακολουθία κινήσεων που οδηγεί το αυτόματο
από την αρχική σε μια τελική περιγραφή. Εφόσον η μηχανή δρα μη ντετερμινιστικά
σημαίνει ότι σε πολλές περιπτώσεις μπορεί να \μαντέψει" λάθος και να μην
αναγνωρίσει τη συμβολοσειρά. Εκείνο όμως που πρέπει να θυμόμαστε είναι ότι
αν σε κάθε βήμα μαντέψει σωστά, τότε η συμβολοσειρά θα γίνει δεκτή. Θα δούμε
τώρα ότι οι δύο τύποι αναγνώρισης είναι ισοδύναμοι.
Θεώρημα 8.1. Μια γλώσσα L αναγνωρίζεται με τελική κατάσταση από ένα
αυτόματο στοίβας M , αν και μόνο αν αναγνωρίζεται με άδειο σωρό από ένα
αυτόματο στοίβας M 0 .

Ορισμοί

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 ; qe g


¡0 = ¡ [ f?g, όπου ? 2

Η συνάρτηση μετάβασης ± 0 ορίζεται ως εξής:
Αριθμός
Κίνησης

Κατάσταση

Σύμβολο
Εισόδου

Σύμβολο
Σωρού

Κινήσεις

Επεξηγήσεις

q00

²

Z0

(q0 ; Z0 ?)

Τοποθέτηση ?

(qe ; Z)
(qe ; ²)

Για κάθε f 2 F
και Z 2 ¡0

(Οι υπόλοιπες κινήσεις όπως στο M )
f
qe

²
²

Z
Z

Με την πρώτη κίνηση το 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 με την προσθήκη κάποιων συμβόλων

174

Αυτόματα Στοίβας
κάτω από το ®. Δηλαδή, αν
(q; x; ®) j=¤M 0 (p; y; ¯)
τότε επίσης θα ισχύει και
(q; x; ®°) j=¤M 0 (p; y; ¯°)
για κάποιο ° 2 ¡¤ . Η απόδειξη αυτή αφήνεται στην Άσκηση 8.2. Θα έχουμε
λοιπόν
(q00 ; x; Z0 )

j=M 0
j=¤M 0
j=M 0
j=¤M 0

(q0 ; x; Z0 ?)
(f; ²; ®?)
(qe ; ²; ®?)
(qe ; ²; ²)

Πρώτη κίνηση
Παραπάνω παρατήρηση
Μετάβαση στην 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 §. Οι παρατηρήσεις αυτές οδηγούν

στον ακόλουθο ορισμό:

Ισοδυναμία με Γραμματικές ΑΣ

175

8.4
Ένα αυτόματο στοίβας M = (Q; §; ¡; q0 ; Z0 ; ±; F ) είναι ντετερμινιστικό αν ισχύουν τα
παρακάτω:

Ορισμός 8.4

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) = Â.

Αν και, όπως είδαμε στο Κεφάλαιο 5, τα μη ντετερμινιστικά αυτόματα είναι
,
ισοδύναμα με τα ντετερμινιστικά, δεν ισχύει το ίδιο και με τ αυτόματα στοίβας.
Τα μη ντετερμινιστικά αποδεικνύονται ισχυρότερα των ντετερμινιστικών. Έτσι, η
γλώσσα του Παραδείγματος 8.1 δεν μπορεί να γίνει δεκτή από ένα ντετερμινιστικό
αυτόματο στοίβας.
8.4
Σχεδιάστε ένα ντετερμινιστικό αυτόματο στοίβας που αναγνωρίζει τη γλώσσα L = fx 2
f0; 1g¤ j ο αριθμός των 0 στη x είναι ίσος με τον αριθμό των 1g.

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

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

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

χρησιμοποιεί το σωρό του για να εξομοιώσει μια αριστερή παραγωγή του x από τη
G. Οι κινήσεις του λοιπόν θα είναι δύο ειδών:
1. Να ταιριάζει το σύμβολο του σωρού με το σύμβολο εισόδου και να το αφαιρεί
από το σωρό, αν δεν είναι μεταβλητή.
2. Να αντικαθιστά μια μεταβλητή A στο σωρό με το δεξιό μέρος ®, αν A ! ®
είναι ένας κανόνας της G.
Ειδικά, το δεύτερο είδος κίνησης απαιτεί το αυτόματο να μαντεύει το σωστό δεξιό
μέρος του κανόνα που χρησιμοποιήθηκε για την παραγωγή της x και για το λόγο
αυτό χρειάζεται να είναι μη ντετερμινιστικό.

Εξομοίωση
παραγωγών

176

Αυτόματα Στοίβας
Θεώρημα 8.2. Κάθε γλώσσα ανεξάρτητη συμφραζόμενων αναγνωρίζεται από
ένα αυτόματο στοίβας.
Απόδειξη: Έστω G = (V; §; S; R) μια γραμματική ΑΣ. Το αυτόματο M =
(Q; §; ¡; q0 ; Z0 ; ±; F ), που εξομοιώνει τη G, δίνεται από τα παρακάτω:
Q = fq0 ; q1 ; f g

¡ = V [ § [ fZ0 g, όπου Z0 6
2V [§
F = ff g

Η συνάρτηση μετάβασης ± ορίζεται ως εξής:
Αριθμός
Κίνησης

Κατάσταση

Σύμβολο
Εισόδου

Σύμβολο
Σωρού

Κινήσεις

Επεξηγήσεις

0

q0

²

Z0

(q1 ; SZ0 )

1

q1

a

a

(q1 ; ²)

Τοποθέτηση S.
Ταίριασμα συμβόλων,
για κάθε a 2 §.

2

q1

²

A

(q1 ; ®)

3

q1

²

Z0

(f; Z0 )

Αντικατάσταση A με ®,
για κάθε κανόνα A ! ®.

Πρώτα θα δείξουμε ότι 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
πρώτα βήματα θα έχουν παράγει κάποια συμβολοσειρά της μορφής x1 A°,
όπου η x1 αποτελείται μόνο από τελικά σύμβολα, A 2 V και ° 2 (V [ §)¤ .
Από την επαγωγική υπόθεση θα ισχύει λοιπόν
(q0 ; x1 ; Z0 ) j=¤ (q1 ; ²; A°Z0 )

(8.1)

Ισοδυναμία με Γραμματικές ΑΣ

177

,
Για να προκύψει η x® στο βήμα k + 1, θα πρέπει ν αντικατασταθεί η
μεταβλητή A με τη χρήση κάποιου κανόνα της μορφής A ! x2 ¯, όπου
x2 2 §¤ και ¯ 2 (V [ §)¤ , αφού η παραγωγή είναι αριστερή. Θα έχουμε
λοιπόν
¤
S ) x1 A° ) x1 x2 ¯° = x®
από το οποίο προκύπτει ότι x = x1 x2 και ® = ¯°. Ισοδύναμα, το αυτόματο
με είσοδο x = x1 x2 θα εκτελέσει τις κινήσεις
(q0 ; x; Z0 ) =
j=¤
j=
j=¤
=

(q0 ; x1 x2 ; Z0 )
(q1 ; x2 ; A°Z0 )
(q1 ; x2 ; x2 ¯°Z0 )
(q1 ; ²; ¯°Z0 )
(q1 ; ²; ®Z0 )

Από την Σχέση (8.1)
Κίνηση τύπου 2, αφού A ! x2 ¯
Κινήσεις τύπου 1, ταίριασμα συμβόλων
Αφού ® = ¯°

από τις οποίες προκύπτει η αλήθεια του επαγωγικού βήματος. Παρατηρήστε
ότι στην προηγούμενη ακολουθία κινήσεων χρησιμοποιήσαμε χωρίς απόδειξη
το παρακάτω αποτέλεσμα:
αν (q0 ; x1 ; Z0 ) j=¤ (q1 ; ²; A°Z0 ), τότε (q0 ; x1 x2 ; 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°.

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
Παράδειγμα 8.2

Θεωρήστε τη γραμματική G = (fSg; f0; 1g; S; fS ! 0S1 j ²g), η οποία παράγει τη
γλώσσα L = f0n 1n j n ¸ 0g. Εφαρμόζοντας τις ιδέες του Θεωρήματος 8.2 παίρνουμε το
αυτόματο M = (fq0 ; q1 ; f g; §; ¡; q0 ; Z0 ; ±; ff g), όπου § = f0; 1g, ¡ = fS; Z0 ; 0; 1g και
± όπως παρακάτω:
Αριθμός
Κίνησης

Κατάσταση

0
1.1
1.2
2.1
2.2
3

Σύμβολο
Εισόδου

q0
q1
q1
q1
q1
q1
(Οι υπόλοιποι

Σύμβολο
Σωρού

²
Z0
0
0
1
1
²
S
²
S
²
Z0
συνδυασμοί)

Κινήσεις

Επεξηγήσεις

(q1 ; SZ0 )
(q1 ; ²)
(q1 ; ²)
(q1 ; 0S1)
(q1 ; ²)
(f; Z0 )

Ταίριασμα 0
Ταίριασμα 1
S ! 0S1
S!²
(Τίποτα)

Οι κινήσεις του αυτόματου καθώς αναγνωρίζει τη συμβολοσειρά x = 0011 φαίνονται
στον ακόλουθο πίνακα. Κάθε κίνηση στην οποία μια μεταβλητή αντικαθίσταται από
,
μια συμβολοσειρά στο σωρό αντιστοιχεί σ ένα βήμα μιας αριστερής παραγωγής της
γραμματικής. Τα βήματα αυτά φαίνονται στη στήλη \Παραγωγή".
Αριθμός
Κίνησης

Επόμενη
Κατάσταση

Συμβολοσειρά
που Απομένει

Σωρός

0
2.1
1.1
2.1
1.1
2.2
1.2
1.2
3

q0
q1
q1
q1
q1
q1
q1
q1
q1
f

0011
0011
0011
011
011
11
11
1
¡
¡

Z0
SZ0
0S1Z0
S1Z0
0S11Z0
S11Z0
11Z0
1Z0
Z0
Z0

Παραγωγή

S
) 0S1
) 00S11
) 0011

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

Ισοδυναμία με Γραμματικές ΑΣ

179

πρώτο μέρος είδαμε ότι, αν μια γραμματική G έχει παράγει μια συμβολοσειρά x®,
τότε το ισοδύναμο αυτόματο M έχει διαβάσει το x και στο σωρό του υπάρχει το ®.
Τώρα θα απαιτήσουμε το αντίστροφο: η συμβολοσειρά x που έχει διαβαστεί μέχρι
κάποια στιγμή από το M θα είναι το αρχικό τμήμα μιας αριστερής παραγωγής της
G, ενώ ότι απομένει στο σωρό θα αντιστοιχεί στο υπόλοιπο της παραγωγής. Άρα, τα
,
περιεχόμενα του σωρού θα πρέπει ν αντιστοιχούν σε μεταβλητές της γραμματικής.
Με μια μικρή λεπτομέρεια όμως. Οι μεταβλητές θα πρέπει να τροποποιηθούν ώστε
να λαμβάνουν υπόψη τους και τις καταστάσεις του αυτόματου. Θα τους δώσουμε
λοιπόν τη μορφή
[p; Z; q]
ώστε να αντιστοιχούν σε μια ακολουθία κινήσεων που οδηγούν το αυτόματο από
την κατάσταση p στην κατάσταση q έχοντας σαν αποτέλεσμα την απομάκρυνση
του Z από το σωρό. Τι γίνεται όμως στην περίπτωση όπου το αυτόματο διαβάζει
το σύμβολο a, μεταβαίνει από την κατάσταση p στην q1 και αντικαθιστά το Z στο
,
σωρό με Z1 Z2 ¢ ¢ ¢ 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 ; Z1 Z2 ¢ ¢ ¢ Zn ). Αν όμως η κίνηση απλά

βγάζει το σύμβολο Z από το σωρό, τότε η γραμματική θα περιέχει τον κανόνα
[p; Z; q] ! a

,
Για ν απλοποιήσουμε τη συζήτηση θα θεωρήσουμε ότι το αυτόματο αναγνωρίζει
τη συμβολοσειρά με άδειο σωρό, αφού σύμφωνα με το Θεώρημα 8.1 κάτι τέτοιο
είναι δυνατό. Πώς θα αρχίζει λοιπόν μια παραγωγή της G; Γνωρίζουμε ότι q0 είναι
,
η αρχική κατάσταση του αυτόματου. Εφόσον σκοπός μας είναι τελικά ν αφαιρεθεί
το αρχικό σύμβολο Z0 από το σωρό (αναγνώριση με άδειο σωρό), αν S είναι η
αρχική μεταβλητή της G, τότε στη γραμματική θα πρέπει να υπάρχει ο κανόνας
S ! [q0 ; Z0 ; q]

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 ; Z1 Z2 ¢ ¢ ¢ 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 2
¤
Q. Αλλά τότε επίσης [q0 ; Z0 ; q] ) x. Εφόσον όμως S ! [q0 ; Z0 ; q] είναι
¤
κανόνας της G, συμπεραίνουμε ότι S ) x ή x 2 L(G). Αντίστροφα, αν x 2
¤
L(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 στο σωρό με

Ισοδυναμία με Γραμματικές ΑΣ

181

μια συμβολοσειρά Z1 Z2 ¢ ¢ ¢ Zm , για κάποια Zi 2 ¡. Έτσι, η ±(p; a; Z) θα
περιέχει την (q1 ; Z1 Z2 ¢ ¢ ¢ Zm ) και η πρώτη κίνηση του αυτόματου θα έχει
τη μορφή
(p; x; Z) = (p; ay; Z) j= (q1 ; y; Z1 Z2 ¢ ¢ ¢ 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 = y1 y2 ¢ ¢ ¢ 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] ) ay1 y2 ¢ ¢ ¢ 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 και
Z1 Z2 ¢ ¢ ¢ Zm 2 ¡, έτσι ώστε η ±(q; a; Z) περιέχει την (q1 ; Z1 Z2 ¢ ¢ ¢ Zm ).
Εφόσον όμως η γραμματική παράγει τη x, κάθε [qi ; Zi ; qi+1 ] θα παράγει
κάποια συμβολοσειρά xi , ώστε να ισχύει x = ax1 x2 ¢ ¢ ¢ xm . Εφαρμόζοντας
την επαγωγική υπόθεση θα έχουμε για κάθε 1 ∙ i ∙ m
(qi ; xi ; Zi ) j=¤ (qi+1 ; ²; ²)

182

Αυτόματα Στοίβας
ενώ από το πρώτο βήμα
(q; x; Z) = (q; ax1 x2 ¢ ¢ ¢ xm ; Z) j= (q1 ; x1 x2 ¢ ¢ ¢ xm ; Z1 Z2 ¢ ¢ ¢ Zm )
Από εκεί το αυτόματο με μια ακολουθία βημάτων μπορεί να περάσει διαδοχικά
στις περιγραφές (q2 ; x2 ¢ ¢ ¢ xm ; Z2 ¢ ¢ ¢ Zm ), : : :, (qm ; xm ; Zm ) και τελικά στην
(q; ²; ²), οπότε προκύπτει το ζητούμενο.

8.3
Παράδειγμα 8.3

Έστω M = (fq0 ; q1 g; f0; 1g; fa; Z0 g; q0 ; Z0 ; ±; Â) το αυτόματο στοίβας όπου η ± ορίζεται
όπως παρακάτω:
Αριθμός
Κίνησης
1
2
3
4
5
6

Κατάσταση

Σύμβολο
Εισόδου

q0
q0
q0
q0
q1
q1
(Οι υπόλοιποι

Σύμβολο
Σωρού

1
Z0
1
a
0
a
²
Z0
1
a
0
Z0
συνδυασμοί)

Κινήσεις

Επεξηγήσεις

(q0 ; aZ0 )
(q0 ; aa)
(q1 ; a)
(q0 ; ²)
(q1 ; ²)
(q0 ; Z0 )
(Τίποτα)

Θα περιγράψουμε μια γραμματική 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 ]

Ασκήσεις

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 ]
[q0 ; Z0 ; q0 ] ! 1[q0 ; a; q1 ][q1 ; Z0 ; q0 ]
[q0 ; a; q1 ] ! 0[q1 ; a; q1 ]

[q1 ; Z0 ; q0 ] ! 0[q0 ; Z0 ; q0 ]
[q0 ; Z0 ; q0 ] ! ²
[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 .

184

Αυτόματα Στοίβας

8.4 Έστω § = fa; bg.

Δώστε ντετερμινιστικά αυτόματα για τις παρακάτω

γλώσσες:

α) fx 2 §¤ j o αριθμός των a είναι ίσος με τον αριθμό των b στη xg.
β) fx 2 §¤ j o αριθμός των a είναι μεγαλύτερος από τον αριθμό των b στη

xg.

γ) fxcxR j x 2 §¤ g.
δ) L(G), όπου G = (fV g; §; S; R) και R = fS ! SS j [S] j ²g.
8.5 Έστω L μια γλώσσα, η οποία περιέχει δύο συμβολοσειρές x; y, x 6
= 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 , L1 L2 και L¤1 .
8.10 Κατασκευάστε αυτόματα ισοδύναμα με τις γραμματικές:
α) S ! SS j aSb j ab.
β) S ! SS j [S] j ².
Στη συνέχεια \τρέξτε" τα αυτόματά σας για κάποια συμβολοσειρά της γραμματικής, όπως κάναμε στο Παράδειγμα 8.2.
8.11 Δώστε μια ισοδύναμη γραμματική για το παρακάτω αυτόματο στοίβας:

Σύνοψη

185

Αριθμός
Κίνησης
1
2
3
4
5
6

Κατάσταση

Σύμβολο
Εισόδου

q0
q0
q0
q1
q1
q1
(Οι υπόλοιποι

Σύμβολο
Σωρού

0
Z0
0
a
1
a
1
a
²
a
²
Z0
συνδυασμοί)

Κινήσεις

Επεξηγήσεις

(q0 ; aZ0 )
(q0 ; aa)
(q1 ; ²)
(q1 ; ²)
(q1 ; ²)
(q1 ; ²)
(Τίποτα)

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

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης
Άσκηση 8.1 Ο πίνακας μετάβασης ενός αυτόματου M για την L = fan b2n j n ¸ 0g

φαίνεται στη συνέχεια.

186

Αυτόματα Στοίβας

Αριθμός
Κίνησης

Κατάσταση

1
2
3
4
5

Σύμβολο
Εισόδου

q0
q1
q1
q2
q2
(Οι υπόλοιποι

Σύμβολο
Σωρού

a
Z0
a
a
b
a
b
a
²
Z0
συνδυασμοί)

Κινήσεις

Επεξηγήσεις

(q1 ; aaZ0 )
(q1 ; aaa)
(q2 ; ²)
(q2 ; ²)
(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 φαίνεται στη συνέχεια:

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

Αριθμός
Κίνησης
1
2
3
4
5
6
7

Κατάσταση

187

Σύμβολο
Εισόδου

q0
q0
q1
q1
q1
q1
q1
(Οι υπόλοιποι

Σύμβολο
Σωρού

0
Z0
1
Z0
0
0
1
1
0
1
1
0
²
Z0
συνδυασμοί)

Κινήσεις

Επεξηγήσεις

(q1 ; 0Z0 )
(q1 ; 1Z0 )
(q1 ; 00)
(q1 ; 11)
(q1 ; ²)
(q1 ; ²)
(q0 ; Z0 )
(Τίποτα)

Η q0 είναι η αρχική καθώς επίσης και η μόνη τελική κατάσταση. Το αυτόματο
αρχικά σπρώχνει το πρώτο σύμβολο στο σωρό (Κινήσεις 1-2) και στη συνέχεια
μεταβαίνει στην κατάσταση q1 . Από την q1 ένα σύμβολο σπρώχνεται στο σωρό, αν
ταιριάζει με το σύμβολο του σωρού (Κινήσεις 3-4), αλλιώς και τα δύο απομακρύνονται αν είναι διαφορετικά (Κινήσεις 5-6). Μια ακολουθία από 0 στο σωρό σημαίνει
περίσσευμα από 0, αλλιώς περίσσευμα από 1. Αν ο αριθμός των 0 είναι ίσος με
τον αριθμό των 1, ο σωρός είναι άδειος και το αυτόματο μεταβαίνει ξανά στην
κατάσταση q0 (Κίνηση 7).

ΛΕΞΙΛΟΓΙΟ ΑΓΓΛΙΚΩΝ ΟΡΩΝ
Στοίβα ή Σωρός Stack
Αυτόματο Στοίβας Pushdown automaton
Στιγμιαία Περιγραφή Instantaneous description
Παραγωγή Production

188

Αυτόματα Στοίβας

Κ Ε Φ Α Λ Α Ι Ο

ΓΛΩΣΣΕΣ ΟΧΙ ΑΝΕΞΑΡΤΗΤΕΣ
ΣΥΜΦΡΑΖΟΜΕΝΩΝ
Σκοπός
Στο κεφάλαιο αυτό θα αναπτύξουμε ένα Λήμμα Άντλησης για γλώσσες ανεξάρτητες
συμφραζόμενων. Θα χρησιμοποιήσουμε το λήμμα αυτό για να αποδείξουμε ότι
συγκεκριμένες γλώσσες δεν μπορεί να είναι ΑΣ, για να δούμε πότε μια γλώσσα ΑΣ
παράγει μια συγκεκριμένη συμβολοσειρά, αλλά και αν μια γλώσσα είναι πεπερασμένη
ή άπειρη.

Προσδοκώμενα Αποτελέσματα
Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:
² αναφέρετε τι είναι το Λήμμα Άντλησης και πως χρησιμοποιείται,
² αναφέρετε τι είδους περιοδικότητα πρέπει να υπάρχει σε μια γραμματική για
την εφαρμογή του λήμματος,

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

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

² εξηγήσετε πώς χρησιμοποιείται το Λήμμα Άντλησης για να δώσουμε απάντηση
στο ερώτημα αν μια γλώσσα ΑΣ είναι πεπερασμένη ή όχι,
189

190

Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

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

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

Έννοιες-κλειδιά
² Γλώσσες όχι ανεξάρτητες συμφραζόμενων
² Συντακτικά δέντρα ή δέντρα παραγωγής
² Λήμμα Άντλησης

² Κλειστότητα ως προς τομή και συμπλήρωμα
² Τομή με κανονική γλώσσα

² Αλγόριθμοι και προβλήματα απόφασης

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

9.1 Το Λήμμα Άντλησης για Γραμματικές
Στο Κεφάλαιο 6 αναπτύξαμε μια μέθοδο για να αποδεικνύουμε τη μη κανονικότητα
μιας γλώσσας, το λεγόμενο Λήμμα Άντλησης. Στην απόδειξη του λήμματος αυτού
χρησιμοποιήσαμε δύο παρατηρήσεις: πρώτον, ότι κάθε κανονική γλώσσα μπορεί
να αναγνωριστεί από κάποιο πεπερασμένο αυτόματο, και δεύτερον, ότι μια άπειρη
κανονική γλώσσα εμφανίζει μια περιοδικότητα, η οποία οφείλεται στο γεγονός
ότι κάθε αρκετά μεγάλη συμβολοσειρά της αναγκάζει το αντίστοιχο αυτόματο να
επισκεφτεί κάποια από τις καταστάσεις του περισσότερες από μια φορές (Θεώρημα

Το Λήμμα Άντλησης για Γραμματικές

191

6.1). Έτσι, κάθε τέτοια συμβολοσειρά z μπορεί να γραφεί στη μορφή z = uvw,
για κάποια u; v; w 2 §¤ , jvj > 0, ώστε όλες οι συμβολοσειρές της μορφής uvi w
να μπορούν να γίνουν δεκτές από το αυτόματο.

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

Άντληση δύο
συμβολοσειρών

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

¤

¤

S ) uAy ) uvAxy ) uvwxy
¤

¤

όπου u; v; w; x; y 2 §¤ . Από τα παραπάνω προκύπτει ότι A ) vAx και A ) w.
Άρα μπορούμε να γράψουμε
¤

¤

¤

A ) vAx ) v 2 Ax2 ) v3 Ax3 ¢ ¢ ¢
και να συμπεράνουμε ότι όλες οι συμβολοσειρές uwy, uvwxy, uv2 wx2 y, : : :
ανήκουν στην 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.

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

Συντακτικά
δέντρα

192

Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

S

S

+

S

x

S

*

x

S

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 παιδιά, καθένα από τα οποία είναι ρίζα ενός υποδέντρου ύψους

Το Λήμμα Άντλησης για Γραμματικές

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 και
uv i wxi y 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 που
ικανοποιούν τις συνθήκες του θεωρήματος. Τότε εύκολα προκύπτει ότι όλες
οι συμβολοσειρές της μορφής uv i wxi y ανήκουν στην 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. Προσέξτε τώρα ότι και το

194

Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

S

A

A

u

v

w

x

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 να μην ισχύει uv i wxi y 2 L . Ο λόγος

είναι ότι το θεώρημα πρέπει να ισχύει για κάθε z. Αν λοιπόν δεν ισχύει για το
συγκεκριμένο z, τότε θα έχουμε πέσει σε αντίφαση. Και πώς μπορεί να γίνει αυτό;
2 L (το θεώρημα πάλι πρέπει να ισχύει
Αν υπάρχει κάποιο i, για το οποίο uv i wxi y 6
για κάθε i).

Ένα ακόμη σημείο που πρέπει να προσέξουμε είναι το εξής: από τη στιγμή που
έχουμε επιλέξει το z, δεν μπορούμε να διαλέξουμε τον τρόπο που σχηματίζονται τα
,
u; v; w; x και y. Οποιαδήποτε επιλογή απ αυτά πρέπει να οδηγεί σε μια αντίφαση.

Το Λήμμα Άντλησης για Γραμματικές

195

Ο λόγος ξανά είναι ότι το θεώρημα δεν αναφέρεται σε συγκεκριμένα u; v; w; x; y.
,
Ας δούμε μ ένα παράδειγμα πώς εφαρμόζονται οι παραπάνω ιδέες.
9.1
Έστω L = f0k 1k 2k j k ¸ 0g. Ο διαισθητικός λόγος, για τον οποίο η γλώσσα αυτή δεν
είναι ΑΣ είναι γιατί ένας σωρός επαρκεί για να συγκρίνει τον αριθμό των 0 με τον αριθμό
των 1, αλλά δε μπορεί να χρησιμοποιηθεί για να συγκρίνει αυτά με τον αριθμό των 2. Ας
χρησιμοποιήσουμε λοιπόν το Λήμμα Άντλησης για να αποδείξουμε τη διαίσθησή μας.
Αρχικά υποθέτουμε ότι η L είναι ανεξάρτητη συμφραζόμενων και έστω n ο αριθμός του
Θεωρήματος 9.1. Θα πρέπει να δείξουμε ότι, οποιοδήποτε και αν είναι το n, υπάρχει
κάποιο z μήκους μεγαλύτερου του n που οδηγεί σε αντίφαση. Ας είναι z = 0n 1n 2n .
Τότε υπάρχουν συμβολοσειρές u; v; w; x; y, ώστε z = uvwxy, για τις οποίες ισχύουν τα
συμπεράσματα του θεωρήματος. Αν και δεν μπορούμε να επιλέξουμε τη μορφή τους,
γνωρίζουμε ότι jvwxj ∙ n, τα v και x δεν μπορεί να είναι και τα δύο κενά και το
uv i wxi y ανήκει στην L για κάθε i ¸ 0. Εφόσον το μήκος του vwx δεν ξεπερνάει το n,
συμπεραίνουμε ότι το vwx θα περιέχει το πολύ δύο (ίσως και ένα) από τα τρία σύμβολα
0; 1; 2. Όμως, όποια και να είναι η περίπτωση, τα v και x δεν μπορεί να είναι και τα
δύο κενά, άρα το vx θα περιέχει τουλάχιστον ένα σύμβολο. Μα τότε η συμβολοσειρά
uv 2 wx2 y περιέχει επιπρόσθετες εμφανίσεις των συμβόλων που υπάρχουν στα v και x και
συνεπώς δεν μπορεί να περιέχει ίσο αριθμό και από τα τρία σύμβολα. Άρα uv 2 wx2 y 6
2 L.
Εφόσον καταλήξαμε σε άτοπο συμπεραίνουμε ότι η γλώσσα δεν είναι ΑΣ.

Παράδειγμα 9.1

9.1
Θεωρήστε τη γλώσσα L = fx 2 f0; 1; 2g¤ j ο αριθμός των 0 στη x είναι μικρότερος
από τον αριθμό των 1 και μικρότερος από τον αριθμό των 2g. Δείξτε ότι η L δεν είναι
ανεξάρτητη συμφραζόμενων.

Τα παραπάνω παραδείγματα θα μας βοηθήσουν να δούμε ότι οι γλώσσες ανεξάρτητες συμφραζόμενων είναι πιο πολύπλοκες από τις κανονικές για έναν ακόμη λόγο:
η τομή και το συμπλήρωμά τους δεν είναι απαραίτητα ανεξάρτητες συμφραζόμενων.
Θεώρημα 9.2. Οι γλώσσες ανεξάρτητες συμφραζόμενων δεν είναι κλειστές
ως προς τις πράξεις της τομής και του συμπληρώματος.
Απόδειξη: Εκείνο που πρέπει να κάνουμε είναι να βρούμε δύο γλώσσες L1
και L2 , οι οποίες είναι ΑΣ έτσι ώστε, αν πάρουμε την τομή τους L = L1 \L2 ,
τότε η L δεν είναι ΑΣ.
Εφόσον ήδη γνωρίζουμε ότι η γλώσσα f0n 1n 2n j n ¸ 0g δεν είναι ΑΣ, αρκεί
να βρούμε δύο γλώσσες ΑΣ L1 και L2 τέτοιες ώστε L1 \L2 = f0n 1n 2n j n ¸
0g. Αυτό όμως είναι εύκολο. Ας είναι L1 = f0n 1n 2m j n; m ¸ 0g και
L2 = f0m 1n 2n j n; m ¸ 0g, οι οποίες είναι ΑΣ. Είναι προφανές ότι η τομή
των δύο γλωσσών αποτελείται από εκείνες τις συμβολοσειρές που έχουν τον
ίδιο αριθμό από 0, 1 και 2 άρα δε μπορεί να είναι ΑΣ.

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

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 £ Q2
F = F1 £ F2
Για κάθε p 2 Q1 , q 2 Q2 , a 2 § και Z 2 ¡, η συνάρτηση μετάβασης ±
ορίζεται ως παρακάτω:
±([p; q]; a; Z) = f([p0 ; q 0 ]; ®)j αν η ±1 (p; a; Z) περιέχει το (p0 ; a) και ±2 (q; a) = q 0 g
±([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; ®)."

Αλγόριθμοι Απόφασης

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 2
fa; 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. Μόνο αν το

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 ! ®1 A®2 , όπου
®1 ; ®2 2 (V [ §)¤ , προσθέστε τον B ! ®1 ®2 στο σύνολο των κανόνων.

2. Εξαλείψτε τον A ! ² από τη γραμματική, εκτός αν A = S.
3. Επαναλάβετε τα βήματα 1 και 2 μέχρι να μη μπορούν να προστεθούν άλλοι
κανόνες στη G.
Η διαδικασία αυτή θα τελειώσει κάποια στιγμή, αφού το δεξιό μέρος κάθε
νέου κανόνα είναι μικρότερο από το δεξιό μέρος του αρχικού κανόνα. Επίσης, η
γλώσσα που παράγεται παραμένει η ίδια γιατί κάθε χρήση ενός κανόνα A ! ² σε

μια παραγωγή γίνεται για να αντικαταστήσει κάποιο A που έχει προκύψει από έναν

Αλγόριθμοι Απόφασης

199

,
άλλο κανόνα B ! ®1 A®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. Αλλά τότε uv 0 wx0 y = uwy είναι μια μικρότερη συμβολοσειρά
που ανήκει στην L, δηλαδή έχουμε μια αντίφαση. Άρα jzj < n.
Παρόμοια, αν η L(G) είναι άπειρη, τότε θα υπάρχει κάποια συμβολοσειρά
,
z 2 L(G) με n ∙ jzj < 2n. Όμως και αυτή η απόδειξη είναι ανάλογη μ αυτή

Μοναδιαίοι
κανόνες

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 = fai bj ai bj j i; j ¸ 0g δεν είναι ΑΣ.
9.4 Έχοντας αποδείξει ότι η γλώσσα της προηγούμενης άσκησης δεν είναι ΑΣ,
πώς θα χρησιμοποιούσατε το Θεώρημα 9.3 για να δείξετε ότι η γλώσσα
= fxxj x 2 fa; bg¤ g δεν είναι ΑΣ;
9.5 Χρησιμοποιώντας το Λήμμα Άντλησης δείξτε ότι οι παρακάτω γλώσσες δεν
είναι ανεξάρτητες συμφραζόμενων.
α) fai bj ck j i < j < kg.
β) fap j όπου p πρώτος αριθμός g.
γ) fai bj j j = i2 g.

Ασκήσεις

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.
στ) Το συμπλήρωμα της fan bn j 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¡1 ban bj 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. Δείξτε ότι κάθε γλώσσα ανεξάρτητη συμφραζόμενων (η οποία δεν περιέχει ²) μπορεί να παραχθεί από μια γραμματική στην
οποία όλοι οι κανόνες έχουν τη μορφή A ! ¾ ή A ! BC, όπου ¾ 2 § και
A; B; C μεταβλητές.

Μορφή
Chomsky

202

Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

9.14 Πώς αλλάζει η σταθερά n στην απόδειξη του Λήμματος Άντλησης, αν η
γραμματική είναι σε μορφή Chomsky;
9.15 Τροποποιήστε τις παρακάτω γραμματικές έτσι ώστε να μην περιέχουν κανόνες
της μορφής A ! ² ή A ! B παρά μόνο τον κανόνα S ! ², αν είναι
απαραίτητο.

α) S ! ABA
β) S ! AB j ²

A ! aA j ²

B ! bB 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 ;
=j ήi6
= kg είναι ΑΣ. Στη συνέχεια
9.19 Δείξτε ότι η γλώσσα L = fai bj ck j i 6
δείξτε ότι το συμπλήρωμά της δεν είναι.

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

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης
Άσκηση 9.1 Θα χρησιμοποιήσουμε το Λήμμα Άντλησης για να δείξουμε ότι η
γλώσσα L = fx 2 f0; 1; 2g¤ j ο αριθμός των 0 στη x είναι μικρότερος από τον

αριθμό των 1 και μικρότερος από τον αριθμό των 2g δεν είναι ΑΣ.

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

Διαισθητικά ο λόγος για τον οποίο η γλώσσα αυτή δεν είναι ΑΣ είναι γιατί ο
σωρός ενός αυτόματου στοίβας θα επέτρεπε τη σύγκριση των 0 με τα 1 ή των 0 με
τα 2, αλλά όχι και των δύο ταυτοχρόνως. Ας υποθέσουμε λοιπόν ότι η γλώσσα είναι
ΑΣ και έστω n ο αριθμός του Λήμματος Άντλησης. Επιλέγουμε z = 0n 1n+1 2n+1 ,
το οποίο ανήκει στην L. Εφόσον jzj > n, θα ισχύουν τα συμπεράσματα του

Θεωρήματος 9.1. Άρα z = uvwxy, jvxj > 0, jvwxj ∙ n και uvi wxi y 2 L, για
κάθε i ¸ 0.

Διακρίνουμε τώρα δύο περιπτώσεις: Αν το v ή το x περιέχουν τουλάχιστον

ένα 0, τότε λόγω του περιορισμού jvwxj ∙ n δεν μπορούν να περιέχουν κανένα 2.

Άρα η συμβολοσειρά uv 2 wx2 y θα περιέχει περισσότερα 0 από 2 και δεν μπορεί
να ανήκει στην L.
Αντίθετα, αν τα v και x δεν περιέχουν 0, θα περιέχουν μόνο 1 ή 2. Αλλά τότε
η συμβολοσειρά uv 0 wx0 y θα περιέχει περισσότερα 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

203

204

Γλώσσες όχι Ανεξάρτητες Συμφραζόμενων

Κ Ε Φ Α Λ Α Ι Ο

ΣΥΝΤΑΚΤΙΚΗ ΑΝΑΛΥΣΗ

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

Προσδοκώμενα Αποτελέσματα
Όταν θα έχετε μελετήσει αυτό το κεφάλαιο θα μπορείτε να:
² αναφέρετε τι είναι συντακτική ανάλυση και πώς σχετίζεται με την κατασκευή
συντακτικών δέντρων,

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

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

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

206

Συντακτική Ανάλυση

Έννοιες-κλειδιά
² Συντακτική ανάλυση

² Είδη συντακτικής ανάλυσης

² Μετατροπή ενός αυτόματου στοίβας σε συντακτικό αναλυτή

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

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

10.1 Ανάλυση από πάνω προς τα κάτω
Είδαμε πόσο σημαντικό είναι να γνωρίζουμε την ακολουθία των κανόνων σύμφωνα
με την οποία παράγεται μια συμβολοσειρά από μια γραμματική. Για παράδειγμα,
η έκφραση x + x ¤ y μπορεί να ερμηνευθεί ως x + (x ¤ y) ή ως (x + x) ¤ y ανάλογα
με την παραγωγή από την οποία έχει προκύψει. Φυσικά η γραμματική θα πρέπει

να μην είναι διφορούμενη, αλλά όπως αναφέραμε στο Κεφάλαιο 7 αυτό δεν είναι
πάντα δυνατό.
Η διαδικασία σύμφωνα με την οποία κάποιος προσπαθεί να ανακατασκευάσει
Συντακτική
ανάλυση

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

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

207

δεν εξαντλούν φυσικά τη θεωρία αλλά αποτελούν τη βάση για την κατασκευή
αποτελεσματικών συντακτικών αναλυτών.
,
Θα ξεκινήσουμε τη συζήτηση μ ένα παράδειγμα. Θεωρήστε τη γλώσσα L =
f0n 1n j n ¸ 0g, η οποία παράγεται από τη γραμματική με κανόνες S ! 0S1 και
S ! ². Δεν είναι δύσκολο να κατασκευάσουμε ένα ντετερμινιστικό αυτόματο

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

Κατασκευή
Αναλυτών

μινιστικό αυτόματο χρησιμοποιώντας τις ιδέες του Θεωρήματος 8.2. Στη συνέχεια
θα δώσουμε τους γενικούς κανόνες μετατροπής ενός τέτοιου αυτόματου σε ντετερμινιστικό. Θα είναι όμως πιο εύκολο να θεωρήσουμε ότι κάθε συμβολοσειρά της L
τελειώνει σε $ ή με άλλα λόγια ότι η γλώσσα προς αναγνώριση είναι η L0 = L$. Η
αντίστοιχη γραμματική τώρα δίνεται από τους κανόνες S ! T $ και T ! 0T 1 j ².

\L0 = L$"

Εφαρμόζοντας την κατασκευή του Θεωρήματος 8.2 παίρνουμε το αυτόματο
M = (fp; q; f g; §; ¡; p; Z0 ; ±; ff g), όπου § = f0; 1; $g, ¡ = fS; T; Z0 g και η

συνάρτηση μετάβασης ± ορίζεται όπως παρακάτω:
Αριθμός
Κίνησης
0
1
2
3
4
5
6
7

Κατάσταση

Σύμβολο
Εισόδου

p
q
q
q
q
q
q
q
(Οι υπόλοιποι

Σύμβολο
Σωρού

²
Z0
²
S
0
0
1
1
²
T
²
T
$
$
²
Z0
συνδυασμοί)

Κινήσεις

Επεξηγήσεις

(q; SZ0 )
(q; T $)
(q; ²)
(q; ²)
(q; 0T 1)
(q; ²)
(q; ²)
(f; Z0 )

S ! T$
Ταίριασμα 0
Ταίριασμα 1
T ! 0T 1
T !²
Ταίριασμα $
(Τίποτα)

Το παραπάνω αυτόματο μιμείται τις αριστερές παραγωγές της γραμματικής,
αφού κάθε μεταβλητή στην κορυφή του σωρού αντικαθίσταται από το δεξιό μέρος
του αντίστοιχου κανόνα. Το μόνο που πρέπει να κάνουμε τώρα είναι να εξοπλίσουμε
το αυτόματο με δυνατότητα παραγωγής μηνυμάτων. Έτσι, όταν αυτό χρησιμοποιεί
μια από τις κινήσεις 1, 4 και 5, θα μπορεί να μας ειδοποιεί για τον αντίστοιχο κανόνα
της γραμματικής (δείτε ξανά το Παράδειγμα 8.2, καθώς το αυτόματο αναγνωρίζει
τη συμβολοσειρά 0011). Τέτοια αυτόματα με δυνατότητες εξόδου είναι ουσιαστικά
οι συντακτικοί αναλυτές. Προσέξτε τώρα ότι ο αναλυτής αυτός δουλεύει από πάνω
προς τα κάτω: κάθε μεταβλητή που αφαιρείται από το σωρό αντιστοιχεί στην
κορυφή ενός υποδέντρου του οποίου τα παιδιά σχηματίζουν το δεξιό μέρος του
αντίστοιχου κανόνα. Αυτή η διαδικασία συνεχίζεται αναδρομικά με τα παιδιά του
κόμβου, με αποτέλεσμα το δέντρο να κτίζεται από πάνω προς τα κάτω.

Ανάλυση από
\πάνω προς
τα κάτω"

208

Συντακτική Ανάλυση

Όμως το παραπάνω αυτόματο δεν πληρεί όλες τις προϋποθέσεις που πρέπει να
έχει ένας συντακτικός αναλυτής. Αν προσέξετε καλύτερα θα δείτε ότι το M δεν
είναι ντετερμινιστικό, αφού, όταν στην κορυφή του σωρού είναι το T , το αυτόματο
θα πρέπει να μαντέψει ποιες από τις δύο κινήσεις 4 και 5 να χρησιμοποιήσει. Η
κίνηση 4 αντικαθιστά το T με 0T 1, το οποίο είναι σωστό αν το επόμενο σύμβολο
εισόδου είναι το 0, ενώ σε οποιαδήποτε άλλη περίπτωση θα πρέπει να αφαιρεθεί το
Πρόβλεψη
συμβόλων

T από το σωρό. Φαίνεται λοιπόν ότι μπορούμε να εξαλείψουμε το μη ντετερμινισμό
κοιτώντας \μπροστά" ένα σύμβολο, χρησιμοποιώντας δηλαδή το επόμενο σύμβολο
εισόδου για να εντοπίσουμε τη σωστή κίνηση. Έτσι, αν το σύμβολο εισόδου είναι
0, το αυτόματο θα πρέπει να αντικαταστήσει το T με 0T 1, ενώ αν το σύμβολο
είναι 1, θα πρέπει να αφαιρέσει το T από το σωρό. Ο τρόπος με τον οποίο το
M καταφέρνει να προβλέπει τη σωστή κίνηση είναι ενσωματώνοντας το επόμενο
σύμβολο σε μια από τις καταστάσεις του.
Αριθμός
Κίνησης
0
1
2
2.1
3
3.1
4
5
6
7

Κατάσταση

Σύμβολο
Εισόδου

p
q
q
q0
q
q1
q0
q1
q
q1
(Οι υπόλοιποι

Σύμβολο
Σωρού

²
Z0
²
S
0
²
²
0
1
²
1
²
²
T
²
T
$
$
²
Z0
συνδυασμοί)

Κινήσεις

Επεξηγήσεις

(q; SZ0 )
(q; T $)
(q0 ; ²)
(q; ²)
(q1 ; ²)
(q; ²)
(q0 ; 0T 1)
(q1 ; ²)
(q; ²)
(f; Z0 )

S ! T$
Πρόβλεψη
Ταίριασμα
Πρόβλεψη
Ταίριασμα
T ! 0T 1
T !²
Ταίριασμα

0
0
1
1

$

(Τίποτα)

Από την κατάσταση q το αυτόματο διαβάζει ένα σύμβολο (0 ή 1) και μπαίνει σε
μια από τις νέες καταστάσεις q0 ; q1 (κινήσεις 2 και 3). Από αυτές τις καταστάσεις
ξέρει ότι θα πρέπει να ταιριάξει αντίστοιχα το 0 ή 1 στην κορυφή του σωρού
(κινήσεις 2:1 και 3:1). Αν όμως στην κορυφή βρίσκεται το σύμβολο T , τότε από
την πρώτη κατάσταση θα σπρώξει το 0T 1 στο σωρό (κίνηση 4), ενώ από τη δεύτερη
Πρόβλεψη ενός
συμβόλου

απλά θα αφαιρέσει το T (κίνηση 5). Άρα το αυτόματο είναι ντετερμινιστικό και
,
αντιστοιχεί σ έναν αναλυτή από πάνω προς τα κάτω με πρόβλεψη ενός συμβόλου.
Δυστυχώς, η παραπάνω ιδέα δεν μπορεί να εφαρμοστεί σε όλα τα αυτόματα που
προκύπτουν από τη εφαρμογή του Θεωρήματος 8.2. Ο λόγος είναι ότι υπάρχουν
γλώσσες που γίνονται δεκτές από μη ντετερμινιστικά αυτόματα αλλά από κανένα
ντετερμινιστικό. Έτσι, δεν μπορούν να προκύψουν σωστοί αναλυτές ακόμα και αν
χρησιμοποιήσουμε πρόβλεψη περισσότερων συμβόλων. Υπάρχουν όμως περιπτώσεις στις οποίες το αυτόματο μπορεί να γίνει ντετερμινιστικό, αν η γραμματική

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

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 bX
X!Sj²

για τους οποίους μπορεί εύκολα να προκύψει ένας ντετερμινιστικός αναλυτής
χρησιμοποιώντας πρόβλεψη ενός συμβόλου. Η παραπάνω μέθοδος εξάλειψης του
μη ντετερμινισμού ονομάζεται αριστερή παραγοντοποίηση και μπορεί να περιγραφεί
όπως παρακάτω:
Αριστερή Παραγοντοποίηση:
Όταν σε μια γραμματική υπάρχουν οι κανόνες A ! ®¯ και A !
®°, όπου ® 6
= ², τότε εισάγουμε μια νέα μεταβλητή A0 και τους

αντικαθιστούμε με τους κανόνες A ! ®A0 και A0 ! ¯ j °.

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

210

Συντακτική Ανάλυση

γραμματικής. Θεωρήστε τη γραμματική που παράγει ένα υποσύνολο των σωστών
αλγεβρικών εκφράσεων:
S !S +T
S!T

T !T ¤x

T !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 ! ¯i A0 , A0 ! ®i A0 και A0 ! ², για κάθε i όπως

παραπάνω.

Ας προσπαθήσουμε να εφαρμόσουμε τις παραπάνω ιδέες για να εξαλείψουμε
την αριστερή αναδρομή από τους κανόνες S ! S + T j T . Εδώ το ρόλο του ®

παίζει η συμβολοσειρά +T και του ¯ η T . Εισάγοντας λοιπόν μια νέα μεταβλητή
S 0 παίρνουμε τους κανόνες

S ! T S0

S 0 ! +T S 0
S0 ! ²

Αντίστοιχα για τους κανόνες T ! T ¤ x j x παίρνουμε τις ισοδύναμες εκφράσεις
T ! xT 0

T 0 ! ¤xT 0
T0 ! ²

Έτσι η γραμματική μετατρέπεται σε μια ισοδύναμη, η οποία δεν περιέχει
αριστερή αναδρομή και επομένως μπορεί να αναγνωριστεί από ένα ντετερμινιστικό

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

211

αυτόματο με πρόβλεψη ενός συμβόλου. Γραμματικές σαν την παραπάνω, που
προκύπτουν με εξάλειψη της αναδρομής και πιθανώς αριστερή παραγοντοποίηση,
ονομάζονται LL(1), γιατί μπορούν να παράγουν αποτελεσματικούς αναλυτές με
πρόβλεψη ενός συμβόλου. Αν απαιτούνται k ¸ 1 σύμβολα για τη σωστή αναγνώρισή τους, τότε ονομάζονται LL(k).
10.1
Για την ακόλουθη γραμματική, βρείτε μια ισοδύναμη LL(1) γραμματική.
S ! aAb j aAA j aB j bbA
A ! aAb j ab
B ! bBa j ba

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

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

Ανάλυση από
\κάτω προς
τα πάνω"

αριστερό μέρος του κανόνα). Η λειτουργία αυτή επιτυγχάνεται με δύο τύπους
κινήσεων: τη \μετακίνηση" των συμβόλων εισόδου στο σωρό μέχρι να σχηματιστεί
το δεξιό μέρος κάποιου κανόνα και την \αναγωγή" αυτής της ακολουθίας συμβόλων,
δηλαδή την αντικατάστασή της από τη μεταβλητή στο αριστερό μέρος του κανόνα.
Επειδή όμως στο τέλος κάθε αναγωγής η μεταβλητή στην κορυφή του σωρού είναι
η δεξιότερη της παραγόμενης συμβολοσειράς, η παραγωγή που εξομοιώνεται είναι
μια δεξιά παραγωγή. Ένα τέτοιο αυτόματο με τους δύο αυτούς τύπους κινήσεων
ονομάζεται αναλυτής μετακίνησης-αναγωγής και μπορεί να σχηματιστεί για κάθε
γραμματική με τρόπο ανάλογο του Θεωρήματος 8.2.
Θεώρημα 10.1. Κάθε γλώσσα ανεξάρτητη συμφραζόμενων μπορεί να αναγνωριστεί από ένα αυτόματο στοίβας που λειτουργεί από \κάτω προς τα πάνω".
Απόδειξη: Έστω G = (V; §; S; R) μια γραμματική ΑΣ. Το αυτόματο M =
(Q; §; ¡; q0 ; Z0 ; ±; F ) που εξομοιώνει τη G δίνεται από τα παρακάτω:
Q = fp; f g

¡ = V [ § [ fZ0 g, όπου Z0 6
2V [§
F = ff g

Μετακίνηση,
Αναγωγή

212

Συντακτική Ανάλυση
Η συνάρτηση μετάβασης ± ορίζεται ως εξής:

Αριθμός
Κίνησης

Κατάσταση

Σύμβολο
Εισόδου

Σύμβολα
Σωρού

Κινήσεις

1

p

a

²

(p; a)

2

p

²

®R

(p; A)

3

p

²

S

(f; ²)

Επεξηγήσεις
Μετακίνηση συμβόλων,
για κάθε a 2 §.

Αναγωγή ®R με A, για
κάθε κανόνα A ! ®.
Τελική κίνηση

Οι κινήσεις τύπου 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; ®R Z0 ) j=¤ (p; ²; SZ0 )."
Παρατηρήστε ότι θέτοντας ® = ², η x παράγεται από τη γραμματική, αν και
μόνο αν (p; x; Z0 ) j=¤ (p; ²; SZ0 ) j= (f; ²; Z0 ), δηλαδή αν και μόνο αν η x
γίνεται δεκτή από το αυτόματο. Άρα οι δύο γλώσσες είναι ίδιες.

Ας εφαρμόσουμε τώρα τις παραπάνω ιδέες για να κατασκευάσουμε ένα μη
ντετερμινιστικό αναλυτή για τη γραμματική που ακολουθεί:

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

213

S ! E$

E !E +T
E!T

T !T ¤x
T !x

Αριθμός
Κίνησης
1
2
3
4
5
6
7

Κατάσταση

Σύμβολο
Εισόδου

p
p
p
p
p
p
p
(Οι υπόλοιποι

Σύμβολα
Σωρού

a
²
²
$E
²
T +E
²
T
²
x¤T
²
x
²
S
συνδυασμοί)

Κινήσεις
(p; a)
(p; S)
(p; E)
(p; E)
(p; T )
(p; T )
(f; ²)

Επεξηγήσεις
Μετακίνηση a 2 fx; +; ¤; $g
Αναγωγή S ! E$
Αναγωγή E ! E + T
Αναγωγή E ! T
Αναγωγή T ! T ¤ x
Αναγωγή T ! x
(Τίποτα)

Παρατηρήστε ότι η κίνηση 3, η οποία αφαιρεί το T + E από το σωρό και το
αντικαθιστά με E μπορεί να εξομοιωθεί από την παρακάτω ακολουθία κινήσεων:
Αριθμός
Κίνησης

Κατάσταση

Σύμβολο
Εισόδου

Σύμβολο
Σωρού

Κινήσεις

3.1
3.2
3.3

p
pT
p+

²
²
²

T
+
E

(pT ; ²)
(p+ ; ²)
(p; E)

Επεξηγήσεις
Αφαίρεση T
Αφαίρεση +
Αφαίρεση E και αναγωγή

Το παραπάνω αυτόματο όμως δεν είναι ντετερμινιστικό για δύο κυρίως λόγους.
Ο πρώτος λόγος είναι ότι δεν είναι ξεκάθαρο πότε πρέπει να γίνει η μετακίνηση
ενός συμβόλου στο σωρό και πότε η αναγωγή μιας συμβολοσειράς στην κορυφή
του σωρού. Για παράδειγμα, αν T είναι το σύμβολο στο σωρό, αυτό μπορεί να
είναι το T στο δεξιό μέρος του κανόνα T ! T ¤ x, οπότε η μετακίνηση είναι η

σωστή κίνηση, ή να είναι το T στον κανόνα S ! S + T , οπότε η αναγωγή είναι
απαραίτητη. Ο δεύτερος λόγος είναι ότι ακόμη και στην περίπτωση που ξέρουμε ότι

πρέπει να ανάγουμε μπορεί να υπάρχουν περισσότερες από μια δυνατές αναγωγές,
όπως στην περίπτωση των κανόνων T ! T ¤ x και T ! x των οποίων τα δεξιά
τους μέρη τελειώνουν σε x. Είναι όμως αρκετό κάθε φορά να επιλέγουμε τη
μεγαλύτερη συμβολοσειρά στην κορυφή του σωρού που ταιριάζει στο δεξιό μέρος
κάποιου κανόνα της γραμματικής. Άρα στην παραπάνω περίπτωση θα πρέπει να
χρησιμοποιήσουμε τον πρώτο κανόνα και να ανάγουμε το T + x στο T .
Θα δούμε τώρα πώς να επιλέγουμε μεταξύ μετακίνησης ενός συμβόλου στο
σωρό ή αναγωγής κάποιας συμβολοσειράς στο σωρό. Έστω ότι στην κορυφή

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
2

3
4

Κατάσταση

Σύμβολο
Εισόδου

Κινήσεις

p
p

Μετακίνηση Συμβόλων
a
Z
(p; aZ)
a
T
(p; aT )

p
p$

Αναγωγή S ! E$
²
$
(p$ ; ²)
²
E
(p; S)
Αναγωγή T ! T ¤ x ή T ! x
²
x
(px;1 ; ²)
²
(px;2 ; ²)
¤
²
T
(p; T )
²
Z
(p; T Z)

5
6
7
8

p
px;1
px;2
px;1

9
10
11
12

Αναγωγή E ! E + T
p
pT;a;1
pT;a;2
pT;a;1

13

Σύμβολο
Σωρού

Επεξηγήσεις

a 2 §, Z 2 fZ0 ; E; +; ¤g
a6
2 f+; $g

T !T ¤x
T ! x, Z 6

ή E ! T και μετακίνηση συμβόλου a 2 f+; $g
a
T
(pT;a;1 ; ²)
²
+
(pT;a;2 ; ²)
²
E
(p; aE)
E !E+T
²
Z
(p; T Z)
E ! T, Z 6
=+

Τελική κίνηση
p
²
S
(Οι υπόλοιποι συνδυασμοί)

(f; ²)
(Τίποτα)

Όπως φαίνεται από τους παραπάνω πίνακες τα σύμβολα στο σωρό είναι τεσσάρων ειδών: αυτά που απαιτούν μετακίνηση του επόμενου συμβόλου στο σωρό
(Z0 , E, + και ¤), αυτά που απαιτούν αναγωγή (x, $), αυτά που οδηγούν στην

Ασκήσεις

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)
β) S ! SA j ab

A ! S j A; S

A ! aAbb j ab

10.3 Ολοκληρώστε την απόδειξη του Θεωρήματος 10.1 αποδεικνύοντας τον ακόλουθο ισχυρισμό:
¤

\Αν S ) ®x με μια δεξιά παραγωγή, όπου x 2 §¤ και ® 2
(V [ §)¤ ,
τότε (p; x; ®R Z0 ) j=¤ (p; ²; SZ0 )."

10.4 Αποδείξτε ότι η μέθοδος εξάλειψης της αριστερής αναδρομής είναι σωστή,
δηλαδή έχει σαν αποτέλεσμα τη δημιουργία ισοδύναμων γραμματικών.
10.5 Κατασκευάστε έναν αναλυτή από κάτω προς τα πάνω για τη γλώσσα L$ της
Άσκησης 10.2(α). Μπορείτε να βρείτε τη σχέση προτεραιότητας;
10.6 Η παρακάτω γραμματική είναι επίσης ασθενής γραμματική προτεραιότητας.
Δώστε έναν αναλυτή από κάτω προς τα πάνω για τη γλώσσα L$.
S ! E$

E !E+T jE¡T jT

T ! T ¤ F j T =F j F

F ! (E) j x

Γραμματικές
Προτεραιότητας

216

Συντακτική Ανάλυση

Σύνοψη
Στο κεφάλαιο αυτό παρουσιάσαμε τις δύο βασικές μεθόδους συντακτικής ανάλυσης
κατά τις οποίες ανακαλύπτεται η ακολουθία των κανόνων από τους οποίους παράγεται
μια συμβολοσειρά ή αλλιώς το συντακτικό δέντρο μιας συμβολοσειράς. Στην πρώτη
προσέγγιση το συντακτικό δέντρο χτίζεται από πάνω προς τα κάτω, ενώ στη δεύτερη
από κάτω προς τα πάνω.
Η κατασκευή ενός συντακτικού αναλυτή γίνεται με τη μετατροπή ενός αυτόματου
στοίβας για την αντίστοιχη γλώσσα σε ντετερμινιστικό. Αυτό όμως δεν μπορεί να
γίνει για οποιαδήποτε γλώσσα, γιατί όμως έχουμε μάθει υπάρχουν γλώσσες που δεν
,
μπορούν να γίνουν δεκτές από κανένα ντετερμινιστικό αυτόματο στοίβας. Άρα γι
αυτές δεν μπορούν να υπάρξουν σωστοί αναλυτές. Υπάρχουν όμως περιπτώσεις
στις οποίες το αυτόματο μπορεί να γίνει ντετερμινιστικό, αν εφαρμοστεί αριστερή
παραγοντοποίηση στους κανόνες της γραμματικής και λυθεί το πρόβλημα της αριστερής αναδρομής. Τότε μπορεί να προκύψει ένας σωστός αναλυτής από πάνω προς τα
κάτω.
Στην περίπτωση της ανάλυσης από κάτω προς τα πάνω ο αναλυτής επιτελεί
δύο βασικές λειτουργίες: μετακίνηση συμβόλων στο σωρό και αναγωγή, δηλαδή
αντικατάσταση του δεξιού μέρους κάποιου κανόνα που έχει σχηματιστεί στο σωρό
,
από το αντίστοιχο αριστερό μέρος του κανόνα. Το πρόβλημα σ αυτή την περίπτωση
είναι η επιλογή μεταξύ μετακίνησης και αναγωγής. Ο αναλυτής επιλέγει τη σωστή
κίνηση χρησιμοποιώντας μια σχέση προτεραιότητας R. Αν το σύμβολο στο σωρό
είναι το a και το επόμενο σύμβολο εισόδου είναι b τότε η σωστή κίνηση είναι
η αναγωγή, αν και μόνο αν (a; b) 2 R. Γραμματικές για τις οποίες μπορεί να

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

Απαντήσεις Ασκήσεων Αυτοαξιολόγησης
Άσκηση 10.1 Έστω η ακόλουθη γραμματική
S ! aAb j aAA j aB j bbA
A ! aAb j ab

B ! bBa j ba
Θα τη μετατρέψουμε σε μια ισοδύναμη γραμματική εφαρμόζοντας πρώτα αριστερή
παραγοντοποίηση. Θα ξεκινήσουμε με τον κανόνα S παραγοντοποιώντας το a και
εισάγοντας μια νέα μεταβλητή X. Παίρνουμε λοιπόν
S ! aX j bbA

X ! Ab j AA j B

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

217

Συνεχίζοντας με τη X και παραγοντοποιώντας το A έχουμε τους εξής ισοδύναμους
κανόνες για τη S:
S ! aX j bbA

X ! AY j B
Y !bjA

Προχωρούμε τώρα να διορθώσουμε τους 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

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 Phase
Structure Grammars", in Zeitschrift fur Phonetik Sprachwissenshhaft und Kommunikations-forschung, pp. 143-172, 14, 1961.
N. Chomsky \Three Models for the Description of Languages", in IRE Transactions
on Information Theory, 2, no. 3, (1956), pp. 113-114
N. Chomsky \On Certain Formal Properties of Grammars", in Information and
Control, 2, no. 2, (1959), pp. 137-167.
N. Chomsky \Context Free Grammars and Pushdown Storage", in Quarterly Progress Report, 65, MIT Lab, Cambridge, Mass., (1962), pp. 187-194.
N. Chomsky and G.A. Miller \Finite-state Languages", in Information and Control, 1, (1958), pp. 91-112.
J. Evey \Application of Pushdown Store Machines", in Proceedings of the 1963
Fall Joint Computer Conference, Montreal, AFIPS Press, 1963, 1, pp. 215-217.
Hopcroft, J. E. and J. D. Ullman. Introduction to Automαta, Theory, Languages
and Computation, 2nd Ed., Addison-Wesley, Reading, 1979.
J.D. Ichbiah and S.P. Morse \A Technique for Generating almost Optimal FloydEvans 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, Mc
Graw-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 Proceedings of Symposia in Applied Mathematics, Vol. 12, Providence R.I., American
Mathematical Society, 1961.
M.P. Schutzenberger \On Context Free languages and Pushdown Automata", in
Information and Control, 6, no. 3 (1963), pp. 246-264.
S. Sippu and E. Soisalon-Soininen Parsing Theory, Springer-Verlag, New York,
1987.

Βιβλιογραφία

ΟΔΗΓΟΣ ΠΕΡΑΙΤΕΡΩ ΜΕΛΕΤΗΣ
Τα βιβλία που αναφέρθηκαν στο Μέρος 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).

219

220

Συντακτική Ανάλυση

ΕΠΙΛΟΓΟΣ
ΜΗΧΑΝΕΣ TURING ΚΑΙ
ΥΠΟΛΟΓΙΣΜΟΣ

Στα Μέρη II και III είδαμε ότι ούτε τα πεπερασμένα αυτόματα ούτε τα αυτόματα
στοίβας μπορούν να θεωρηθούν γενικά μοντέλα υπολογισμού, αφού δεν μπορούν
να αναγνωρίσουν απλές γλώσσες όπως την fan bn cn j n ¸ 0g. Τα πεπερασμένα

αυτόματα μπορούν να \θυμούνται" μόνο ένα περιορισμένο ποσό πληροφορίας,
ενώ τα αυτόματα στοίβας μπορούν να επεξεργαστούν την πληροφορία σύμφωνα
με τους κανόνες που καθορίζουν τη δομή του σωρού.
Πενήντα χρόνια πριν, ένας Άγγλος μαθηματικός, ο Alan Turing, προσπάθησε
,
να ορίσει μια μηχανή που ν αποτελεί ένα \μοντέλο υπολογισμού". Το πρότυπό του
ήταν ένας \ανθρώπινος υπολογιστής", δηλαδή ένας άνθρωπος με μολύβι και χαρτί
που προσπαθεί να λύσει ένα πρόβλημα με κάποιο συστηματικό τρόπο. O Turing,
εντοπίζοντας τα στοιχειώδη βήματα που απαιτούσε η διαδικασία της επίλυσης από
τον άνθρωπο, προσπάθησε να ορίσει μια μηχανή που θα ήταν ικανή να λειτουργήσει
με παρόμοιο τρόπο. Ήθελε έτσι να καταλήξει στο συμπέρασμα ότι κάθε αλγοριθμική
,
διαδικασία θα μπορούσε να εκτελεστεί και από μια μηχανή μ ένα βασικό ρεπερτόριο

εντολών.
Οι στοιχειώδεις λειτουργίες ενός υπολογισμού από έναν άνθρωπο σύμφωνα με
τον Turing είναι η εξέταση κάποιου συμβόλου, η αντικατάστασή του με κάποιο
άλλο και η μεταβίβαση της προσοχής σε κάποιο άλλο σημείο του χαρτιού. Όλα
αυτά όμως με την προϋπόθεση ότι η επιλογή μεταξύ αυτών των λειτουργιών
εξαρτάται από το τρέχον σύμβολο και την προηγούμενη κατάσταση στην οποία
είχε περιέλθει ο \ανθρώπινος υπολογιστής".
221

222

Επίλογος

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

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

Κεφάλαιο 1
1.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
1.8 Θα πρέπει a 6
(y) = (y ¡ b)=a.
= 0. Τότε fa;b

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

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 = (sR rR ), (r + s)R = (rR + sR ) και
(r¤ )R = (rR )¤ .

Απαντήσεις Ασκήσεων

Κεφάλαιο 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 Αν ² 6
2 L, το νέο αυτόματο αναγνωρίζει τη γλώσσα L+ .
5.8 Δείτε την Άσκηση 5.11.

225

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 α) Το ai bj ck μπορεί να γραφεί στη μορφή ak+j bj ck = ak aj bj ck .
β, γ) Εκφράστε τις γραμματικές ως ένωση απλούστερων γραμματικών.
δ) Για κάθε a που παράγεται πρέπει να παράγονται ένα ή δύο b.
ε) Αναλύστε τη γλώσσα fai bj ck dl j i + j = k + lg ως ένωση απλούστερων
γλωσσών, όπου i + j = k + l αλλά i = l, i > l ή i < l.

στ) Το συμπλήρωμα της fan bn j n ¸ 0g θα αποτελείται από συμβολοσειρές
που αρχίζουν από b ή περιέχουν κάποιο b που ακολουθείται από a ή έχουν
= j. Όλες αυτές οι γλώσσες μπορούν να εκφραστούν
τη μορφή ai bj , όπου i 6
με γραμματικές.

7.7 Η γλώσσα όλων των συμβολοσειρών στο fa; bg¤ που περιέχουν ζυγό αριθμό
από a και μονό αριθμό από b.

Απαντήσεις Ασκήσεων

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 ²

,
β) Η γλώσσα που παράγεται απ τη γραμματική είναι η fak bk +(ab)k j k ¸ 0g.
,
Η ασάφεια οφείλεται στο γεγονός ότι το ab μπορεί να παραχθεί τόσο απ το
,
A όσο και απ το B. Η παρακάτω γραμματική λύνει αυτό το πρόβλημα και
παράγει την ίδια γλώσσα.
S ! aAb j abB j ab j ²

A ! aAb j ab

B ! 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 Το αυτόματο για το β) φαίνεται παρακάτω:

228

Απαντήσεις Ασκήσεων

Αριθμός
Κίνησης
0
1.1
1.2
2.1
2.2
2.3
3

Κατάσταση

Σύμβολο
Εισόδου

q0
q1
q1
q1
q1
q1
q1
(Οι υπόλοιποι

Σύμβολο
Σωρού

²
Z0
[
[
]
]
²
S
²
S
²
S
²
Z0
συνδυασμοί)

Κινήσεις

Επεξηγήσεις

(q1 ; SZ0 )
(q1 ; ²)
(q1 ; ²)
(q1 ; SS)
(q1 ; [S])
(q1 ; ²)
(f; Z0 )

Ταίριασμα [
Ταίριασμα ]
S ! SS
S ! [S]
S!²
(Τίποτα)

8.11 Η γραμματική αποτελείται από τους παρακάτω κανόνες:
S ! [q0 ; Z0 ; q1 ]

[q0 ; Z0 ; q1 ] ! 0[q0 ; a; q1 ][q1 ; Z0 ; q1 ]
[q1 ; a; q1 ] ! 0[q0 ; a; q1 ][q1 ; a; q1 ]
[q0 ; a; q1 ] ! 1

[q1 ; Z0 ; q1 ] ! ²
[q1 ; a; q1 ] ! ²

[q1 ; 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 Και οι δύο δεν είναι ΑΣ.

ΓΛΩΣΣΑΡΙ ΒΑΣΙΚΩΝ ΟΡΩΝ
Στο παράρτημα αυτό παραθέτουμε ένα γλωσσάρι με τους κυριότερους όρους που
,
εμφανίζονται σ αυτό το βιβλίο.
Μοντέλο Υπολογισμού

,
Η θεωρία του υπολογισμού αρχίζει μ ένα ερώτημα: Ποια είναι η έννοια του

υπολογισμού; Ίσως αυτή δεν είναι μια τόσο έξυπνη ερώτηση, αφού θα μπορούσαμε
,
ν απαντήσουμε ότι υπολογισμός είναι ό,τι κάνει ένας υπολογιστής. Και σχεδόν
όλοι έχουμε δει ή έχουμε ακούσει για τους υπολογιστές. Όμως, οι πραγματικοί
υπολογιστές είναι αρκετά περίπλοκοι για να χτιστεί μια μαθηματική θεωρία πάνω
τους, πόσο μάλλον να δώσει απαντήσεις στα ερωτήματα που προκύπτουν από τη
μελέτη αλγοριθμικών διαδικασιών. Για το λόγο αυτό χρησιμοποιούμε εξιδανικευμένους υπολογιστές, τους οποίους καλούμε μοντέλα υπολογισμού. Ένα τέτοιο μοντέλο,
όπως κάθε μοντέλο, μπορεί να είναι ακριβές και να περιγράφει σωστά ορισμένα
,
φαινόμενα, αλλά όχι όλα. Ανάλογα λοιπόν με τα χαρακτηριστικά που θέλουμε ν
αναλύσουμε χρησιμοποιούμε και διαφορετικά μοντέλα υπολογισμού. Τα πιο απλά
μοντέλα είναι οι μηχανές πεπερασμένων καταστάσεων ή πεπερασμένα αυτόματα και
τα πιο περίπλοκα είναι οι μηχανές Turing.
Πεπερασμένο Αυτόματο
Τα πεπερασμένα αυτόματα αποτελούν καλά μοντέλα για υπολογιστές με πάρα
πολύ περιορισμένη μνήμη. Τέτοιες μηχανές πεπερασμένων καταστάσεων υπάρχουν
παντού γύρω μας. Χαρακτηριστικά παραδείγματα θα μπορούσαν να είναι η συσκευή
που ελέγχει τη λειτουργία ενός ανελκυστήρα, ο θερμοστάτης που ρυθμίζει τη
λειτουργία ενός κλιματιστικού, οι υπολογιστές χεριού, κλπ. Όλες αυτές οι συσκευές
είναι παραδείγματα υπολογιστών με περιορισμένη μνήμη και κύριο τους γνώρισμα
είναι ότι ανάλογα με την είσοδο ή τα σήματα που δέχονται αντιδρούν με το
να μεταβαίνουν σε μια νέα κατάσταση. Οι καταστάσεις αυτές καθορίζουν τη
συμπεριφορά του συστήματος σε νέες εισόδους και είναι πάντοτε πεπερασμένες.
229

230

Γλωσσάρι Βασικών Όρων

Συνάρτηση Μετάβασης Αυτομάτου
Όταν ένα αυτόματο M δεχτεί κάποια είσοδο, τότε αντιδρά μεταβαίνοντας σε
μια νέα κατάσταση. Οι κανόνες σύμφωνα με τους οποίους το αυτόματο επιλέγει
την επόμενη κατάσταση κωδικοποιούνται στη συνάρτηση μετάβασης ±. Έτσι, αν
το M βρίσκεται στην κατάσταση q και διαβάζει το σύμβολο ¾, τότε με ±(q; ¾)
συμβολίζεται η κατάσταση στην οποία περνά το αυτόματο.
Αναγνώριση Γλωσσών
Αν το αυτόματο ξεκινώντας από μια αρχική κατάσταση και διαβάζοντας τα
σύμβολα εισόδου καταλήξει σε μια τελική κατάσταση, τότε λέμε ότι η είσοδος
γίνεται δεκτή ή αναγνωρίζεται από το αυτόματο. Στην αντίθετη περίπτωση θα
λέμε ότι η είσοδος απορρίπτεται. Αν L είναι το σύνολο των εισόδων που γίνονται
δεκτές από το αυτόματο, τότε λέμε ότι το αυτόματο αναγνωρίζει τη γλώσσα L.
Φαίνεται λοιπόν ότι τα αυτόματα δεν είναι παρά συσκευές που χρησιμοποιούνται
για την αποδοχή ή απόρριψη διαφόρων εισόδων. Και είναι ακριβώς αυτή η ιδιότητα
που τα κάνει να έχουν τόσες πολλές εφαρμογές στην καθημερινή μας ζωή.
Κανονικές Εκφράσεις
Στα μαθηματικά, μπορούμε να χρησιμοποιήσουμε τα σύμβολα + και £ για να

φτιάξουμε εκφράσεις, όπως η (4 £ 5) + 10. Με παρόμοιο τρόπο, μπορούμε να

χρησιμοποιήσουμε τις κανονικές πράξεις για να φτιάξουμε εκφράσεις που περιγράφουν γλώσσες. Ενώ όμως η τιμή μιας αριθμητικής έκφρασης είναι ένας αριθμός,
η τιμή μιας κανονικής έκφρασης είναι μια γλώσσα. Ως παράδειγμα θεωρήστε
την έκφραση 1(0 [ 1)¤ 0, η οποία περιγράφει τη γλώσσα των συμβολοσειρών που

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

τελειώνει σε 0 θα μπορούσε να την περιγράψει με μια κανονική έκφραση όπως η
παραπάνω.
Κανονικές Γλώσσες
Μια γλώσσα δεν είναι παρά ένα σύνολο από διαφορετικές ακολουθίες χαρακτήρων, τις λεγόμενες συμβολοσειρές. Όταν μια τέτοια γλώσσα μπορεί να παραχθεί
με εφαρμογή των (κανονικών) πράξεων της ένωσης, συνένωσης και του αστεριού
Kleene, τότε η γλώσσα λέγεται κανονική. Ισοδύναμα, θα μπορούσαμε να πούμε
,
ότι κανονικές είναι γλώσσες που μπορούν ν αναγνωριστούν από πεπερασμένα
αυτόματα, αφού αποδεικνύεται ότι οι δύο ορισμοί ταυτίζονται. Με αυτή την έννοια
γνωρίζουμε ακριβώς τις δυνατότητες των πεπερασμένων αυτομάτων. Αν θέλουμε
,
,
λοιπόν ν αναγνωρίσουμε και πιο πολύπλοκες γλώσσες θα πρέπει ν αυξήσουμε τα
χαρακτηριστικά τους, δηλαδή να περάσουμε σε πιο ισχυρά μοντέλα υπολογισμού.

Γλωσσάρι Βασικών Όρων

231

Μη Ντετερμινισμός
Ένας τρόπος αύξησης των δυνατοτήτων ενός αυτόματου είναι με τη χρήση
μη ντετερμινισμού, ο οποίος σαν έννοια έχει μεγάλη σημασία στη θεωρία του
υπολογισμού. Όταν ένα αυτόματο μπορεί από δεδομένο συνδυασμό συμβόλου
εισόδου και κατάστασης να μεταβεί σε μια μοναδική επόμενη κατάσταση, δηλαδή
όταν κάθε βήμα προκύπτει με μοναδικό τρόπο από το προηγούμενο, τότε λέμε ότι
η μηχανή δρα ντετερμινιστικά. Αν όμως υπάρχουν περισσότερες από μια επιλογές,
τότε η μηχανή που προκύπτει είναι μη ντετερμινιστική. Μια τέτοια μηχανή, για
κάθε συνδυασμό κατάστασης και συμβόλου εισόδου, μπορεί να έχει περισσότερες
από μία (ή και καμία) επόμενες καταστάσεις.

Ενώ όμως φαίνεται ότι τα μη

ντετερμινιστικά αυτόματα μπορεί να είναι πιο ισχυρά από τα ντετερμινιστικά,
αποδεικνύεται ότι τα δύο μοντέλα είναι ισοδύναμα. Έτσι κάθε μη ντετερμινιστικό
αυτόματο μπορεί να μετατραπεί σε ένα ισοδύναμο ντετερμινιστικό που αναγνωρίζει
ακριβώς την ίδια γλώσσα, αν και δυστυχώς με πολύ περισσότερες καταστάσεις.
Λήμμα Άντλησης για Κανονικές Γλώσσες
Μια τεχνική απόδειξης της μη κανονικότητας μιας γλώσσας προκύπτει από
ένα θεώρημα για κανονικές γλώσσες που λέγεται Λήμμα Άντλησης. Το θεώρημα
αυτό, το οποίο ισχύει για γλώσσες με άπειρο αριθμό συμβολοσειρών (αφού κάθε
πεπερασμένη γλώσσα είναι σίγουρα κανονική), λέει πως οι κανονικές γλώσσες
,
έχουν μια ξεχωριστή ιδιότητα: όλες οι συμβολοσειρές τους μπορούν ν \αντληθούν",
αν το μήκος τους ξεπερνά κάποιο χαρακτηριστικό αριθμό. Αυτό σημαίνει ότι
κάθε τέτοια συμβολοσειρά περιέχει ένα τμήμα που μπορεί να επαναληφθεί πολλές
,
φορές και η προκύπτουσα συμβολοσειρά ν ανήκει πάλι στη γλώσσα. Αν λοιπόν
δείξουμε ότι μια γλώσσα δεν έχει την παραπάνω ιδιότητα, δηλαδή υπάρχει κάποια
,
συμβολοσειρά που δεν μπορεί ν αντληθεί, τότε αυτό αποτελεί εγγύηση ότι η
,
γλώσσα δεν είναι κανονική και άρα δεν μπορεί ν αναγνωριστεί από κανένα πεπερασμένο αυτόματο. Χαρακτηριστικό παράδειγμα μη κανονικής γλώσσας είναι γλώσσα
των παλινδρομικών συμβολοσειρών.
Γραμματικές Ανεξάρτητες Συμφραζόμενων (ΑΣ)
Τα αυτόματα και οι κανονικές εκφράσεις είναι δύο ισοδύναμες μέθοδοι περιγρα,
φής γλωσσών. Παρ όλη όμως την εκφραστικότητά τους δεν μπορούν να περιγράψουν σχετικά απλές γλώσσες όπως την f0n 1n j n ¸ 0g. Οι γραμματικές ανεξάρτητες συμφραζόμενων είναι μια πιο ισχυρή μέθοδος περιγραφής γλωσσών, αφού

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

που μπορεί να αποτελείται από μεταβλητές ή απλά σύμβολα. Ένας τέτοιος κανόνας

232

Γλωσσάρι Βασικών Όρων

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

Αν αυτό συμβαίνει σε μια γραμματική, τότε λέμε ότι η

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

Γλωσσάρι Βασικών Όρων

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

Οι περισσότεροι μεταγλωττιστές περιέχουν ένα τμήμα που

λέγεται συντακτικός αναλυτής, το οποίο προσπαθεί να εξάγει το νόημα του προγράμματος πριν από την παραγωγή του κώδικα μηχανής και γενικότερα, για δεδομένη
γραμματική, να βρεί μια ακολουθία κανόνων της γραμματικής η οποία παράγει μια
συγκεκριμένη συμβολοσειρά. Η φάση αυτή της επεξεργασίας του προγράμματος
λέγεται συντακτική ανάλυση. Δύο βασικές μέθοδοι συντακτικής ανάλυσης είναι η
ανάλυση από πάνω προς τα κάτω και η ανάλυση από κάτω προς τα πάνω, οι οποίες
διαφοροποιούνται ως προς τον τρόπο που αναπαράγουν την ακολουθία κανόνων.
Η πρώτη αναπαράγει τη συμβολοσειρά ξεκινώντας από την αρχική μεταβλητή της
γραμματικής, ενώ η δεύτερη από τη ζητούμενη συμβολοσειρά.
Μηχανές Turing
Τα πεπερασμένα αυτόματα είναι καλά μοντέλα για συσκευές που έχουν περιορισμένη μνήμη. Τα αυτόματα στοίβας είναι καλά μοντέλα για συσκευές που μπορούν
να χρησιμοποιηθούν μόνο με τον τρόπο ενός σωρού. Είναι όμως φανερό ότι
και τα δύο είναι πολύ περιοριστικά για να θεωρηθούν μοντέλα για πραγματικούς
υπολογιστές. Ένα πιο ισχυρό μοντέλο, που προτάθηκε από τον Alan Turing το
1936, είναι η μηχανή Turing. Παρόμοια με ένα πεπερασμένο αυτόματο, αλλά με
άπειρη μνήμη, μια τέτοια μηχανή μπορεί να κάνει οτιδήποτε μπορεί να κάνει και
ένας πραγματικός υπολογιστής. Μελετώντας λοιπόν τις μηχανές αυτές μπορούμε
να καταλάβουμε καλύτερα την έννοια του υπολογισμού και γενικότερα τι μπορεί να
επιλυθεί από μια αλγοριθμική διαδικασία. Δυστυχώς όμως, ακόμα και μια τέτοια
μηχανή δεν μπορεί να λύσει ορισμένα προβλήματα. Ο λόγος είναι όχι επειδή δεν
είμαστε αρκετά έξυπνοι για να βρούμε λύση αλλά επειδή τέτοια λύση δεν μπορεί
να υπάρξει ποτέ. Κατά κάποια έννοια, αυτά τα προβλήματα είναι πέρα από τα
θεωρητικά όρια του υπολογισμού. Αντικείμενο λοιπόν της θεωρίας υπολογισμού
είναι η μελέτη των ερωτημάτων που έχουν να κάνουν με τις διάφορες πεπερασμένες
μηχανές και γενικότερα με την έννοια του υπολογισμού.

233

ΕΥΡΕΤΗΡΙΟ
Α
ΑΣ, Δες Αυτόματα Στοίβας
ΑΣ, Δες Ανεξάρτητες Συμφραζόμενων
Αλγόριθμος, 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
Ισοδυναμία δύο τύπων αναγνώρισης, 172175
Ντετερμινιστικό, 175
Ορισμός, 171
Στιγμιαία περιγραφή, 171
που αντιστοιχεί σε Γραμματική ΑΣ, 176178
Αφηρημένη μηχανή, 23, 71

Β
Βάση επαγωγής, 40, 43

Γ
Γράφημα, 23
Γραμματική Ανεξάρτητη Συμφραζόμενων, 143,
147
Γλώσσα που παράγεται από, 148
Ισοδύναμη με ΑΣ, 178-182
Κανονική, Δες Κανονική Γραμματική
Γλώσσα Ανεξάρτητη Συμφραζόμενων, 148
Ένωση, 155
Συνένωση και Αστέρι Kleene, 155
Συμπλήρωμα, 195
Τομή με, 195
Τομή με κανονική γλώσσα, 196
που γίνεται δεκτή από ντετερμινιστικό
ΑΣ, 175
Γλώσσα μη Ανεξάρτητη Συμφραζόμενων, 193195
Γραμματική προτεραιότητας, 215

234

ΕΥΡΕΤΗΡΙΟ

235

Δ

Κ

Δέντρο, 23
Δέντρα παραγωγής, 191
Δεξιά παραγωγή, 211
Διάγραμμα καταστάσεων
για ΠΑ, 71
για ΜΠΑ, 97
Διάγραμμα μεταβάσεων, Δες διάγραμμα καταστάσεων
Διακρινόμενες συμβολοσειρές, 81
εφαρμογή στον αριθμό καταστάσεων αυτομάτου, 81
και μη κανονικότητα μίας γλώσσας, 82,
130
Διατεταγμένο ζεύγος, 8
Διαφορά συνόλων, 6
Δυναμοσύνολο, 8

ΚΑΙ, 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
Κόμβοι γραφήματος, 23
Kleene
θεώρημα, Δες Θεώρημα Kleene
¤, Δες Αστέρι Kleene

Ε

Ένα προς ένα, 10
Ένωση
Γλωσσών ΑΣ, 155
Κανονικών γλωσσών, 60, 111
Συνόλων, 6
Έμμεση απόδειξη, 19
Επαγωγική υπόθεση, 40, 43
Επαγωγικό βήμα, 40, 43
Επαγωγικός ορισμός, Δες Αναδρομικός ορισμός
Λ
Επί, 10
Επίθεμα, 121
Λεξική ανάλυση, x
Επιμεριστικότητα, 7
Λήμμα άντλησης
²-κανόνες, 198
ασθενή μορφή, 137
εξάλειψη από μία γραμματική, 198
για γλώσσες ΑΣ, 193
²-κίνηση, Δες ²-μετάβαση
για κανονικές γλώσσες, 132
²-μετάβαση
εφαρμογή σε προβλήματα απόφασης, 134,
αφαίρεση από ΜΠΑ, 105
197
σε ΑΣ, 171
Λογικά επιχειρήματα, 14
σε ΜΠΑ, 98
Λογικοί ισχυρισμοί, 14
²-σύνολο, 102
Λογικά ισοδύναμο, 14
αλγόριθμος υπολογισμού, 102
LL(k) γραμματικές, 211

Η

Μ

Ή, 14

ΜΠΑ, Δες Μη ντετερμινιστικό πεπερασμένο
αυτόματο
ΜΠΑ-², Δες Μη ντετερμινιστικό πεπερασμένο αυτόματο με ²-κινήσεις
Μαθηματική επαγωγή, Δες Αρχή μαθηματικής επαγωγής
Μερική διάταξη, 27
Μεταβατική, 12

Θ
Θεώρημα Kleene, 111

Ι
Ισχυρή αρχή μαθηματικής επαγωγής, 42

236

ΕΥΡΕΤΗΡΙΟ
Μεταβλητές
σε γραμματικές ΑΣ, 147
σε λογικούς ισχυρισμούς, 14
Μετακίνηση, 211
Μη διακρινόμενες συμβολοσειρές, Δες Διακρινόμενες συμβολοσειρές
Μη κανονικές γλώσσες, 82, 130
παραδείγματα, 133, 134
Μη ντετερμινισμός
αφαίρεση από ένα ΜΠΑ, 108-111
σε ένα ΠΑ, 96
σε ένα ΑΣ, 168, 170
Μη ντετερμινιστικό πεπερασμένο αυτόματο,
99
γλώσσα που γίνεται δεκτή από, 101
ισοδύναμο με ΠΑ, 108
συνάρτηση μετάβασης, 99
Μη ντετερμινιστικό πεπερασμένο αυτόματο
με ²-κινήσεις, 101
γλώσσα που γίνεται δεκτή από, 103
ισοδύναμο με απλό ΜΠΑ, 105
που αναγνωρίζει τις L1 [ L2 , L1 L2 , L¤ ,
111
συνάρτηση μετάβασης, 101
Μήκος συμβολοσειράς, 20
Μηχανή πεπερασμένων καταστάσεων, Δες
Πεπερασμένο αυτόματο
Μηχανή Turing, ix, 136, 222
πρόβλημα τερματισμού σε μία, 136
Μνήμη που απαιτείται για αναγνώριση, 70
Μοναδιαίοι κανόνες, 199

Ν

εξομοίωση από ένα αυτόματο στοίβας,
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
Ντετερμινιστικό αυτόματο στοίβας, 175
Συμβολοσειρά,
20
Νόμοι De Morgan, 7
μήκος,
20
Ντόμινο, 40
που γίνεται δεκτή από ΜΠΑ, 101
που
γίνεται δεκτή από ΠΑ, 75
Ο
Συμμετρική σχέση, 12
Συμφραζόμενα, 148
ΟΧΙ, 15
Σύμπαν, 5
Συμπλήρωμα
Π
ενός συνόλου, 5
ΠΑ, Δες Πεπερασμένο αυτόματο
μίας γλώσσας ΑΣ, 195
Παλινδρομική συμβολοσειρά, 45
μίας κανονικής γλώσσας, 77
αυτόματο στοίβας για αναγνώριση, 167- Συνάρτηση, 10
170
Συνάρτηση μετάβασης
μη κανονικότητα, 82, 130
για ΑΣ, 171
Παραγοντοποίηση σε μία γραμματική ΑΣ,
για ΜΠΑ, 99
για ΜΠΑ-², 101
209
για ΠΑ, 73
Παραγωγή σε μία γραμματική ΑΣ, 148

ΕΥΡΕΤΗΡΙΟ
Συνένωση
γλωσσών, 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

237

Sign up to vote on this title
UsefulNot useful