• Tidak ada hasil yang ditemukan

Phương pháp sinh giả định mạnh nhất cục bộ

Dalam dokumen M c l c (Halaman 47-55)

Chương 3. PHƯƠNG PHÁP SINH GIẢ ĐỊNH NHỎ NHẤT VÀ

3.4. Phương pháp sinh giả định nhỏ nhất và mạnh nhất cục bộ

3.4.1. Phương pháp sinh giả định mạnh nhất cục bộ

Như đề cập trong Mục 3.1, các giả định được sinh bởi Thuật toán 3.1 không phải là mạnh nhất. Trong phản ví dụ trên Hình 3.3, cho hệ thống M gồm hai

admit dispatch

timeout ack M1

release

dispatch out release

cal M2

out

ack p

out

dispatch, release

release

ALS

release out dispatch

proc

out

release

dispatch

release

dispatch, out, release

release dispatch

dispatch release dispatch

dispatch

A

out

Hình 3.3: Một phản ví dụ cho thấy các giả định được sinh bởi phương pháp của Cobleigh và cộng sự [29] không phải là mạnh nhất.

thành phầnM1,M2, và thuộc tính an toànpcần kiểm tra, Thuật toán 3.1 sinh giả địnhA. Tuy nhiên, tồn tại một giả định mạnh hơn là ALS với L(ALS)↑ΣA L(A). Để đảm bảo tính khách quan, biểu thức L(ALS)↑ΣA L(A) được kiểm tra lại bằng công cụ tên là LTSA [73, 74]. Để sử dụng LTSA, A được biểu diễn như một thuộc tính (property). Sau đó, biểu thức ALS |=A được kiểm tra. Kết quả là đúng. Điều này nghĩa là L(ALS)↑ΣA L(A).

Một biến thể của thuật toán trả lời truy vấn thành viên

Kỹ thuật trả lời các truy vấn thành viên trong Thuật toán 3.1 dựa trên ngôn ngữ của giả định yếu nhất L(AW). Theo đó, với một chuỗi bất kỳ s, nếu s L(AW), kỹ thuật này trả về true cho dù s có thuộc ngôn ngữ của giả định sẽ được sinh ra hay không. Vì vậy, biến thể của kỹ thuật trả lời truy vấn thành

Thuật toán 3.2:Kỹ thuật trả lời truy vấn thành viên Đầu vào:Một chuỗis=a0a1...an

Đầu ra :NếusL(AW)thì trả về “?”, ngược lại thì trả vềf alse

1 begin

2 if h[s]iM1hpithen

3 return“?”

4 else

5 returnf alse

6 end

7 end

viên sẽ không trả về true khi s L(AW). Thay vào đó, biến thể này sẽ trả về

?”. Khi Learner nhận được câu trả lời là “?”, Learner sẽ coi “?” là f alse (chuỗi tương ứng không thuộc L(A)) và thử sinh A. Nếu Learner không thể tìm được

L(AW) L(A) s

Hình 3.4: Mối quan hệ giữas,L(A), and L(AW).

giả định, Learner sẽ quay trở lại một bước trước đó. Sau đó, Learner coi kết quả truy vấn thành viên tương ứng “?” là true và cố gắng sinh lại giả định. Biến thể của kỹ thuật trả lời truy vấn thành viên này được thể hiện trong Thuật toán 3.2. Trong Thuật toán 3.2, khi T eachernhận được câu truy vấn thành viên cho một chuỗi s = a0a1...an Σ, trước tiên, thuật toán xây dựng một LTS [s]

(như được trình bày trong Mục 3.3.2). Sau đó, thuật toán kiểm tra h[s]iM1hpi (dòng 2). Nếu kết quả là true (s L(AW)), T eacher trả về “?” (dòng 3). Ngược lại, T eacher trả về f alse (dòng 5). Mối quan hệ giữa chuỗi s, ngôn ngữ của giả định yếu nhất L(AW) và ngôn ngữ của giả định A đang được sinh được trình bày trong Hình 3.4.

Thuật toán sinh giả định mạnh nhất cục bộ

