Phương pháp điểm trong

Một phần của tài liệu Bài toán bù tuyến tính và ứng dụng (Trang 32 - 37)

Phương pháp điểm trong giải bài toán LCP do Kojima đề xuất năm 1988, dựa trên ý tưởng các thuật toán điểm trong giải qui hoạch tuyến tính. Phương pháp điểm trong trình bày ở mục này có độ phức tạp tính toán O(n3,5). Tuy nhiên có thể cải tiến để thuật toán có độ phức tạp

thấp hơn O(n3) phép toán (xem [7], tr. 10).

Sau đây là các giả thiết đối với bài toán LCP (q, M), trong đó q ∈ Rn

và M ∈ Rm×n, giải theo phương pháp điểm trong:

a) n ≥2. Trường hợp n = 1 LCP (q, M) được giải dễ dàng nên không cần xét (xem Ví dụ 1.1, Chương 1).

b) Các phần tử của q và M là những số nguyên.

c) M là ma trận nửa xác định dương, nghĩa là zTM z ≥ 0 với mọi

z ∈ Rn.

d) Mỗi hàng của M có ít nhất một phần tử khác 0.

Trước khi trình bày thuật toán, ta đề cập tới hệ phương trình mà sẽ được dùng thường xuyên trong thuật toán. Xét ánh xạ (véctơ hàm)

H : R+×R2+n → Rn ×Rn

xác định bởi

H(µ, z, w) = (ZW e−µe, w−q −M z)

với mọi (µ, z, w) ∈ R1+2+ n, trong đó Z = diag(z) là ma trận đường chéo của z, W = diag(w) là ma trận đường chéo của w và e∈ Rn là véctơ có mọi thành phần bằng 1.

Dễ kiểm tra thấy rằng bài toán LCP (q, M) tương đương với phương trình

H(0, z, w) = 0 và (z, w) ∈ R2+n

Ta dùng ký hiệu S để chỉ tập nghiệm chấp nhận được của bài toán LCP (q, M), Sint là phần trong của S và Scp là tập nghiệm của LCP (q, M), nghĩa là

S = (z, w) ∈ R+2n : w = q +M z ,

Sint = (z, w) ∈ R++2n : w = q +M z ,

Scp = {(z, w) ∈ S : ziwi = 0, i = 1, ..., n},

trong đó Rn+ = {z ∈ Rn : z ≥0} là orthant không âm của Rn và Rn++ =

{z ∈ Rn : z > 0} là orthant dương của Rn.

Xét hệ phương trình

Mỗi cặp (x, y) ∈ R2n

+ thỏa mãn hệ phương trình (2.10) với µ > 0 nào đó gọi là một tâm điểm (center) của miền chấp nhận được S. Tập các tâm điểm được ký hiệu là Scen và được xác định bởi

Scen = (x, y) ∈ R+2n : H(µ, z, w) = 0 với µ > 0 nào đó .

Thuật toán điểm trong áp dụng phương pháp Newton để giải hệ phương trình (2.10) phụ thuộc tham số µ ≥0, µ ngày càng nhỏ dần sau mỗi phép lặp, cho đến khi đạt được nghiệm đủ chính xác. Độ chính xác của nghiệm được đánh giá bởi hằng số L dùng trong tiêu chuẩn dừng thuật toán. Kojima xác định L theo công thức

L = $ n X i=1 n+1 X j=1 log (|aij|+ 1) + log(n2) % + 1, trong đó aij là phần tử ở hàng i cột j của ma trận A = [q M] cấp

n×(n+ 1) và btc là số nguyên lớn nhất không vượt quá t ∈ Rn

+ (tức

t≥ 0). (adsbygoogle = window.adsbygoogle || []).push({});

Ký hiệu zk, wk lần lượt là giá trị của z, w ở vòng lặp k của thuật toán. Cho trước điểm lặp ban đầu (z1, w1). Các bước của thuật toán điểm trong như sau:

1. Bước 0. Chọn số dương α ≤ 0,1 và δ = 1/(1−α). Đặt chỉ số lặp k = 1.

2. Bước 1. Nếu zkTwk ≤ 2−2L thì dừng thuật toán. Trái lại, chuyển sang Bước 2.

3. Bước 2. Đặt µ = (1−δ/√

n)(zk)Twk/n và (z, w) = (zk, wk). Lập các ma trận đường chéo Z và W.

4. Bước 3. Tìm hướng Newton (∆z,∆w) nhờ dùng hai biểu thức

∆z = (µ+Z−1W)−1(µZ−1e−W e),

∆w = M∆z

và sau đó tính điểm lặp mới

(zk+1, wk+1) = (zk, wk) + (∆z,∆w).

Thuật toán lặp lại cho đến khi đạt được tiêu chuẩn dừng nêu ở Bước 2. Bằng cách điều chỉnh L, có thể làm cho nghiệm nhận được đạt độ chính xác cần thiết.

Tóm lại, chương này đã giới thiệu hai phương pháp tiêu biểu giải bài toán bù tuyến tính LCP. Phương pháp Lemke (1968) tiện dùng trong tính toán nên được trình bày chi tiết hơn với đầy đủ cơ sở lý luận, các bước thực hiện và ví dụ số minh họa. Phương pháp điểm trong (Kojima, 1988) có ưu điểm là chạy trong thời gian đa thức, tuy nhiên phức tạp hơn nên chỉ trình bày ý tưởng và các bước chính của thuật toán.

Chương 3

Một số ứng dụng của bài toán bù tuyến tính

Chương này trình bày một số ứng dụng của bài toán bù tuyến tính, cụ thể là trò chơi Stackelberg và trò chơi song ma trận. Trò chơi Stackelberg liên quan chặt chẽ với bài toán qui hoạch toán học với ràng buộc cân bằng (MPEC) và là sự mở rộng ý tưởng của trò chơi Nash. Nội dung của chương được tham khảo chính từ tài liệu [7].

3.1. Trò chơi Steckelberg

Trong trò chơi Nash không cho phép có sự hợp tác giữa các người chơi và mỗi người chơi lựa chọn chiến lược của mình một cách độc lập với nhau. Giả thiết rằng mỗi người chơi lựa chọn chiến lược hy vọng có thể đem lại cho mình lợi ích lớn nhất.

Giả sử có N người chơi và hàm trả tiền của người chơi thứ i là gi(x), i=

1, ..., N, trong đó x = (x1, ..., xN) là véctơ biến quyết định với xi là biến

quyết định của người chơi i. Không gian chiến lược của người chơi i được cho bởi tập Xi ⊂ Rni , trong đó ni là một số nguyên biểu thị số chiến lược mà người chơi i có thể lựa chọn. Giả sử gi = Rni+nN → R và biến quyết định của người chơi i,xi ∈ Xi vớii = 1, ..., N. Trong trò chơi Nash hàm mục tiêu của người chơi i gi(x) được thực hiện như sau

max

xi∈Xigi(x), i = 1, ..., N. (3.1)

Nói cách khác, mỗi người chơi cố gắng làm cực đại hàm mục tiêu riêng của mình. Tuy nhiên, giá trị hàm mục tiêu của mỗi người chơi còn phụ thuộc hành động của những người chơi khác.

Trong trò chơi Stackelberg, có một người chơi làm chủ cái (leader), những người còn lại là người chơi thứ cấp (followers). "Chủ cái" được chọn hành động trước. Sự lựa chọn chiến lược của chủ cái chịu ảnh hưởng bởi những người chơi khác sẽ hành động thế nào đối với hành động của chủ cái. Những người chơi khác sẽ cố gắng tìm hành động làm cực đại lợi nhuận của họ trong tình huống đã được tạo ra sau hành động của

chủ cái. Chủ cái được ký hiệu bằng chỉ số 1 và những người chơi khác sẽ được ký hiệu bằng chỉ số −1, tức là x−1 = (x2, ..., xN).

Về mặt toán học, trò chơi Stackelberg tương tự như trò chơi Nash, nhưng với hàm mục tiêu và các ràng buộc bổ sung mới:

max

x1∈X1g1(x) (3.2)

với điều kiện

x−1 ∈ arg max{g−1 : x−1 ∈ X−1} (3.3) (adsbygoogle = window.adsbygoogle || []).push({});

Trong trò chơi Stackelberg, chủ cái làm cực đại hàm mục tiêu của mình. Hàm mục tiêu này có điều kiện ràng buộc đối với hành động của chủ cái, những người chơi thứ cấp sẽ lựa chọn hành động làm cực đại hàm mục tiêu riêng của mình.

Trò chơi Stackelberg là một bài toán tối ưu hai cấp, theo nghĩa có một bài toán mức trên (chủ cái hành động trước, cố gắng làm cực đại lợi ích của mình) và một bài toán mức dưới (những người chơi thứ cấp hành động sau chủ cái, tìm cực đại lợi ích riêng của họ). Trong thực tế, thường chủ cái có thể là một hãng lớn nổi trội trong một thị trường kinh doanh nào đó và những người chơi còn lại là những hãng cạnh tranh nhỏ hơn trong thị trường đó.

Cách diễn đạt bài toán theo (3.2) và (3.3) là một bài toán qui hoạch toán học với ràng buộc cân bằng MPEC, trong đó biểu thức (3.3) có vai trò giống như ràng buộc y ∈ S(x) trong bài toán MPEC nêu ở mục 1.2.2. Trái lại, trò chơi song ma trận là trò chơi hai người với tổng khác không, theo nghĩa số tiền thắng cuộc của người chơi này không bằng số tiền thua cuộc của người chơi kia. Trò chơi song ma trận sẽ được trình bày kỹ hơn ở mục sau.

Một phần của tài liệu Bài toán bù tuyến tính và ứng dụng (Trang 32 - 37)