Phức tạp của bài toán (RKP )

Một phần của tài liệu Một cách tiếp cận giải bài toán chiếc túi có ràng buộc ngẫu nhiên (Trang 30 - 35)

2.4.2.1. Định lý.Bài toán (RKP) thuộc lớp NP-khó (tồn tại thuật toán đa thức không đơn định giải nó).

Chứng minh. Trong trường hợp đặc biệt Γ = 0, đó là bài toán chiếc túi cổ điển với dữ liệu trọng lượng ai = wi. Do vậy, với bài toán chiếc túi cổ điển là N P-khó nên bài toán RKP, trong trường hợp này, là N P-khó.

Mặt khác, thuật toán quy hoạch động cổ điển vẫn có thể chấp nhận để giải bài toán (RKP). Ký hiệu (RKPk(Γ, h)) là bài toán (RKP) với tham số Γ ∈ {0, ..., n} và dung lượng h ∈ {1, ..., b}, xét chỉ với các phần tử trong

Ik = {1, ..., k}, mọi k ∈ I. Ký hiệu Fk(Γ, h) là giá trị tối ưu của hàm mục tiêu ở bước k. Không mất tổng quát ta giả sử rằng các phần tử của I được sắp xếp, tức là với i < j thì (wi −wi) ≤ (wj −wj).

Với mỗi k, chúng ta giả sử rằng h < 0 thì Fk(., h) = −∞. Với k = 1, F1 xác định như sau: nếu Γ = 0 thì F1(0, h) =    0, với h < w1 c1, với h ≥ w1, nếuΓ ≥1 thì F1(Γ, h) =    0, với h < w1 c1, với h ≥ w1.

Xét h ∈ {1, ..., b} và Γ ∈ {1, ..., n}. Vậy giá trị tối ưu của hàm mục tiêu bài toán (RKPk(Γ, h)) được tính theo công thức

Chúng ta hãy chứng minh rằng Fk(Γ, h) là giá trị tối ưu của hàm mục tiêu bài toán (RKPk(Γ, h)). Kết quả rõ ràng với k = 1. Ta xét với k ≥ 2.

Trước hết, chúng ta chỉ ra rằng mỗi phương án x(k−1) ∈ {0; 1}k−1 của bài toán (RKPk−1(Γ, h)) hoặc bài toán (RKPk−1(Γ − 1, h− wk)) có thể mở rộng thành phương án x(k) ∈ {0; 1}k của bài toán (RKPk(Γ, h)) bằng cách bổ sung thêm toạ độ thứ k cho x(k−1).

Nếu x(k−1) là phương án của (RKPk−1(Γ, h)) thì toạ độ x(kk) = 0 để x(k)

là phương án của bài toán (RKPk(Γ, h)).

Nếu x(k−1) là phương án của(RKPk−1(Γ−1, h−wk)) thì toạ độ x(kk) = 1 để x(k) là phương án của bài toán (RKPk(Γ, h)). Từ đó chúng ta có

X i∈Ik wix(ik) + maxn X i∈S (wi −wi)xi(k) : S ⊆ Ik,|S| ≤Γo = X i∈Ik−1 wix(ik−1) +wk + maxn X i∈S (wi−wi)x(ik−1) : S ⊆ Ik−1,|S| ≤Γ−1 o .

Điều này được suy ra từ giả thiết về biến trọng lượng. Kết hợp lại ta được

X i∈Ik−1 wix(ik−1)+ maxn X i∈S (wi−wi)x(ik−1) : S ⊆ Ik−1,|S| ≤Γ−1 o ≤h−wk.

Từ đây cho thấy x(k) là phương án của bài toán (RKPk(Γ, h)).

Ngược lại, giả sử x(k) là phương án của(RKPk(Γ, h)), k−1toạ độ đầu là phương án của bài toán (RKPk−1(Γ, h)) hoặc của bài toán (RKPk−1(Γ− 1, h−wk)). Ký hiệu x(k) là phương án của (RKPk(Γ, h)). Giả sử x(k−1) ∈ {0; 1}k−1 là vectơ lấy k −1 toạ độ đầu của x(k). Lúc có thể xảy ra:

(a) x(kk) = 0, vậy thì x(k−1) là phương án của (RKPk−1(Γ, h)).

(b) x(kk) = 1, vậy thì chúng ta có thể chứng minh bằng phản chứng. Ta coi x(k−1) là phương án của (RKPk−1(Γ−1, h−wk)). Giả sử rằng tồn tại

S ⊆ Ik−1 với |S| = Γ−1 sao cho

X

i∈Ik−1

wix(ik−1)+ X

i∈S

Đặt S0 = S ∪ {k}, chúng ta có X i∈Ik wix(ik) +X i∈S0 (wi−wi)x(ik) = = X i∈Ik wix(ik) +X i∈S (wi −wi)xi(k)+ (wk −wk) = X i∈Ik−1 wix(ik−1) +X i∈S (wi −wi)x(ik−1) +wk > h.

Do vậy x(k) không thể là phương án của bài toán (RKPk(Γ, h)).

Cuối cùng, chúng ta sẽ chỉ ra rằng tập hợp các vectơ bao gồm k − 1 toạ độ đầu trong phương án x(k) của bài toán (RKPk(Γ, h)) là như nhau đối với tất cả các phương án của riêng từng bài toán (RKPk−1(Γ, h)) và (RKPk−1(Γ−1, h−wk)). Từ đó chúng ta có

Fk(Γ, h) = max{Fk−1(Γ, h);ck+Fk−1(Γ−1, h−wk)}.

Từ đó cho thấy để tìm Fn(Γ, b) có thể tính toán với độ phức tạp thời gian đa thức theo thuật toán không đơn định O(nΓb).

Từ Bổ đề 2.4.1.2 và Định lý 2.4.2.2 ta có hệ quả sau:

Hệ quả. Thuật toán nêu trên chạy trong thời gian đa thức không đơn định nhờ việc sử dụng thuật toán quy hoạch động.

Chú ý rằng trong trường hợp với i ∈ I, wi = w > 0và (wi−wi) =δ > 0, người ta đã chứng minh Mệnh đề sau đây:

2.4.2.2. Mệnh đề. Giả sử với mọi i ∈ I, wi = w > 0 và (wi −wi) =

δ >0. Khi đó phương án tối ưu x∗ của (RKP(I,Γ)) thoả mãn

X i∈I x∗i =    min{n; [b−Γδ/w]}, nếu Γ(w +δ) ≤ b [b/(w+δ)], các trường hợp khác.

trong đó ký hiệu [a] là phần nguyên của a. 2.4.3. Ví dụ. (xem [3])

Xét bài toán max n f = 10 X i=1 ixi : 10 X i=1 wixi ≤ 80;x∈ {0; 1}10o,

trong đó tất cả các trọng lượng wi phân bố đều trên đoạn [8,12], nghĩa là

wi = 8, wi = 12, với mọi i ∈ I = {1,2, ...,10} và δ = 4. Giả sử lấy ε= 0,1, tức là chúng ta cần tìm x của bài toán chiếc túi với xác suất tối thiểu là 90%. Chú ý rằng theo giả thiết xác suất đã nêu, xác suất P P

i∈I0 wi ≤b

được biết theo sự phân tích đối với tất cả các tập con I0 ⊆ I. Sau đây, ta ký hiệu e(i) = (e(ji)) là vectơ 0-1, với ei(i) = 1 và e(ji) = 0, i 6= j. Ta có:

