• Tidak ada hasil yang ditemukan

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 55-65)

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.2. Phương pháp sinh giả định nhỏ nhất và mạnh nhất cục bộ

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.

Hình 3.6 trình bày một ví dụ chỉ ra sự tồn tại một giả định có kích thước và ngôn ngữ nhỏ hơn kích thước và ngôn ngữ của giả định được sinh bởi Thuật toán 3.1. Tuy nhiên, hình này không thể thể hiện được giả định đó là nhỏ nhất và mạnh nhất cục bộ vì việc đó cần được chứng minh một cách hình thức và sẽ được trình bày trong phần sau của chương này. Xét một hệ thốngM =M1kM2 và một thuộc tính an toàn p như trong Hình 3.6. Đây chính là hệ thống được trình bày trong Hình 3.3. Tuy nhiên, kích thước của giả định ALM S = 3 nhỏ hơn kích thước của giả định được sinh bởi Thuật toán 3.3 ALS = 4 và kích thước của ALS nhỏ hơn kích thước của giả định được sinh bởi Thuật toán 3.1A= 6. Ngoài

0

admit dispatch

timeout ack

1 2 3

release

dispatch out release

cal M2

a b c

out

ack p

i ii

d proc

M1

Lamda out

dispatch.

out.relea se.releas e

dispatch.

out.relea se dispatch.

out

out release

dispatch

release

dispatch, out, release

release

dispatch

dispatch

dispatch release dispatch

dispatch

A

out

dispatch.

Lamda dispatch out

dispatch, release out

release ALMS

Hình 3.6: Ví dụ cho sự tồn tại của một giả định nhỏ hơn và mạnh hơn (ALM S) giả định được sinh bởi Thuật toán 3.1 (A).

ra, để đảm bảo tính khách quan, biểu thức L(ALM S)↑ΣA L(A) được kiểm tra bằng một công cụ phổ biến trong cộng đồng nghiên cứu là LTSA [73, 74]. Mặc dùL(ALM S)↑ΣA L(A)sẽ được chứng minh trong phần sau của chương này, việc sử dụng một công cụ khác để kiểm tra tính đúng đắn của nó là để tăng độ tin cậy của thuật toán đề xuất. Giả địnhA được biểu diễn dưới dạng mộtthuộc tính và biểu thức ALM S |= A được kiểm tra. Kết quả là công thức này đúng. Điều này có nghĩa rằng L(ALM S)↑ΣA L(A). Từ đó, ALM S là nhỏ hơn, mạnh hơn, và đơn giản hơn nhiều so với A.

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

Phần này trình bày một thuật toán sinh các giả định nhỏ nhất và mạnh nhất cục bộ sử dụng biến thể của thuật toán trả lời các truy vấn thành viên được

trình bày trong Mục 3.4.1. Chi tiết của thuật toán được trình bày trong Thuật toán 3.4. Thuật toán sử dụng các ứng viên cho giả định được sinh bởi Thuật toán 3.1 làm cơ sở cho quá trình sinh giả định. Tại mỗi bước của quá trình kiểm chứng, khi bảng quan sát là đóng, tồn tại một ứng viên cho giả định cơ sở tương ứng. Trong khi thuật toán coi một số kết quả truy vấn thành viên “?” trong bảng quan sát tương ứng là f alse, thuật toán kiểm tra sự tồn tại ứng viên cho giả định khác có số trạng thái ít hơn hoặc bằng số trạng thái của ứng viên cho giả định cơ sở đó. Nếu tồn tại, ứng viên cho giả định đó sẽ được gửi đếnTeacher trong một câu truy vấn ứng viên.

