• Tidak ada hasil yang ditemukan

Phương pháp sinh giả định dựa trên thuật toán học L ∗

Dalam dokumen M c l c (Halaman 43-46)

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: ww0 nếu và chỉ nếu ∀uΣ :wuU w0uU, 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 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 Learnertrue 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 LearnerY ES nếu L(D) =U. Ngược lại, T eacher trả lời LearnerN 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)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 M1M2 (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 SE 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 đósS 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 equiResultHỏi câu truy vấn ứng viên choứng viên C

11 if equiResult.Key Y ES then

12 returnA=C

13 else if equiResult.Key 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.KeyY 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.KeyU 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.KeyN 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ộ

Dalam dokumen M c l c (Halaman 43-46)