trình kiểm chứng giả định - đảm bảo được mô tả trong Thuật toán 3.3. Đây là thuật toán được cải tiến từ Thuật toán 3.1 để sinh các giả định mạnh nhất cục bộ. Thuật toán nhận đầu vào là một CBS M gồm hai thành phần M1, M2 và một thuộc tính an toàn p. Ý tưởng chính của thuật toán là dựa vào quan sát rằng tại mỗi bước của quá trình sinh giả định, khi bảng quan sát (OTi) là đóng, một ứng viên cho giả định (Ai) có thể được sinh ra. Bảng quan sát OTi có thể có nhiều kết quả truy vấn thành viên là “?” (giả sử có n kết quả). Tổ hợp chập k các kết quả “?” từ n kết quả “?” được tính toán (trong đó k là từ n đến 1).

Sau đó, toàn bộ các kết quả “?” đó được coi là f alse(các chuỗi tương ứng không thuộc vào ngôn ngữ của giả định sẽ được sinh ra). Đồng thời, các kết quả “?” còn lại được coi là true. Tồn tại nhiều trường hợp các bảng quan sát nhận được sau đó (OTkj) là đóng. Khi đó, ứng viên tương ứng Ckj được coi là một ứng viên cho giả định mới và thuật toán hỏi câu truy vấn ứng viên cho Ckj. Trường hợp cả hai ứng viên AiCkj đều thỏa mãn các luật giả định - đảm bảo (Định nghĩa 2.11), biểu thứcL(Ckj)L(Ai)là đúng. Các giả định được sinh bởi Thuật toán 3.3 sẽ được chứng minh là các giả định mạnh nhất cục bộ trong phần sau của chương này. Chi tiết của thuật toán sinh giả định mạnh nhất cục bộ được trình bày trong Thuật toán 3.3.

Thuật toán bắt đầu bằng việc khởi tạo SE với chuỗi rỗng (λ) (dòng 2).

Sau đó, thuật toán cập nhật bảng quan sát (S, E, T) bằng việc sử dụng các truy vấn thành viên (dòng 4). Tiếp theo, thuật toán làm đóng bảng quan sát(S, E, T) (từ dòng 5 đến dòng 8). Một bảng quan sát (S, E, T) được kiểm tra là đóng với việc coi toàn bộ các kết quả truy vấn thành viên “?” là true. Điều này giống với phương pháp sinh giả định được đề xuất bởi Cobleigh và cộng sự [29]. Khi bảng quan sát (S, E, T) là đóng, thuật toán cập nhật những kết quả “?” trong các hàng của bảng (S, E, T) tương ứng với các trạng thái không kết thúc thành true(dòng 9). Mục đích của việc này là giảm số kết quả “?” trong bảng quan sát (S, E, T). Từ đó, số tổ hợp cần thiết trong bước tiếp theo được giảm theo. Sau đó, thuật toán kiểm tra các ứng viên tương ứng với các tổ hợp chập k củan kết quả “?” tương ứng được coi là f alse (từ dòng 10 đến 20). Bước này gồm một số bước nhỏ hơn như sau: Với mỗi k từ n đến 1 (dòng 10), thuật toán tính một tổ hợp chập k của n kết quả “?” (dòng 11); Chuyển toàn bộ kết quả “?” trong tổ hợp đó k thành f alse, các kết quả “?” khác được chuyển thành true (dòng 12);

Nếu bảng quan sát tương ứng (S, E, T) là đóng (dòng 13), thuật toán tính toán

Thuật toán 3.3:Thuật toán sinh giả định mạnh nhất cục bộ

Đầ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)là 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 Cập nhật các kết quả “?” thànhtruetrong những hàng của (S, E, T)mà không tương ứng với các trạng thái kết thúc

10 forvới mỗik từn đến1do

11 Lấy một tổ hợp chậpkcủankết quả “?”.

12 Chuyển toàn bộ kết quả “?” trong tổ hợp đó thànhf alse, những kết quả “?” khác được chuyển thànhtrue.

13 if Nếu bảng quan sát tương ứng(S, E, T)là đóng then

14 Tạo một ứng viên cho giả định Cikj.

15 resultask một truy vấn ứng viên choCikj.

16 if result.Key Y ESthen

17 returnA=result.Assumption

18 end

19 end

20 end

21 Chuyển toàn bộ kết quả “?” trong(S, E, T)thànhtrue

22 Xây dựng một DFAD từ(S, E, T)

23 Tạo rang vin Ai từD

24 equiResulthỏi một truy vấn ứng viên choAi 25 if equiResult.Key Y ES then

26 returnA=Ai

27 else if equiResult.Key U N SAT then

28 returnU N SAT +cex

29 else

/* T eacher trả lại N O+cex */

30 ThêmeΣ mà là minh chứng cho phản ví dụ vàoE

