Tải bản đầy đủ (.pdf) (57 trang)

Nghiên cứu kỹ thuật sinh ca kiểm thử từ mô hình máy hữu hạn trạng thái

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.3 MB, 57 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ

ĐỒN THỊ THÙY LINH

NGHIÊN CỨU PHƯƠNG PHÁP SNH CA KIỂM THỬ TỪ
MƠ HÌNH MÁY HỮU HẠN TRẠNG THÁI

Ngành: Cơng nghệ thơng tin
Chun ngành: Cơng nghệ phần mềm
Mã số: 60 48 10

TĨM TẮT LUẬN VĂN THẠC SĨ

Hà nội, 2012


3

MỤC LỤC

DANH SÁCH BẢNG ................................................................................. 5
DANH SÁCH HÌNH VẼ ........................................................................... 6
DANH MỤC CÁC CHỮ VIẾT TẮT ......................................................... 7
Chương 1. GIỚI THIỆU ........................................................................... 8
1.1. Đặt vấn đề ......................................................................................... 8
1.2. Nội dung nghiên cứu ........................................................................ 8
1.3. Cấu trúc luận văn .............................................................................. 8
Chương 2. MÁY HỮU HẠN TRẠNG THÁI (FSM) .............................. 10
2.1. Định nghĩa FSM ............................................................................. 10
2.2. Biểu diễn FSM ................................................................................ 11


2.2.1. Biểu diễn kiểu liệt kê ................................................................ 11
2.2.2. Biểu diễn bằng đồ thị ................................................................ 12
2.2.3. Biểu diễn bằng dạng bảng ........................................................ 12
2.3. Một số tính chất của FSM............................................................... 13
2.3.1. Được đặc tả đầy đủ (Completely specified) ............................. 13
2.3.2. Đơn định (Deterministic).......................................................... 14
2.3.3. Liên thông mạnh (Strongly connected) .................................... 15
2.3.4. Tối giản (Reduced) ................................................................... 16
Chương 3. MỘT SỐ PHƯƠNG PHÁP XÁC ĐỊNH CHUỖI KIỂM
CHỨNG TRẠNG THÁI ..................................................................................... 18
3.1. Chuỗi vào – ra duy nhất (Unique Input - Output sequence) [5] ..... 18
3.1.1. Một số khái niệm ...................................................................... 19
3.1.2. Thuật toán sinh cây UIO........................................................... 20
3.2. Chuỗi phân biệt (Distinguishing sequence) [5] .............................. 25
3.2.1. Một số khái niệm ...................................................................... 25
3.2.2. Thuật toán sinh cây DS............................................................. 27
3.3. Chuỗi đặc trưng (Characterizing sequence) [2] .............................. 29
3.3.1. Một số khái niệm ...................................................................... 29
3.3.2. Phương pháp tìm W .................................................................. 29
Chương 4. KIỂM THỬ DỰA TRÊN MƠ HÌNH FSM.......................... 34


4

4.1. Mối quan hệ mô phỏng của hai FSM ............................................. 34
4.2. Kiểm thử dựa trên mơ hình FSM .................................................... 35
4.3. Một số lỗi thường gặp khi cài đặt FSM .......................................... 37
Chương 5. KỸ THUẬT SINH CA KIỂM THỬ ...................................... 40
5.1. Độ bao phủ mơ hình máy hữu hạn trạng thái ................................. 40
5.1.1. Độ bao phủ trạng thái (state coverage) ..................................... 40

5.1.2. Độ bao phủ chuyển trạng thái (transition coverage) ................ 42
5.2. Kỹ thuật sinh ca kiểm thử ............................................................... 44
5.2.1. Khuôn dạng ca kiểm thử........................................................... 44
5.2.2. Phương pháp sinh ca kiểm thử ................................................. 45
5.3. Ví dụ ............................................................................................... 51
Chương 6. KẾT LUẬN ............................................................................ 57
TÀI LIỆU THAM KHẢO ........................................................................ 58


5

