Vì vậy, tôi đã cố gắng để giải quyết vấn đề này trong một thời gian dài và gần như cảm thấy như tôi đang đi vào vòng lặp về câu hỏi này.
Cho NFA sau:
Sử dụng thuật toán GNFA có được biểu thức chính quy.
Tôi hiểu rằng bạn sẽ có những bước sau cho bước đầu tiên (thêm trạng thái trống):
Bước tiếp theo sẽ xóa trạng thái [q1] Tôi sẽ nhận được:
Cuối cùng, xóa [q2] sẽ nhận được:
Tuy nhiên, câu trả lời mà người khác nhận được là: Điều đó không có ý nghĩa như tôi đã nhận, ? Một GNFA (máy tự động hữu hạn hữu hạn không tổng quát) được mô tả như sau:
GNFA tương tự như NFA nhưng phải tuân theo các quy tắc nhất định:
- Nó chỉ có một trạng thái chấp nhận
- Trạng thái ban đầu không có sự chuyển tiếp vào nó
- Trạng thái chấp nhận không có chuyển tiếp đi ra từ nó
- Chuyển đổi có thể biểu thị bất kỳ biểu thức chính quy nào, thay vì chỉ là một biểu tượng từ bảng chữ cái Lưu ý rằng biểu tượng là một loại biểu thức chính quy.
Hơn nữa, chúng tôi có thể chuyển đổi NFA thành GNFA như sau:
- Thêm trạng thái bắt đầu mới với chuyển đổi to sang trạng thái bắt đầu cũ
- Thêm trạng thái chấp nhận mới với chuyển đổi from từ trạng thái chấp nhận cũ
- Nếu mũi tên có nhiều nhãn hoặc nếu có nhiều mũi tên giữa hai trạng thái, hãy thay thế chúng bằng liên kết (hoặc) của các nhãn đó