Có bắt buộc phải xác định chuyển tiếp trên mỗi bảng chữ cái có thể trong Tự động xác định hữu hạn không?


13

Ngày mai là bài thuyết trình của tôi và tôi muốn xóa các khái niệm của mình

Tôi đã đọc điều đó trong DFA, "Đối với mỗi trạng thái, nên chuyển đổi trên tất cả các ký hiệu có thể (bảng chữ cái)."

Là cho mỗi tiểu bang, xác định chuyển đổi trên tất cả các biểu tượng có thể bắt buộc trong DFA? Nếu không, xin vui lòng cho ví dụ nào?


1
Chào mừng đến với CS.SE! Chúng tôi muốn bạn chỉ hỏi một câu hỏi cho mỗi bài viết. Điều này trông giống như hai câu hỏi riêng biệt. Sẽ tốt hơn nếu đăng riêng bài thứ hai (về NFA). Ngoài ra, bạn đã tìm kiếm kỹ lưỡng trên trang web này, và kiểm tra định nghĩa chính thức trong sách giáo khoa của bạn? Nếu không, bạn nên làm điều đó trước khi hỏi; và bạn nên cho chúng tôi thấy trong câu hỏi bạn đã tìm thấy gì khi bạn làm điều đó.
DW

Cảm ơn bạn đã chào đón nồng nhiệt, tôi thực sự đã tìm kiếm trên trang web này và trên google, nhưng tôi đang nhận được những quan điểm trái chiều thực sự làm tôi bối rối ..
HQuser

Câu hỏi thứ hai đã bị xóa, nhưng bạn có thể tìm thấy nó trong lịch sử chỉnh sửa và đăng riêng nó dưới dạng một câu hỏi riêng biệt bằng cách sử dụng nút 'Đặt câu hỏi' ở phía trên bên phải. Tuy nhiên, trước khi hỏi, vui lòng đảm bảo thực hiện nghiên cứu được đề xuất và cho chúng tôi biết trong câu hỏi bạn đã thực hiện nghiên cứu nào, bao gồm cho chúng tôi biết bạn đã đọc sách giáo khoa nào. Theo như câu hỏi này, bạn vẫn có thể chỉnh sửa câu hỏi này để giải quyết phản hồi tôi đã đưa ra ở đây bằng cách tra cứu định nghĩa chính thức trong sách giáo khoa của bạn, bao gồm nó trong câu hỏi và thể hiện cách giải thích của bạn về định nghĩa đó.
DW

9
Dù sao, điều này dường như được bao phủ bởi cs.stackexchange.com/q/12587/755 . Phiếu cộng đồng, xin vui lòng: đây có phải là một bản sao?
DW

1
Tôi không thực sự hiểu câu hỏi của bạn. Có vẻ như "Tôi đã đọc rằng định nghĩa là X. Là định nghĩa X?"
David Richerby

Câu trả lời:


12

Một DFA được chỉ định bởi dữ liệu sau:

  • Một bảng chữ cái .Σ
  • Một tập hợp các tiểu bang .Q
  • Một trạng thái ban đầu .q0Q
  • Một tập hợp các tiểu bang cuối cùng .FQ
  • Một chức năng chuyển tiếp .δ:Q×ΣQ

Như bạn có thể thấy từ chữ ký của , nó chỉ định một chuyển đổi ở mọi trạng thái cho mọi biểu tượng.δ


7
Ngoại trừ việc DFA đôi khi được xác định bằng chức năng chuyển tiếp một phần.
Gilles 'SO- ngừng trở nên xấu xa'

6
Bạn nói đúng, không có định nghĩa "chính thức" về DFA. Nhưng việc đọc của OP phản bội ảnh hưởng của định nghĩa cụ thể này.
Yuval Filmus

Nên nói rõ ràng rằng hàm chuyển đổi là tổng số.
Ryan

24

Giả sử một DFA được phép có các chuyển tiếp bị thiếu. Điều gì xảy ra nếu bạn gặp một biểu tượng không có định nghĩa cho nó? Kết quả là không xác định. Điều đó dường như vi phạm đặc tính "xác định" của DFA.

Tuy nhiên, việc biến một DFA không hoàn chỉnh thành một DFA hoàn chỉnh là chuyện nhỏ . Chỉ cần thêm một trạng thái mới illegalvà ánh xạ mọi chuyển tiếp không xác định sang illegaltrạng thái. Cuối cùng, thêm hiệu ứng chuyển tiếp cho mọi biểu tượng từ illegaltrạng thái trở lại chính nó. Đây illegaltrạng thái thường được gọi là bồn rửa nhà nước, bởi vì một khi dữ liệu rơi vào bồn rửa chén không có cách nào để thoát ra.

Vì vậy, từ góc độ thực tế, đó là loại xe mô tô, miễn là bạn có một cách được xác định rõ để xử lý các chuyển tiếp bị thiếu.


10
Cẩn thận: Một quá trình chuyển đổi không được xác định không làm cho máy tự động không xác định, chỉ là không đầy đủ. Có một số định nghĩa về DFA cho phép chuyển đổi không xác định chính xác như vậy bởi vì nó hoàn toàn không quan trọng để hoàn thành nó một cách có hệ thống.
Darkhogg

1
@Darkhogg, tôi không nhất thiết không đồng ý, nhưng việc xác định DFA không hoàn chỉnh có phụ thuộc vào cách triển khai cụ thể xử lý các chuyển đổi không xác định / thiếu này không? Và việc triển khai như vậy hoàn toàn không hoàn thành DFA?
Nathan Davis

1
Không, nó không phụ thuộc vào việc thực hiện, nó phụ thuộc vào định nghĩa. Nếu bạn xác định DFA là có chức năng chuyển đổi tổng thể và sau đó sử dụng chức năng một phần chắc chắn, bạn có hành vi không xác định và có thể kết thúc bằng tính không xác định, nhưng đó không phải là nhất định. Tuy nhiên, đôi khi các DFA được xác định rõ ràng để sử dụng một phần chức năng và khi gặp một chuyển đổi không xác định, hành vi là "không chấp nhận", theo giai đoạn. Không có tính không xác định hoặc bất cứ điều gì thú vị ở đó, cho bất kỳ triển khai nào vì kết quả được xác định ngay cả khi quá trình chuyển đổi không.
Darkhogg

BTW: bạn cũng có thể thực hiện chuyển đổi ngược. Lấy "tổng số tự động" và loại bỏ trạng thái chìm để có được "máy tự động không hoàn chỉnh". Cuối cùng, sự khác biệt duy nhất là một máy tự động hoàn toàn luôn có thể đọc một từ đến cuối, và sau đó nó quyết định liệu nó có chấp nhận từ đó hay không, trong khi một máy tự động một phần có thể từ chối một số từ trước khi đọc tất cả các từ của chúng nhân vật.
Bakuriu

5

ΣQρQ×Σ×Qδ:(Q×Σ)2Q|δ(q,σ)|1qQσΣδ(q,σ)qQσΣ

Một từ được chấp nhận bởi NFA nếu nó có một hoạt động chấp nhận. Một máy tự động xác định có nhiều nhất một lần chạy. Một máy tự động hoàn chỉnh có ít nhất một lần chạy.

Một số tác giả định nghĩa trim automata là những trạng thái trong đó mỗi trạng thái nằm trên một đường dẫn từ trạng thái ban đầu đến trạng thái cuối cùng. Đối với một số ngôn ngữ nhất định, bạn không thể có automata vừa cắt vừa hoàn thiện. Trong những trường hợp đó, thật thuận tiện để giữ cho yêu cầu về tính đầy đủ nằm ngoài định nghĩa của máy tự động xác định.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.