DANH SÁCH BẢNG
ảng 2.1: Minh họa việc biểu diễn FSM bằng dạng bảng ........................ 13
Bảng 3.1: Chuỗi UIO của FSM G1 ........................................................... 24
Bảng 3.2: Ví dụ khối trạng thái................................................................. 26
Bảng 3.3: Bảng chuỗi phân biệt của các trạng thái của FSM G2.............. 29
Bảng 3.4: Bảng mô tả FSM G3 ................................................................. 30
Bảng 3.5: Bảng phân vùng tương đương mức 1 của FSM G3 .................. 31
Bảng 3.6: Bảng P1 phân vùng tương đương mức 2 của FSM G3 ............. 31
Bảng 3.7: Bảng P2 phân vùng tương đương mức 3 của FSM G3 ............. 32
Bảng 3.8: Bảng P3 phân vùng tương đương mức 4 của FSM G3 ............. 32
Bảng 3.9: Bảng P4 phân vùng tương đương mức 5 của FSM G3 ............. 32
Bảng 4.1: Bảng tổng hợp các lỗi khi cài đặt FSM MI .............................. 38
Bảng 5.1: Khuôn dạng ca kiểm thử .......................................................... 45
Bảng 5.2: Ca kiểm thử trạng thái ban đầu của FSM MS........................... 46
Bảng 5.3: Nhóm ca kiểm thử TC1 của FSM MS ...................................... 50
Bảng 5.4: Nhóm ca kiểm thử TC2- của FSM MS ..................................... 50
Bảng 5.5: Nhóm ca kiểm thử TCk- của FSM MS ..................................... 50
Bảng 5.6: Ca kiểm thử của FSM MS......................................................... 54
Bảng 5.7: Kết quả kiểm thử của FSM MI1 ................................................ 55

Bảng 5.8: Kết quả kiểm thử của FSM MI2 ................................................ 55
Bảng 5.9: Kết quả kiểm thử của FSM MI3 ................................................ 56


6

DANH SÁCH HÌNH VẼ
Hình 2.1: Minh họa việc biểu diễn FSM bằng đồ thị ............................... 12
Hình 2.2: Ví dụ về FSM M1 được đặc tả đầy đủ....................................... 13
Hình 2.3: Ví dụ về FSM M2 không được đặc tả không đầy đủ. ............... 14
Hình 2.4: Ví dụ về FSM M3 có tính chất đơn định................................... 14
Hình 2.5: Ví dụ về FSM M4 có tính chất khơng đơn định........................ 15
Hình 2.6: Ví dụ về FSM M5 có tính liên thơng mạnh. ............................. 15
Hình 2.7: Ví dụ về FSM M6 có tính liên thơng yếu.................................. 16
Hình 2.8: Ví dụ về FSM M7 khơng được tối giản. ................................... 16
Hình 2.9: Ví dụ về FSM M8 được tối giản. .............................................. 17
Hình 3.1: Đồ thị mơ tả FSM G1. ............................................................... 19
Hình 3.2: Cây UIO của FSM G1 ở hình 3.1 .............................................. 22
Hình 3.3: Xác định chuỗi UIO trên cây UIO ở hình 3.2 .......................... 23
Hình 3.4: Đồ thị mơ tả FSM G2 ................................................................ 25
Hình 3.5: Cây DS của FSM G2 ở Hình 3.4 ............................................... 28
Hình 3.6: Mơ hình FSM G3 ...................................................................... 30
Hình 4.1: Mơ hình FSM đặc tả hàm y = |x| .............................................. 34
Hình 4.2: Mơ hình FSM thể hiện cài đặt hàm y = |x| ............................... 34
Hình 4.3: Mơ hình khái niệm kiểm thử với việc kiểm chứng trạng thái [5].
.................................................................................................................... 36
Hình 5.1: Mơ hình máy hữu hạn trạng thái C1.......................................... 41
Hình 5.2: Một đường đi bao phủ tất cả các trạng thái của FSM C1.......... 41
Hình 5.3: Cây kiểm thử của FSM C1. ....................................................... 43
Hình 5.4: Đồ thị biểu diễn FSM MS [5]. ................................................... 51

Hình 5.5: Mơ hình máy hữu hạn trạng thái MI1 ........................................ 51
Hình 5.6: Mơ hình máy hữu hạn trạng thái MI2. ....................................... 52
Hình 5.7: Mơ hình máy hữu hạn trạng thái MI3. ....................................... 52
Hình 5.8: Cây kiểm thử từ mơ hình FSM MS. .......................................... 53


7

DANH MỤC CÁC CHỮ VIẾT TẮT

Từ viết tắt
DS

Ý nghĩa

Giải thích tiếng Việt

Distinguishing sequence Chuỗi phân biệt

FSM

Finite state machine

Máy hữu hạn trạng
thái

UIO

Unique Input - Output
sequence


Chuỗi vào – ra duy
nhất

VER

State verification
sequence

Chuỗi kiểm chứng
trạng thái

W

Characterizing sequence Chuỗi đặc trưng


8

