• Tidak ada hasil yang ditemukan

So sánh các thuật toán sinh giả định

Dalam dokumen M c l c (Halaman 104-108)

Chương 4. PHƯƠNG PHÁP KIỂM CHỨNG HỒI QUY GIẢ ĐỊNH

4.6. Thực nghiệm

4.6.1. So sánh các thuật toán sinh giả định

kiểm chứng hệ thống trong ngữ cảnh tiến hóa khi M2 được tiến hóa thành M200.

hệ thống điều khiển quá trình đóng gói kẹo. Thiết kế của hệ thống điều khiển này được dựa trên hệ thống được gọi là Simple Communication Channel trong nghiên cứu của Cobleigh và cộng sự [29]. Hệ thống điều khiển bao gồm hai thành phần M1M2. M1 có bốn trạng thái: in: kẹo được rót vào gói; process: gói chứa kẹo được cân để kiểm tra trọng lượng của nó đã đúng chưa; send: gói chứa kẹo được gửi tới bộ phận hàn kín; ack: hệ thống kết thúc việc hàn kín gói kẹo và sẵn sàng xử lý gói kẹo tiếp theo. M2 có bốn trạng thái: process: gói chứa kẹo được cân để kiểm tra trọng lượng của nó đã đúng chưa; send: gói chứa kẹo được chuyển đến bộ phận hàn kín; out: thông tin gói kẹo được hiển thị lên màn hình của người kiểm soát; ack: hệ thống kết thúc hiển thị thông tin và sẵn sàng xử lý các gói kẹo tiếp theo.

Thuộc tính là toàn bộ các yêu cầu sau đều cần được thỏa mãn: Trạng thái hệ thống luôn cần được giữ theo thứ tự: in process send / out ack;

sau khi một gói kẹo được hàn kín hoặc thông tin của nó được hiển thị, kẹo có thể được rót vào gói tiếp theo; khi hệ thống kết thúc đóng gói gói hiện tại, kẹo có thể được rót vào gói tiếp theo hoặc gói tiếp theo có thể được cân hoặc gói tiếp theo có thể được hàn hoặc thông tin về gói tiếp theo có thể được hiển thị; hệ thống có thể có một số thời gian rảnh trước khi kẹo có thể được rót vào gói tiếp theo. Với hệ thống điều khiển dây truyền đóng gói kẹo này, hai biến lôgic được dùng để mã hóa các trạng thái của M1M2

(|X1|= 2|X2|= 2).

Hệ thống điều khiển dây truyền phân loại rác (ký hiệu TC2) là một hệ thống điều khiển quá trình phân loại rác thành hai loại hữu cơ và vô cơ.

Hệ thống điều khiển có hai thành phần M1M2. M1 có ba trạng thái: in:

một lượng rác được đưa vào hệ thống và phân loại; rác hữu cơ: rác được nhận diện là hữu cơ; rác vô cơ: rác được nhận diện là vô cơ. M2 cũng có ba trạng thái: sorted waste: rác đã được phân loại (hữu cơ hoặc vô cơ) được nhận và chuẩn bị để xử lý; process: tùy thuộc vào loại rác, nó được đưa đi tái chế (rác vô cơ) hoặc sử dụng để sản xuất phân bón hữu cơ (rác hữu cơ);

ack: việc xử lý rác được kết thúc và thành phần sẵn sàng nhận lượng rác tiếp theo để xử lý. Thuộc tính là các điều kiện sau cần được đồng thời thỏa mãn: một lượng rác chỉ có thể được nhận diện là hữu cơ hay vô cơ sau khi nó được nhận và phân loại; lượng rác chỉ có thể được xử lý sau khi nó được phân loại là hữu cơ hoặc vô cơ; chỉ sau khi một lượng rác được phân loại

và xử lý, hệ thống sẵn sàng nhận lượng rác khác để xử lý. Đối với hệ thống điều khiển dây truyền phân loại rác này, hai biến lôgic được dùng để mã hóa M1M2 (|X1|= 2|X2|= 2).

Hệ thống chủ / tớ (master / slave) (ký hiệu TC3) là một hệ thống được trình bày trong sách của Magee và Kramer [73]. Đây là một hệ thống tiêu biểu mà tiến trình “chủ” tạo tiến trình “tớ” để thực hiện một số nhiệm vụ như vào/ra và tiếp tục làm việc của nó. Sau đó, tiến trình chủ đồng bộ với tiến trình tớ để lấy kết quả. Hệ thống chứa hai thành phần M1M2. M1

