Θωρία Υπολογιμών και...

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

Transcript of Θωρία Υπολογιμών και...

Page 1: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

1

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

Αυτομάτων

Γιάννης Ρεφανίδης

Εισαγωγή

Page 2: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

2

Γιάννης Ρεφανίδης 3

Θεωρία Υπολογισμού

• Τι είναι «Υπολογισμός»

• Τι μπορεί να κάνει ένας υπολογιστής;

• Τι δεν μπορεί να κάνει ένας υπολογιστής;

• Ποια προβλήματα μπορεί να λύσει ο υπολογιστής

αποδοτικά;

Γιάννης Ρεφανίδης 4

Αποφασισιμότητα

(decidability) • Μελέτη του τι μπορούν να κάνουν οι υπολογιστές;

– Τα προβλήματα που μπορούν να λύσουν οι υπολογιστές ονομάζονται αποφασίσιμα (decidable).

• Μη αποφασίσιμο πρόβλημα:

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

Page 3: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

3

Γιάννης Ρεφανίδης 5

Πολυπλοκότητα

(complexity) • Τι μπορούν να κάνουν οι υπολογιστές αποδοτικά;

(efficiently)

• Αντιμετωπίσιμα προβλήματα (tractable problems)

• Μη αντιμετωπίσιμα (δυσεπίλυτα) προβλήματα

(intractable problems)

Γιάννης Ρεφανίδης 6

Αφηρημένα μοντέλα υπολογισμών

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

– Finite Automata, FA

• Αυτόματα στοίβας

– PushDown Automata, PDA

• Μηχανή Turing

– Turing Machine, TM

Page 4: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

4

Γιάννης Ρεφανίδης 7

Τι είναι τα αυτόματα

• Χρήσιμο μοντέλο μελέτης / ανάπτυξης για πολλά είδη hardware και software. – Λογισμικό σχεδίασης και ελέγχου ψηφιακών

κυκλωμάτων

– Λεξικοί αναλυτές (π.χ. για τη μετάφραση - compilation – προγραμμάτων)

– Αναζήτηση συγκεκριμένων προτύπων φράσεων εντός κειμένου (π.χ. στο WEB)

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

Γιάννης Ρεφανίδης 8

Ένα απλό αυτόματο

• Διακόπτης on/off (switch)

off on Start

Push

Push

Page 5: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

5

Γιάννης Ρεφανίδης 9

Ένα λίγο πιο πολύπλοκο αυτόματο

t th the then start t h e n

Γιάννης Ρεφανίδης 10

Κεντρικό πρόβλημα

• Για ποιες ακολουθίες χαρακτήρων εισόδου

(strings) ένα αυτόματο καταλήγει σε μια τελική

κατάσταση;

• Για ένα αυτόματο Μ, το σύνολο εκείνων των

ακολουθιών εισόδου που οδηγούν σε τελικές

καταστάσεις ονομάζεται γλώσσα του αυτομάτου,

L(M).

Page 6: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

6

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

Γιάννης Ρεφανίδης 12

Αλφάβητα

(Alphabets) • Ένα αλφάβητο είναι ένα πεπερασμένο, μη κενό

σύνολο συμβόλων. Συνήθως χρησιμοποιούμε το

γράμμα Σ για ένα αλφάβητο. Παραδείγματα:

– Σ = {0,1}

– Σ = {a,b,c, ..., z}

Page 7: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

7

Γιάννης Ρεφανίδης 13

Λέξεις

(Strings ή Words) • Μία λέξη είναι μια πεπερασμένη ακολουθία

συμβόλων επιλεγμένων από κάποιο αλφάβητο.

– Σ = {0,1}

• w=01101

• Μήκος λέξης είναι το πλήθος των συμβόλων της:

– |w| = |01101| = 5

• Ως κενή λέξη ορίζεται η λέξη με μηδενικό μήκος

και συμβολίζεται με ε.

– |ε| = 0

Γιάννης Ρεφανίδης 14

(Συμβάσεις σημειογραφίας)

• Συνηθίζεται να χρησιμοποιούμε:

– τα πεζά γράμματα στην αρχή του αλφάβητου

για να δηλώνουμε απλά σύμβολα.

• a, b, c, ...

– τα πεζά γράμματα στο τέλος του αλφάβητου

για να δηλώνουμε λέξεις.

• w, x, y, z, ...

Page 8: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

8

Γιάννης Ρεφανίδης 15

Δυνάμεις ενός αλφάβητου

• Σk: Το σύνολο όλων των λέξεων μήκους k, αποτελούμενες από σύμβολα του Σ.

• Παράδειγμα: Έστω Σ={0,1}, τότε:

– Σ0={ε}

– Σ1={0, 1}

– Σ2={00,01,10,11}

• Ειδικές περιπτώσεις:

• Σ*=Σ0 Σ1 Σ2 Σ3 ...

• Σ+= Σ1 Σ2 Σ3 ...

Γιάννης Ρεφανίδης 16

Παράθεση λέξεων

(concatenation) • Έστω x και y δύο λέξεις. Ορίζουμε ως xy τη λέξη

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

• Παράδειγμα:

– x=01101

– y=110

– xy=01101110

– yx=11001101

Page 9: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

9

Γιάννης Ρεφανίδης 17

Ιδιότητες παράθεσης

• |xy|=|x|+|y|

• x(yz)=(xy)z

• Αν w=xyz, τότε:

– η x λέγεται πρόθεμα (prefix) της w

– η z λέγεται κατάληξη (suffix) της w

– η y λέγεται υπολέξη της w

• Ορίζουμε ως wk την παράθεση wk-1w

– Εάν w=01 τότε w3=010101

Γιάννης Ρεφανίδης 18

Ανάστροφη λέξης

• Η ανάστροφη μιας λέξης w συμβολίζεται με wR και είναι η λέξη w διαβασμένη από το τέλος προς την αρχή. – Εάν w=0011010 τότε wR=0101100

• Ιδιότητες: – (xy)R=yRxR

• Έστω x=abc και y=de, τότε: xy=abcde (xy)R=edcba xR=cba yR=ed yRxR=edcba

– (wR)R=w

Page 10: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

10

Γιάννης Ρεφανίδης 19

Γλώσσες

• Μια γλώσσα L ενός αλφαβήτου Σ ορίζεται ως ένα υποσύνολο του Σ* . – L ⊆ Σ*

• Μια γλώσσα μπορεί να έχει άπειρες λέξεις ή και καμία.

• Παραδείγματα γλωσσών για το αλφάβητο Σ={0,1}: – Το σύνολο των λέξεων που αποτελούνται από n μηδενικά

ακολουθούμενα από n μονάδες: {ε, 01, 0011, 000111, ...}

– Το σύνολο των λέξεων με ίσους αριθμούς μηδενικών και μονάδων: {ε, 01, 10, 0011, 0101, 0110, ...}

– Το σύνολο των δυαδικών αριθμών που αντιστοιχούν σε πρώτους αριθμούς: {10, 11, 101, 111, 1011, ...}

Γιάννης Ρεφανίδης 20

Περιγραφή γλωσσών ως σύνολα

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

• {w | ιδιότητες της λέξης w} – {w | η w αποτελείται από ίσο αριθμό 0 και 1}

– {w | η w είναι η δυαδική μορφή ενός πρώτου αριθμού}

– {w | η w είναι ένα συντακτικά σωστό πρόγραμμα της C}

– {0n1n | n ≥1}

– {0i1j | 0 ≤ i ≤ j }

• Ο παραπάνω συμβολισμός συνηθίζεται στις περιπτώσεις γλωσσών με άπειρο πλήθος λέξεων.

Page 11: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

11

Γιάννης Ρεφανίδης 21

Πράξεις με γλώσσες (1/3)

• Εφόσον οι γλώσσες είναι σύνολα, μπορούν να

συνδυαστούν με πράξεις επί συνόλων:

– Ένωση, L1 L2

• Το σύνολο όλων των λέξεων που ανήκουν είτε στην L1 είτε

στην L2.

• L1 L2 = { w | w ∈ L1 w ∈ L2 }

– Τομή, L1 L2

• Το σύνολο των λέξεων που ανήκουν και στην L1 και στην L2.

• L1 L2 = { w | w ∈ L1 w ∈ L2 }

Γιάννης Ρεφανίδης 22

Πράξεις με γλώσσες (2/3)

– Διαφορά, L1 - L2

• Το σύνολο των λέξεων που ανήκουν στην L1 και

δεν ανήκουν στην στην L2.

• L1 - L2 = { w | w ∈ L1 w ∉ L2 }

– Συμπλήρωμα, L1 = Σ* - L1

• Το σύνολο των λέξεων του Σ* που δεν ανήκουν

στην L1.

• L1 = { w | w ∈ Σ* w ∉ L1 }

Page 12: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

12

Γιάννης Ρεφανίδης 23

Πράξεις με γλώσσες (3/3)

– Παράθεση, L1L2

• Το σύνολο των λέξεων που σχηματίζονται από την παράθεση μιας λέξης από την L1 και μιας λέξης από την L2.

• L1L2 = { w | w=xy, x ∈ L1 y ∈ L2 }

– Κλειστότητα ή Kleene star, L*

• Το σύνολο των λέξεων που σχηματίζονται από την παράθεση οποιουδήποτε πλήθους λέξεων της L.

• L*={w∈Σ*: w=w1w2...wk, k0, w1, w2, ..., wk ∈ L}

• (L*)*=L*

Γιάννης Ρεφανίδης 24

Προβλήματα

• Στη θεωρία αυτομάτων ένα πρόβλημα είναι η

ερώτηση εάν μια λέξη ανήκει σε μια γλώσσα ή

όχι. Ειδικότερα:

• Δοθείσης μιας λέξης w ∈ Σ*, αποφάσισε εάν η w

ανήκει στη γλώσσα L.

• Όλα τα προβλήματα μπορούν να αναχθούν σε

ισοδύναμα (απλούστερα) προβλήματα της

παραπάνω μορφής με ίδια χαρακτηριστικά

υπολογισιμότητας και πολυπλοκότητας.

Page 13: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

13

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

(regular expressions)

Γιάννης Ρεφανίδης 26

Τυποποιημένοι τρόποι

περιγραφής γλωσσών • Κανονικές εκφράσεις

– περιορισμένες δυνατότητες

• Γραμματικές ανεξάρτητες από τα συμφραζόμενα.

– ισχυρές

• Γραμματικές εξαρτημένες από τα συμφραζόμενα.

– ισχυρότερες

Page 14: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

14

Γιάννης Ρεφανίδης 27

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

(regular expressions)

• Οι κανονικές εκφράσεις ενός αλφαβήτου Σ είναι οι συμβολοσειρές του αλφαβήτου Σ { ) , ( , ε , + , * } για τις οποίες ισχύουν τα παρακάτω: – ∅, ε και κάθε στοιχείο του Σ είναι κανονική έκφραση.

– Αν α και β είναι κανονικές εκφράσεις, και η (αβ) είναι επίσης.

– Αν α και β είναι κανονικές εκφράσεις, και η α+β είναι επίσης.

– Αν α είναι κανονική έκφραση, και η α* είναι επίσης

– Τίποτα δεν είναι κανονική έκφραση εκτός από τα παραπάνω.

Γιάννης Ρεφανίδης 28

Παραδείγματα

• (a+b)*a : Περιγράφει λέξεις που τελειώνουν σε a.

• aa*+bb* : Περιγράφει λέξεις που αποτελούνται είτε μόνο από a (ένα ή περισσότερα) είτε μόνο από b (ένα ή περισσότερα).

• c*(a+bc*)*: Περιγράφει λέξεις στις οποίες δεν εμφανίζεται η υπολέξη ac.

• 0*+0*(1+11)(00*(1+11))*0*: Περιγράφει το σύνολο των λέξεων από 0 και 1, οι οποίες δεν περιέχουν την υπολέξη 111.

Page 15: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

15

Γιάννης Ρεφανίδης 29

Κανονικές γλώσσες

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

• Έστω Ε μια κανονική έκφραση, συμβολίζουμε με L(E) τη γλώσσα που παράγεται από την Ε.

• Ιδιότητες: – L()=, L(ε)={ε}

– L(Ε1+Ε2)=L(Ε1) L(Ε2)

– L(Ε1Ε2)=L(Ε1)L(Ε2)

– L(Ε1*)=L(Ε1)*

Γιάννης Ρεφανίδης 30

Και άλλα παραδείγματα

• Να γραφεί μία κανονική έκφραση για το σύνολο

εκείνων των λέξεων του αλφαβήτου Σ={0,1}, στις

οποίες τα 0 και 1 εναλλάσσονται.

– Ε1=(01)*+(10)*+0(10)*+1(01)*

– Ε2= (1+ε)(01)*(0+ε)

Page 16: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

16

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

Γιάννης Ρεφανίδης 32

Είδη πεπερασμένων αυτομάτων

• Ντετερμινιστικά αυτόματα

• Μη ντετερμινιστικά αυτόματα

• Με ε-μεταβάσεις

Page 17: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

17

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

Ντετερμινιστικά Πεπερασμένα

Αυτόματα

Γιάννης Ρεφανίδης 34

Ντετερμινιστικά Πεπερασμένα

Αυτόματα - ΝΠΑ (Deterministic Finite Automata - DFA)

• Για το αλφάβητο Σ={0,1}, το παρακάτω αυτόματο

δέχεται όλες τις λέξεις που δεν περιέχουν 2

συνεχόμενους άσσους.

A start 1

B C 1

0 0

1 0

Page 18: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

18

Γιάννης Ρεφανίδης 35

Ορισμός ΝΠΑ

• Ένα ντετερμινιστικό πεπερασμένο αυτόματο είναι

μια πεντάδα Μ={Κ,Σ,δ,s,F} όπου:

– Κ είναι ένα πεπερασμένο σύνολο από καταστάσεις

– Σ είναι ένα αλφάβητο

– s ∈ K είναι η αρχική κατάσταση

– F ⊆ K είναι το σύνολο των τελικών καταστάσεων

– δ είναι η συνάρτηση μετάβασης (transition function)

από το KxΣ στο Κ.

Γιάννης Ρεφανίδης 36

Παράδειγμα (1/2)

• Κ={Α,Β,C}

• Σ={0,1}

• s=A

• F={A,B}

A start 1

B C 1

0

1 0

Page 19: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

19

Γιάννης Ρεφανίδης 37

Παράδειγμα (2/2)

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

– Αναπαράσταση με διάγραμμα καταστάσεων

– αναπαράσταση με πίνακα

Τρέχουσα κατάσταση

q

Επόμενη είσοδος

σ

Επόμενη κατάσταση

δ(q,σ)

Α 0 Α

Α 1 Β

Β 0 Α

Β 1 C

C 0 C

C 1 C

Γιάννης Ρεφανίδης 38

Παράδειγμα

• Αυτόματο στο αλφάβητο Σ={0,1}, το οποίο

δέχεται τις λέξεις με ζυγό αριθμό μηδενικών και

άσσων:

q0

start

q1

q2

q3

1

1

0

0

0

0

1

1

Page 20: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

20

Γιάννης Ρεφανίδης 39

Επέκταση της συνάρτησης

μετάβασης σε λέξεις • Επεκτείνουμε τον ορισμό της συνάρτησης

μετάβασης σε λέξεις w με |w|≥0 ως εξής:

– δ(q,ε)=q

– δ(q,wα)=δ(δ(q,w),a), όπου w∈Σ*, α∈Σ.

Γιάννης Ρεφανίδης 40

Γλώσσα ενός ντετερμινιστικού

πεπερασμένου αυτομάτου • Έστω Μ ένα ντετερμινιστικό πεπερασμένο

αυτόματο. Η γλώσσα του Μ συμβολίζεται με

L(M) και αποτελείται από το σύνολο όλων

εκείνων των λέξεων που δέχεται το M.

– L(M)={ w | w ∈ Σ* και δ(s,w) ∈ F }

• Τα σύνολα των γλωσσών των ντετερμινιστικών

πεπερασμένων αυτομάτων και των γλωσσών των

κανονικών εκφράσεων ταυτίζονται.

Page 21: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

21

Γιάννης Ρεφανίδης 41

Συνολική κατάσταση (1/2)

(configuration) • Η συνολική κατάσταση υπολογισμού ενός

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

– Συμβολίζεται με (q,w), όπου q η τρέχουσα κατάσταση και w το κομμάτι της λέξης εισόδου που δεν έχει ακόμη διαβαστεί.

– (q,w)KxΣ*

Γιάννης Ρεφανίδης 42

Συνολική κατάσταση (2/2)

(configuration) • Ο συμβολισμός (q,w)⊢Μ (q',w') δηλώνει ότι το

αυτόματο Μ μπορεί να μεταβεί από τη συνολική

κατάσταση (q,w) στην (q',w') σε ένα βήμα.

– Προφανώς ισχύει: w=σw' για κάποιο σύμβολο σ και

επιπλέον δ(q,σ)=q'.

• Παρόμοια, ο συμβολισμός (q,w)⊢*Μ (q',w')

δηλώνει ότι το αυτόματο Μ μπορεί να μεταβεί από

τη συνολική κατάσταση (q,w) στην (q',w') σε

κανένα, ένα ή περισσότερα βήματα.

Page 22: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

22

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

Μη-ντετερμινιστικά

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

Γιάννης Ρεφανίδης 44

Μη-ντετερμινιστικά

πεπερασμένα αυτόματα (ΜΠΑ) (Non-deterministic finite automata – NFA)

• Από κάθε κατάσταση επιτρέπονται πολλές

διαφορετικές μεταβάσεις για το ίδιο σύμβολο

εισόδου.

• Το αυτόματο μπορεί αυθαίρετα να επιλέξει ποια

από τις δυνατές μεταβάσεις θα ακολουθήσει.

• Η επιλογή αυτή είναι μη-ντετερμινιστική.

Page 23: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

23

Γιάννης Ρεφανίδης 45

Σύγκριση ΜΠΑ και ΝΠΑ

• Μια λέξη γίνεται δεκτή από ένα ΜΠΑ εάν

υπάρχει κάποιος τρόπος το ΜΠΑ να μεταβεί από

την αρχική του κατάσταση σε μια τελική με

είσοδο τη συγκεκριμένη λέξη.

• Κάθε μη-ντετερμινιστικό πεπερασμένο αυτόματα

είναι ισοδύναμο με κάποιο ντετερμινιστικό.

• Τα μη-ντετερμινιστικά πεπερασμένα αυτόματα

είναι ευκολότερα στη σχεδίαση και την

κατανόηση από τα αντίστοιχα ντετερμινιστικά.

Γιάννης Ρεφανίδης 46

Παράδειγμα

• Μη ντετερμινιστικό πεπερασμένο αυτόματο

(ΜΠΑ) που δέχεται όλες τις λέξεις που

