các cách quản lí khác nhau
Bài toán Thuật toán 3.1
MOK RA RE NEWVERTEX MOA RA RE NEWVERTEX MSO RA (Group1) RE NEWVERTEX MSO RA (Group2) RE NEWVERTEX
† Số các ví dụ không giải được trong thời gian cho phép 7200s.
Dựa vào kết quả số ta rút ra một số kết luận sau:
• Thuật toán 3.1- RA: Kết quả số trong Bảng 3.2 cho thấy thuật toán này chịu tác động của việc chọn u (từ tập đỉnh chính) cho cả lớp bài toán tuyến tính (với số chiều cao) và toàn phương. Đặc biệt, với một số cỡ bài toán, sự khác biệt được thể hiện rõ ràng khi có một số ví dụ giải được trong giới hạn thời gian cho phép với cách chọn này nhưng lại không giải được với cách chọn khác của u (xem trường hợp bài toán (MOK) trong Bảng 3.2). Ngoài ra, ta thấy rằng Thuật toán 3.1- RA với cách quản lí Prio. 2 cho kết quả tốt nhất với hầu hết các bài toán, trong khi đó Prio. 1 và FIFO, theo thứ tự không nên sử dụng cho thuật toán này cho trường hợp bài toán tuyến tính và toàn phương.
• Thuật toán 3.1- RE: Theo Bảng 3.3, thuật toán này khá ổn định với lớp bài toán (MOK). Tuy nhiên Diff. nhận giá trị + | + với cả ba lớp bài toán còn lại (MOA, MSO (Group 1) và MSO (Group 2)). Điều đó có nghĩa là sự ảnh hưởng của việc quản lí tập đỉnh chính T đến Thuật toán 3.1- RE khác nhau đối với các lớp bài toán khác nhau. Tương tự như Thuật toán 3.1- RA, với hầu hết các ví dụ thử nghiệm, Pr io. 2 tỏ ra hữu hiệu; trong khi đó Prio. 1 và LIFO lần lượt không tốt cho lớp bài toán tuyến tính và toàn phương.
• Thuật toán 3.1- NEWVERTEX: So với Thuật toán 3.1- RA và Thuật toán 3.1-RE thì Thuật toán 3.1- NEWVERTEX ít phụ thuộc vào cách quản lí gói (nhỏ hơn 10%) cho hầu hết các ví dụ của bài toán tuyến tính nguyên (MOK, MOA). Sự khác biệt về thời gian tính toán chỉ cao cho ba trường hợp có số chiều cao nhất của bài toán (MOK). Nhưng kết quả trung bình của hai lớp bài toán tuyến tính thử nghiệm vẫn nhỏ. Ngược lại, trong trường hợp bài toán toàn phương, Thuật toán 3.1- NEWVERTEX cũng bị chi phối bởi cách quản lí tập đỉnh chính, đặc biệt với lớp bài toán (MSO (Group 1)). Tương tự như hai thuật toán trên, Pr io. 2 hiệu quả nhất và LIFO đắt nhất cho Thuật toán 3.1- NEWVERTEX với
bài toán toàn phương.
Chú ý rằng sự chênh lệch về số bước lặp (tương ứng với số bài toán con cảm sinh trong quá trình tìm kiếm) giữa các gói quản lí khác nhau của mỗi thuật toán là không đáng kể. Giá trị Diff. của bước lặp hầu hết nhỏ hơn 10% và trong nhiều trường hợp là 0%. Điều đó chứng tỏ rằng, với cùng một cách cập nhật miền tìm kiếm, việc thay đổi cách quản lí tập đỉnh chính không thực sự ảnh hưởng đến số bài toán con được sinh ra hay số đỉnh chỉnh của miền tìm kiếm. Tuy nhiên một gói quản lí tốt sẽ giúp thuật toán làm việc với những bài toán con dễ giải và từ đó có thể giảm được thời gian tính toán. Điều này có thể thấy rõ trong Bảng 3.5. Tóm lại, ta có một số nhận xét sau.
• Mặc dù có sự phụ thuộc khác nhau vào các gói quản lí nhưng cả ba thuật toán Thuật toán 3.1- RA, Thuật toán 3.1- RE, Thuật toán 3.1- NEWVERTEX đều hiệu quả với Prio. 2 cho cả trường hợp tuyến tính và toàn phương. Trong khi đó Prio. 1 và LIFO lần lượt cho kết quả không tốt với tất cả các thuật toán với trường hợp tuyến tính và toàn phương.
• Với cách quản lí tốt nhất Prio. 2 ta có thể so sánh sự hiệu quả của các thủ tục cập nhật miền tìm kiếm đối với lược đồ GM dựa vào Bảng 3.5. Cụ thể là, thủ tục RA tốt nhất cho lớp bài toán (MOA), (MSO (Group 1)) và (MSO (Group 2)) trong khi đó NEWVERTEX là một thủ tục tốt cho lớp bài toán MOK.
3.3 Thuật toán giải bài toán tối ưu trên tập hữu hiệu của bài toán tối ưu đa mục tiêu rời rạc
Bài toán tối ưu một hàm số thực trên tập hữu hiệu của một bài toán tối ưu đa mục tiêu lần đầu được nghiên cứu trong bài báo của Philip [26] cho trường hợp tuyến tính. Do nhu cầu ứng dụng bài toán đã trở thành đề tài thu hút được sự quan tâm của nhiều nhà toán học (xem [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38] và danh mục các tài liệu tham khảo kèm theo). Tuy nhiên theo hiểu biết của chúng tôi, cho đến nay chưa có nghiên cứu nào cho trường hợp ràng buộc của bài toán đa mục tiêu cho bởi một tập gồm hữu hạn các điểm, những tập như vậy trong thực tế thường được lấy thông qua các phương pháp thống kê. Do đó trong luận án này chúng tôi xét một lớp các bài toán tối ưu trên tập hữu hiệu XE của bài toán (MODO), trong đó hàm mục tiêu (của bài toán tối ưu trên tập hữu hiệu) là đơn điệu tăng tựa lõm và bài toán (MODO) có miền ràng buộc X bao gồm hữu hạn các điểm cho trước. Chúng tôi nghiên cứu và đề xuất thuật toán toàn cục giải bài toán tối ưu trên tập hữu hiệu này.
Để giải quyết vấn đề trên, đầu tiên chúng tôi đưa bài toán tối ưu không lồi này về bài toán tối ưu trên bao Edgeworth-Pareto của tập ảnh với hi vọng có thể khai thác một số tính chất đặc biệt của tập này, chẳng hạn như: là tập lồi với số chiều đầy đủ, đỉnh của nó là những điểm hữu hiệu [76]. Gần đây có một số công trình nghiên cứu vấn
77
đề xấp xỉ bao Edgeworth-Pareto của bài toán tối ưu đa mục tiêu nguyên với các hàm mục tiêu đơn điệu, chẳng hạn như phương pháp xấp xỉ Hausdorff [73, 74] hay xấp xỉ đa diện dựa trên ý tưởng của phương pháp nhánh cận [76]. Tuy nhiên, theo hiểu biết của chúng tôi, cho đến nay những nghiên cứu về bao Edgeworth-Pareto của bài toán tối ưu đa mục tiêu xét trong mục này vẫn chưa có. Vì vậy, để có được cái nhìn cụ thể hơn, chúng tôi đề xuất một thuật toán tính toàn bộ tập đỉnh của bao Edgeworth-Pareto của bài toán tối ưu đa mục tiêu rời rạc (MODO) với miền ràng buộc X bao gồm hữu hạn các điểm cho trước. Thuật toán này sẽ hỗ trợ cho việc xây dựng thuật toán toàn cục giải bài toán tối ưu trên tập hữu hiệu mà chúng tôi đang xét. Sự hiệu quả của các thuật toán đề xuất được minh họa thông qua thử nghiệm số cho nhiều ví dụ sinh ngẫu nhiên với nhiều cỡ bài toán từ nhỏ đến lớn.
3.3.1 Mô tả bài toán
Xét bài toán tối ưu đa mục tiêu rời rạc (MODO) như trong Mục 3.1, tức
V min
v.đ.k. x ∈
với X ⊂ R n bao gồm hữu hạn những điểm cho trước, f i : X → R, i = 1, . . . , m là các hàm mục tiêu. Các tập Y, XE , YN được định nghĩa như trong Mục 3.1. Kí hiệu convY là bao lồi của Y.
Tập Y = convY + R m+ được gọi là bao Edgeworth-Pareto của tập Y (xem [75, 76]). Khi đó ta có
Y = {y ∈ Rm |y = z + d, z ∈ convY, d ∈ Rm+ }.
Dễ thấy dimY = m. Với tập lồi đa diện P, kí hiệu V (P ) là tập đỉnh của P.
Từ định nghĩa các tập Y, Y , YN ta dễ dàng thu được bao hàm thức
V(Y )⊂YN ⊂Y ⊂Y.
Giả sử tập đỉnh V (Y ) = {v 1, v2, ..., vl }. Khi đó:
• Với mỗi k ∈ {1, 2, ..., l}, vk 6∈ conv({v1, v2, ..., vl} \ {vk }) + Rm+ .
• Nếu y ∈ Y thì tồn tại một véc-tơ d ∈ Rm+ sao cho y = z + d, trong đó z là tổ hợp lồi của {v1 , v2
, ..., vl}.
Xét bài toán tối ưu trên tập hữu hiệu dưới đây:
min{ϕ(f(x)) | x ∈ X E}, (P )
78
trong đó ϕ : R m → R.
Từ định nghĩa của tập giá trị hữu hiệu YN ta có kết quả sau:
Mệnh đề 3.2. Điểm x∗ là nghiệm tối ưu toàn cục của bài toán (P ) nếu và chỉ nếu y∗ ∈ YN , với f(x∗ ) = y∗, là nghiệm tối ưu toàn cục của bài toán
min{ϕ(y) | y ∈ YN }.
Xét bài toán tối ưu trên bao Edgeworth-Pareto
min{ϕ(y) | y ∈ Y }.
Mệnh đề dưới đây nêu mối quan hệ giữa bài toán (OP ) và bài toán (OP )
trong trường hợp ϕ(y) là hàm tựa lõm, đơn điệu tăng trên Y .
Mệnh đề 3.3. Giả sử ϕ(y) là hàm đơn điệu tăng, tựa lõm trên Y. Khi đó
i) Bài toán (OP ) đạt nghiệm tối ưu tại ít nhất một đỉnh của Y .
ii) Nếu y∗ ∈ V (Y ) là nghiệm tối ưu của bài toán (OP ) thì nó cũng là nghiệm của bài toán (OP ).
Chứng minh. Khẳng định đầu của mệnh đề là hiển nhiên vì hàm ϕ là tựa lõm, đơn điệu tăng và Y là
tập lồi đa diện. Giả sử y∗ ∈ V (Y ) là một nghiệm tối ưu của (OP ), tức là
Do Y
N⊂Y⊂Y
Cũng vì y∗ ∈ V (Y ) và V (Y ) ⊂ YN (theo (3.4)), ta có y∗ ∈ YN . Vậy y∗ là một nghiệm tối ưu của bài toán
(OP ).
3.3.2 Thuật toán toàn cục giải bài toán (P )
Từ Mệnh đề 3.2 và Mệnh đề 3.3 ta thấy rằng, nếu ϕ là hàm là hàm tựa lõm, đơn điệu tăng trên Y thì ta có thể chuyển việc giải bài toán (P ) về bài toán tìm cực tiểu của hàm ϕ trên V (Y ) - tập các đỉnh của bao Edgeworth-Pareto trong không gian ảnh. Thông thường, số phần tử của tập V (Y ) nhỏ hơn rất nhiều so với số phần tử của tập Y, YN hay V (convY ). Xem minh họa ở Hình 3.9.
79
... .... . .. ......... a x. x . x x .
Hình 3.9: Số phần tử của tập V (Y ) nhỏ hơn rất nhiều so với số phần tử của tập Y, YN hay
V (convY )
Như vậy, nếu xác định được toàn bộ tập đỉnh của bao Edgeworth-Pareto của Y thì ta giải xong bài toán (P ). Sau đây chúng tôi đề xuất một thuật toán tìm toàn bộ tập này.
Với mỗi j ∈ {1, . . . , m}, kí hiệu Yj ⊂ Rm−1 là tập thu được từ Y bằng cách xóa tọa độ thứ j. Dựa vào các tập V (Yj ) ⊂ Yj , j ∈
{1, . . . , m}, chúng tôi đề xuất thuật toán tính V (Y ) như sau.
Thuật toán 3.2: Tính tập đỉnh của bao Edgeworth-Pareto của Y, tức tập V (Y ).
Bước 1: Lấy yM ∈ Rm sao cho yM > yU .
Bước 2: Với mỗi j = 1, ..., m
– Xác định Yj := {pj (y)|y ∈ Y }, trong đó pj (y) thu được từ y = (y1 , ..., yj , ..., ym )T bằng cách xóa tọa độ thứ j.
– Tính
Bước 3: Lấy Y0
V (Y ) = V (convY 0) ∩ Y.
Chú ý 3.2. (i) Thuật toán 3.2 là thuật toán đệ quy theo số chiều m của tập Y .
(ii) Có thể xem Thuật toán 3.2 như là một thủ tục với đầu vào là Y và m; đầu ra là EPH(Y, m) := V
(Y ). Khi đó, với m = 1 rõ ràng ta có bao Edgeworth-Pareto của tập Y ⊂ R là EPH(Y, 1) = min{y|y ∈ Y }.
80
Dưới đây là một ví dụ đơn giản minh họa cho Thuật toán 3.2 cho trường
hợp m = 2.
Ví dụ 3.4. Xét tập
Y := {a, b, c, d} với a := (1, 1), b := (1, 0), c := (0, −1), d := (−1, −1)
như minh họa ở Hình 3.10.
Bước 1: Tính yM1 := 2 > max{y 1 | (y1 , y2) ∈ Y } = 1, y M 2 := 3 > max{y 2 | (y 1, y2) ∈ Y } = 1. Bước 2: Xác định Y = conv({−1, 0, 1})+R + = [−1, +∞), Y 1 Và V1 = {v = (v 1 V2 = {v = (v 1 Bước 3: Y0 = Y ∪ {V1, V2} ∪ {yM } = Y ∪ {(2, −1), (−1, 3)} ∪ {(2, 3)}. V (Y ) = (convY 0) ∩ Y = {(−1, −1)}. 81 download by : skknchat@gmail.com
yM2 .
1 a
-1
d
Hình 3.10: Minh họa Ví dụ 3.4
Tính đúng đắn và dừng hữu hạn của thuật toán được thể hiện qua định lí sau.
Định lí 3.1. Thuật toán 3.2 dừng sau hữu hạn bước lặp cho ta tập tất cả các đỉnh
của bao Edgeworth-Pareto Y .
Chứng minh. Ta chia chứng minh thành một số bước như sau:
m
(i) Lấy S = V (convY 0) \ (j=1S Vj ) ∪ {yM } . Ta sẽ chứng minh rằng S ⊂ Y.
Thật vậy, vì y ≤ y M với mọi y ∈ convY0 kéo theo y M là một đỉnh của convY0.
Với j = 1, lấy v ∈ V 1 và giả sử rằng v 6∈ V (convY0). Do v 1 = y M
1 ≥ y 1 với mọi y = (y 1, ..., ym ) ∈
convY 0, ta thấy rằng v là tổ hợp lồi của những điểm thuộc Y0 nằm trên mặt y1 = y 1M , điều đó có nghĩa là trong đó P λµ+λ vµ ∈V1 Từ (3.6) ta có thể viết p1(v) = Xµ download by : skknchat@gmail.com
trong đó p1(vµ ), p1 (q) ∈ Y1 = p1 (Y ), α = λ M p1 ((yM − q)) ∈ p1 (Rp+ ) = Rp+−1 . Vì p1(v) ∈ V (Y1 ) ta có λµ = 1 với p 1(vµ ) = p 1(v), λ µ = 0 với p 1(vµ ) 6= p1(v) và λM = 0. Kết hợp với (3.5) ta kết luận v là một đỉnh của convY 0. Lập luận tương tự cho những trường hợp còn lại j = 2, . . . , m.
Như vậy, (∪m
j=1 Vj ) ∪ {yM } ⊂ V (conv(Y0)). Kết hợp với định nghĩa của Y0 =
m
Y ∪ ( Vj ) ∪ {yM } ta thu được S ⊂ Y.
j=1S
(ii) Ở bước này ta chứng minh rằng với mỗi j ∈ {1, ..., m} và v ∈ Vj , tồn tại v¯ ∈ S sao cho pj (¯v)
= pj (v). Không mất tính tổng quát ta sẽ xét trường hợp j = 1, những trường hợp còn lại của j ta sẽ làm tương tự.
Cố định v ∈ V1 và đặt v¯ = argmin{y1|y ∈ Y, p1 (y) = p1(v)}. Ta sẽ chứng minh rằng v¯ ∈ S. Thật vậy, vì p1(¯v) ∈ V
(Y1 ) nên v¯ không thể là tổ hợp lồi của những điểm thuộc Y0 mà hình chiếu của nó trên không gian p1(R m ) :=
{(y2, ..., ym ), ∀j = 2, ..., m} khác p1 (¯v). Mặt khác, vì
v¯1 = min{y 1|y ∈ Y, p1(y) = p 1(v)} = min{y 1 |y ∈ Y0, p1 (y) = p 1 (v)},
ta có v¯ 6∈ conv(Y0\ {¯v}) + Rm chính là điều cần chứng minh.
+
Hiển nhiên, S ⊂ Y , vì vậy ta chỉ cần chỉ điểm y ∈ Y , khi đó tồn tại
z ∈ convY, d z ∈ convY ⊂ convY0, ta có thể biểu diễn z nghĩa là
ra rằng Y ⊂ S . Thật vậy, lấy
∈ Rm+ sao cho y = z + d. Do thành tổ hợp lồi của V (convY0),
trong đó λk , λ j
Từ (ii), với mỗi vµ
j ∈ Vj có v¯µ
j
vậy, từ (3.7) kéo theo
l λkvk + z = X k=1 lm = λkv X k k=1 download by : skknchat@gmail.com
trong đó d =
¯
(iv) Cuối cùng ta chứng minh khẳng định V (Y ) = S = V (convY 0) ∩ Y.
Trước hết ta chỉ ra rằng v
{1, 2, ..., l}.
Thật vậy, giả sử ngược lại vk
và β ∈ R+m . Chú ý rằng, với mỗi j ∈ {1, ..., m}, v
và yjM > v jk do đó tồn tại số tj > 0 sao cho v k
Vì convY0 lồi nên
Đặt v := v k + λβ, khi đó tồn tại λ > 0 thỏa
tức là v ∈ convY0, và do đó vk =
V (convY0).
Từ (iii) và (iv) ta kết luận rằng V (Y ) = S = V (convY 0) ∩ Y. Định lí đã được chứng minh.
Chú ý 3.3. Do convY = conv(V (convY )) và như đã biết trong nhiều trường
hợp tập V (convY ) nhỏ hơn tập Y rất nhiều nên với Thuật toán 3.2 ta có thể thay thế Y bằng V (convY ). Để tìm V (convY ) ta có thể sử dụng những thuật toán đã biết chẳng hạn như thuật toán Quickhull [77].
Cuối cùng, chúng tôi đề xuất thuật toán giải toàn cục bài toán (P ) trong trường hợp hàm ϕ đơn điệu tăng và tựa lõm trên Y .
Thuật toán 3.3: Giải toàn cục bài toán (P ).
Bước 1. Dùng một thuật toán đã biết để tính V (convY ), chẳng hạn thuật
toán Quickhull [77].
Bước 2. Áp dụng Thuật toán 3.2 với Y := V (convY ) tính tập đỉnh V (Y )
của bao Edgeworth-Pareto Y .
Bước 3. Tính giá trị hàm mục tiêu ϕ tại các điểm của V (Y ) để tìm ra y∗ ∈ argmin{ϕ(y) | y ∈ V (Y )}. Khi đó y∗ là nghiệm tối
ưu của bài toán (OP ) và giá trị x∗ thỏa mãn f(x ∗) = y ∗ chính là nghiệm tối ưu toàn cục của bài toán
(P ).
3.3.3 Kết quả tính toán thử nghiệm
Chúng tôi lập trình thử nghiệm các thuật toán bằng Matlab phiên bản R2012a, trên máy tính cá nhân với cấu hình RAM 8G, Intel core i7 2.26 GHz và hệ điều hành Win7-64bit.
Để tính tập đỉnh của bao lồi của Y chúng tôi sử dụng lệnh "convhulln" trong Matlab ("convhulln" được thiết kế dựa trên thuật toán Quickhull [77]).
Dữ liệu của bài toán được sinh ngẫu nhiên theo sơ đồ sau • f(x) = Cx, trong đó ma trận C ∈ {0, 1} m×n
được sinh ngẫu nhiên.
• X chứa p (p ∈ N) véc-tơ trong R n , được viết dưới dạng ma trận cấp p × n. Các phần tử của X được sinh ngẫu nhiên trong đoạn [0, 1000].
• Hàm ϕ có dạng
ϕ 1(y) = min{B 1(y) Tz | z ∈ {0, 1} n , a T z ≤ b}
hoặc
ϕ2 (y) = min{B2 (y)T z | z ∈ {0, 1}n , aT z ≤ b},
trong đó a ∈ R m là một véc-tơ nguyên được sinh ngẫu nhiên trong đoạn
[0, 1000], b = thức B 1(y) = Π i và n B i2(y) = X j=1
Rõ ràng ϕ1 và ϕ 2 là các hàm đơn điệu tăng và tựa lõm theo y. Như vậy ta có thể áp dụng Thuật toán 3.3 để giải bài toán (P ).
Chúng tôi tính ϕ tại mỗi điểm y bằng cách sử dụng CVX 2.1 kèm theo Gurobi Solver 6.0 (academic version at http://cvxr.com/cvx/ and http://www.gurobi.com/) cho việc giải bài toán quy hoạch nguyên.
85
Thuật toán 3.2 và Thuật toán 3.3 được thử nghiệm cho trường hợp p = 10 6, p = 105 và m = 2, 3, 4, 5. Các hệ số {α
[0, 0.5] và trong [0, 0.25] theo thứ tự với n = 20, n = 50 và n = 100.
Với mỗi cỡ bài toán chúng tôi chạy cho 10 ví dụ sinh ngẫu nhiên và lấy kết quả trung bình cho 10 ví dụ đó. Kí hiệu #S là số phần tử trung bình của tập S cho 10 ví dụ, trong đó S có thể là V (convY ), V (Y ) hoặc YN . Chúng tôi