(chủ - master) chứa bốn trạng thái: slave.start: tiến trình chủ tạo ra một tiến trình tớ; rotate1: tiến trình chủ làm việc của nó; slave.join: tiến trình chủ đồng bộ với tiến trình tớ để lấy kết quả; rotate2: tiến trình chủ làm việc của nó và sẵn sàng tạo ra tiến trình tớ mới. M2 (tớ - slave) có ba trạng thái:

slave.start: tiến trình tớ được khởi tạo; slave.rotate: tiến trình tớ làm việc của nó; slave.join: tiến trình chủ đồng bộ với tiến trình tớ để lấy kết quả.

Sau đó, tiến trình tớ sẵn sàng để được khởi tạo lại. Thuộc tính là toàn bộ các điều kiện sau đều cần được thỏa mãn: sau khi tiến trình chủ khởi tạo tiến trình tớ, nó có thể đợi chút ít thời gian trước khi nó làm việc của nó (rotate1); sau đó, nó có thể đồng bộ với tiến trình tớ để lấy kết quả; sau đó, tiến trình chủ có thể tiếp tục công việc của nó (rotate2) và sẵn sàng khởi tạo tiến trình tớ mới. Đối với hệ thống chủ / tớ này, hai biến lôgic được dùng để mã hóa các trạng thái của M1M2 (|X1|= 2|X2|= 2).

Kênh truyền dữ liệu đơn giản (ký hiệu TC4) là một ví dụ quen thuộc trong cộng đồng nghiên cứu được sử dụng trong nghiên cứu của Cobleigh và cộng sự [29]. Kênh này điều khiển quá trình nhận và truyền dữ liệu trên một kênh truyền dữ liệu. Kênh có hai thành phầnM1M2.M1 có ba trạng thái: in: kênh nhận một thông điệp; send: thông điệp được gửi đến đích;

ack: kênh sẵn sàng nhận một thông điệp khác; M2 có ba trạng thái: send: thông điệp được gửi đến đích; out: kênh phản hồi đến tiến trình quản lý;

ack: kênh sẵn sàng nhận một thông điệp khác. Thuộc tính an toàn là các điều kiện sau cần được đồng thời thỏa mãn: kênh chỉ có thể gửi một thông điệp sau khi nhận nó; kênh có thể cung cấp phản hồi cho tiến trình quản lý sau khi nó nhận và gửi một thông điệp; kênh sẵn sàng nhận thông điệp khác khi nó hoàn thành việc gửi thông điệp trước đó và cung cấp phản hồi

được dùng để mã hóa các trạng thái của M1M2 (|X1|= 2|X2|= 2).

Kênh truyền dữ liệu đơn giản - biến thể 1 (ký hiệu TC5) giống với kênh truyền dữ liệu đơn giản được sử dụng trong nghiên cứu của Cobleigh và cộng sự [29]. Tuy nhiên, ba biến lôgic được dùng để mã hóa các trạng thái của M1M2 (|X1|= 3|X2|= 3). Điều này là để kiểm tra sự ảnh hưởng của số lượng biến lôgic trong hệ thống chuyển trạng thái đến quá trình kiểm chứng. Trường hợp kiểm thử này cho thấy phương pháp đề xuất có thể được sử dụng để kiểm chứng các hệ thống phần mềm được biểu diễn bằng các hệ thống chuyển trạng thái được gán nhãn (LTS - Định nghĩa 2.1) có kích thước lớn nhất là kích thước thành phần1×kích thước thành phần2×(kích thước thuộc tính + 1) = |C1| × |C2| × |perr|= 23×23×(23+ 1) = 576 [58]. Khi kiểm chứng một LTS C có thỏa mãn thuộc tính an toàn p, một LTS lỗi, ký hiệu perr, được tạo ra. Trong đó, các khả năng vi phạm thuộc tính p được kiểm tra bằng cách kiểm tra xem trạng thái Π (trạng thái lỗi) có đến được hay không. perr của một thuộc tính p = hQ,Σp, δ, q0ihQ∪ {Π},Σp, δ0, q0i, với δ0 =δ∪ {(q, a,Π)|aΣp6∃q0Q: (q, a, q0)δ}.

