2013-10-08 15 views
5

Tôi hiện đang xem xét DAWG và tôi không thể tìm thấy một cách tốt để xây dựng một automaton tuần hoàn.Cách tốt nhất để xây dựng Biểu đồ từ theo chu kỳ được chỉ định (DAWG)

Vì vậy, về cơ bản, những gì tôi muốn làm là thế này:

DAWG

Nó cơ bản là một cây, nơi mà số lượng của các quốc gia đang giảm. Tôi sẽ sử dụng nó với các con số nhưng khái niệm là chính xác như nhau.

Tôi tự hỏi điều gì sẽ là cách nhanh nhất để làm điều đó, kế hoạch thực tế của tôi là xây dựng biểu đồ như hình bên trái, và sau đó nhìn vào các trạng thái ở mức thấp và khi chúng tương tự như vậy.

Mặc dù, tôi không chắc đây là cách tốt nhất để làm điều đó, không ai có ý tưởng về cách xây dựng nó.

Trân trọng.

+0

Bạn có đại diện cho DFA. Bạn có thể giảm nó thành một DFA tối thiểu (có các thuật toán khá chuẩn) – SheetJS

+0

Tôi biết, nhưng tôi thực sự đang tìm cách để thực hiện một (hoặc một mã giả) – Anoracx

+0

https://en.wikipedia.org/wiki /DFA_minimization#Hopcroft.27s_algorithm – SheetJS

Trả lời

3

DAWG là loại tự động hữu hạn tối thiểu của tiểu bang cho tập hợp cụ thể nếu chuỗi chúng lưu trữ. Bạn có thể xây dựng chúng bằng cách xử lý trie bạn có như một automaton hữu hạn không tối thiểu và chạy một thuật toán giảm thiểu DFA tiêu chuẩn trên nó. Đây có lẽ là cách dễ nhất để xây dựng DAWG, và cũng có thể là nhanh nhất.

Hy vọng điều này sẽ hữu ích!

+0

Vâng, vâng nhưng có nhiều thuật toán giảm thiểu, và tôi muốn tạo DAWG "bản thân mình", bởi vì tôi sẽ cần lưu trữ nó trong một mảng tại một số điểm. Tôi thực sự đang tìm kiếm một mã giả để lấy cây -> DAWG. – Anoracx

+0

@ Anoracx- Tôi đoán tôi đang bối rối về những gì bạn đang yêu cầu. Bước trie-> DAWG là bước giảm thiểu DFA. Bạn có ý gì khi "tự mình xây dựng DAWG?" – templatetypedef

+0

Tôi nghĩ từ đọc wikipedia rằng một DAWG (DAFSA) là một loại cây được xây dựng từ một cây thông thường/DFA. Vì vậy, tôi đã thực sự nghĩ rằng sẽ có một thuật toán cụ thể để làm điều đó. Và không chỉ các thuật toán giảm thiểu. Vì vậy, khi tôi nói rằng tôi muốn làm điều đó bản thân mình, tôi đã thực sự tìm kiếm một cách để chuyển đổi nó từ một DFA sang DAFSA (DAWG), và nếu ý tưởng bắt đầu từ phía dưới là một ý tưởng tốt. – Anoracx

Các vấn đề liên quan