Input : M = <S, I, O, s0, δ, λ>.
Output: Cây DS.
Phương pháp: Thực hiện các bước sau:
Bước 1: Gọi ψ là một tập các khối trạng thái trong cây DS. Ban đầu, ψ
chứa khối trạng thái ban đầu và được gán là không kết thúc.
Bước 2: Tìm một thành phần ψ ∈ ψ mà vẫn chưa được “tính toán”. Nếu không có thành phần nào như thế tồn tại thì thuật toán kết thúc.
Bước 3: Tính toán ψ’ = dpert(ψ,a) và thêm ψ’ vào ψ với ∀a ∈ I. Gán ψ đã được “tính toán” và cập nhật DS tree.
Bước 4: Nếu dpert (ψ,a) được tính toán ở Bước 3 thỏa mãn điều kiện kết
thúc D1, D2 hoặc D3 thì gán ψ’ là nút kết thúc.
Bước 5: Quay lại Bước 2
Áp dụng thuật toán trên sinh cây DS cho FSM G2 như Hình 3.3 dưới đây:
Hình 3.5: Cây DS của FSM G2 ở Hình 3.4
Từ khối trạng thái ban đầu với đầu vào 0 sinh ra khối trạng thái (AB)(DD) vì:
・Hai trạng thái A và B sinh ra cùng output 0 từ input 0 và chuyển FSM tới
trạng thái B và A.
・Hai trạng thái C và D sinh ra cùng output 1 từ input 0 và chuyển FSM tới
cùng trạng thái D.
Từ khối trạng thái ban đầu với đầu vào 1 sinh ra khối trạng thái (DC)(BA) vì:
・Hai trạng A và D sinh ra cùng output 0 với input 1 và chuyển FSM tới
trạng thái D và C.
・Hai trạng thái B và C sinh ra cùng output 1 từ input 1 và chuyển FSM tới
trạng thái B và A.
(DD)(BA) là một khối trạng thái đồng nhất nên nó là nút kết thúc.
(A)(B)(C)(D) là khối trạng thái đơn nhất được sinh ra từ khối trạng thái (DC)(BA) với input 1 nên nó cũng là nút kết thúc.
Và cuối cùng ta được cây DS như Hình 3.3. Chuỗi input 11 đưa cây DS từ
khối trạng thái ban đầu tới khối trạng thái đơn nhất duy nhất là một DS của FSM.
Ta kiểm chứng lại lại kết quả: λ(A,11) = λ(λ (A,1),1) = 00 λ(B,11) = λ(λ(B,1),1) = 11 λ(C,11) = λ(λ(C,1),1) = 10 λ(D,11) = λ(λ(D,1),1) = 01
Như vậy, từ một chuỗi đầu vào 11 được cung cấp cho mỗi trạng thái của FSM thì đầu ra của mỗi trạng thái này là khác nhau. Kết quả này được tổng hợp tại Bảng 3.3 dưới đây:
Bảng 3.3: Bảng chuỗi phân biệt của các trạng thái của FSM G2
Trạng thái Chuỗi vào Chuỗi ra
A 11 00
B 11 11
C 11 10
D 11 01