Kênh truyền dữ liệu đơn giản - biến thể 2 (ký hiệu TC6) giống với kênh truyền dữ liệu đơn giản được sử dụng trong nghiên cứu của Cobleigh và cộng sự [29]. Tuy nhiên, bốn biến lôgic được dùng để mã hóa các trạng thái của M1M2 (|X1| = 4|X2| = 4). Điều này là để kiểm tra sự ảnh hưởng của số biến lôgic trong một hệ thống chuyển trạng thái đến quá trình kiểm chứng. Trường hợp kiểm thử này cho thấy phương pháp đề xuất có thể được dùng để kiểm chứng hệ thống phần mềm được đặc tả bằng LTS với số trạng thái lớn nhất là kích thước thành phần 1× kích thước thành phần 2 × (kích thước thuộc tính + 1) = |C1| × |C2| × |perr| = 24×24×(24+ 1) = 4352 [58].

Bảng 4.4 trình bày kết quả của thực nghiệm. Cột “Hệ thống”, “B”, |X1|, và

|X2|lần lượt chứa ký hiệu của các hệ thống áp dụng với “_0” nghĩa là phiên bản 0, giới hạn độ dài chuỗi, và kích thước của tập các biến lôgic của M1M2. Ví dụ, trong Bảng 4.4, “TC1_0” trong dòng 1 trình bày kết quả thực nghiệm cho phiên bản0của TC1 (hệ thống điều khiển dây truyền đóng gói kẹo), v.v. Để đơn giản và không mất tính tổng quát của phương pháp đề xuất, giá trị của B được chọn sao cho chuỗi dài nhất trong cả hai thành phần trong các hệ thống áp dụng

có thể bao phủ toàn bộ việc chuyển trạng thái giữa toàn bộ các trạng thái của chúng. Cột “EQ”, “I”, “T”, “Tgian(ms)”, và “Bnhớ(B)” lần lượt thể hiện số truy vấn ứng viên, số truy vấn thành viên cho hàm khởi tạo và hàm chuyển trạng thái, thời gian (tính bằng mili giây), và dung lượng bộ nhớ (tính bằng bytes) cần thiết để sinh giả định. |L(AO)||L(AN)| lần lượt là kích thước của ngôn ngữ của các giả định được sinh ra bởi thuật toán CBAG và thuật toán LWAG.

|L(AO)||L(AN)| được tính toán bằng cách đếm số lượng chuỗi trong |L(AO)|

|L(AN)| với độ dài giới hạn bởi số được cho trong cột “B” của Bảng 4.4.

Bảng 4.4: So sánh các phương pháp sinh giả định

Hệ thống Chung Thuật toán CBAG Thuật toán LWAG

B |X1||X2| EQ I T Tgian(ms) Bnhớ(B) |L(AO)| EQ I T Tgian(ms) Bnhớ(B) |L(AN)|

TC1_0 4 2 2 8 2 1 3,093 1,371,782 70 11 1 1 4,032 1,401,310 177 TC2_0 4 2 2 8 2 2 1,475 1,472,883 94 10 1 1 1,737 1,458,893 182 TC3_0 4 2 2 6 2 2 1,665 1,284,175 30 10 1 1 3,007 1,405,921 163 TC4_0 4 2 2 6 2 2 1,649 1,359,926 30 10 1 1 2,808 1,441,094 163 TC5_0 4 3 3 10 5 5 31,486 1,711,054 340 18 3 3 117,112 1,704,387 3,343 TC6_0 4 4 4 18 9 10 1,457,649 5,511,856 4,680 34 7 7 6,697,195 5,760,382 59,455

Từ kết quả thực nghiệm trình bày trong Bảng 4.4, có thể thấy rằng số truy vấn ứng viên, truy vấn thành viên cho hàm khởi tạo, truy vấn thành viên cho hàm chuyển trạng thái của hai thuật toán là khác nhau; các giả định được sinh bởi thuật toán LWAG là yếu hơn các giả định được sinh bởi thuật toán CBAG.

Tuy nhiên, thuật toán LWAG cần nhiều thời gian hơn để sinh các giả định vì thuật toán cần xử lý nhiều hơn (thuật toán cần xử lý nhiều câu truy vấn ứng viên hơn). Tuy nhiên, dung lượng bộ nhớ được sử dụng bởi hai thuật toán là tương đương.

4.6.2. Tính hiệu quả của các giả định được sinh ra trong ngữ cảnh tiến hóa

Dalam dokumen M c l c (Halaman 104-108)