Luận văn Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm

Trong vài thập niên gần đây, cùng với sự xuất hiện của máy tính, các phần mềm hỗ trợ xử lý công việc cho người sử dụng cũng gia tăng theo cả về số lượng cũng như chất lượng. Trong công việc hằng ngày, hầu như ai cũng dựa vào máy tính để gia tăng hiệu suất công việc. Nhu cầu người sử dụng ngày càng tăng cao, đòi hỏi công nghệ và các phần mềm phục vụ cho con người cũng phát triển không ngừng

pdf94 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2384 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1 như sau: function Vidu4_1_1 lb=[0 0 0]; ub=[]; x0=[0;0;0]; [x,fval] = fmincon(@myfun,x0,[],[],[],[],lb,ub,@fun) function f=myfun(x) f = (x(1)-3)^2+(x(2)-2)^2; Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 52 end function [c, ceq]=fun(x) c(1)=x(1)^2-x(2)-3; c(2)=x(2)^2-1; ceq=[]; end end Ta thu được kết quả như sau: x = (2.0000,1.0000), và hàm mục tiêu đạt giá trị fval = 2.0000. Trùng với kết quả đạt được trong ví dụ 4.1.1. 6.2.3. Bài toán trong ví dụ 4.3.1 Ta có thể xây dựng một chương trình giải bài toán quy hoạch phi tuyến của hàm nhiều biến trong Matlab cho bài toán trong ví dụ 4.3.1 như sau: function Vidu4_3_2 A=[-1 0 0;0 -1 0;0 0 -1]; b=[0;0;0]; x0=[0;0;0]; [x,fval,exitflag]=fmincon(@myfun,x0,A,b) function f=myfun(x) f = 3*x(1)^2+x(2)^2+x(3)^2-2*x(1)*x(2)-2*x(1)*x(3)-2*x(1); end end Ta thu được kết quả như sau: x = 1.0000 1.0000 1.0000, và hàm mục tiêu đạt giá trị fval = -1.0000. Trùng với kết quả đạt được trong ví dụ 4.3.1. 6.2.4. Bài toán trong ví dụ 4.3.4 Ta xây dựng chương trình cho ví dụ 4.3.4 như sau function Vidu4_3_4 A=[1 1 2]; b=[16]; Aeq=[1 1 0]; beq=[3]; lb=[0 0 0]; ub=[]; x0=[0;0;0]; [x,fval] = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@fun) function f=myfun(x) f = 2*x(1)^2+x(2)^2+0.2*x(3)^2+x(1)*x(3)-x(1)*x(2)+x(1)-0.5*x(3); end Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 53 function [c, ceq]=fun(x) c=x(1)^2+x(2)^2-x(3); ceq=[]; end end Sau khi chạy chương trình ta thu được nghiệm của bài toán: x =(1.0000, 2.0000, 5.0000) và hàm mục tiêu đạt giá trị fval = 12.5000. Kết quả này trùng với kết quả đạt được trong ví dụ 4.3.4. Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 54 6.2.5. Bài toán cho một phần mềm gồm có 6 module Như đã trình bày trong ví dụ 5.1 và 5.2, trong phần này sẽ chạy phần mềm có 6 module, ta thu được các kết quả sau: Đối với bài toán A: B B’ 2221 1211 yy yy ][ 63 xx … ][ 53 rr… Độ tin cậy tối ưu ( 6r ) 25 12 1010 [2, 4, 4, 3] 0.5300, 0.5725, 0.3985 0.1183 26 13 0110 2, 4, 4, 3 0.5300, 0.5725, 0.3985 0.1521 30 14 0101 [3.3822, 5.6178, 4, 3] 0.6318, 0.7285, 0.5537 0.2519 35 14 0101 [5.0354, 6.9367, 4.8520, 4.1759] 0.7093, 0.7988,0.6362 0.3491 40 14 0101 [6.1630, 7.9788, 6.3025, 5.5557] 0.7093, 0.7988, 0.6362 0.4267 45 14 0101 [7.0692, 9.0706, 7.9018, 6.9584] 0.7093, 0.7988, 0.6362 0.4863 50 14 0101 [8.9192, 9.8961, 9.2542, 7.9305] 0.7924, 0.8690 0.7812 0.5317 55 14 0101 [10.186, 10.8559, 10.8019, 9.1562] 0.8043, 0.8789 0.8045 0.5639 60 14 0101 [11.4559, 11.8187, 12.3789, 10.3465] 0.8124, 0.8856, 0.8206 0.5868 80 14 0101 [16.6108, 15.6124, 18.6015, 15.1754] 0.8263, 0.8969, 0.8476 0.6270 100 14 0101 [16.0927, 30.7139, 23.2710, 15.9224] 0.8256, 0.9000, 0.8536 0.6317 150 14 0101 [35.6548, 65.0458, 16.9591, 18.3404] 0.8300, 0.9000, 0.8483 0.6324 200 14 0101 [49.2676, 89.9183, 22.2423, 24.5718] 0.8300, 0.9000, 0.8532 0.6372 Bảng 6.1: Kết quả chạy phần mềm có 6 module cho bài toán A Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 55 Đối với bài toán B: Độ tin cậy phần mềm ( 6r ) B’ 2221 1211 yy yy ][ 53 rr… ][ 63 xx … Tổng chi phí (B) 0.1183 12 1010 [0.5300, 0.5727, 0.3986] [2.0000, 4.0013, 4.0000, 3.0000] 25.0013 0.2 12 1010 [0.6687, 0.7621, 0.5304,] [4.0674, 6.1620, 4.0000, 3.0947] 29.3241 0.25 13 0110 [0.6608, 0.7550, 0.5255] [3.9086, 6.0367, 4.0000, 3.0000] 29.9453 0.3 14 0101 [0.6847, 0.7764, 0.5901] [4.4172, 6.4370, 4.0000, 3.4445] 32.2987 0.35 14 0101 [0.7127, 0.8011, 0.6355] [5.1295, 6.9932, 4.7705, 4.1570] 35.0502 0.4 14 0101 [0.7372, 0.8224, 0.6787] [5.9117, 7.5989, 5.6860, 4.9391 38.1356 0.45 14 0101 [0.7596, 0.8415, 0.7193] [6.8300, 8.3047, 6.7667, 5.8568] 41.7582 0.5 14 0101 [0.7801, 0.8588, 0.7577] [7.9797, 9.1827 8.1267, 7.0065] 46.2957 0.55 14 0101 [0.7992, 0.8747, 0.7942] [9.5842, 10.4007 10.0340, 8.6112] 52.6301 0.6 14 0101 [0.8170, 0.8894, 0.8290] [12.4556, 12.5681, 13.4632, 11.4833] 63.9701 Bảng 6.2: Kết quả chạy phần mềm có 6 module cho bài toán B Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 56 6.2.6. Bài toán cho một phần mềm gồm có 11 module Giả sử ta cần phân phối chi phí cho độ tin cậy phần mềm của một bài toán có 11 module có cấu trúc như hình 6.1: Hình 6.1: Mô hình một phần mềm có 11 module Các thông số ngẫu nhiên được chọn cho bài toán: 5,4.0,55.0,97.0 8,93.0;7,79.0;5.6,75.0 ;8,92.0;5.5,77.0 8,9.0;7,8.0;6,75.0;5,7.0 )0( 44 )0( 4 (max) 4 333332323131 22222121 1414131312121111 ==== ====== ==== ======== xrr crcrcr crcr crcrcrcr α 8,3.0,98.0 7,33.0,97.0 6,4.0,95.0 5.6,35.0,9.0 5.5,3.0,35.0,97.0 5.3,45.0,4.0,9.0 5.4,35.0,47.0,98.0 )0( 111111 )0( 101010 )0( 999 )0( 888 )0( 77 )0( 7 (max) 7 )0( 66 )0( 6 (max) 6 )0( 55 )0( 5 (max) 5 === === === === ==== ==== ==== xq xq xq xq xrr xrr xrr α α α α α α α Module (10) Module (2) Module (9) Module (5) Version 21 Version 22 Module (8) Module (3) Version 31 Version 32 Version 32 Module (1) Version 11 Version 12 Module (4) Module (11) Module (6) Module (7) Version 13 Version 14 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 57 Trong đó module 11 là module gốc, độ tin cậy phần mềm cũng là độ tin cậy của module gốc. a) Bài toán A Đối với các module mua: Hàm mục tiêu: 333332323131222221211414131312121111max yryryryryryryryryr ++++++++ Các điều kiện ràng buộc: 10 1 1 1 ' 333231 2221 14131211 333332323131222221211414131312121111 ory yyy yy yyyy Bycycycycycycycycyc ij = =++ =+ =+++ ≤++++++++ Đối với các module phát triển trong công ty: Hàm mục tiêu: )((min) 11 (max) 11 )0( 111111)(max xxerr −−− α Các điều kiện ràng buộc: )()0( 7 (max) 77 )()0( 6 (max) 66 (max) 1111 )0( 111076 (max) 11 11 4 )0( 777 )0( 666 )( )( ; ' xx xx i i errr errr rqrrrrr BBx −− −− = −= −= == −≤∑ α α )0( )()0( 4 (max) 44 (max) 41 )0( 841 (max) 8 )()0( 8 (max) 88 (max) 99 )0( 983 (max) 9 )()0( 9 (max) 99 )()0( 5 (max) 55 (max) 1010 )0( 10952 (max) 10 )()0( 10 (max) 1010 )0( 444 )0( 888 )0( 999 )0( 555 )0( 101010 )( ;,)( ;,)( )( ;,)( ii xx xx xx xx xx xx errr rqrrrrerrr rqrrrrerrr errr rqrrrrrerrr ≥ −= ==−= ==−= −= ==−= −− −− −− −− −− α α α α α b) Bài toán B Đối với module mua cách xây dựng giống như bài toán A Hàm mục tiêu: 333332323131222221211414131312121111max yryryryryryryryryr ++++++++ Các điều kiện ràng buộc: Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 58 10 1 1 1 ' 333231 2221 14131211 333332323131222221211414131312121111 ory yyy yy yyyy Bycycycycycycycycyc ij = =++ =+ =+++ ≤++++++++ Đối với các module phát triển trong công ty: Hàm mục tiêu: ∑ = 11 4i ixMinimize Các điều kiện ràng buộc: (max) 1010 )0( 10952 (max) 10 )()0( 10 (max) 1010 )()0( 7 (max) 77 )()0( 6 (max) 66 (max) 1111 )0( 111076 (max) 11 )((min) 11 (max) 11 ;,)( )( )( ; )( )0( 101010 )0( 777 )0( 666 )0( 111111 rqrrrrrerrr errr errr rqrrrrr Rerr xx xx xx xx ==−= −= −= == =− −− −− −− −− α α α α )0( )()0( 4 (max) 44 (max) 41 )0( 841 (max) 8 )()0( 8 (max) 88 (max) 99 )0( 983 (max) 9 )()0( 9 (max) 99 )()0( 5 (max) 55 )0( 444 )0( 888 )0( 999 )0( 555 )( ;,)( ;,)( )( ii xx xx xx xx xx errr rqrrrrerrr rqrrrrerrr errr ≥ −= ==−= ==−= −= −− −− −− −− α α α α Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 59 Đối với bài toán A: B B’ ijy [ 114 ,, xx … ] [ 104 ,, rr … ] Độ tin cậy tối ưu ( 11r ) 63 17 1000 10 100 [5.0000, 4.5000, 3.5000, 5.5000, 6.5000, 6.0000, 7.0000, 8.0000] [0.5500, 0.4700, 0.4000, 0.3500, 0.3465, 0.2469, 0.0867] 0.0119 70 20 0 0 0 1 1 0 1 0 0 [5.5223, 5.3832, 4.6907, 6.9038, 6.5000, 6.0000, 7.0000, 8.0000] [0.6292, 0.6056, 0.6074, 0.5631, 0.5266, 0.3752, 0.1697] 0.0569 74 24 0 0 0 1 0 1 0 0 1 [5.5222, 5.3830, 4.6909, 6.9039, 6.5000, 6.0000, 7.0000, 8.0000] [0.6292, 0.6056, 0.6074, 0.5631, 0.5266, 0.4753, 0.2568] 0.0861 100 24 0 0 0 1 0 1 0 0 1 [10.9424, 11.4615, 9.5807, 13.7723, 8.7156, 6.5276, 7.0000, 8.0000] [0.9310, 0.9354, 0.8676, 0.9182, 0.8260, 0.7529, 0.6285] 0.4906 150 24 0 0 0 1 0 1 0 0 1 [17.5120, 16.5985, 19.3349, 19.8284, 15.0859, 11.8486, 12.9279, 12.8637] [0.9672, 0.9726, 0.8996, 0.9616, 0.8950, 0.8462,0.7539] 0.6492 200 24 0 0 0 1 0 1 0 0 1 [21.2336, 20.7994, 29.8264, 27.5359, 18.1905, 20.7486, 16.7201, 20.9455] [0.9694, 0.9783, 0.9000, 0.9692, 0.9000, 0.8549, 0.7685] 0.6700 300 24 0 0 0 1 0 1 0 0 1 [22.0069, 29.0034, 52.0196, 43.1512, 36.0382, 54.5076, 23.1430, 16.1301] [0.9695, 0.9799, 0.9000, 0.9700, 0.9017, 0.8566, 0.7721] 0.6729 350 24 0 0 0 1 0 1 0 0 1 [24.0681, 32.3711, 60.4994, 48.7129, 42.4632, 70.6509, 28.4370, 18.7973] [ 0.9698, 0.9800, 0.9000, 0.9700, 0.9019, 0.8568, 0.7725] 0.6738 500 24 0 0 0 1 0 1 0 0 1 [30.3506, 42.4782, 85.3626, 65.2857, 56.4704, 122.4443, 45.4385, 27.3941] [0.9700, 0.9800, 0.9000, 0.9700, 0.9021, 0.8570, 0.7727] 0.6745 Bảng 6.3: Kết quả chạy phần mềm có 11 module cho bài toán A Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 60 Đối với bài toán B: Độ tin cậy phần mềm ( 11r ) B’ ijy [ 114 ,, xx … ] [ 104 ,, rr … ] Tổng chi phí (B) 0.0119 17 1 0 0 0 1 0 1 0 0 [5.0000, 4.5000, 3.5014, 5.5000,6.5000,6.0000,7.0000, 8.0000] [0.5500, 0.4700, 0.4003,0.3500, 0.3465, 0.2469, 0.0867] 63.0014 0.0569 20 0 0 0 1 1 0 1 0 0 [5.5226, 5.3812, 4.6918, 6.9052, 6.5000, 6.0000, 7.0000, 8.0000] [0.6292, 0.6054, 0.6076, 0.5633, 0.5267, 0.3752, 0.1697] 70.0008 0.0861 24 0 0 0 1 0 1 0 0 1 [5.5224, 5.3811, 4.6917, 6.9050, 6.5000, 6.0000, 7.0000 8.0000] [0.6292, 0.6053, 0.6075, 0.5632, 0.5266, 0.4753, 0.2568] 74.0001 0.1 24 0 0 0 1 0 1 0 0 1 [5.6953, 5.5693, 4.8513, 7.1121, 6.5000, 6.0000, 7.0000, 8.0000] [0.6520, 0.6292, 0.6278, 0.5877, 0.5457, 0.4925 0.2765] 74.7280 0.4 24 0 0 0 1 0 1 0 0 1 [9.4220, 9.7276, 8.2280, 11.8163, 7.0149, 6.0000, 7.0000, 8.0000] [0.8984, 0.8982, 0.8404, 0.8768, 0.7657, 0.6911, 0.5539] 91.2089 0.5 24 0 0 0 1 0 1 0 0 1 [11.1105, 11.6428, 9.7386,14.0293, 8.9305, 6.7146,7.0000 8.0000] [0.9335, 0.9381, 0.8698, 0.9220, 0.8311, 0.7599, 0.6362] 101.1662 0.6 24 0 0 0 1 0 1 0 0 1 [13.7900, 14.6956,12.1266, 17.5757,11.9833, 9.3944, 8.9911, 8.5262] [ 0.9575, 0.9656, 0.8897, 0.9534, 0.8774, 0.8228, 0.7196] 121.0829 0.65 24 0 0 0 1 0 1 0 0 1 [16.6578, 17.9688, 14.6775, 21.3879, 15.2558, 12.2612, 12.4612, 12.3396] [0.9660, 0.9754, 0.8967, 0.9647, 0.8942, 0.8460, 0.7555] 147.0098 Bảng 6.4: Kết quả chạy phần mềm có 11 module cho bài toán B Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 61 6.2.7. Bài toán cho một phần mềm gồm có 22 module Giả sử ta cần phân phối chi phí cho độ tin cậy phần mềm của một bài toán có 22 module có cấu trúc như hình 6.2 Hình 6.2: Mô hình một phần mềm có 22 module Các thông số ngẫu nhiên được chọn cho bài toán: ;8,89.0;5.5,75.0 10,9.0;9,85.0;5.8,8.0;8,77.0 22221121 1414131312121111 ==== ======== crcr crcrcrcr Version 13 Module (19) Module (9) Module (21) Module (18) Module (12) Module (10) Module (15) Module (2) Module (14) Module (4) Version 21 Version 22 Module (13) Module (3) Version 31 Version 32 Version 32 Module (1) Version 11 Version 12 Module (5) Module (17) Module (7) Module (8) Version 14 Module (6) Version 41 Version 42 Version 42 Version 42 Module (11) Module (20) Module (22) Module (16) Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 62 5,45.0,46.0,99.0 6,25.0,55.0,98.0 8,35.0,35.0,97.0 7,4.0,5.0,95.0 5,5.0,49.0,99.0 3,4.0,56.0,96.0 4,3.0,37.0,97.0 9,9.0;7,87.0;5.6,82.0;6,55.0 8,95.0;7,79.0;5.6,65.0 )0( 1111 )0( 11 (max) 11 )0( 1010 )0( 10 (max) 10 )0( 99 )0( 9 (max) 9 )0( 88 )0( 8 (max) 8 )0( 77 )0( 7 (max) 7 )0( 66 )0( 6 (max) 6 )0( 55 )0( 5 (max) 5 4444434342424141 131312122131 ==== ==== ==== ==== ==== ==== ==== ======== ====== xrr xrr xrr xrr xrr xrr xrr crcrcrcr crcrcr α α α α α α α 10,37.0,99.0 9,35.0,98.0 7,34.0,96.0 8,31.0,97.0 6,33.0,95.0 5.6,34.0,9.0 8,23.0,98.0 5.6,3.0,97.0 6,35.0,95.0 5.6,25.0,9.0 5.7,4.0,35.0,97.0 )0( 222222 )0( 212121 )0( 202020 )0( 191919 )0( 181818 )0( 171717 )0( 161616 )0( 151515 )0( 141414 )0( 131313 )0( 1212 )0( 12 (max) 12 === === === === === === === === === === ==== xq xq xq xq xq xq xq xq xq xq xrr α α α α α α α α α α α Trong đó module 22 là module gốc, độ tin cậy phần mềm cũng là độ tin cậy của module gốc. a) Bài toán A Đối với các module mua: Hàm mục tiêu: 4444434342424141 333332323131222221211414131312121111max yryryryr yryryryryryryryryr +++ +++++++++ Các điều kiện ràng buộc: 10,1,1 1,1 ' 44434241333231 222114131211 44444343412424141 333332323131222221211414131312121111 oryyyyyyyy yyyyyy Bycycycyc ycycycycycycycycyc ij ==+++=++ =+=+++ ≤+++ +++++++++ Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 63 Đối với các module phát triển trong công ty: Hàm mục tiêu: )((min)22(max)22 )0( 222222)( xxerrMaximize −−− α Các điều kiện ràng buộc: 22,5, )(,)( )(,)( )(,)( )(,)( ,,)( ,,)( ,,)( ,,)( ,,)( ,,)( ,,)( ,,)( ,,)( , ' )0( )()0( 12 (max) 1212 )()0( 11 (max) 1111 )()0( 10 (max) 1010 )()0( 9 (max) 99 )()0( 8 (max) 88 )()0( 7 (max) 77 )()0( 6 (max) 66 )()0( 5 (max) 55 (max) 1313 )0( 1351 (max) 13 )()0( 13 (max) 1313 (max) 1414 )0( 14133 (max) 14 )()0( 14 (max) 1414 (max) 1515 )0( 151442 (max) 15 )()0( 15 (max) 1515 (max) 1616 )0( 1676 (max) 16 )()0( 16 (max) 1616 (max) 1717 )0( 1785 (max) 17 )()0( 17 (max) 1717 (max) 1818 )0( 181610 (max) 18 )()0( 18 (max) 1818 (max) 1719 )0( 19179 (max) 19 )()0( 19 (max) 1919 (max) 2121 )0( 211911 (max) 19 )()0( 21 (max) 2121 (max) 2020 )0( 201817 (max) 20 )()0( 20 (max) 2020 (max) 2222 )0( 222020 (max) 22 22 5 )0( 121212 )0( 111111 )0( 101010 )0( 999 )0( 888 )0( 777 )0( 666 )0( 555 )0( 131313 )0( 141414 )0( 151515 )0( 161616 )0( 171717 )0( 181818 )0( 191919 )0( 211321 )0( 202020 …=≥ −=−= −=−= −=−= −=−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= == −≤ −−−− −−−− −−−− −−−− −− −− −− −− −− −− −− −− −− = ∑ ixx errrerrr errrerrr errrerrr errrerrr rqrrrrerrr rqrrrrerrr rqrrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrr BBx ii xxxx xxxx xxxx xxxx xx xx xx xx xx xx xx xx xx i i αα αα αα αα α α α α α α α α α Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 64 b) Bài toán B Đối với các module mua giống như bài toán A Đối với các module phát triển trong công ty: Hàm mục tiêu: ∑ = 22 5i ixMinimize Các điều kiện ràng buộc: 22,,6,5, )(,)( )(,)( )(,)( )(,)( ,,)( ,,)( ,,)( ,,)( ,,)( ,,)( ,,)( , )( , )( , )( )0( )()0( 12 (max) 1212 )()0( 11 (max) 1111 )()0( 10 (max) 1010 )()0( 9 (max) 99 )()0( 8 (max) 88 )()0( 7 (max) 77 )()0( 6 (max) 66 )()0( 5 (max) 55 (max) 1313 )0( 1351 (max) 13 )()0( 13 (max) 1313 (max) 1414 )0( 14133 (max) 14 )()0( 14 (max) 1414 (max) 1515 )0( 151442 (max) 15 )()0( 15 (max) 1515 (max) 1616 )0( 1676 (max) 16 )()0( 16 (max) 1616 (max) 1717 )0( 1785 (max) 17 )()0( 17 (max) 1717 (max) 1818 )0( 181610 (max) 18 )()0( 18 (max) 1818 (max) 1719 )0( 19179 (max) 19 )()0( 19 (max) 1919 (max) 2121 )0( 211911 (max) 19 )()0( 21 (max) 2121 (max) 2020 )0( 201817 (max) 20 )()0( 20 (max) 2020 (max) 2222 )0( 222020 (max) 22 )((min) 22 (max) 22 )0( 121212 )0( 111111 )0( 101010 )0( 999 )0( 888 )0( 777 )0( 666 )0( 555 )0( 131313 )0( 141414 )0( 151515 )0( 161616 )0( 171717 )0( 181818 )0( 191919 )0( 211321 )0( 202020 )0( 222222 …=≥ −=−= −=−= −=−= −=−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= == −= == −= == =− −−−− −−−− −−−− −−−− −− −− −− −− −− −− −− −− −− −− ixx errrerrr errrerrr errrerrr errrerrr rqrrrrerrr rqrrrrerrr rqrrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrr errr rqrrrr errr rqrrrr Rerr ii xxxx xxxx xxxx xxxx xx xx xx xx xx xx xx xx xx xx αα αα αα αα α α α α α α α α α α Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 65 Đối với bài toán A: B B’ ijy ],,[ 225 xx … ],,[ 215 rr … Độ tin cậy tối ưu ( 22r ) 145 26 1 0 0 0 1 0 1 0 0 1 0 0 0 [4.00, 3.00, 5.00,7.00, 8.00, 6.00, 5.00, 7.50, 6.50, 6.00, 6.50, 8.00, 6.50, 6.00, 8.00, 7.00, 9.00,10.00] [0.30, 0.56, 0.49, 0.50, 0.35, 0.55, 0.46, 0.35, 0.21, 0.13, 0.05, 0.27, 0.02, 0.09, 0.26, 0.04, 0.09] 0.0035 200 35 0 0 0 1 0 1 0 0 1 0 0 0 1 [4.00, 9.52, 12.40,7.00, 16.20, 14.37, 11.67, 15.16, 6.50, 6.00, 6.50, 8.00, 6.50, 6.90, 8.00, 7.28, 9.00, 10.00] [0.30, 0.93, 0.98, 0.50, 0.93, 0.86, 0.96, 0.94, 0.24, 0.22, 0.17, 0.89, 0.08, 0.80, 0.81, 0.75, 0.75] 0.55 250 35 0 0 0 1 0 1 0 0 1 0 0 0 1 [4.00, 16.23, 24.49, 7.00, 19.06, 20.23, 14.21, 18.50, 6.50, 6.00, 6.50, 9.31, 6.50, 11.09, 11.54, 11.67, 11.53, 10.64] [0.30, 0.96, 0.99, 0.50, 0.96, 0.89, 0.98, 0.96, 0.24, 0.22, 0.17, 0.93, 0.08, 0.89, 0.87, 0.86, 0.83] 0.71 300 35 0 0 0 1 0 1 0 0 1 0 0 0 1 [4.00, 17.80, 28.33, 7.00, 23.14, 26.21, 21.02, 20.11, 6.50, 6.00, 6.50, 16.52, 6.50,14.53, 15.69, 14.51, 5.29, 15.35] [0.30, 0.96, 0.99, 0.50, 0.97, 0.90, 0.99, 0.97, 0.24, 0.22, 0.17, 0.95, 0.08, 0.91, 0.89, 0.90, 0.85] 0.77 400 35 0 0 0 1 0 1 0 0 1 0 0 0 1 [4.00, 34.63, 49.65, 7.00, 29.58, 34.46, 19.64, 31.98, 6.50, 6.00, 6.50, 20.00, 6.50, 21.01, 23.57, 22.67, 22.33 18.97] [0.30, 0.96, 0.99, 0.50, 0.97, 0.90, 0.99, 0.97, 0.24, 0.22, 0.17, 0.95, 0.08, 0.92, 0.89, 0.91, 0.86] 0.7856 500 35 0 0 0 1 0 1 0 0 1 0 0 0 1 [4.00, 46.04, 62.22, 7.00, 35.48, 41.33, 23.38, 38.70, 6.50, 6.00, 6.50, 37.30, 6.50, 20.67, 32.59, 24.98, 33.11, 32.70] [0.30, 0.96, 0.99, 0.50, 0.97, 0.90, 0.99, 0.97, 0.24, 0.22, 0.17, 0.95, 0.08, 0.92, 0.89, 0.91, 0.86] 0.7882 Bảng 6.5: Kết quả chạy phần mềm có 22 module cho bài toán A Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 66 Đối với bài toán B: Độ tin cậy phần mềm ( 22r ) B’ ijy ],,[ 225 xx … ],,[ 215 rr … Tổng chi phí (B) 0.0035 26 1 0 0 0 1 0 1 0 0 1 0 0 0 [4.00, 3.00, 5.00, 7.00, 8.00, 6.00, 5.00, 7.50, 6.50, 6.00, 6.50, 8.00, 6.50, 6.00, 8.00, 7.00, 9.00,10.00] [0.30, 0.56, 0.49, 0.50, 0.35, 0.55, 0.46, 0.35, 0.21, 0.13, 0.05, 0.27, 0.02, 0.09, 0.26, 0.04, 0.09] 135.00 0.1 35 0 0 0 1 0 1 0 0 1 0 0 0 1 [4.00, 4.20, 7.84, 7.00, 10.32, 6.34, 6.82, 9.77, 6.50, 6.00, 6.50, 8.00, 6.50, 6.00, 8.00, 7.00, 9.00, 30.33] [0.30, 0.71, 0.87, 0.50, 0.69, 0.58, 0.76, 0.72, 0.24, 0.22, 0.17, 0.61, 0.08, 0.40, 0.49, 0.29, 0.34] 154.78 0.2 35 0 0 0 1 0 1 0 0 1 0 0 0 1 [4.00, 5.21, 8.76, 7.00, 11.43, 7.77, 7.74, 10.78, 6.50, 6.00, 6.50, 8.00, 6.50, 6.00, 8.00, 7.00, 9.00, 38.21] [0.30, 0.79, 0.91, 0.50, 0.78, 0.68, 0.84, 0.80, 0.24, 0.22, 0.17, 0.71, 0.08, 0.53, 0.60, 0.42, 0.47] 161.19 0.3 35 0 0 0 1 0 1 0 0 1 0 0 0 1 [4.00, 6.15, 9.59, 7.00, 12.49, 9.17, 8.59, 11.72, 6.50, 6.00, 6.50, 8.00, 6.50, 6.00, 8.00, 7.00, 9.00, 38.66] [0.30, 0.85, 0.94, 0.50, 0.84, 0.74, 0.88, 0.86, 0.24, 0.22, 0.17, 0.78, 0.08, 0.62, 0.68, 0.53, 0.57] 167.23 0.5 35 0 0 0 1 0 1 0 0 1 0 0 0 1 [4.00, 8.59, 11.63, 7.00, 15.24, 12.89, 10.77, 14.16, 6.50, 6.00, 6.50, 8.00, 6.50, 6.00, 8.00, 7.00, 9.00, 43.05] [0.30, 0.92, 0.97, 0.50, 0.92, 0.84, 0.95, 0.93, 0.24, 0.22, 0.17, 0.87, 0.08, 0.76, 0.79, 0.70, 0.72] 182.78 0.7 35 0 0 0 1 0 1 0 0 1 0 0 0 1 [4.00, 12.54 14.84, 7.00, 19.75, 19.14, 14.30, 18.11, 6.50, 6.00, 6.50, 9.02, 6.50, 10.57, 11.01, 10.86, 10.85, 47.95] [0.30, 0.95, 0.98, 0.50, 0.96, 0.88, 0.98, 0.96, 0.24, 0.22, 0.17, 0.92, 0.08, 0.87, 0.86, 0.85, 0.82] 222.50 Bảng 6.6: Kết quả chạy phần mềm có 22 module cho bài toán B Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 67 6.2.8. Bài toán cho một phần mềm gồm có 37 module Giả sử ta cần phân phối chi phí cho độ tin cậy phần mềm của một bài toán có 30 module có cấu trúc như hình 6.3 Hình 6.3: Mô hình một phần mềm có 37 module Các thông số ngẫu nhiên được chọn cho bài toán: ;10,95.0;9,89.0;5.8,84.0;7,8.0 ;9,94.0;8,89.0;5.5,76.0 ;9,85.0;5.8,8.0;8,77.0 3434333332323131 232322221121 131312121111 ======== ====== ====== crcrcrcr crcrcr crcrcr M_6 M_2 V 21 M_3 V 31 V 32 V 33 V 34 M_5 V 51 M_7 M_9 M_10 M_1 M_24 M_25M_23 M_4 V 11 V 52 V 51 V 53 V 52 V 22 V 23 M_12 M_13 M_11 M_27 M_28 M_26 M_14 M_16 M_17M_29 M_30 M_18 M_15 M_31 M_20 M_21 M_32 M_33 M_22 M_19 M_34 M_35 M_36 M_3 V 12 V 13 M_8 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 68 8,25.0,33.0,98.0 6,35.0,3.0,97.0 7,3.0,4.0,93.0 5,4.0,3.0,98.0 4,35.0,5.0,95.0 ;8,96.0;6.6,83.0 ;9,9.0;7,86.0;6,81.0 )0( 1010 )0( 10 (max) 10 )0( 99 )0( 9 (max) 9 )0( 88 )0( 8 (max) 8 )0( 77 )0( 7 (max) 7 )0( 66 )0( 6 (max) 6 52524151 434342424141 ==== ==== ==== ==== ==== ==== ====== xrr xrr xrr xrr xrr crcr crcrcr α α α α α 15,33.0,99.0 9,3.0,98.0,7,33.0,97.0 11,39.0,93.0,9,38.0,95.0 8,36.0,96.0,6.8,34.0,93.0 5.7,32.0,94.0,9,33.0,98.0 6,37.0,94.0,7,35.0,97.0 5,4.0,99.0,8,35.0,91.0 9,33.0,95.0,10,32.0,98.0 10,4.0,4.0,97.0 9,35.0,3.0,96.0 5.8,3.0,55.0,95.0 5.7,4.0,5.0,9.0 8,35.0,45.0,95.0 5,34.0,4.0,96.0 9,36.0,35.0,97.0 6,3.0,4.0,96.0 8,4.0,45.0,96.0 7,3.0,4.0,95.0 9,35.0,5.0,98.0 6,35.0,4.0,96.0 )0( 373737 )0( 363636 )0( 353535 )0( 343434 )0( 333333 )0( 323232 )0( 313131 )0( 303030 )0( 292929 )0( 282828 )0( 272727 )0( 262626 )0( 252525 )0( 242424 )0( 232323 )0( 2222 )0( 22 (max) 22 )0( 2121 )0( 21 (max) 21 )0( 2020 )0( 20 (max) 20 )0( 1919 )0( 19 (max) 19 )0( 1818 )0( 18 (max) 18 )0( 1717 )0( 17 (max) 17 )0( 1616 )0( 16 (max) 16 )0( 1515 )0( 15 (max) 15 )0( 1414 )0( 14 (max) 14 )0( 1313 )0( 13 (max) 13 )0( 1212 )0( 12 (max) 12 )0( 1111 )0( 11 (max) 11 === ====== ====== ====== ====== ====== ====== ====== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== xq xqxq xqxq xqxq xqxq xqxq xqxq xqxq xrr xrr xrr xrr xrr xrr xrr xrr xrr xrr xrr xrr α αα αα αα αα αα αα αα α α α α α α α α α α α α Trong đó module 37 là module gốc, độ tin cậy phần mềm cũng là độ tin cậy của module gốc. a) Đối với bài toán A Đối với các module mua: Hàm mục tiêu: 525252524343424241413434 333332323131232322222121131312121111 yryryryryryr yryryryryryryryryrMax +++++ +++++++++ Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 69 Các điều kiện ràng buộc: '52525252434342424141 3434333332323131232322222121131312121111 Bycycycycyc ycycycycycycycycycyc ≤+++++ ++++++++ 10 1 1 1 1 1 5251 434241 34333231 232221 131211 ory yy yyy yyyy yyy yyy ij = =+ =++ =+++ =++ =++ Đối với các module phát triển trong công ty: Hàm mục tiêu: )((min) 37 (max) 37 )0( 373711)(max xxerr −−− α Các điều kiện ràng buộc: (max) 2323 )0( 2362 (max) 23 )()0( 23 (max) 2323 (max) 2424 )0( 2473 (max) 24 )()0( 24 (max) 2424 (max) 2525 )0( 2585 (max) 25 )()0( 25 (max) 2525 (max) 2626 )0( 262391 (max) 26 )()0( 26 (max) 2626 (max) 2727 )0( 272410 (max) 27 )()0( 27 (max) 2727 (max) 2828 )0( 28254 (max) 28 )()0( 28 (max) 2828 (max) 2929 )0( 292611 (max) 29 )()0( 29 (max) 2929 (max) 3030 )0( 30271312 (max) 30 )()0( 30 (max) 3030 (max) 3131 )0( 312814 (max) 31 )()0( 31 (max) 3131 (max) 3232 )0( 32291615 (max) 32 )()0( 32 (max) 3232 (max) 3333 )0( 333017 (max) 33 )()0( 33 (max) 3333 (max) 3434 )0( 343118 (max) 34 )()0( 34 (max) 3434 (max) 3535 )0( 3533322019 (max) 35 )()0( 35 (max) 3535 (max) 3636 )0( 36342221 (max) 36 )()0( 36 (max) 3636 (max) 3737 )0( 373635 (max) 37 37 6 ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( , ' )0( 232323 )0( 242424 )0( 252525 )0( 262626 )0( 272727 )0( 282828 )0( 292929 )0( 303030 )0( 313131 )0( 323232 )0( 333333 )0( 343434 )0( 353535 )0( 363636 rqrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrrerrr rqrrrrerrr rqrrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrrrerrr rqrrrrrerrr rqrrrr BBx xx xx xx xx xx xx xx xx xx xx xx xx xx xx i i ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= == −≤ −− −− −− −− −− −− −− −− −− −− −− −− −− −− = ∑ α α α α α α α α α α α α α α Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 70 37,,6, )(,)( )(,)( )(,)( )(,)( )(,)( )(,)( )(,)( )(,)( )(,)( ,;)( ,;)( ,;)( ,;)( ,;)( )0( )()0( 23 (max) 2323 )()0( 21 (max) 2121 )()0( 20 (max) 2020 )()0( 19 (max) 1919 )()0( 18 (max) 1818 )()0( 17 (max) 1717 )()0( 16 (max) 1616 )()0( 15 (max) 1515 )()0( 14 (max) 1414 )()0( 13 (max) 1313 )()0( 12 (max) 1212 )()0( 11 (max) 1111 )()0( 10 (max) 1010 )()0( 9 (max) 99 )()0( 8 (max) 88 )()0( 7 (max) 77 )()0( 6 (max) 66 )()0( 5 (max) 55 (max) 2323 )0( 2362 (max) 23 )()0( 23 (max) 2323 (max) 2424 )0( 2473 (max) 24 )()0( 24 (max) 2424 (max) 2525 )0( 2585 (max) 25 )()0( 25 (max) 2525 (max) 2626 )0( 262391 (max) 26 )()0( 26 (max) 2626 (max) 2727 )0( 272410 (max) 27 )()0( 27 (max) 2727 )0( 232323 )0( 212121 )0( 202020 )0( 191919 )0( 181818 )0( 171717 )0( 161616 )0( 151515 )0( 141414 )0( 131313 )0( 121212 )0( 111111 )0( 101010 )0( 999 )0( 888 )0( 777 )0( 666 )0( 555 )0( 232323 )0( 242424 )0( 252525 )0( 262626 )0( 272727 …=≥ −=−= −=−= −=−= −=−= −=−= −=−= −=−= −=−= −=−= ==−= ==−= ==−= ==−= ==−= −−−− −−−− −−−− −−−− −−−− −−−− −−−− −−−− −−−− −− −− −− −− −− ixx errrerrr errrerrr errrerrr errrerrr errrerrr errrerrr errrerrr errrerrr errrerrr rqrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrrerrr rqrrrrerrr ii xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xx xx xx xx xx αα αα αα αα αα αα αα αα αα α α α α α Trong đó module 37 là module gốc, độ tin cậy của module này cũng là độ tin cậy của phần mềm. a) Đối với bài toán B Đối với các module mua tương tự như bài toán A: Hàm mục tiêu: 525252524343424241413434 333332323131232322222121131312121111 yryryryryryr yryryryryryryryryMaximizer +++++ +++++++++ Các điều kiện ràng buộc: '52525252434342424141 3434333332323131232322222121131312121111 Bycycycycyc ycycycycycycycycycyc ≤+++++ ++++++++ 10 1 1 1 1 1 5251 434241 34333231 232221 131211 ory yy yyy yyyy yyy yyy ij = =+ =++ =+++ =++ =++ Đối với các module phát triển trong công ty: Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 71 Hàm mục tiêu: ∑ = 37 6i ixMin Các điều kiện ràng buộc: (max) 3535 )0( 3533322019 (max) 35 )()0( 35 (max) 3535 (max) 3636 )0( 36342221 (max) 36 )()0( 36 (max) 3636 (max) 3737 )0( 373635 (max) 37 )((min) 37 (max) 37 ,;)( ,;)( , )( )0( 353535 )0( 363636 )0( 373711 rqrrrrrrerrr rqrrrrrerrr rqrrrr Rerr xx xx xx ==−= ==−= == =− −− −− −− α α α 37,,6, )(,)( )(,)( )(,)( )(,)( )(,)( )(,)( )(,)( )(,)( )(,)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( ,;)( )0( )()0( 23 (max) 2323 )()0( 21 (max) 2121 )()0( 20 (max) 2020 )()0( 19 (max) 1919 )()0( 18 (max) 1818 )()0( 17 (max) 1717 )()0( 16 (max) 1616 )()0( 15 (max) 1515 )()0( 14 (max) 1414 )()0( 13 (max) 1313 )()0( 12 (max) 1212 )()0( 11 (max) 1111 )()0( 10 (max) 1010 )()0( 9 (max) 99 )()0( 8 (max) 88 )()0( 7 (max) 77 )()0( 6 (max) 66 )()0( 5 (max) 55 (max) 2323 )0( 2362 (max) 23 )()0( 23 (max) 2323 (max) 2424 )0( 2473 (max) 24 )()0( 24 (max) 2424 (max) 2525 )0( 2585 (max) 25 )()0( 25 (max) 2525 (max) 2626 )0( 262391 (max) 26 )()0( 26 (max) 2626 (max) 2727 )0( 272410 (max) 27 )()0( 27 (max) 2727 (max) 2828 )0( 28254 (max) 28 )()0( 28 (max) 2828 (max) 2929 )0( 292611 (max) 29 )()0( 29 (max) 2929 (max) 3030 )0( 30271312 (max) 30 )()0( 30 (max) 3030 (max) 3131 )0( 312814 (max) 31 )()0( 31 (max) 3131 (max) 3232 )0( 32291615 (max) 32 )()0( 32 (max) 3232 (max) 3333 )0( 333017 (max) 33 )()0( 33 (max) 3333 (max) 3434 )0( 343118 (max) 34 )()0( 34 (max) 3434 )0( 232323 )0( 212121 )0( 202020 )0( 191919 )0( 181818 )0( 171717 )0( 161616 )0( 151515 )0( 141414 )0( 131313 )0( 121212 )0( 111111 )0( 101010 )0( 999 )0( 888 )0( 777 )0( 666 )0( 555 )0( 232323 )0( 242424 )0( 252525 )0( 262626 )0( 272727 )0( 282828 )0( 292929 )0( 303030 )0( 313131 )0( 323232 )0( 333333 )0( 343434 …=≥ −=−= −=−= −=−= −=−= −=−= −=−= −=−= −=−= −=−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= ==−= −−−− −−−− −−−− −−−− −−−− −−−− −−−− −−−− −−−− −− −− −− −− −− −− −− −− −− −− −− −− ixx errrerrr errrerrr errrerrr errrerrr errrerrr errrerrr errrerrr errrerrr errrerrr rqrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrerrr rqrrrrrerrr rqrrrrerrr rqrrrrrerrr rqrrrrerrr rqrrrrerrr ii xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xx xx xx xx xx xx xx xx xx xx xx xx αα αα αα αα αα αα αα αα αα α α α α α α α α α α α α Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 72 Đối với bài toán A: B B’ ijy ],,[ 376 xx … ],,[ 366 rr … Độ tin cậy tối ưu ( 37r ) 288 33 100 1000 100 100 10 [9.00, 5.00, 7.00, 6.00, 8.00, 6.00, 9.00, 7.00, 8.00, 6.00, 9.00, 5.00, 8.00, 7.50, 8.50, 9.00, 10.00, 10.00, 9.00, 8.00, 5.00, 7.00, 6.00, 9.00, 7.50, 6.50, 8.00, 9.00, 11.00, 7.00, 9.00, 15.00] [0.30, 0.50, 0.40, 0.30, 0.64, 0.40, 0.50, 0.40, 0.45, 0.40, 0.35, 0.40, 0.45, 0.50, 0.55, 0.30, 0.40, 0.22, 0.38, 0.30, 0.05, 0.19, 0.23, 0.02, 0.04, 0.09, 0.003, 0.01, 0.04, 0.32] 0.0014 299 44 001 0001 001 001 01 [9.00, 5.00, 7.00, 6.00, 8.00, 6.00, 9.00, 7.00, 8.00, 6.00, 9.00, 5.00, 8.00, 7.50, 8.50, 9.00, 10.00, 10.00, 9.00, 8.00, 5.00, 7.00, 6.00, 9.00, 7.50, 6.50, 8.00, 9.00, 11.00, 7.00, 9.00, 15.00] [0.30 0.50, 0.40, 0.30, 0.64, 0.40, 0.50, 0.40, 0.45, 0.40, 0.35, 0.40, 0.45, 0.50, 0.55, 0.30, 0.40, 0.28, 0.45, 0.35, 0.07, 0.19, 0.28, 0.03, 0.04, 0.11, 0.004, 0.01, 0.05, 0.37] 0.0054 500 44 001 0001 001 001 01 [9.00, 5.00, 45.76, 6.00, 8.00, 6.00, 9.00, 7.00, 24.55, 6.00, 9.00, 5.00, 24.64,7.50, 8.50, 31.15, 28.09, 10.00, 9.00, 25.14, 5.00, 7.00, 17.78, 9.00, 7.50, 38.53, 8.00, 9.00, 31.37, 7.00, 13.70, 17.79] [0.30, 0.50, 0.93, 0.30, 0.64, 0.40, 0.50, 0.40, 0.96, 0.40, 0.35, 0.40, 0.95, 0.50, 0.55, 0.96, 0.97, 0.28, 0.45, 0.89, 0.07, 0.60, 0.77, 0.03, 0.11, 0.74, 0.004, 0.04, 0.70, 0.87] 0.5574 600 44 001 0001 001 001 01 [9.00, 5.00, 56.17, 6.00, 8.00, 6.00, 9.00, 7.00, 28.18, 6.00, 9.00, 5.00, 28.74, 7.50, 8.50, 34.89, 31.53, 10.00, 9.00, 37.78, 5.00, 7.00, 26.99, 9.00, 7.50, 66.35, 8.00, 9.00, 49.74, 7.00, 17.88, 20.24] [0.30, 0.50, 0.93, 0.30, 0.64, 0.40, 0.50, 0.40, 0.96, 0.40, 0.35, 0.40, 0.95, 0.50, 0.55, 0.96, 0.97, 0.28, 0.45, 0.89, 0.07, 0.60, 0.77, 0.03, 0.11, 0.74, 0.004, 0.04, 0.70, 0.87] 0.5625 1000 44 001 0001 001 001 01 [9.00, 5.00, 90.95, 6.00, 8.00, 6.00, 9.00, 7.00, 40.04, 6.00, 9.00, 5.00, 42.30,7.50, 8.50, 46.64, 42.57, 10.00, 9.00, 83.81, 5.00, 7.00, 62.63, 9.00, 7.50, 158.31, 8.00, 9.00, 115.17, 7.00, 35.90, 30.82] [0.30, 0.50, 0.93, 0.30, 0.64, 0.40, 0.50, 0.40, 0.96, 0.40, 0.35, 0.40, 0.95, 0.50, 0.55, 0.96, 0.97, 0.28, 0.45, 0.89, 0.07, 0.60, 0.77, 0.03, 0.11, 0.74, 0.004, 0.04, 0.70, 0.87] 0.5647 Bảng 6.7: Kết quả chạy phần mềm có 37 module cho bài toán A Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 73 Đối với bài toán B: Độ tin cậy phần mềm ( 37r ) B’ ijy ],,[ 376 xx … ],,[ 366 rr … Chi phí phần mềm (B) 0.0014 33 100 1000 100 100 10 [9.00, 5.00, 7.00, 6.00, 8.00, 6.00, 9.00, 7.00, 8.00, 6.00, 9.00, 5.00, 8.00, 7.50, 8.50, 9.00, 10.00, 10.00, 9.00, 8.00, 5.00, 7.00, 6.00, 9.00, 7.50, 6.50, 8.00, 9.00, 11.00, 7.00, 9.00, 15.00] [0.30, 0.50, 0.40, 0.30, 0.64, 0.40, 0.50, 0.40, 0.45, 0.40, 0.35, 0.40, 0.45, 0.50, 0.55, 0.30, 0.40, 0.22, 0.38, 0.30, 0.05, 0.19, 0.23, 0.02, 0.04, 0.09, 0.003, 0.01, 0.04, 0.32] 287 0.2 44 001 0001 001 001 01 [9.00, 5.00, 15.36, 6.00, 8.00, 6.00, 9.00, 7.00, 10.48, 6.00, 9.00, 5.00, 12.30, 7.50, 8.50,14.82, 15.67, 10.00, 9.00, 8.25, 5.00, 7.00, 6.00, 9.00, 7.50, 8.16, 8.00, 9.00, 23.63, 7.62, 9.00,15.00] [0.30, 0.50, 0.89, 0.30, 0.64, 0.40, 0.50, 0.40, 0.77, 0.40, 0.35, 0.4, 0.84, 0.50, 0.55, 0.87, 0.91, 0.28, 0.45, 0.78, 0.07, 0.54, 0.63, 0.03, 0.10, 0.45, 0.004, 0.04, 0.38, 0.67, 0.29] 324.68 0.3 44 001 0001 001 001 01 [9.00, 5.00, 16.66, 6.00, 8.00, 6.00, 9.00, 7.00, 15.32, 6.00, 9.00, 5.00, 14.85, 7.50, 8.50, 17.60, 16.81, 10.00, 9.00, 8.10, 5.00, 7.00, 7.70, 9.00, 7.50, 9.68, 8.00, 9.00, 40.89, 8.05, 9.00, 15.00] [0.30, 0.50, 0.90, 0.30, 0.64, 0.40, 0.50, 0.40, 0.93, 0.40, 0.35, 0.40, 0.90, 0.50, 0.55, 0.93, 0.93, 0.28, 0.45, 0.79, 0.07, 0.58, 0.66, 0.03, 0.11, 0.58, 0.004 0.04, 0.53, 0.59 0.45] 340.77 0.5 44 001 0001 001 001 01 [9.00, 5.00, 18.47, 6.00, 8.00, 6.00, 9.00, 7.00, 16.47, 6.00, 9.00, 5.00, 15.76, 7.50, 8.50, 19.32, 17.39, 10.00, 9.00, 11.03, 5.00, 7.00, 8.27, 9.00, 7.50, 11.21, 8.00, 9.00, 47.29, 7.02, 9.05,15.00] [0.30, 0.50, 0.91, 0.30, 0.64, 0.40, 0.50, 0.40, 0.94, 0.40, 0.35, 0.40, 0.91, 0.50, 0.55, 0.94, 0.94, 0.27, 0.45, 0.84, 0.07, 0.58, 0.71, 0.03, 0.11, 0.65, 0.004 0.042, 0.59, 0.84, 0.5187] 378.91 Bảng 6.8: Kết quả chạy phần mềm có 37 module cho bài toán B Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 74 6.3. Kết luận Tự động hóa quá trình phân phối chi phí để đánh giá độ tin cậy phần mềm là một bài toán mở, nhiều phương pháp đã được đưa ra để giải quyết bài toán. Phương pháp kết hợp quy hoạch nguyên và quy hoạch phi tuyến của hàm nhiều biến là một giải pháp được đề xuất để giải quyết vấn đề này. Đứng trên góc độ của một công trình nghiên cứu, luận văn cố gắng đưa ra hai giải pháp nhằm cung cấp thêm một cách thức để giải quyết bài toán này. Mô hình đã tính toán độ tin cậy của phần mềm dựa vào phân phối chi phí. Bằng việc sử dụng phương pháp quy hoạch nguyên nhị phân để thực hiện việc phân phối chi phí cho các module mua, kết hợp với phương pháp quy hoạch phi tuyến để giải quyết hàm số mũ nhiều biến, để thực hiệc việc phân phối chi phí cho các module phát triển. Thông qua việc kết hợp này, luận văn đã dùng các hàm trong Matlab để xây dựng được hai giải pháp cho phép kết hợp giữa bài toán quy hoạch nguyên và quy hoạch phi tuyến một cách tự động. Chương trình hiện thực đã cung cấp được giải với độ chính xác tương đối cho một số minh họa cụ thể. Tuy nhiên, chương trình cũng có một vài hạn chế: ƒ Hiện tại mô hình chỉ được thực hiện hàm phân phối mũ để tính độ tin cậy của các module. ƒ Việc phân phối chi phí giữa module mua và module phát triển trong công ty còn mang tính cảm tính, đều này làm cho lời giải của bài toán có thể chưa được tối ưu. ƒ Chương trình chỉ sử dụng các hàm trong Matlab để thực việc tối ưu hóa, mà chúng ta không can thiệp vào bên trong nó. ƒ Do số liệu trong chương trình là tự tạo cho nên kết quả của chương trình có thể chưa xác thực tế. Đây là những hạn chế mà trong phạm vi luận văn này chưa thể giải quyết trọn vẹn. Một số đề xuất và hướng mở rộng dựa vào những hạn chế vừa nêu: ƒ Xây dựng các mô hình khác mô hình số mũ để giải quyết việc phân phối chi phí. Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 75 ƒ Xây dựng một giải thuật thực hiện việc phân phối chi phí giữa các module mua và module phát triển một cách tối ưu nhất. ƒ Xây dựng một hàm quy hoạch phi tuyến tồn tại cả biến nguyên và biến thực để giải quyết bài toán một cách tối ưu nhất. ƒ Lấy dữ liệu thực từ các hãng phần mềm ứng dụng vào mô hình này. Với những sự mở rộng này chúng ta có thể xây dựng một giải pháp hữu hiệu hơn cho bài toán. Đây chính là hướng phát triển của luận văn. Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 76 Tài Liệu Tham Khảo [1] Jonathan F.Bard “Practical Bilevel Optimization Algorithms and Applications” Springer 1999, ISBN 0-7923-5458-3 [2] John W. Chinneck “Practical Optimization: A Gentle Introduction” Systems and Computer Engineering Carleton University Ottawa, Ontario K1S 5B6 Canada 74H [3] Hoang Pham, “Software Reliability” Springer – Verlag Singapore Pte.Ltd.2000 [4] Lê Quang Hoàng Nhân, “Giáo trình Toán Cao Cấp – Phần Giải Tích” Nhà xuất bản thống kê. [5] Nguyễn Đức Thành, “MATLAB và ứng dụng trong điều khiển” Nhà xuất bản Đại học Quốc gia Tp.HCM. [6] Nguyễn Nhật Lệ - Phan Mạnh Dần “Giải bài toán tối ưu hoá ứng dụng bằng MATLAB-MAPLE tối ưu hoá tĩnh và điều khiển tối ưu” Nhà xuất bản Khoa học Kỹ thuật Hà Nội. [7] O.Berman and M.Cutler, “Cost Allocation for Software Reliability, Recent Advances in Reliability and Quality Engineering”, Vol.2, Series on Quality, Reliability & Engineering Statistisc, Editor Hoang Pham, Word Scientific, 2001 0.2, 1.1 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 77 Phụ lục 1. Bảng đối chiếu Thuật ngữ Anh - Việt Thuật ngữ Tiếng Anh Thuật ngữ Tiếng Việt Algorithm Giải thuật Bartitioning Sự phân chia Binary Integer Programming Quy hoạch nguyên nhị phân Branch and bound Nhánh và cận Branching Sự phân nhánh Bounding Sự giới hạn Cost Allocation Phân phối chi phí Branching Sự phân nhánh In-house Developed module Module tự phát triển trong công ty Integation module Module tích hợp Fathoming Sự thăm dò Linear Programming Quy hoạch tuyến tính Mathematical Toán học Mean Value Function Hàm giá trị trung bình Nonlinear Programming Quy hoạch phi tuyến Optimization Tối ưu Pruning Sự loại bỏ Purchased module Module mua Resource Allocation Phân phối tài nguyên Software system Hệ thống phần mềm Software Reliability Độ tin cậy phần mềm Solution Giải pháp Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 78 Phụ lục 2. Bảng tóm tắt các mô hình đánh giá độ tin cậy phần mềm Một vài mô hình đánh giá độ tin cậy phần mềm dựa vào quá trình phân phối Poisson không đồng nhất (Non-homogeneous Poisson Process - NHPP). NHPP là nhóm các mô hình cung cấp một quá trình phân tích, mô tả hiện tượng lỗi phần mềm trong quá trình kiểm tra. Điểm chính của mô hình NHPP là đánh giá hàm giá trị trung bình (Mean Value Function – MVF) số lượng lỗi được tích lũy trong một khoảng thời gian [3]. ∫= t dsstm 0 )()( λ Hàm độ tin cậy của phần mềm là: ∫== − − t dss tm eetR 0 )( )()( λ Tên mô hình Loại mô hình MVF (m(t)) Goel-Okumoto (G-O) Concave btb ata eatm bt = = −= − )( )( )1()( Delayed S-shaped S-shaped bt tbtb ata ebtatm bt += = +−= − 1 )( )( ))1(1()( 2 Inflection S-shaped Concave bt bt bt e btb ata e eatm − − − += = + −= β β 1 )( )( 1 )1()( Yamade exponential Concave t er tertb ata eatm t β α αβ β − −− = = −= − )( )( )1()( )1( )( Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 79 Yamada Rayleigh S-shaped 2/ )1( 2 )2/2( )( )( )1()( t er tertb ata eatm t β α αβ β − −− = = −= − Yamada imperfect debugging model (1) S-shaped btb aeta ee b abtm t btt = = −+= − )( )( )()( α α α Yamada imperfect debugging model (2) S-shaped btb aeta at b eatm t bt = = +−−= − )( )( ]1][1[)( α αα Pham-Nordmann S-shaped và concave bt bt bt e btb tata at b ea tm − − − += += + +−− = β α β αα 1 )( )1()( 1 ]1][1[ )( Pham-Zhang S-shaped và concave bt t btt bt bt e btb eacta ee b a eactm − − −− − − += −+= −−− −++= β α β α α 1 )( )1()( )]( )1)([( 1 1)( Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 80 Phụ lục 3. Sơ lược về MATLAB MATLAB [4] có ngồn gốc từ chữ matrix laboratory, là ngôn ngữ máy tính dùng để tính toán kỹ thuật. MATLAB là sản phẩm của công ty The Mathworks Inc, với địa chỉ 7www.mathworks.com và sử dụng MATLAB phải có bản quyền. Tuy nhiên, có rất nhiều hàm MATLAB được viết bởi người sử dụng và phổ biến miễn phí trên mạng giúp cho MATLAB ngày càng phong phú hơn. Dưới đây trích các hàm sử dụng trong chương trình [5][6]. a) Hàm bintprog: tìm nghiệm tối ưu của bài toán lập trình số nguyên nhị phân có dạng: Hàm mục tiêu: yfMinimize . các điều kiện ràng buộc: beqyAeq byA = ≤ . . trong đó: ƒ beqbf ,, : các vector ƒ AeqA, : các ma trận ƒ Các biến y bắt buộc phải là các biến nhị phân, nghĩa là chúng chỉ nhận các giá trị: 0 hoặc 1. Cú pháp: ƒ y = bintprog(f) ƒ y = bintprog(f, A, b) ƒ y = bintprog(f, A, b, Aeq, beq) ƒ [y, fval] = bintprog(...) ƒ [y,fval, exitflag] = bintprog(...) ƒ [y, fval, exitflag, output] = bintprog(...) Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 81 Mô tả: ƒ y = bintprog(f): giải quyết bài toán lập trình số nguyên nhị phân có dạng: yfMinimize . ƒ y = bintprog(f, A, b): tìm nghiệm tối ưu của bài toán lập trình số nguyên nhị phân có dạng: yfMin . với điều kiện ràng buộc: byA ≤. ƒ y = bintprog(f, A, b , Aeq, beq): tìm nghiệm tối ưu của bài toán lập trình số nguyên nhị phân có dạng: yfMinimize . với điều kiện ràng buộc: beqyAeq byA = ≤ . . ƒ [y, fval] = bintprog(...) trả về giá trị hàm mục tiêu fval , và nghiệm tối ưu y ứng với hàm mục tiêu đó. ƒ [y,fval, exitflag] = bintprog(...) tương tự như trên, cộng thêm exitflag mô trả trạng thái của bài toán bintprog. 9 Exitflag =1 : hàm hội tụ đến 1 giải pháp y. 9 Exitflag =0 : số lượng lần lặp đi lặp lại vượt quá Options.MaxIter 9 Exitflag =-2 : bài toán không thể làm được. 9 Exitflag =-4 : số lượng node vượt quá số lần lặp cực đại được cho phép (Options.MaxIter). 9 Exitflag =-5 : thời gian tìm kiếm vượt quá Options.Maxtime. b) Hàm fmincon: tìm nghiệm tối ưu của hàm nhiều biến có dạng: Hàm mục tiêu: )(min xf Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 82 Các điều kiện ràng buộc: ubxlb beqxAeq bxA xceq xc ≤≤ = ≤ = ≤ * * 0)( 0)( Trong đó ƒ ublbbeqbx ,,,, là các vector ƒ AeqA, là các ma trận. ƒ )(),( xceqxc là các hàm trả về các vertor ƒ )(),(),( xceqxcxf có thể là các phương trình phi tuyến. Cú pháp: ƒ x = fmincon(fun,x0,A,b) ƒ x = fmincon(fun,x0,A,b,Aeq,beq) ƒ x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub) ƒ x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) ƒ x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) ƒ [x,fval] = fmincon(...) ƒ [x,fval,exitflag] = fmincon(...) ƒ [x,fval,exitflag,output] = fmincon(...) ƒ [x,fval,exitflag,output,lambda] = fmincon(...) ƒ [x,fval,exitflag,output,lambda,grad] = fmincon(...) ƒ [x,fval,exitflag,output,lambda,grad,hessian] = fmincon(...) Mô tả: ƒ fmincon: cố gắng tìm một cực tiểu thỏa mãn các điều kiện ràng buộc phi tuyến hoặc tuyến tính. Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 83 ƒ x = fmincon(fun,x0,A,b): bắt đầu tìm kiếm tại x0 và cố gắng tìm một cực tiểu x để hàm mục tiêu đạt giá trị nhỏ nhất thỏa mãn điều kiện ràng buộc A*x <= b, trong đó x0 có thể là một vector hoặc matrix. ƒ x = fmincon(fun,x0,A,b,Aeq,beq) tương tự như trên, thiết lập thêm điều kiện ràng buộc Aeq*x = beq và A*x <= b. Có thể thiết lập A=[] và b=[] khi không tồn tại các ràng buộc phi tuyến. ƒ x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub) tương tự như trên, thiết lập thêm một tập điều kiện lb <= x <= ub. Có thể thiết lập Aeq=[] và beq=[] khi không tồn tại các ràng buộc tuyến tính. ƒ x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) tương tự như trên, thiết lập thêm một tập điều kiện các phương trình tuyến tính c(x) or hoặc phi tuyến ceq(x) được định nghĩa trong nonlcon. Có thể thiết lập lb=[] and/or ub=[] nếu không tồn tại. ƒ [x,fval] = fmincon(...) trả về giá trị hàm mục tiêu và giá trị của các biến ứng với hàm mục tiêu đó. ƒ [x,fval,exitflag] = fmincon(...) tương tự như trên, thêm một giá trị exitflag cho biết trạng thái của hàm fmincon. ƒ [x,fval,exitflag,output] = fmincon(...) trả về một cấu trúc output với thông tin về sự tối ưu hoá. ƒ [x,fval,exitflag,output,lambda] = fmincon(...) trả về một cấu trúc lambda trong Lagrange multipliers tại giải pháp tìm ra giá trị x. ƒ [x,fval,exitflag,output,lambda,grad] = fmincon(...) trả về giá trị gradient của fun tại giải pháp x. ƒ [x,fval,exitflag,output,lambda,grad,hessian] = fmincon(...)trả về giá trị của ma trận Hessian tại giải pháp x. Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Phan Thị Ngọc Mai Trang 84 Tham khảo Chỉ Mục B Biến nhị phân, 9, 14, 15, 16, 17, 19, 39 Branch and bound, 5, 18, 78 C Cấu trúc đặc biệt, 18 Chi phí, 1, 5, 7, 8, 9, 11, 14, 37, 38, 39, 40, 41, 44, 45, 49, 50, 75 Chi phí khởi tạo, 7 Cực tiểu cục bộ, 25 Cực tiểu toàn cục, 30 Cực trị, 28, 32 D Điểm dừng, 27, 30, 31, 33, 34, 35 Điều kiện ràng buộc, 15, 16, 19, 21, 23, 25, 27, 29, 30, 31, 32, 33, 34, 35, 38, 41, 58, 59, 63, 64, 65, 70, 71, 72 Độ tin cậy phần mềm, 1, 2, 5, 6, 7, 37, 41, 57, 62, 68, 79, 81 Độ tin cậy tối đa, 7, 9 Độ tin cậy tối thiểu, 7, 9 G Giải pháp, 22, 78 Giải thuật, 5, 15, 18, 19, 22, 23, 76 H Hàm lồi, 26 Hàm mục tiêu, 15, 19, 21, 23, 25, 27, 29, 30, 34, 35, 38, 39, 41, 44, 48, 49, 58, 59, 63, 64, 65, 69, 70, 71, 72 Hessian, 28, 30, 35 L Lagrangian, 32 M Ma trận, 28, 30, 31, 32, 33, 35, 36 Module đơn, 6, 7, 8, 9, 10, 12, 38, 40 Module mua, 2, 6, 7, 8, 9, 10, 12, 37, 38, 39, 40, 41, 58, 63, 65, 69, 71, 75, 76 Module phát triển, 2, 5, 7, 37, 38, 40, 41, 58, 59, 64, 65, 70, 71, 75, 76 Module tích hợp, 6, 7, 9, 10, 12, 13, 40, 41, 43 N Ngân sách, 1, 9, 11, 13, 14, 39, 40 P Phân hoạch, 37, 38 Phân phối chi phí, 2, 5, 6, 7, 8, 37, 39, 41, 57, 62, 68, 75, 76 Q Quy hoạch nguyên, 2, 5, 15, 16, 18, 38, 75 Quy hoạch phi tuyến 5, 27, 53, 75, 76 S Số lượng biến, 18 T Tập lồi, 26 Tối ưu, 2, 15, 16, 17, 18, 21, 22, 23, 24, 25, 27, 29, 30, 33, 34, 38, 40, 41, 55, 56, 60, 61, 75, 76 Tổng chi phí, 38 V Vector, 29, 31, 34, 35 Version, 7, 8, 9, 11, 14, 38, 39 X Xác định dương, 27, 28, 30, 33, 35, 36

Các file đính kèm theo tài liệu này:

  • pdfLuận văn tốt nghiệp Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm.pdf