Kiểm thử đột biến trong môi trường simulink matlab

27 363 0
Kiểm thử đột biến trong môi trường simulink matlab

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG - - LÊ THỊ MỸ HẠNH KIỂM THỬ ĐỘT BIẾN TRONG MÔI TRƯỜNG SIMULINK/MATLAB Chuyên ngành : KHOA HỌC MÁY TÍNH Mã số : 62 48 01 01 TĨM TẮT LUẬN ÁN TIẾN SĨ KỸ THUẬT Đà Nẵng, 10/2015 Cơng trình hồn thành tại: TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐẠI HỌC ĐÀ NẴNG Người hướng dẫn khoa học: PGS TS Nguyễn Thanh Bình PGS TS Đoàn Văn Ban Phản biện 1: GS TS Nguyễn Thanh Thủy Phản biện 2: PGS TS Huỳnh Quyết Thắng Phản biện 3: PGS TS Hoàng Hữu Hạnh Luận án bảo vệ trước Hội đồng chấm luận án cấp Đại học Đà Nẵng họp tại: Đại học Đà Nẵng – 41 Lê Duẫn – Thành phố Đà Nẵng vào hồi 14 00 ngày 28 tháng 11 năm 2015 Có thể tìm hiểu Luận án thư viện: - Thư viện Quốc gia, Hà Nội - Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng LỜI MỞ ĐẦU Kiểm thử phần mềm hoạt động đóng vai trò quan trọng để bảo đảm chất lượng phần mềm hoạt động mang tính sống cịn dự án sản xuất gia công phần mềm Với mục đích phát lỗi, kiểm thử phần mềm thường phải trải qua bước: tạo liệu thử, thực thi phần mềm liệu thử quan sát kết nhận Trong bước này, bước tạo liệu đóng vai trị quan trọng nhất, khơng thể tạo liệu từ miền vào chương trình, mà tạo liệu thử có khả phát lỗi cao Vấn đề đặt làm để đánh giá khả phát lỗi liệu thử? Kiểm thử đột biến [3] tiêu chuẩn nhằm tìm lỗi chương trình Tiêu chuẩn tạo phiên chương trình có chứa lỗi đơn giản sau tìm liệu thử để dấu hiệu lỗi Nếu tìm thấy liệu thử chất lượng làm lộ dấu hiệu tất phiên bị lỗi, tin tưởng vào tính đắn chương trình tăng Năm 1971, Lipton [75] đề xuất phương pháp kiểm thử đột biến, sau lĩnh vực đánh dấu đời phổ biến DeMillo, Lipton Sayward [34] Kỹ thuật đạt kết đáng kể Hiện nay, có nhiều cơng trình nghiên cứu phát triển khả ứng dụng làm cho kiểm thử đột biến trở thành kỹ thuật kiểm thử thực tế Mục tiêu kiểm thử phát lỗi giai đoạn sớm chi phí cho việc sửa lỗi tăng theo thời gian từ vị trí bắt đầu lỗi lúc phát Vì thay quan tâm đến việc kiểm thử mức mã nguồn, gần nhóm nghiên cứu đặc biệt quan tâm vấn đề kiểm thử giai đoạn đặc tả giai đoạn thiết kế kiển trúc Các mơ hình mức cao trở thành tiêu điểm nhiều nỗ lực nghiên cứu kiểm chứng phần mềm đại Simulink gói phần mềm để thực việc mơ hình hóa, mơ phỏng, phân tích thiết kế mức hệ thống hệ thống động Nhiều nhà thiết kế chọn Simulink để mơ hình hóa thiết kế sinh mã tự động từ mơ hình thiết kế Các mơ hình đơi xem xét cơng nghiệp thiết kế mức kiến trúc hệ thống phần mềm Simulink sử dụng rộng rãi thiết kế quy mô lớn cho hệ thống nhúng, kể điều khiển động Đặc trưng bật hệ thống độ phức tạp cần phải có tính tồn vẹn cao Vì vậy, quy trình kiểm chứng hợp lệ hóa cho hệ thống cần chặt chẽ Xuất phát từ tình hình thực tiễn trên, đề tài “Kiểm thử đột biến môi trường Simulink/Matlab” chọn làm nội dung luận án Tiến sỹ kỹ thuật nhằm đóng góp cho phát triển đưa vào ứng dụng thực tế nghành công nghiệp phần mềm lĩnh vực kiểm thử phần mềm nói chung kiểm thử đột biến nói riêng cụ thể lĩnh vực kiểm thử đột biến cho thiết kế - hướng hứa hẹn mang lại hiệu cao vấn đề đảm bảo chất lượng phần mềm -1- Mục tiêu, đối tượng phạm vi nghiên cứu Mục tiêu luận án nghiên cứu kỹ thuật kiểm thử đột biến, vấn đề đột biến thiết kế Trên sở đề xuất áp dụng kiểm thử đột biến để sinh đánh giá liệu thử mơ hình thiết kế mơi trường Simulink/Matlab Như vậy, đối tượng nghiên cứu luận án kỹ thuật kiểm thử đột biến môi trường Simulink/Matlab Xác định mục tiêu đối tượng nghiên cứu trên, luận án tập trung vào giải vấn đề sau:  Thứ nhất, luận án nghiên cứu tổng quan kiểm thử đột biến kỹ thuật kiểm thử đột biến; tình hình nghiên cứu ứng dụng kiểm thử đột biến nước giới  Thứ hai, luận án phân tích đặc trưng ngơn ngữ thiết kế mơ hình Simulink; xác định lớp lỗi mà người thiết kế thường phạm phải đề xuất toán tử đột biến cho Simulink; sử dụng giả thuyết lỗi đơn (tức thời điểm xảy lỗi) xét lỗi khối Simulink  Thứ ba, dựa phân tích đặc điểm hệ thống sinh thực thi đột biến, đề xuất giải pháp triển khai cho hệ thống sinh thực thi đột biến cho mơ hình Siumulink; Phân tích yếu tố ảnh hưởng đến chi phí thực thi đột biến từ đề xuất giải pháp để cải thiện chi phí áp dụng cho mơ hình Simulink  Thứ tư, tổng quan nghiên cứu sinh liệu thử công bố gần nghiên cứu, từ đề xuất giải pháp để sinh tối ưu liệu thử cách tự động dựa đột biến cho mơ hình Simulink Để đánh giá hiệu giải pháp đề xuất, luận án thiết lập tiến hành số thử nghiệm sinh đột biến đánh giá liệu thử sinh số mơ hình Simulink Các thử nghiệm tiến hành vài tham số khác nhau, so sánh, phân tích đánh giá kết thu để kiến nghị tham số phù hợp từ có định hướng phát triển cho luận án Nhiệm vụ nghiên cứu kết đạt 1) 2) 3) 4) 5) 6) Nhiệm vụ nghiên cứu tập trung vào vấn đề sau đây: Nghiên cứu tổng quan kiểm thử phần mềm nói chung kiểm thử đột biến nói riêng, kỹ thuật kiểm thử đột biến Tìm hiểu mơi trường Simulink/Matlab, đặc trưng ngơn ngữ thiết kế mơ hình Trên sở kết nghiên cứu, đề xuất toán tử đột biến (mutation operator) cho Simulink Đề xuất giải pháp tự động hóa hoạt động kiểm thử đột biến bao gồm sinh đột biến cách tự động sinh liệu thử cho mơ hình thiết kế mơi trường Simulink/Matlab Nghiên cứu đề xuất giải pháp cải thiện chi phí thực thi đột biến áp dụng cho thiết kế môi trường Simulink/Matlab Cuối cùng, vấn đề tự động sinh liệu thử phải thỏa mãn tiêu chuẩn độ phủ đột biến Các thuật tốn tìm kiếm tối ưu nghiên cứu đề xuất giải pháp để tối ưu liệu thử đạt độ phủ đột biến cao -2- Cấu trúc luận án Trên sở nội dung nghiên cứu để đạt mục tiêu đề đảm bảo tính logic chỉnh thể vấn đề nghiên cứu, phần mở đầu phần kết luận hướng phát triển, luận án đuợc cấu trúc gồm chương sau: Chương 1: Tổng quan kiểm thử đột biến Chương trình bày khái niệm kiểm thử phần mềm nói chung kiểm thử đột biến nói riêng; kỹ thuật ứng dụng kiểm thử đột biến tình hình nghiên cứu kỹ thuật kiểm thử nước giới Chương Bộ toán tử đột biến cho Simulink Chương giới thiệu tổng quan môi trường Simulink/Matlab, đặc trưng thành phần mơ hình thiết kế mơi trường Simulink/Matlab Trên sở phân tích đặc trưng mơ hình lỗi thường phạm phải thiết kế viên, luận án đề xuất tốn tử đột biến để áp dụng mơi trường Chương Tự động sinh thực thi đột biến Hạn chế kiểm thử đột biến chi phí cho việc sinh thực thi đột biến cao Một số kỹ thuật cải tiến chi phí thực thi nghiên cứu, phân tích từ đề xuất giải pháp nhằm tự động hóa hoạt động kiểm thử đột biến cải thiện chi phí hoạt động Chương trình bày giải pháp sinh thực thi đột biến tự động giải pháp cải thiện chi phí kiểm thử đột biến áp dụng cho mơ hình Simulink Chương Sinh liệu thử dựa đột biến Chương phân tích nghiên cứu gần vấn đề sinh liệu thử sinh liệu thử dựa đột biến, đề xuất sử dụng thuật tốn tìm kiếm tối ưu để tạo liệu thử hiệu Đóng góp Luận án  Trên sở phân tích đặc trưng ngơn ngữ thiết kế mơ hình Simulink lỗi phổ biến người thiết kế, luận án đề xuất gồm 13 toán tử đột biến (mutation operator) cho mơ hình Simulink  Giải pháp tự động hóa hoạt động sinh thực thi đột biến cho mơ hình Simulink đề xuất phát triển thành công cụ, gọi MuSimulink  Để giảm chi phí thực thi đột biến, luận án đề xuất giải pháp thực thi đột biến dựa thông dịch song song hóa việc thực thi đột biến, sử dụng công cụ Parallel Computing Toolbox (PCT) Matlab Việc thực thi song song cải thiện đáng kể chi phí thực thi đột biến  Kiểm thử đột biến phương pháp kiểm thử dựa lỗi nhằm tạo liệu thử hiệu quả, có khả phát lỗi cao Luận án đề xuất sử dụng thuật tốn tìm kiếm tối ưu để tạo liệu thử thỏa mãn tiêu chuẩn phủ đột biến Kết nghiên cứu luận án cho thấy áp dụng tiêu chuẩn phủ đột biến để sinh tối ưu liệu thử có chất lượng cho mơ hình Simulink khả thi Điều có ý nghĩa lĩnh vực kiểm thử phần mềm nói chung kiểm thử cho mơ hình Simulink nói riêng -3- TỔNG QUAN KIỂM THỬ ĐỘT BIẾN Giới thiệu Lý thuyết kiểm thử đột biến Khái niệm kiểm thử đột biến Trong thực kiểm thử đột biến, tạo phiên lỗi chương trình gốc cách chèn lỗi vào mã nguồn chương trình cần kiểm thử Mỗi phiên chứa lỗi gọi đột biến (mutant) Mỗi đột biến tạo thay đổi cú pháp chương trình gốc Mỗi thay đổi cú pháp luật hay gọi toán tử đột biến (mutation operator) Dựa tiêu chuẩn chất lượng đột biến, đột biến thực với liệu thử để xác định có đột biến thất bại (tức cung cấp đầu không cho đầu vào kiểm thử so với chương trình gốc) Thất bại nhiều, lớn liệu thử chất lượng Mục đích kiểm thử viên tạo liệu thử để cải tiến chất lượng liệu thử có Cơ sở kiểm thử đột biến Kiểm thử đột biến xây dựng dựa hai giả thuyết bản: giả thuyết “lập trình viên giỏi” (competent programmer hypothesis - CPH) [34], [3] giả thuyết “hiệu ứng liên kết” (coupling effect hypothesis - CEH) [34] Có nhiều cơng trình nghiên cứu lý thuyết nghiên cứu thực nghiệm khẳng định giả thuyết hiệu ứng liên kết thực tế [83], [89], [76] Quy trình kiểm thử đột biến Một số khái niệm 1.2.4.1 Toán tử đột biến Toán tử đột biến hay gọi luật đột biến luật áp dụng vào chương trình gốc để tạo phiên đột biến Nó việc thay toán tử toán tử khác, thay đổi tốn hạng biểu thức, xố tồn biểu thức, thay đổi câu lệnh… tạo cách thay đổi nhỏ cú pháp chương trình theo hướng mà lập trình viên thường phạm phải Các toán tử đột biến xây dựng dựa ngôn ngữ dùng để cài đặt chương trình kiểm thử 1.2.4.2 Đột biến tương đương Một cách hình thức, đột biến tương đương đột biến sống mà với liệu thử T  D (D, tập liệu thử cho P) xác định P P’ tương đương (P  P’) 1.2.4.3 Tỷ lệ đột biến Tỷ lệ đột biến (Mutation Score), ký hiệu MS, chương trình P liệu thử T tỷ lệ đột biến khơng tương đương (so với chương trình gốc) bị diệt liệu thử T, mô tả công thức [36] sau: MS(P, T )  D N E (1.1) đó, D: số đột biến bị diệt, N: tổng số đột biến, E: số đột biến tương đương Như vậy,  MS  hay  MS%  100 Mục tiêu kiểm thử đột biến xây dựng liệu thử cho diệt tất đột biến không tương đương hay đạt tỷ lệ đột biến cao -4- Một số vấn đề kiểm thử đột biến Kiểm thử đột biến phương pháp hiệu để đánh giá chất lượng liệu thử Tuy nhiên, kỹ thuật gặp phải số vấn đề khó khăn ngành cơng nghiệp phần mềm Các vấn đề chia thành hai nhóm: chi phí tính tốn - tốn nhiều thời gian công sức để thực kiểm thử đột biến; tự động hóa - để giảm cơng sức kiểm thử viên Một số kỹ thuật cải tiến hiệu kiểm thử đột biến Giảm chi phí tính tốn phân tích đột biến Tăng tự động hóa Vấn đề Oracle Ứng dụng kiểm thử đột biến Kết luận Nội dung chương trình bày vấn đề kiểm thử đột biến, kỹ thuật để cải tiến hiệu kiểm thử đột biến ứng dụng Các nghiên cứu liên quan đến cải tiến hiệu kiểm thử đột biến tổng hợp, phân tích đánh giá BỘ TOÁN TỬ ĐỘT BIẾN CHO SIMULINK Chương trình bày đặc trưng ngơn ngữ thiết kế mơ hình Simulink, vấn đề liên quan khả phát lỗi, lớp lỗi mà người thiết kế thường phạm phải đề xuất toán tử đột biến Các thử nghiệm tiến hành để đánh giá toán tử đột biến đề xuất Simulink đặc trưng ngôn ngữ thiết kế Simulink Bộ toán tử đột biến cho Simulink Kiến trúc lớp lỗi Kuhn [71] Kuhn [71] phát triển hệ thống phân cấp dựa điều kiện phát lớp lỗi Các lớp lỗi bao gồm:  Lỗi tham chiếu biến (VRF) - biến x thay biến y khác x  Lỗi phủ định biến (VNF) - biến x thay 𝑥  Lỗi phủ định biểu thức (ENF) - biểu thức p thay 𝑝  Lỗi tham chiếu toán tử - toán tử thay toán tử khác  Các toán tử quan hệ khơng xác - tốn tử quan hệ thay toán tử quan hệ khác  Lỗi thiếu mệnh đề - mệnh đề bị bỏ sót Các lớp lỗi Simulink Trong phần này, luận án trình bày số lớp lỗi đơn giản mà nhà thiết kế phạm phải thiết kế mơ hình Simulink, dựa lớp lỗi Kuhn [71] 2.2.2.1 Các lỗi kiểu liệu (Type Faults) 2.2.2.2 Các lỗi biến (Variable Faults) 2.2.2.3 Các lỗi (Constant Faults) 2.2.2.4 Các lỗi thời gian liên tục rời rạc (Continuous- and Discrete-time Faults) -5- 2.2.2.5 Các lỗi câu lệnh (Statement Faults) 2.2.2.6 Các lỗi biểu thức (Expression Faults) Bộ toán tử đột biến đề xuất Dựa hai giả thuyết “Hiệu ứng liên kết” “Lập trình viên giỏi”, cộng với nhầm lẫn gặp phải thiết kế/lập trình viên phân tích Mục 2.3.2, luận án đề xuất toán tử đột biến cho Simulink Để xác định toán tử đột biến cho Simulink, sử dụng nguyên lý sau, giới thiệu [121] Các loại đột biến cần mơ hình hóa lỗi tiềm Chỉ tạo đột biến đơn giản, mức Chỉ tạo đột biến cú pháp 2.2.3.1 Phân loại toán tử đột biến Đột biến kiểu (Type Mutation) Đột biến biến (Variable Mutation) Đột biến (Constant Mutation) Đột biến câu lệnh (Statement Mutation) Đột biến biểu thức (Expression Mutation) 2.2.3.2 Bộ toán tử đột biến Bảng 2.2 Các toán tử đột biến đề xuất cho Simulink Giải thích Ý nghĩa Toán tử TRO Types Replacement Operator Toán tử thay kiểu liệu VCO Variable Change Operator Toán tử thay đổi giá trị biến: lấy trị tuyệt đối, cộng, trừ, nhân, chia cho số VNO Variable Negation Operator Toán tử lấy phủ định biến (NOT) CCO Constant Change Operator Toán tử thay đổi cách cộng, trừ với giá trị CRO Constant Replacement Operator Toán tử thay hằng khác SCO Statement Change Operator Toán tử thay đổi câu lệnh SSO Statement Swap Operator Toán tử hoán đổi cổng khối switch DCO Delay Change Operator Toán tử thay đổi thời gian ROR Relational Op Repl Operator Toán tử thay toán tử quan hệ (=, = =, ~=) AOR Arithmetic Op Repl Operator Toán tử thay toán tử toán học (ADD, SUB, DIVIDE, MUL) ASR Arithmetic Sign Repl Operator Tốn tử thay kí hiệu toán học (+, -, *, /) LOR Logical Op Repl Operator Toán tử thay toán tử logic (AND, OR, XOR, NAND, NOR) BRO Block Removal Operator Toán tử khóa khối Một số thử nghiệm đánh giá toán tử đột biến đề xuất Tạo đột biến Bảng 2.4 Các mơ hình thử nghiệm Tên mơ hình Constant_Accel Motor_Model Số khối 10 Tiny 11 Check-Input Check-Input 11 14 Thử nghiệm tiến hành cho mô hình, trình bày Bảng 2.4 (mỗi mơ hình gồm khơng q 15 khối) Áp dụng 13 tốn tử đột biến Bảng 2.2, mơ hình đột biến tạo sau thực thi liệu thử Tùy theo độ phức tạp mơ hình áp dụng, số lượng đột biến sinh cho mơ hình khác Bảng 2.5 -6- thống kê số lượng đột biến loại toán tử tổng số đột biến sinh mơ hình Bảng 2.5 Số lượng đột biến sinh Tên mơ hình TRO CCO CRO SSO DCO LOR VNO VCO ROR ASR AOR SCO BRO Constant_Accel Motor_Model Tiny Quadratic_v2 Check-Input 67 64 69 87 87 12 14 14 5 0 2 0 0 0 0 2 55 70 85 75 90 0 10 10 10 16 10 15 13 3 0 4 10 11 12 15 Tổng cộng 162 178 213 227 247 Thực thi đột biến Với mơ hình, đột biến tạo thủ công tiến hành thực thi 03 liệu thử khác (được sinh ngẫu nhiên) Các kết trình bày Bảng từ 2.6 đến 2.10 tỷ lệ đột biến đạt mơ hình với liệu thử khác tương ứng Số đột biến sống/bị diệt loại tốn tử mơ hình thống kê Bảng 2.11 Bảng 2.6 Tỷ lệ đột biến liệu thử cho mơ hình Constant_Accel Bộ Số ca số đột biến Số đột biến Tỷ lệ liệu thử kiểm thử sống bị diệt đột biến (%) TS1 13 149 91.98 TS2 12 150 92.59 TS3 38 125 76.54 Bảng 2.7 Tỷ lệ đột biến liệu thử cho mơ hình Motor_Model Bộ Số ca số đột biến Số đột biến Tỷ lệ liệu thử kiểm thử sống bị diệt đột biến (%) TS1 169 94.94 TS2 169 94.94 TS3 170 96,51 Bảng 2.8 Tỷ lệ đột biến liệu thử cho mơ hình Tiny Bộ Số ca số đột biến Số đột biến Tỷ lệ liệu thử kiểm thử sống bị diệt đột biến (%) TS1 102 111 52.11 TS2 127 86 40.38 TS3 75 138 64.79 Bảng 2.9 Tỷ lệ đột biến liệu thử cho mơ hình Quaradtic_v2 Bộ Số ca số đột biến Số đột biến Tỷ lệ liệu thử kiểm thử sống bị diệt đột biến (%) TS1 110 117 51.54 TS2 106 121 53.30 TS3 126 101 44.49 -7- Bảng 2.10 Tỷ lệ đột biến liệu thử cho mơ hình Check_Input Bộ Số ca số đột biến Số đột biến Tỷ lệ liệu thử kiểm thử sống bị diệt đột biến (%) TS1 102 145 58.70 TS2 102 145 58.70 TS3 105 142 57.49 Bảng 2.11 Các đột biến bị diệt/còn sống loại đột biến mơ hình Tên mơ hình BD CS BD Motor_Model CS BD Tiny CS BD Quadratic-v2 CS BD CheckInput CS Constant_Accel TRO CCO CRO SSO DCO LOR VNO VCO ROR ASR AOR SCO BRO 59 56 56 13 26 61 15 72 12 0 10 4 0 5 0 0 2 0 0 0 0 0 0 0 0 0 0 2 51 70 39 46 42 33 76 14 16 0 10 0 14 13 10 0 3 0 0 0 4 10 10 13 Nhận xét Theo kết thử nghiệm, thấy hai toán tử TRO VCO sinh số lượng lớn (khoảng 40%) đột biến mơ hình Hầu hết đột biến TRO bị lỗi thực thi đột biến tương đương Một số tốn tử khác tùy theo mơ hình áp dụng mà có không tạo đột biến Các đột biến DCO gây lỗi không diệt Các phân tích cho thấy tốn tử TRO DCO không thực hiệu để đánh giá liệu thử Vì vậy, hai tốn tử tạm thời không xem xét áp dụng thử nghiệm sau luận án Kết luận Chương trình bày việc áp dụng kiểm thử đột biến cho Simulink Một gồm 13 toán tử đột biến cho Simulink đề xuất sở phân tích đặc trưng ngơn ngữ tình lỗi thường phạm phải nhà thiết kế làm việc với Simulink Các thử nghiệm tiến hành 05 mơ hình Simulink, áp dụng tốn tử đột biến đề xuất Qua phân tích, đánh giá số lượng đột biến tạo khả phát liệu thử, hai tốn tử TRO DCO khơng thực hiệu để đánh giá liệu thử với mơ hình thử nghiệm luận án Vì vậy, hai toán tử chưa xem xét áp dụng thử nghiệm sau luận án -8- Đầu vào: Tệp chứa liệu thử T Tập toán tử đột biến chọn thực thi O Danh sách đột biến M Đầu ra: Danh sách đột biến cịn sống/bị diệt Thuật tốn: Đọc từ tệp chứa liệu thử T foreach (testcase t in T) Thực thi mơ hình gốc P t if (P lỗi) thông báo lỗi kết thúc else ghi nhận kết ∆(P,t) endif foreach(đột biến sống m in M(O)) Tạo mơ hình đột biến P’ Thực thi P’trên t Ghi nhận kết ∆(P’, t) if (P’ lỗi) đánh dấu m bị diệt elseif (∆(P’, t) ≠ ∆(P, t)) đánh dấu m bị diệt else //m sống endif endfor endfor Ghi kết thực thi vào tệp kết hiển thị Hình 3.6 Thuật tốn thực thi đột biến Cải thiện chi phí thực thi đột biến Kỹ thuật song song Matlab Giải pháp song song thực thi đột biến sử dụng máy tính đa lõi Luận án sử dụng cơng cụ Parallel Computing Toolbox (PCT) Matlab để cài đặt cho giải pháp song song đề xuất Hình 3.8 thuật tốn đề xuất nhằm song song hóa việc thực thi đột biến Trong việc thơng dịch đột biến so sánh kết giao cho worker xử lý, worker chịu trách nhiệm phần tổng số đột biến Việc thông dịch so sánh kết thực thi đột biến nằm vòng lặp cho tất đột biến sống Đầu vào: Tệp chứa liệu thử T Tệp chứa liệu đột biến đã sinh D Tập toán tử đột biến chọn thực thi O Danh sách đột biến sống/bị diệt Đầu ra: Thuật toán: Đọc từ tệp chứa liệu thử T Tạo danh sách chứa tất cấu trúc đột biến M từ D và O Khởi động N worker W foreach (testcase t in T) Thực thi mô hình gốc P với t if (P lỗi) Thơng báo lỗi, đóng worker và kết thúc else ghi nhận kết ∆(P,t) endif -11- Gởi liệu thử t đến worker Gởi kết ∆(P,t)đến worker parallel foreach (đột biến cịn sống m in M(O)) Gởi thơng tin đột biến đến worker Tạo mơ hình đột biến P’ Thực thi P’ t Ghi nhận kết ∆(P’, t) if (P’ lỗi) đánh dấu m bị diệt vào danh sách M elseif (∆(P’,t)≠∆(P,t)) đánh dấu m bị diệt vào danh sách M else m sống endif Cập nhật số đột biến bị diệt end parallel for endfor Đóng N worker Ghi kết thực thi vào tệp kết hiển thị Hình 3.8 Thuật tốn song song việc thực thi đột biến Giải pháp song song việc thực thi đột biến nhiều máy Giải pháp thực thi đột biến song song đươc mở rộng hệ thống gồm nhiều máy tính, sử dụng thư viện MDCS Matlab MDCS cho phép cấu hình matlabpool gồm nhiều worker làm việc nhiều máy tính kết nối với thành cụm Luận án áp dụng thuật toán thực thi đột biến song song Hình 3.8 matlabpool sử dụng MDCS Kết thử nghiệm đánh giá Bảng 3.2 Kết sinh đột biến Số đột biến CCO CRO SSO LOR VNO VCO ROR ASR AOR SCO BRO Tổng số Constant_Accel 0 55 16 95 Motor_Model 12 0 70 10 10 110 Quadratic-v2 14 2 75 10 13 12 140 Tiny 85 10 15 11 144 CheckInputs 14 2 90 10 15 154 Tên mơ hình Thử nghiệm tiến hành sinh đột biến cho 05 mơ hình (chi tiết mơ hình trình bày Phụ lục B), áp dụng 11 toán tử đột biến Bảng 2.2, bỏ qua hai toán tử đột biến TRO DCO Bảng 3.2 thống kê số lượng đột biến sinh theo loại toán tử mơ hình Dữ liệu thử Với mơ hình chọn để sinh đột biến, 20 liệu thử sinh ngẫu nhiên Trong trình thực thi đột biến, liệu thử diệt đột biến đánh dấu trạng thái (có diệt đột biến) Tỷ lệ đột biến tính cho liệu thử dựa số đột biến bị diệt tổng số đột biến, chưa trừ số đột biến tương đương có mơ hình Kết sinh liệu thử thực thi đột biến trình bày Bảng 3.3 -12- Bảng 3.3 Kết thực thi đột biến Tên mơ hình Số đột biến Constant_Accel Motor_Model Quadratic-v2 Tiny CheckInputs 95 110 140 144 154 Số liệu thử diệt đột biến 2/20 3/20 8/20 3/20 3/20 Số đột biến Tỷ lệ đột biến bị diệt (%) 91 95.79 100 90.91 89 63.57 120 83.33 130 84.42 Thực thi đột biến song song Để đánh giá giải pháp song song hóa việc thực thi đột biến sử dụng PCT MDCS Matlab, hai trường hợp thử nghiệm triển khai Thử nghiệm A triển khai máy tính đơn với cấu hình CPU Intel Xeon E5520 2.27 GHz với GB RAM, chạy hệ điều hành Windows Server 2008 Máy tính có 02 vi xử lý vi xử lý gồm có 04 nhân, cấu hình gồm 08 worker Với thử nghiệm B, chiến lược song song hóa việc thực thi đột biến mở rộng nhiều máy sử dụng MDCS Matlab, mơi trường thử nghiệm cấu hình gồm 04 máy tính đồng với CPU 2.4 GHz Intel Core Quad CPU Q6600, GB RAM, chạy hệ điều hành Windows Trường hợp thử nghiệm cấu hình 16 worker làm việc 04 máy tính, máy gồm 04 worker Bảng 3.4 Kết thực thi song song Tên mơ hình CheckInputs Quadratic_v1 Quadratic_v2 RandMdl_v2 SimpSw SmokeDetector Tiny CalcStartProgress Số đột biến 154 161 140 188 92 321 144 458 Số đột biến bị diệt 130 129 89 138 85 160 120 183 Thời gian thực thi (s) Tỷ lệ đột biến (%) Tuần tự 83.77 90.43 63.57 73.40 92.39 49.84 83.33 39.96 2303.20 636.94 976.52 1141.18 263.16 2685.83 490.74 4752.54 Song song Song song (A) (B) 278.5 173.2 210.7 201.2 153.2 353.3 190.3 511.9 174.99 119.48 133.21 125.76 112.45 187.88 126.87 340.67 Bảng 3.4 liệt kê mơ hình sử dụng thử nghiệm này, số đột biến mơ hình, số đột biến bị diệt, tỷ lệ độ biến tương ứng thời gian thực thi đột biến 03 trường hợp: tuần tự, song song máy (A) song song 04 máy sử dụng MDCS (B) Thời gian thực thi đột biến tổng hợp Bảng 3.4, với mơ hình thời gian trung bình theo giây 10 lần thực thi liệu thử nhiều thời điểm khác Sử dụng chiến lược song song giúp tiết kiệm thời gian thực 92.83% (từ 4752,54 đến 340.67s) Hình 3.9 biểu đồ thể tốc độ (Speedup1) đạt 02 trường hợp: thử nghiệm A (08 worker máy đơn) thử nghiệm B (16 worker làm việc 04 máy đơn) Speedup cho n worker định nghĩa thời gian thực thi worker chia cho thời gian thực thi song song n worker Speedup cho biết tiết kiệm thời gian thực thi -13- 16 Thử nghiệm A - worker Thử nghiệm B - 16 worker 14 12 10 CheckInputs Quadratic_v1 Quadratic_v2 RandMdl_v2 SimpSw SmokeDetector Tiny CalcStartProgress Hình 3.9 Tốc độ thực thi đột biến sử dụng worker (A) 16 worker (B) Quan sát kết Hình 3.9 Bảng 3.4, rõ ràng tốc độ thực thi đột biến cải thiện thực thi song song Nhưng kết cho thấy, mơ hình nhỏ có đột biến tốc độ cải thiện không tốt hệ thống lớn Điều mơ hình nhỏ chi phí truyền thơng cao so với chi phí thực thi, phần xử lý chương trình lần gởi ca kiểm thử đến tất worker, vài chương trình nhỏ khơng u cầu nhiều thời gian cho việc thông dịch đột biến Nhận xét Một vấn đề quan trọng với kiểm thử đột biến chi phí kỹ thuật Tự động hóa hoạt động kiểm thử đột biến giúp cải thiện chi phí cho kỹ thuật Tuy nhiên, hoạt động kiểm thử đột biến việc thực thi đột biến thực lặp lặp lại cho đột biến ca kiểm thử Chi phí hoạt động đáng kể so với chi phí sinh đột biến Song song hóa việc thực thi đột biến giải pháp hiệu để giảm chi phí Các kết thử nghiệm cho thấy giải pháp song song đề xuất tiết kiệm lớn chi phí thực thi đột biến Tuy nhiên, kết thử nghiệm cho thấy mơ hình nhỏ, có tương đối đột biến, tốc độ khơng tốt mơ hình lớn Điều với mơ hình nhỏ chi phí giao tiếp cao so với chi phí thực thi Căn vào kết này, kết luận việc kiểm thử nên thực chương trình nhỏ, thực thi song song chương trình có kích thước lớn địi hỏi nhiều thời gian thực thi Kết luận Nội dung trình bày Chương đề xuất giải pháp sinh thực thi đột biến cách tự động cho mô hình Simulink Trên sở giải pháp đề xuất, cài đặt cơng cụ MuSimulink Để cải thiện chi phí thực thi đột biến luận án đề xuất giải pháp song song hóa việc thực thi đột biến Giải pháp tính tốn song song cài đặt tiến hành thử nghiệm số mơ hình từ đơn giản đến phức tạp cho kết tốt Tuy nhiên, giải pháp tiến hành máy tính có hỗ trợ đa lõi sử dụng công cụ PCT MDCS Matlab Việc phân chia cơng việc cho worker thực hồn tồn cơng cụ hỗ trợ Cơng việc nghiên cứu cải tiến giải pháp song song hóa thực thi đột biến triển khai song song nhiều máy -14- SINH DỮ LIỆU THỬ DỰA TRÊN ĐỘT BIẾN Giới thiệu Trong chương này, luận án đề xuất giải pháp triển khai cài đặt việc sinh liệu thử tự động dựa đột biến cho mơ hình Simulink, sử dụng thuật tốn tìm kiếm tối ưu nhằm cải thiện chất lượng liệu thử hướng đến việc phát nhiều đột biến Sinh liệu thử dựa đột biến cho Simulink Để áp dụng sinh liệu thử dựa tiêu chuẩn phủ đột biến cho mơ hình Simulink, luận án đề xuất phương pháp sinh liệu thử động sử dụng thuật tốn tìm kiếm tối ưu Trong đó, liệu thử sinh cách ngẫu nhiên dựa bảng đặc tả miền giá trị liệu đầu vào cho biến khối Inport mơ hình Sau đó, liệu thử tối ưu hướng đến diệt nhiều đột biến Áp dụng thuật tốn di truyền để sinh liệu thử Hình 4.1 trình bày giải pháp áp dụng thuật toán di truyền [59] để sinh tập liệu thử cho mơ hình Simulink Đầu vào: n (số gen cá thể), m (số cá thể), G (số lần lặp tối đa), CrossoverProb (xác suất lai ghép), MutationProb (xác suất đột biến) Đầu ra: Cá thể tốt quần thể Thuật toán: NumberOfGeneration := 0; //biến đếm số bước lặp InitPopulation; //Khởi tạo quần thể ban đầu while (NumberOfGeneration < G) InitChildPopulation; // Tạo quần thể rỗng CalculateFitness; //Tính độ thích nghi cá thể quần thể Lấy cá thể tốt quần thể thêm vào quần thể for i from to m/2 SelectParent; //Chọn cặp cá thể có độ thích nghi tốt làm cha mẹ Crossover; //Lai ghép cặp cá thể chọn với xác suất cho trước Mutation; //Đột biến hai cá thể với xác suất cho trước Thêm hai cá thể sinh vào quần thể end for ReplacePopulation; //Thay quần thể quần thể tiến hóa NumberOfGeneration = NumberOfGeneration + 1; end while Trả cá thể tốt Hình 4.1 Áp dụng thuật toán di truyền cho toán sinh liệu thử 4.2.1.1 Biểu diễn cá thể GA Mỗi cá thể biểu diễn tập {Ti1, Ti2, Ti3, …, Tin} Tij liệu thử thứ j (j=1 n) cá thể thứ i (i=1 m) quần thể 4.2.1.2 Các phép toán di truyền 4.2.1.3 Đánh giá độ thích nghi cá thể Việc đánh giá độ thích nghi cá thể tính tốn dựa tổng số đột biến bị diệt cá thể Trong cá thể biểu diễn tập liệu thử -15- Áp dụng thuật toán luyện kim 4.2.2.1 Hàm chi phí thuật tốn mơ luyện kim Để đánh giá chất lượng tập liệu thử sinh ra, chúng tơi xây dựng hàm chi phí f = – Mutation Score, Mutation Score tỉ lệ đột biến (số đột biến bị diệt tập liệu thử tổng số đột biến) 4.2.2.2 Thuật tốn mơ luyện kim Hình 4.4 trình bày việc áp dụng thuật tốn mơ luyện kim [68] sinh tập liệu thử cho mô hình Simulink dựa kiểm thử đột biến Thuật tốn tìm kiếm lời giải có hàm chi phí f nhỏ Đầu vào: Hàm giảm nhiệt độ α Nhiệt độ ban đầu t0 > Số lần lặp tối đa: numIteration Số liệu thử tập lời giải: numTestCase Đầu ra: bestSolution: Tập liệu thử tốt Thuật toán: t = t0 nhiệt độ ban đầu khởi tạo bestSolution = currentSolution = Tập liệu thử sinh ngẫu nhiên Thực thi đột biến tập liệu thử bestSolution currentSolution để tính tỷ lệ đột biến Lặp numIteration lần: - Đột biến số liệu thử currentSolution cách thay liệu thử bị đột biến liệu thử ngẫu nhiên để tạo tập newSolution - Thực thi đột biến tập liệu thử newSolution để tính tỷ lệ đột biến - if ( f (newSolution) == ) bestSolution = newSolution break end if - δ = f (newSolution) – f (currentSolution) - if (δ ≤ 0) then currentSolution = newSolution else Sinh số ngẫu nhiên x đoạn [0, 1] if (𝑥 < 𝑒 −𝛿/𝑡 ) then currentSolution = newSolution end if end if - if (Fitness (currentSolution) > Fitness (bestSolution)) then bestSolution = currentSolution end if -t = t * α Trả bestSolution Hình 4.4 Áp dụng thuật tốn mơ phỏng luyện kim cho tốn sinh liệu thử Trong thuật toán SA này, hàm Fitness(S) sử dụng để tính giá trị thích nghi tập liệu thử S, số đột biến bị diệt S Kết thúc thuật toán, bestSolution trả tập liệu thử tốt cho mô hình Simulink -16- Áp dụng thuật tốn chọn lọc vơ tính để sinh liệu thử 4.2.3.1 Hệ miễn dịch nhân tạo thuật tốn chọn lọc vơ tính 4.2.3.2 Ánh xạ hệ thống miễn dịch nhân tạo và kiểm thử đột biến Bảng 4.1 Ánh xạ hệ miễn dịch nhân tạo kiểm thử đột biến Hệ miễn dịch Tế bào B Kháng nguyên Kháng thể Ái lực Chọn lọc vơ tính Các tế bào nhớ Kiểm thử đột biến Mơ hình cần kiểm thử Đột biến Dữ liệu thử Tỷ lệ đột biến Tiến hóa liệu thử Tập nhớ lưu liệu thử diệt thêm đột biến chưa bị diệt 4.2.3.3 Thuật tốn chọn lọc vơ tính cho sinh liệu thử Luận án áp dụng thuật toán CLONALG [4] với số thay đổi để tiến hóa tự động tập liệu thử khởi tạo sử dụng tỷ lệ đột biến làm tiêu chuẩn để đo chất lượng Chi tiết thuật tốn trình bày Hình 4.5 Đầu vào: - numGen: Số lần lặp thực chọn lọc vô tính - n: kích thước quần thể - selectionSize: số cá thể lựa chọn để vào chọn lọc vơ tính - randomPopSize: số kháng thể sinh ngẫu nhiên - cloneRate: tỉ lệ chép kháng thể Đầu ra: Tập kháng thể có khả diệt đột biến mơ hình Simulink: M Thuật tốn: 10 11 12 13 14 15 16 17 18 19 20 21 22 population = CreateRandomPopulation (n) CalAffinity (population) M=∅ AddToMemory (population, M) i=0 while (i < numGen) populationSelect = Select (population, selectionSize) populationClones = Clone (populationSelect, cloneRate) foreach (ad in populationClones) HyperMutate (ad, - GetAffinity(ad)) end foreach CalAffinity (populationClones) AddToMemory (populationClones, M) populationNew = Combine (population, populationClones) population = Select (populationNew, n) populationRandom = CreateRandomPopulation (randomPopSize) CalAffinity (populationRandom) AddToMemory (populationRandom, M) Replace (population, populationRandom) ++i end while return M Hình 4.5 Thuật tốn chọn lọc vơ tính cho tốn sinh liệu thử -17- 4.2.3.4 Tối ưu hóa tập liệu thử Hình 4.7 trình bày thuật tốn để tối ưu tập liệu thử kết thuật tốn chọn lọc vơ tính Đầu vào: - T: Tập liệu thử nhớ chưa tối ưu, - N: Số liệu thử T - A: Ma trận logic trình bày liệu thử ith có diệt đột biến jth Đầu ra: T: Tập liệu thử nhớ tối ưu Thuật toán: S = ∅ // S sử dụng để dánh dấu số liệu thử giữ lại foreach (dữ liệu thử ith in T) - Đặt M tập chứa số đột biến bị diệt liệu thử thứ ith - Loại bỏ liệu thử thứ ith khỏi tập nhớ T hai điều kiện sau thỏa mãn ∀j ∈ 𝑀: + ∃k ∈ S: Akj = + ∃k ∈ [1, N], k > 𝑖: Akj = - Nếu liệu thử thứ ith không bị loại bỏ, i thêm vào S endfor return T Hình 4.7 Tối ưu tập liệu thử thuật tốn chọn lọc vơ tính Kết thử nghiệm đánh giá Sau cài đặt thuật toán sinh liệu thử đề xuất mục 4.2 tích hợp chức sinh liệu thử vào công cụ MuSimulink, thử nghiệm triển khai cho số mơ hình cụ thể máy tính cấu hình 2.27 GHz Intel Xeon E5520 CPU GB nhớ chạy hệ điều hành Windows Server 2008 Bảng 4.2, 4.3, 4.4 mô tả giá trị tham số tương ứng cho thuật toán di truyền GA, thuật toán luyện kim SA hệ miễn dịch nhân tạo AIS thử nghiệm mơ hình Mỗi thuật tốn cấu hình tham số để sinh liệu thử tương ứng áp dụng mơ hình Bảng 4.2 Các tham số cấu hình cho GA Bộ thử Số gen 15 15 15 20 Số cá thể 20 30 40 50 Số hệ 20 20 20 30 Tỉ lệ lai 0.9 0.9 0.9 0.9 Tỉ lệ đột biến 0.5 0.5 0.5 0.5 Bảng 4.3 Các tham số cấu hình cho SA Bộ thử Α 0.95 0.95 0.95 0.95 T 60000 90000 100000 200000 Số lần lặp 400 600 800 1500 Bảng 4.4 Các tham số cấu hình cho AIS Bộ thử numIterations 20 20 20 30 n 300 450 600 1000 numSelectedInd randomPopSize numClones 15 15 15 20 20 20 30 30 30 40 40 40 -18- Kết thử nghiệm Bảng 4.5 mơ tả tóm tắt số khối số liệu vào mơ hình Simulink sử dụng, số đột biến sinh tự động cho mơ hình thử nghiệm Các Bảng 4.6, 4.7, 4.8, 4.9 4.10 trình bày kết sinh liệu thử cho mơ hình SmplSw, Quadratic_v1, RandMdl, Tiny Quadratic_v2 sử dụng thuật toán di truyền (GA), mô luyện kim (SA) miễn dịch nhân tạo (AIS) Bảng 4.5 Các mơ hình Simulink thử nghiệm Mơ hình Số khối Số liệu vào Số đột biến SmplSw 92 Quadratic_v1 15 161 RandMdl 14 188 Tiny 15 144 Quadratic_v2 16 140 Bảng 4.6 Kết sinh liệu thử cho mơ hình SmplSw AIS GA SA Bộ thử Tỉ lệ Tỉ lệ Tỉ lệ Thời gian (s) Thời gian (s) Thời gian (s) đột biến (%) đột biến (%) đột biến (%) 96.74 956.4 94.57 4655.6 93.48 4267.7 96.74 1315.9 96.74 7533.1 95.65 6777.7 96.74 1901.5 93.48 9605.7 93.48 8950.9 96.74 3626.3 94.57 23847.3 95.65 21830.5 Bộ thử Bảng 4.7 Kết sinh liệu thử cho mơ hình Quadratic_v1 AIS GA SA Tỉ lệ Tỉ lệ Tỉ lệ Thời gian (s) Thời gian (s) Thời gian (s) đột biến (%) đột biến (%) đột biến (%) 88.82 1514.3 86.34 5551.5 86.34 4910.5 88.82 2037.2 86.34 8760.8 86.34 8050.1 88.82 2992.7 83.85 11679.2 86.34 10135.3 88.82 5629.1 86.34 27798.9 86.34 25478.8 Bảng 4.8 Kết sinh liệu thử cho mơ hình RandMdl AIS GA SA Bộ thử Tỉ lệ Tỉ lệ Tỉ lệ Thời gian (s) Thời gian (s) Thời gian (s) đột biến (%) đột biến (%) đột biến (%) 90.43 1639.2 85.64 6380.8 86.70 5564.8 92.55 2240.7 85.64 10015.9 88.30 9805.7 93.62 3255.7 86.17 14167.2 87.77 12985.6 6106.1 85.64 34916.9 88.30 32131.2 94.68 Bảng 4.9 Kết sinh liệu thử cho mơ hình Tiny AIS GA SA Bộ thử Tỉ lệ Tỉ lệ Tỉ lệ Thời gian (s) Thời gian (s) Thời gian (s) đột biến (%) đột biến (%) đột biến (%) 86.81 90.97 90.97 93.06 1412.1 2005.4 2917.3 5465.1 84.03 84.03 85.42 86.81 5946.1 8797.4 11910.3 26908.9 -19- 84.72 86.81 86.81 88.19 4762.8 8104.3 10406.7 24369.5 Bảng 4.10 Kết sinh liệu thử cho mơ hình Quadratic_v2 AIS GA SA Bộ thử Tỉ lệ Tỉ lệ Tỉ lệ Thời gian (s) Thời gian (s) Thời gian (s) đột biến (%) đột biến (%) đột biến (%) 75.00 2956.9 75.00 9443.6 71.53 9065.7 77.08 4151.8 75.00 16810.6 73.61 15592.3 77.08 6026.1 75.00 21957.2 72.92 20584.4 79.17 11312.4 77.08 47223.2 72.92 45639.7 Các kết thử nghiệm thu cho thấy thuật toán AIS ổn định thu tỷ lệ đột biến bị diệt cao so với phương pháp GA SA Kết cho thấy phương pháp AIS hứa hẹn tỷ lệ đột biến bị diệt chi phí tính tốn Thuật tốn GA vượt qua thuật toán SA số đột biến bị diệt hai mơ hình SmplSw Quadratic_v2 lại cho kết kém SA ba mơ hình thử nghiệm lại 100 AIS SA 80 GA 60 40 20 SmplSw Quadratic_v1 RandMdl Tiny Quadratic_v2 Hình 4.8 Biểu đờ so sánh thời gian thực thi thuật toán (đơn vị %) Nếu lấy thời gian thực thi thuật toán di truyền làm gốc so sánh với hai thuật tốn cịn lại kết biểu diễn dạng biểu đồ Hình 4.8 Từ biểu đồ nhận thấy thời gian sinh liệu thử thuật toán AIS nhanh lần thuật toán di truyền GA nhanh thuật toán luyện kim SA 4.5 lần Sở dĩ thời gian thực thi thuật toán AIS thấp nhiều đặc trưng thuật tốn tham số cấu hình thuật tốn làm cho số liệu thử cần thực thi đột biến thuật tốn AIS thấp hai thuật tốn cịn lại Bảng 4.11 Kết thử nghiệm theo giá trị ngưỡng mơ hình Tiny AIS Ngưỡng Số liệu Số Số liệu tỉ lệ đột biến MS Thời gian thử tối đa liệu thử thử diệt (MS) (%) (%) (s) sinh đột biến 88 93 94 10000 10000 10000 88.89 460 93.06 1528 93.06 10000 6 MS (%) Sinh ngẫu nhiên Số Số liệu Thời gian liệu thử thử diệt (s) sinh đột biến 1026.07 88.89 2050 3701.78 93.06 4821 25240.18 93.06 10000 13 15 15 2099.90 4516.81 9389.68 Để so sánh hiệu việc sinh liệu thử sử dụng thuật toán AIS so với việc sinh ngẫu nhiên, thử nghiệm tiến hành hai mơ hình Tiny Quadractic_v2 với bảng đặc tả miền liệu vào Với mơ hình, thiết lập mức ngưỡng cho tỷ lệ đột biến số liệu thử tối đa sinh Bảng 4.11, 4.12 mô tả kết thời gian trung bình 10 lần thử nghiệm sinh liệu thử theo hai cách tiếp cận -20- ngẫu nhiên AIS hai mơ hình Tiny Quadratic_v2 Trong thử nghiệm này, trường hợp thứ ba hai mơ hình, với số liệu thử sinh ra, thời gian thực theo AIS cao so với phương pháp ngẫu nhiên Bảng 4.12 Kết thử nghiệm theo giá trị ngưỡng mô hình Quadratic_v2 AIS Ngưỡng Số Số Số liệu thử tỉ lệ đột biến liệu thử MS Thời gian liệu thử diệt (MS) (%) tối đa (%) (s) sinh đột biến 80 82 85 10000 80.71 924 10000 82.14 1308 15000 82.14 15000 MS (%) Sinh ngẫu nhiên Số Số liệu Thời gian liệu thử thử diệt (s) sinh đột biến 4836.14 71.57 10000 6911.42 70.29 10000 76065.10 71.71 15000 11 12 11 20182.85 19484.31 31877.12 Thuật toán lai di truyền miễn dịch nhân tạo (HAIGA - Hybrid Artificial Immune Genetic Algorithm) 4.3.2.1 Đề xuất thuật toán Input: numGen: Số hệ di truyền, popSize: kích thước quần thể, muRate: xác suất đột biến cá thể Output: M: Tập liệu thử có khả diệt đột biến mơ hình Simulink Thuật tốn: population = CreateRandomPopulation (popSize); M = ∅; //tập nhớ chứa cá thể tốt CalculateFitness; //Tính độ thích nghi cá thể quần thể AddToMemory (population, M); //lưu cá thể tốt vào nhớ NumberOfGeneration = 0; //biến đếm số bước lặp while (NumberOfGeneration < numGen) popChild = ∅; // Tạo quần thể rỗng sizepop = 0; while (sizepop

Ngày đăng: 30/08/2016, 11:31

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan