TUYẾN TÍNH HAI MỤC TIÊU

Một phần của tài liệu Bài toán quy hoạch tuyến tính với hàm mục tiêu phụ thuộc tham số (Trang 25)

Chương này đề cập tới bài toán qui hoạch tuyến tính đa mục tiêu, trình bày ứng dụng thuật toán đơn hình tham số giải bài toán qui hoạch tuyến tính với hai mục tiêu và nêu ví dụ minh họa cho thuật toán giải. Nội dung chính của chương được tham khảo chủ yếu từ các tài liệu [2] và [6].

2.1 QUI HOẠCH TUYẾN TÍNH ĐA MỤC TIÊU

2.1.1 Nội dung bài toán

Trong thực tiễn ta hay gặp các bài toán tối ưu với nhiều hàm mục tiêu khác nhau, thường không hòa hợp với nhau. Chẳng hạn, trong sản xuất người quản lý mong muốn đạt lợi nhuận cao nhất, chi phí thấp nhất hoặc đạt hiệu quả lớn nhất, tổn thất nhỏ nhất, ...

Qui hoạch tuyến tính đa mục tiêu có dạng như sau, ký hiệu là (MP).

maxz = c1x, c2x, ... , cpx (MP) với điều kiện Ax 6 b, x > 0, trong đó c1, c2, ..., cp ∈ Rn là p véctơ (hàng), A∈ Rm×n, b ∈ Rn và x ∈ Rn là véctơ (cột) các biến cần tìm.

Gọi C là ma trận p×n với p véctơ hàng c1, c2, ..., cp. Bài toán có thể viết thành:

V max{Cx : Ax 6 b, x > 0}.

cả các mục tiêu, trừ ra một số trường hợp rất đặc biệt nào đó.

Ví dụ 2.1. Một chủ nhà máy muốn làm cực đại đồng thời hai mục

tiêu

maxz1 = 50x1 + 70x2 + 80x3 (cực đại lợi nhuận)

minz2 = 40x1 + 20x2 + 10x3 (cực tiểu chi phí)

(max−z2 = −40x1 −20x2 −10x3)

trên miền chấp nhận được xác định bởi hệ bất phương trình tuyến tính

             2x1 + 3x2 + 4x3 6 30 3x2 + 4x3 6 12 x1 + 2x2 + 3x3 6 16 x1 > 0, x2 > 0, x3 > 0

Giải theo thuật toán đơn hình cho thấy lời giải tối ưu đối với mục tiêu z1 (cực đại lợi nhuận) là (x1, x2, x3) = (15, 0, 0) với giá trị tối ưu

z1 = 750. Tuy nhiên lời giải này lại cho giá trị z2 khá cao (bằng 600). Mặt khác, nếu tìm cực tiểu theo mục tiêu z2 (cực tiểu chi phí) ta sẽ nhận được lời giải (x1, x2, x3) = (0, 0, 0) với giá trị tối ưu z2 = 0. Lời giải này lại cho giá trị z1 quá thấp (bằng 0).

2.1.2 Tiếp cận theo tối ưu Pareto và tiếp cận theo trọng số

Câu hỏi đặt ra là nên giải quyết hai mục tiêu đối lập này như thế nào? Với nhiều hàm mục tiêu cũng nảy ra vấn đề tương tự. Có một số cách tiếp cận khác nhau cho vấn đề này. Sau đây ta trình bày cách tiếp cận theo tối ưu Pareto và cách tiếp cận theo trọng số.

Định nghĩa 2.1. Ký hiệu D = {x ∈ Rn : Ax 6 b, x > 0} là miền

chấp nhận được của bài toán (MP). Ta nói điểm x¯ ∈ D là nghiệm tối

ưu Pareto (Pareto-optimal solution) hay điểm hữu hiệu của (MP) nếu

với bất kỳ x ∈ D, x 6= ¯x mà có chỉ số k ∈ {1, ..., p} với ckx > ckx¯ thì phải có chỉ số q 6= k sao cho cqx < cqx¯ .

Nói cách khác, x¯ ∈ D là nghiệm tối ưu Pareto của (MP) nếu ∃¯x ∈ D

sao cho Cx > Cx, Cx¯ 6= Cx¯, tức là cix > cix¯ với mọi i = 1, ..., p và có ít nhất một k ∈ {1, ..., p} để ckx > ckx¯.

Định nghĩa 2.2.Cách tiếp cận theo trọng số là gán cho mỗi hàm mục tiêu ckx một số λk, gọi là trọng số (weight) của mục tiêu ckx và sau đó, tìm cực đại tổng theo trọng số (weighted sum) của các mục tiêu, tức là giải bài toán

