Thuật toán xấp xỉ ngoài xây dựng tập đa diện ban

Một phần của tài liệu Một số thuật toán giải bài toán tối ưu trên tập pareto (Trang 64 - 67)

3 Giải bài toán tối ưu trên tập Pareto bằng phương pháp

3.3.1 Thuật toán xấp xỉ ngoài xây dựng tập đa diện ban

ban đầu

Ký hiệu P(X) và P(G(X)) tương ứng là các hình chiếu của tập lồi đa diện X và G(X) trong không gian biến u. Ta cần xây dựng đa diện xuất phát S0 cho thuật toán nhánh cận sao cho

P(X) ⊂S0 ⊂ P(G(X)).

Thủ tục xấp xỉ ngoài bắt đầu với một đa diện S0 trong không gian biến u thỏa mãn P(X) ⊂ S0 mà các đỉnh của nó có thể tính toán được dễ dàng. Nếu S0 ⊂ P(G(X)) thì kết thúc thủ tục. Ngược lại, cắt bỏ các phần của S0 \P(G(X)) cho đến khi thu được một đa diện nằm trong P(G(X)). Do tập G(X) không được biểu diễn tường minh bằng hệ bất đẳng thức tuyến tính nên thay vì cắt bỏ các phần của S0\P(G(X)) thì sẽ cắt bỏ các phần của S0 \P(X). Vấn đề là

i. Làm thế nào để xây dựng đa diện S0 trong không gian biến u thỏa mãn P(X) ⊂S0?

ii. Làm thế nào để cắt một phần của S0 \P(X) bởi một siêu phẳng? Trước hết, nhắc lại rằng, đa diện X được xác định như sau

X = {(u, v) : A1u+A2v +b ≤0},

trong đó A1 và A2 tương ứng là các ma trận thu được từ ma trận Abằng cách lấy k cột đầu tiên và (n−k) cột cuối cùng của ma trận A, b ∈ Rm. Sau đây là điều kiện cần và đủ để nhận biết khi nào điểm u0 ∈ P(X)?

Bổ đề 3.5 [8, 15]Cho P(X) là hình chiếu của X trên không gian biến

u. Khi đó, điểm u0 ∈ P(X) khi và chỉ khi h = 0 là nghiệm tối ưu của quy hoạch tuyến tính sau

max{hA1u0 +b, hi, AT2h = 0, h ≥0}. (L(u0))

Gọi h0 là một nghiệm tối ưu của bài toán (L(u0)). Nếu hA1u0 + b, h0i > 0 thì u0 ∈/ P(X). Với mọi u ∈ P(X)\u0, ta có hA1u+b, h0i ≤ 0, nhưng hA1u0 +b, h0i > 0. Từ Bổ đề 3.5, ta có P(X) ={u : hA1u+b, hi ≤ 0, h ∈ V(W)}, trong đó W := h = (h1,· · · , hm) : m X j=1 hj ≤1, AT2h = 0 . (3.6)

Vậy ta có biểu diễn tường minh của tập lồi đa diện P(X). Tuy nhiên, nếu m đủ lớn thì số đỉnh của P(X) cũng có thể lớn, và việc xác định các đỉnh của P(X) đòi hỏi chi phí tính toán cao. Trong trường hợp này, có thể chọn một tập V0 ⊂ W và lấy

S0 := {u : hA1u+b, hi ≤ 0, h∈ V0}.

Ta cũng có thể xây dựng đa diện S0 bằng cách lấy một đơn hình X0 trong không gian biến x và sau đó lấy S0 = P(X0).

Để kiểm tra S0 ⊂ P(G(X)) hay không, ta kiểm tra

V(S0) ⊂P(G(X)). (3.7)

Do X ⊂ G(X), nên nếu u0 ∈/ P(G(X)) thì u0 ∈/ P(X). Vậy có thể áp dụng Bổ đề 3.5 để xây dựng một mặt phẳng cắt để cắt bỏ u0 từ S0 nhưng không cắt bỏ đi bất kỳ điểm nào từ P(X).

Thuật toán 3.1

• Bước khởi tạo Tìm một đa diệnS0 thỏa mãn S0 ⊂ P(X). Tính tập đỉnh V(S0).

• Bước 1

If v ∈ P(G(X)),∀v ∈ V(S0)ThenS0 ⊂ P(G(X)). Kết thúc thuật toán.

Else tìmu0 ∈ V(S0) thỏa mãnu0 ∈/ P(G(X)) (do đó, u0 ∈/ P(X)). • Bước 2 Giải quy hoạch tuyến tính

max{hA1u0 +b, hi, AT2h = 0, h ≥0} thu được nghiệm cơ sở h0.

Đặt S0 := {u ∈ S0 : hA1u+b, h0i ≤ 0}.

• Bước 3 Tính tập đỉnh V(S0) và quay về Bước 1.

Nói chung, đa diện xuất phát S0 được xây dựng bởi phương pháp xấp xỉ ngoài thường không phải là một tập đơn giản (đơn hình, nón, hình chữ nhật, ...).

Một phần của tài liệu Một số thuật toán giải bài toán tối ưu trên tập pareto (Trang 64 - 67)