31 end

32 end

33 end

ứng viên tương ứng Cikj (dòng 14). Sau đó, thuật toán hỏi câu truy vấn ứng viên đến T eacher (dòng 15) và lưu kết quả vào result. 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 bước sau. KhiKey =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 result.KeyY ES, thuật toán dừng và trả lại giả định đi kèm với kết quả A = result.Assumption (dòng 17). Trong trường hợp này, giả định mạnh nhất cục bộ được sinh ra. Khi thuật toán chạy đến dòng 21 nghĩa là thuật toán không thể tìm được giả định mạnh hơn nào trong bước hiện tại của quá trình sinh giả định. Thuật toán chuyển toàn bộ các kết quả “?” của bảng quan sát (S, E, T) thànhtrue và sinh ứng viên cho giả định tương ứngAi (dòng từ 21 đến 23). Sau đó, thuật toán hỏi một truy vấn ứng viên cho Ai (dòng 24). Nếu kết quả truy vấn ứng viên equiResult.KeyY ES, thuật toán dừng và trả lại A=Ai như là giả định cần tìm (dòng 26). Nếu equiResult.KeyU N SAT, thuật toán trả lại U N SAT và phản ví dụ tương ứng cex (dòng 28). Điều này nghĩa là hệ thống đã cho M vi phạm thuộc tính p với phản ví dụ là cex. Ngược lại, khi kết quả equiResult.KeyN O và một phản ví dụ cex. Thuật toán phân tích phản ví dụ cex để tìm một hậu tố thích hợp e. Hậu tố e này phải là hậu tố mà khi thêm vào E sẽ làm ứng viên cho giả định tiếp theo được sinh ra phản ánh được sự khác biệt và giữ cho tập hậu tố E là đóng. Phương pháp để tìm e không nằm trong phạm vi của chương này, ta có thể tìm các thông tin chi tiết hơn trong nghiên cứu của Rivest và Schapire [91]. Thuật toán thêm hậu tố này vào E để có được ứng viên cho giả định tốt hơn trong bước tiếp theo (dòng 30). Sau đó, thuật toán tiếp tục quá trình sinh giả định từ dòng 4 đến khi nó đến được một kết quả có thể kết luận được.

Tính đúng đắn

Tính đúng đắn của phương pháp sinh giả định mạnh nhất được chứng minh qua ba bước: chứng minh tính đúng, tính đủ, và tính dừng của nó. Tính đúng đắn của thuật toán đề xuất được chứng minh dựa trên tính đúng đắn của Thuật toán 3.1 và được trình bày trong các Bổ đề 3.1, 3.2, và 3.3.

Bổ đề 3.1 (Tính đúng). Xét Mi = hQMi,ΣMi, δMi, q0ii là các LTS, trong đó i = 1,2p là một thuộc tính an toàn.

i. Nếu Thuật toán 3.3 trả lại “Y ES và một giả định đi kèmA”, thì M1||M2|=pA là giả định.

ii. Nếu Thuật toán 3.3 trả lại “U N SAT và minh chứng là cex”, thì cex là minh chứng cho M1||M26|=p.

Chứng minh:

i. Khi Thuật toán 3.3 trả lại “Y ES”, một câu truy vấn ứng viên đã được gửi tới T eacher tại dòng 15 hoặc dòng 24 và có kết quả là “Y ES”. Khi trả về Y ES, T eacher đã kiểm tra rằng ứng viên tương ứngA đã thỏa mãn các luật giả định - đảm bảo (Định nghĩa 2.11) sử dụng thuật toán được đề xuất bởi Cobleigh và cộng sự [29]. Do đó, M1||M2 |=pA là giả định cần tìm dựa vào tính đúng đắn của thuật toán sinh giả định được đề xuất bởi Cobleigh và cộng sự [29].

ii. Mặt khác, khi Thuật toán 3.3 trả lại “U N SAT” và một phản ví dụcex, toàn bộ các ứng viên cho giả định đã được gửi tới T eacher tại dòng 15 đều không thỏa mãn các luật giả định - đảm bảo. Câu truy vấn ứng viên tại dòng 24 có kết quả là U N SATcextương ứng. Khi trả về U N SATcex, T eacher đã kiểm tra rằng M vi phạm thuộc tính pcex là minh chứng. Do tính đúng đắn của thuật toán sinh giả định được đề xuất bởi Cobleigh và cộng sự [29], M1||M26|=pcex là minh chứng.