Chương 1. GIỚI THIỆU. Đặt vấn đề
Hiện nay có rất nhiều hệ thống được đặc tả hoặc mơ hình như là một máy
hữu hạn trạng thái, đó là các hệ thống reactive (là hệ thống thay đổi hành động,
kết quả đầu ra và các điều kiện/ trạng thái tương ứng với các kích thích từ bên
trong hoặc bên ngồi nó) [9] như: giao thức truyền thông, hệ thống điều khiển,
hệ thống nhúng. Điều này thúc đẩy việc nghiên cứu các phương pháp kiểm thử
các máy trạng thái hữu hạn để khám phá các khía cạnh của hành vi của chúng và
để đảm bảo chức năng chính xác của hệ thống. Tuy nhiên tính chính xác của hệ
thống cài đặt so với đặc tả được đo đạc như thế nào, khi nào thì một hệ thống cài
đặt được gọi là chấp nhận được thì hiện nay các tài liệu cịn đang viết rất chung
chung [5]. Trong luận văn này chúng tôi xin giới thiệu khái niệm mô phỏng của

hai máy hữu hạn trạng thái như là một tiêu chí để đánh giá tính chấp nhận được
của hệ thống và trình bày phương pháp sinh ca kiểm thử dựa trên mơ hình máy
hữu hạn trạng thái để kiểm thử sự mô phỏng của hai máy hữu hạn trạng thái.
1.2. Nội dung nghiên cứu
Luận văn tập trung nghiên cứu một số phương pháp xác định chuỗi kiểm
chứng trạng thái như: chuỗi vào – ra duy nhất (UIO), chuỗi phân biệt (DS),
chuỗi đặc trưng (W), phương pháp kiểm thử hệ thống dựa trên mô hình máy hữu
hạn trạng thái để từ đó nghiên cứu, tìm ra phương pháp sinh ca kiểm thử để
kiểm thử xem mơ hình cài đặt có mơ phỏng bản đặc tả phần mềm theo mơ hình
máy hữu hạn trạng thái hay khơng.
1.3. Cấu trúc luận văn
Phần cịn lại của luận văn có cấu trúc như sau:
Chương 2: Máy hữu hạn trạng thái (FSM). Chương này trình bày về mơ
hình FSM và cách biểu diễn một FSM theo kiểu liệt kê, đồ thị hoặc dạng bảng.
Ngoài ra, trong chương này cũng trình bày một số tính chất của một máy hữu
hạn trạng thái.
Chương 3: Một số phương pháp xác định chuỗi kiểm chứng trạng thái.
Chương này trình bày một số phương pháp xác định chuỗi kiểm chứng trạng thái
của mơ hình FSM như: chuỗi vào – ra duy nhất (UIO), chuỗi phân biệt (DS),
chuỗi đặc trưng (W).


9

Chương 4: Kiểm thử dựa trên mơ hình FSM. Ngồi việc trình bày mối
quan hệ mơ phỏng của hai FSM và kiểm thử sự mô phỏng của hai FSM, chương
này còn tổng hợp các lỗi thường gặp khi cài đặt FSM.
Chương 5: Kỹ thuật sinh ca kiểm thử. Ngoài việc trình bày độ bao phủ
của mơ hình máy hữu hạn trạng thái và lựa chọn độ bao phủ tốt nhất để làm tiền
đề sinh ca kiểm thử, chương này còn trình bày phương pháp sinh ca kiểm thử và

đưa ra ví dụ để cụ thể hóa phương pháp đã nêu.
Chương 6: Kết luận tổng kết những kết quả đã đạt được của luận văn và
hướng phát triển nghiên cứu tiếp theo.


10

Chương 2. MÁY HỮU HẠN TRẠNG THÁI (FSM)
2.1. Định nghĩa FSM
Máy hữu hạn trạng thái (FSM) [7] là một mô hình hành vi sử dụng các
trạng thái và chuyển trạng thái. Nó là một mơ hình được sử dụng rộng rãi trong
mọi lĩnh vực của công nghiệp phần mềm và đặc biệt phổ biến trong thiết kế hệ
thống viễn thông, giao thức truyền thông, hệ thống nhúng, và hệ thống điều
khiển. Có hai loại máy hữu hạn trạng thái là máy Mealy và máy Moore. Máy
Mealy tạo ra output trên chuyển trạng thái và input nhận được còn máy Moore
tạo ra output dựa trên chuyển trạng thái (không phụ thuộc vào input nhận được).
FSM thường được mơ hình hóa như máy Mealy.
Máy hữu hạn trạng thái (Mealy machine) [5, 7] là một bộ M = δ, λ>. Trong đó:







S là một tập các trạng thái,
I là tập thông tin đầu vào,
O là tập thông tin đầu ra,
s0 là trạng thái ban đầu,

δ: S x I → S là hàm chuyển trạng thái,
λ: S x I → O là hàm thơng tin đầu ra.

Hay nói một cách khác, [4] FSM là mơ hình bao gồm:
Những yếu tố tĩnh: bao gồm trạng thái (state) và sự chuyển tiếp
trạng thái (state transition). Số lượng của những trạng thái là hữu
hạn. Sự chuyển tiếp trực tiếp từ trạng thái sang trạng thái ch
có thể theo một đường link duy nhất là - . Số lượng các đường
link cũng là giới hạn.
 Những yếu tố động: bao gồm đầu vào (input) được cung cấp cho
FSM và đầu ra (output) được lấy ra từ FSM ở những sự thực hiện
động. Cả hai số lượng đầu vào và đầu ra đều là hữu hạn.


Nguồn gốc FSM [7] từ máy tự động hữu hạn (Finite Automata), gồm 5
thành phần (Q, ∑, δ, q0, F). Trong đó:
Q là một tập hữu hạn các trạng thái,
 ∑ là một tập các ký hiệu được gọi là tập chữ cái ngõ nhập (input
alphabet),
 δ: Q x ∑ → Q là hàm chuyển trạng thái,



11

q0 ∈ Q là trạng thái ban đầu,
 F ⊆ Q là một tập trạng thái kết thúc.


Máy tự động hữu hạn được sử dụng chủ yếu trong phân tích cú pháp cho

các ngơn ngữ được đốn nhận. Tại thời điểm ban đầu, nó được giả thiết ở trạng
thái khởi đầu q0, với cơ cấu nhập (đầu đọc) của nó đang ở trên ký hiệu đầu tiên
bên trái của chuỗi nhập. Trong suốt mỗi lần di chuyển, cơ cấu nhập tiến về phía
phải một ký hiệu, như vậy mỗi lần di chuyển sẽ lấy một ký hiệu ngõ nhập.Khi
gặp ký hiệu kết thúc chuỗi, chuỗi là được chấp nhận (accepted) nếu máy tự động
hữu hạn đang ở trạng thái kết thúc của nó. Ngược lại thì có nghĩa là chuỗi bị từ
chối.
So sánh mơ hình của máy hữu hạn trạng thái và máy tự động hữu hạn ta
thấy rằng: FSM có đầu ra (output) cịn automata thì khơng có.
Trong luận văn này, các thuật toán áp dụng cho FSM được mơ hình theo
máy Mealy.
2.2. Biểu diễn FSM
2.2.1. Biểu diễn kiểu liệt kê
Cho FSM M = <S, I, O, s0, δ, λ>.






Trạng thái ban đầu s0
Tập trạng thái S = {s1, s2..., sn}
Tập Inputs I = {i1, i2, ..., in}
Tập chuyển trạng thái {δ(ii,sj) = st} với ∀ ii  I và sj, st  S
Tập Outputs O = {λ(si,ik) = ot} với si  S; ∀ ik  I; ∀ot  O

Ví dụ: FSM M =  Tập các trạng thái S = {A, B, C, D}
 Tập Inputs I = {0, 1}
 Tập Outputs O = {0, 1}

 Trạng thái ban đầu s0 = A
 Tập chuyển trạng thái: {δ( , 0) =

, δ( ,0) = , δ( ,1) = , δ( ,1) = D,
δ(D,0) = D, δ(C,0) = D, δ(D,1) = C, δ(C,1) = }
 Tập Outputs tương ứng với sự chuyển trạng thái: {λ(A,0) = 0, λ(B,0) = 0,
λ(B,1) = 1, λ( ,1) = 0, λ(D,0) = 1, λ(C,0) = 1, λ(D,1) = 0, λ(C,1) =1}


12

2.2.2. Biểu diễn bằng đồ thị
Các FSM và các yếu tố của chúng có thể được biểu diễn bằng đồ thị. Các
yếu tố chính trong đồ thị bao gồm:
Mỗi trạng thái được mô tả như là một nút (node) trong đồ thị.
 Mỗi sự chuyển tiếp được diễn tả như một đường link được kết nối trực
tiếp từ trạng thái này sang trạng thái khác được coi là cạnh của đồ thị
với nhãn là cặp input/output (ký hiệu ‘/’ để phân biệt input và output).


Từ việc mô tả FSM M bằng phương pháp liệt kê như ví dụ ở mục 2.2.1, ta
có thể biểu diễn FSM M bằng đồ thị như Hình 2.1 dưới đây:

Hình 2.1: Minh họa việc biểu diễn FSM bằng đồ thị.
2.2.3. Biểu diễn bằng dạng bảng
Mặc dù sự mơ tả đồ thị thì rất trực giác và dễ giải thích, nhưng nó trở nên
khơng thực tế khi số lượng các trạng thái là lớn. Khi chúng ta có nhiều trạng
thái, thì đồ thị sẽ trở nên rối và rất khó theo dõi. Vì thế mơ tả dạng bảng biểu
hay sự mô tả theo ma trận là một cách rất hệ thống, thường là kiểu ma trận
vuông (N x N) ô:

 Trạng thái được liệt kê theo cả hàng và cột.
 Hàng mô tả những trạng thái đầu và cột mô tả trạng thái kết thúc cho sự

chuyển tiếp xác định.
 Nếu sự chuyển tiếp từ trạng thái X (hàng X) sang trạng thái
(cột )
được cho ph p thì phần tử tương ứng (ở vị trí hàng X, cột ) được đánh


13

dấu bằng chính input output của nó. Với những input/output khơng xác
định thì được đánh dấu bởi ký tự ‘-’.
Ví dụ: FSM được biểu diễn như đồ thị Hình 2.1 có thể được mơ tả bằng Bảng
2.1 như sau:
Bảng 2.1: Minh họa việc biểu diễn FSM bằng dạng bảng
Start State

A

B

C

D

A

-


0/0

1/1

-

B

0/0

1/1

-

-

C

-

-

-

1/0

D

1/0


-

0/1

0/1

End State

2.3. Một số tính chất của FSM
2.3.1. Được đặc tả đầy đủ (Completely specified)
Một FSM M được gọi là được đặc tả đầy đủ nếu mỗi input a ∈ I tồn tại
chuyển trạng thái xác định tại mỗi trạng thái của M.
Để hiểu rõ hơn về tính chất này ta x t ví dụ mơ hình FSM M1 và FSM M2
sau: Hình 2.2 sau đây là một ví dụ về FSM M1 được đặc tả đầy đủ và Hình 2.3 là
một ví dụ về FSM M2 khơng được đặc tả khơng đầy đủ.

Hình 2.2: Ví dụ về FSM M1 được đặc tả đầy đủ.


14

Hình 2.3: Ví dụ về FSM M2 khơng được đặc tả khơng đầy đủ.
Quan sát trên Hình 2.2: với mỗi input luôn tồn tại chuyển trạng thái tại mỗi
trạng thái của FSM M2.
 Quan sát trên Hình 2.3: với input bất kỳ, không tồn tại chuyển trạng thái từ
trạng thái * tới các trạng thái khác nên M2 là FSM không được đặc tả đầy đủ.


2.3.2. Đơn định (Deterministic)
Một FSM M có tính chất đơn định (Deterministic) nếu cho mỗi đầu vào a

∈ I có nhiều nhất một sự chuyển trạng thái xác định tại mỗi trạng thái của M.
Ngược lại, thì FSM M có tính chất khơng đơn định (Nondeterministic).
Để hiểu rõ hơn về tính chất đặc tả đầy đủ của một FSM ta x t ví dụ mơ
hình FSM M3 và FSM M4 sau: Hình 2.4 sau đây là một ví dụ về FSM M3 có tính
chất đơn định, Hình 2.5 là một ví dụ về FSM M4 có tính chất khơng đơn định.

Hình 2.4: Ví dụ về FSM M3 có tính chất đơn định.


15

Hình 2.5: Ví dụ về FSM M4 có tính chất khơng đơn định.
Quan sát hình 2.4: Từ một trạng thái bất kỳ, với mỗi input có duy nhất một
chuyển trạng thái nên FSM M4 có tính chất đơn định.
 Với hình 2.5: Từ trạng thái C, với input 0 có thể chuyển tới trạng thái A hoặc
trạng thái D nên FSM M5 có tính chất khơng đơn định.


2.3.3. Liên thơng mạnh (Strongly connected)
Một FSM M được gọi là liên thông mạnh (Strongly connected) nếu bất kỳ
trạng thái này có thể tới bất kỳ trạng thái khác. Ngược lại thì FSM M đó có tính
liên thơng yếu (Weakly connected).
Để hiểu rõ hơn về tính chất liên thơng mạnh của một FSM ta x t ví dụ mơ
hình FSM M5 và FSM M6 sau: Hình 2.6 sau đây là một ví dụ về FSM M5 có tính
liên thơng mạnh, Hình 2.7 là một ví dụ về FSM M6 có tính liên thơng yếu.

Hình 2.6: Ví dụ về FSM M5 có tính liên thông mạnh.


16