Thuật toán 3.4 bắt đầu với việc khởi tạo bảng quan sát (S, E, T) bằng cách gán chuỗi rỗng (λ) vào cả SE (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 câu truy vấn thành viên (dòng 4). Tiếp đó, bảng quan sát (S, E, T)được làm đóng (từ dòng 5 đến 8). Khi kiểm tra bảng quan sát (S, E, T) là đóng hay không, toàn bộ các kết quả “?” được coi là true. Điều này giống với Thuật toán 3.1 được trình bày trong Mục 3.3. Nếu (S, E, T)

q1 qt

q0

Ai

tempQ

qm

Ckm tổ hợp chập t của m trạng thái comFinalState

Cikj có t+1 trạng thái

Hình 3.7: Ý tưởng để tính tempQ,comF inalState, vàCikj.

là đóng, thuật toán tạo một ứng viên cho giả định Ai được biểu diễn bằng một LTS (từ dòng 9 đến 10). Ta sử dụng Ai.QAi.q0 theo thứ tự để biểu diễn tập các trạng thái và trạng thái khởi tạo của Ai. Gọi tempQ là tập các trạng thái của Ai không chứa trạng thái khởi tạo Ai.q0m là số trạng thái trong tempQ (dòng 11). Lý do để tạo ra tậptempQ không chứa trạng thái khởi tạo là vì toàn bộ các ứng viên cho giả định luôn cần có trạng thái khởi tạo. Do đó, ta có thể thử mọi khả năng loại bỏ các trạng thái khác, trừ trạng thái khởi tạo. Sau đó, vòng lặp fortừ dòng 12 đến dòng 28 kiểm tra mọi ứng viên cho giả định có kích thước là t+ 1 nhận giá trị từ 1(ứng viên cho giả định chỉ có trạng thái khởi tạo)

Thuật toán 3.4:Thuật toán sinh các giả định nhỏ nhất và 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 Coi toàn bộ kết quả “?” trong(S, E, T)true

10 Tạo ứng viên Ai từ(S, E, T)

11 tempQAi.Q\ {Ai.q0};m← |tempQ|

12 forvới mỗit từ 0 đến mdo

13 forvới mỗicomF inalState = tổ hợp chậpt củam trạng thái của tempQdo

14 Cập nhật kết quả “?” thành truetrong các hàng của(S, E, T)mà không tương ứng với trạng thái nào trongcomF inalState

15 n← |“?”|

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

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

18 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ành true.

19 if Bảng quan sát tương ứng(S, E, T)là đóng then

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

21 resulthỏi một câu truy vấn ứng viên choCikj.

22 if result.Key Y ES then

23 returnA=result.Assumption

24 end

25 end

26 end

27 end

28 end

29 equiResulthỏi một câu truy vấn ứng viên choAi

30 if equiResult.Key Y ES then

31 returnA=Ai

32 else if equiResult.Key U N SAT then

33 returnU N SAT +cex

34 else // T eacher trả về N O+cex

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

36 end

37 end

38 end

đếnm+ 1(ứng viên cho giả định mà có cùng tập trạng thái với Ai) (0tm).

Với mỗi giá trị củat, vòng lặp fortừ dòng 13 đến dòng 27 kiểm tra toàn bộ các ứng viên cho giả định có cùng số trạng thái làt+ 1. Các tập hợp trạng thái của các ứng viên cho giả định đều là tập con của tập tempQ∪ {Ai.q0}. Trong đó, mỗi tập con là một tổ hợp chậpt các trạng thái từ tập tempQ. Gọi comF inalState là tổ hợp chập t của m trạng thái của tempQ (dòng 13). Trong các bước tiếp theo

(từ dòng 14 đến dòng 20), thuật toán tính toán một ứng viên cho giả định từ bảng quan sát hiện tại. Trong đó, comF inalState∪ {Ai.q0} là tập các trạng thái.

Như vậy, thuật toán xét toàn bộ các ứng viên cho giả định có số trạng thái lần lượt từ 1 đến m+ 1. Nghĩa là, từ ứng viên cho giả định chỉ có một trạng thái là trạng thái khởi tạoAi.q0 đến toàn bộ các ứng viên cho giả định có toàn bộ Ai.Q trạng thái. Trong dòng 14, thuật toán cập nhật toàn bộ kết quả “?” trong các dòng của bảng quan sát (S, E, T) không tương ứng với bất kỳ một trạng thái nào trong comF inalState thành true. Mục đích của bước này là giảm thiểu số kết quả “?” cần kiểm tra để số lượng tổ hợp chập k của n trong bước tiếp theo trở nên nhỏ hơn. Gọi n là số các kết quả “?” còn lại trong bảng quan sát sau khi cập nhật ở dòng 14. Với mỗi tổ hợp chập k của n kết quả “?”, thuật toán chuyển toàn bộ các kết quả “?” trong tổ hợp tương ứng thành f alse và các kết quả “?” khác thành true (từ dòng 17 đến dòng 18). Nếu bảng quan sát tương ứng(S, E, T)là đóng (dòng 19), thuật toán tính toán một ứng viên cho giả định Cikj (dòng 20) và gửi đến T eacher trong một câu truy vấn ứng viên (dòng 21).

Sau đó, thuật toán lưu kết quả vào result. Ý tưởng của việc tính toán tempQ, comF inalState, và Cikj được trình bày trong Hình 3.7. 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 sinh giả định 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 result.KeyY ES, thuật toán dừng và trả về giả định đi kèm với A=result.Assumption (dòng 23). Trong trường hợp này, thuật toán có được giả định nhỏ nhất và mạnh nhất cục bộ. Khi thuật toán chạy đến dòng 29 nghĩa là không thể tìm được giả định ở bước hiện tại của quá trình sinh giả định. Thuật toán gửi tới Teacher ứng viên cho giả định cơ sở Ai trong một câu truy vấn ứng viên (dòng 29). Nếu kết quả truy vấn ứng viên equiResult.KeyY ES, thuật toán dừng và trả về A = Ai là giả định cần tìm (dòng 31). Nếu equiResult.KeyU N SAT, thuật toán trả về U N SAT và phản ví dụ tương ứng cex (dòng 33). 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 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ố phù hợp e. Hậu tố e này 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 biệt và giữ cho tập các hậu tố E là đóng. Phương pháp tìm e nằm ngoài phạm vi của luận án này. Phương pháp tìm e được trình bày trong thuật toán cải tiến L của Rivest và Schapire [91]. Sau đó, thuật toán thêm nó vào E để có ứng viên cho giả định tốt hơn trong bước tiếp theo (dòng 35). Tiếp theo, thuật toán tiếp tục quá trình sinh giả định từ dòng 4 cho đế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 thuật toán đề xuất được chứng minh qua ba bước sau:

chứng minh tính đúng, tính đủ, và tính dừng của nó. Việc chứng minh này dựa trên tính đúng đắn của Thuật toán 3.1 được trình bày trong Mục 3.3 và được trình bày trong các Bổ đề 3.6, 3.7, và 3.8.

Bổ đề 3.6 (Tính đúng) Xét một phần mềm M chứa hai thành phần M1M2 (M =M1 kM2) và một thuộc tính an toàn p.

i. Nếu Thuật toán 3.4 trả về giả định A, thì M1 kM2 |=pA là giả định cần tìm.

ii. Nếu Thuật toán 3.4 trả về “U N SAT +cex”, thì cex là minh chứng cho M1 k M2 6|=p.

Chứng minh:

i. Khi Thuật toán 3.4 trả về giả định A trong dòng 23 hoặc dòng 31, thuật toán đã kiểm tra giả định tương ứng (Cikj hoặc Ai) thỏa mãn các luật giả định - đảm bảo bằng việc gửi giả định đó tới T eacher trong một câu truy vấn ứng viên và nhận kết quả là Y ES từ T eacher (dòng 21 và dòng 29). Vì Thuật toán 3.4 sử dụng cùng thuật toán xử lý các truy vấn ứng viên được sử dụng trong Thuật toán 3.1 trong Mục 3.3, từ tính đúng đắn của thuật toán này, M1 kM2|=pA là giả định cần tìm.

ii. Khi Thuật toán 3.4 trả về “U N SAT+cex”, toàn bộ các ứng viên cho giả định đã được gửi tới T eacher trong các câu truy vấn ứng viên tại dòng 21 đều không thỏa mãn các luật giả định - đảm bảo. Hơn nữa, truy vấn ứng viên

trong dòng 29 có kết quả là U N SATcex. Mặt khác, khi trả về U N SATcex, T eacher đã kiểm tra rằng M thực sự vi phạm thuộc tính pcex là minh chứng. Do đó, dựa vào tính đúng đắn của Thuật toán 3.1 trong Mục 3.3, M1||M26|=pcex là minh chứng.

Bổ đề 3.7 (Tính đủ). Xét M =M1 kM2 là một LTS mà có hai thành phần M1

M2, và p là một thuộc tính an toàn.

i. Nếu M1||M2 |= p, thì Thuật toán 3.4 trả về “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.4 trả về “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.4 khác Thuật toán 3.1 tại các dòng từ 11 đến 28. Đây là một số hữu hạn các bước gửi tới T eacher thêm một số câu truy vấn ứng viên.

Trong trường hợp xấu nhất, thuật toán không thể tìm thấy một giả định nào từ các bước này. Thuật toán 3.4 tương đương với Thuật toán 3.1. Do đó, nếu M1||M2 |=p, thì trong trường hợp xấu nhất, Thuật toán 3.4 trả về Y ES và giả định kèm theo A dựa vào tính đúng đắn của Thuật toán 3.1 trong Mục 3.3.

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

Bổ đề 3.8 (Tính dừng). Xét M = M1 k M2 là một LTS chứa hai thành phần M1M2, và p là một thuộc tính an toàn. Thuật toán 3.4 dừng sau một số hữu hạn bước kiểm chứng.

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

đề 3.6 và 3.7 ở phía trên.

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

Bổ đề 3.9 (Giả định được sinh bởi Thuật toán 3.4 là giả định mạnh nhất cục bộ). Xét M =M1kM2 là một LTS chứa hai thành phần M1M2, và p là một thuộc tính an toàn. Giả sử M1||M2 |=p và Thuật toán 3.4 không trả về giả định ngay khi tìm được giả định đầu tiên (dòng 23 hoặc dòng 31). Thuật toán tiếp tục để tìm toàn bộ các giả định cho đến khi toàn bộ kết quả “?” được chuyển thành

true” trong bảng quan sát tương ứng. Xét At là một tập con của tập toàn bộ các giả định nói trên có t trạng thái và A At là giả định đầu tiên được sinh ra trong At. A là giả định mạnh nhất cục bộ trong At.

Chứng minh:Ý tưởng chính của Thuật toán 3.4 được trình bày trong Hình 3.8.

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 là Ai. Trong đó, toàn bộ các kết quả “?” được coi là true(từ dòng 5 đến 9). 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. Xét m là số trạng thái của Ai không tính trạng thái khởi tạo q0 (dòng 11).

Xét một tập các giả định có cùng số trạng thái là t, trong đó 1 t m+ 1. Tập các giả định này có được theo cách sau (dòng 12). Trước tiên, thuật toán chuyển toàn bộ kết quả “?” tương ứng với trạng thái q6∈tempQ∪ {q0}thànhtrue (dòng 14). Sau đó, giả sử có n kết quả “?” còn lại trong (Si, Ei, Ti) (dòng 15).

Thuật toán lấy tổ hợp chậpk củan kết quả “?” và coi toàn bộ các kết quả “?” đó là f alse(dòng 18). Trong đó, k là từ n đến 1. Nghĩa là, thuật toán coi các chuỗi tương ứng với các kết quả “?” này là không thuộc vào ngôn ngữ của giả định sẽ được sinh ra. Như vậy, thuật toán đã kiểm tra toàn bộ các khả năng một chuỗi nào đó không thuộc vào ngôn ngữ của giả định sẽ được sinh ra. Điều này là vì k = n nghĩa là không có chuỗi nào tương ứng với 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ả “?” thuộc vào ngôn ngữ của giả định sẽ được sinh ra, và cứ như vậy.

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