max{(λ1c1 +λ2c2 +...+ λpcp)x :Ax 6 b, x > 0}.

Chẳng hạn ở Ví dụ 2.1, nếu ta cho mục tiêu z1 trọng số 2 và mục tiêu −z2 trọng só 1 thì tổng theo trọng số của các mục tiêu là

2 (50x1 + 70x2 + 80x3)−(40x1 + 20x2 + 10x3) = 60x1+ 120x2+ 150x3

và (x1, x2, x3) = (10, 3, 0) sẽ là điểm có tổng các mục tiêu theo trọng số lớn nhất với giá trị mục tiêu 2z1 −z2 = 960. (adsbygoogle = window.adsbygoogle || []).push({});

Định lý sau nêu mối liên hệ giữa hai cách tiếp cận này.

Định lý 2.1. Với điểm bất kỳ xˆ ∈ D của (MP), hai điều sau tương

đương:

(i) xˆ là một nghiệm tối ưu Pareto,

(ii) tồn tại các trọng số dương λ1, ... , λp sao cho xˆ là một nghiệm

tối ưu của bài toán qui hoạch tuyến tính:

max{cx¯ : Ax 6 b, x > 0}, trong đó c¯= p P k=1 λkck = λTCx với λ = (λ1, ... , λp)T.

Chứng minh. (i) ⇒ (ii). Giả sử xˆ ∈ D là nghiệm tối ưu Pareto

của bài toán (MP). Khi đó, tập lồi đa diện M0 = {y ∈ Rp : y = Cx−Cx0, x ∈ D} không chứa véctơ y > 0, y 6= 0. Do đó, nón lồi đa diện M = {ty : y ∈ M0, t> 0} cũng không chứa véctơ y nào như thế. Vì vậy, nếu N là đa diện lồi xác định bởi

N = {z ∈ Rp :

p X

i=1

zi = 1, zi > 0,∀i}

thì M∩N = ∅. Do M, N lồi đóng và N giới nội nên theo định lý tách II trong giải tích lồi (xem [2], Định lý 2.2, tr. 10), có tồn tại véctơ λ ∈ Rp

sao cho

Cho y = 0 và z = ei(véctơ đơn vị thứ i trong Rp), ta được λi > 0

với mọi i. Để hoàn thành chứng minh ta cần chỉ ra rằng xˆ đạt cực đại của λTCx trên D. Thật vậy, nếu trái lại thì λT(Cx−Cx0) > 0 với một x nào đó thuộc D. Khi đó, véctơ yt = t(Cx−Cx0) ∈ M với mọi t> 0

và λTyt → +∞ khi t →+∞. Điều này trái với bất đẳng thức (2.1). Vì vậy, λ thỏa mãn (ii).

(ii) ⇒ (i) Cho điểm xˆ ∈ D. Giả sử không phải là nghiệm tối ưu Pareto của bài toán (MP) thì theo Định nghĩa 2.1, tồn tại x ∈ D, sao cho ckx > ckxˆ với một chỉ số k nào đó thuộc {1, ... , p}, đồng thời

cix > cixˆ với mọi i = 1, ... , p. Nhưng khi đó với bất kỳ các trọng số dương λ1, ... λp ta sẽ có λkckx > λkckxˆ và λicix > λicixˆ với mọi ci

khác. Do đó ¯ cx = p X k= 1 λkckx > p X k= 1 λkckxˆ= ¯cx,ˆ

và vì thế xˆ không thể thỏa mãn (ii). Vậy (ii) ⇒(i).

2.2 QUI HOẠCH TUYẾN TÍNH HAI MỤC TIÊU

2.2.1 Thuật toán đơn hình tham số

Cho hai hàm mục tiêu tuyến tính fi(x) =cix (i = 1, 2) với c1, c2 ∈

Rn là hai véctơ hàng và x ∈ Rn là véctơ cột. Cho ma trận A∈ Rm×n và véctơ cột b∈ Rm. Ký hiệu C là ma trận 2×nvới hàng i là ci (i = 1, 2). Xét bài toán qui hoạch tuyến tính hai mục tiêu có dạng:

V max{Cx: Ax = b, x > 0}. (2.2) (Ràng buộc bất đẳng thức Ax 6 b có thể đưa về dạng Ax + z = b

với z > 0, là các biến bù). Giả thiêt rank(A) = m 6 n và D =

