ΠΛΗ30 ΜΑΘΗΜΑ 3.1

18
ΠΛΗ30 ΕΝΟΤΗΤΑ 3: ΚΑΝΟΝΙΚΕΣ ΓΛΩΣΣΕΣ Μάθηµα 3.1: Κανονικές Εκφράσεις ∆ηµήτρης Ψούνης

Transcript of ΠΛΗ30 ΜΑΘΗΜΑ 3.1

Page 1: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

ΠΛΗ30ΕΝΟΤΗΤΑ 3: ΚΑΝΟΝΙΚΕΣ ΓΛΩΣΣΕΣ

Μάθηµα 3.1: Κανονικές ΕκφράσειςΚανονικές Εκφράσεις

∆ηµήτρης Ψούνης

Page 2: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

ΠΕΡΙΕΧΟΜΕΝΑ

Α. Σκοπός του Μαθήµατος

Β. Θεωρία

1. Εισαγωγικοί Ορισµοί

1. Αλφάβητο

2. Γλώσσα

2∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

3. Πράξεις Γλωσσών

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

1. Συντακτικό Κανονικών Εκφράσεων

2. Παραδείγµατα Κανονικών Εκφράσεων

3. Τυπικός Ορισµός Κανονικής Έκφρασης

4. Κανονικές Γλώσσες

5. Θεώρηµα: Κάθε Πεπερασµένη Γλωσσα είναι κανονική

Γ.Ασκήσεις

Ασκησεις Κατανόησης

Εφαρµογές

Page 3: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

Α. Σκοπός του Μαθήµατος

Οι στόχοι του µαθήµατος είναι:

Επίπεδο Α Κατασκευή Κανονικών Εκφράσεων

Ορισµός Κανονικής Έκφρασης και Κανονικής Γλώσσας

Ορισµός Πράξεων Γλωσσών

3∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

Ορισµός Πράξεων Γλωσσών

Επίπεδο Β Τυπικός Ορισµός Κανονικής Γλώσσας

Επίπεδο Γ (-)

Page 4: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

B. Θεωρία1.Εισαγωγικοί Ορισµοί1.Αλφάβητο

4∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

Ορισµός:Αλφάβητο είναι οποιοδήποτε πεπερασµένο σύνολο συµβόλων. Συµβολίζεται µε Σ

Παραδείγµατα:• Σ=0,1 το δυαδικό αλφάβητο

• Σ=a,b • Σ=A,B,Γ,…,Ω το αλφαβητο των ελληνικών κεφαλαίων γραµµάτων

Ορισµός:Έστω Σ ένα αλφάβητο. Το σύνολο όλων των συµβολοσειρών που µπορούµε να παράγουµε από σύµβολα του Σ, συµβολίζεται µε Σ*.Το σύνολο Σ* καλείται αστέρι Kleene του Σ και συµβολίζει την διάταξη 0 ή περισσότερων συµβόλων του Σ

Παράδειγµα

Έστω Σ=0,1 το δυαδικό αλφάβητο

Τότε Σ*=ε,0,1,00,01,10,11,000,001,010,011,100,101,110,111,…

Ορισµός: Το ε είναι η συµβολοσειρά µήκους 0 και καλείται κενή συµβολοσειρά

Page 5: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

B. Θεωρία1.Εισαγωγικοί Ορισµοί2.Γλώσσα

5∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

Ορισµός:Γλώσσα ενός αλφαβήτου Σ είναι οποιοδήποτε υποσύνολο του Σ*. Συνήθως συµβολίζεται µε L.

Παραδείγµατα γλωσσών του Σ=0,1:

• L1= w | w αρχίζει µε 00

Μπορούµε να κατασκευάσουµε άπειρες γλώσσες ενός αλφαβήτου.

1

• L2= w | w περιέχει το 11

• L3= w | w τελειώνει µε 01

• L4= w | w έχει µήκος τουλάχιστον 2

• L5= w | w έχει άρτιο πλήθος 1

• L6= w | Η w είναι παλινδροµική

• L7= w | Ο δυαδικός αριθµός που αντιστοιχεί στην w είναι πρώτος αριθµός• ….

Page 6: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

B. Θεωρία1.Εισαγωγικοί Ορισµοί3.Πράξεις Γλωσσών

6∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

Page 7: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

B. Θεωρία2.Κανονικές Εκφράσεις1. Συντακτικό Κανονικών Εκφράσεων

7∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

Μια κανονική έκφραση είναι ένας εύκολος τρόπος περιγραφής των συµβολοσειρών που ανήκουν σε µία κανονική γλώσσα.

Οι κανονικές γλώσσες είναι οι απλούστερες γλώσσες που µπορούν να κατασκευασθούν.

