Không có sản phẩm nào trong giỏ hàng.
AUTOMAT HỮU HẠN ĐƠN ĐỊNH
Automat đơn định là một automat mà trong đó mỗi di chuyển (move) là được xác định duy nhất bởi cấu hình hiện tại. Sự duy nhất này thể hiện tính đơn định, có nghĩa là ta sẽ biết chắc nó sẽ di chuyển đến đâu, đến trạng thái hay cấu hình nào
-----------------------------------------------------------------------------------------------
Moät accepter höõu haïn ñôn ñònh hay moät dfa ñöôïc ñònh nghóa bôûi boä naêm :
M = ( Q, Σ, δ, q0 , F )
Trong ñoù :
Q : taäp höõu haïn caùc traïng thaùi noäi (internal states).
Σ : taäp höõu haïn caùc kyù hieäu ñöôïc goïi laø baûng chöõ caùi ñaàu nhaäp
(input alphabet).
δ : Q x Σ à Q laø moät haøm toaøn aùnh goïi laø haøm chuyeån dòch.
q0 Î Q laø traïng thaùi ban ñaàu.
F Í Q laø taäp traïng thaùi keát thuùc
-------------------------------------------------------------------------------------------
Moät accepter höõu haïn ñôn ñònh hoaït ñoäng döïa theo caùc thöùc sau : Taïi thôøi ñieåm ban ñaàu, noù ñöôïc giaû ñònh ñang ôû trong traïng thaùi baét ñaàu q0, vôùi cô cheá nhaäp ñang ôû taïi kyù hieäu beân traùi nhaát cuûa chuoãi nhaäp vaøo. Trong moãi laàn di chuyeån cuûa automat, ñaàu ñoïc tieán veà phía phaûi moät kyù hieäu. Nhö vaäy moãi laàn di chuyeån seõ laáy ñi moät kyù hieäu ñaàu nhaäp. Khi gaëp kyù hieäu keát thuùc chuoãi, chuoãi nhaäp ñöôïc chaáp nhaän neáu nhö automat ñang ôû moät trong nhöõng traïng thaùi keát thuùc cuûa noù. Ngöôïc laïi thì chuoãi bò töø choái. Ñaàu ñoïc chæ coù theå di chuyeån töø traùi sang phaûi vaø ñoïc duy nhaát moät kyù hieäu trong moãi böôùc.
Ñeå ñaëc tröng vaø bieåu dieãn cho moät automat höõu haïn moät caùc tröïc quan ta söû duïng ñoà thò chuyeån dòch (transition graphs). Caùc nhaõn treân caùc nuùt laø teân cuûa caùc traïng thaùi, coøn caùc nhaõn treân caùc caïnh laø giaù trò hieän taïi cuûa kyù hieäu nhaäp.
Xem q0 vaø q1 laø caùc traïng thaùi beân trong cuûa moät dfa M naøo ñoù, thì ñoà thò töông öùng vôùi M seõ coù moät nuùt mang nhaõn q0 vaø moät nuùt khaùc mang nhaõn q1. Moät caïnh (q0,q1) ñöôïc ñaùnh nhaõn a bieåu thò cho söï chuyeån dòch δ(q0, a) = q1. Traïng thaùi ban ñaàu seõ ñöôïc xaùc ñònh baèng moät muõi teân ñi ñeán khoâng gaùn nhaõn vaø muõi teân naøy cuõng khoâng xuaát phaùt töø nuùt naøo. Traïng thaùi keát thuùc ñöôïc veõ baèng voøng troøn ñoâi.
Moät caùch hình thöùc hôn, neáu M = ( Q, Σ, δ, q0 , F ) laø moät accepter höõu haïn ñôn ñònh thì ñoà thò chuyeån dòch töông öùng cuûa noù GM seõ coù ñuùng |Q| ñænh, moãi ñænh ñöôïc gaùn nhaõn qi khaùc nhau vôùi qi Î Q. Ñoái vôùi moãi quy taéc chuyeån traïng thaùi δ(qi, a) = qj, ñoà thò coù moät caïnh (qi, qj ) ñöôïc gaùn nhaõn a. Ñænh töông öùng vôùi q0 ñöôïc goïi laø nuùt baét ñaàu. Nhöõng nuùt mang nhaõn qf Î F laø caùc ñænh keát thuùc.
Ví duï 2.1
Ñoà thò töông öùng ôû hình 2.1
M = ({q0, q1, q2}, {0,1}, δ, q0, {q1} )
Trong ñoù δ ñöôïc cho bôûi
δ(q0, 0) = q0 , δ(q0, 1) = q1
δ(q1, 0) = q0 , δ(q1, 1) = q2
δ(q2, 0) = q2 , δ(q0, 1) = q1
Dfa naøy chaáp nhaän chuoãi 01. Baét ñaàu taïi traïng thaùi q0, kyù hieäu 0 ñöôïc ñoïc ñaàu tieân. Haõy nhìn vaøo caùc caïnh cuûa ñoà thò, chuùng ta coù theå thaáy raèng automat vaãn ôû traïng thaùi q0, keá tieáp, kyù töï 1 ñöôïc ñoïc vaø automat chuyeån sang traïng thaùi q1. Chuùng ta hieän ñang ôû kyù töï keát thuùc chuoãi vaø cuõng ñang ôû taïi traïng thaùi keát thuùc q1. Do ñoù, chuoãi 01 ñöôïc chaáp nhaän. Dfa naøy khoâng chaáp nhaän chuoãi 00, bôûi vì sau khi ñoïc xong hai kyù töï 0 lieân tieáp noù ôû vaøo traïng thaùi q0 (khoâng phaûi traïng thaùi keát thuùc). Moät caùch töông töï, chuùng ta thaáy raèng automat naøy seõ chaáp nhaän caùc chuoãi 101, 0111, vaø 11001, nhöng laïi khoâng chaáp nhaän chuoãi 100 hay 1100.
Hình 2.1
Ñeå cho tieän lôïi ngöôøi ta ñöa ra khaùi nieäm haøm chuyeån traïng thaùi môû roäng (Extended Transition Function)
δ* : Q x Σ * à Q
ñoái soá thöù hai cuûa δ* laø moät chuoãi, ít khi laø moät kyù hieäu ñôn
Neáu δ(q0, a) = q1
vaø δ(q1, b) = q2,
thì δ*(q0, ab) = q2
Moät caùch hình thöùc, chuùng ta ñònh nghóa δ* ñeä quy nhö sau :
δ*(q, l) = q (2.1)
δ*(q, wa) = δ(δ*(q, w), a) (2.2)
vôùi moïi q Î Q, w Î Σ*, a Î Σ. Ñeå hieåu taïi sao ñieàu naøy laïi ñuùng, chuùng ta haõy aùp duïng nhöõng ñònh nghóa naøy cho ví duï ñôn giaûn ôû treân. Ñaàu tieân, chuùng ta duøng (2.2) ta coù
δ*(q0, ab) = δ(δ*(q0, a), b) (2.3)
nhöng
δ*(q0, a) = δ(δ*(q0, l), a)
= δ(q0, a)
= q1
thay vaøo (2.3) ta ñöôïc :
δ*(q0, ab) = δ(q1, b) = q2
Baát cöù moät automat taát ñònh naøo ñeàu ñònh nghóa moät moät ngoân ngöõ duy nhaát, nhöng ngöôïc laïi thì khoâng ñuùng.Vôùi moät ngoân ngöõ ñöôïc cho, coù nhieàu automat taát ñònh chaáp nhaän noù. Coù theå coù söï khaùc nhau veà soá löôïng caùc traïng thaùi cuûa nhöõng automat naøy. Vaán ñeà ñaët ra laø giaûm bôùt traïng thaùi cuûa moät automat.
Ví duï 2.14
Hai automat taát ñònh trong hình 2.17(a) vaø 2.17(b) laø töông ñöông, deã thaáy ñieàu naøy, baèng caùch kieåm tra moät vaøi chuoãi nhaäp, treân chuùng. Chuùng ta xem laïi moät soá ñaëc tính roõ raøng laø khoâng caàn thieát trong hình 2.17(a). Traïng thaùi q5 khoâng ñoùng moät vai troø naøo trong automat, bôûi vì noù khoâng bao giôø ñeán ñöôïc töø traïng thaùi ban ñaàu q0. Nhö vaäy coù theå xoùa ñi ( cuøng vôùi taát caû caùc haøm chuyeån dòch lieân quan ñeán noù) maø khoâng laøm aûnh höôûng ñeán ngoân ngöõ ñöôïc chaáp nhaän bôûi automat naøy. Nhöng ngay caû sau khi loaïi boû traïng thaùi q5, automat ñaàu tieân vaãn coøn traïng thaùi thöøa. Traïng thaùi q1, q2 trong automat ñaàu ñöôïc keát noái thaønh moät traïng thaùi q1 trong atomat thöù hai (xem hình).
Ñònh nghóa 2.7 |
Hai traïng thaùi p vaø q cuûa automat taát ñònh ñöôïc goïi laø khoâng theå phaân bieät ñöôïc neáu:
δ(q, w) Î F suy ra δ(p, w) Î F,
vaø
δ(p, w) Ï F suy ra δ(q, w) Ï F,
vôùi moïi chuoãi w Î Σ*. Neáu toàn taïi chuoãi w Î Σ* sao cho
δ(q, w) Î F vaø δ(p, w) Ï F
hay ngöôïc laïi, thì traïng thaùi p vaø q ñöôïc goïi laø coù theå phaân bieät ñöôïc bôûi chuoãi w.
Roõ raøng hai traïng thaùi hoaëc laø khoâng theå phaân bieät ñöôïc hoaëc laø coù theå phaân bieät ñöôïc. Söï khoâng theå phaân bieät ñöôïc coù nhöõng tính chaát cuûa quan heä töông ñöông. Neáu p vaø q khoâng phaân bieät ñöôïc vaø neáu q vaø r cuõng khoâng phaân bieät ñöôïc, thì p, q, r cuõng khoâng theå phaân bieät ñöôïc.
Moät phöông phaùp giaûm soá traïng thaùi cuûa moät automat taát ñònh laø döïa vaøo vieäc tìm kieám vaø keát hôïp laïi nhöõng traïng thaùi khoâng phaân bieät ñöôïc. Ñaàu tieân chuùng ta moâ taû moät phöông phaùp (thuû tuïc Mark) tìm kieám moät caëp traïng thaùi coù theå phaân bieät ñöôïc.
Thuû tuc: Mark (Ñaùnh daáu)
Vôùi taát caû caëp (p,q) vaø taát caû kí töï a Î å, tính δ(p, a) = pa vaø δ(q, a) = qa. Neáu caëp (pa,qa) ñöôïc ñaùnh daáu laø phaân bieät ñöôïc thì cuõng ñaùnh daáu (p,q) laø coù theå phaân bieät ñöôïc.
Ñònh lyù 2.3:
Thuû tuïc mark, ñöôïc aùp duïng cho automat taát ñònh M = (Q, å, δ , q0, F) keát thuùc vaø xaùc ñònh nhöõng traïng thaùi coù theå phaân bieät ñöôïc.
Thuû tuïc: Reduce
Cho dfa M = (Q, Σ, δ, q0,F), chuùng ta taïo ra moät automat giaûm thieåu traïng thaùi
{ qi, qj. . .,qk}, {ql, qm, . . .,qn}, v . v.
taïo ra moät traïng thaùi ñöôïc gaùn nhaõn ij . . .k cho
3. Vôùi moãi haøm chuyeån dòch cuûa M coù daïng:
δ(qr , a) = qp
Tìm nhöõng taäp maø qr vaø qp thuoäc veà noù. Neáu qr Î {qi,qj , . .,qk} vaø
qp Î { ql,qm,. . . ,qn}, haõy theâm vaøo qui luaät
( ij . . .k, a) = lm . . . n
4. Traïng thaùi ban ñaàu cuûa
coù nhaõn laø 0.
5. laø taäp taát caû nhöõng traïng thaùi maø nhaõn chöùa i sao cho qi Î F.
Ví duï 2.15
Xem xeùt automat ñöôïc moâ taû trong hình 2.18.
Trong böôùc hai, thuû tuïc mark seõ xaùc ñònh nhöõng caëp phaân bieät ñöôïc
(q0, q4), (q1, q4), (q2, q4) vaø (q3, q4). Qua moät soá laàn laëp ôû böôùc 3, thuû tuïc ñöa ra:
d(q1,1) = q4
vaø d(q0,1) = q3
Vì (q3, q4) laø moät caëp coù theå phaân bieät ñöôïc, caëp (q0, q1) cuõng ñöôïc ñaùnh daáu. Tieáp tuïc nhöõng caëp sau ñöôïc ñaùnh daáu
(q0, q1), (q0, q2), (q0, q3), (q0, q4), (q1, q4), (q2, q4), (q3, q4)
laø coù theå phaân bieät ñöôïc, coøn laïi nhöõng caëp khoâng phaân bieät ñöôïc
(q1, q2),(q1, q3) vaø (q2, q3).
Hình 2.8
Do ñoù,nhöõng traïng thaùi q1, q2, q3 taát caû laø khoâng phaân bieät ñöôïc.
Automat baây giôø goàm ba taäp traïng thaùi vaø taát caû nhöõng traïng thaùi naøy ñöôïc phaân hoaïch vaøo nhöõng taäp {q0},{q1, q2, q3} vaø {q4}. Aùp duïng böôùc 2 vaø 3 cuûa thuû tuïc reduce ta coù automat taát ñònh nhö ôû hình 2.19.
0 |
|
123 |
|
4 |
0,1 |
1 |
0,1 |
0 |
Hình 2.19
Chương trình cho phép người dùng nhập vào một DFA thông qua giao diện đồ họa, người dùng có thể kiểm tra xem automat nhập vào có thỏa mãn điều kiện là một DFA không, nếu là DFA thì mới có thể thực hiện chức năng chính của chương trình là rút gọn DFA và vẽ ra đồ thị chuyển trạng thái.
Các dẫn xuất được nhập vào theo dạng:
trạng thái vào,nhãn,trạng thái ra;
vd: q0,0,q1 tương đương với δ(q0, 0) = q1