Hình 2.7: Ví dụ về FSM M6 có tính liên thơng yếu.
Quan sát trên Hình 2.6: Với mỗi đ nh của đồ thị ta ln tìm được đường đi
tới các đ nh còn lại. Tức là, từ một trạng thái bất kỳ ta ln tìm được một
hoặc một chuỗi các chuyển trạng thái để tới các trạng thái khác của FSM M5
nên FSM M5 có tính liên thơng mạnh.
 Đối với Hình 2.7: Từ đ nh A hoặc B hoặc D ta khơng thể tìm được đường đi
tới đ nh C của đồ thị. Tức là, không tồn tại một hoặc một chuỗi các chuyển
trạng thái từ trạng thái hoặc B hoặc D tới trạng thái C của FSM M6 nên
FSM M6 có tính liên thơng yếu.


2.3.4. Tối giản (Reduced)
Một FSM được gọi là được tối giản nếu với bất kỳ cặp trạng thái si và sj,
i ≠ j, có một chuỗi giá trị đầu vào y sao cho λ(si,y) ≠ λ(sj,y). Hay nói một cách
khác, FSM được gọi là tối giản nếu khơng có hai trạng thái tương đương. Có
nghĩa là, có tồn tại chuỗi input mà phân biệt trạng
1 thái này với trạng thái khác.
/0

Để hiểu rõ hơn về tính chất tối giản của FSM, ta x t ví dụ FSM M7 khơng
được tối giản và FSM M8 được tối giản:

Hình 2.8: Ví dụ về FSM M7 khơng được tối giản.


17

Hình 2.9: Ví dụ về FSM M8 được tối giản.
Đối với hình 2.8: Giả sử có FSM M71 và M72 là bản sao của FSM M7, trạng thái

hiện thời của một máy là trạng thái và trạng thái hiện thời của máy còn lại là
trạng thái C. M71 và M72 được đóng gói trong hộp đen, chúng ta ch có thể quan
sát output tương ứng với input truyền vào M71 và M72. Khi truyền input 0 vào
M71 và M72 thì ta không thể phân biệt được trạng thái hiện thời đang là hay là
C vì chúng đều cho output là 0. Do đó, và C được gọi là hai trạng thái tương
đương. Kết hợp hai trạng thái và C thành một trạng thái ta được FSM M8
(Hình 2.9) là một FSM được tối giản.
Các thuật tốn trình bày trong luận văn ch áp dụng với FSM có tính chất
đã nêu trên. Các phương pháp tìm chuỗi input y – chuỗi phân biệt các trạng thái
của FSM sẽ được trình bày ở Chương 3.


18

Chương 3. MỘT SỐ PHƯƠNG PHÁP XÁC ĐỊNH
CHUỖI KIỂM CHỨNG TRẠNG THÁI
Chuỗi kiểm chứng trạng thái (state verification sequence) là chuỗi mà có
thể phân biệt trạng thái này với trạng thái khác của một FSM [5].
Theo [5] thì có 3 loại chuỗi thường dùng để kiểm chứng trạng thái của
FSM, đó là:
Chuỗi vào – ra duy nhất (Unique Input - Output sequence)
 Chuỗi phân biệt (Distinguishing sequence)
 Chuỗi đặc trưng (Characterizing sequence)


Các phần tiếp theo sẽ trình bày chi tiết phương pháp để xác định 3 loại
chuỗi này.
3.1. Chuỗi vào – ra duy nhất (Unique Input - Output sequence) [5]
Ta sẽ sử dụng FSM G1 để làm ví dụ cho toàn bộ mục 3.1.
X t FSM G1 = <S, I, O, , δ, λ>, trong đó:









S = {A, B, C, D} là tập các trạng thái.
I = {0, 1} là tập thông tin đầu vào (inputs).
O = {0, 1} là tập thông tin đầu ra (outputs).
A là trạng thái ban đầu.
δ : S × I → S là hàm chuyển trạng thái.
λ : S × I → O là hàm thông tin đầu ra.
Tập các nhãn chuyển đổi L = {0/0, 0/1, 1/0}
và được mô tả bởi đồ thị sau:


19

Hình 3.1: Đồ thị mơ tả FSM G1.
3.1.1. Một số khái niệm


Chuỗi vào - ra duy nhất (Unique Input – Output sequence)

Một chuỗi y λ(si,y) được gọi là chuỗi UIO cho mỗi trạng thái si của FSM M nếu
và ch nếu y λ(si,y) ≠ y λ(sj,y) với i ≠ j và ∀sj ∈ M.
Ví dụ: X t chuỗi input 010 cho trạng thái A của FSM G1:
λ(A,010) = λ(λ(λ(A,0),1),0) = 000

Với mọi trạng thái khác

của FSM G1 thì:

λ( ,010) = λ(λ(λ(B,0),1),0) = 001
λ(D,010) = λ(λ(λ(D,0),1),0) = 100
λ(C,010) => Không chấp nhận chuỗi 010
Như vậy: 010 là chuỗi UIO của trạng thái

của FSM G1.

Vec-tơ đường dẫn (Path Vector), ký hiệu là PV, là một tập hợp các cặp trạng
thái của một chuỗi chuyển trạng thái (s1/s1’, ..., si/si’, ..., sk/sk’), với si là trạng
thái đầu và sj là trạng thái cuối của một chuyển trạng thái.
 Vec-tơ ban đầu (Inital Vectơ), ký hiệu là IV, là một tập các trạng thái đầu của
PV, có nghĩa là IV(PV) = (s1, ..., si, ..., sk).
 Vec-tơ hiện thời (Current Vector), ký hiệu là CV, là một tập các trạng thái
cuối của vec-tơ đường dẫn. Có nghĩa là CV(PV) = (s1’, ..., si’, ..., sk’).
 Một vec-tơ đường dẫn được gọi là vec-tơ đơn nhất (Singleton Vector) nếu nó
chứa đúng một cặp trạng thái.


Ví dụ: PV = (B/D), vì PV ch có một cặp trạng thái nên PV là một vec-tơ đơn
nhất.


20




Một vec-tơ đường dẫn được gọi là vec-tơ đồng nhất (Homogeneous Vector)
nếu tất cả các phần tử của vec-tơ hiện thời là như nhau.

Ví dụ: PV = (A/B, C/B) ⟹ CV(PV) = (B, B), vì tất cả các phần tử của CV(PV)
là giống nhau nên PV là vec-tơ đồng nhất.


Từ một vec-tơ đường dẫn PV, input-output được gán nhãn là a b của một
chuyển trạng thái, gọi PV’ là một vec-tơ đường dẫn mới được “tính tốn” từ
PV và a b: PV’ = pert(PV,a b), được định nghĩa là:
PV’ = {si/si”| si” = δ(si’,a) ∧ λ(si’,a) = b ∧ si / si’∈ PV}

Hay nói một cách khác, ta có thể tưởng tượng hàm tính PV’ = pert (PV, a b) như
là một cạnh từ nút PV tới một nút mới PV’ với nhãn của cạnh là a b. Thêm vào
đó, đưa vào PV và một tập các nhãn chuyển đổi L, ta có thể sắp xếp các nút mới
L{pert (PV, a/b), ∀a/b ∈ L} trên cùng một cấp. Điều đó có nghĩa là: tất cả các
đường dẫn vec-tơ của FSM M có thể được sắp xếp dưới dạng một cây với các
cấp 1, 2, 3, ..., ∞. Một cây như vậy được gọi là cây UIO. Tuy nhiên, ta cần cắt
t a cây dựa trên một vài điều kiện gọi là điều kiện cắt t a. Sau mỗi lần tính PV’ =
pert (PV, a/b) ta kiểm tra các điều kiện bên dưới:
 C1: CV(PV’) là một vec-tơ đồng nhất hoặc vec-tơ đơn nhất.
 C2: Trên một đường dẫn (path) từ vec-tơ đầu tới PV, tồn tại PV” sao
cho PV’⊆ PV”.
Trong khi xây dựng cây UIO, nếu một trong 2 điều kiện cắt t a trên thỏa
mãn thì PV’ là một vec-tơ đường dẫn kết thúc.
Mỗi trạng thái si của FSM có chuỗi UIO nếu và ch nếu cây UIO của FSM
M có một vec-tơ đường dẫn đơn nhất.
3.1.2. Thuật tốn sinh cây UIO
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
tố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.


21

Bước 3: Tính tố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 tố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:
Ψ=(
,
, C C, D D) và được “tính tố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:



22

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


23

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
tốn” nữa, trong khi 2 vec-tơ đường dẫn cịn lại (
,
) và ( D,
,C ,
D/C) tiếp tục được “tính tố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.

Hình 3.3: Xác định chuỗi UIO trên cây UIO ở Hình 3.2.


24

Kết quả trên được tổng hợp thành ảng 3.1 dưới đây:
Bảng 3.1: Chuỗi UIO của FSM G1
Trạng thái
A
B

Chuỗi vào
010

010

Chuỗi ra
000
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

bằng chuỗi 010