{x ∈ Rn :Ax = b, x > 0} 6= ∅.

Tương tự Định lý 2.1 ta có thể tìm tất cả các nghiệm tối ưu Pareto (điểm hữu hiệu) của bài toán (2.2) nhờ giải qui hoạch tuyến tính phụ thuộc tham số (adsbygoogle = window.adsbygoogle || []).push({});

với véctơ tham số λ = (λ1, λ2) > 0.

Ta có thể chia hàm mục tiêu cho λ1+λ2 > 0 mà không làm thay đổi lời giải tối ưu của bài toán tham số. Bằng cách đặt t1 = λ1/(λ1 + λ2)

và t2 = λ2/(λ1 +λ2) thì t1 + t2 = 1 hay t2 = 1−t1 và 0 < t1, t2 < 1. Vì thế, thay cho bài toán tối ưu véctơ (2.2), ta có thể xét bài toán qui hoạch tuyến tính với một tham số0 < λ < 1và véctơ hệ số mục tiêu (véctơ hàng) phụ thuộc tham sốc(λ) = λc1+(1−λ)c2 = c2+λ c1 − c2

có dạng:

P(λ) max{c(λ)x :Ax = b, x > 0}. (2.3) Giả sử B là một cơ sở chấp nhận được: B gồm chỉ số của m véctơ cột độc lập tuyến tính của A. Xét phân hoạch A = (AB, AN) với N gồm chỉ số của n - m véctơ cột còn lại của A và c1 = (c1B, c1N) và c2 = (c2B, c2N), trong đó c1B và c2B là véctơ (hàng) hệ số mục tiêu của các biến cơ sở tương ứng với c1 và c2; còn c1N và c2N là véctơ (hàng) hệ số mục tiêu của các biến phi cơ sở tương ứng với c1, c2.

Tính véctơ hệ số mục tiêu rút gọn (ước lượng của các biến phi cơ sở):

∆N(λ) = λ∆1N + (1−λ)∆2N = ∆2N +λ(∆1N −∆2N), (2.4) trong đó ∆1N = c1BAB−1AN −c1N và ∆2N = c2N −c2BAB−1AN −c1N.

Giả sử B là cơ sở tối ưu của bài toán (2.3) với λ = t0 nào đó

(0 < t0 < 1). Khi đó, theo tiêu chuẩn tối ưu trong thuật toán đơn hình (đối với bài toán max) thì véctơ ước lượng ∆N (t0) > 0. Xét hai trường hợp xảy ra:

• Trường hợp 1: ∆1N > ∆2N hay ∆1N −∆2N > 0. Khi đó, từ (2.4)

suy ra ∆N(λ) > 0với mọi λ > t0 và B là cơ sở tối ưu của bài toán (2.3) với mọi λ > t0, nói riêng với t0 6 λ < 1. Dừng quá trình giải.

• Trường hợp 2: Có ít nhất một chỉ số j ∈ N với ∆1j < ∆2j hay

∆1j −∆2j < 0.

Cũng từ (2.4) suy ra với j đó tồn tại λj > t0 sao cho ∆j(λj) = 0, nghĩa là:

hay

∆2j +λj(∆1j −∆2j) = 0 ⇒ λj = −∆2j ∆1j −∆2j

Vì thế, B không còn là cơ sở tối ưu của bài toán (2.3) vớiλ > λj. Nói cách khác, cơ sở B tối ưu của (2.3) thì λ 6 λj với mọi j mà ∆1j < ∆2j . Đặt

J = j ∈ N : ∆1j < ∆2j , t1 = min

j∈J

−∆2j

∆1j −∆2j (2.5)

Có thể thấy ∆N(λ) > 0với mọi t0 6 λ 6 t1, vì thế B còn là cơ sở tối ưu của (2.3) với mọi t0 6 λ 6 t1. Giả sử t1 < 1 và tỉ số nhỏ nhất trong (2.5) đạt được tại j = s. Để tìm cơ sở tối ưu mới cho λ > t1, ta đưa xs

vào cơ sở thay cho biến cơ sở xr nào đó với r ∈ B. Từ các kết quả trên có thể mô tả tóm tắt thuật toán như sau.

THUẬT TOÁN

Input: Dữ liệu A, b, C của bài toán qui hoạch tuyến tính hai mục

tiêu.

Pha I: Tìm phương án cực biên ban đầu bằng cách giải qui hoạch