• k = 0: Từ Mệnh đề 2.4.2.2, chúng ta biết rằng P i∈Ix(0)i = [80/8] = 10, và do vậy x(0) = P10 i=1e(i). Chúng ta có Γ0 = [(80 − 10∗ 8)/4] = 2, tính được P P10 i=1wi ≤ 80= 0 (chỉ tình huống có thể là w = w). • k = 1: Từ Mệnh đề 2.4.2.2, P i∈Ix(1)i = [(80 − 4)/8] = 9, và do vậy x(1) = P10 i=2e(i). Chúng ta có Γ0 = [(80 − 9 ∗ 8)/4] = 2, tính được P P10 i=2wi ≤ 80 = 0,001< 1−0,1 = 0,9. • k = 3: Từ Mệnh đề 2.4.2.2, P i∈Ix(3)i = [(80 − 12)/8] = 8, và do vậy x(3) = P10 i=3e(i). Chúng ta có Γ0 = [(80 − 8 ∗ 8)/4] = 4, tính được P P10 i=3wi ≤ 80 = 0,5< 0,9. • k = 5: Từ Mệnh đề 2.4.2.2, P i∈Ix(5)i = [(80−20)/8] = 7, và do vậy x(5) = P10 i=4e(i). Chúng ta tính được P P10 i=4wi ≤ 80 = 0,99... > 0,9. Dừng lại. Trả lời x(5) là phương án của (RKP(I,Γ)), do vậy nó là phương án tối ưu của (SKP).

Từ đó, để tìm x(5) = (x(5)i ) ta giải bài toán max{f = 10 X i=1 ix(5)i : 10 X i=1 x(5)i = 7;x ∈ {0; 1}10}.

Dễ dàng ta nhận được phương án tối ưu là: x∗ = (0,0,0,1,1,1,1,1,1,1), với maxf = 4 + 5 + 6 + 7 + 8 + 9 + 10 = 28.

Kết luận

Kết quả nghiên cứu, thực hiện đề tài, Luận văn đã giải quyết được một số vấn đề như sau:

1. Trình bày một cách hệ thống những khái niệm và kiến thức cơ sở nhằm phục vụ cho việc nghiên cứu các vấn đề có liên quan trong luận văn. Cụ thể đã trình bày

+ Một số vấn đề cơ bản về xác suất thống kê toán học,

+ Bài toán quy hoạch tuyến tính và bài toán quy hoạch tuyến tính ngẫu nhiên,

+ Bài toán quy hoạch nguyên và bài toán chiếc túi cổ điển với thuật toán quy hoạch động.

2. Trình bày bài toán chiếc túi với ràng buộc ngẫu nhiên và bài toán tương đương.

3. Phát biểu và chứng minh một số tính chất của bài toán đang xét. Từ đó nêu ra thuật toán giải tương ứng.

4. Phát biểu và chứng minh về tính phức tạp của của thuật toán đã nêu. 5. Đưa ra ví dụ bằng số để thể hiện hiệu quả của thuật toán.

Khi có điều kiện cho phép, chúng tôi sẽ cố gắng tiếp tục nghiên cứu: ◦ Xây dựng phần mềm giải bài toán bằng thuật toán đã nêu.

Tài liệu tham khảo

[1]. Nguyễn Văn Quảng, (2007), Giáo trình xác suất thống kê, NXB Đại học Quốc gia Hà Nội.

[2]. Trần Xuân Sinh, (2005), Các phương pháp ngẫu nhiên giải bài toán quy hoạch, Bài giảng dùng cho Cao học chuyên ngành Xác suất Thống kê toán học, Đại học Vinh.

[3]. Trần Xuân Sinh, Nguyễn Thị Thanh Hiền, Nguyễn Văn Hưng (2009), Một lớp bài toán đầu tư tài chính, Tạp chí Khoa học, Đại học Vinh, Tập XXXVIII, Số 2A (2009), 55-61.

[4]. Nguyễn Duy Tiến - Vũ Viết Yên (2001), Lý thuyết xác suất, NXB Giáo dục, Hà Nội.

[5]. Nguyễn Đức Nghĩa, (1994), Tối ưu hoá, Trường Đại học Bách khoa Hà Nội.

[6]. D. Bertsimas and M. Sim, (2004), The Price of Robustness, Oper. Res., Vol.52, No1(2004), 35-53.

[7]. X. Chen, M. Sim and P. Sun, (2005),A Robust Optimization Perspective of Stochastic Programming, Submitted to Oper. Res.

[8]. O. Klopfenstein and D. Nace, (2006),A Robust Approach to the Chance- constrained Knapsack Problem, 60205 Compiègne Cedex, France.

Một phần của tài liệu Một cách tiếp cận giải bài toán chiếc túi có ràng buộc ngẫu nhiên (Trang 30 - 35)