Μετατροπή ΜΝΠΑ σε ΝΠΑ (ndfa to dfa)

Μπορούμε να μετατρέψουμε ένα ΜΝΠΑ σε ένα ισοδύναμο ΝΠΑ.

Για να είναι ένα ΝΠΑ ισοδύναμο ενός ΜΝΠΑ πρέπει να ισχύει:

L(Y) = L(X)

Όπου Χ ένα ΜΝΠΑ και Υ ένα ΝΠΑ

Θα πρέπει δηλαδή οι συμβολοσειρές που είναι αποδεκτές από το ΜΝΠΑ να είναι και από το ΝΠΑ.

Το αλφάβητο Σ και η αρχική κατάσταση πρέπει να είναι ίδια και στα δύο αυτόματα.

Αλγόριθμος μετατροπής

Στη συνέχεια θα δούμε τα βήματα για να μετατρέψουμε ένα ΜΝΠΑ σε ΝΠΑ και θα χρησιμοποιήσουμε το παρακάτω διάγραμμα.

non deterministic automata to deterministic automata

1. Δημιουργία πίνακα μεταβάσεων του ΜΝΠΑ

qδ(q, 0)δ(q, 1)
a{a,b,c,d,e}{d,e}
b{c}{e}
c{∅}{b}
d{e}{∅}
e{∅}{∅}

2. Δημιουργία πίνακα μεταβάσεων του ΝΠΑ

Ξεκινάμε από την αρχική κατάσταση και δημιουργούμε νέες σύνθετες καταστάσεις σύμφωνα με τις εισόδους (0,1) στην κάθε κατάσταση.

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

Εάν μέσα σε μια σύνθετη κατάσταση υπάρχει τελική κατάσταση, τότε και η σύνθετη χαρακτηρίζεται τελική.

Αυτό επαναλαμβάνεται μέχρι να φτάσουμε σε ένα τέλος.

qδ(q, 0)δ(q, 1)
[a][a,b,c,d,e][d,e]
[a,b,c,d,e][a,b,c,d,e][b,d,e]
[d,e][e]
[b,d,e][c,e][e]
[e]
[c,e][b]
[b][c][e]
[c][b]

3. Δημιουργία διαγράμματος ΝΠΑ

non deterministic automata to deterministic automata

Για τα κενά (∅) πρέπει να δημιουργηθούν παγίδες (traps) ή έστω μία.

Να δημιουργηθεί μη αυτόματο για λέξεις που αρχίζουν από 0. Στη συνέχεια να σχεδιαστεί το ισοδύναμο αυτόματο.

Το διάγραμμα είναι:

non deterministic automata to deterministic automata

Ο πίνακας καταστάσεων μεταβάσεων για το μη αυτόματο είναι:

qδ(q, 0)δ(q, 1)
ΑΒ
ΒΒΒ

Ο πίνακας καταστάσεων μεταβάσεων για το αυτόματο είναι:

qδ(q, 0)δ(q, 1)
ABC
CCC
BBB

Το διάγραμμα είναι:

non deterministic automata to deterministic automata

Να δημιουργηθεί μη αυτόματο για λέξεις που λήγουν σε 1. Στη συνέχεια να σχεδιαστεί το ισοδύναμο αυτόματο.

Το διάγραμμα είναι:

non deterministic automata to deterministic automata

Ο πίνακας καταστάσεων μεταβάσεων για το μη αυτόματο είναι:

qδ(q, 0)δ(q, 1)
ΑA{A, B}
Β

Ο πίνακας καταστάσεων μεταβάσεων για το αυτόματο είναι:

qδ(q, 0)δ(q, 1)
AAAB
ABAAB

Το διάγραμμα είναι:

non deterministic automata to deterministic automata

Να δημιουργηθεί μη αυτόματο για λέξεις που λήγουν σε 01. Στη συνέχεια να σχεδιαστεί το ισοδύναμο αυτόματο.

Το διάγραμμα είναι:

non deterministic automata to deterministic automata

Ο πίνακας καταστάσεων μεταβάσεων για το μη αυτόματο είναι:

qδ(q, 0)δ(q, 1)
Α{A, B}A
ΒC
C

Ο πίνακας καταστάσεων μεταβάσεων για το αυτόματο είναι:

qδ(q, 0)δ(q, 1)
AABA
ABABAC
ACABA

Το διάγραμμα είναι:

non deterministic automata to deterministic automata

Να δημιουργηθεί μη αυτόματο για λέξεις με προτελευταίο σύμβολο το 1. Στη συνέχεια να σχεδιαστεί το ισοδύναμο αυτόματο.

Το διάγραμμα είναι:

non deterministic automata to deterministic automata

Ο πίνακας καταστάσεων μεταβάσεων για το μη αυτόματο είναι:

qδ(q, 0)δ(q, 1)
ΑΑ{A, B}
ΒCC
C

Ο πίνακας καταστάσεων μεταβάσεων για το αυτόματο είναι:

qδ(q, 0)δ(q, 1)
AAAB
ABACABC
ACAAB
ABCACABC

Το διάγραμμα είναι:

non deterministic automata to deterministic automata

Να μετατραπεί το παρακάτω ΜΝΠΑ σε ΝΠΑ.

non deterministic automata to deterministic automata

Αρχικά ο πίνακας καταστάσεων μεταβάσεων είναι:

qδ(q, 0)δ(q, 1)
aab
b{b,c}b
cc{b,c}

Δημιουργούμε τον πίνακα καταστάσεων μεταβάσεων για το ΝΠΑ.

qδ(q, 0)δ(q, 1)
[a][a][b]
[b][b,c][b]
[b,c][b,c][b,c]

Και το αντίστοιχο διάγραμμα είναι.

non deterministic automata to deterministic automata

Να μετατραπεί το παρακάτω ΜΝΠΑ (με εισόδους ε) σε ΝΠΑ.

non deterministic automata to deterministic automata

Για μετατροπή ΜΝΠΑ (με εισόδους ε) πρέπει πρώτα να εξαλείψουμε το ε.

Αυτό γίνεται ως εξής:

Με το σκεπτικό ότι για κάποια χρονική στιγμή μπορεί να βρισκόμαστε σε μία από τις τρεις καταστάσεις [a, b, c] έχουμε:

qδ(q, 0)δ(q, 1)
[a,b,c][d][d]
[d][e]

Το τελικό διάγραμμα είναι:

non deterministic automata to deterministic automata

Εργαστήριο

Να μετατραπεί το παρακάτω ΜΝΠΑ σε ΝΠΑ.

non deterministic automata to deterministic automata

Να μετατραπεί το παρακάτω ΜΝΠΑ (με εισόδους ε) σε ΝΠΑ.

non deterministic automata to deterministic automata

Υπόδειξη: Διακρίνουμε περιπτώσεις για a, b, c.