Bài giảng Qui hoạch tuyến tính PGS TS Lê Anh Vũ Chương 2 PHƯƠNG PHÁP ĐƠN HÌNH Phương pháp đơn hình do G B Dantzig đề xuất năm 1947 cho đến hiện nay vẫn là phương pháp được sử dụng nhiều nhất trong[.]
Bài giảng Qui hoạch tuyến tính Chương : PGS-TS Lê Anh Vũ PHƯƠNG PHÁP ĐƠN HÌNH Phương pháp đơn hình G.B Dantzig đề xuất năm 1947 phương pháp sử dụng nhiều việc giải toán qui hoạch tuyến tính Đối với tốn cỡ lớn (có thể đến hàng nghìn biến hàng trăm ràng buộc) phải dùng đến máy tính, phương pháp đơn hình kiểm nghiệm qua chục năm áp dụng hiệu quả, với thời gian tính tốn ngắn §1 CƠ SỞ CỦA PHƯƠNG PHÁP ĐƠN HÌNH Phương pháp đơn hình giải toán QHTT dựa hai tính chất quan trọng sau của bài toán QHTT: a) Nếu toán qui hoạch tuyến tính chính tắc có phương án tối ưu thì cũng có phương án cực biên tối ưu, nghĩa là có ít nhất một đỉnh của miền ràng buộc là lời giải của bài toán b) Mỗi điểm cực tiểu địa phương của hàm tuyến tính miền ràng buộc D (một tập hợp lồi) là một điểm cực tiểu tuyệt đối Tính chất a) cho phép tìm phương án tối ưu số các phương án cực biên của bài toán (số này là hữu hạn) Tính chất b) cho phép kiểm tra tối ưu đối với một phương án cực biên (đỉnh) chỉ cần so sánh nó với các đỉnh lân cận (đỉnh kề) là đủ Vì thế, phương pháp đơn hình bắt đầu từ một phương án cực biên nào đó (tuỳ ý) của bài toán (tức một đỉnh của miền ràng buộc) Tiếp đó kiểm tra xem phương án hiện có đã phải là phương án tối ưu hay chưa, bằng cách so sánh giá trị hàm mục tiêu tại đỉnh đó với giá trị hàm mục tiêu tại các đỉnh kề với nó Nếu đúng thì dừng quá trình tính toán Trái lại, phương pháp sẽ cho cách tìm một phương án cực biên mới tốt (với giá trị hàm mục tiêu nhỏ hơn) mà nó là một đỉnh kề với đỉnh trước đó Quá trình này tiến hành cho tới tìm được phương án tối ưu hoặc phát hiện bài toán đã cho không có lời giải Như vậy, phương pháp đơn hình tiến hành khảo sát các đỉnh của miền ràng buộc để tìm đỉnh tối ưu Mặc dù số đỉnh của bài toán nói chung rất lớn, thực tế phương pháp này chỉ đòi hỏi kiểm tra một phần tương đối nhỏ các đỉnh Chính điều đó thể hiện hiệu quả thực tế của phương pháp đơn hình §2 THUẬT TỐN ĐƠN HÌNH Để giải bìa tốn QHTT (G) phương pháp đơn hình ta thực bước 25 Bài giảng Qui hoạch tuyến tính PGS-TS Lê Anh Vũ • Bước chuẩn bị: Đưa (G) dạng tắc chuẩn (N) cần • Bước 1: Xác định PACB xo xuất phát, biến hệ số sở (Nếu toán dạng (N) PACB tìm dễ dàng từ ma trận sơ cấp A – bảng đơn hình bước 2, ma trận sơ cấp giả định ma trận đơn vị cấp m tạo thành từ m dịng m cột đầu tiên, PACB xuất phát x0 = (b1, b2, …, bm, 0, …, 0)) • Bước 2: Lập bảng đơn hình, tính giá trị hàm mục tiêu số ước lượng ∆j Hệ số sở c1 c2 cm Biến sở x1 x2 xm Bảng Ở PA CB b1 b2 bm x1 c1 x2 …… xm c2 …… cm …… …… …… …… …… …… f (x0) 0 …… xm+1 …… cm+1 …… a1,m+1 …… a2,m+1 …… …… …… …… am,m+1 …… xn cn a1n a2n amn λi ∆m+1 …… ∆n f(x0) = c1b1 + c2b2 + … + cmbm; ∆j = (j=1,…, m); ∆j = m ∑c a i =1 i ij − cj ; m +1 ≤ j ≤ n • Bước 3: Kiểm tra điều kiện tối ưu (Đối với toán MIN) a) Nếu ∆ j ≤ phương án xét tối ưu → STOP b) Nếu tồn ∆ j > mà aij ≤ hàm mục tiêu khơng bị chặn, tốn cho vơ nghiệm → STOP c) Nếu tồn ∆ j > với ∆ j > có aij > phương án xét chưa tối ưu → Làm tiếp bước • Bước 4: Cải tiến PACB xét để PACB tốt (Đối với toán MIN) a) Chọn biến xv cho ∆ v = max{∆ j > 0} để đưa vào 26 Bài giảng Qui hoạch tuyến tính PGS-TS Lê Anh Vũ b) Chọn biến cũ xr cho λr = min{λi = bi / aiv > 0} để đưa aiv c) Tiếp theo chọn dòng thứ r làm dòng xoay, cột thứ v làm cột xoay, phần tử arv làm phần tử xoay biến đổi sơ cấp để bảng đơn hình với PACB tốt Cách biến đổi bảng đơn hình để nhận bảng PACB tốt • Đởi cợt biến sở: biến sở mới là x v thay cho biến sở cũ là x r ở dòng r • Đổi cột hệ số sở: hệ số cv thay cho hệ sớ cr ở dòng r • Biến đởi dòng xoay: Dòng mới = dòng cũ / phần tử xoay, Nghĩa là chia mỗi phần tử ở dòng xoay cho phần tử xoay (a rv > 0) Kết quả nhận được gọi là dòng chính (số xuất hiện ở vị trí của arv cũ) • Biến đởi các dòng khác theo qui tắc hình chữ nhật: Dòng mới = dòng cũ tương ứng - phần tử của nó cợt xoay × dòng chính, nghĩa là Cợt ≠ cột xoay Cột xoay (cột v) Dòng ≠ dòng xoay : a b a’ = a – b × c Dòng (dịng r mới) : c Sau lặp lại bước 2, 3, P.A.C.B tối ưu dừng kết luận đáp số tốn cho Chú ý • Ở bước kiểm tra điều kiện tối ưu toán MAX, ta làm sau: a) Nếu ∆ j ≥ phương án xét tối ưu → STOP b) Nếu tồn ∆ j < mà aij ≤ hàm mục tiêu khơng bị chặn, tốn cho vô nghiệm → STOP c) Nếu tồn ∆ j < mà với ∆ j < có aij > phương án xét chưa tối ưu → Làm tiếp bước 27 Bài giảng Qui hoạch tuyến tính PGS-TS Lê Anh Vũ • Cịn bước cải tiến PACB toán MAX, ta làm sau: a) Chọn biến xv cho ∆ v = min{∆ j < 0} để đưa vào bi / aiv > 0} để đưa aiv c) Tiếp theo chọn dòng thứ r làm dòng xoay, phần tử arv làm phần tử b) Chọn biến cũ xr cho λr = min{λi = xoay biến đổi sơ cấp để bảng đơn hình • Cũng quy tốn MAX tốn MIN ngược lại cách đối dấu hàm mục tiêu • Dấu hiệu tốn vơ số nghiệm: Khi kiểm tra điều kiện tối ưu bước 3, ∆ j ≤ (đối với toán MIN) ∆ j ≥ (đối với toán MAX) đồng thời tồn ∆ j = ứng với biến phi sở x j tốn có vơ số nghiệm • Cách tìm hết tất PATU tốn QHTT: Giả sử tìm PATU x Khi giải hệ gồm phương trình f ( x) = f ( x ) ràng buộc ta tất PATU toán cho Ví dụ Giải bài toán qui hoạch tuyến tính (N) sau f = x1 – x2 – 2x4 + 2x5 – 3x6 → min, với các điều kiện x1 x2 + x4 + x5 - x6 = 2, + x4 + x6 = 12, x3 + 2x4 + 4x5 + 3x6 = 9, xj ≥ 0, j = 1, 2, , Cho x4 = x5 = x6 = ta được phương án cực biên ban đầu x0 = (2; 12; 9; 0; 0; 0) với trị mục tiêu f0 = -10 Cơ sở của x0 là {A1, A2, A3}, tức J0 = {1, 2, 3} Các biến sở là x1, x2, x3 Các biến phi sở là x4, x5, x6 Các hệ số sở c1= 1, c2 = – 1, c3 = Bảng đơn hình đầu tiên sau: Hệ số sở Biến sở PACB x1 x2 -1 x3 x4 -2 x5 x6 -3 λi –1 x1 x2 12 0 0 1 –1 12 28 Bài giảng Qui hoạch tuyến tính x3 Bảng -10 PGS-TS Lê Anh Vũ 0 0 –1 9/2 Trong dòng mục tiêu (dòng cuối) còn ∆4 = > 0, ∆ = 1> cột chứa số ước lượn dương có hệ số dương nên phương án x ở bảng này chưa tối ưu Ta cần biến đổi bảng để dược PACB tốt • Biến sở cần đưa vào x4 (ứng với ∆4 = lớn nhất) • Biến loại khỏi sở là x1 (ứng với λ1 = min{2, 12, 9/2} = nhỏ nhất) • Phần tử xoay là a14 = (trong ô được tô bóng mờ) Biến đổi bảng theo các qui tắc đã nêu ta nhận được bảng Hệ số sở Biến sở PACB x1 –2 –1 x4 x2 10 x3 Bảng x2 –1 x3 –1 –2 –14 –2 x4 –2 x5 x6 –3 1 –1 0 –1 5 0 –3 λi Trong dòng cuối của bảng này còn phần tử ∆6 = > cột chứa có hai hệ số dương nên phương án ở bảng này chưa tối ưu Ta cần biến đổi bảng để dược PACB tốt • Biến sở cần đưa vào x6 (ứng với ∆6 = lớn nhất) • Biến loại khỏi sở là x3 (ứng với tỉ số nhỏ nhất λ3 = min{5, 1} = 1) 29 Bài giảng Qui hoạch tuyến tính PGS-TS Lê Anh Vũ • Phần tử xoay là a36 = Biến đổi bảng ta nhận được bảng Hệ số sở Biến sở PACB x1 –2 –1 –3 x4 x2 x6 Bảng x2 –1 x3 3/5 –1/5 –2/5 –17 –4/5 x4 –2 x5 x6 –3 1/5 7/5 –2/5 –9/5 0 1/5 2/5 –3/5 –21/5 λi Trong bảng này mọi ∆k ≤ 0, nên phương án x* = (0; 8; 0; 3; 0; 1) là PATU với fmin = f(x*) = – 17 Ví dụ Ví dụ sau cho thấy bài toán không có phương án tối ưu f = x2 – 3x3 + 2x5 → min, x1 + x2 – x3 + x5 = 7, – 4x2 + 4x3 + x4 = 12, –5x2 + 3x3 + x5 + x6 = 10, xj ≥ 0, j = 1, 2, , Ta giải bài toán bằng phương pháp đơn hình, xuất phát từ phương án cực biên x0 = (7, 0, 0, 12, 0, 10) với sở là các véctơ cột đơn vị A 1, A4, A6, tức là J0 = {1, 4, 6} Lập bảng đơn hình thự tính tốn biến đổi theo thuật tốn đơn hình ta được: Biến sở Hệ số CB Phương án x1 x2 x3 -3 x4 x5 x6 x1 1 -1 x4 12 -4 0 x6 10 -5 1 10/3 0 -1 -2 10 0 1/4 Bảng x1 30 λi Bài giảng Qui hoạch tuyến tính PGS-TS Lê Anh Vũ x3 -3 -1 1/4 0 x6 -2 -3/4 1 -9 -3/4 -2 Bảng Trong bảng có ∆2 = > mọi phần tử a i2 ≤ (i = 1, 2, 3) nên bài toán không có PATU (vì hàm mục tiêu của bài toán giảm vô hạn miền ràng buộc của nó) Nói cách khác, tốn QHTT cho khơng có lời giải Chú ý: Bài toán tìm g → max được thay bằng bài toán tìm f = – g → Ví dụ Giải bài toán qui hoạch tuyến tính sau f = 3x1 – x2 – 2x3 –x1 + 3x2 + x3 + x4 3x1 – 4x2 + 8x3 + x5 4x1 – 2x2 + x6 xj ≥ 0, j = 1, 2, , → max, = 7, = 10, = 12, Ta thay f bằng g = – f = – 3x1 + x2 + 2x3 → với cùng các điều kiện Xuất phát từ phương án cực biên x = (0, 0, 0, 7, 10, 12), ta giải bài toán bằng phương pháp đơn hình (các Bảng - 3) Lời giải thu được là x* = (5, 4, 0, 0, 11, 0) với gmin = –11 Từ đó fmax = 11 Biến sở Hệ số CB Phương án x1 -3 x2 x3 x4 x5 x6 x4 -1 1 0 x5 10 -4 10/3 x6 12 -2 0 3 -1 -2 0 10 0 5/2 -5/2 -1/2 0 1/4 -3/4 1/4 -9 1/2 -2 0 -3/4 11 0 2/5 2/5 1 1/10 -1/2 Bảng x4 x5 x1 0 -3 Bảng x2 x5 31 λi Bài giảng Qui hoạch tuyến tính x1 -3 Bảng PGS-TS Lê Anh Vũ 1/5 1/5 3/10 -11 0 -11/5 -1/5 -4/5 32 Bài giảng Qui hoạch tuyến tính Ví dụ PGS-TS Lê Anh Vũ Giả toán (C) : f(x) = 3x1 – 3x2 + x3 – x4 → min, –x1 + x2 + 2x3 + x4 = 2, x1 + x2 – x3 – x4 = 6, 3x1 + 2x2 – 6x3 + 3x4 = 9, x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ Đưa vào ba biến giả x5, x6, x7 ≥ với hệ số giả M > (đủ lớn) ta bài toán (N) F = 3x1 – 3x2 + x3 – x4 + M (x5 + x6 + x7) → min, –x1 + x2 + 2x3 + x4 + x5 = 2, x1 + x2 – x3 – x4 + x6 = 6, 3x1 + 2x2 – 6x3 + 3x4 + x7 = 9, xj ≥ (j = 1, 2, 3, 4, 5, 6, 7) Ta giải bài toán (N) bằng phương pháp đơn hình, xuất phát từ phương án cực biên x = (0, 0, 0, 0, 2, 6, 9) Quá trình giải bài toán (N) được ghi tóm tắt các bảng sau (Bảng - 4) Biến sở CB Phương án x5 x6 x7 M M M Bảng 17M x2 -3 x6 M x7 M Bảng x2 -3 x6 M x1 Bảng x2 -3 x3 x1 9M-6 2M-6 Bảng x1 -1 3M3 -1 x2 -3 1 x3 -1 -6 4M +3