τελειώνουν σε 01.

• και το αντίστοιχο ντετερμινιστικό... (ΝΠΑ) q0 q1 q2

start

0,1

0 1

q0 q1 q2

start

1

0 1

1

0 0

Page 24: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

24

Γιάννης Ρεφανίδης 47

Ακόμη ένα παράδειγμα (1/2)

• ΝΠΑ για τη γλώσσα L=(ab + aba)*.

q0 q1 q2 q3

q4

start a b a

a

b b

a b

a b

Η κατάσταση q4 και

τα τόξα που οδηγούν σε

αυτή θα μπορούσαν να

παραλειφθούν.

Γιάννης Ρεφανίδης 48

Ακόμη ένα παράδειγμα (2/2)

• Και το αντίστοιχο ΜΠΑ για τη γλώσσα L=(ab +

aba)*.

q0

start q1

q2

a

b

b a

Όταν από μια κατάσταση δεν

εξέρχεται βέλος για κάποιο

συγκεκριμένο σύμβολο εισόδου,

αυτό δηλώνει ότι αν στη

κατάσταση αυτή έρθει το συγκεκριμένο

σύμβολο εισόδου, το αυτόματα τερματίζει

απαντώντας αρνητικά (πεθαίνει – dies)

Page 25: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

25

Γιάννης Ρεφανίδης 49

Ορισμός ΜΠΑ

• Ένα μη-ντετερμινιστικό πεπερασμένο αυτόματο

είναι μια πεντάδα Μ={Κ,Σ,s,F,Δ} όπου:

– Κ είναι ένα πεπερασμένο σύνολο από καταστάσεις

– Σ είναι ένα αλφάβητο

– s ∈ K είναι η αρχική κατάσταση

– F ⊆ K είναι το σύνολο των τελικών καταστάσεων

– Δ είναι η σχέση μετάβασης (transition function) από το

KxΣ στο Κ.

Γιάννης Ρεφανίδης 50

Παράδειγμα ορισμού ΜΠΑ (1/2)

• Μ={Κ,Σ,s,F,Δ}

– K={q0,q1,q2}

– Σ={a,b}

– s=q0

– F={q0}

– και... (επόμενη διαφάνεια)

q0

start

q1

q2

a

b

b a

Page 26: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

26

Γιάννης Ρεφανίδης 51

Παράδειγμα ορισμού ΜΠΑ (2/2)

• Σχέση μετάβασης Δ

Τρέχουσα

κατάσταση

q

Επόμενη

είσοδος

σ

Επόμενη

κατάσταση

Δ(q,σ)

q0 a {q1}

q0 b {}

q1 a {}

q1 b {q0,q2}

q2 a q0

q2 b {}

q0

start

q1

q2

a

b

b a

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

Ισοδυναμία ντετερμινιστικών και μη-

ντετερμινιστικών πεπερασμένων

αυτομάτων

Page 27: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

27

Γιάννης Ρεφανίδης 53

Ισοδυναμία ΝΠΑ και ΜΠΑ

• Δύο πεπερασμένα αυτόματα Μ1 και Μ2

ονομάζονται ισοδύναμα αν και μόνο αν

L(M1)=L(M2).

• Για κάθε μη-ντετερμινιστικό πεπερασμένο

αυτόματα υπάρχει ένα ισοδύναμο ντετερμινιστικό

πεπερασμένο αυτόματο.

Γιάννης Ρεφανίδης 54

(Mαθηματικό υπόβαθρο)

• Για ένα σύνολο Α, το δυναμοσύνολό του

συμβολίζεται με 2Α ή με Power(A) και

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

• Βρίσκεται εύκολα ότι το σύνολο 2Α έχει 2|Α|

στοιχεία, εξ'ού και ο συμβολισμός 2Α.

• Παράδειγμα:

– Α = {a,b,c}

– 2Α = { {}, {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c} }

Page 28: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

28

Γιάννης Ρεφανίδης 55

Μετατροπή ΜΠΑ σε ΝΠΑ - Βήμα 1

• Έστω Μ={ΚM,ΣM,sM,FM,δ} ένα μη-

ντετερμινιστικό πεπερασμένο αυτόματο και

N={ΚN,ΣN,sN,FN,Δ} το αντίστοιχο ντετερμινιστικό

που θέλουμε να κατασκευάσουμε.

• Βασική ιδέα: Το σύνολο των καταστάσεων του N

είναι το δυναμοσύνολο των καταστάσεων του M:

– ΚN=2ΚM

– Ωστόσο δεν είναι όλες οι καταστάσεις ΚΝ

προσβάσιμες...

Γιάννης Ρεφανίδης 56

Παράδειγμα μετατροπής

ΜΠΑ σε ΝΠΑ – Βήμα 1 • Έστω το ΜΠΑ Μ τριών καταστάσεων που δέχεται

τη γλώσσα L=(0+1)*01.

• Το αντίστοιχο ΝΠΑ Ν μπορεί να έχει μέχρι και 8 καταστάσεις:

– , ΚΝ=2ΚΜ, |ΚΝ | =2 |ΚΜ | = 23 = 8

q0 q1 q2

start

0,1

0 1

Page 29: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

29

Γιάννης Ρεφανίδης 57

Παράδειγμα μετατροπής

ΜΠΑ σε ΝΠΑ – Βήμα 1

q0q1q2

q2 q0q1

q1q2 q0q2

q0 q1

Γιάννης Ρεφανίδης 58

Μετατροπή ΜΠΑ σε ΝΠΑ –Βήμα 2

• Αρχική κατάσταση του ΝΠΑ είναι αυτή που

αντιστοιχεί στην αρχική κατάσταση του ΜΠΑ.

• Τελικές καταστάσεις του ΝΠΑ είναι όσες

"περιέχουν" τουλάχιστον μία τελική κατάσταση

του ΜΠΑ.

Page 30: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

30

Γιάννης Ρεφανίδης 59

Παράδειγμα μετατροπής

ΜΠΑ σε ΝΠΑ – Βήμα 2

q0q1q2

q2 q0q1

q1q2 q0q2

q0 q1

start

Γιάννης Ρεφανίδης 60

Μετατροπή ΜΠΑ σε ΝΠΑ –Βήμα 3

• Για κάθε SΚΜ (όπου η S αντιστοιχεί σε μια

κατάσταση του Ν) και για κάθε σύμβολο εισόδου

σ, ορίζουμε ως δ(S,σ) την κατάσταση του Ν που

αντιστοιχεί στο σύνολο των καταστάσεων:

Sq

