Chương 3. PHƯƠNG PHÁP SINH GIẢ ĐỊNH NHỎ NHẤT VÀ
3.3. Phương pháp sinh giả định dựa trên thuật toán học L ∗
3.3.1. Thuật toán học L∗
Thuật toán học L∗ được đề xuất bởi Angluin [8] và sau đó cải tiến bởi Rivest và Schapire [91]. Phiên bản đã được cải tiến của thuật toán được sử dụng trong luận án với tên ban đầu của nó, L∗. Thuật toán có thể học một ngôn ngữ chính quy chưa biết bằng việc sinh một ô-tô-mát hữu hạn đơn định đoán nhận ngôn ngữ đó. Ý tưởng của thuật toán dựa trên định lý Myhill Nerode [85] trong lý thuyết ngôn ngữ hình thức. Định lý này khẳng định với mọi tập chính quy U ⊆Σ∗, tồn tại một ô-tô-mát đơn định, tối thiểu, và duy nhất sao cho các trạng thái của nó là đẳng cấu với tập các lớp tương đương trong quan hệ sau: w≈w0 nếu và chỉ nếu ∀u∈Σ∗ :wu∈U ⇔w0u∈U, trong đó w, w0∈Σ∗. Từ đó, ý tưởng chính của thuật toán L∗ là học các lớp tương đương. Trong thuật toán này, hai tiền tố không thuộc vào cùng một lớp tương đương nếu và chỉ nếu tồn tại một hậu tố phân biệt chúng u.
Learner
IsEquivalent(D) IsMember(σ)
true/false
Unknown regular language U YES/NO+cex
Teacher
Hình 3.1: Tương tác giữa L∗ Learner và T eacher.
Gọi U là một ngôn ngữ chính quy chưa biết bất kỳ trên bảng chữ cái Σ. L∗
sinh một DFA D sao cho L(D) = U. Quá trình học, minh họa trên Hình 3.1, được thực hiện thông qua tương tác của hai đối tượng Learner (L∗) vàT eacher. T eacher có thể trả lời hai loại truy vấn sau từ Learner.
• Truy vấn thành viên: Cho một chuỗi σ∈Σ∗, có phải σ∈U? T eacher trả lời Learner là true nếu σ∈U, ngược lại, f alse.
• Truy vấn ứng viên: Cho một DFA ứng viên D. Ngôn ngữ của D được tin là giống với U (“có phải L(D) = U?”). T eacher trả lời Learner là Y ES nếu L(D) =U. Ngược lại, T eacher trả lời Learner là N O và đưa ra một phản ví dụ cex. cexlà một chuỗi có khả năng thể hiện sự khác nhau của L(D)và U. 3.3.2. Thuật toán sinh giả định sử dụng thuật toán học L∗
Cho một CBS M chứa hai thành phần M1 và M2 (M = M1 k M2) và một thuộc tính an toàn p. Mục tiêu của bài toán kiểm chứng giả định - đảm bảo là kiểm tra nếu M |=p mà không cần ghép nối M1 với M2. Thuật toán kiểm chứng được đề xuất bởi Cobleigh và cộng sự sinh một giả định A thỏa mãn luật giả định - đảm bảo [29]. Nếu giả định A như vậy tồn tại, thì M |= p. Ngược lại, M 6|=p.
Chi tiết của thuật toán kiểm chứng được đề xuất bởi Cobleigh và cộng sự được trình bày trong Thuật toán 3.1. Để sinhA, Thuật toán 3.1 duy trì một cấu trúc dữ liệu trung gian được gọi là bảng quan sát (S, E, T) (Định nghĩa 2.16) làm cơ sở để sinh các ứng viên cho giả định cho quá trình kiểm chứng. Thuật toán bắt đầu bằng việc khởi tạo S và E với một chuỗi rỗng λ (dòng 2). Sau đó, thuật toán cập nhật (S, E, T) sử dụng các câu truy vấn thành viên (dòng 4).
Khi bảng quan sát (S, E, T) chưa đóng, thuật toán thêm sa vào S và cập nhật (S, E, T) cho nó trở nên đóng (dòng 5 đến 8). Khi (S, E, T) đóng, thuật toán tạo ứng viên C từ (S, E, T) (Định nghĩa 2.16 và Ghi chú 2.2) và gửi câu truy vấn ứng viên đến T eacher (dòng 9 đến 10). Sau đó, thuật toán lưu kết quả vào equiResult. Kết quả truy vấn ứng viên gồm hai thành phần. Thành phần đầu tiên là Key∈ {Y ES, N O, U N SAT}. Trong đó, khi Key =Y ES, ứng viên cho giả định tương ứng thỏa mãn luật giả định - đảm bảo. Khi Key = N O, ứng viên cho giả định tương ứng không thỏa mãn luật giả định - đảm bảo. Tuy nhiên, tại bước này, thuật toán chưa thể kết luận rằng M không thỏa mãn p. Phản ví dụ cex tương ứng được sử dụng để sinh một ứng viên cho giả định mới cho
Thuật toán 3.1:Sinh giả định dựa vào thuật toán họcL∗
Đầu vào:Hệ thống phần mềmM =M1kM2, và thuộc tính an toàn p Đầu ra :Giả địnhAnếu M |=phoặcU N SAT +cexnếu M 6|=p
1 begin
2 LetS=E={λ}
3 while truedo
4 Cập nhật T sử dụng các truy vấn thành viên
5 while (S, E, T)chưa đóng do
6 ThêmsavàoS để làm cho(S, E, T)đóng, trong đós∈S vàa∈Σ
7 Cập nhật T sử dụng các truy vấn thành viên
8 end
9 Tạo mộtứng viên C từ(S, E, T)
10 equiResult←Hỏi câu truy vấn ứng viên choứng viên C
11 if equiResult.Key là Y ES then
12 returnA=C
13 else if equiResult.Key là U N SAT then
14 returnU N SAT +cex
15 else
/* T eacher trả về N O+cex */
16 Thême∈Σ∗ mà là minh chứng cho sự khác biệt vào E
17 end
18 end
19 end
bước kiểm chứng sau. Khi Key =U N SAT, M không thỏa mãn p và phản ví dụ tương ứng là cex. Thành phần còn lại là một giả định khi Key =Y ES hoặc là một phản ví dụ cex khi Key =N O hoặc Key =U N SAT. Nếu equiResult.Key là Y ES (C là giả định cần tìm), thuật toán dừng và trả lại A=C (dòng 12). Nếu
(step 1) <Ci> M1 <p>
Phân tích Sinh giả
định ứng viên
Ci true
false+cex false
làm mạnh giả định
làm yếu giả định (step 2) <true> M2 <Ci>
cex
cex
Hình 3.2: Quá trình kiểm chứng thành phần tại bước thứ i.
equiResult.Key làU N SAT, thuật toán dừng và trả lại U N SAT +cex (dòng 14).
Ngược lại, nếu equiResult.Key là N O, thuật toán phân tích cex để tìm hậu tố thích hợp e. e phải là hậu tố mà khi thêm nó vàoE sẽ làm cho ứng viên cho giả định tiếp theo phản ánh được sự khác nhau giữa ứng viên cho giả định và giả
định đang cần sinh đồng thời giữ cho tập các hậu tố E là đóng. Phương pháp tìm e được trình bày chi tiết trong nghiên cứu của Rivest và cộng sự [91]. Sau đó, thuật toán thêm e vào E (dòng 16) và tiếp tục quá trình kiểm chứng từ dòng 4. Hình 3.2 minh họa bước thứ i của quá trình kiểm chứng.
Để trả lời một truy vấn thành viên rằng chuỗi “σ = a1a2...an ∈L(A)?”, thuật toán tạo một LTS [σ] = hQ,Σ, δ, q0i với Q = {q0, q1, ..., qn}, và δ ={(qi−1, ai, qi)}, với 1 ≤ i ≤ n. T eacher kiểm tra công thức h[σ]iM1hpi bằng việc tính hệ thống ghép nối [σ]||M1||perr. Nếu trạng thái lỗi π là không đến được, T eacher trả lại true (σ ∈L(A)). Ngược lại, T eacher trả lại f alse (σ6∈L(A)).
Để trả lời một truy vấn ứng viên rằng “ứng viên cho giả định A có phải là giả định cần tìm?”, T eacher so sánh L(A) với U. Tuy nhiên, trong kiểm chứng giả định - đảm bảo, U là ngôn ngữ chưa biết. Điều duy nhất thuật toán biết là giả định A đang tìm cần thỏa mãn luật giả định - đảm bảo (Định nghĩa 2.11). Do đó, thay vì kiểm tra L(A) = U, thuật toán kiểm tra A có thỏa mãn luật kiểm chứng giả định - đảm bảo không. Chi tiết về việc khi nào T eacher trả về Y ES, N O, và U N SAT, cũng như tính đúng đắn của Thuật toán 3.1 được trình bày trong nghiên cứu của Cobleigh và cộng sự [29].
3.4. Phương pháp sinh giả định nhỏ nhất và mạnh nhất cục bộ