Sự khác biệt giữa NFA và DFA Sự khác biệt giữa

Anonim

NFA vs DFA

Lý thuyết tính toán là một nhánh của khoa học máy tính giải quyết các vấn đề được giải quyết bằng cách sử dụng các thuật toán. Nó có ba nhánh, cụ thể là; lý thuyết tính toán phức tạp, lý thuyết tính toán, và lý thuyết automaton.

Lý thuyết automaton hoặc automata là nghiên cứu các máy toán học trừu tượng hoặc các hệ thống có thể được sử dụng để giải quyết các vấn đề tính toán. Một tự động được tạo thành từ trạng thái và quá trình chuyển đổi, và khi nó nhìn thấy một biểu tượng hoặc một kí tự nhập dữ liệu, nó sẽ chuyển sang trạng thái khác và lấy trạng thái và ký hiệu hiện tại làm đầu vào.

Lý thuyết automaton hoặc automata có nhiều lớp bao gồm Automata hữu hạn xác định (DFA) và Automata hữu hạn không xác định (NFA). Hai lớp học này là các chức năng chuyển tiếp của automata hoặc automaton.

Trong quá trình chuyển đổi, DFA không thể sử dụng chuỗi rỗng, và có thể hiểu là một máy. Nếu chuỗi kết thúc ở một trạng thái không phải là trạng thái chấp nhận được, DFA sẽ từ chối nó. Một máy DFA có thể được xây dựng với mọi đầu vào và đầu ra.

DFA chỉ có một trạng thái chuyển đổi cho mỗi biểu tượng của bảng chữ cái, và chỉ có một trạng thái cuối cùng mới được chuyển đổi, nghĩa là đối với mỗi ký tự được đọc, có một trạng thái tương ứng trong DFA. Dễ dàng kiểm tra thành viên trong DFA nhưng khó xây dựng hơn. Theo dõi được cho phép trong DFA, và nó đòi hỏi nhiều không gian hơn NFA.

Theo dõi không phải lúc nào cũng được phép trong NFA. Mặc dù có thể trong một số trường hợp, ở một số trường hợp, nó không có. Dễ dàng hơn để xây dựng NFA, và nó cũng đòi hỏi không gian ít hơn, nhưng không thể xây dựng một máy NFA cho mọi đầu vào và đầu ra.

Điều này được hiểu là một số máy nhỏ được tính đồng thời, và thành viên có thể khó kiểm tra hơn. Nó sử dụng Empty String Transition, và có rất nhiều trạng thái kế tiếp cho mỗi cặp trạng thái và ký hiệu đầu vào. Nó bắt đầu ở một trạng thái cụ thể và đọc các ký hiệu, và automaton sau đó sẽ xác định trạng thái tiếp theo phụ thuộc vào đầu vào hiện tại và các sự kiện kết quả khác. Ở trạng thái chấp nhận của nó, NFA chấp nhận chuỗi và từ chối nó theo cách khác.

Tóm tắt:

1. "DFA" là viết tắt của "Automatic Finite Xác định" trong khi "NFA" là viết tắt của "Automat hữu hạn không xác định. "

2. Cả hai đều là các chức năng chuyển đổi của automata. Trong DFA, trạng thái có thể tiếp theo được đặt rõ ràng trong khi ở mỗi cặp NFA của biểu tượng nhà nước và ký tự đầu vào có thể có nhiều trạng thái kế tiếp có thể xảy ra.

3. NFA có thể sử dụng quá trình chuyển đổi chuỗi rỗng trong khi DFA không thể sử dụng chuỗi chuyển đổi rỗng.

4. NFA được dễ dàng hơn để xây dựng trong khi đó là khó khăn hơn để xây dựng DFA.

5. Theo dõi được cho phép trong DFA, trong khi ở NFA, nó có thể hoặc không được cho phép.

6. DFA đòi hỏi nhiều không gian hơn trong khi NFA cần ít không gian hơn.

7. Trong khi DFA có thể được hiểu là một máy và một máy DFA có thể được xây dựng cho mọi đầu vào và đầu ra, 8. NFA có thể được hiểu là một số ít máy tính tính cùng nhau, và không có khả năng xây dựng một máy NFA cho mỗi đầu vào và đầu ra.