λ( ,010) = λ(λ(λ( ,0),1),0) = 000
λ( ,010) = λ(λ(λ( ,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ằng chuỗi 010


λ( ,010) = λ(λ(λ(B,0),1),0) = 001
λ( ,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
λ( ,1010) = λ(λ(λ(λ( ,1),0),1),0) = 0111
λ( ,1010) = λ(λ(λ(λ( ,1),0),1),0) = 0001
λ(D,1010) = λ(λ(λ(λ(D,1),0),1),0) = 0101
 Kiểm chứng trạng thái D bằng chuỗi 11010
λ(D,11010) = λ(λ(λ(λ(λ(D,1),1),0)1),0) = 00000
λ( ,11010) = λ(λ(λ(λ(λ( ,1),1),0),1),0) = 00101
λ ( ,11010) = λ(λ(λ(λ(λ( ,1),1),0),1),0) = 00001
λ (C,11010) = λ(λ(λ(λ(λ(C,1),1),0),1),0) = 00101


25

3.2. Chuỗi phân biệt (Distinguishing sequence) [5]
Sử dụng FSM G2 để làm ví dụ cho tồn bộ mục 3.2.
X t FSM G2 = <S, I, O, , δ, λ>, trong đó:









S = {A, B, C, D} là tập các trạng thái.
I = {0, 1} là tập thông tin đầu vào (inputs).
O = {0, 1} là tập thông tin đầu ra (outputs).
là trạng thái ban đầu.
δ : S × I →S là hàm chuyển trạng thái.
λ : S × I → O là hàm thông tin đầu ra.
Tập các nhãn chuyển đổi L = {0/0, 0/1, 1/0, 1/1}
và được mô tả bởi đồ thị sau:

Hình 3.4: Đồ thị mơ tả FSM G2.
3.2.1. Một số khái niệm
Cho FSM M = <S, I, O, s0, δ, λ> với |S| = n,
Chuỗi phân biệt (Distinguishing Sequence): Một chuỗi thông tin đầu vào x
được gọi là chuỗi phân biệt nếu và ch nếu λ(si,x) = λ(sj,x) với ∀si, sj ∈ S và si
= s j.
 Khối trạng thái (State block) ký hiệu là B được xác định như là tập các phần
tử S, như vậy:
 Tổng các phần tử của B bằng n.
 Một khối trạng thái có thể chứa n multisets với mỗi phần tử của
multiset là 1.



26



Một khối trạng thái có thể chứa 1 multiset, phần tử của nó là tất cả
các trạng thái của FSM M.


Bảng 3.2 bên dưới là một ví dụ về khối trạng thái:
Bảng 3.2: Ví dụ khối trạng thái
Khối trạng thái B1

{(A B C D)}

Khối trạng thái B2

{(A B), (C D)}

Khối trạng thái B3

{(A), (B), (C), (D)}

Với Với khối trạng thái B1 thì có một multiset là (A B C D) - là tất cả các trạng
thái của FSM.
Với khối trạng thái B2 thì có 2 multisets là (A B), (C D)
Với khối trạng thái B3 thì có 4 multisets là (A), (B), (C), (D), trong đó mỗi
multiset là một phần từ trong tập trạng thái của FSM.
Với khối trạng thái B = {W1,...,Wi ,...,Wm} và một đầu vào a ∈ I, chúng ta định
nghĩa B’= dpert(B,a) có nghĩa là mỗi một phần tử multiset Wi = (wi1, wi2, …,
wik) của B chứa một hoặc nhiều phần tử của B’ như sau:
 Nếu hai trạng thái của Wi tạo ra các output khác nhau tương ứng với
input a thì trạng thái tiếp theo được đặt vào phần tử khác của B’.
 Nếu các trạng thái tiếp theo của tất cả các trạng thái trong Wi cùng tạo
ra các output khác nhau tương ứng với input a thì được đặt trong cùng
một phần tử của B’.
 Cho FSM đã đươc tối giản (reduced), khối trạng thái ban đầu ch bao gồm
một phần tử chứa một tập các trạng thái của FSM. Tiếp theo, chúng ta có thể
xáo trộn tất cả khối trạng thái cho tất cả các đầu vào bằng cách sử dụng chức

năng dpert (), chúng ta có thể xem B’ = dpert(B,a) như là một cạnh từ nút B
tới một nút mới B’ với nhãn của cạnh là a. Từ một khối trạng thái và một tập
input I, chúng ta có thể sắp xếp |I| nút mới {dpert(B,a), ∀a ∈ I } tại cùng một
cấp. Tất cả các khối trạng thái của FSM M có thể sắp xếp dưới dạng một cây
với các cấp liên tiếp 1, 2,..., ∞. Một cây như vậy được gọi là cây DS. Một cây
DS là một cây không giới hạn cấp, tuy nhiên chúng ta ch x t các cây có các
cấp giới hạn, những cây có cấp giới hạn như vậy đạt được bằng cách sử dụng
một vài điều kiện cắt t a:



×