Giao điểm này của DFA có đúng không?


7

Tôi đang xây dựng một automata hữu hạn xác định (DFA) cho ngôn ngữ của tất cả các chuỗi được xác định trên có độ dài là chẵn và số s là số lẻ. Tôi đã xây dựng từng DFA riêng biệt và sau đó kết hợp:{0,1}1

dfas và công đoàn của họ

  • Quy trình đã cho để kết hợp DFA có đúng không?
    EDIT: Nguyên văn đoàn; thực sự lấy ngã tư.
  • Ai đó sẽ đề xuất tài liệu về việc xây dựng các DFA
    đưa ra các hạn chế về độ dài và số lượng giây hoặc giây?01

Theo liên kết được đưa ra bởi Merbs, tôi đã phát triển FA này. nhập mô tả hình ảnh ở đây
FA này không chấp nhận một ngôn ngữ có độ dài đồng đều.


1
Cách tiếp cận của bạn có vẻ đúng, nhưng bạn nên sử dụng giao lộ và không kết hợp hai DFA.
A.Schulz

Tôi chỉ học được 3 phương pháp như kết hợp FA, ghép FA và đóng FA. Tôi đang tìm kiếm nhưng không thể tìm thấy giao điểm của FA. Bạn có thể chỉ cho tôi một số liên kết hữu ích?
Rafay Zia Mir

1
Từ một tìm kiếm Google: trang web này là tốt, nhưng ý chính là bạn lấy giao điểm của các trạng thái chấp nhận.
Merbs

Tôi đã truy cập liên kết này nhưng điều này cung cấp một ví dụ cụ thể không phải là quy tắc, bcz khi chúng tôi gặp một số FA khó khăn thì sẽ rất khó để xây dựng giao lộ.
Rafay Zia Mir

Cho hai DFA với mn tuyên bố, xây dựng một DFA với mncác trạng thái (với mỗi trạng thái đại diện cho một cặp trạng thái trong các DFA gốc) quy tắc; và sau đó bạn có thể giảm thiểu DFA kết quả thông qua một bộ các thủ tục (chủ yếu là heuristic?).
Merbs

Câu trả lời:


8

Có, đây được gọi là Giới hạn sản phẩm - các DFA đã choM1M2, chúng ta có thể xây dựng M=M1×M2:

  • M bao gồm các cặp trạng thái từ các DFA cấu thành của nó, vì vậy nếu các DFA ban đầu có các trạng thái A,B,Cx,y,z, sản phẩm sẽ là {Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz}.
  • Hàm chuyển đổi được cập nhật sao cho nếu trên một bước cụ thể, một chuỗi sẽ gây ra M1 chuyển từ nhà nước A đến BM2 để chuyển từ x đến y, sau đó sản phẩm sẽ chuyển từ Ax đến By
  • Trạng thái ban đầu là cặp bao gồm các trạng thái ban đầu của các DFA cấu thành (nghĩa là Ax).
  • Nếu chúng ta đang xây dựng DFA xác định xem cả hai DFA cấu thành có chấp nhận chuỗi hay không, thì trạng thái chấp nhận củaMgiao điểm (các cặp được tạo thành từ các trạng thái chấp nhận từ cả hai).
    Nếu chúng ta đang xây dựng DFA xác định xem một trong hai DFA cấu thành có chấp nhận chuỗi hay không, thì trạng thái chấp nhận của Mliên minh (các cặp được tạo thành từ các trạng thái chấp nhận từ một trong hai).
    Trong ví dụ của bạn,x1y0 là các trạng thái chấp nhận của M1M2; giao lộ sẽ là{x1y0} trong khi công đoàn sẽ {x1y0,x1y1,x0y0}.

Tôi đã bao gồm một số DFA khác về các hạn chế về thời lượng để tham khảo.

ví dụ


Trong trường hợp hợp nhất, không nên tập hợp các trạng thái chấp nhận M1Q2Q1M2? (Không phải ai cũng sẽ sử dụng công trình này cho công đoàn; trong trường hợp đó,|Q1|+|Q2|+1 trạng thái trái ngược với |Q1||Q2|năng suất xây dựng này. Ít nhất là nếu chúng ta đang nói về NFA.)
Raphael

@Raphael, bình luận của bạn, trong khi chính xác, đủ phức tạp đến nỗi tôi không hiểu nó mà không cần suy nghĩ thêm, vì vậy tôi đã cố gắng "laymenize" nó. Nếu bạn muốn chỉnh sửa câu trả lời của tôi để bao gồm một cuộc thảo luận về NFA, bạn có thể biến nó thành wiki cộng đồng (hoặc thêm câu trả lời của riêng bạn).
Merbs

@Merbs, cảm ơn sự giúp đỡ và trả lời của bạn. Xin lỗi vì trả lời trễ nhưng tôi đã thử phương pháp này với các FA khác và điều này đã thành công.
Rafay Zia Mir

1

OK, "laymanized" một chút. Lấy DFAM1=(Q1,Σ,δ1,q1,F1)M2=(Q2,Σ,δ2,q2,F2). Hãy xem xét DFAM=(Q1×Q2,Σ,δ,(q1,q2),F1×F2), Ở đâu δ được định nghĩa bởi:

δ((q,q),a)=(δ1(q,a),δ2(q,a))
Ý tưởng là trạng thái của M ghi lại các trạng thái trong đó M1M2 sẽ là nếu họ xử lý chuỗi riêng biệt. M chỉ chấp nhận nếu cả hai làm.

1
Không chắc chắn theo cách này là "laymanized"; đây là định nghĩa chính thức (chính xác) cho việc xây dựng sản phẩm. Bạn nên đề cập đến cách thiết lập trạng tháiMcó thể được giảm trong nhiều trường hợp; không ai muốn vẽ tất cả những thứ nhảm nhí đó
Raphael
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.