Có một bằng chứng chung tồn tại cho sự tương đương của hai máy tính hữu hạn (xác định) hữu hạn luôn luôn mất thời gian hữu hạn? Tức là, với hai FSM, bạn có thể chứng minh rằng với cùng một đầu vào, chúng sẽ luôn tạo ra cùng một kết quả đầu ra mà không cần thực thi FSM (có thể không kết thúc?). Nếu bằng chứng đó tồn tại, độ phức tạp của thời gian là gì?Bằng chứng chung về sự tương đương của hai FSM trong thời gian hữu hạn?
Trả lời
Có bằng chứng, mặc dù tôi không biết. Hãy tìm sách giáo khoa của Sipser về chủ đề, đó là nơi tôi biết về nó.
Scrounging bộ nhớ của tôi: về cơ bản, có một DFA tối thiểu duy nhất cho một DFA nhất định, và có một thuật toán giảm thiểu luôn luôn chấm dứt. Giảm thiểu cả A và B và xem liệu chúng có cùng DFA tối thiểu hay không. Tôi không biết sự phức tạp của việc giảm thiểu, mặc dù nó không quá tệ (tôi nghĩ rằng đa thức của nó). Graph isomorphism là khá khó tính toán, nhưng vì có một nút khởi đầu đặc biệt, nó hy vọng có thể dễ dàng hơn một chút. Bạn thậm chí có thể không đòi hỏi đồ thị đẳng cấu, phải trung thực.
Nhưng không, bạn không bao giờ cần thực sự chạy DFA, chỉ cần phân tích cấu trúc của chúng.
Giả sử bạn có hai FSM với trạng thái O (n). Sau đó, bạn có thể tạo FSM có kích thước O (n) chỉ nhận ra sự khác biệt đối xứng của ngôn ngữ chấp nhận của chúng. (Tạo một FSM có các trạng thái tương ứng với một cặp trạng thái, một từ mỗi FSM. Sau đó, trên mỗi bước, cập nhật từng phần của cặp cùng một lúc. Một trạng thái trong FSM mới là một trạng thái chấp nhận iff chính xác một trong các cặp là một trạng thái chấp nhận.) Bây giờ giảm thiểu FSM này và xem nó có giống FSM một trạng thái tầm thường loại bỏ mọi thứ không. Giảm thiểu một FSM với m tiểu bang đòi hỏi thời gian O (m log m), vì vậy tổng thể bạn có thể làm tất cả mọi thứ trong thời gian O (n log n).
@Agor nêu chính xác rằng Sipser là một tham chiếu tốt cho những thứ này. Điểm mấu chốt của câu trả lời của tôi là bạn có thể làm điều này trong thời gian đa thức, ngay cả với một số mũ nhỏ.
- 1. Máy trạng thái hữu hạn (FSM) và Java
- 2. Tương đương với thời gian() trong JMockIt?
- 3. C# GMT thời gian tương đương với thời gian UTC?
- 4. Thời gian dùng thử hạn chế và Chứng nhận Windows
- 5. Tương đương với lệnh thời gian Unix trong PowerShell?
- 6. Máy nhà nước hữu hạn có nên sử dụng máy hữu hạn "lồng nhau" không?
- 7. Chứng minh truy vấn SQL tương đương
- 8. Ví dụ về bản đồ hữu hạn
- 9. Tương quan của hai biến trong một chuỗi thời gian bằng Python?
- 10. C# .NET tương đương với thời gian PHP()
- 11. Lời khuyên chung về giảm thời gian GC trong GHC
- 12. Sự khác biệt về thời gian Python
- 13. Có tương đương với nguyên tắc "thời gian chạy" của Lisp trong Đề án không?
- 14. tương đương với thời gian cho bộ nhớ kiểm tra
- 15. DALs tương lai bằng chứng
- 16. Hiển thị hai hàm fibonacci khác nhau là tương đương
- 17. Tìm thấy sự tương đương của hai chức năng không thể xác định?
- 18. Thời gian ép buộc của các kiểu chung trong F #
- 19. Máy chủ SQl vẫn gặp lỗi "Thời gian chờ đã hết hạn. Thời gian chờ hết hạn"
- 20. Bất kỳ tương đương VBNET nào của C#, nơi từ khóa ràng buộc chung chung?
- 21. Python "Sự kiện" tương đương trong Java?
- 22. Sự kiện KeyPress tương đương trong WPF
- 23. python tương đương tương đương
- 24. Automaton hữu hạn trong Haskell
- 25. Kịch bản PHP kết thúc sớm, không có bằng chứng về lỗi và thời gian chờ được đặt thành 0
- 26. So sánh hai loại enum * tương đương?
- 27. Hai cột dấu thời gian của MySQL trong một bảng
- 28. Sự khác biệt dấu thời gian trong giờ cho PostgreSQL
- 29. Thời gian chờ nhiệm vụ của Celery/giới hạn thời gian cho các cửa sổ?
- 30. lag chung dữ liệu bảng của chuỗi thời gian
Đồng vị đồ thị không được biết là NP-complete, và trên thực tế, được cho là không. –
Bạn hoàn toàn đúng, sai lầm của tôi. Tôi đã chỉnh sửa bài đăng để sửa lỗi đó. – agorenst