Đặ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
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐOÀ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 Chuyên 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
Trang 2Chươ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
Trang 34.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
Trang 4Bả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
Trang 5DANH 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
Trang 6FSM 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
Trang 7Chươ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 ngoà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)
Trang 8đư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
Trang 9Chươ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 = <S, I, O, so,
δ, λ> 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
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,
Trang 10phả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
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
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}
Trang 112.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
Trang 122.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 M 1 và FSM M 2 sau: Hình 2.2 sau đây là một ví dụ về FSM M 1 được đặc tả đầy đủ và Hình 2.3 là
một ví dụ về FSM M 2 không được đặc tả không đầy đủ
Hình 2.2: Ví dụ về FSM M 1 được đặc tả đầy đủ
Trang 13
Hình 2.3: Ví dụ về FSM M 2 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 M 2
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 M 2 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 M 3 và FSM M 4 sau: Hình 2.4 sau đây là một ví dụ về FSM M 3 có tính
chất đơn định, Hình 2.5 là một ví dụ về FSM M 4 có tính chất không đơn định
Hình 2.4: Ví dụ về FSM M 3 có tính chất đơn định
Trang 14Hình 2.5: Ví dụ về FSM M 4 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 M 4 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 M 5 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 M 5 và FSM M 6 sau: Hình 2.6 sau đây là một ví dụ về FSM M 5 có tính
liên thông mạnh, Hình 2.7 là một ví dụ về FSM M 6 có tính liên thông yếu
Hình 2.6: Ví dụ về FSM M 5 có tính liên thông mạnh
Trang 15Hình 2.7: Ví dụ về FSM M 6 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 luôn 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 luôn 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 M 5 nên FSM M 5 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 M 6 nên
FSM M 6 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 thái này với trạng thái khác
Để hiểu rõ hơn về tính chất tối giản của FSM, ta x t ví dụ FSM M 7 không
được tối giản và FSM M 8 được tối giản:
Hình 2.8: Ví dụ về FSM M 7 không được tối giản
1 /0
Trang 16Hình 2.9: Ví dụ về FSM M 8 được tối giản
Đối với hình 2.8: Giả sử có FSM M 71 và M 72 là bản sao của FSM M 7, 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 M 71 và M 72 đượ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 M 71 và M 72 Khi truyền input 0 vào
M 71 và M 72 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 M 8
(Hình 2.9) là một FSM được tối giản
Các thuật toá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
Trang 17Chươ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 G 1 để làm ví dụ cho toàn bộ mục 3.1
X t FSM G 1 = <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
Trang 18Hình 3.1: Đồ thị mô tả FSM G 1
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 G 1:
Với mọi trạng thái khác của FSM G 1 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 G 1
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
Trang 19 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 toá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 toá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
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
Trang 20Bước 5: Quay lại bước 2
Ví dụ:
Cây UIO của FSM G 1 được xây dựng như sau:
Ψ = ( , , 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:
Trang 21Hình 3.2: Cây UIO của FSM G 1 ở Hình 3.1
Trang 22Hình 3.3: Xác định chuỗi UIO trên cây UIO ở Hình 3.2
Trang 23Kế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 G 1
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
Trang 24 O = {0, 1} là tập thông tin đầu ra (outputs)
là trạng thái ban đầu
Trang 25 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
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 = {W 1 , ,W i , ,W m } 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 W i 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:
Trang 26tại B có tồn tại một khối trạng thái B
Trong khi xây dựng một cây DS, nếu một trong 3 điều kiện cắt t a trên thỏa mãn thì khối trạng thái B là khối trạng thái kết thúc
Một máy hữu hạn trạng thái M tồn tại chuỗi phân biệt nếu và ch nếu tồn tại
một chuỗi trạng thái đơn nhất trong cây DS Chuỗi đầu vào từ khối trạng thái
ban đầu tới khối trạng thái đơn nhất là một chuỗi DS của FSM M
3.2.2 Thuật toán sinh cây DS
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 an đầ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 G 2 như Hình 3.3 dưới đây:
Trang 27Hình 3.5: Cây DS của FSM G 2 ở 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 ( )(DD) vì:
・ Hai trạng thái và sinh ra cùng output 0 từ input 0 và chuyển FSM tới trạng thái và
・ 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
( )(DD) là khối trạng thái đồng nhất nên nó là nút kết thúc
Từ khối trạng thái ban đầu với đầu vào 1 sinh ra khối trạng thái (DC)( ) vì:
・ Hai trạng 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 và C sinh ra cùng output 1 từ input 1 và chuyển FSM tới trạng thái và
(DD)( ) là một khối trạng thái đồng nhất nên nó là nút kết thúc
( )( )(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ả:
λ( ,11) = λ(λ ( ,1),1) = 00 λ( ,11) = λ(λ( ,1),1) = 11 λ(C,11) = λ(λ(C,1),1) = 10
Trang 28Trạng thái Chuỗi vào Chuỗi ra
3.3 Chuỗi đặc trưng (Characterizing sequence) [2]
Với FSM không có chuỗi UIO và DS thì “phương pháp W” (W-method) là phương pháp để xác định chuỗi kiểm chứng trạng thái
3.3.1 Một số khái niệm
W là một tập hữu hạn các chuỗi input mà phân biệt hành vi của bất kỳ một
cặp trạng thái nào trong FSM M Mỗi input trong W có độ dài hữu hạn W =
{W1, W2, , Wn}, trong đó phần tử của W được gọi là characterizing
sequences (chuỗi đặc trưng) của FSM M
Sự phân vùng tương đương mức k (k-equivalence partition) của tập trạng thái
Bước 2: Từ phân vùng tương đương mức k, theo thứ tự ngược lại để tìm
chuỗi phân biệt cho mỗi cặp trạng thái
Các bước tìm W được mô tả thông qua ví dụ sau:
Cho FSM G 3 như sau: