Thuật toán sinh cây UIO

Một phần của tài liệu MỘT số PHƯƠNG PHÁP xác ĐỊNH CHUỖI KIỂM CHỨNG TRẠNG THÁI (Trang 26 - 33)

Input: M = <S, I, O, δ, λ> và L.

Output: cây UIO.

Phương pháp: Thực hiện các bước sau

Bước 1: Đặt ψ là một tập các vec-tơ đường dẫn trong cây UIO, ban

đầu ψ chứa vec-tơ ban đầu và được gán là không kết thúc.

Bước 2: Tìm một phần tử chưa kết thúc ψψ mà chưa được “tính toán”.

Nếu không tồn tại phần tử nào như vậy thì thuật toán kết thúc.

Bước 3: Tính toán ψ’ = pert(ψ,ai/bi) và thêm ψ’ vào ψ với ∀ai/bi ∈

L.

Đánh dấu ψ đã được “tính toán” và cập nhật cây UIO.

Bước 4: Nếu pert(ψ,ai/bi), đã tính toán ở Bước 3 thỏa mãn điều

kiện D1 hoặc D2 hoặc D3, thì đánh dấu ψ’ là một nút kết thúc.

Bước 5: Quay lại bước 2.

Ví dụ:

Cây UIO của FSM G1được xây dựng như sau:

Ψ = (A/A, B/B, C/C, D/D) và được “tính toán” bởi việc sử dụng tất cả các thành phần của L như sau:

(A/B, B/A) = pert(Ψ, 0/0) (C/D, D/D) = pert(Ψ, 0/1)

(A/D, B/B, C/A, D/C) = pert(Ψ, 1/0)

Cây UIO có thể được thể hiện dưới dạng đồ họa như sau: gốc là vec-tơ đường dẫn ban đầu, Ψ = (A/A, B/B, C/C, D/D). Từ gốc vẽ 3 cạnh tới các đường dẫn vec-tơ (A/B, B/A), (C/D, D/D), (A/D, B/B, C/A, D/C) với nhãn là các thành phần tương ứng của L là 0/0, 0/1 và 1/0, thể hiện trong Hình 3.2 dưới đây:

Hình 3.2: Cây UIO của FSM G1 ở hình 3.1

Vec-tơ đường dẫn (C/D, D/D) là nút kết thúc vì vec-tơ hiện thời (D, D) là một vec-tơ đồng nhất. Vì vậy vec-tơ đường dẫn (C/D, D/D) sẽ không được “tính toán” nữa, trong khi 2 vec-tơ đường dẫn còn lại (A/B, B/A) và (A/D, B/B, C/A,

D/C) tiếp tục được “tính toán”. Chuỗi UIO có độ dài nhỏ nhất được chỉ ra trong Hình 3.3 của các trạng thái bằng các đường nét đứt.

Kết quả trên được tổng hợp thành Bảng 3.1 dưới đây:

Bảng 3.1: Chuỗi UIO của FSM G1

Trạng thái Chuỗi vào Chuỗi ra

A 010 000

B 010 001

C 1010 0000

D 11010 00000

Ta kiểm chứng lại kết quả:

 Kiểm chứng trạng thái A bằng chuỗi 010

λ(A,010) = λ(λ(λ(A,0),1),0) = 000 λ(B,010) = λ(λ(λ(B,0),1), 0) = 001 λ(C,010) = λ(λ(λ(C,0),1),0) = 101 λ(D,010) = λ(λ(λ(D,0),1) 0) = 100

 Kiểm chứng trạng thái B bằng chuỗi 010

λ(B,010) = λ(λ(λ(B,0),1),0) = 001 λ(A,010) = λ(λ(λ(A,0),1),1) = 000 λ(C,010) = λ(λ(λ(C,0),1),1) = 101 λ(D,010) = λ(λ(λ(D,0),1),1) = 100

 Kiểm chứng trạng thái C bằng chuỗi 1010

λ(C,1010) = λ(λ(λ(λ(C,1),0),1),0) = 0000 λ(A,1010) = λ(λ(λ(λ(A,1),0),1),0) = 0111 λ(B,1010) = λ(λ(λ(λ(B,1),0),1),0) = 0001 λ(D,1010) = λ(λ(λ(λ(D,1),0),1),0) = 0101

λ(D,11010) = λ(λ(λ(λ(λ(D,1),1),0)1),0) = 00000 λ(A,11010) = λ(λ(λ(λ(λ(A,1),1),0),1),0) = 00101 λ (B,11010) = λ(λ(λ(λ(λ(B,1),1),0),1),0) = 00001

Một phần của tài liệu MỘT số PHƯƠNG PHÁP xác ĐỊNH CHUỖI KIỂM CHỨNG TRẠNG THÁI (Trang 26 - 33)