qS

),(),(

Page 31: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

31

Γιάννης Ρεφανίδης 61

Παράδειγμα μετατροπής

ΜΠΑ σε ΝΠΑ – Βήμα 3

q0 q1 q2

start

0,1

0 1

Κατάσταση S δ(S,0) δ(S,1)

∅ ∅ ∅

{q0} {q0, q1} {q0}

{q1} ∅ {q2}

{q2} ∅ ∅

{q0, q1} {q0, q1} {q0, q2}

{q0, q2} {q0, q1} {q0}

{q1, q2} ∅ {q2}

{q0,q1,q2} {q0, q1} {q0, q2}

Γιάννης Ρεφανίδης 62

Παράδειγμα μετατροπής

ΜΠΑ σε ΝΠΑ – Βήμα 3

q0q1q2

q2 q0q1

q1q2 q0q2

q0 q1

start

0

1 0,1

1

0

0,1

0 1

0 1 0

1

0

1

Page 32: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

32

Γιάννης Ρεφανίδης 63

Παράδειγμα μετατροπής

ΜΠΑ σε ΝΠΑ – Βήμα 3

q0q1q2

q2 q0q1

q1q2 q0q2

q0 q1

start

0

1 0,1

1

0

0,1

0 1

0 1 0

1

0

1

Γιάννης Ρεφανίδης 64

Παράδειγμα μετατροπής

ΜΠΑ σε ΝΠΑ – Βήμα 3

q0 q0q1 q0q2

start

1

0 1

1

0 0

• ...όπως στη διαφάνεια 46.

Page 33: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

33

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

Μη-ντετερμινιστικά

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

με ε-μεταβάσεις

Γιάννης Ρεφανίδης 66

Μη-ντετερμινιστικά πεπερασμένα

αυτόματα με ε-μεταβάσεις • Υπάρχουν μεταβάσεις που επιγράφονται με την

κενή συμβολοσειρά ε.

• Όταν ένα ΜΠΑ βρεθεί σε μια κατάσταση από την οποία ξεκινά μία (ή περισσότερες) ε-μετάβαση, μπορεί (μη-ντετερμινιστικά πάντα) να την ακολουθήσει.

• Η ύπαρξη των ε-μεταβάσεων δεν επεκτείνει τις γλώσσες που αναγνωρίζουν τα πεπερασμένα αυτόματα.

• Οι ε-μεταβάσεις μας επιτρέπουν να κατασκευάζουμε πιο ευκολονόητα αυτόματα.

Page 34: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

34

Γιάννης Ρεφανίδης 67

Παράδειγμα 1

• Αυτόματο που δέχεται δεκαδικούς αριθμούς

q0 q1 q4

start ε,+,- . q2

q3

0,1,...,9

0,1,...,9

0,1,...,9 0,1,...,9

.

Γιάννης Ρεφανίδης 68

Παράδειγμα 2

• Αυτόματο που αναγνωρίζει δύο λέξεις

q0

start

t q1 q2 q3

h i q3 q4

s

t q5 q6 q7

h a q8 q9

t

ε

ε

Σ

Σ

Σ

Page 35: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

35

Γιάννης Ρεφανίδης 69

Ορισμός ΜΠΑ με ε-μεταβάσεις

• Ο ορισμός ενός ΜΠΑ με ε-μεταβάσεις είναι ίδιος

με αυτόν ενός απλού ΜΠΑ, με μόνη τη διαφορά

ότι η σχέση μετάβασης Δ ορίζεται ως εξής:

– Δ: Κ x Σ{ε} Κ

• Δηλαδή η σχέση μετάβασης περιλαμβάνει και

μεταβάσεις που γίνονται με την κενή

συμβολοσειρά ε.

Γιάννης Ρεφανίδης 70

Ισοδυναμία ΜΠΑ με ε-μεταβάσεις

με ΝΠΑ • Ορίζουμε ως ε-κλείσιμο (ECLOSE) μιας

κατάστασης q, ECLOSE(q) το σύνολο όλων των καταστάσεων του αυτομάτου που είναι προσβάσιμες από την q ακολουθώντας μόνο ε-μεταβάσεις.

• Η μετατροπή ΜΠΑ με ε-μεταβάσεις είναι παρόμοια σε ΝΠΑ είναι ίδια με αυτήν που έχουμε δει για τη μετατροπή ΜΠΑ σε ΝΠΑ, αν κατά τη μετατροπή αντικαταστήσουμε κάθε κατάσταση q με την ECLOSE(q).

Page 36: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

36

Ιδιότητες των γλωσσών

των πεπερασμένων αυτομάτων

Γιάννης Ρεφανίδης 72

Βασικές ιδιότητες γλωσσών

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

πεπερασμένα αυτόματα είναι κλειστή ως προς:

– Ένωση

– Παράθεση

– Kleene Star

– Συμπλήρωση

– Τομή

Page 37: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

37

Γιάννης Ρεφανίδης 73

Διαγραμματική απόδειξη

• Έστω δύο ΝΠΑ αυτόματα Α και Β και L(A) και

L(B) οι γλώσσες που γίνονται δεκτές από αυτά.

Α1

Α2

Α3

start

Α

Β1

Β2

Β3

Β

start

Γιάννης Ρεφανίδης 74

Διαγραμματική απόδειξη

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

• Η γλώσσα

L(A) L(B) γίνεται

δεκτή από το

διπλανό αυτόματο:

Α1

Α2

Α3

Α

Β1

Β2

Β3

Β q0

start

ε

ε

Page 38: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

38

Γιάννης Ρεφανίδης 75

Διαγραμματική απόδειξη

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

• Η γλώσσα L(A)L(B) γίνεται δεκτή από το

παρακάτω αυτόματο:

Α1

Α2

Α3

Α

Β1

Β2

Β3

Β

start

ε

ε

Γιάννης Ρεφανίδης 76

Διαγραμματική απόδειξη

Κλειστότητα ως προς το Kleene Star

• Η γλώσσα L(A)* γίνεται δεκτή από το

παρακάτω αυτόματο:

Α1

Α2

Α3

Α start

ε

ε q1

ε

q0

Page 39: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

39

Γιάννης Ρεφανίδης 77

Κλειστότητα ως προς τη συμπλήρωση

• Η γλώσσα Σ* - L(A) γίνεται δεκτή από το αυτόματο A' το οποίο προκύπτει από το Α αν όλες οι τελικές καταστάσεις του Α γίνουν μη τελικές και όλες οι μη-τελικές γίνουν τελικές. – Προσοχή: Το αυτόματο Α θα πρέπει να είναι πλήρες

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

– Προσοχή: Η παραπάνω τεχνική ισχύει μόνο για ντετερμινιστικά αυτόματα. Τα ΜΠΑ (με ή χωρίς ε-μεταβάσεις) πρέπει πρώτα να μετατραπούν στα αντίστοιχα ΝΠΑ.

Γιάννης Ρεφανίδης 78

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

• L(A) L(B)=

Σ*- ((Σ*-L(A)) (Σ*-L(B))

Page 40: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

40

Γιάννης Ρεφανίδης 79

Αλγόριθμοι

• Υπάρχουν αλγόριθμοι που απαντούν στα παρακάτω ερωτήματα: – Δεδομένου πεπερασμένου αυτόματου M και

συμβολοσειράς w, ανήκει η w στο L(M);

– Δεδομένου πεπερασμένου αυτόματου M, ισχύει L(M) = ;

– Δεδομένου πεπερασμένου αυτόματου M, ισχύει L(M) = Σ* ;

– Δεδομένων δύο πεπερασμένων αυτομάτων Μ1 και Μ2, ισχύει L(M1)L(M2) ;

– Δεδομένων δύο πεπερασμένων αυτομάτων Μ1 και Μ2, ισχύει L(M1)=L(M2) ;

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

Ισοδυναμία πεπερασμένων

αυτομάτων και κανονικών

εκφράσεων

Page 41: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

41

Γιάννης Ρεφανίδης 81

Κατασκευή αυτομάτων από

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

στις προηγούμενες διαφάνειες, μπορούμε να

κατασκευάσουμε αυτόματο που να δέχεται τη

γλώσσα οποιασδήποτε κανονικής έκφρασης.

• Η κατασκευή των αυτομάτων γίνεται με βάση τα

απλούστερα αυτόματα που δέχονται τα

μεμονωμένα σύμβολα του αλφαβήτου καθώς και

την κενή λέξη ε.

Γιάννης Ρεφανίδης 82

Παράδειγμα κατασκευής αυτομάτου

από κανονική έκφραση • Να κατασκευαστεί αυτόματο που να

δέχεται τη γλώσσα (ab + aab)*

a

b

ε ε a b

a a b ε

ε

ε ε

ε ε

Page 42: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

42

Γιάννης Ρεφανίδης 83

Εύρεση κανονικών εκφράσεων

από αυτόματα (1/3) • Η διαδικασία βασίζεται στην απαλοιφή των

ενδιάμεσων μη τελικών καταστάσεων του αυτομάτου.

• Για κάθε ενδιάμεση μη-τελική κατάσταση: – Απαλοίφουμε την κατάσταση και όλα τα τόξα που

εισέρχονται ή εξέρχονται από αυτή.

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

Γιάννης Ρεφανίδης 84

Εύρεση κανονικών εκφράσεων

από αυτόματα (2/3)

• Για παράδειγμα, από το:

• παίρνουμε το:

Α Β Γ

Χ Υ

Ζ

W

Α Γ

Z+XW*Y

Page 43: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

43

Γιάννης Ρεφανίδης 85

Εύρεση κανονικών εκφράσεων

από αυτόματα (3/3)

• Εάν το αρχικό αυτόματο είχε μόνο μια τελική κατάσταση, στο τέλος θα καταλήξουμε με ένα αυτόματο της μορφής:

• Το αυτόματο αυτό αντιστοιχεί στην κανονική έκφραση: (R+SU*T)*SU*

Α Β

start

R S

T

U

Γιάννης Ρεφανίδης 86

Παράδειγμα (1/4)

• Έστω το παρακάτω αυτόματο.

• Πρέπει να απαλείψουμε τις καταστάσεις Β και Γ...

Α Δ

start

a

Β Γ

a b

b

a b

b a

Page 44: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

44

Γιάννης Ρεφανίδης 87

Παράδειγμα (2/4)

Α Δ

start

a

Β Γ

a b

b

a b

b a

Α Δ

start

a

Γ

b

a b

ba* b

aa*b

Γιάννης Ρεφανίδης 88

Παράδειγμα (3/4)

Α Δ

start

a

Γ

b

a b

ba* b

aa*b

Α Δ

start

a+bb*aa*b

ba* b+ab*aa*b

Page 45: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

45

Γιάννης Ρεφανίδης 89

Παράδειγμα (4/4)

• Από το παραπάνω αυτόματο προκύπτει ότι η κανονική έκφραση στην οποία αυτό αντιστοιχεί είναι η: – (ba* b+ab*aa*b)(a+bb*aa*b)*

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

Α Δ

start

a+bb*aa*b

ba* b+ab*aa*b

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

Page 46: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

46

Γιάννης Ρεφανίδης 91

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

• Είναι οι γλώσσες εκείνες για τις οποίες δεν

υπάρχει πεπερασμένο αυτόματο (ντετερμινιστικό

ή μη) που να τις δέχεται.

• Δεν υπάρχει γενική μέθοδος απόδειξης ότι μία

γλώσσα δεν είναι κανονική.

• Για να αποδείξουμε ότι μια γλώσσα δεν είναι

κανονική, χρησιμοποιούμε κάποιες βασικές

ιδιότητες που ισχύουν για τις κανονικές γλώσσες.

Γιάννης Ρεφανίδης 92

Ιδιότητα 1

• Καθώς διαβάζουμε μια λέξη (οσοδήποτε μεγάλου

μήκους) από αριστερά προς τα δεξιά, το ποσό της

μνήμης που χρειάζεται για να αποφασιστεί στο

τέλος αν η λέξη ανήκει ή όχι στη γλώσσα πρέπει

να είναι φραγμένο και εξαρτώμενο από τη

γλώσσα (δηλ.: να μην εξαρτάται από τη

συγκεκριμένη λέξη).

– π.χ. κάτι τέτοιο δεν ισχύει για τις λέξεις της γλώσσας

{anbn: n>0}

Page 47: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

47

Γιάννης Ρεφανίδης 93

Ιδιότητα 2

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

– Η γλώσσα {an: ο n είναι πρώτος αριθμός} δεν είναι κανονική.

Γιάννης Ρεφανίδης 94

Θεώρημα άντλησης

• Έστω L μια άπειρη κανονική γλώσσα. Τότε υπάρχουν λέξεις x,y,z τέτοιες ώστε y≠ε και xynz ∈ L για κάθε n ≥ 0.

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

Page 48: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

48

Γιάννης Ρεφανίδης 95

Παράδειγμα 1

• Η γλώσσα L={anbn : n≥0}δεν είναι κανονική. – Προσπαθούμε να φτιάξουμε λέξεις της μορφής xynz

που να ανήκουν στη γλώσσα για κάθε n.

– Υπάρχουν τρεις περιπτώσεις: • Το y να αποτελείται μόνο από a.

• Το y να αποτελείται μόνο από b.

• Το y να αποτελείται από μερικά a και στη συνέχεια από μερικά b.

– Και στις τρεις περιπτώσεις μπορεί εύκολα να φανεί ότι δεν είναι δυνατόν λέξεις αυτής της μορφής να ανήκουν στη γλώσσα L για κάθε n, είτε γιατί δεν θα είναι ίσος ο αριθμός των a και των b (πρώτη και δεύτερη περίπτωση), είτε γιατί θα υπάρχουν 'ανακατωμένα' a και b (τρίτη περίπτωση).

Γιάννης Ρεφανίδης 96

Παράδειγμα 2

• Η γλώσσα L={an: Ο n είναι πρώτος αριθμός} δεν

είναι κανονική.

– Σύμφωνα με το θεώρημα, θα πρέπει να υπάρχουν x=ap,

y=aq, z=ar, p,r ≥0, q>0, τέτοια ώστε κάθε λέξη της

μορφής xynz να ανήκει στη γλώσσα.

– Δηλαδή θα πρέπει η λέξη ap+nq+r να ανήκει στη γλώσσα

για κάθε n≥0, δηλαδή ο αριθμός p+nq+r πρέπει να

είναι πρώτος για κάθε n≥0.

– Όμως, έστω n=p+2q+r+2, τότε p+nq+r=(q+1)(p+2q+r)

Page 49: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

49

Γραμματικές χωρίς

συμφραζόμενα

Γιάννης Ρεφανίδης 98

Γραμματικές χωρίς συμφραζόμενα

• Μια γραμματική χωρίς συμφραζόμενα G ορίζεται

ως μια τετράδα (V, Σ, R, S) όπου:

– V είναι ένα αλφάβητο

– Σ είναι το σύνολο των τερματικών συμβόλων,

Σ V.

– R, το σύνολο των κανόνων, είναι μια σχέση

από το (V-Σ) στο V*.

– S, το αρχικό σύμβολο, είναι στοιχείο του V-Σ.

Page 50: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

50

Γιάννης Ρεφανίδης 99

Εφαρμογή κανόνων

• Τα στοιχεία του συνόλου V-Σ ονομάζονται μη-τερματικά.

• Για κάθε Α∈V-Σ και u∈V *, εφόσον ισχύει R(A,u) γράφουμε Au.

• Για δύο συμβολοσειρες v,w∈V*, λέμε ότι η w παράγεται από την v σε ένα βήμα, και συμβολίζουμε με v⇒w εάν:

– v=xAy, x,y∈V*

– w=xuy

– Υπάρχει ο κανόνας Au στο σύνολο κανόνων.

• Οι γραμματικές λέγονται "χωρίς συμφραζόμενα" επειδή στο αριστερό μέρος των κανόνων τους έχουν ένα μη-τερματικό σύμβολο και μόνο.

Γιάννης Ρεφανίδης 100

Παραγωγή των λέξεων της γλώσσας

• Συμβολίζουμε με v⇒w το γεγονός ότι η λέξη w

παράγεται από τη λέξη v με εφαρμογή πολλών

κανόνων από το σύνολο κανόνων R.

• Με βάση τα παραπάνω, η γλώσσα L(G) που

παράγεται από μια γραμματική χωρίς

συμφραζόμενα G ορίζεται ως εξής:

– L(G)={w∈Σ*:S⇒w}

*

*

Page 51: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

51

Γιάννης Ρεφανίδης 101

Παράδειγμα 1

• Έστω η γραμματική χωρίς συμφραζόμενα G = (V,

Σ, R, S) όπου:

– V={S,a,b}

– Σ={a,b}

– Η σχέση R αποτελείται από τους κανόνες SaSb και

Sε.

• Μια παραγωγή της γλώσσας αυτής είναι η:

– S⇒aSb⇒aaSbb⇒aabb

• Είναι εύκολο να δει κανείς ότι L(G)={anbn: n≥0}

Γιάννης Ρεφανίδης 102

Παράδειγμα 1 (συνέχεια...)

• Βλέπουμε από το παράδειγμα ότι κάποιες

γλώσσες χωρίς συμφραζόμενα δεν είναι

κανονικές.

• Ωστόσο ισχύει ότι όλες οι κανονικές γλώσσες

μπορούν να προκύψουν από γραμματικές χωρίς

συμφραζόμενα.

Page 52: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

52

Γιάννης Ρεφανίδης 103

Παράδειγμα 2

• Έστω η γραμματική G=(V,Σ,R,S) με:

– V={S,Π,Ρ,Ο,Ε,Α}∪Σ

– Σ={ο, είναι, Νίκος, καλός, φοιτητής}

– R={SΠΡΠ, ΠΑΕΟ, ΠΕΟ, ΠΑΟ, ΠΟ, Αο, Ρείναι, ΟΝίκος, Εκαλός, Οφοιτητής}

• Έγκυρες "λέξεις" που παράγονται είναι οι:

– ο Νίκος είναι καλός φοιτητής

– ο Νίκος είναι φοιτητής

– ο καλός Νίκος είναι φοιτητής

– κλπ

Π=Προσδιορισμός

Ρ=Ρήμα

Ο=Ουσιαστικό

Ε=Επίθετο

Α=Άρθρο

Γιάννης Ρεφανίδης 104

Παράδειγμα 3

• Έστω η γραμματική G=(V,Σ,R,E) με:

– V={E}∪Σ

– Σ={ x, y, +, ⋅ , (, ) }

– R={E(E), EE+E, ΕE⋅E, Ex, Ey}

• Έγκυρες "λέξεις" που παράγονται είναι οι:

– x+y

– x+x⋅y

– (x⋅y+x⋅x) ⋅(x+y⋅ (x+y⋅y))

– κλπ

E=Έκφραση

Page 53: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

53

Γιάννης Ρεφανίδης 105

Παράδειγμα 3

(συνέχεια...)

• (x⋅y+x⋅x) ⋅(x+y⋅ (x+y⋅y))

Ε⇒Ε⋅Ε

⇒ (Ε)⋅Ε

⇒ (Ε)⋅(Ε)

⇒ (Ε+Ε)⋅(Ε)

⇒ (Ε⋅Ε+Ε)⋅(Ε)

⇒ (Ε⋅Ε+Ε⋅Ε)⋅(Ε)

⇒ (Ε⋅Ε+Ε⋅Ε)⋅(Ε+Ε)

⇒ (Ε⋅Ε+Ε⋅Ε)⋅(Ε+Ε⋅Ε)

⇒ (Ε⋅Ε+Ε⋅Ε)⋅(Ε+Ε⋅(Ε))

⇒ (Ε⋅Ε+Ε⋅Ε)⋅(Ε+Ε⋅(Ε+Ε))

⇒ (Ε⋅Ε+Ε⋅Ε)⋅(Ε+Ε⋅(Ε+Ε⋅Ε))

...........

...........

(x⋅y+x⋅x) ⋅(x+y⋅ (x+y⋅y))

Γιάννης Ρεφανίδης 106

Συντακτικό δέντρο (Parse Tree)

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

• Κάθε κόμβος του αντιστοιχεί σε ένα σύμβολο.

• Τα παιδιά ενός κόμβου προκύπτουν από την εφαρμογή ενός κανόνα στο σύμβολο του κόμβου.

• Τα φύλλα του δέντρου είναι τερματικά σύμβολα.

• Η λέξη προκύπτει παραθέτοντας όλα τα φύλλα του δέντρου, διαβάζοντάς τα από αριστερά προς τα δεξιά.

Page 54: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

54

Γιάννης Ρεφανίδης 107

Παράδειγμα συντακτικού δέντρου (για την παραγωγή της διαφάνειας 105)

(x⋅y+x⋅x) ⋅(x+y⋅(x+y⋅y))

Ε

Ε ⋅ Ε

Ε + Ε Ε + Ε

Ε ⋅ Ε Ε ⋅ Ε Ε ⋅ Ε

( Ε )

Ε + Ε

Ε ⋅ Ε

x y x x

x

y

x

y y

Γιάννης Ρεφανίδης 108

Εναλλακτικές Παραγωγές

• Είναι δυνατόν μια λέξη να παράγεται με περισσότερους από έναν τρόπους από τους κανόνες μιας γραμματικής (και άρα να έχει εναλλακτικά συντακτικά δέντρα).

• Για παράδειγμα, η λέξη x+x⋅y μπορεί να παραχθεί από τη γραμματική του παραδείγματος 3 ως εξής: – E ⇒ E+E ⇒ E+E⋅E ⇒ ... ⇒ x+x⋅y

• αλλά και ως εξής: – E ⇒ E⋅E ⇒ E+E⋅E ⇒ ... ⇒ x+x⋅y

• Οι γραμματικές που επιτρέπουν εναλλακτικές παραγωγές λέγονται διφορούμενες (ambiguous).

Page 55: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

55

Γιάννης Ρεφανίδης 109

Αριστερότερη Παραγωγή

(leftmost derivation) • Ως αριστερότερη παραγωγή μιας λέξης ορίζεται

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

• Στο παράδειγμα της λέξης x+x⋅y, αριστερότερη παραγωγή είναι η: – E ⇒ EE ⇒ E+EE ⇒ x+EE ⇒ x+xE ⇒ x+xy

• Παρόμοια ορίζεται η δεξιότερη παραγωγή (rightmost derivation). – Για κάθε λέξη, εφόσον υπάρχει μια παραγωγή, τότε

υπάρχουν σίγουρα μια αριστερότερη και μια δεξιότερη παραγωγή.

Γιάννης Ρεφανίδης 110

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

• Μια γραμματική λέγεται κανονική, εάν στο δεξιό

μέρος κάθε κανόνα της υπάρχει το πολύ ένα μη-

τερματικό σύμβολο, και αυτό είναι πάντα στην

τελευταία θέση.

• Τα σύνολα των γλωσσών των κανονικών

γραμματικών και των γλωσσών των κανονικών

εκφράσεων (ή των πεπερασμένων αυτομάτων)

ταυτίζονται.

Page 56: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

56

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

(Pushdown Automata)

Γιάννης Ρεφανίδης 112

Η στοίβα (Stack)

• Η στοίβα είναι μια δομή δεδομένων, όπου μπορεί

το αυτόματο να αποθηκεύει προσωρινά σύμβολα.

• Έχει άπειρη χωρητικότητα.

• Η λογική λειτουργίας της στοίβας είναι η εξής: Τα

σύμβολα αποθηκεύονται σε μια σειρά, με τρόπο

τέτοιο ώστε το τελευταίο σύμβολο που

αποθηκεύτηκε να είναι το πρώτο που θα εξαχθεί.

Page 57: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

57

Γιάννης Ρεφανίδης 113

Σχηματική αναπαράσταση

αυτομάτου στοίβας

Πεπερασμένο

αυτόματο

Είσοδος συμβόλων Αποδοχή

ή

απόρριψη

Στοίβα a b a

Γιάννης Ρεφανίδης 114

Λογική λειτουργίας (1/2)

• Σε κάθε βήμα το αυτόματο μπορεί:

– να εισάγει ένα σύμβολο στην κορυφή της

στοίβας (push),

– να εξάγει το σύμβολο από την κορυφή της

στοίβας (pop), ή τέλος

– να αντικαταστήσει το σύμβολο στην κορυφή

της στοίβας με ένα άλλο.

Page 58: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

58

Γιάννης Ρεφανίδης 115

Λογική λειτουργίας (2/2)

• Η επόμενη κατάσταση του αυτομάτου καθορίζεται

από:

– την τρέχουσα κατάστασή του,

– το σύμβολο που διαβάζει από την είσοδό του, και τέλος

– το σύμβολο στην κορυφή της στοίβας.

• Το αυτόματο τερματίζει επιτυχώς και αποδέχεται

τη λέξη που διάβασε στην είσοδό του αν στο

τέλος βρεθεί σε τελική κατάσταση και η στοίβα

είναι άδεια.

Γιάννης Ρεφανίδης 116

Τυπικός ορισμός αυτομάτου στοίβας

• Ένα αυτόματο στοίβας Μ ορίζεται ως μια εξάδα Μ=(Κ,Σ,Γ,Δ,s,F) όπου:

– Κ είναι ένα πεπερασμένο σύνολο καταστάσεων.

– Σ είναι το αλφάβητο εισόδου.

– Γ είναι το αλφάβητο της στοίβας.

– s ∈ Κ είναι η αρχική κατάσταση.

– F ⊆ K είναι το σύνολο των τελικών καταστάσεων.

– Δ είναι η σχέση μετάβασης από το KxΣxΓ στο ΚxΓ.

Page 59: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

59

Γιάννης Ρεφανίδης 117

Παρατηρήσεις

• Ο ορισμός που δόθηκε στην προηγούμενη

διαφάνεια είναι γενικός και άρα περιλαμβάνει και

τα μη-ντετερμινιστικά αυτόματα στοίβας.

• Θα δούμε παρακάτω ότι δεν υπάρχει ισοδυναμία

ντετερμινιστικών και μη-ντετερμινιστικών

αυτομάτων στοίβας.

Γιάννης Ρεφανίδης 118

Παράδειγμα 1

• Να σχεδιαστεί ένα αυτόματο στοίβας που να

δέχεται τη γλώσσα L={wcwR| w∈{a,b}*}

• Έχουμε Μ=(Κ,Σ,Γ,Δ,s,F) όπου:

– Κ={s,f}

– Σ={a,b,c}

– Γ={a,b}

– F={f}

Page 60: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

60

Γιάννης Ρεφανίδης 119

Παράδειγμα 1

(συνέχεια...) • Η σχέση Δ ορίζεται ως εξής:

– Δ(s,a,ε) = (s,a)

– Δ(s,b,ε) = (s,b)

– Δ(s,c,ε) = (f,ε)

– Δ(f,a,a)=(f,ε)

– Δ(f,b,b)=(f,ε)

• Το αυτόματο είναι ντετερμινιστικό.

s f start c, ε/ε

a, ε/a

b, ε/b

a, a/ε

b, b/ε

Οι επιγραφές πάνω στα

βέλη δηλώνουν κατά σειρά

το σύμβολο εισόδου, το

σύμβολο που εξέρχεται από

τη στοίβα και το σύμβολο

που εισέρχεται στη στοίβα.

Γιάννης Ρεφανίδης 120

Παράδειγμα 2

• Να σχεδιαστεί ένα αυτόματο στοίβας που να

δέχεται τη γλώσσα L={wwR| w∈{a,b}*}

• Έχουμε Μ=(Κ,Σ,Γ,Δ,s,F) όπου:

– Κ={s,f}

– Σ={a,b,c}

– Γ={a,b}

– F={f}

Page 61: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

61

Γιάννης Ρεφανίδης 121

Παράδειγμα 2

(συνέχεια...) • Η σχέση Δ ορίζεται ως εξής:

– Δ(s,a,ε) = (s,a)

– Δ(s,b,ε) = (s,b)

– Δ(s,ε,ε) = (f,ε)

– Δ(f,a,a)=(f,ε)

– Δ(f,b,b)=(f,ε)

• Το αυτόματο είναι μη-ντετερμινιστικό.

s f start ε, ε/ε

a, ε/a

b, ε/b

a, a/ε

b, b/ε

Γιάννης Ρεφανίδης 122

Παρατήρηση

• Για να είναι ένα αυτόματο στοίβας

ντετερμινιστικό θα πρέπει:

– Να μην υπάρχουν διαφορετικές μεταβάσεις για

το ίδιο σύμβολο εισόδου

(συμπεριλαμβανομένου του ε) και την ίδια

κατάστασης της στοίβας.

Page 62: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

62

Αυτόματα Στοίβας και Γραμματικές

χωρίς Συμφραζόμενα

Γιάννης Ρεφανίδης 124

Ισοδυναμία

• Η κλάση των γλωσσών που είναι δεκτές από

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

γλωσσών χωρίς συμφραζόμενα.

– γραμματικής ⇒ αυτόματο στοίβας

– αυτόματο στοίβας ⇒ γραμματική

Page 63: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

63

Γιάννης Ρεφανίδης 125

Γραμματική ⇒ Αυτόματο Στοίβας

• Έστω η γραμματική G=(V,Σ,R,S).

• Κατασκευάζουμε το αυτόματο M=({p,q},Σ,V,Δ,p,{q}), όπου η Δ έχει τις εξής μεταβάσεις:

– (p,ε,ε)(q,S)

– (q,ε,Α)(q,x) για κάθε κανόνα Ax

– (q,a,a)(q,ε) για κάθε a∈Σ.

• Το αυτόματο που προκύπτει μπορεί να είναι μη ντετερμινιστικό (εξαρτάται από τη γραμματική).

Γιάννης Ρεφανίδης 126

Γραμματική ⇒ Αυτόματο Στοίβας

Παράδειγμα (1/2)

• Έστω η γλώσσα {wcwR: w∈{a,b}*} που ορίζεται

από τη γραμματική G=(V,Σ,R,S) με:

– V={S,a,b,c}

– Σ={a,b,c}

– R={SaSa, SbSb, Sc}

Page 64: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

64

Γιάννης Ρεφανίδης 127

Γραμματική ⇒ Αυτόματο Στοίβας

Παράδειγμα (2/2)

p q start ε, ε/S

ε, S/aSa

ε, S/bSb

ε, S/c a, a/ε

b, b/ε c, c/ε

Γιάννης Ρεφανίδης 128

Αυτόματο Στοίβας ⇒ Γραμματική

• Εκτός ύλης...

Page 65: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

65

Ιδιότητες Γραμματικών

χωρίς Συμφραζόμενα

Γιάννης Ρεφανίδης 130

Ιδιότητες Γραμματικών

χωρίς Συμφραζόμενα • Ιδιότητες Κλειστότητας

• Ιδιότητες Περιοδικότητας

• Αλγοριθμικές ιδιότητες

Page 66: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

66

Γιάννης Ρεφανίδης 131

Ιδιότητες Κλειστότητας

• Οι γλώσσες χωρίς συμφραζόμενα είναι κλειστές

ως προς την ένωση, την παράθεση και Kleene

Star.

• Οι γλώσσες χωρίς συμφραζόμενα δεν είναι

κλειστές ως προς την τομή και τη συμπλήρωση.

Γιάννης Ρεφανίδης 132

Ένωση

• Έστω G1=(V1, Σ1, R1, S1) και G2=(V2, Σ2, R2, S2).

Η γραμματική G για την οποία ισχύει L(G)=L(G1)

L(G2) ορίζεται ως εξής:

– G=(V1 V2 {S},

Σ1 Σ2,

R1 R2 {SS1,S S2},

S)

Page 67: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

67

Γιάννης Ρεφανίδης 133

Παράθεση

• Έστω G1=(V1, Σ1, R1, S1) και G2=(V2, Σ2, R2, S2).

Η γραμματική G για την οποία ισχύει

L(G)=L(G1)L(G2) ορίζεται ως εξής:

– G=(V1 V2 {S},

Σ1 Σ2,

R1 R2 {SS1S2},

S)

Γιάννης Ρεφανίδης 134

Kleene Star

• Έστω G1=(V1, Σ1, R1, S1). Η γραμματική G για την

οποία ισχύει L(G)=L(G1)* ορίζεται ως εξής:

– G=(V1,

Σ1,

R1 {S1ε, S1S1S1},

S1)

Page 68: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

68

Γιάννης Ρεφανίδης 135

Ιδιότητες Περιοδικότητας

Θεώρημα άντλησης για γραμματικές • Έστω G μια γραμματική χωρίς συμφραζόμενα.

Τότε υπάρχει ένας αριθμός Κ (που εξαρτάται από

την G) τέτοιος ώστε κάθε συμβολοσειρά w∈L(G)

με |w|>K να μπορεί να γραφεί ως w=uvxyz,

|v|+|y|>0 και uvnxynz ∈ L(G) για κάθε n≥0.

Γιάννης Ρεφανίδης 136

Παράδειγμα

• Η γλώσσα L={anbncn : n≥0} δεν είναι χωρίς

συμφραζόμενα.

• Έστω μια αρκετά μεγάλη λέξη w∈L, τέτοια ώστε

|w|>K ή ισοδύναμα n>K/3.

• w=uvxyz με vε ή yε.

• Σύμφωνα με το θεώρημα άντλησης, θα πρέπει και

η λέξη uv2xy2z να ανήκει στην L, κάτι όμως που

είναι φανερό ότι δεν μπορεί να ισχύει.

Page 69: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

69

Γιάννης Ρεφανίδης 137

Αλγοριθμικές Ιδιότητες (1/2)

• Υπάρχουν αλγόριθμοι που απαντούν στα

παρακάτω ερωτήματα σχετικά με τις γραμματικές

χωρίς συμφραζόμενα:

– Δεδομένης γραμματικής G και συμβολοσειράς

w, ανήκει η w στην L(G);

– Είναι η L(G) κενή;

Γιάννης Ρεφανίδης 138

Αλγοριθμικές Ιδιότητες (2/2)

• Δεν υπάρχουν αλγόριθμοι που να απαντούν πάντα

στις παρακάτω ερωτήσεις:

– Έχουν δύο γραμματικές την ίδια γλώσσα;

– Μπορεί μια γραμματική να παράγει όλες τις

λέξεις του αλφαβήτου της;

– Είναι η τομή των γλωσσών δύο γραμματικών

κενό σύνολο;

– Είναι μια γραμματική διφορούμενη;

Page 70: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

70

Ντετερμινιστικά Αυτόματα

Στοίβας

Γιάννης Ρεφανίδης 140

Ντετερμινιστικά Αυτόματα

Στοίβας (1/2)

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

• Υπάρχουν γλώσσες χωρίς συμφραζόμενα που δεν γίνονται δεκτές από ντετερμινιστικά αυτόματα στοίβας. – L={wwR}

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

Page 71: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

71

Γιάννης Ρεφανίδης 141

Ντετερμινιστικά Αυτόματα

Στοίβας (2/2)

• Για τις γνωστές γλώσσες προγραμματισμού

μπορεί κανείς να κατασκευάσει ντετερμινιστικά

αυτόματα στοίβας που να δέχονται τα

συντακτικώς σωστά προγράμματα αυτών.

• Τα προγράμματα αυτά ονομάζονται συντακτικοί

αναλυτές (parsers).

Μηχανές Turing (Turing machines)

Page 72: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

72

Γιάννης Ρεφανίδης 143

Σχηματική αναπαράσταση

Πεπερασμένο

αυτόματο

a b a c a b # # # # #

Ταινία απείρου μήκους

προς τη μία κατεύθυνση.

Κεφαλή ανάγνωσης/εγγραφής

Γιάννης Ρεφανίδης 144

Τυπικός ορισμός μηχανής Turing

• Μια μηχανή Turing ορίζεται από μια τετράδα

Μ=(Κ,Σ,δ,s) όπου:

– Κ είναι ένα συνόλο από καταστάσεις.

– Σ είναι ένα αλφάβητο που μεταξύ άλλων

περιέχει το ειδικό σύμβολο #.

– s∈K είναι η αρχική κατάσταση.

– δ είναι μια συνάρτηση από το KxΣ στο

K {h} x Σ {L,R}.

Page 73: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

73

Γιάννης Ρεφανίδης 145

Παρατηρήσεις

• Υπάρχει πάντα η ειδική κατάσταση h που

ονομάζεται κατάσταση τερματισμού. Συνήθως δεν

την αναφέρουμε στο σύνολο Κ.

• Το σύμβολο # ονομάζεται κενό σύμβολο.

• Οι ειδικοί χαρακτήρες L και R συμβολίζουν

μετακίνηση της κεφαλής ανάγνωσης/εγγραφής

κατά μία θέση αριστερά και δεξιά αντίστοιχα.

Γιάννης Ρεφανίδης 146

Τρόπος λειτουργίας (1/4)

• Αρχικά η μηχανή Turing βρίσκεται στην κατάσταση s και η κεφαλή ανάγνωσης/εγγραφής βρίσκεται στο αριστερό άκρο της ταινίας.

• Σε κάθε βήμα η μηχανή Turing μπορεί να μεταβεί σε μία νέα κατάσταση ή να παραμείνει στην ίδια (όπως συμβαίνει σε όλα τα αυτόματα).

• Επιπλέον, σε κάθε βήμα η κεφαλή ανάγνωσης/εγγραφής μπορεί εναλλακτικά:

– Να γράψει ένα σύμβολο στην τρέχουσα θέση

– Να μετακινηθεί μία θέση αριστερά ή δεξιά.

Page 74: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

74

Γιάννης Ρεφανίδης 147

Τρόπος λειτουργίας (2/4)

• Αρχικά στην ταινία είναι γραμμένα κάποια

σύμβολα. Αυτά είναι συγκεντρωμένα στο

αριστερό άκρο της ταινίας. Δεξιά από αυτά

υπάρχουν μόνο χαρακτήρες κενού (#).

• H κεφαλή ανάγνωσης/εγγραφής δείχνει αρχικά σε

κάποια προκαθορισμένη θέση της ταινίας.

• Η μηχανή Turing δεν διαβάζει άλλα σύμβολα

κατά τη λειτουργία της παρά μόνο αυτά που είναι

γραμμένα εξαρχής στην ταινία.

Γιάννης Ρεφανίδης 148

Τρόπος λειτουργίας (3/4)

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

• Η μηχανή τερματίζει είτε όταν εισέλθει στη κατάσταση τερματισμού h.

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

Page 75: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

75

Γιάννης Ρεφανίδης 149

Τρόπος λειτουργίας (4/4)

• Η μηχανή Turing δεν έχει "καλές" και "κακές" τελικές καταστάσεις.

• Όταν η μηχανή Turing τερματίσει (εισερχόμενη στην κατάσταση τερματισμού h), τότε η "απάντηση" είναι ό,τι υπάρχει στην ταινία.

• Με αυτό τον τρόπο η μηχανή Turing μπορεί να δίνει σύνθετες απαντήσεις (και όχι μονολεκτικές της μορφής ΝΑΙ/ΟΧΙ, όπως συνέβαινε με τα απλά αυτόματα), όπως για παράδειγμα: – Το ημίτονο ενός αριθμού

– Πόσες φορές εμφανίζεται ένας χαρακτήρας μέσα σε μια λέξη.

Γιάννης Ρεφανίδης 150

Παράδειγμα

• Μια μηχανή που σβήνει τη λέξη εισόδου.

– Κ={s,q}

– Σ={a,#}

• δ(s,a) = (q,#)

• δ(s,#) = (h,#)

• δ(q,a) = (s,a)

• δ(q,#) = (s,R)

• Αρχικά η κεφαλή είναι στο αριστερό άκρο της ταινίας.

Δεν εκτελείται

ποτέ.

Page 76: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

76

Γιάννης Ρεφανίδης 151

Παράδειγμα (συνέχεια...)

• Ή και διαγραμματικά...

s start a/#

q

h

#/#

#/R

a/a Δεν εκτελείται

ποτέ

Το πρώτο σύμβολο είναι

αυτό που διαβάζει η

μηχανή, ενώ το δεύτερο

είναι η κίνηση που εκτελεί

ή το σύμβολο που γράφει.

Γιάννης Ρεφανίδης 152

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

• Η τρέχουσα κατάσταση υπολογισμού μιας μηχανής Turing καθορίζεται πλήρως από: – Την τρέχουσα κατάστασή της

– Τη λέξη που υπάρχει στην ταινία, αριστερά από την κεφαλή.

– Το χαρακτήρα που υπάρχει στη θέση της κεφαλής.

– Τη λέξη που υπάρχει από την ταινία δεξιά από την κεφαλή και μέχρι τον τελευταίο μη-κενό χαρακτήρα.

• Συμβολίζεται με (q,w,a,u) ή (q,wau).

• Όταν αναφερόμαστε μόνο στην κατάσταση της ταινίας, γράφουμε wau.

Page 77: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

77

Γιάννης Ρεφανίδης 153

Μεταβάσεις

• Μεταξύ συνολικών καταστάσεων ορίζεται η

σχέση ⊦, η οποία δηλώνει ότι η μια κατάσταση

παράγεται από την άλλη σε ένα βήμα.

• Η σχέση ⊦* δηλώνει ότι η μια κατάσταση

παράγεται από την άλλη σε πολλά βήματα.

Γιάννης Ρεφανίδης 154

Παράδειγμα

• Έτσι, στο παράδειγμα των διαφανειών 150-151,

και αν υποθέσουμε ότι αρχικά υπάρχουν 4

σύμβολα a στην ταινία, έχουμε:

– (s,aaaa) ⊦ (q,#aaa) ⊦ (s,#aaa) ⊦ (q,##aa) ⊦

(s,##aa) ⊦ (q,###a) ⊦ (s,###a) ⊦ (q,####) ⊦

(s,#####) ⊦ (h,#####)

• Ή και πιο σύντομα:

– (s,aaaa) ⊦* (h,#####)

Page 78: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

78

Υπολογισμοί με μηχανές Turing

Γιάννης Ρεφανίδης 156

Συμβάσεις (1/2)

• Στο εξής θα θεωρούμε ότι:

– Η συμβολοσειρά εισόδου περικλείεται από ένα κενό σε κάθε πλευρά.

– Η συμβολοσειρά εισόδου (μαζί με τα κενά) είναι γραμμένη στο αριστερότερο άκρο της ταινίας.

– Η κεφαλή βρίσκεται αρχικά στο κενό στο δεξιό άκρο της συμβολοσειράς εισόδου.

– Η μηχανή ξεκινά τη λειτουργία της από την αρχική της κατάσταση.

Page 79: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

79

Γιάννης Ρεφανίδης 157

Συμβάσεις (2/2)

• Θα λέμε ότι η μηχανή Turing τερμάτισε με

είσοδο w, εάν (s,#w#)⊦*(h,x) για κάποια λέξη x.

• Θα λέμε ότι η μηχανή Turing κρέμασε με είδοσο

w, εάν ξεκινώντας από τη συνολική κατάσταση

(s,#w#) η κεφαλή μετακινηθεί αριστερότερα από

το αριστερό άκρο της ταινίας.

Γιάννης Ρεφανίδης 158

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

• Έστω Σ0 και Σ1 αλφάβητα που δεν περιέχουν το κενό σύμβολο #.

• Έστω f μια συνάρτηση από το Σ0* στο Σ1*.

• Λέμε ότι μια μηχανή Turing Μ υπολογίζει τη συνάρτηση f, εάν (s,#w#) ⊦* (h,#u#) για κάθε w∈Σ0, u∈Σ1, τέτοια ώστε f(w)=u.

• Εάν υπάρχει τέτοια μηχανή Turing, η f λέγεται Turing-υπολογίσιμη συνάρτηση.

Page 80: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

80

Γιάννης Ρεφανίδης 159

Παράδειγμα Α

• Έστω Σ={a,b} και μια συνάρτηση f:Σ*Σ*,

τέτοια ώστε για κάθε w να ισχύει f(w)=w, όπου το

w προκύπτει εάν αντικαταστήσουμε όλα τα a του

w με b και αντίστροφα.

Γιάννης Ρεφανίδης 160

Παράδειγμα Α (συνέχεια...)

q0

start q1 h

#/L

a/L

b/L q2

a/b

b/a

#/R

a/R

b/R

#/#

Παράδειγμα υπολογισμού:

(q0,#aba#) ⊦ (q1,#aba#) ⊦ (q0,#abb#) ⊦ (q1,#abb#) ⊦ (q0,#aab#) ⊦

(q1,#aab#) ⊦ (q0,#bab#) ⊦ (q1,#bab#) ⊦ (q2,#bab#) ⊦ (q2,#bab#) ⊦

(q2,#bab#) ⊦ (q2,#bab#) ⊦ (h,#bab#)

Page 81: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

81

Γιάννης Ρεφανίδης 161

Παράδειγμα Β

• Έστω f η συνάρτηση διαδοχής f(n)=n+1.

• Θεωρώντας το αλφάβητο Σ={Ι,#} και την

αντιστοίχιση n↔In και n+1↔In+1,

κατασκευάζουμε μια μηχανή Turing που

προσθέτει ένα σύμβολο I στα δεξιά κάθε ομάδας

τέτοιων συμβόλων.

Γιάννης Ρεφανίδης 162

Παράδειγμα Β (συνέχεια...)

q0

start h

I/R

#/I

Παράδειγμα υπολογισμού:

(q0,#III#) ⊦ (q0,#IIII) ⊦ (h,#IIII#)

Ακόμη ένα παράδειγμα υπολογισμού:

(q0,##) ⊦ (q0,#I) ⊦ (h,#I#)

Και ένα παράδειγμα λάθος υπολογισμού:

(q0,#III) ⊦ (h,#III#)

Page 82: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

82

Παραλλαγές της βασικής

μηχανής Turing

Γιάννης Ρεφανίδης 164

Παραλλαγές της

βασικής μηχανής Turing (1/2)

• Θα μπορούσε κανείς να φανταστεί πιο πολύπλοκες μηχανές Turing, ελπίζοντας ότι αυτές θα είχαν περισσότερες δυνατότητες.

• Μερικά παραδείγματα: – Η ταινία να είναι άπειρη και προς τις δύο

κατευθύνσεις.

– Να υπάρχουν πολλές ταινίες.

– Να υπάρχουν πολλές κεφαλές ανάγνωσης/εγγραφής σε κάθε ταινία.

– Οι ταινίες να είναι διδιάστατες αντί για μονοδιάστατες.

– Όλοι οι δυνατοί συνδυασμοί των παραπάνω.

– κλπ

Page 83: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

83

Γιάννης Ρεφανίδης 165

Παραλλαγές της

βασικής μηχανής Turing (2/2)

• Αποδεικνύεται (η απόδειξη παραλείπεται) ότι όλες

αυτές οι παραλλαγές της βασικής μηχανής Turing

είναι εντελώς ισοδύναμες με τη βασική μηχανή

Turing που έχουμε περιγράψει στις προηγούμενες

διαφάνειες.

Γιάννης Ρεφανίδης 166

Μη-ντετερμινιστικές μηχανές Turing (1/2)

• Θα μπορούσαμε να κατασκευάσουμε μη-

ντετερμινιστικές μηχανές Turing, κατά τρόπο

ανάλογο με τα μη-ντετερμινιστικά αυτόματα.

• Επειδή μια μη-ντετερμινιστική μηχανή Turing

μπορεί να γράψει διαφορετικό αποτέλεσμα στην

ταινία για την ίδια είσοδο, δεν μπορούμε να

χρησιμοποιήσουμε το αποτέλεσμα ως κριτήριο

σύγκρισης μη-ντετερμινιστικών και

ντετερμινιστικών μηχανών Turing.

Page 84: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

84

Γιάννης Ρεφανίδης 167

Μη-ντετερμινιστικές μηχανές Turing (2/2)

• Χρησιμοποιούμε ως κριτήριο σύγκρισης το

γεγονός εάν μια μη-ντετερμινιστική μηχανή

τερματίζει ή όχι (π.χ. κρεμάει ή δεν τερματίζει

ποτέ) για δεδομένη είσοδο.

• Υπό αυτό το πρίσμα, για κάθε μη-ντετερμινιστική

μηχανή Turing υπάρχει μια αντίστοιχη

ντετερμινιστική.

Συνδυασμοί μηχανών Turing

Page 85: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

85

Γιάννης Ρεφανίδης 169

Συνδυασμός δύο μηχανών

• Έστω δύο μηχανές Μ1 και Μ2. Ο συμβολισμός >Μ1Μ2 σημαίνει τα εξής: – Ξεκινά τον υπολογισμό η Μ1.

– Η Μ1 τερματίζει.

– Αμέσως μετά ξεκινά τον υπολογισμό της η Μ2.

– Η Μ2 τερματίζει.

– Το συνολικό αποτέλεσμα της συνδυασμένης μηχανής Turing είναι ό,τι έμεινε στην ταινία μετά τον τερματισμό και της M2.

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

Γιάννης Ρεφανίδης 170

Σχήματα μηχανών

• Μπορούμε να συνδυάσουμε περισσότερες από δύο μηχανές, με τρόπο που θυμίζει λειτουργία πεπερασμένων αυτομάτων.

• Μετά τον τερματισμό της M1, θα ξεκινήσει είτε η Μ2 ή η Μ3, ανάλογα με το σύμβολο που είναι γραμμένο στη θέση που δείχνει η κεφαλή.

Μ1 Μ2

Μ3

a

b

• Αποδεικνύεται ότι κάθε σχήμα μηχανής είναι ισοδύναμο με μια μηχανή Turing.

Page 86: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

86

Γιάννης Ρεφανίδης 171

Παράδειγμα (1/2)

• Έστω ότι η Μ1 εκτελεί πρόσθεση μεταξύ δύο ακεραίων αριθμών και η Μ2 εκτελεί πολλαπλασιασμό.

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

• Έστω pi οι καταστάσεις της Μ1 και qi οι καταστάσεις της M2, με p0 και q0 τις αρχικές καταστάσεις κάθε μηχανής.

• Επίσης, έστω hp και hq οι καταστάσεις τερματισμού των M1 και M2 αντίστοιχα.

Γιάννης Ρεφανίδης 172

Παράδειγμα (2/2)

• Εάν θέλαμε να υπολογίσουμε το αποτέλεσμα

2*(3+4) θα χρησιμοποιούσαμε το σχήμα μηχανών

>Μ1Μ2 με αρχική είσοδο την #ΙΙ#ΙΙΙ#ΙΙΙΙ# .

• Ο υπολογισμός θα πήγαινε περίπου ως εξής:

– (p0, #ΙΙ#ΙΙΙ#ΙΙΙΙ#)⊦*(hp, #ΙΙ#ΙΙΙΙΙΙΙ#)⊦

(q0, #ΙΙ#ΙΙΙΙΙΙΙ#)⊦*(hq, #ΙΙΙΙΙΙΙΙΙΙΙΙΙΙ#)

Page 87: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

87

Θέση του Church

Γιάννης Ρεφανίδης 174

Θέση του Church

• Αλγόριθμος είναι οποιαδήποτε διαδικασία μπορεί να εκτελεστεί από κάποια μηχανή Turing. – Δεν πρόκειται για θεώρημα αλλά για θέση.

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

– Κβαντικοί υπολογιστές;

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

Page 88: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

88

Γλώσσες και μηχανές Turing

Γιάννης Ρεφανίδης 176

Turing αποφασίσιμες γλώσσες

• Έστω μια γλώσσα L ⊆ Σ*.

• Έστω μια συνάρτηση χL: Σ*{Ⓨ,Ⓝ}, τέτοια

ώστε χL(w)=Ⓨ, εφόσον wL, αλλιώς χL(w)=Ⓝ.

• Εάν η συνάρτηση χL είναι Turing υπολογίσιμη,

τότε η γλώσσα L λέγεται Turing αποφασίσιμη.

Page 89: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

89

Γιάννης Ρεφανίδης 177

...και με πιο απλά λόγια

• Με άλλα λόγια, αν για τη γλώσσα L ⊆ Σ* υπάρχει

μια μηχανή Turing, τέτοια ώστε κάθε φορά που

γράφουμε μια λέξη w του Σ* στην ταινία και

αφήνουμε τη μηχανή Turing να δουλέψει, η

μηχανή τερματίζει πάντα (χωρίς να κρεμάει)

γράφοντας στην ταινία είτε Ⓨ ή Ⓝ, ανάλογα με

το αν η λέξη w ανήκει ή όχι στη γλώσσα L

αντίστοιχα, τότε η γλώσσα L λέγεται Turing

αποφασίσιμη.

Γιάννης Ρεφανίδης 178

Turing αποδεκτές γλώσσες

• Έστω μια μηχανή Turing M και ένα αλφάβητο Σ. Λέμε ότι η Μ δέχεται (accepts) μια λέξη wΣ* εάν η Μ τερματίζει με είσοδο τη λέξη w.

• Έστω μια γλώσσα L Σ*.

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

Page 90: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

90

Γιάννης Ρεφανίδης 179

...και με πιο απλά λόγια

• Με άλλα λόγια, για να είναι μια γλώσσα Turing

αποδεκτή θα πρέπει να υπάρχει μια μηχανή

Turing που να τερματίζει πάντα με είσοδο λέξεις

της γλώσσας και να μην τερματίζει ποτέ με είσοδο

λέξεις που δεν ανήκουν στη γλώσσα.

• Η έννοια του "μη τερματισμού" σημαίνει ότι μια

μηχανή μπορεί να λειτουργεί επ' άπειρον χωρίς να

τερματίζει ούτε να κρεμάει.

Γιάννης Ρεφανίδης 180

Παράδειγμα αποδεκτής αλλά όχι

αποφασίσιμης γλώσσας • Έστω Σ={0,1,2,...,9}.

• Έστω η γλώσσα L , η οποία ορίζεται ως εξής: – L={w: η ακολουθία w εμφανίζεται κάπου μέσα στην ακολουθία

ψηφίων του π}.

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

• Εάν το w όντως εμφανίζεται μέσα στο π, η μηχανή θα σταματήσει.

• Εάν το w δεν εμφανίζεται μέσα στο π, η μηχανή δεν θα σταματήσει ποτέ (εμείς όμως ποτέ δεν θα είμαστε σίγουροι ότι το w δεν θα εμφανιστεί "παρακάτω"...).

• Άρα η γλώσσα L είναι αποδεκτή, δεν είναι όμως αποφασίσιμη.

Page 91: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

91

Γιάννης Ρεφανίδης 181

Turing αποφασίσιμες

και Turing αποδεκτές γλώσσες • Κάθε γλώσσα που είναι Turing αποφασίσιμη είναι

και Turing αποδεκτή, αλλά όχι αντίστροφα.

Γραμματικές χωρίς περιορισμούς

Page 92: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

92

Γιάννης Ρεφανίδης 183

Γραμματικές χωρίς περιορισμούς

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

– Π.χ.: 0A11BCD10E

• Ο παραπάνω κανόνας λέει ότι εάν σε μια λέξη συναντηθεί η ακολουθία συμβόλων 0A11B, αυτή μπορεί να αντικατασταθεί από την CD10E.

• Βλέπουμε ότι αντικατάσταση μπορεί να γίνει και στα τερματικά σύμβολα. Ωστόσο, το τελικό αποτέλεσμα πρέπει να αποτελείται μόνο από τερματικά σύμβολα.

Γιάννης Ρεφανίδης 184

Ορισμός Γραμματικής

• Γραμματική G ορίζεται μια τετράδα (V, Σ, R, S) όπου:

– V είναι ένα αλφάβητο

– Σ είναι το σύνολο των τερματικών συμβόλων, Σ V.

• V-Σ είναι τα μη-τερματικά σύμβολα.

– S, το αρχικό σύμβολο, είναι στοιχείο του V-Σ.

– R, το σύνολο των κανόνων, είναι μια σχέση από το V*(V-Σ)V* στο V*.

Page 93: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

93

Γιάννης Ρεφανίδης 185

Παράδειγμα (1/2)

• Έστω η γραμματική για τη γλώσσα {anbncn: n≥1}:

– V={S,a,b,c,A,B,C,Ta,Tb,Tc}

– Σ={a,b,c}

– R= { SABCS, STc,

CAAC, CBBC, BAAB,

CTcTcc, CTcTbc,

BTbTbb, BTbTab,

ATaTbaa, Taε }

Γιάννης Ρεφανίδης 186

Παράδειγμα (2/2)

• Ας δούμε την παραγωγή της λέξης aabbcc:

• S⇒ABCS⇒ABCABCS⇒ABCABCTc⇒...⇒

AABBCCTc⇒AABBCTcc ⇒AABBTbcc⇒

AABTbbcc⇒AATabbcc⇒ATaabbcc⇒

Taaabbcc ⇒aabbcc

Σε κάθε βήμα, με υπογράμμιση φαίνονται

τα σύμβολα που παρήχθησαν από την

προηγούμενη παραγωγή ενώ με bold

φαίνονται τα γράμματα που

χρησιμοποιούνται για την επόμενη

παραγωγή.

Page 94: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

94

Γιάννης Ρεφανίδης 187

Γραμματικές και μηχανές Turing

• Μια γλώσσα παράγεται από μια γραμματική, εάν και μόνο αν είναι Turing-αποδεκτή.

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

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

Καθολική μηχανή Turing

(Universal Turing Machine)

Page 95: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

95

Γιάννης Ρεφανίδης 189

Κωδικοποίηση μηχανής Turing (1/3)

• Έστω ότι αριθμούμε τις καταστάσεις μιας μηχανής Turing ξεκινώντας από το 1 (λαμβάνοντας υπόψη και την κατάσταση h).

– Έτσι η τρίτη κατάσταση της μηχανής θα μπορούσε να συμβολίζεται με ΙΙΙ (ή Ι3 για συντομία).

• Όμοια αριθμούμε τα σύμβολα του αλφαβήτου μιας μηχανής Turing (λαμβάνοντας υπόψη και τα L και R) ξεκινώντας από το 1.

– Έτσι το τέταρτο σύμβολο του αλφαβήτου θα συμβολιζόταν με ΙΙII (ή Ι4 για συντομία).

Γιάννης Ρεφανίδης 190

Κωδικοποίηση μηχανής Turing (2/3)

• Για να περιγράψουμε μια μετάβαση πρέπει να

δώσουμε την τρέχουσα κατάσταση, το τρέχον

σύμβολο, την επόμενη κατάσταση και την

επόμενη κίνηση της κεφαλής.

• Έτσι μια μετάβαση μπορεί να περιγραφεί με

τέσσερις αριθμούς. Για παράδειγμα:

• cIIIcIIIIcIIcIIIc ή πιο σύντομα cI3cI4cI2cI3c

– Χρησιμοποιούμε το σύμβολο c για να διαχωρίζουμε

αριθμούς μεταξύ τους.

Page 96: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

96

Γιάννης Ρεφανίδης 191

Κωδικοποίηση μηχανής Turing (3/3)

• Για να περιγράψουμε πλήρως μια μηχανή Turing πρέπει να δώσουμε την αρχική της κατάσταση και όλες τις μεταβάσεις.

• Για παράδειγμα: – cI3ccI3cI3cIcI5ccI3cI5cI3cI2ccI3cI8cI3cI2cc

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

της κεφαλής L και R ενώ η πρώτη κατάσταση είναι η h.

Γιάννης Ρεφανίδης 192

Κωδικοποίηση λέξεων

• Έστω w μια λέξη του αλφαβήτου Σ μιας μηχανής Turing.

• Μπορούμε να αναπαραστήσουμε την w χρησιμοποιώντας την αναπαράσταση που είδαμε στις προηγούμενες διαφάνειες ως εξής: – ρ(w)=cIIIcIIIIIIcIIIIcIIIcIIIIIc

• Δηλαδή η w αποτελείται από 5 σύμβολα, τα οποία είναι το 3ο, το 6ο, το 4ο, το 3ο και το 5ο αντίστοιχα σύμβολα του αλφαβήτου (θεωρώντας πάντα ως δύο πρώτα σύμβολα τα L και R, τα οποία φυσικά δεν μπορούν να εμφανίζονται στη w).

Page 97: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

97

Γιάννης Ρεφανίδης 193

Καθολική μηχανή Turing (1/3)

• Θα θέλαμε να κατασκευάσουμε μια μηχανή

Turing που να μπορεί να "προγραμματισθεί",

δηλαδή να μπορεί να εκτελεί διαφορετικές

λειτουργίες, ανάλογα με το "πρόγραμμα" με το

οποίο την τροφοδοτούμε.

• Μια τέτοια μηχανή ονομάζεται καθολική μηχανή

Turing και συμβολίζεται με U.

Γιάννης Ρεφανίδης 194

Καθολική μηχανή Turing (2/3)

• Έστω μια συγκεκριμένη μηχανή Turing M, η

οποία εκτελεί συγκεκριμένη λειτουργία, για

παράδειγμα όταν η Μ ξεκινήσει με είσοδο μια

λέξη w, τερματίζει με αποτέλεσμα μια λέξη u.

• Έστω ρ(Μ), ρ(w) και ρ(u) οι κωδικοποιήσεις των

Μ, w και u, σύμφωνα με όσα είδαμε στις

προηγούμενες διαφάνειες.

• Η καθολική μηχανή θα πρέπει, όταν ξεκινά με

είσοδο #ρ(Μ)ρ(w)# να τερματίζει με #ρ(u)#.

Page 98: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

98

Γιάννης Ρεφανίδης 195

Καθολική μηχανή Turing (3/3)

• Αποδεικνύεται ότι η κατασκευή της καθολικής

μηχανής U είναι εφικτή και μάλιστα εύκολη!

Μη Αποφασισιμότητα

Page 99: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

99

Γιάννης Ρεφανίδης 197

Το πρόβλημα του τερματισμού (1/4)

• Έστω το πρόγραμμα halts(P,X), γραμμένο σε οποιαδήποτε γλώσσα προγραμματισμού, το οποίο κάνει το εξής:

– Δέχεται ως είσοδο τον κώδικα ενός άλλου προγράμματος P της ίδιας γλώσσας.

– Δέχεται ως είσοδο την είσοδο X στο πρόγραμμα P.

– Απαντά με yes ή no εάν το πρόγραμμα P με είσοδο X θα σταματήσει κάποια στιγμή την εκτέλεσή του.

Γιάννης Ρεφανίδης 198

Το πρόβλημα του τερματισμού (2/4)

• Δεν μας ενδιαφέρει ο τρόπος λειτουργίας του

halts(P,X), δηλαδή εάν προσομοιώνει τη

λειτουργία του P ή πραγματοποιεί άλλες

αναλύσεις.

• Η ύπαρξη του προγράμματος halt(P,X) θα ήταν

ανεκτίμητης αξίας. Το πρόγραμμα θα μπορούσε

να χρησιμοποιηθεί για να ανιχνεύει bugs που

έχουν να κάνουν με μη-τερματισμό σε άλλα

προγράμματα.

Page 100: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

100

Γιάννης Ρεφανίδης 199

Το πρόβλημα του τερματισμού (3/4)

• Αποδεικνύεται ότι τέτοιο πρόγραμμα δεν μπορεί να κατασκευαστεί.

• Πράγματι, έστω ότι υπήρχε το πρόγραμμα halts(P,X).

• Θα μπορούσαμε τότε να φτιάξουμε το πρόγραμμα diagonal(P) έτσι ώστε:

– diagonal(P):

• if halts(P,P)=yes then loop for ever

• else halt.

Γιάννης Ρεφανίδης 200

Το πρόβλημα του τερματισμού (4/4)

• Και τότε τίθεται το πρόβλημα:

– Τι γίνεται με την κλήση diagonal(diagonal);

– Εάν η κλήση αυτή σταματά, τότε η κλήση halts(diagonal, diagonal) θα απαντήσει yes, με αποτέλεσμα αυτή η κλήση να μην σταματήσει.

– Εάν η κλήση αυτή δεν σταματά, τότε η κλήση halts(diagonal, diagonal) θα απαντήσει no, με αποτέλεσμα αυτή η κλήση να σταματήσει.

• Το άτοπο προήλθε από την παραδοχή της ύπαρξης του προγράμματος halts. Άρα τέτοιο πρόγραμμα δεν υπάρχει.

Page 101: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

101

Γιάννης Ρεφανίδης 201

Συμπέρασμα

• Δεν μπορεί να υπάρξει κανένα πρόγραμμα,

κανένας αλγόριθμος που να μπορεί να μας πει για

οποιοδήποτε άλλο πρόγραμμα εάν αυτό θα

τερματίσει ή όχι.

• Το πρόβλημα τερματισμού ανήκει στη κατηγορία

των μη-αποφασίσιμων προβλημάτων.

Γιάννης Ρεφανίδης 202

Turing αποφασίσιμες

και αποδεκτές γλώσσες • Αναφορά σε διαφάνειες 176-180.

• Αν L είναι μια Turing-αποφασίσιμη γλώσσα, το συμπλήρωμά της είναι επίσης Turing-αποφασίσιμη.

• Δεν είναι κάθε Turing-αποδεκτή γλώσσα Turing-αποφασίσιμη.

• Το συμπλήρωμα μιας Turing-αποδεκτής γλώσσας δεν είναι συνήθως Turing-αποδεκτή γλώσσα.

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

Page 102: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

102

Γιάννης Ρεφανίδης 203

Μη αποφασίσιμα προβλήματα

• Ένα πρόβλημα λέγεται μη-αποφασίσιμο, εάν δεν

υπάρχει μηχανή Turing που να το αποφασίζει.

• Οι Turing-αποδεκτές γλώσσες αποτελούν

παράδειγμα μη-αποφασίσιμων προβλημάτων.

Γιάννης Ρεφανίδης 204

Μη-αποφασίσιμα προβλήματα

σχετικά με μηχανές Turing • Τα παρακάτω αποτελούν παραδείγματα μη-

αποφασίσιμων προβλημάτων:

– Δεδομένης μιας μηχανής M και μιας λέξης w,

τερματίζει η Μ με είσοδο w;

– Δεδομένης μιας μηχανής Μ, υπάρχει έστω και

μια λέξη για την οποία η Μ τερματίζει;

– Δεδομένης μιας μηχανής Μ, τερματίζει η Μ για

κάθε λέξη;

Page 103: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

103

Γιάννης Ρεφανίδης 205

Μη-αποφασίσιμα προβλήματα για

γραμματικές ανεξάρτητες συμφραζομένων

• Για τυχαίες γραμματικές ανεξάρτητες από

συμφραζόμενα G, G1, G2, τα παρακάτω

προβλήματα είναι μη-αποφασίσιμα:

– Ισχύει L(G)=Σ* ;

– Ισχύει L(G1)=L(G2) ;

Γιάννης Ρεφανίδης 206

Μη αποφασίσιμα προβλήματα

για γραμματικές χωρίς περιορισμούς • Για τυχαίες γραμματικές χωρίς περιορισμούς G,

G1, G2, τα παρακάτω προβλήματα είναι μη-

αποφασίσιμα:

– Για τυχαία λέξη w, ισχύει w L(G) ;

– Ισχύει L(G) = ;

Page 104: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

104

Μη ντετερμινιστικές

μηχανές Turing

Γιάννης Ρεφανίδης 207

Ορισμός

• Μια μη-ντετερμινιστική μηχανή Turing ορίζεται

όμοια με μια ντετερμινιστική, με την εξής

διαφορά:

– Για κάθε συνολική κατάσταση της μηχανής ,

μπορεί να ορίζονται περισσότερες από μια

επόμενες καταστάσεις.

• Δημιουργείται το ερώτημα, πώς λειτουργεί.

Γιάννης Ρεφανίδης 208

Page 105: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

105

Μη-ντετερμινισμός και

ημι-αποφασίσιμες γλώσσες

• Μια μη-ντετερμινιστική μηχανή Turing δέχεται

μια είσοδο w, αν υπάρχει τρόπος ξεκινώντας με

είσοδο το w να καταλήξουμε σε τελική

κατάσταση.

• Η μη-ντετερμινιστική μηχανή Turing ημι-

αποφασίζει μια γλώσσα L, αν δέχεται κάθε λέξη

w της L.

Γιάννης Ρεφανίδης 209

Μη-ντετερμινισμός και

αποφασίσιμες γλώσσες

• Μια μη-ντετερμινιστική μηχανή Turing Μ

αποφασίζει μια γλώσσα L, αν για κάθε λέξη

wΣ* ισχύουν τα εξής:

– Υπάρχει φυσικός αριθμός Ν που εξαρτάται από την Μ

και την w, τέτοιος ώστε να μην υπάρχει κατάσταση C

στην οποία να καταλήγει η μηχανή μετά από Ν μη-

ντετερμινιστικά βήματα.

– Η w ανήκει στην L αν και μόνο αν η Μ με αρχική

είσοδο την w καταλήγει στην «θετική» κατάσταση

τερματισμού της.

Γιάννης Ρεφανίδης 210

Page 106: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

106

Μη-ντετερμινισμός και

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

• Μια μη-ντετερμινιστική μηχανή Turing

υπολογίζει μια συνάρτηση f: Σ*Σ*, αν ισχύουν

τα εξής για κάθε λέξη w:

– Υπάρχει Ν που εξαρτάται από την f και την w,

τέτοιος ώστε να μην υπάρχει συνολική

κατάσταση C προσβάσιμη από την (s, #w#) σε

Ν βήματα.

– (s,#w#)⊦*(h,#u#) αν και μόνο αν f(w)=u .

• Όλοι οι δυνατοί υπολογισμοί πρέπει να συμφωνούν.

Γιάννης Ρεφανίδης 211

Παράδειγμα: Σύνθετοι αριθμοί (1/2)

• Ένας σύνθετος αριθμός είναι το γινόμενο δύο

μεγαλύτερων της μονάδας φυσικών αριθμών.

• Έστω C το σύνολο όλων σύνθετων αριθμών, σε

δυαδική αναπαράσταση:

– C={100, 110, 1000, 1001, 1010, …, 1011011,

…}

• Για να ελέγξει αν ένας αριθμός n είναι σύνθετος,

μια ντετερμινιστική μηχανή θα έπρεπε να ελέγχει

όλους τους μικρότερους αριθμούς...

Γιάννης Ρεφανίδης 212

Page 107: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

107

Παράδειγμα: Σύνθετοι αριθμοί (2/2)

• Για να ελέγξει αν ένας αριθμός n είναι σύνθετος,

μια μη-ντετερμινιστική μηχανή:

– Θα επέλεγε μη-ντετερμινιστικά δύο αριθμούς p

και q, μεγαλύτερους της μονάδας και

μικρότερους από τον n.

– Θα τους πολλαπλασίαζε.

– Εάν n=pq, θα τερματίζει «θετικά».

– Εάν npq, θα τερματίζει «αρνητικά».

Γιάννης Ρεφανίδης 213

Σύγκριση ντετερμινιστικών και

μη-ντετερμινιστικών μηχανών Turing

• Αν μια μη-ντετερμινιστική μηχανή Turing Μ αποφασίζει ή

ημι-αποφασίζει μια γλώσσα ή υπολογίζει μια συνάρτηση,

τότε υπάρχει μια ντετερμινιστική μηχανή Turing Μ' που

αποφασίζει ή ημι-αποφασίζει την ίδια γλώσσα ή

υπολογίζει την ίδια συνάρτηση.

– Η Μ' θα προσομοιώσει συστηματικά όλους τους

υπολογισμούς της Μ.

– Η Μ' απαιτεί εκθετικά περισσότερο αριθμό βημάτων

για να προσομοιώσει έναν υπολογισμο της Μ.

Γιάννης Ρεφανίδης 214

Page 108: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

108

Αναγωγές

• Έστω L1, L2 Σ*. Μια αναγωγή από την L1 στην

L2 είναι μια συνάρτηση τ : Σ*Σ*, τέτοια ώστε

xL1 αν και μόνο αν τ(x)L2.

– Κατεύθυνση αναγωγής: Από την L1 στην L2.

• Αν η L1 δεν είναι αποφασίσιμη, και υπάρχει

αναγωγή τ από την L1 στην L2, τότε ούτε η L2

είναι αποφασίσιμη.

Γιάννης Ρεφανίδης 215

Κατεύθυνση αναγωγής

• Η συνάρτηση τ(x) από την L1 στην L2:

– Ορίζεται για όλες τις λέξεις της L1

– Δεν έχει ως τιμές της όλες τις λέξεις της L2

• Γενικά η συνάρτηση τ(x) δεν είναι αντιστρέψιμη.

– Αν είναι, τότε ορίζεται και η αντίστροφη

αναγωγή.

• Αν λοιπόν η L1 δεν είναι αποφασίσιμη, τότε για τα

αντίστοιχα προβλήματα δεν είναι ούτε η L2.

Γιάννης Ρεφανίδης 216

Page 109: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

109

Παράδειγμα αναγωγής (1/3)

• Έστω η γλώσσα:

• H={«Μ»«w» : Η μηχανή Turing M τερματίζει με

συμβολοσειρά εισόδου το w}

• Η γλώσσα αυτή είναι ημι-αποφασίσιμη

– Πρόκειται για το πρόβλημα του τερματισμού

• Θα βρούμε συναρτήσεις αναγωγής τ από την Η σε

άλλες γλώσσες.

Γιάννης Ρεφανίδης 217

Παράδειγμα αναγωγής (2/3)

• Δεδομένης μιας μηχανής Turing Μ, τερματίζει η

Μ με είσοδο κενή ταινία;

• Περιγράφουμε μια αναγωγή από την Η στην:

– L={«Μ» : Η Μ τερματίζει με είσοδο ε}

• Για κάθε λέξη «Μ»«w» της Η, όπου w=a1a2…an,

κατασκευάζουμε μια λέξη «Mw» της L ως εξής:

– Mw=Ra1Ra2…RanM

Γιάννης Ρεφανίδης 218

Page 110: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

110

Παράδειγμα αναγωγής (3/3)

• Δεδομένης μιας μηχανής Turing Μ, υπάρχει έστω και μια

συμβολοσειρά για την οποία η Μ τερματίζει;

• Θα ανάγουμε την L στην L':

– L' = {«Μ» : Η Μ τερματίζει για κάποια είσοδο}

• Έχοντας μια μηχανή Μ (για την οποία δεν μπορούμε να

αποφασίσουμε αν τερματίζει με κενή είσοδο),

κατασκευάζουμε μια μηχανή Μ', η οποία στην αρχή της

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

συνεχίζει σαν την Μ.

Γιάννης Ρεφανίδης 219

Γιάννης Ρεφανίδης 220

Μερικά ακόμη

μη-αποφασίσιμα προβλήματα • Πρόβλημα Thue

• Πρόβλημα αντιστοίχησης του Post

• Πρόβλημα πλακόστρωσης

Page 111: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

111

Γιάννης Ρεφανίδης 221

Πρόβλημα Thue (1/2)

• Έστω ένα πεπερασμένο αταξινόμητο σύνολο ζευγών λέξεων:

– {w1,u1}, {w2, u2}, ...., {wn, un}

• Έστω δύο λέξεις w και u, τέτοιες ώστε:

– w=wi1wi2...wik

– u=ui1ui2...uik

όπου i1, i2, ..., ik {1, 2, ... ,n}

• Οι λέξεις w και u λέγονται ισοδύναμες.

Γιάννης Ρεφανίδης 222

Πρόβλημα Thue (2/2)

• Παράδειγμα: – Έστω {ab, a}, {bc, b}, {abc, c}.

– Έστω w=abbcabc

– Τότε η w είναι ισοδύναμη με την u=ababc

– Πράγματι, μπορούμε να τις γράψουμε: • w=ab-bc-abc

• u=a-b-c

• Το πρόβλημα που τίθεται είναι εάν μπορεί να κατασκευασθεί ένα πρόγραμμα που να μας λέει εάν για τυχαίο σύστημα Thue υπάρχουν δύο λέξεις w και u που να είναι ισοδύναμες. Το πρόβλημα αυτό είναι μη-αποφασίσιμο.

Page 112: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

112

Γιάννης Ρεφανίδης 223

Πρόβλημα αντιστοίχησης του Post (1/2)

(παραλλαγή του προβλήματος Thue)

• Έστω και πάλι ένα πεπερασμένο αταξινόμητο

σύνολο ζευγών λέξεων:

– {w1,u1}, {w2, u2}, ...., {wn, un}

• Έστω μια λέξη w τέτοια ώστε:

– w=wi1wi2...wik=ui1ui2...uik

όπου i1, i2, ..., ik {1, 2, ... ,n}

• Η λέξη w λέγεται ταίριασμα.

Γιάννης Ρεφανίδης 224

Πρόβλημα αντιστοίχησης του Post (2/2)

• Παράδειγμα:

– Έστω {a, aaa}, {abaaa, ab}, {ab, b}

– Έστω w=abaaaaaab

– Τότε η w είναι ένα ταίριασμα, αφού:

– abaaa-a-a-ab = ab-aaa-aaa-b

• Το πρόβλημα που τίθεται εάν για τυχαίο σύστημα

αντιστοίχησης υπάρχει ένα ταίριασμα. Το

πρόβλημα αυτό είναι μη-αποφασίσιμο.

Page 113: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

113

Γιάννης Ρεφανίδης 225

Πρόβλημα πλακόστρωσης (1/2)

• Έστω ένα πεπερασμένο σύνολο από τετράγωνα

πλακάκια.

• Κάθε τύπος από πλακάκι επιτρέπεται να συνορεύει

προς κάθε κατεύθυνση με συγκεκριμένους τύπους

από άλλα πλακάκια.

• Τα πλακάκια δεν επιτρέπεται να περιστραφούν.

• Έχουμε άπειρα πλακάκια από κάθε τύπο.

Γιάννης Ρεφανίδης 226

Πρόβλημα πλακόστρωσης (2/2)

• Θέλουμε να πλακοστρώσουμε το πρώτο

τεταρτημόριο του επιπέδου, τοποθετώντας στην

κάτω αριστερή του γωνία ένα συγκεκριμένο

πλακάκι.

• Το πρόβλημα που τίθεται είναι εάν, για τυχαίο

σύστημα πλακόστρωσης, είναι δυνατή η

πλακόστρωση του πρώτου τεταρτημόριου.

• Το πρόβλημα αυτό είναι μη-αποφασίσιμο.

Page 114: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

114

Ιδιότητες των αποφασίσιμων γλωσσών

• Μια γλώσσα είναι αποφασίσιμη, αν και μόνο αν

το συμπλήρωμά της είναι επίσης αποφασίσιμο.

• Μια γλώσσα είναι αποφασίσιμη, αν και μόνο αν

αυτή και το συμπλήρωμά της είναι ημι-

αποφασίσιμες.

Γιάννης Ρεφανίδης 227

Απαριθμήσιμες γλώσσες

• Μια γλώσσα L είναι απαριθμίσιμη κατά Turing,

αν και μόνο αν υπάρχει μηχανή Turing τέτοια

ώστε:

– L={w : (s,#) ⊦* (q,#w#) }

• όπου q μια προκαθορισμένη «κατάσταση

παρουσίασης» της M.

• Μια γλώσσα είναι ημι-αποφασίσιμη αν και μόνο

αν είναι απαριθμήσιμη κατά Turing.

Γιάννης Ρεφανίδης 228

Page 115: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

115

Λεξικογραφικά απαριθμήσιμες γλώσσες

• Μια μηχανή Turing Μ λέμε ότι απαριθμεί

λεξικογραφικά τη γλώσσα L, αν:

– Η Μ απαριθμεί την L.

– Όποτε συμβαίνει να ισχύει:

• (q,#w#) ⊦* (q,#w'#)

– τότε η w προηγείται λεξικογραφικά της w'.

• Μια γλώσσα είναι αποφασίσιμη, αν και μόνο αν

είναι λεξικογραφικά απαριθμήσιμη.

Γιάννης Ρεφανίδης 229

Θεώρημα του Rice

• Έστω ότι C είναι ένα γνήσιο μη-κενό υποσύνολο

της κλάσης όλων των ημι-αποφασίσιμων

γλωσσών. Τότε το ακόλουθο πρόβλημα είναι μη-

αποφασίσιμο:

– Δεδομένης μιας μηχανής Turing M, ισχύει ότι

L(M)C;

• Δεν μπορούμε να αποδείξουμε στη γενική

περίπτωση ότι η γλώσσα μιας μηχανής Turing

είναι κανονική, χωρίς συμφραζόμενα, κλπ.

Γιάννης Ρεφανίδης 230

Page 116: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

116

Υπολογιστική πολυπλοκότητα

Γιάννης Ρεφανίδης 231

Πρακτικά εφικτοί αλγόριθμοι

• Μια μηχανή Turing Μ ονομάζεται πολυωνυμικά

φραγμένη, αν υπάρχει πολυώνυμο p(n) τέτοιο

ώστε να ισχύει το εξής:

– Για κάθε είσοδο x, δεν υπάρχει κατάσταση C,

τέτοια ώστε (s,#x#) ⊦p(|x|)+1 C

• Μια γλώσσα λέγεται πολυωνυμικά

αποφασίσιμη, αν υπάρχει μια πολυωνυμικά

φραγμένη μηχανή Turing που την αποφασίζει.

• Η κλάση όλων των πολυωνυμικά αποφασίσιμων γλωσσών συμβολίζεται με P.

Γιάννης Ρεφανίδης 232

Page 117: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

117

Θέση του Church (revisited)

• Οι πολυωνυμικά φραγμένες μηχανές Turing και η κλάση P εκφράζουν ικανοποιητικά τις

διαισθητικές έννοιες, αντίστοιχα, των πρακτικά

εφικτών αλγορίθμων και των ρεαλιστικά

επιλύσιμων προβλημάτων.

• Η κλάση P είναι κλειστή ως προς το συμπλήρωμα.

Γιάννης Ρεφανίδης 233

Προβλήματα

Γιάννης Ρεφανίδης 234

Page 118: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

118

Το πρόβλημα της συνεκτικότητας

• Δεδομένων ενός κατευθυνόμενου γραφήματος

GVxV, όπου V={v1,v2, …, vn} και δύο κόμβων

vi,vjV, υπάρχει μονοπάτι από τον vi στον vj ;

• Είναι πρόβλημα, δεν είναι γλώσσα.

• Μπορεί να μετατραπεί σε γλώσσα ως εξής:

– L={(«G»,«vi»,«vj») : Υπάρχει μονοπάτι από

τον vi στον vj στο γράφημα G.

• Οι γλώσσες κωδικοποιούν προβλήματα!

• Ανήκει στο P .

Γιάννης Ρεφανίδης 235

Γράφημα Euler

• Δεδομένου ενός κατευθυνόμενου γραφήματος G, υπάρχει

κλειστό μονοπάτι στο G το οποίο χρησιμοποιεί κάθε ακμή

ακριβώς μία φορά;

– Γράφημα Euler ή γράφημα μοναδικής διάσχισης.

– L = { «G» : Το G είναι γράφημα Euler }

• Λύση:

– Υπάρχει μονοπάτι μεταξύ κάθε δύο κόμβων.

– Για κάθε κόμβο, το πλήθος των εισερχόμενων και

εξερχόμων ακμών ταυτίζονται.

• Ανήκει στο P (μπορεί να αποδειχθεί και με αναγωγή στο

πρόβλημα της συνεκτικότητας).

Γιάννης Ρεφανίδης 236

Page 119: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

119

Γιάννης Ρεφανίδης 237

Πηγή:

http://en.wikipedia.org/wiki/File:Konigs

burg_graph.svg

Οι γέφυρες του Königsberg

Πηγή:

http://en.wikipedia.org/wiki/File:Labelle

d_Eulergraph.svg

Γράφημα Hamilton

• Δεδομένου ενός γραφήματος G, υπάρχει κύκλος

που διέρχεται από κάθε κόμβο του G ακριβώς μια

φορά;

– Κύκλος Hamilton, γράφημα Hamilton.

• Δεν έχει βρεθεί κανείς πολυωνυμικός αλγόριθμος

για αυτό το πρόβλημα.

• Μη-πολυωνυμική λύση:

– Εξέτασε όλες τις μεταθέσεις κόμβων του

γραφήματος.

Γιάννης Ρεφανίδης 238

Page 120: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

120

Γιάννης Ρεφανίδης 239

Πηγή:

http://upload.wikimedia.org/wikipedia/c

ommons/c/cf/Herschel_graph.svg

Πηγή:

http://upload.wikimedia.org/wikipedia/c

ommons/6/60/Hamiltonian_path.svg

Πλανώδιος πωλητής

• Δοθέντος ενός πλήρους, μη κατευθυνόμενου

γραφήματος G=VxV με κόμβους V={v1,v2,…,vn},

καθώς και ενός συμμετρικού μη-αρνητικού

πίνακα D διαστάσεων nxn, με τα στοιχεία του dij

να εκφράζουν το βάρος της ακμής (vi,vj),

ψάχνουμε μια μετάθεση π των κορυφών V, έτσι

ώστε να ελαχιστοποιείται το παρακάτω άθροισμα:

– c(π)=dπ(1)π(2)+dπ(2)π(3)+...+dπ(n-1)π(n)+dπ(n)π(1)

• Πρόβλημα βελτιστοποίησης

Γιάννης Ρεφανίδης 240

Page 121: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

121

Μετατροπή προβλημάτων

βελτιστοποίησης σε γλώσσες

• Ορίζουμε έναν περιορισμό στο κόστος της κάθε

λύσης.

• Οι λύσεις που ικανοποιούν τον περιορισμό είναι

αποδεκτές (θεωρούνται λέξεις της γλώσσας).

• Θέτουμε ένα ανώτατο όριο Β στο κόστος της

λύσης και ψάχνουμε να βρούμε αν υπάρχει λύση

με κόστος το πολύ Β.

• Αν το πρόβλημα βελτιστοποίησης ανήκει στο P,

τότε και το πρόβλημα απόφασης ανήκει στο P.

Γιάννης Ρεφανίδης 241

Ανεξάρτητο Σύνολο

• Δεδομένων ενός μη κατευθυνόμενου γραφήματος

G και ενός ακεραίου Κ ≥ 2, υπάρχει υποσύνολο

του C του V με |C| ≥ K, τέτοιο ώστε για κάθε

vi,vjC, να μην υπάρχει ακμή μεταξύ των vi και

vj;

• Δεν έχει βρεθεί πολυωνυμικός αλγόριθμος.

Γιάννης Ρεφανίδης 242

Page 122: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

122

Γιάννης Ρεφανίδης 243

Πηγή:http://upload.wikimedia.org/wikipedia/commons/3/34/Independent_set_graph.svg

Κλίκα

• Δεδομένων ενός μη κατευθυνόμενου γραφήματος

G και ενός ακεραίου Κ ≥ 2, υπάρχει υποσύνολο

του C του V με |C| ≥ K, τέτοιο ώστε για κάθε

vi,vjC, να υπάρχει ακμή μεταξύ των vi και vj;

• Δεν έχει βρεθεί πολυωνυμικός αλγόριθμος.

Γιάννης Ρεφανίδης 244

Page 123: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

123

Γιάννης Ρεφανίδης 245

Πηγή: http://en.wikipedia.org/wiki/File:Brute_force_Clique_algorithm.svg

Κάλυμμα κόμβων

• Ένα σύνολο κόμβων καλύπτει μια ακμή, αν

περιλαμβάνει μια τουλάχιστον το ένα άκρο της.

• Δεδομένων ενός μη κατευθυνόμενου γραφήματος

G και ενός ακεραίου Β ≥ 2, υπάρχει υποσύνολο

του C του V με |C| K, τέτοιο ώστε το C να

καλύπτει όλες τις ακμές του G ;

– Σκεφτείτε το πρόβλημα της φρούρησης των

διαδρόμων ενός μουσείου.

Γιάννης Ρεφανίδης 246

Page 124: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

124

Διαμέριση ακεραίων

• Μας δίνεται ένα σύνολο n μη-αρνητικών

ακεραίων, a1, a2, …, an. Μπορούμε να τους

χωρίσουμε σε δύο ξένα υποσύνολα, έτσι ώστε οι

ακέραιοι κάθε υποσυνόλου να έχουν το ίδιο

άθροισμα;

– Π.χ.: Έστω Α={38,17,52,61,21,88,25}.

– 38+52+61 = 17+21+88+25 = 151

Γιάννης Ρεφανίδης 247

Διαμέριση ακεραίων: Αλγόριθμος

• Έστω Η το ημιάθροισμα όλων των ακεραίων.

Ψάχνουμε να βρούμε ένα υποσύνολο των

ακεραίων που να αθροίζεται στο Η.

• Για 1in, ορίζουμε το εξής σύνολο αριθμών:

– B(i)={bH : b είναι το άθροισμα ενός

υποσυνόλου των αριθμών {a1,…,ai}}

• Υπολογίζουμε τα διάφορα b(i), από i=1 μέχρι n,

μέχρι να εμφανιστεί ο αριθμός Η μέσα σε κάποιο

b(i).

Γιάννης Ρεφανίδης 248

Page 125: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

125

Παράδειγμα

• A = {38, 17, 52, 61, 21, 88, 25}

• H = 151

• B(0) = {0}

• B(1) = {0,38}

• B(2) = {0,17,38,55}

• B(3) = {0, 17, 38, 52, 55, 69, 90, 107}

• …

• B(7) = {0, 17, 21, …, 151}

Γιάννης Ρεφανίδης 249

Πολυπλοκότητα αλγορίθμου διαμέρισης

• Είναι εύκολο να αποδείξουμε ότι η

πολυπλοκότητα του αλγορίθμου είναι Ο(nH).

• Ανήκει ο αλγόριθμος στο P ;

• Όχι, γιατί το μήκος της εισόδου είναι τάξης

μεγέθους x=nlg(H), με αποτέλεσμα η

πολυπλοκότητα να είναι εκθετική σε σχέση με το

μήκος της εισόδου: Ο(nex/n) .

• Αν ωστόσο υιοθετούσαμε μοναδιαία

αναπαράσταση, η πολυπλοκότητα θα ήταν

γραμμική ως προς το μέγεθος της εισόδου.

Γιάννης Ρεφανίδης 250

Page 126: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

126

Tύποι Bool

• Έστω X={x1,x2,…,xn} ένα πεπερασμένο σύνολο

από μεταβλητές Bool, και έστω X'={x'1, x'2,…,

x'n} οι αρνήσεις τους.

• Ονομάζουμε τα μέλη του ΧΧ' στοιχεία.

– Θετικά στοιχεία και αρνητικά στοιχεία.

• Μια συνθήκη C είναι ένα μη κενό σύνολο

στοιχείων CXX'.

• Ένας τύπος Bool σε κανονική συζευκτική μορφή

είναι ένα σύνολο συνθηκών.

Γιάννης Ρεφανίδης 251

Παράδειγμα

• Έστω X={x1,x2,x3} και άρα X'={x'1,x'2,x'3}.

• Μια συνθήκη είναι η:

– C={x1x'2}

• Ένας τύπος Bool είναι ο:

– F={(x1x'2x3), (x'1), (x2x'2)}

• Απόδοση τιμών αληθείας είναι μια απεικόνιση

από το Χ στο σύνολο {T,F} (T=true, F=false).

• Ικανοποιήσιμος τύπος.

– x1=F, x2=T, x3=T Γιάννης Ρεφανίδης 252

Page 127: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

127

Το πρόβλημα της ικανοποιησιμότητας

• Μη ικανοποιήσιμος τύπος:

– F =

{(x1x2x3),(x'1x2),(x'2x3),(x'3x1),(x'1x'2x'3)}

• Το πρόβλημα της ικανοποιησιμότητας:

– Δεδομένου ενός τύπου Bool, είναι αυτός

ικανοποιήσιμος;

Γιάννης Ρεφανίδης 253

2-SAT

• Ειδική περίπτωση του προβλήματος της

ικανοποιησιμότητας:

– Οι συνθήκες έχουν το πολύ δύο στοιχεία

• F={(x1x2),(x3x'2),(x1),(x'1x'2),(x3x4),(x'3x5),

(x'4x'5),(x4x'3)}

• Το πρόβλημα 2-SAT ανήκει στο P.

Γιάννης Ρεφανίδης 254

Page 128: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

128

Η κλάση NP

Γιάννης Ρεφανίδης 255

Προβλήματα που δεν ανήκουν στην P

• Αποφασίσιμη εκδοχή του προβλήματος του

τερματισμού:

– Ε={«Μ»«w» : Η Μ δέχεται την είσοδο w μετά

από το πολύ 2|w| βήματα}

• Η Ε δεν ανήκει στην P.

• Άλλα προβλήματα που δεν ανήκουν στο P :

– Κύκλος Hamilton, περιοδεύων πωλητής,

ανεξάρτητο σύνολο, διαμέριση,

ικανοποιησιμότητα, ...

Γιάννης Ρεφανίδης 256

Page 129: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

129

Η κλάση NP

• Μια μη-ντετερμινιστική μηχανή Turing Μ λέγεται

πολυωνυμικά φραγμένη αν υπάρχει πολυώνυμο

p(n) τέτοιο ώστε για κάθε είσοδο x να μην

υπάρχει συνολική κατάσταση C της Μ, τέτοια

ώστε:

– (s,#x#) ⊦p(|x|)+1 C

• Ορίζουμε ως NP (non-deterministic polynomial)

την κλάση όλων των γλωσσών που αποφασίζονται

από μια πολυωνυμικά φραγμένη μη-

ντετερμινιστική μηχανή Turing. Γιάννης Ρεφανίδης 257

Ικανοποιησιμότητα

• Έστω μια μηχανή Μ που εκτελεί τους εξής

υπολογισμούς:

– Γράφει στην ταινία μη-ντετερμινιστικά μια

ανάθεση τιμών στις μεταβλητές Bool.

– Ελέγχει την ανάθεση.

• Κάθε ακολουθία υπολογισμών είναι φραγμένη.

• Το πρόβλημα της ικανοποιησιμότητας ανήκει στην NP .

Γιάννης Ρεφανίδης 258

Page 130: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

130

Περιοδεύων πωλητής

• Με δεδομένο «προϋπολογισμό» Β.

• Έστω μια μηχανή Μ που εκτελεί τους εξής

υπολογισμούς:

– Γράφει στην ταινία μη-ντετερμινιστικά μια

μετάθεση των πόλεων.

– Ελέγχει την μετάθεση.

• Κάθε ακολουθία υπολογισμών είναι φραγμένη.

• Το πρόβλημα του περιοδεύοντος πωλητή ανήκει στην NP .

Γιάννης Ρεφανίδης 259

Ιδιότητες της NP

• P NP

• Τα δένδρα που αναπαριστούν το σύνολο των

υπολογισμών μιας πολυωνυμικά φραγμένης μη-

ντετερμινιστικής μηχανής Turing μπορεί να έχουν

εκθετικά πολλά κλαδιά, αλλά όλα με μέτριο

βάθος.

• Η προσομοίωση μιας πολυωνυμικά φραγμένης

μη-ντετερμινιστικής μηχανής Turing από μια

ντετερμινιστική μηχανή Turing απαιτεί εκθετικά

μεγάλο αριθμό βημάτων. Γιάννης Ρεφανίδης 260

Page 131: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

131

Η κλάση EXP

• Μια ντετερμινιστική μηχανή Turing M

ονομάζεται εκθετικά φραγμένη αν υπάρχει

πολυώνυμο p(n) τέτοιο ώστε για κάθε είσοδο x να

μην υπάρχει κατάσταση C τέτοια ώστε:

– (s,#x#) ⊦2p(|x|)

+1C

• Ορίζουμε ως EXP την κλάση όλων των γλωσσών

που αποφασίζονται από μια εκθετικά φραγμένη

ντερμινιστική μηχανή Turing.

Γιάννης Ρεφανίδης 261

Ιεραρχία κλάσεων

• Αν μια γλώσσα ανήκει στην NP, τότε ανήκει και

στην EXP.

• Γενικότερα ισχύει:

– P NP EXP

• Γνωρίζουμε ωστόσο πως:

– P EXP

• Δεν έχει αποδειχθεί κάποιο από τα :

• P NP

• NP EXP

Γιάννης Ρεφανίδης 262

Page 132: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

132

Πιστοποιητικά

• Οι μη-ντετερμινιστικές πολυωνυμικά φραγμένες μηχανές Turing της κλάσης NP λειτουργούν ως εξής:

– Δημιουργούν υποψήφιες λύσεις.

– Τις ελέγχουν.

• Ονομάζουμε «πιστοποιητικό» (certificate) μια τέτοια

συμβολοσειρά που είναι λύση.

• Ένα πιστοποιητικό πρέπει να είναι πολυωνυμικά σύντομο

και να μπορεί να ελεγχθεί σε πολυωνυμικό χρόνο.

• Όλα τα προβλήματα του NP έχουν πιστοποιητικά και

μόνο αυτά.

Γιάννης Ρεφανίδης 263

Πολυωνυμικά ισορροπημένες γλώσσες (1/2)

• Έστω Σ ένα αλφάβητο και ; ένα σύμβολο που δεν

ανήκει στο Σ.

• Έστω L' Σ*;Σ* μια γλώσσα.

• Η L' είναι πολυωνυμικά ισορροπημένη αν υπάρχει

πολυώνυμο p(n) τέτοιο ώστε:

– x;yL' |y|p(|x|)

Γιάννης Ρεφανίδης 264

Page 133: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

133

Πολυωνυμικά ισορροπημένες γλώσσες (2/2)

• Έστω LΣ* μια γλώσσα, όπου ;Σ και |Σ|≥2,

τότε:

– Η LNP αν και μόνο αν υπάρχει γλώσσα L'

Σ*;Σ* που είναι πολυωνυμικά ισορροπημένη και ανήκει στο L'P , και ισχύει:

– L = {x : υπάρχει yΣ*, τέτοιο ώστε x;yL'}

Γιάννης Ρεφανίδης 265

Αναγωγές

Γιάννης Ρεφανίδης 266

Page 134: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

134

Κλίκα – Ανεξάρτητο Σύνολο (1/2)

• Μέγιστη κλίκα: Το μέγιστο πλήθος κορυφών που

συνδέονται όλες με όλες.

• Ανεξάρτητο σύνολο: Το μέγιστο σύνολο κορυφών

που δεν υπάρχει καμία σύνδεση μεταξύ τους.

• Έστω G=(V,E) ο γράφος στον οποίο θέλουμε να

βρούμε τη μέγιστη κλίκα.

• Έστω G'=(V,E') ένας νέος γράφος με το ίδιο

πλήθπς κορυφών και με ακμές:

– E' = {(v1,v2) : v1V, v2V, (v1,v2)E}

Γιάννης Ρεφανίδης 267

Κλίκα – Ανεξάρτητο Σύνολο (2/2)

Γιάννης Ρεφανίδης 268

Page 135: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

135

Ανεξάρτητο σύνολο – Κάλυμμα κόμβων

• Σε έναν γράφο, κάθε κόμβος που δεν είναι στο

μέγιστο ανεξάρτητο σύνολο, ανήκει στο ελάχιστο

κάλυμμα κόμβων.

Γιάννης Ρεφανίδης 269

Πολυωνυμική αναγωγή

• Μια συνάρτηση f:Σ*Σ* ονομάζεται

υπολογίσιμη σε πολυωνυμικό χρόνο αν υπάρχει

μια πολυωνυμικά φραγμένη Turing M που την

υπολογίζει.

• Έστω οι γλώσσες L1,L2Σ*. Μια συνάρτηση

υπολογίσιμη σε πραγματικό χρόνο τ:Σ*Σ*

ονομάζεται πολυωνυμική αναγωγή από την L1

στην L2 αν για κάθε xΣ* ισχύει xL1τ(x)L2.

Γιάννης Ρεφανίδης 270

Page 136: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

136

Πολυωνυμικές αναγωγές προβλημάτων

• Διπλές πολυωνυμικές αναγωγές

– Αν ένα πρόβλημα ανήκει στο P, τότε όλα

ανήκουν στο P.

Γιάννης Ρεφανίδης 271

Κάλυμμα

κόμβων Κλίκα

Ανεξάρτητο

Σύνολο

Κύκλος Hamilton Ικανοποιησιμότητα (1/7)

• Πρέπει να βρούμε έναν τύπο Bool που να

περιγράφει το πρόβλημα Hamilton, έτσι ώστε ο

γράφος να είναι Hamilton αν και μόνο αν ο τύπος

Bool είναι ικανοποιήσιμος.

• Ορίζουμε μεταβλητές xij, 1i,j4,

με τη σημασία ότι ο i κόμβος εμφανίζεται

στη θέση j του κύκλου Hamilton.

Γιάννης Ρεφανίδης 272

v1

v2 v3

v4

Page 137: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

137

Κύκλος Hamilton Ικανοποιησιμότητα (2/7)

• Κάθε κόμβος πρέπει να εμφανίζεται τουλάχιστον

μια φορά στον κύκλο:

– (x11 x12 x13 x14)

– (x21 x22 x23 x24)

– (x31 x32 x33 x34)

– (x41 x42 x43 x44)

Γιάννης Ρεφανίδης 273

v1

v2 v3

v4

Κύκλος Hamilton Ικανοποιησιμότητα (3/7)

• Κάθε κόμβος εμφανίζεται το πολύ μια φορά στον

κύκλο:

– (x'11 x'12) (x'11 x'13) (x'11 x'14) (x'12

x'13) (x'12 x'14) (x'13 x'14)

– (x'21 x'22) (x'21 x'23) (x'21 x'24) (x'22

x'23) (x'22 x'24) (x'23 x'24)

– (x'31 x'32) (x'31 x'33) (x'31 x'34) (x'32

x'33) (x'32 x'34) (x'33 x'34)

– (x'41 x'42) (x'41 x'43) (x'41 x'44) (x'42

x'43) (x'42 x'44) (x'43 x'44)

Γιάννης Ρεφανίδης 274

Page 138: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

138

Κύκλος Hamilton Ικανοποιησιμότητα (4/7)

• Σε κάθε θέση σειρά του κύκλου Hamilton

εμφανίζεται τουλάχιστον ένας κόμβος:

– (x11 x21 x31 x41)

– (x12 x22 x32 x42)

– (x13 x23 x33 x43)

– (x14 x24 x34 x44)

Γιάννης Ρεφανίδης 275

v1

v2 v3

v4

Κύκλος Hamilton Ικανοποιησιμότητα (5/7)

• Σε κάθε θέση του κύκλου Hamilton εμφανίζεται

τουλάχιστον το πολύ ένας κόμβος:

– (x'11 x'21) (x'11 x'31) (x'11 x'41) (x'21

x'31) (x'21 x'41) (x'31 x'41)

– (x'12 x'22) (x'12 x'32) (x'12 x'42) (x'22

x'32) (x'22 x'42) (x'32 x'42)

– (x'13 x'23) (x'13 x'33) (x'13 x'43) (x'23

x'33) (x'23 x'43) (x'33 x'43)

– (x'14 x'24) (x'14 x'34) (x'14 x'44) (x'24

x'34) (x'24 x'44) (x'34 x'44)

Γιάννης Ρεφανίδης 276

Page 139: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

139

Κύκλος Hamilton Ικανοποιησιμότητα (6/7)

• Για κάθε δύο ακμές που δεν συνδέονται

με ακμή, πρέπει να εξασφαλίσουμε ότι δεν είναι

συνεχόμενες στον κύκλο Hamilton.

– (x'11 x'32) (x'31 x'12)

– (x'12 x'33) (x'32 x'13)

– (x'13 x'34) (x'33 x'14)

– (x'14 x'31) (x'34 x'11)

Γιάννης Ρεφανίδης 277

v1

v2 v3

v4

Κύκλος Hamilton Ικανοποιησιμότητα (7/7)

• Η αναγωγή από τον κύκλο Hamilton στην

ικανοποιησιμότητα είναι πολυωνυμική.

– Συνολικό πλήθος συνθηκών: O(n3)

• Το πρόβλημα Hamilton έχει λύση, αν και μόνο αν

το αντίστοιχο πρόβλημα ικαποιησιμότητας έχει

λύση.

• Μπορεί να αποδειχθεί και η αντίστροφη αναγωγή.

Γιάννης Ρεφανίδης 278

Page 140: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

140

Χρονοπρογραμματισμός 2 μηχανών

• Πρέπει να εκτελεστούν n εργασίες σε 2 μηχανές:

– Δεν υπάρχουν περιορισμοί διάταξης.

– Οι μηχανές είναι ίδιες.

– Οι εργασίες έχουν ακέραιους μη αρνητικούς

χρόνους εκτέλεσης a1, a2, …, an.

– Οι εργασίες δεν διακόπτονται.

• Μπορούν να εκτελεστούν οι εργασίες σε

προθεσμία D;

Γιάννης Ρεφανίδης 279

Πρόβλημα σακιδίου

• Μας δίνεται ένα σύνολο n αντικειμένων βάρους

a1, a2, …, an (μη αρνητικοί ακέραιοι) και ένας

ακέραιος Κ.

• Υπάρχει υποσύνολο P των αντικειμένων τέτοιο

ώστε το άθροισμα των βαρών τους να ισούται με

Κ;

Γιάννης Ρεφανίδης 280

Page 141: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

141

Και άλλες αναγωγές

• Υπάρχουν 6 πολυωνυμικές αναγωγές μεταξύ των

παρακάτω προβλημάτων.

Γιάννης Ρεφανίδης 281

Προγραμματισμός

2 μηχανών

Πρόβλημα

σακιδίου

Διαμέριση

Σακίδιο → Διαμέριση

• Έστω ότι το Κ στο πρόβλημα της διαμέρισης

ισούται με το ημιάθροισμα των ακεραίων.

– Το πρόβλημα του σακιδίου ταυτίζεται πλέον με

το πρόβλημα της διαμέρισης.

• Έστω ότι το Κ δεν ισούται με το ημιάθροισμα των

ακεραίων.

– Προσθέτουμε δύο επιπλέον ακεραίους:

– an+1=2H+2K

– an+2=4H

Γιάννης Ρεφανίδης 282

Page 142: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

142

Διάμεριση → Σακίδιο

• Η διαμέριση είναι ειδική περίπτωση του Σακιδίου.

• Αρκεί να θέσουμε:

Γιάννης Ρεφανίδης 283

1

1

2

n

i

i

K a

Διαμέριση → Χρονοπρογραμματισμός 2Μ

• Έστω η διαμέριση σε δύο ισοβαρή σύνολα των a1,

a2, …, an.

• Ορίζουμε το πρόβλημα χρονοπρογραμματισμού

με:

Γιάννης Ρεφανίδης 284

1

1

2

n

i

i

D a

Page 143: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

143

Χρονοπρογραμματισμός 2Μ → Διαμέριση

• Έστω n εργασίες με διάρκειες a1, a2, …, an και

προθεσμία D.

• Έστω ο αριθμός:

• Ο I εκφράζει το συνολικό «νεκρό» χρόνο (idle

time) του συνολικού χρονοπρογραμματισμού.

• Προσθέτουμε νέες εργασίες για να καλύψουμε τη

διάρκεια I:

– Χρησιμοποιούμε δυνάμεις του 2.

– Π.χ., για Ι=56 1, 2, 4, 8, 16, 25

Γιάννης Ρεφανίδης 285

1

2n

i

i

I D a

Σακίδιο ↔ Χρονοπρογραμματισμός 2Μ

• Δεν χρειάζεται να το αποδείξουμε, μιας και

έχουμε αποδείξει τα:

– Σακίδιο → Διαμέριση →

Χρονοπρογραμματισμός 2Μ

– Χρονοπρογραμματισμός 2Μ → Διαμέριση →

Σακίδιο

• Αν τ1 είναι μια πολυωνυμική αναγωγή από την L1

στην L2 και τ2 μια πολυωνυμική αναγωγή από την

L2 στην L3, τότε η τ1○τ2 είναι μια πολυωνυμική

αναγωγή από την L1 στην L3 . Γιάννης Ρεφανίδης 286

Page 144: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

144

NP-πληρότητα

Γιάννης Ρεφανίδης 287

NP-πλήρης γλώσσα

• Μια γλώσσα LΣ* ονομάζεται NP-πλήρης αν:

– LNP

– Για κάθε γλώσσα L'NP, υπάρχει μια

πολυωνυμική αναγωγή από την L' στην L.

• Αν αποδειχθεί έστω και για μια NP -πλήρη

γλώσσα ότι ανήκει στο P, τότε θα έχει αποδειχθεί

πως P =NP.

Γιάννης Ρεφανίδης 288

Page 145: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

145

Το θεώρημα του Cook

• Για να αποδείξουμε ότι υπάρχουν NP-πλήρεις

γλώσσες, πρέπει να αποδείξουμε για τουλάχιστον μία NP γλώσσα ότι όλες οι άλλες NP-γλώσσες

μπορούν να αναχθούν σε αυτήν.

– Αυτό δεν είναι ιδιαίτερα εύκολο!

• Ο πρώτος που απέδειξε κάτι τέτοιο ήταν ο

Stephen Cook το 1971, για το πρόβλημα της

ικανοποιησιμότητας.

Γιάννης Ρεφανίδης 289

Ικανοποιησιμότητα → Κλίκα (1/2)

• Κάθε τύπος Bool μπορεί να γραφεί σε κανονική

συζευκτική μορφή:

– (………) (………)…

• Έστω ένας τύπος Bool στην παραπάνω μορφή,

π.χ.:

– (x1x'2x3) (x'1x2)(x'2x3)

• Κατασκευάζουμε έναν γράφο με μια κορυφή για

κάθε λεκτικό διάζευξης (πολλά λεκτικά

επαναλαμβάνονται).

Γιάννης Ρεφανίδης 290

Page 146: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

146

• (x1x'2x3) (x'1x2)(x'2x3)

Ικανοποιησιμότητα → Κλίκα (2/2)

Γιάννης Ρεφανίδης 291

x3

x'2

x1

x2

x'1

x'2 x3

Μπορούμε να βρούμε

μια κλίκα μεγέθους 3;

Αποδεικνύοντας την NP-πληρότητα

• Δύο βήματα:

– Πρώτα αποδεικνύουμε ότι το νέο πρόβλημα είναι NP.

– Στη συνέχεια βρίσκουμε μια πολυωνυμική αναγωγή από ένα ήδη γνωστό NP -πλήρες

πρόβλημα στο νέο πρόβλημα.

• Γιατί είναι απαραίτητο το πρώτο βήμα;

Γιάννης Ρεφανίδης 292

Page 147: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

147

P vs NP

• Πολλοί έχουν προσπαθήσει να αποδείξουν αν P =NP ή αν P NP.

– Υπάρχουν 41 «αποδείξεις» ότι P =NP.

– Υπάρχουν 46 «αποδείξεις» ότι P NP. » Μια εξ’ αυτών, μεγέθους 102 σελίδων, είχε σφάλμα στη

σελίδα 67.

• http://en.wikipedia.org/wiki/P_versus_NP_problem

• http://en.wikipedia.org/wiki/Millennium_Prize_Problems

Γιάννης Ρεφανίδης 293

Ελάχιστα μονοπάτια

Γιάννης Ρεφανίδης 294

Page 148: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

148

Ορισμός προβλήματος

• Έχουμε ένα γράφο με βάρη στις ακμές του.

• Θέλουμε να βρούμε τον ελάχιστο κύκλο που

επισκέπτεται όλες τους κόμβους.

• Εναλλακτικά (πρόβλημα απόφασης):

– Υπάρχει κύκλος που επισκέπτεται όλους τους

κόμβους με κόστος κάτω από d;

• Είναι το πρόβλημα αυτό NP -πλήρες;

Γιάννης Ρεφανίδης 295

NP-πληρότητα για το πρόβλημα

του ελάχιστου κύκλου

• Βήμα 1ο: Είναι το πρόβλημα στο NP ;

– Ναι! Αν μας δώσουν μια λύση, μπορούμε να

την ελέγξουμε σε πολυωνυμικό χρόνο.

• Βήμα 2ο: Μπορούμε να ανάγουμε σε πολυωνυμικό χρόνο κάποιο γνωστό NP –πλήρες

πρόβλημα στο πρόβλημα εύρεσης του ελάχιστου

μονοπατιού;

– Θα προσπαθήσουμε να το κάνουμε για το SAT.

Γιάννης Ρεφανίδης 296

Page 149: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

149

Ικανοποιησιμότητα

Ελάχιστο μονοπάτι (1/9)

• Ποιο είναι το μήκος του ελάχιστου μονοπατιού

από το Α στο Β που επισκέπτεται όλους τους

κόμβους;

– 7

• Πόσα διαφορετικά ελάχιστα μονοπάτια υπάρχουν

από το Α στο Β, που επισκέπτονται όλους τους

κόμβους;

– 2

Γιάννης Ρεφανίδης 297

A Β

Ικανοποιησιμότητα

Ελάχιστο μονοπάτι (2/9)

• Τα ίδια ερωτήματα για τον παρακάτω γράφο:

– Μήκος:10, Ελάχιστες διαδρομές: 2

• Και για τον παρακάτω γράφο:

– Μήκος:19, Ελάχιστες διαδρομές: 2

Γιάννης Ρεφανίδης 298

A Β

A Β

Page 150: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

150

Ικανοποιησιμότητα

Ελάχιστο μονοπάτι (3/9)

• Έστω ότι έχουμε n τέτοιες δομές:

• Ποιο είναι το μήκος του ελάχιστου μονοπατιού

που επισκέπτεται όλες τις κορυφές;

– n·19+n+1

• Πόσα τέτοια ελάχιστα μονοπάτια υπάρχουν;

– 2n

Γιάννης Ρεφανίδης 299

A Β ...

Ικανοποιησιμότητα

Ελάχιστο μονοπάτι (4/9)

• Μπορούμε να αντιστοιχήσουμε τις δύο ελάχιστες

διαδρομές μέσα από κάθε δομή με τις δύο τιμές

μιας Boolean μεταβλητής.

Γιάννης Ρεφανίδης 300

True

False

Page 151: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

151

Ικανοποιησιμότητα

Ελάχιστο μονοπάτι (5/9)

• Μπορούμε να αντιστοιχήσουμε κάθε δομή με μια

μεταβλητή Boolean:

• Το πλήθος των εναλλακτικών ελάχιστων

διαδρομών που επισκέπτονται κάθε κόμβο, 2n,

ισούται με το πλήθος των μεταβλητών Bool.

Γιάννης Ρεφανίδης 301

A Β ...

x1 x2 xn

Ικανοποιησιμότητα

Ελάχιστο μονοπάτι (6/9)

• Έστω ότι βάζουμε ακόμη έναν κόμβο στο γράφο

μας:

• Πόσες εναλλακτικές διαδρομές υπάρχουν τώρα;

– 2n-1

Γιάννης Ρεφανίδης 302

A Β ...

x1 x2 xn

Page 152: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

152

Ικανοποιησιμότητα

Ελάχιστο μονοπάτι (7/9)

• Συσχέτιση μιας διάζευξης με ελάχιστα μονοπάτια:

– (x1x'2x3)

• Ποιο είναι το μήκος του ελάχιστου μονοπατιού;

– 2·19+20+4

• Πόσα ελάχιστα μονοπάτια υπάρχουν;

– 12=3·22

Γιάννης Ρεφανίδης 303

A Β

x1 x2 x3

Ικανοποιησιμότητα

Ελάχιστο μονοπάτι (8/9)

• Συσχέτιση ενός τύπου Bool σε κανονική

συζευκτική μορφή, με τα ελάχιστα μονοπάτια:

• Πόσοι κόμβοι υπάρχουν;

– n(3(m+1)+2)+m+2 = 3mn+5n+m+2

Γιάννης Ρεφανίδης 304

A Β

...

x1

c1

xn

c2 cm

Page 153: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

153

Ικανοποιησιμότητα

Ελάχιστο μονοπάτι (9/9)

• Ποιο (πρέπει να) είναι το μήκος του ελάχιστου

μονοπατιού από το Α στο Β, ώστε ο τύπος Bool

να είναι ικανοποιήσιμος;

• 3mn+5n+m+1

• Αν λοιπόν υπάρχει ελάχιστο μονοπάτι με

3mn+5n+m+1 ακμές, τότε ο τύπος Bool είναι

ικανοποιήσιμος.

Γιάννης Ρεφανίδης 305

A Β

...

x1

c1

xn

c2 cm

Και άλλα NP -πλήρη

προβλήματα • 1 Graph theory

– 1.1 Covering and partitioning

– 1.2 Subgraphs and supergraphs

– 1.3 Vertex ordering

– 1.4 Iso- and other morphisms

– 1.5 Miscellaneous

• 2 Network design

– 2.1 Spanning trees

– 2.2 Cuts and connectivity

– 2.3 Routing problems

– 2.4 Flow problems

– 2.5 Miscellaneous

– 2.6 Graph Drawing

• 3 Sets and partitions

– 3.1 Covering, hitting, and splitting

– 3.2 Weighted set problems

– 3.3 Set partitions

• 4 Storage and retrieval

– 4.1 Data storage

– 4.2 Compression and representation

– 4.3 Database problems

• 5 Sequencing and scheduling

– 5.1 Sequencing on one processor

– 5.2 Multiprocessor scheduling

– 5.3 Shop scheduling

– 5.4 Miscellaneous

• 6 Mathematical programming

• 7 Algebra and number theory

– 7.1 Divisibility problems

– 7.2 Solvability of equations

– 7.3 Miscellaneous

Γιάννης Ρεφανίδης 306

• 9 Logic

– 9.1 Propositional logic

– 9.2 Miscellaneous

• 10 Automata and language

theory

– 10.1 Automata theory

– 10.2 Formal languages

• 11 Computational geometry

• 12 Program optimization

– 12.1 Code generation

– 12.2 Programs and

schemes

• 13 Miscellaneous

http://en.wikipedia.org/wiki/List_of_NP-complete_problems

Page 154: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

154

Αντιμετώπιση NP -προβλημάτων

Γιάννης Ρεφανίδης 307

Δύο προσεγγίσεις

• Έξυπνοι αλγόριθμοι

– Μολονότι το πρόβλημα παραμένει NP –πλήρες,

μπορούμε να το λύσουμε πολλές τάξεις μεγέθους

γρηγορότερα.

• Προσεγγιστικές λύσεις

Γιάννης Ρεφανίδης 308

Page 155: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

155

Έξυπνοι αλγόριθμοι

• Τα NP -προβλήματα δεν λύνονται σε

πολυωνυμικό χρόνο.

• Ωστόσο, υπάρχουν πολλές εκδοχές μη-

πολυωνυμικού χρόνου.

• Για παράδειγμα:

– Άλλο 2n και άλλο 2sqrt(n) .

• Άλλα 2n και άλλο 1.1n .

Γιάννης Ρεφανίδης 309

Κάλυμμα κόμβων – Απλοϊκός αλγόριθμος

• Απλοϊκός αλγόριθμος (brute force)

• Ελέγχουμε όλα τα υποσύνολα κόμβων του

γράφου, από τα μικρότερα προς τα μεγαλύτερα,

μέχρι να βρούμε ένα που να καλύπτει όλες τις

ακμές.

– 2n υποσύνολα

Γιάννης Ρεφανίδης 310

Page 156: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

156

• Εξετάζουμε τους κόμβους, έναν-έναν, και

αποφασίζουμε για κάθε κόμβο αν θα μπει στο

κάλυμμα κόμβων ή όχι.

Δένδρο αναζήτησης

Γιάννης Ρεφανίδης 311

Βελτιωμένο δένδρο αναζήτησης (1/2)

• Εξετάζουμε μια-μία τις ακμές που δεν

καλύπτονται.

– Δίνουμε προτεραιότητα στις ακμές για τις οποίες δεν

έχει ληφθεί απόφαση για κανένα από τα άκρα τους.

Γιάννης Ρεφανίδης 312

Page 157: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

157

Βελτιωμένο δένδρο αναζήτησης (2/2)

• Και άλλη βελτίωση: Κάθε φορά που

αποφασίζουμε ότι ένας κόμβος δεν είναι στο

κάλυμμα κόμβων, όλοι οι γείτονές του πρέπει

υποχρεωτικά να είναι.

– Σε ένα βήμα μπορεί να αποφασίζονται τουλάχιστον δύο

κόμβοι !

Γιάννης Ρεφανίδης 313

Ανάλυση

• Αφού σε κάθε κόμβο αποφασίζουμε τουλάχιστον

2 κόμβους, και κάθε κόμβος έχει 3 παιδιά, πόσους

κόμβους έχει το βελτιωμένο δένδρο αναζήτησης;

– 3n/2

• Συγκρίνετε το 2n με το 3n/2 = 1.733n

– 250 = 1.13·1015

– 1.73350 = 8.71·1011

• Και δεν έχουμε λάβει υπόψη ότι μπορεί σε κάθε

επίπεδο να έχουμε περισσότερες από 2 αναθέσεις.

Γιάννης Ρεφανίδης 314

Page 158: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

158

Ανεξάρτητο σύνολο (1/2)

• Μπορούμε να εφαρμόσουμε μια παρόμοια

προσέγγιση για το ανεξάρτητο σύνολο.

• Σε κάθε βήμα επιλέγουμε μια ακμή, και κάνουμε

ανάθεση στους δύο κόμβους της:

– Τρεις επιλογές: Είτε κανείς, είτε μόνο ένας.

Γιάννης Ρεφανίδης 315

Όταν ένας

κόμβος γίνεται

κόκκινος, οι

γειτονικοί του

γίνονται μαύροι.

Ανεξάρτητο σύνολο (2/2)

• Ειδικός χειρισμός όταν ένα από τα δύο άκρα της

ακμής έχει αποφασιστεί.

• Περιπτώσεις:

Γιάννης Ρεφανίδης 316

Page 159: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

159

Ανάλυση

• Και στο ανεξάρτητο σύνολο:

– Ο παράγοντας διακλάδωσης είναι 3.

– Αποφασίζουμε τουλάχιστον δύο κόμβους ανά

επίπεδο.

• Άρα, το πλήθος των κόμβων είναι 1.733n .

Γιάννης Ρεφανίδης 317

Πόσο χαμηλότερα μπορούμε να πάμε;

• Ανεξάρτητο σύνολο:

– 1.189n ή 1.211n

• Κλίκα

– 1.189n ή 1.211n

• 3-SAT

– 1.496n

• Ελάχιστος κύκλος / περιπλανώμενος πωλητής

– 2n

Γιάννης Ρεφανίδης 318

Page 160: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

160

Πόσο μεγάλο μπορεί να γίνει το n ;

• Ας υποθέσουμε ότι μπορούμε να εξετάσουμε 109

κόμβους.

– Ανεξάρτητο σύνολο:

• 1.189n ή 1.211n 119 κόμβοι

– Κλίκα

• 1.189n ή 1.211n 108 κόμβοι

– 3-SAT

• 1.496n 51 μεταβλητές

– Ελάχιστος κύκλος / περιπλανώμενος πωλητής

• 2n 29 κόμβοι

Γιάννης Ρεφανίδης 319

Χειρότερη περίπτωση

και πραγματικότητα

• Στην πραγματικότητα (μέση περίπτωση) λύνουμε

προβλήματα σημαντικά μεγαλύτερα:

– Ανεξάρτητο σύνολο:

• 1.189n ή 1.211n > 1000 κόμβοι

– Κλίκα

• 1.189n ή 1.211n > 1000 κόμβοι

– 3-SAT

• 1.496n ~10.000 κόμβοι

Γιάννης Ρεφανίδης 320

Page 161: Θωρία Υπολογιμών και Αυομάωνai.uom.gr/Courses/Automata/Slides/AutomataSlides.pdf4 Γιάννης Ρ 0φανί /ης 7 Τι ίναι α αυόμαα • Χρήιμο

161

Βιβλιογραφία

Γιάννης Ρεφανίδης 322

Βιβλιογραφία

• Elements of the Theory of Computation, Harry Lewis, Christos Papadimitriou, 2nd edition, 1998.

• Computational Complexity, Christos Papadimitriou, 1994.

• Sebastian Wernicke, CS313, “Introduction to Theoretical Computer Science”, http://www.udacity.com/overview/Course/cs313