Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Xây dựng Pushdown Automata cho L = {0^n 1^m 2^m 3^n | m,n ≥ 0} trong C++


Xây dựng PDA cho ngôn ngữ: số '0' = số '3', số '1' = số '2'. Chuỗi rỗng được chấp nhận.

Các trạng thái chính

  • q0: Đẩy '0'; gặp '1' đẩy '1' chuyển q1; gặp '3' pop '0' chuyển q3; chuỗi rỗng chuyển q4.
  • q1: Đẩy '1'; gặp '2' pop '1' chuyển q2.
  • q2: Pop '1' cho '2'; gặp '3' pop '0' chuyển q3.
  • q3: Pop '0' cho '3'; chuỗi rỗng chuyển q4.
  • q5: Khi không có '0', đẩy '1' cho '1'; gặp '2' pop '1' chuyển q6.
  • q6: Pop '1' cho '2'; chuỗi rỗng chuyển q4.
  • q4: Trạng thái chấp nhận.

Bài viết tập trung vào lý thuyết thiết kế PDA, không có mã C++ thực thi.