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

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].

doc94 trang | Chia sẻ: Kuang2 | Lượt xem: 826 | 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
min) ∑ c i m (max) < B' < ∑ ci thì chuyển sang bước 4, ngược lại yêu cầu nhập lại. Bước 3: Nhập độ tin cậy phần mềm, chuyển sang bước 4 i =1 i =1 Bước 4: Tính ra độ tin cậy và chi phí cho từng module mua, chuyển sang bước 5. Bước 5: Thiết lập mối quan hệ và các ràng buộc giữa các module đơn và module tích hợp, chuyển sang bước 6. Bước 6: Tìm chi phí nhỏ nhất của các module trong phần mềm và độ tin cậy của các module ứng với chi phí đó. Nếu tìm ra chi phí thỏa mãn điều kiện thì chuyển sang bước 8, ngược lại chuyển sang bước 7. Bước 7: Nhập giai đoạn hiệu chỉnh. Khi Y=0 thì chuyển sang bước 1 và thực hiện lại bài toán, khi Y=1 thì chuyển sang bước 2, khi Y=2 thì chuyển sang bước 3. Bước 8: (Kết thúc) Xuất tổng chi phí của phần mềm, độ tin cậy của các module, chi phí của các module. Sơ đồ giải thuật 0  Begin Nhập các thông số của module chương trình 1 Nhập chi phí để mua các module (B’) ∑ c m (min) i m _ (max) ≤ B' ≤ ∑ ci 2 Y=0,1,2 i =1 i =1 + Nhập độ tin cậy của phần mềm (R) Yêu cầu chỉnh sửa (Y)  Tính chi phí và độ tin cậy của các module mua Thiết lập mối quan hệ, các điều kiện ràng buộc giữa các module đơn và module tích hợp Tìm chi phí nhỏ nhất và độ tin cậy của các module trong phần mềm _ Chi phí cung cấp thỏa mãn yêu cầu + Xuất: Tổng chi phí phần mềm, chi phí và độ tin cậy của các module End Hình 5.3: Sơ đồ giải thuật cho bài toán B Chương 6. Một số kết quả, kết luận Chương này trình bày một số kết quả đạt được của phần mềm trên 6 module, 11 module, 22 module, 37 module. 6.1. Sơ lược về chương trình Bài toán được chia thành nhiều bài toán nhỏ để giải quyết. Vì thế để chọn một ngôn ngữ lập trình phù hợp cũng cần được tính đến. Trong luận văn này ngôn ngữ được chọn để viết và kiểm nghiệm đó là ngôn ngữ MATLAB (xem phần phụ lục 3). MATLAB cung cấp một công cụ tính toán toán học và lập trình bậc cao dễ sử dụng, hiệu quả và thân thiện với người dùng. 6.2. Một số kết quả chạy chương trình 6.2.1. Bài toán trong ví dụ 3.4 Trong phần 3.4 chúng ta đã trình bày các bước để tìm lời giải cho ví dụ 3.4. Trong phần này xin trình bày cách thức để giải bài toán trong Matlab cho ví dụ 3.4 như sau: function vidu3_4 f = [5; 7; 10; 3; 1]; A = [-1 3 -5 -1 4; 2 -6 3 2 -2;0 1 -2 3 1]; b = [-2;0;-1]; [x, fval] = bintprog(f,A,b) Ta thu được kết quả như sau: x = 0 1 1 0 0, fval = 17. Trùng với kết quả đạt được trong phần 3.4. 6.2.2. Bài toán trong ví dụ 4.1.1 Tương tự như trên, trong phần 4.1 chúng ta đã trình bày các bước để tìm lời giải cho ví dụ 4.1.1 Trong phần này xin trình bày chương trình cho ví dụ 4.1.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; 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 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. 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’ y11 y12 y21 y22 [ x x ] [r r ] Độ tin cậy tối ưu ( r6 ) 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 3 6 3 5 Bảng 6.1: Kết quả chạy phần mềm có 6 module cho bài toán A Đối với bài toán B: 11 12 Độ tin cậy phần mềm ( r6 ) B’ y y y21 y22 [r r ] [ x x ] 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 3 5 3 6 Bảng 6.2: Kết quả chạy phần mềm có 6 module cho bài toán B 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: Module (11) Module (7) Module (10) Module (6) Module (2) Module (9) Module (5) Version 21 Version 22 Module (8) Module (3) Module (1) Module (4) Version 31 Version 32 Version 32 Version 11 Version 12 Version 13 Version 14 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: r11 = 0.7, c11 = 5; r12 = 0.75, c12 = 6; r13 = 0.8, c13 = 7; r14 = 0.9, c14 = 8 r21 = 0.77, c21 = 5.5; r22 = 0.92, c22 = 8; r31 = 0.75, c31 = 6.5; r32 = 0.79, c32 = 7; r33 = 0.93, c33 = 8 r (max) = 0.97, r (0) = 0.55,á = 0.4, x(0) = 5 4 4 4 4 r (max) = 0.98, r ( 0) = 0.47,á = 0.35, x(0) = 4.5 5 5 5 5 r (max) = 0.9, r (0) = 0.4,á = 0.45, x(0) = 3.5 6 6 6 6 r (max) = 0.97, r (0) = 0.35,á = 0.3, x(0) = 5.5 7 7 7 7 8 q8 = 0.9,á8 = 0.35, x(0) = 6.5 9 q9 = 0.95,á9 = 0.4, x(0) = 6 10 q10 q = 0.97,á10 = 0.98,á = 0.33, x( 0) = 7 = 0.3, x( 0) = 8 11 11 11 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: max r11 y11 + r12 y12 + r13 y13 + r14 y14 + r21 y21 + r22 y22 + r31 y31 + r32 y32 + r33 y33 Các điều kiện ràng buộc: c11 y11 + c12 y12 + c13 y13 + c14 y14 + c21 y21 + c22 y22 + c31 y31 + c32 y32 + c33 y33 ≤ B' y11 + y12 + y13 + y14 = 1 y21 + y22 = 1 y31 + y32 + y33 = 1 yij = 0 or 1 Đối với các module phát triển trong công ty: Hàm mục tiêu: 11 max (r (max) − r (min) )e−á11 ( x11 − x ( 0 ) ) 11 11 Các điều kiện ràng buộc: 11 ∑ xi ≤ B − B' i = 4 r (max) = r r r ; r (0) = q r (max) 11 6 7 10 11 11 11 ( 0 ) r = (r (max) − r (0) )e−á ( x − x ) 6 6 6 6 6 6 ( 0 ) r = (r (max) − r ( 0) )e−á ( x − x ) 7 7 7 7 7 7 10 r = (r (max) − r ( 0) )e−á10 ( x10 − x ( 0 ) ) , r (max) = r r r ; r ( 0) = q r (max) 10 10 10 10 2 5 9 10 10 10 ( 0 ) r = (r (max) − r (0) )e−á ( x − x ) 5 5 5 5 5 5 ( 0 ) r = (r (max) − r ( 0) )e−á ( x − x ) , r (max) = r r ;  r (0) = q r (max) 9 9 9 9 9 9 9 3 8 9 9 9 ( 0 ) r = (r (max) − r (0) )e−á ( x − x ) , r (max) = r r ;  r (0) = q r (max) 8 8 8 8 8 8 8 1 4 8 1 4 ( 0 ) r = (r (max) − r (0) )e−á ( x − x ) 4 4 4 i i x ≥ x(0) 4 4 4 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: max r11 y11 + r12 y12 + r13 y13 + r14 y14 + r21 y21 + r22 y22 + r31 y31 + r32 y32 + r33 y33 Các điều kiện ràng buộc: c11 y11 + c12 y12 + c13 y13 + c14 y14 + c21 y21 + c22 y22 + c31 y31 + c32 y32 + c33 y33 ≤ B' y11 + y12 + y13 + y14 = 1 y21 + y22 = 1 y31 + y32 + y33 = 1 yij = 0 or 1 Đối với các module phát triển trong công ty: Hàm mục tiêu: 11 Minimize∑ xi i =4 Các điều kiện ràng buộc: ( 0 ) (r (max) − r (min) )e −á11 ( x11 − x11 ) = R 11 11 r (max) = r r r ; r (0) = q r (max) 11 6 7 10 11 ( 0 ) 11 11 r = (r (max) − r (0) )e −á 6 ( x6 − x6 ) 6 6 6  ( 0 ) r = (r (max) − r (0) )e −á 7 ( x7 − x7 ) 7 7 7  ( 0 ) r = (r (max) − r ( 0) )e −á10 ( x10 − x10 ) , r (max) = r r r ; r (0) = q r (max) 10 10 10 10 2 5 9 10 10 10 ( 0 ) r = (r (max) − r (0) )e−á ( x − x ) 5 5 5 5 5 5 ( 0 ) r = (r (max) − r ( 0) )e−á ( x − x ) , r (max) = r r ;  r (0) = q r (max) 9 9 9 9 9 9 9 3 8 9 9 9 ( 0 ) r = (r (max) − r (0) )e−á ( x − x ) , r (max) = r r ;  r (0) = q r (max) 8 8 8 8 8 8 8 1 4 8 1 4 ( 0 ) r = (r (max) − r (0) )e−á ( x − x ) 4 4 4 i i x ≥ x(0) 4 4 4 Đối với bài toán A: B B’ yij [ x4 ,, x11 ] [ r4 ,, r10 ] Độ tin cậy tối ưu ( r11 ) 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 Đối với bài toán B: Độ tin cậy phần mềm ( r11 ) B’ yij [ x4 ,, x11 ] [ r4 ,, r10 ] 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 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 Module (22) Module (21) Module (20) Module (12) Module (19) Module (18) Module (11) Module (10) Module (17) Module (9) Module (16) Module (8) Module (15) Module (7) Module (6) Module (2) Module (14) Module (4) Version 21 Version 22 Module (13) Module (3) Module (1) Version 11 Version 12 Version 13 Version 14  Module (5) Version 31 Version 32 Version 32 Version 41 Version 42 Version 42 Version 42 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: r11 = 0.77, c11 = 8; r12 = 0.8, c12 = 8.5; r13 = 0.85, c13 = 9; r14 = 0.9, c14 = 10 r21 = 0.75, c11 = 5.5; r22 = 0.89, c22 = 8; r31 = 0.65, c21 = 6.5; r12 = 0.79, c12 = 7; r13 = 0.95, c13 = 8 r41 = 0.55, c41 = 6; r42 = 0.82, c42 = 6.5; r43 = 0.87, c43 = 7; r44 = 0.9, c44 = 9 r (max) = 0.97, r ( 0) = 0.37,á = 0.3, x(0) = 4 5 5 5 5 r (max) = 0.96, r (0) = 0.56,á = 0.4, x( 0) = 3 6 6 6 6 r (max) = 0.99, r (0) = 0.49,á = 0.5, x(0) = 5 7 7 7 7 r (max) = 0.95, r ( 0) = 0.5,á = 0.4, x(0) = 7 8 8 8 8 r (max) = 0.97, r ( 0) = 0.35,á = 0.35, x( 0) = 8 9 9 9 9 r (max) = 0.98, r ( 0) = 0.55,á = 0.25, x(0) = 6 10 10 10 10 r (max) = 0.99, r (0) = 0.46,á = 0.45, x(0) = 5 11 11 11 11 r (max) = 0.97, r (0) = 0.35,á = 0.4, x(0) = 7.5 12 12 12 12 q13 = 0.9,á13 = 0.25, x( 0) = 6.5 14 q14 = 0.95,á14 = 0.35, x( 0) = 6 15 q15 q = 0.97,á15 13 = 0.98,á = 0.3, x( 0) = 6.5 = 0.23, x(0) = 8 16 16 16 17 q17 = 0.9,á17 = 0.34, x(0) = 6.5 18 q18 = 0.95,á18 = 0.33, x(0) = 6 19 q19 = 0.97,á19 = 0.31, x( 0) = 8 20 q20 q21 q22 = 0.96,á 20 = 0.98,á 21 = 0.99,á 22 = 0.34, x( 0) = 7 21 = 0.35, x( 0) = 9 22 = 0.37, x(0) = 10 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: max r11 y11 + r12 y12 + r13 y13 + r14 y14 + r21 y21 + r22 y22 + r31 y31 + r32 y32 + r33 y33 + r41 y41 + r42 y42 + r43 y43 + r44 y44 Các điều kiện ràng buộc: c11 y11 + c12 y12 + c13 y13 + c14 y14 + c21 y21 + c22 y22 + c31 y31 + c32 y32 + c33 y33 + c41 y41 + c42 y412 + c43 y43 + c44 y44 ≤ B' y11 + y12 + y13 + y14 = 1, y21 + y22 = 1 y31 + y32 + y33 = 1, y41 + y42 + y43 + y44 = 1, yij = 0 or 1 Đối với các module phát triển trong công ty: Hàm mục tiêu: Maximize (r (max) − r (min) )e−á 22 ( x22 − x ( 0 ) ) 22 22 Các điều kiện ràng buộc: 22 ∑ xi ≤ B − B' i = 5 r (max) = r r , r (0) = q r (max) 22 20 20 22 22 22  ( 0 ) 22 r = (r (max) − r (0) )e−á 20 ( x20 − x20 ) , r (max) = r r , r (0) = q r (max) 20 20 20 20 ( 0 ) 17 18 20 20 20 r = (r (max) − r (0) )e−á 21 ( x13 − x21 ) , r (max) = r r , r (0) = q r (max) 21 21 21 19 ( 0 ) 11 19 21 21 21 r = (r (max) − r ( 0) )e−á19 ( x19 − x19 ) , r (max) = r r , r ( 0) = q r (max) 19 19 19 19 ( 0 ) 9 17 19 19 17 r = (r (max) − r (0) )e−á18 ( x18 − x18 ) , r (max) = r r , r (0) = q r (max) 18 18 18 18 ( 0 ) 10 16 18 18 18 r = (r (max) − r (0) )e−á17 ( x17 − x17 ) , r (max) = r r , r ( 0) = q r (max) 17 17 17 17 ( 0 ) 5 8 17 17 17 r = (r (max) − r ( 0) )e−á16 ( x16 − x16 ) , r (max) = r r , r ( 0) = q r (max) 16 16 16 16 ( 0 ) 6 7 16 16 16 r = (r (max) − r (0) )e−á15 ( x15 − x15 ) , r (max) = r r r , r (0) = q r (max) 15 15 15 15 ( 0 ) 2 4 14 15 15 15 r = (r (max) − r ( 0) )e−á14 ( x14 − x14 ) , r (max) = r r , r ( 0) = q r (max) 14 14 14 14 ( 0 ) 3 13 14 14 14 r = (r (max) − r (0) )e−á13 ( x13 − x13 ) , r (max) = r r , r ( 0) = q r (max) 13 13 13 13 ( 0 ) 1 5 13 13 13  ( 0 ) r = (r (max) − r (0) )e−á 5 ( x5 − x5 ) , r = (r (max) − r (0) )e−á 6 ( x6 − x6 ) 5 5 5 6 6 6 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á 7 ( x7 − x7 ) , r = (r (max) − r ( 0) )e−á 8 ( x8 − x8 ) 7 7 7 8 8 8 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á 9 ( x9 − x9 ) , r = (r (max) − r (0) )e−á10 ( x10 − x10 ) 9 9 9 10 10 10 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á11 ( x11 − x11 ) , r = (r (max) − r (0) )e−á12 ( x12 − x12 ) 11 11 11 12 12 12 i i x ≥ x(0) , i = 5,22 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 Minimize∑ xi i =5 Các điều kiện ràng buộc: ( 0 ) (r (max) − r (min) )e−á 22 ( x22 − x22 ) = R 22 22 r (max) = r r  , r (0) = q  r (max) 22 20 20 22 22 22  ( 0 ) r = (r (max) − r ( 0) )e−á 20 ( x20 − x20 ) 20 20 20 r (max) = r r , r (0) = q r (max) 20 17 18 20 20 20  ( 0 ) r = (r (max) − r ( 0) )e−á 21 ( x13 − x21 ) 21 21 21 r (max) = r r , r ( 0) = q r (max) 19 11 19 21 21 21  ( 0 ) r = (r (max) − r ( 0) )e−á19 ( x19 − x19 ) , r (max) = r r , r (0) = q r (max) 19 19 19 19 ( 0 ) 9 17 19 19 17 r = (r (max) − r (0) )e−á18 ( x18 − x18 ) , r (max) = r r , r (0) = q r (max) 18 18 18 18 ( 0 ) 10 16 18 18 18 r = (r (max) − r ( 0) )e−á17 ( x17 − x17 ) , r (max) = r r , r (0) = q r (max) 17 17 17 17 ( 0 ) 5 8 17 17 17 r = (r (max) − r ( 0) )e−á16 ( x16 − x16 ) , r (max) = r r , r (0) = q r (max) 16 16 16 16 ( 0 ) 6 7 16 16 16 r = (r (max) − r (0) )e−á15 ( x15 − x15 ) , r (max) = r r r , r (0) = q r (max) 15 15 15 15 ( 0 ) 2 4 14 15 15 15 r = (r (max) − r ( 0) )e−á14 ( x14 − x14 ) , r (max) = r r , r ( 0) = q r (max) 14 14 14 14 ( 0 ) 3 13 14 14 14 r = (r (max) − r (0) )e−á13 ( x13 − x13 ) , r (max) = r r , r (0) = q r (max) 13 13 13 13 ( 0 ) 1 5 13 13 13  ( 0 ) r = (r (max) − r (0) )e−á 5 ( x5 − x5 ) , r = (r (max) − r (0) )e−á 6 ( x6 − x6 ) 5 5 5 6 6 6 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á 7 ( x7 − x7 ) , r = (r (max) − r ( 0) )e−á 8 ( x8 − x8 ) 7 7 7 8 8 8 ( 0 )  ( 0 ) r = (r (max) − r ( 0) )e−á 9 ( x9 − x9 ) , r = (r (max) − r (0) )e−á10 ( x10 − x10 ) 9 9 9 10 10 10 ( 0 )  ( 0 ) r = (r (max) − r ( 0) )e−á11 ( x11 − x11 ) , r = (r (max) − r ( 0) )e−á12 ( x12 − x12 ) 11 11 11 12 12 12 i i x ≥ x(0) , i = 5,6,,22 Đối với bài toán A: B B’ yij [ x5 ,, x22 ] [r5 ,, r21 ] Độ tin cậy tối ưu ( r22 ) 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 Đối với bài toán B: Độ tin cậy phần mềm ( r22 ) B’ yij [ x5 ,, x22 ] [r5 ,, r21 ] 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 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 M_3 M_35 M_36 M_32 M_19 M_20 M_33 M_21 M_34 M_22 M_29 M_15 M_16 M_30 M_17 M_31 M_18 M_11 M_26 M_12 M_27 M_13 M_14 M_28 M_1 M_23 M_9 M_24 M_10 M_4 M_25 M_2 M_6 M_3 M_7 M_8 M_5 V 11 V 12 V 13  V 21 V 22 V 23  V 31 V 32 V 33 V 34 V 51 V 51 V 52 V 52 V 53 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: r11 = 0.77, c11 = 8; r12 = 0.8, c12 = 8.5; r13 = 0.85, c13 = 9; r21 = 0.76, c11 = 5.5; r22 = 0.89, c22 = 8; r23 = 0.94, c23 = 9; r31 = 0.8, c31 = 7; r32 = 0.84, c32 = 8.5; r33 = 0.89, c33 = 9; r34 = 0.95, c34 = 10; r41 = 0.81, c41 = 6; r42 = 0.86, c42 = 7; r43 = 0.9, c43 = 9; r51 = 0.83, c41 = 6.6; r52 = 0.96, c52 = 8; r (max) = 0.95, r (0) = 0.5,á = 0.35, x ( 0) = 4 6 6 6 6 r (max) = 0.98, r (0) = 0.3,á = 0.4, x ( 0) = 5 7 7 7 7 r (max) = 0.93, r (0) = 0.4,á = 0.3, x (0) = 7 8 8 8 8 r (max) = 0.97, r (0) = 0.3,á = 0.35, x (0) = 6 9 9 9 9 r (max) = 0.98, r (0) = 0.33,á = 0.25, x (0) = 8 10 10 10 10 r (max) = 0.96, r (0) = 0.4,á = 0.35, x(0) = 6 11 11 11 11 r (max) = 0.98, r ( 0) = 0.5,á = 0.35, x( 0) = 9 12 12 12 12 r (max) = 0.95, r ( 0) = 0.4,á = 0.3, x( 0) = 7 13 13 13 13 r (max) = 0.96, r (0) = 0.45,á = 0.4, x(0) = 8 14 14 14 14 r (max) = 0.96, r (0) = 0.4,á = 0.3, x(0) = 6 15 15 15 15 r (max) = 0.97, r (0) = 0.35,á = 0.36, x(0) = 9 16 16 16 16 r (max) = 0.96, r (0) = 0.4,á = 0.34, x(0) = 5 17 17 17 17 r (max) = 0.95, r ( 0) = 0.45,á = 0.35, x(0) = 8 18 18 18 18 r (max) = 0.9, r (0) = 0.5,á = 0.4, x(0) = 7.5 19 19 19 19 r (max) = 0.95, r ( 0) = 0.55,á = 0.3, x( 0) = 8.5 20 20 20 20 r (max) = 0.96, r (0) = 0.3,á = 0.35, x(0) = 9 21 21 21 21 r (max) = 0.97, r (0) = 0.4,á = 0.4, x( 0) = 10 22 22 22 22 24 q23 = 0.98,á 23 = 0.32, x( 0) = 10, q = 0.95,á 24 = 0.33, x(0) = 9 26 q25 = 0.91,á 25 = 0.35, x( 0) = 8, q = 0.99,á 26 = 0.4, x( 0) = 5 q27 q = 0.97,á 27 = 0.98,á = 0.35, x(0) = 7, q = 0.33, x(0) = 9, q = 0.94,á 28 23 25 27 28 = 0.94,á = 0.37, x(0) = 6 24 26 28 = 0.32, x( 0) = 7.5 29 29 29 30 30 30 q = 0.93,á = 0.34, x(0) = 8.6, q = 0.96,á = 0.36, x(0) = 8 31 31 31 32 32 32 q = 0.95,á = 0.38, x(0) = 9, q = 0.93,á = 0.39, x(0) = 11 33 33 33 34 34 34 q = 0.97,á = 0.33, x( 0) = 7, q = 0.98,á = 0.3, x( 0) = 9 35 q37 35 = 0.99,á37 35 36 37 = 0.33, x( 0) = 15 36 36 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: Max r11 y11 + r12 y12 + r13 y13 + r21 y21 + r22 y22 + r23 y23 + r31 y31 + r32 y32 + r33 y33 + r34 y34 + r41 y41 + r42 y42 + r43 y43 + r52 y52 + r52 y52 Các điều kiện ràng buộc: c11 y11 + c12 y12 + c13 y13 + c21 y21 + c22 y22 + c23 y23 + c31 y31 + c32 y32 + c33 y33c34 y34 + c41 y41 + c42 y42 + c43 y43 + c52 y52 + c52 y52 ≤ B' y11 + y12 + y13 = 1 y21 + y22 + y23 = 1 y31 + y32 + y33 + y34 = 1 y41 + y42 + y43 = 1 y51 + y52 = 1 yij = 0 or 1 Đối với các module phát triển trong công ty: Hàm mục tiêu: max (r  (max)  − r (min)  )e−á11  ( x37  37 − x( 0 ) ) 37 37 Các điều kiện ràng buộc: 37 ∑ xi ≤ B − B' i = 6 r (max) = r r , r (0) = q r (max) 37 35 36 37 37 37  ( 0 ) r = (r (max) − r ( 0) )e−á 36 ( x36 − x36 ) ; r (max) = r r r , r ( 0) = q r (max) 36 36 36 36 ( 0 ) 21 22 34 36 36 36 r = (r (max) − r (0) )e−á 35 ( x35 − x35 ) ; r (max) = r r r r , r (0) = q r (max) 35 35 35 35 ( 0 ) 19 20 32 33 35 35 35 r = (r (max) − r ( 0) )e−á 34 ( x34 − x34 ) ; r (max) = r r , r ( 0) = q r (max) 34 34 34 34 ( 0 ) 18 31 34 34 34 r = (r (max) − r (0) )e−á 33 ( x33 − x33 ) ; r (max) = r r , r (0) = q r (max) 33 33 33 33 ( 0 ) 17 30 33 33 33 r = (r (max) − r ( 0) )e−á 32 ( x32 − x32 ) ; r (max) = r r r , r ( 0) = q r (max) 32 32 32 32 ( 0 ) 15 16 29 32 32 32 r = (r (max) − r ( 0) )e−á 31 ( x31 − x31 ) ; r (max) = r r , r (0) = q r (max) 31 31 31 31 ( 0 ) 14 28 31 31 31 r = (r (max) − r ( 0) )e−á 30 ( x30 − x30 ) ; r (max) = r r r , r ( 0) = q r (max) 30 30 30 30 ( 0 ) 12 13 27 30 30 30 r = (r (max) − r (0) )e−á 29 ( x29 − x29 ) ; r (max) = r r , r ( 0) = q r (max) 29 29 29 29 ( 0 ) 11 26 29 29 29 r = (r (max) − r ( 0) )e−á 28 ( x 28 − x28 ) ; r (max) = r r , r (0) = q r (max) 28 28 28 28 ( 0 ) 4 25 28 28 28 r = (r (max) − r (0) )e−á 27 ( x27 − x27 ) ; r (max) = r r , r (0) = q r (max) 27 27 27 27 ( 0 ) 10 24 27 27 27 r = (r (max) − r (0) )e−á 26 ( x26 − x26 ) ; r (max) = r r r , r (0) = q r (max) 26 26 26 26 ( 0 ) 1 9 23 26 26 26 r = (r (max) − r ( 0) )e−á 25 ( x 25 − x25 ) ; r (max) = r r , r (0) = q r (max) 25 25 25 25 ( 0 ) 5 8 25 25 25 r = (r (max) − r (0) )e−á 24 ( x24 − x24 ) ; r (max) = r r , r ( 0) = q r (max) 24 24 24 24 ( 0 ) 3 7 24 24 24 r = (r (max) − r ( 0) )e−á 23 ( x23 − x23 ) ; r (max) = r r , r (0) = q r (max) 23 23 23 23 2 6 23 23 23 ( 0 ) r = (r (max) − r ( 0) )e−á 27 ( x 27 − x 27 ) ; r (max) = r r  , r ( 0) = q  r (max) 27 27 27 27 ( 0 ) 10 24 27 27 27 r = (r (max) − r ( 0) )e−á 26 ( x26 − x26 ) ; r (max) = r r r , r (0) = q r (max) 26 26 26 26 ( 0 ) 1 9 23 26 26 26 r = (r (max) − r (0) )e−á 25 ( x25 − x 25 ) ; r (max) = r r , r ( 0) = q r (max) 25 25 25 25 ( 0 ) 5 8 25 25 25 r = (r (max) − r ( 0) )e−á 24 ( x24 − x24 ) ; r (max) = r r , r ( 0) = q r (max) 24 24 24 24 ( 0 ) 3 7 24 24 24 r = (r (max) − r (0) )e−á 23 ( x 23 − x 23 ) ; r (max) = r r , r (0) = q r (max) 23 23 23 23 ( 0 ) 2 6 23 23 23  ( 0 ) r = (r (max) − r (0) )e−á 5 ( x5 − x5 ) , r = (r (max) − r (0) )e−á 6 ( x6 − x6 ) 5 5 5 6 6 6 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á 7 ( x7 − x7 ) , r = (r (max) − r ( 0) )e−á 8 ( x8 − x8 ) 7 7 7 8 8 8 ( 0 )  ( 0 ) r = (r (max) − r ( 0) )e−á 9 ( x9 − x9 ) , r = (r (max) − r (0) )e−á10 ( x10 − x10 ) 9 9 9 10 10 10 ( 0 )  ( 0 ) r = (r (max) − r ( 0) )e−á11 ( x11 − x11 ) , r = (r (max) − r ( 0) )e−á12 ( x12 − x12 ) 11 11 11 12 12 12 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á13 ( x13 − x13 ) , r = (r (max) − r (0) )e−á14 ( x14 − x14 ) 13 13 13 14 14 14 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á15 ( x15 − x15 ) , r = (r (max) − r (0) )e−á16 ( x16 − x16 ) 15 15 15 16 16 16 ( 0 )  ( 0 ) r = (r (max) − r ( 0) )e−á17 ( x17 − x17 ) , r = (r (max) − r ( 0) )e−á18 ( x18 − x18 ) 17 17 17 18 18 18 ( 0 )  ( 0 ) r = (r (max) − r ( 0) )e−á19 ( x19 − x19 ) , r = (r (max) − r (0) )e−á 20 ( x20 − x20 ) 19 19 19 20 20 20 ( 0 )  ( 0 ) r = (r (max) − r ( 0) )e−á 21 ( x 21 − x21 ) , r = (r (max) − r (0) )e−á 23 ( x23 − x23 ) 21 21 21 23 23 23 i i x ≥ x(0) , i = 6,,37 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: Maximizer11 y11 + r12 y12 + r13 y13 + r21 y21 + r22 y22 + r23 y23 + r31 y31 + r32 y32 + r33 y33 + r34 y34 + r41 y41 + r42 y42 + r43 y43 + r52 y52 + r52 y52 Các điều kiện ràng buộc: c11 y11 + c12 y12 + c13 y13 + c21 y21 + c22 y22 + c23 y23 + c31 y31 + c32 y32 + c33 y33c34 y34 + c41 y41 + c42 y42 + c43 y43 + c52 y52 + c52 y52 ≤ B' y11 + y12 + y13 = 1 y21 + y22 + y23 = 1 y31 + y32 + y33 + y34 = 1 y41 + y42 + y43 = 1 y51 + y52 = 1 yij = 0 or 1 Đối với các module phát triển trong công ty: Hàm mục tiêu: 37 Min∑ xi i = 6 Các điều kiện ràng buộc: ( 0 ) (r (max) − r (min) )e−á11 ( x37 − x37 ) = R 37 37 r (max) = r r  , r (0) = q  r (max) 37 35 36 37 37 37  ( 0 ) r = (r (max) − r ( 0) )e−á 36 ( x36 − x36 ) ; r (max) = r r r , r (0) = q r (max) 36 36 36 36 ( 0 ) 21 22 34 36 36 36 r = (r (max) − r (0) )e−á 35 ( x35 − x35 ) ; r (max) = r r r r , r ( 0) = q r (max) 35 35 35 35 19 20 32 33 35 35 35 ( 0 ) r = (r (max) − r (0) )e−á 34 ( x34 − x34 ) ; r (max) = r r , r ( 0) = q r (max) 34 34 34 34 ( 0 ) 18 31 34 34 34 r = (r (max) − r ( 0) )e−á 33 ( x33 − x33 ) ; r (max) = r r , r ( 0) = q r (max) 33 33 33 33 ( 0 ) 17 30 33 33 33 r = (r (max) − r (0) )e−á 32 ( x32 − x32 ) ; r (max) = r r r , r ( 0) = q r (max) 32 32 32 32 ( 0 ) 15 16 29 32 32 32 r = (r (max) − r ( 0) )e−á 31 ( x31 − x31 ) ; r (max) = r r , r ( 0) = q r (max) 31 31 31 31 ( 0 ) 14 28 31 31 31 r = (r (max) − r (0) )e−á 30 ( x30 − x30 ) ; r (max) = r r r , r (0) = q r (max) 30 30 30 30 ( 0 ) 12 13 27 30 30 30 r = (r (max) − r (0) )e−á 29 ( x29 − x29 ) ; r (max) = r r , r ( 0) = q r (max) 29 29 29 29 ( 0 ) 11 26 29 29 29 r = (r (max) − r ( 0) )e−á 28 ( x28 − x28 ) ; r (max) = r r , r (0) = q r (max) 28 28 28 28 ( 0 ) 4 25 28 28 28 r = (r (max) − r ( 0) )e−á 27 ( x27 − x27 ) ; r (max) = r r , r (0) = q r (max) 27 27 27 27 ( 0 ) 10 24 27 27 27 r = (r (max) − r (0) )e−á 26 ( x26 − x26 ) ; r (max) = r r r , r (0) = q r (max) 26 26 26 26 ( 0 ) 1 9 23 26 26 26 r = (r (max) − r ( 0) )e−á 25 ( x25 − x 25 ) ; r (max) = r r , r ( 0) = q r (max) 25 25 25 25 ( 0 ) 5 8 25 25 25 r = (r (max) − r (0) )e−á 24 ( x24 − x24 ) ; r (max) = r r , r (0) = q r (max) 24 24 24 24 ( 0 ) 3 7 24 24 24 r = (r (max) − r (0) )e−á 23 ( x 23 − x 23 ) ; r (max) = r r , r (0) = q r (max) 23 23 23 23 ( 0 ) 2 6 23 23 23  ( 0 ) r = (r (max) − r ( 0) )e−á 5 ( x5 − x5 ) , r = (r (max) − r ( 0) )e−á 6 ( x6 − x6 ) 5 5 5 6 6 6 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á 7 ( x7 − x7 ) , r = (r (max) − r (0) )e−á 8 ( x8 − x8 ) 7 7 7 8 8 8 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á 9 ( x9 − x9 ) , r = (r (max) − r ( 0) )e−á10 ( x10 − x10 ) 9 9 9 10 10 10 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á11 ( x11 − x11 ) , r = (r (max) − r (0) )e−á12 ( x12 − x12 ) 11 11 11 12 12 12 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á13 ( x13 − x13 ) , r = (r (max) − r ( 0) )e−á14 ( x14 − x14 ) 13 13 13 14 14 14 ( 0 )  ( 0 ) r = (r (max) − r ( 0) )e−á15 ( x15 − x15 ) , r = (r (max) − r ( 0) )e−á16 ( x16 − x16 ) 15 15 15 16 16 16 ( 0 )  ( 0 ) r = (r (max) − r ( 0) )e−á17 ( x17 − x17 ) , r = (r (max) − r ( 0) )e−á18 ( x18 − x18 ) 17 17 17 18 18 18 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á19 ( x19 − x19 ) , r = (r (max) − r ( 0) )e−á 20 ( x20 − x20 ) 19 19 19 20 20 20 ( 0 )  ( 0 ) r = (r (max) − r (0) )e−á 21 ( x21 − x21 ) , r = (r (max) − r (0) )e−á 23 ( x23 − x23 ) 21 21 21 23 23 23 i i x ≥ x(0) , i = 6,,37 Đối với bài toán A: B B’ yij [ x6 ,, x37 ] [r6 ,, r36 ] Độ tin cậy tối ưu ( r37 ) 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 Đối với bài toán B: Độ tin cậy phần mềm ( r37 ) B’ yij [ x6 ,, x37 ] [r6 ,, r36 ] 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 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í. ƒ 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. 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 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 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 m(t ) = ∫ ë (s)ds 0 Hàm độ tin cậy của phần mềm là: R(t ) = e− m (t ) = e  t − ∫ ë ( s ) ds 0 Tên mô hình Loại mô hình MVF (m(t)) Goel-Okumoto (G-O) Concave m(t) = a(1 − e−bt ) a(t) = a b(t) = b Delayed S-shaped S-shaped m(t ) = a(1 − (1 + bt )e−bt ) a(t) = a b 2t b(t ) = 1 + bt Inflection S-shaped Concave a(1 − e−bt ) m(t) = 1 + âe−bt a(t) = a b(t) = b 1 + âe−bt Yamade exponential Concave ( − ât ) m(t ) = a(1 − e− rá (1−e ) ) a(t ) = a b(t ) = ráâte −ât Yamada Rayleigh S-shaped ( − ât 2 / 2 ) m(t ) = a(1 − e −rá (1−e ) ) a(t ) = a b(t ) = ráâte −ât 2 / 2 Yamada imperfect debugging model (1) S-shaped m(t ) = ab (eát − e−bt ) á + b a(t ) = aeát b(t) = b Yamada imperfect debugging model (2) S-shaped m(t ) = a[1 − e−bt ][1 − á ] + áat b a(t ) = aeát b(t ) = b Pham-Nordmann S-shaped và concave a[1 − e−bt ][1 − á ] + áat m(t) = b 1 + â −bt a(t ) = a(1 + át) b(t) = b 1 + âe −bt Pham-Zhang S-shaped và concave m(t ) = 1 [(c + a)(1 − e −bt ) 1 + â −bt − a (e−át − e −bt )] b − á a(t ) = c + a(1 − e −át ) b(t ) = b 1 + âe−bt 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ỉ www.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: Minimize f .y các điều kiện ràng buộc: A.y ≤ b Aeq.y = beq trong đó: ƒ f , b, beq : các vector ƒ A, Aeq : 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ả: ƒ y = bintprog(f): giải quyết bài toán lập trình số nguyên nhị phân có dạng: Minimize f .y ƒ 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: Min f .y với điều kiện ràng buộc: A.y ≤ b ƒ 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: Minimize f .y với điều kiện ràng buộc: A. y ≤ b Aeq.y = beq ƒ [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 f ( x) Các điều kiện ràng buộc: c( x) ≤ 0 ceq( x) = 0 A * x ≤ b Aeq * x = beq lb ≤ x ≤ ub Trong đó ƒ x, b, beq, lb, ub là các vector ƒ A, Aeq là các ma trận. ƒ c( x), ceq( x) là các hàm trả về các vertor ƒ f ( x), c( x), ceq( x) 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. ƒ 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. 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:

  • doc8097.doc
Tài liệu liên quan