Bổ đề 3.2 (Tính đủ). Xét Mi =hQMi,ΣMi, δMi, qi0i là các LTS, trong đó i= 1,2p là một thuộc tính an toàn.

i. Nếu M1||M2 |=p, thì Thuật toán 3.3 trả lại “Y ES” và giả định kèm theo A là giả định cần tìm.

ii. Nếu M1||M2 6|= p, thì Thuật toán 3.3 trả lại “U N SAT” và phản ví dụ kèm theo cex là minh chứng cho M1||M2 6|=p.

Chứng minh:

i. Thuật toán 3.3 khác với Thuật toán 3.1 từ dòng 9 đến 21. Mặt khác, các bước này là một số hữu hạn các bước mà Learner gửi đến T eacher một số câu truy vấn ứng viên khác. Do đó, trong trường hợp xấu nhất, khi không thể tìm được giả định nào từ các bước này, thuật toán là tương đương với

Thuật toán 3.3 trả lại Y ES và giả định kèm theoA là giả định cần tìm dựa vào tính đúng đắn của Thuật toán 3.1.

ii. Tương tự như trên, trong trường hợp xấu nhất, khi Thuật toán 3.3 không tìm thấy giả định từ dòng 9 đến dòng 21, thuật toán là tương đương với Thuật toán 3.1. Do đó, nếu M1||M26|=p, thì Thuật toán 3.3 trả về U N SATcex kèm theo là phản ví dụ theo tính đúng đắn của Thuật toán 3.1.

Bổ đề 3.3 (Tính dừng). Xét Mi = hQMi,ΣMi, δMi, q0ii là các LTS, trong đó i = 1,2p là một thuộc tính an toàn. Thuật toán 3.3 dừng sau một số hữu hạn các bước kiểm chứng.

Chứng minh: Tính dừng của Thuật toán 3.3 là hệ quả trực tiếp của hai Bổ

đề 3.1 và Bổ đề 3.2 ở phía trên.

Bên cạnh tính đúng đắn của thuật toán được trình bày trong các bổ đề trên đây, Bổ đề 3.4 sau đưa ra chứng minh rằng các giả định được sinh bởi thuật toán 3.3 là giả định mạnh nhất cục bộ. Sau đó, độ phức tạp của thuật toán 3.3 được trình bày trong Bổ đề 3.5.

Bổ đề 3.4 (Giả định được sinh bởi Thuật toán 3.3 là giả định mạnh nhất cục bộ). Xét Mi =hQMi,ΣMi, δMi, q0ii là các LTS, trong đó i= 1,2p là một thuộc tính an toàn. Giả sử M1||M2 |=p và Thuật toán 3.3 không kết thúc ngay sau khi tìm thấy giả định đầu tiên thỏa mãn (dòng 17). Thuật toán tiếp tục chạy để tìm toàn bộ các giả định có thể cho đến khi toàn bộ các kết quả truy vấn thành viên

?” được chuyển thành “true” trong bảng quan sát tương ứng. Gọi A là tập các giả định đó và A là giả định đầu tiên được sinh ra. A là giả định mạnh nhất cục bộ trong A.

Chứng minh: Ý tưởng chính của Thuật toán 3.3 được mô tả trong Hình 3.5.

Trong quá trình sinh giả định, tại bước thứ i, thuật toán có một bảng quan sát đóng (Si, Ei, Ti) và ứng viên cho giả định tương ứng Ai trong đó toàn bộ các kết quả truy vấn thành viên “?” được coi làtrue. Điều này nghĩa là toàn bộ các chuỗi tương ứng với các kết quả “?” đó được coi làthuộc vào ngôn ngữ của giả định sẽ được sinh ra. Giả sử có n kết quả “?” trong (Si, Ei, Ti), thuật toán bắt đầu bước

Ai-1

Cik(j-1) Cik1

Cikj Ai

(Si,Ei,Ti)

C

knTổ hợp của k kết quả “?” được coi là “false”, trong đó, k từ n đến 1

(Si-1,Ei-1,Ti-1)

Hình 3.5:Ý tưởng chính của phương pháp sinh giả định mạnh nhất cục bộ dựa vào L.