Παράδειγµα: Ποια η κανονική έκφραση της γλώσσας L=w∈0,1*|w αρχίζει µε 1; Η κανονική έκφραση είναι 1(0+1)* Η κανονική έκφραση είναι 1(0+1)*

Η κανονική έκφραση είναι µια συµβολοσειρά που διαβάζεται από αριστερά προς τα δεξιά.

Ο πρώτος 1 σηµαίνει ότι ξεκινά µε 1. Ο όρος (0+1)* διαβάζεται 0 ή 1 (λόγω του 0+1) επαναλαµβάνεται 0 ή

περισσότερες φορές. Αν εφαρµόσουµε το αστέρι Kleene διαδοχικά 0,1,2,… φορές παίρνουµε:

1 1(0+1)=10 ή 11 1(0+1)(0+1)=100 ή 101 ή 110 ή 111 ….

Page 8: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

B. Θεωρία2.Κανονικές Εκφράσεις1. Συντακτικό Κανονικών Εκφράσεων

8∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

Πρακτικά:

Μια κανονική έκφραση κατασκευάζεται µε τα εξής στοιχεία:

1. Τα σύµβολα του αλφαβήτου

2. Το + που διαβάζεται «ή διαζευκτικό»3. Το * που είναι το αστέρι Kleene. ∆ιαβάζεται «0 ή περισσότερες φορές».4. Παρενθέσεις που υποδεικνύουν την προτεραιότητα των πράξεων

Π.χ. η κανονική έκφραση 11*+(00)* ορίζει την γλώσσα που περιέχει συµβολοσειρές που:• Ή έχουν τουλάχιστον έναν άσσο (και κανένα µηδενικό)• Ή συµβολοσειρές που έχουν άρτια µηδενικά (και κανέναν άσσο)

4. Παρενθέσεις που υποδεικνύουν την προτεραιότητα των πράξεων

5. Υπονοείται και η πράξη της παράθεσης που είναι όταν έχουµε δύο διαδοχικές παραστάσεις και σηµαίνει ότι παραθέτουµε (βάζουµε διαδοχικά) την πρώτη και την δεύτερη παράσταση.

Η προτεραιότητα των συµβόλων είναι πρώτα το αστέρι Kleene, έπειτα η παράθεση και έπειτα το +, εφόσον αυτή δεν καθορίζεται µε παρενθέσεις.

Page 9: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

B. Θεωρία2.Κανονικές Εκφράσεις2. Παραδείγµατα Κανονικών Εκφράσεων ΑΣΚΗΣΗ: Κατασκευάστε Κανονικές Εκφράσεις για τις Γλώσσες του 0,1:

9∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

L1= w | w τελειώνει µε 1

L2= w | w αρχίζει µε 00

L3= w | w περιέχει το 01

L4= w | w έχει µήκος 2

L5= w | w έχει µήκος τουλάχιστον 2

L6= w | w έχει µήκος το πολύ 2

L7= w | w έχει άρτιο µήκος

L8= w | w έχει περιττό µήκος

L9= w | w έχει άρτιο µήκος ή αρχίζει µε 00

L10= w | w δεν αρχίζει µε 01

L11= w | w δεν περιέχει το 01

L12= w | w περιέχει άρτια 0

Page 10: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

B. Θεωρία2.Κανονικές Εκφράσεις3. Τυπικός Ορισµός Κανονικής Έκφρασης

Κάθε κανονική έκφραση αντιστοιχεί σε µία γλώσσα. Η κατασκευή της γλώσσας που αντιστοιχεί στην έκφραση µπορεί να γίνει µε τον τυπικό ορισµό:

10∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

*rL

Page 11: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

B. Θεωρία2.Κανονικές Εκφράσεις4. Ορισµός Κανονικής Γλώσσας

Συνεπώς όλες οι γλώσσες της προηγούµενης άσκησης είναι κανονικές. Υπάρχουν και άλλοι τύποι γλωσσών που θα δούµε σε επόµενες ενότητες:

Γλώσσες Ανεξάρτητες συµφραζοµένων

11∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

Ορισµός: Μία γλώσσα θα λέγεται κανονική γλώσσα αν και µόνο αν

Υπάρχει κανονική έκφραση που την περιγράφει.

Γλώσσες Ανεξάρτητες συµφραζοµένων

Αποφασίσιµες Γλώσσες Αποδεκτές Γλώσσες