tuyến tính phụ (nếu cần): mineTz : Ax+Iz = b, x, z > 0 với z là véctơ biến giả tạo, e ∈ Rm với mọi thành phần bằng 1. Nếu giá trị tối ưu của bài toán qui hoạch phụ là một số dương thì D = ∅: dừng thuật toán. Trái lại, giả sử B0 là cơ sở tối ưu.

Pha II: Giải qui hoạch tuyến tính (2.3) với tham sốλ = t0 = 0bằng

cách xuất phát từ cơ sở B0 tìm được ở Pha I và nhận được cơ sở tối ưu B. (adsbygoogle = window.adsbygoogle || []).push({});

Tính

˜

A = A−B1A và ˜b = A−1

B B > 0.

Pha III: (mô tả theo ngôn ngữ phỏng trình)

While J = j ∈ N : ∆1j −∆2j < 0 6= ∅ do t1 = min j∈J −∆2j ∆1j −∆2j, s ∈ arg min ( −∆2j ∆1j −∆2j : j ∈ J ) , r = arg min ( ˜bi ˜ Ais : ˜Ais > 0, i ∈ B ) .

Đặt B := (B\{r})∪ {s}và tính (theo truy hồi) A,˜ ˜b, ∆1

N, ∆2N theo B mới.

end while

Output: Dãy giá trị ti, i= 1, 2, ... và các lời giải cơ sở tối ưu tương

ứng.

2.2.2 Ví dụ minh họa

Ví dụ 2.2. Giải qui hoạch tuyến tính với hai mục tiêu:

max

50x1 + 70x2 + 80x3

−40x1 −20x2 −10x3

với điều kiện

             2x1 + 3x2 + 4x3 6 30 3x2 + 4x3 6 12 x1 + 2x2 + 3x3 6 16 x1 > 0, x2 > 0, x3 > 0

Thêm vào các biến bù không âm x4, x5 và x6 đưa các ràng buộc chính về dạng đẳng thức. Xét bài toán qui hoạch tuyến tính tham số tương đương P(λ):

ϕ(λ) =λ(50x1 + 70x2 + 80x3) + (1−λ) (−40x1 −20x2 − 10x3) = (90λ −40)x1 + (90λ−20)x2 + (90λ− 10)x3 → max (0 < λ < 1)

với điều kiện

             2x1 + 3x2 + 4x3 + x4 = 30 3x2 + 4x3 +x5 = 12 x1 + 2x2 + 3x3 +x6 = 16 x1 > 0, x2 > 0, x3 > 0, x4 > 0, x5 > 0, x6 > 0

Lời giải cơ sở ban đầu x0 = (0, 0, 0, 30, 12, 16)T. Cơ sở ban đầu tương ứng B0 = {4, 5, 6}. N = {1, 2, 3}. ∆N = (∆1 = 40 −

90λ, ∆2 = 20 − 90λ, ∆3 = 10 − 90λ) > 0 khi và chỉ khi ∆1 = 40 −90λ > 0, ∆2 = 20 − 90λ > 0, ∆3 = 10 − 90λ > 0 hay tương đương với λ 6 1/9. Vậy lời giải cơ sở x0 và cơ sở B0 là tối ưu của bài

toán P(λ) với mọi 0 < λ6 t1 = 1/9, nhưng không còn tối ưu củaP(λ)

với λ > t1 = 1/9 (xem Bảng 2.1).

Bảng 2.1. x0 và B0 tối ưu của P(λ) với t0 = 0 < λ6 t1 = 1/9

Do t1 = −∆23/(∆13 − ∆23) nên đưa x3 vào cơ sở ta được lời giải

x1 = (0, 0, 3, 18, 0, 7)T với cơ sở B1 = {4, 3, 6}. x1 tối ưu của P(λ) (adsbygoogle = window.adsbygoogle || []).push({});

với t1 = 1/9 6 λ 6 t2 = 4/9.

Bảng 2.2. x1 và B1 tối ưu của P(λ) với t1 = 1/96 λ 6 t2 = 4/9

Do t2 = −∆21/(∆11 − ∆21) nên đưa x1 vào cơ sở ta được lời giải

x2 = (7, 0, 3, 4, 0, 0)T với cơ sở B2 = {4, 3, 1}. x2 tối ưu của P(λ)

Bảng 2.3. x2 và B2 tối ưu của P(λ) với t2 = 4/96 λ 6 t3 = 1/2

Do t3 = −∆22/(∆12 − ∆22) nên đưa x2 vào cơ sở ta được lời giải

x3 = (8, 4, 0, 2, 0, 0)T với cơ sở B3 = {4, 2, 1}. x3 tối ưu của P(λ)

