Kiểm thử trên raSAT

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp tính toán khoảng giải các ràng buộc không tuyến tính (Trang 50 - 54)

Chương 4 CẢI TIẾN KỸ THUẬT KIỂM THỬ TRÊN SMT SOLVER raSAT

4.1. Kiểm thử trên raSAT

Như đã trình bày hoạt động của SMT Solver raSAT ở Chương 3. Nếu sau khi đầu vào được đánh giá bởi lý thuyết tính toán khoảng (Interval Arithmetic - IA) cho kết quả là IA- SAT thì sẽ chuyển sang bước kiểm thử để tiếp tục giải ràng buộc đa thức. Kiểm thử kết quả bằng cách sinh ra bộ dữ liệu kiểm thử từ dải giá trị đầu vào ban đầu. Bản chất của bước kiểm thử là đi tìm giá trị có kết quả là SAT trong dải giá trị của đầu vào. Nếu tìm được một điểm trong dải giá trị cho kết quả là SAT thì kết luận ràng buộc đó là SAT.

Kiểm thử kết quả bằng cách sinh ra bộ dữ liệu kiểm thử ⊝i từ dải giá trị đầu vào ban đầu x1 ∈ ( a1, b1) ˄ … ˄ xn ∈ ( an, bn).Với Ѳ(I) = ( a1, b1) × . . .× ( an, bn) thì giá trị của P được định nghĩa như dưới.

P kết luận là Test-SAT trên I nếu trong P tồn tại Ѳ ∈ ⊝

Kết quả kiểm thử của ràng buộc đa thức P được mô tả như hình dưới: Ca kiểm thử SAT Ca kiểm thử UNSAT r r Test-UNSAT Test-SAT r x x x f ( 1, 2,..., n) 

Hình 9: Kết quả kiểm thử của ràng buộc đa thức.

Như vậy bước kiểm thử sẽ dừng lại khi kết quả là Test-SAT và kết luận là SAT. Ngược lại nếu kết quả là Test-UNSAT raSat sẽ sử dụng bộ Domain Decomposition để phân rã dải giá trị hiện tại thành các dải giá trị nhỏ hơn và tiếp tục kiểm thử trên các giải giá trị mới.

Tuy nhiên để thử tất cả các giá trị trong dải giá trị là điều không thể. Do vậy cần có chiến lược chọn giá trị kiểm thử cho các biến hiệu quả thay vì thử tất cả các giá trị. Số lượng các ca kiểm thử ảnh hưởng rất lớn hiệu quả của raSAT. Cụ thể với các ràng buộc cần giải SAT nếu chọn số lượng ca kiểm thử ít sẽ dẫn đến có thể bỏ qua các giá trị SAT. Ngược lại với các ràng buộc cần giải UNSAT nếu chọn số ca kiểm thử nhiều sẽ dẫn đến mất nhiều thời gian. raSAT hiện tại chọn tối đa 210 ca kiểm thử. raSAT chọn 10 biến có mức độ ảnh hướng tới kết quả bằng các luật kinh ngiệm (heuristic) để chọn hai giá trị ngẫu nhiên, các biến còn lại sẽ chọn một giá trị ngẫu nhiên. Sau đó sẽ thực hiện sinh các ca kiểm thử bằng phương pháp tổ hợp.

raSAT sử dụng phương pháp kiểm thử từng bước (test - inrementally) để tăng hiệu quả. Với kiểm thử thông thường sẽ sinh ra một bộ ca kiểm thử sau đó sẽ thực hiện kiểm thử trên bộ các ca kiểm thử đó. Tuy nhiên trong trường hợp kết quả cho là SAT tại một ca kiểm thử thì các ca kiểm thử phía sau sinh ra là không cần thiết. Trong khi đó kiểm thử từng bước (test - inrementally) không sinh ra tất cả các ca kiểm thử một lúc mà thực hiện sau khi sinh ra một ca kiểm thử sẽ thực hiện kiểm thử luôn. Nếu kết quả kiểm thử là SAT thì sẽ dừng kiểm thử, ngược lại nếu kết quả là UNSAT sẽ sinh ca kiểm thử tiếp theo và tiếp tục thực hiện kiểm thử tương tự. Như vậy kiểm thử từng bước sẽ giúp tăng hiệu quả kiểm thử trên raSAT.

raSAT sử dụng các luận kinh nghiệm (heuristic) cho phép chọn 10 biến có mức độ ảnh hưởng tới kết quả nhất để chọn ngẫu nhiên hai giá trị .Và chọn các nguyên tử đa thức (APC) có khả năng SAT (SAT-likelihood) lớn nhất để giải trước.

Phương pháp tính toán khoảng giúp đánh giá khoảng giá trị của đa thức g trên giải giá trị B bằng biến đổi đa thứ về dạng [𝑐1, 𝑑1]ɛ1+ ⋯ + [𝑐𝑛, 𝑑𝑛]ɛ𝑛 với

Định nghĩa 4.1.1: Khả năng SAT (SAT-likelihood) của APC g trong giải giá trị B◇0 với ◇= { > , ≥ , < , ≤ , = , ≠ } được tính bằng công thức sau

|ICC(g ◇ 0 , G(B)| |G(B)|

Trong đó ICC (interval constraint contraction), ICC (g ◇ 0 , I) là khoảng nhỏ nhất 𝐼′ được tính bằng {𝑟 ∈ 𝐼 , 𝑟 ◇ 0} ⊆ 𝐼′

Ví dụ: ICC(g > 0, [−2, 5] ) = [0, 5] ICC(g > 0, [2, 5] ) = [2, 5] ICC(g > 0, [−2,−5] ) = ∅

Định nghĩa 4.1.2: Hệ số ưu tiên (sensitivity) của biến 𝑥𝑖 trong đa thức g được tính bằng max (|𝑑𝑖| , |𝑐𝑖|).

Ví dụ: g(x1 , x2) = x13− 2x1x2, x1 = [0,2] = 1 + ɛ1 , x2 = [1,3] = 2 + ɛ2. Sử dụng kĩ thuật AF2 g(x1 , x2) = −3 − ɛ1 − 2ɛ2 + 3ɛ+ + 3ɛ± = [−9 ,6 ]. Khả năng SAT của g(x1 , x2) > 0 là 6

9 −(−6) = 0.4 và hệ số ưu tiên của các biến lần lượt là x1 = 1 và x2 = 2.

Ngoài ra chọn giá trị cho một biến 𝑥𝑖 trong khoảng giá trị để sinh ca kiểm thử dựa hệ số của biến 𝑥𝑖 và thực hiện chọn giá trị theo bảng sau :

Hệ số của biến 𝑥𝑖 gi > 0 , gi ≥ 0 gi < 0 , gi ≤ 0 gi = 0

-1 Cận trên Cận dưới Ngẫu nhiên 1 Cận dưới Cận trên Ngẫu nhiên 0 Ngẫu nhiên Ngẫu nhiên Ngẫu nhiên Bảng 1: Chọn giá trị cho biến trong khoảng dựa vào hệ số ưu tiên Ví dụ: g(x1 , x2) = x13− 2x1x2, x1 = [0,2] = 1 + ɛ1 , x2 = [1,3] = 2 + ɛ2. Sử dụng kĩ thuật AF2 g(x1 , x2) = −3 − ɛ1 − 2ɛ2 + 3ɛ+ + 3ɛ± .Hệ số của

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp tính toán khoảng giải các ràng buộc không tuyến tính (Trang 50 - 54)

Tải bản đầy đủ (PDF)

(65 trang)