này bằng việc thử lấy các tổ hợp chậpk củan kết quả “?” và coi các kết quả “?” trong các tổ hợp chập k đó là f alse, trong đó k là từ n đến 1. Điều này nghĩa là thuật toán sẽ thử cân nhắc các chuỗi tương ứng là không thuộc ngôn ngữ của giả định sẽ được sinh ra. Như vậy, thuật toán đã thử mọi khả năng mà một chuỗi là không thuộc vào ngôn ngữ của giả định sẽ được sinh ra. Điều này là do khi k =n nghĩa là không có chuỗi nào tương ứng với các kết quả “?” thuộc vào ngôn ngữ của giả định sẽ được sinh ra. k=n1 nghĩa là chỉ có một chuỗi tương ứng với kết quả “?” là thuộc vào ngôn ngữ của giả định sẽ được sinh ra, và tương tự như vậy. Mặt khác, Thuật toán 3.3 dừng ngay khi nhận được kết quả có thể kết luận được. Do đó, trong trường hợp xấu nhất, khi mà toàn bộ các kết quả “?” đều được coi là true, Thuật toán 3.3 là tương đương với Thuật toán 3.1. Trong các trường hợp khác, khi tồn tại một ứng viên cho giả định Cikj 6=Ai mà thỏa mãn các luật giả định - đảm bảo, hiển nhiên L(Cikj)L(Ai) vì có k kết quả “?” trong (Si, Ei, Ti) được coi là f alse. Điều này nghĩa là k chuỗi tương ứng thuộc vào L(Ai) nhưng không thuộc vào L(Cikj).

Trường hợp Cikj tồn tại, Cikj là giả định mạnh nhất cục bộ vì thuật toán đã thử toàn bộ các khả năng màn, n1, ..., k+ 1 kết quả “?” không thuộc vào ngôn ngữ của giả định sẽ được sinh ra nhưng vẫn chưa thành công tìm được giả định.

Với cách làm này, thuật toán đã thử ứng viên cho giả định mạnh nhất trước tiên, các ứng viên cho giả định yếu hơn sau đó. Mặt khác, với một giá trị củak, có thể có nhiều tổ hợp chậpk củan kết quả “?” mà có thể coi làf alse. Mỗi tổ hợp chập k có thể tương ứng với một ứng viên cho giả định Cikj, trong đó1j Cnk. Tuy nhiên, L(Cikj) không thể so sánh được với L(Cikt), với 1 j 6= t Cnk. Do đó, Thuật toán 3.3 dừng ngay khi tìm được kết quả có thể kết luận được và không

quả là, giả định được sinh ra phải làgiả định mạnh nhất cục bộ trong cùng một bước của quá trình sinh giả định.

Dòng 21 của Thuật toán 3.3 có thể được bỏ đi. Khi đó, Thuật toán 3.3 có thể sinh các giả định mạnh hơn các giả định được sinh bởi Thuật toán 3.1. Tuy nhiên, khi đó thuật toán không có danh sách các ứng viên cho giả định cơ sở được sinh bởi Thuật toán 3.1 đóng vai trò như những chỉ dẫn cho quá trình sinh giả định. Thuật toán sinh giả định sẽ trở nên kém hiệu quả hơn nhiều.

Bổ đề 3.5 (Độ phức tạp). Độ phức tạp của thuật toán được đề xuất tại bước thứ iO(2ni). Trong đó, ni là số kết quả “?” có trong bảng quan sát tương ứng tại bước thứ i.

Chứng minh: Giả sử Thuật toán 3.1 cầnmequi câu truy vấn ứng viên và mmem câu truy vấn thành viên. Tại bước thứi, cóni kết quả “?”. Trong trường hợp xấu nhất khi có một ứng viên cho giả định cho mỗi tổ hợp chập k của các kết quả

?”, thuật toán sẽ cần Σnk=1i Cnki câu truy vấn ứng viên, nhưng không cần thêm câu truy vấn thành viên nào khác. Do đó, tính toàn bộ và trong trường hợp xấu nhất, Thuật toán 3.3 cầnΣmi=1equiΣnk=1i Cnk

i câu truy vấn ứng viên vàmmem câu truy vấn thành viên. Từ đó, độ phức tạp của thuật toán được đề xuất tại bước thứ

iO(2ni).

Để làm giảm độ phức tạp này về một độ phức tạp đa thức, chúng tôi có kế hoạch nghiên cứu các thuật toán dựa vào bản thân các ứng viên cho giả định Ai mà không dựa vào bảng quan sát tương ứng của nó (Si, Ei, Ti). Tuy nhiên, các thuật toán đó không nằm trong phạm vi nghiên cứu của luận án này.

Dalam dokumen M c l c (Halaman 47-55)