với t3 = 1/2 6 λ 6 t4 = 2/3.

Bảng 2.4. x3 và B3 tối ưu của P(λ) với t3 = 1/26 λ 6 t4 = 2/3

Do t4 = −∆25/(∆15 − ∆25) nên đưa x5 vào cơ sở ta được lời giải

x4 = (12, 2, 0, 0, 6, 0)T với cơ sở B4 = {5, 2, 1}. x4 tối ưu của P(λ)

Bảng 2.5. x4 và B4 tối ưu của P(λ) với t4 = 2/3 6 λ 6 t5 = 8/9

Do t5 = −∆26/(∆16 −∆26) nên đưa x6 vào cơ sở ta được lời giải x5 = (12, 2, 0, 0, 6, 0)T với cơ sở B5 = {5, 6, 1}. x5 tối ưu của P(λ) với

t5 = 8/9 6 λ 6 t6 = 1.

Bảng 2.6. x5 và B5 tối ưu của P(λ) với t5 = 8/9 6 λ 6 t6 = 1

Từ Bảng 2.6 ta thấy ∆1k −∆2k > 0 với mọi k = 1, 2, ... , 6. Vì thế, lời giải x5 và cơ sở B5 là lời giải và cơ sở tối ưu của bài toán (2.3) với mọi tham số λ thuộc khoảng t5 = 8/9 6 λ < +∞. Nói riêng với

8/96 λ <1.

Lời giải tối ưu của bài toán qui hoạch tham số (2.3) đối với toàn bộ khoảng tham số0 < λ < 1được ghi lại trong bảng dưới đây. Hàm giá trị tối ưu ϕ(λ) được tính dựa vào các Bằng 2.1 - 2.6: ϕ(λ) = ∆10+ ∆20×λ.

Các véctơ mục tiêu tương ứng:

y0 = Cx0 = (0,0)T, y1 = Cx1 = (240,−30)T, y2 = Cx2 = (590,−310)T,

y3 = Cx3 = (680,−400)T, y4 = Cx4 = (740,−520)T, y5 = Cx5 = (750,−600)T.

Hình 2.1. Đa giác Y = {y ∈ R2 : y = Cx, x ∈ D}

Thuật toán đơn hình tham số cho phép tìm được tất cả các lời giải tối ưu Pareto (điểm hữu hiệu) cho bài toán qui hoạch tuyến tính hai mục tiêu. Các lời giải tối ưu này lập nên cái gọi là đường tối ưu Pareto

(Pareto-optimal path). Đường tối ưu Pareto bao gồm một dãy liên tiếp các đỉnh hữu hiệu của D (lời giải cơ sở tối ưu) kề nhau cùng với các cạnh của D nối liền các đỉnh này. Với Ví dụ 2.2 về bài toán tuyến tính hai mục tiêu, đường tối ưu Pareto (ký hiệu là P) trong R3 bao gồm tập

cạnh sau đây của miền chấp nhận được D.

P = {[(0,0,0),(0,0,3)]∪[(0,0,3),(7,0,3)]∪ [(7,0,3),(8,4,0)]∪∪[(8,4,0),(12,2,0)]∪[(12,2,0),(15,0,0)]}. . ∪[(8,4,0),(12,2,0)]∪[(12,2,0),(15,0,0)]}. .

Ta nêu thêm một ví dụ nhỏ về bài toán min.

Ví dụ 2.3. Xét bài toán tuyến tính hai mục tiêu

min

x1 x2 (adsbygoogle = window.adsbygoogle || []).push({});

với điều kiện

0 6 xj 6 1, j = 1, 2, 3.

Tập điểm hữu hiệu là {x ∈ R3 : x1 = x2 = 0, 0 6 x3 6 1} (xem Hình 2.2).

Hình 2.2. Ví dụ 2.3

Tóm lại, chương này đã giới thiệu vắn tắt về khái niệm tối ưu Pareto trong các bài toán qui hoạch tuyến tính với nhiều hàm mục tiêu và trình bày ứng dụng thuật toán đơn hình tham số vào tìm tập điểm hữu hiệu (tức lời giải tối ưu Pareto) của bài toán tuyến tính hai mục tiêu. Thuật toán cho phép tìm được tất cả các điểm hữu hiệu, tập này tạo nên đường tối ưu Pareto của bài toán.

Chương 3

Một phần của tài liệu Bài toán quy hoạch tuyến tính với hàm mục tiêu phụ thuộc tham số (Trang 25)