Κάθε οικογένεια γλωσσών σχετίζεται µε το πόσο δύσκολο είναι να υπολογιστούν τα µέλη της. Έτσι κάθε µία συµβολίζει και ένα επίπεδο δυσκολίας του υπολογισµού. Οι καν. γλώσσες υπολογίζονται από Πεπερασµένο Αυτόµατο (Ενοτ.3) Οι γλώσσες χωρίς συµφραζόµενα από Αυτόµατο Στοίβας (Ενότητα 4) Οι αποφασίσιµες γλώσσες από Μηχανή Turing (Ενότητα 5) Οι αποδεκτές γλώσσες ∆ΕΝ υπολογίζονται (Ενότητα 5)

Page 12: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

B. Θεωρία2.Κανονικές Εκφράσεις4. Ορισµός Κανονικής Γλώσσας

ΑΣΚΗΣΗ: Ορίστε µε περιγραφικό τρόπο τις γλώσσες των κανονικών εκφράσεων:

12∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

1. (0+1)*11(0+1)*

2. 0(0+1)*10

3. 00(0+1)*11(0+1)*11

4. 0(0+1)*0 + 1(0+1)*1

5. 1(0+1)*0 + 0(0+1)*1

6. 0*(10*10*)*

7. 0(0+1)*+(0+1)*1

8. 1(00+01+10+11)*

9. (0+10*1)*

10. 0*(10*10*10*)*

Page 13: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

B. Θεωρία2.Κανονικές Εκφράσεις5. Κάθε Πεπερασµένη Γλώσσα είναι Κανονική

φ

13∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

Θεώρηµα:Κάθε πεπερασµένη γλωσσα είναι κανονικήΑπόδειξη: Πράγµατι περιγράφεται από την κανονική έκφραση που µε + θα ενώνει όλες τις συµβολοσειρές της γλώσσας

Παράδειγµα:

Έστω L=ε,0,1,00,01,10,11

Η L είναι κανονική γιατί περιγράφεται από την κανονική έκφραση:ε+0+1+00+01+10+11

Page 14: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

Γ. ΑσκήσειςΆσκηση Κατανόησης 1

14∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

,*1L *

2L

Page 15: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

Γ. ΑσκήσειςΕφαρµογή 1

Κατασκευάστε κανονικές εκφράσεις για τις γλώσσες: L1=w∈0,1*| η w ξεκινά µε το 00 και τελειώνει µε 10

L2=w∈0,1*| η w ξεκινά µε το 11, περιέχει το 00 και τελειώνει µε 10

L =w∈a,b*| η w περιέχει το aabb

15∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

L3=w∈a,b*| η w περιέχει το aabb

L4=w∈a,b*| η w περιέχει τρία συνεχόµενα a

L5=w∈a,b*| η w περιέχει άρτια a ή περιττά b

Page 16: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

Γ. ΑσκήσειςΕφαρµογή 2

Κατασκευάστε κανονικές εκφράσεις για τις γλώσσες: L1=w∈0,1*| η w ξεκινά µε 01

L2=w∈0,1*| η w περιέχει το 01

L =w∈0,1*| η w τελειώνει µε 01

16∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

L3=w∈0,1*| η w τελειώνει µε 01

L4=w∈0,1*| η w δεν ξεκινά µε 01

L5=w∈0,1*| η w δεν περιέχει το 01

L6=w∈0,1*| η w δεν τελειώνει µε 01

Page 17: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

Γ. ΑσκήσειςΕφαρµογή 3

∆ώστε τις γλώσσες µε αλφάβητο 0,1 που αντιστοιχούν στις παρακάτω κανονικές εκφράσεις:

1. L = 0*1(0*10*1)*0*

2. L = 1* + 1*01* + 1*01*01*

17∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

2. L = 1* + 1*01* + 1*01*01*

3. L = (0 + 1)* 11 + (0 + 1)* 10 + (0 + 1)* 01 + 0 + 1 + ε

4. L = 1(0 + 1)* + 0(0 + 1)*

5. L = 1*(01*01*01*)*

Page 18: ΠΛΗ30 ΜΑΘΗΜΑ 3.1

Γ. ΑσκήσειςΕφαρµογή 4

1. ∆ώστε κανονική έκφραση για τη γλώσσα µε όλες τις λέξεις του Σ= a,b που δεν τελειώνουν σε ab ή ba.

2. Περιγράψτε µε λόγια την γλώσσα µε κανονική έκφραση b*a(b*ab*a)*b*.

3. Είναι κανονική στο Σ= a,b γλώσσα η L=aibi |0 ≤i≤3

18∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 3.1: Κανονικές Εκφράσεις

3. Είναι κανονική στο Σ= a,b γλώσσα η L=a b |0 ≤i≤3

4. Είναι κανονική στο Σ= 0,1 η γλώσσα L’ = (00111)n | n ≥0 όπου n οποιοσδήποτε φυσικός αριθµός;

5. Είναι κανονική γλώσσα στο Σ= a,b η Ν=(a+b)i |i>2