Automat

44 519 0
Automat

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Có hay không lớp ôtômát tương ứng với lớp NNPNC? Như đã biết, ôtômát hữu hạn không thể nhận biết tất cả NNPNC,

Trang 224Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông TinChương 7 Ôtômát đẩy xuốngCó hay không lớp ôtômát tương ứng với lớp NNPNC?Như đã biết, ôtômát hữu hạn không thể nhận biết tất cảNNPNC, chẳng hạn L = {anbn: n ≥ 0}, vì nó có một bộnhớ hữu hạn. Vì vậy chúng ta muốn có một máy mà đếm không giới hạn. Từ ví dụ ngôn ngữ {wwR}, chúng ta cần thêm khả năng lưu và so trùng một dãy kí hiệu trong thứ tự ngược lại.Điều này đề nghị chúng ta thử một stack như một cơ chế lưu trữ. Đóchính là lớp ôtômát đẩy xuống (PushDown Automata - PDA) Trang 225Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông TinChương 7 Ôtômát đẩy xuống7.1 PDA không đơn định7.2 NPDA và NNPNC7.3 PDA đơn định và NNPNC đơn định7.4 Văn phạm cho NNPNC đơn định Trang 226Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông TinÔtômat đẩy xuống không đơn địnhMỗi di chuyển của đơn vị điều khiển đọc một kí hiệu nhập, trong cùng thời điểm đó thay đổi nội dung của stack.Mỗi di chuyển được xác định bằng kí hiệu nhập hiện tại, kí hiệu hiện tại trên đỉnh của stack. Kết quả là một trạng thái mới của đơn vị điều khiển và một sự thay đổi trên đỉnh của stack.Chúng ta sẽ chỉ nghiên cứu các PDA thuộc loại accepter.Control unitStackInput file Trang 227Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông TinĐịnh nghĩa ôtômát đẩy xuốngĐịnh nghĩa 7.1Một accepter đẩy xuống không đơn định (npda) được định nghĩa bằng bộ bảy M = (Q, Σ, Γ, δ, q0, z, F), trong đóQ là tập hữu hạn các trạng thái nội của đơn vị điều khiển,Σ là bảng chữ cái ngõ nhập (input alphabet),Γ là bảng chữ cái stack (stack alphabet),q0∈ Q là trạng thái khởi đầu của đơn vị điều khiển,z ∈Γlà kí hiệu khởi đầu stack (stack start symbol),F ⊆ Q là tập các trạng thái kết thúc.Hàm chuyển trạng thái δ là một ánh xạδ : Q × (Σ∪{λ}) ×Γ→tập con hữu hạn của Q ×Γ*, Trang 228Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông TinVí dụδ(q, a, b) = {(p, cd)}Ví dụXét một npda vớiQ = {q0, q1, q2, qf},Σ = {a, b},Γ = {0, 1, z},F = {qf},StackabcdInput fileControl unitqp Trang 229Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông TinNhận xétδ (q0, a, z) = {(q1,1z), (qf, λ)}, δ (q0, λ, z) = {(qf, λ)},δ (q1, a, 1) = {(q1, 11)}, δ (q1, b, 1) = {(q2, λ)},δ (q2, b, 1) = {(q2, λ)}, δ (q2, λ, z) = {(qf, λ)}.δ (q0, b, 0) không được định nghĩa tương đương với cấu hình chết mà ta đã học.δ (q1, a, 1) = {(q1, 11)} thêm một kí hiệu 1 vào stack khi a được đọc.δ (q2, b, 1) = {(q2, λ)} xóa một kí hiệu 1 khỏi stack khi b được đọc.L(M) = {anbn: n ≥ 0} ∪ {a} Trang 230Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông TinMột số khái niệmHình trạng tức thờiLà bộ ba (q, w, u), trong đó q là trạng thái của đơn vị điều khiển, w là phần chưa đọc của chuỗi nhập, còn u là nội dung của stack (với kí hiệu trái nhất là kí hiệu đỉnh của stack).Di chuyển, Một di chuyển từ một hình trạng tức thời này đến một hình trạng tức thời khác sẽ được kí hiệu bằng .(q1, aw, bx)(q2, w, yx) là có khả năng ⇔ (q2, y) ∈δ(q1, a, b)., , Dấu * chỉ ra có ≥ 0 bước di chuyển được thực hiện còn dấu +chỉ ra ≥ 1 bước di chuyển. Chữ M chỉ ra di chuyển của ôtômát nào._|_|_|*_|+_|M_| Trang 231Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông TinNgôn ngữ được chấp nhận bởi một npdaĐịnh nghĩa 7.2Cho M = (Q, Σ, Γ, δ, q0, z, F)làmột npda. Ngôn ngữ được chấp nhận bởi M là tậpL(M) = {w ∈Σ*: (q0, w, z)(qf, λ, u), qf∈ F, u ∈Γ*}.Ví dụXây dựng một npda cho ngôn ngữL = {w ∈ {a, b}*: na(w) = nb(w)} *_| Trang 232Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông TinVí dụXây dựng npda cho ngôn ngữ này như sau.M = ({q0, qf}, {a, b}, {0, 1, z}, δ, q0, z, {qf}).δ(q0, λ, z) = {(qf, z)},δ(q0, a, z) = {(q0, 0z)}, δ(q0, b, z) = {(q0, 1z)},δ(q0, a, 0) = {(q0, 00)}, δ(q0, b, 0) = {(q0, λ)},δ(q0, a, 1) = {(q0, λ)}, δ(q0, b, 1) = {(q0, 11)},Trong qúa trình xử lý chuỗi baab, npda thực hiện các di chuyển sau.(q0, baab, z) (q0, aab, 1z) (q0, ab, z) (q0, b, 0z) (q0, λ, z) (qf, λ, z) _|_|_|_|_| Trang 233Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông TinVí dụ (tt)Xây dựng npda cho ngôn ngữL = {wwR: w ∈ {a, b}+}M = ({q0, q1, qf}, {a, b}, {a, b, z}, δ, q0, z, {qf}).δ(q0, a, z) = {(q0, az)},δ(q0, b, z) = {(q0, bz)},δ(q0, a, a) = {(q0, aa)},δ(q0, b, a) = {(q0, ba)},δ(q0, a, b) = {(q0, ab)},δ(q0, b, b) = {(q0, bb)}. δ(q0, λ, a) = {(q1, a)},δ(q0, λ, b) = {(q1, b)},δ(q1, a, a) = {(q1, λ)},δ(q1, b, b) = {(q1, λ)},δ(q1, λ, z) = {(qf, z)}. [...]... Thơng Tin Ví dụ  Xây dựng npda cho ngơn ngữ được sinh ra bởi văn phạm sau. S → aSbb | a.  Đầu tiên ta biến đổi văn phạm này sang dạng chuẩn Greibach, thành văn phạm là: S → aSA | a, A → bB, B → b.  Automat tương ứng sẽ có ba trạng thái {q 0 , q 1 , q f }, với trạng thái khởi đầu là q 0 và trạng thái kết thúc là q f .  Đầu tiên, ở trạng thái khởi đầu biến S được đặt trên stack bằng δ(q 0 , λ, z) . một stack như một cơ chế lưu trữ. Đóchính là lớp ôtômát đẩy xuống (PushDown Automata - PDA) Trang 225Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông. phạm này sang dạng chuẩn Greibach, thành văn phạm là:S → aSA | a,A → bB,B → b. Automat tương ứng sẽ có ba trạng thái {q0, q1, qf}, với trạng thái khởi đầu

Ngày đăng: 13/10/2012, 09:17

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan