Chiến thuật giải

Một phần của tài liệu Phương pháp điểm trong giải quy hoạch tuyến tính (Trang 45)

3 PHƯƠNG PHÁP ĐIỂM TRONG

3.3Chiến thuật giải

Các định nghĩa khác nhau về đường trung tâm gợi ra những chiến thuật khác nhau giải qui hoạch tuyến tính. Mục này sẽ trình bày khái quát ba cách tiếp cận chung: phương pháp hàm chắn gốc (phương pháp bám đường), phương pháp bám đường dạng gốc- đối ngẫu và phương pháp giảm thế dạng gốc- đối ngẫu. Ở đây khơng phân tích chi tiết cách thực thi chúng, vì cịn cần đến một số kỹ thuật giải qui hoạch phi tuyến tổng quát.

Bảng 3.1 miêu tả mối quan hệ của các chiến thuật giải này với các phương pháp đơn hình đã nhắc lại ở chương trước với các điều kiện gốc chấp nhận được (P-F), đối ngẫu chấp nhận được (D-F) và điều kiện độ lệch đối ngẫu bằng 0 (0-D)trong quá trình giải lặp theo các chiến thuật này.

Chẳng hạn, phương pháp đơn hình gốc luôn cải tiến lời giải gốc chấp nhận được, giữ cho độ lệch đối ngẫu bằng 0 (điều kiện độ lệch bù) và bỏ qua tính chấp nhận được đối ngẫu ; trong khi đó phương pháp đơn hình đối ngẫu ln cải tiến lời giải đối ngẫu chấp nhận được, giữ cho độ lệch đối ngẫu bằng 0 (điều kiện độ lệch bù) và bỏ qua tính chấp nhận được gốc. Phương pháp hàm chắn gốc luôn cải tiến lời giải gốc chấp nhận được và bỏ qua tính chấp nhận được đối ngẫu và bỏ qua điều kiện độ lệch bù; các phương pháp điểm trong gốc- đối ngẫu luôn cải tiến cặp lời giải gốc và đối

ngẫu chấp nhận được, nhưng bỏ qua điều kiện độ lệch bù.

3.3.1 Phương pháp hàm chắn gốc

Xét bài tốn qui hoạch tuyến tính dạng chính tắc

mincTx : Ax = b, x ≥ 0 .

Một cách tiếp cận trực tiếp là sử dụng hàm chắn gốc và giải bài tốn cTx−µ

n

X

j=1

logxj →min, (3.4) với điều kiện

Ax = b, x > 0,

đối với một giá trị µ đủ nhỏ. Trên thực tế, nếu muốn giảm độ lệch đối ngẫu tới ε thì ta chỉ cần giải bài tốn với µ= ε

n.Nhưng đáng tiếc là với µ nhỏ bài tốn (3.4) rất có thể là một bài tốn đặt khơng chỉnh, theo nghĩa là hệ điều kiện cần hầu như suy biến. Điều này gây khó khăn cho việc giải bài tốn với µ nhỏ.

Vì thế, một chiến thuật chung là xuất phát từ một giá trị µ khơng q lớn (chẳng hạn µ = 100) và giải xấp xỉ bài toán này. Lời giải nhận được là một điểm xấp xỉ trên đường trung tâm gốc, nó cách xa đường trung tâm cũng như khoảng cách từ đường trung tâm gốc điểm giới hạn khi µ → 0.

Tuy nhiên, lời giải tại µ = 100 có thể dùng làm điểm xuất phát cho bài tốn với tham số µ nhỏ hơn đơi chút, bởi vì điểm này khá gần với lời giải tối ưu của bài toán mới. Sau mỗi vịng lặp có thể giảm giá trị µ theo một tỉ lệ dương γ cố định trước (0< γ < 1 ):µk+1 = γµk, trong đó k là số đếm vịng lặp.

Nếu chiến thuật giải bắt đầu từ giá trị µ0 thì ở vịng lặp k ta có µk = γkµ0. Do vậy để giảm µk

bằng

k = logε logγ.

Để giải các bài tốn (3.4), người ta thường dùng phương pháp Newton quen thuộc. Theo cách này, phương pháp Newton xử lý bài toán (3.4) với giá trị µ cố định nhờ xét phương trình (3.2) của đường trung tâm

x◦s = µ1, Ax = b ATy +s = c.

(3.5)

Từ một điểm cho trước x ∈ P0 phương pháp Newton di chuyển tới điểm gần với nghiệm tối ưu hơn x+ ∈ P0 bằng cách di chuyển theo hướng dx, dy và ds xác định từ một biến thể tuyến tính hóa của (3.5)

µX−2dx+ds = µX−1I−c,

Adx = 0 (3.6)

ATdy +ds = 0.

(Nhớ rằng X là ma trận đường chéo với các phần tử đường chéo là các thành phần của vectơ x > 0). Khi đó, điểm lặp mới được xác định bằng cách

chọn một độ dài bước α thích hợp theo hướng dx như sau: x+ = x+αdx. Chú ý là nếu x◦s = µ1 đối với s = c−ATy thì d ≡ (dx, dy, dz) = 0

vì điểm hiện có thỏa mãn Ax = b và do đó đã ở trên đường trung tâm. Nếu có thành phần nào đó của x◦s nhỏ hơn µ thì d sẽ có xu hướng tìm lời giải sao cho làm tăng thành phần đó. Điều ngược lại sẽ xẩy ra với các thành phần của x◦s lớn hơn µ.

Thủ tục này có thể lặp lại một số lần cho đến khi nhận được điểm đủ gần nghiệm tối ưu của bài tốn chắn tương ứng với giá trị µ đã cho. Nghĩa là tới khi các điều kiện cần và đủ (3.1) được thỏa mãn (một cách xấp xỉ). Trong mục sau chúng ta sẽ phân tích một số chi tiết liên quan đến thực thi đầy đủ phương pháp Newton. Tuy nhiên, phương pháp này làm việc (adsbygoogle = window.adsbygoogle || []).push({});

tốt nếu µ khơng quá lớn hoặc nếu điểm xuất phát khá gần lời giải đúng trong chiến thuật hàm chắn đề cập tới ở mục này.

Để giải (3.6) nhân bên trái phương trình đầu với X2 ta nhận được µdx+X2ds = µXI −X2c.

Sau đó nhân bên trái với A và sử dụng Adx = 0, ta có AX2ds = µAXI−AX2c.

Để ý rằng ds = −ATdy ta nhận được

AX2ATdy = −µAXI+AX2c.

Như vậy, có thể tính dy bằng cách giải hệ phương trình tuyến tính trên đây. Sau đó ds được tính từ phương trình thứ ba của (3.6) và cuối cùng dx được tìm từ phương trình đầu của (3.6). Khi giải hệ (3.6) ta cần O nm2 +m3 phép tính số học cho mỗi bước lặp Newton.

3.3.2 Phương pháp bám đường gốc- đối ngẫu

Một chiến thuật khác giải qui hoạch tuyến tính là bám theo đường trung tâm từ cặp nghiệm gốc- đối ngẫu ban đầu cho trước. Xét bài toán qui hoạch tuyến tính ở dạng chính tắc

(LP) cTx→ min,

với điều kiện

Ax = b, x ≥0,

trong đó A ∈ Rm×n, b ∈ Rm, c ∈ Rn cho trước và x ∈ Rn là vectơ biến cần tìm .

Bài tốn đối ngẫu tương ứng có dạng

(LD) bTy →max,

với điều kiện

s ≥0,

Ký hiệu P là tập chấp nhận được của bài toán gốc (LP), gọi tắt là tập chấp nhận được gốc và D là tập chấp nhận được của bài toán đối ngẫu (LD), gọi tắt là tập chấp nhận được đối ngẫu với

P = {x ∈ Rn : Ax = b, x ≥0},

D = (y, s) ∈ Rm+n : ATy +s = c, s ≥ 0 , Ta giả thiết các " phần trong" của P và D khác rỗng, nghĩa là

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

D0 = (y, s) ∈ Rm+n : ATy +s = c, s > 0 6= ∅

Ký hiệu z∗ là giá trị tối ưu của cả hai hàm mục tiêu (gốc và đối ngẫu) và

F = (x, y, s) ∈ Rn+m+n : Ax = b, ATy+ s= c, x ≥ 0, s ≥ 0 ,

F0 = (x, y, s) ∈ Rn+m+n : Ax = b, ATy +s = c, x > 0, s >0 . Với giả thiết P0 6= ∅ và D0 6= ∅ thì F0 6= ∅.

Khi đó, đường trung tâm (gốc-đối ngẫu) có thể được mơ tả như là tập ở dạng gốc- đối ngẫu: C = (x, y, s) ∈ F0 : x◦s = x Ts n 1 . (Nhớ rằng x ◦s = x1s1 + x2s2 + ...+xnsn là tích theo từng thành phần của hai vectơ x và s ). Trên đường trung tâm C ta có x◦s = µI , do đó xTs = nµ. Lân cận của đường trung tâm C có dạng

L(η) = {(x, y, s) ∈ F0 :|x◦s−µI| < ηµ, µ = x Ts n }

với số η nào đó: η ∈ (0,1), chẳng hạn η = 0,25. Có thể hình dung lân cận

như một cái ống (hay đường tàu điện ngầm), ở chính giữa là đường trung tâm.

Ý tưởng của phương pháp bám đường là di chuyển trong lân cận hình ống của đường trung tâm tới lời giải. Điểm khởi đầu x0, y0, s0 ∈ L(η)

có thể tìm bằng cách giải bài tốn chẵn tương ứng với giá trị µ0 cố định hoặc dùng pha khởi sự trình bày ở mục 3.4.1. Sau đó, thực hiện di chuyển luân phiên giữa cái gọi là bước dự báo (predictor step) và bước hiệu chỉnh (adsbygoogle = window.adsbygoogle || []).push({});

(corrector step). Sau khi thực hiện mỗi cặp bước này, điểm lặp nhận được vẫn ở trong lân cận cố định đã cho của đường trung tâm, nhưng tiến gần hơn tới tập nghiệm tối ưu của bài tốn qui hoạch tuyến tính.

Về cơ bản, bước dự báo được vạch ra để di chuyển song song với đường trung tâm. Hướng dịch chuyển d = (dx, dy, ds) được xác định từ biến thể tuyến tính hóa phương trình (3.3) của đường trung tâm gốc- đối ngẫu

x◦dx+x◦ds = ηµI−x◦s, Adx = 0

ATdy +ds = 0.

(3.7)

Ở đây chọn η = 0. Để chỉ rõ sự phụ thuộc của d vào cặp (x, s) hiện có và tham số η, ta viết d = d(x, s, η).

Khi đó, điểm lặp mới được tìm bằng cách thực hiện bước dịch chuyển theo hướng d, chẳng hạn (x+, y+, s+) = (x, y, s) + α(dx, dy, ds) với α là độ dài bước dịch chuyển. Chú ý là ở đây dxTds = −dxTATdy = 0. Do đó

x+T s+ = (x+αdx)T (s+ αds) =xTs+α(dx)T s+xTds = (1−α)xTs,

trong đó đẳng thức cuối là do nhân phương trình đầu của (3.7) với IT. Như vậy, bước dự báo làm giảm độ lệch đối ngẫu theo tỉ lệ (1−α). Độ dài bước lớn nhất có thể theo hướng dịch chuyển này được chọn sao cho điểm lặp mới thu được khơng vượt ra ngồi lân cậnL(2η)của đường trung tâm.

Về thực chất, bước hiệu chỉnh di chuyển theo hướng vng góc với đường trung tâm nhằm tiến gần hơn tới đường này. Bước hiệu chỉnh đưa

điểm lặp trở lại lân cận L(η) và được xác định bằng cách chọn η = 1

trong (3.7) với µ = x Ts

n . Chú ý là nếu x◦s = µI thì d = 0, vì điểm lặp

hiện có đã ở trên đường trung tâm.

Bước hiệu chỉnh trùng với một bước của phương pháp hàm chắn. Tuy nhiên, phương pháp " dự báo- chỉnh sửa" đòi hỏi một dãy cặp bước, mỗi cặp gồm duy nhất một bước dự báo và một bước hiệu chỉnh. Điều này tương phản với phương pháp hàm chắn, vì phương pháp hàm chắn địi hỏi với mỗi µ, một loạt bước để đi tới đường trung tâm và sau đó thực hiện một dãy khác để giảm giá trị µ.

Có thể chứng minh được rằng đối với bất kỳ (x, y, s) ∈ L(η) với µ = x

Ts

n thì khi dừng bước dự báo, độ dài bước thỏa mãn α ≥ 1

2√

n. Như vậy, độ phức tạp phép lặp của phương pháp là O

√ nlog 1 ε để đạt được µ

µ0 ≤ε, trong đó nµ0 là độ lệch đối ngẫu lúc ban đầu. Hơn nữa, người ta còn chứng minh được rằng độ dài bước α → 1 khi xTs → 0,

nghĩa là độ lệch đối ngẫu càng nhỏ thì tốc độ giảm đối ngẫu càng nhanh.

3.3.3 Phương pháp hàm thế gốc- đối ngẫu

Trong phương pháp này ta dùng một hàm thế gốc- đối ngẫu để đánh giá tiến trình giải. Hàm thế giảm dần sau mỗi vịng lặp. Khơng hạn chế gì đối với lân cận hay độ dài bước trong quá trình lặp miễn là hàm thế vẫn giảm. Hàm thế càng giảm nhiều thì tốc độ hội tụ của thuật tốn càng nhanh. Như vậy, dưới góc độ thực tiễn, thuật tốn giảm thế tỏ ra ưu việt hơn so với thuật toán bám đường mà các điểm lặp bị hạn chế ở trong một lân cận nào đó của đường trung tâm.

Với x ∈ P0 và (y, s) ∈ D0, hàm thế gốc đối ngẫu được xác định theo công thức: ψn+ρ(x, s) ≡ (n+ρ) log xTs− n X j=1 log (xjsj),

trong đó ρ ≥0.

Từ bất đẳng thức về trung bình cộng và trung bình nhân suy ra nlog xTs− n X j=1 log (xjsj) ≥ nlogn. Khi đó ψn+ρ(x, s) ≡ ρlog xTs+nlog xTs− n X j=1

log (xjsj) ≥ρlog xTs+nlogn.

(3.8) Như vậy, với ρ > 0, ψn+ρ(x, s) → −∞ kéo theo xTs → 0. Chính xác hơn, từ (3.8) ta có xTs ≤ exp ψn+ρ(x, s)−nlogn ρ . (adsbygoogle = window.adsbygoogle || []).push({});

Vì thế, hàm thế gốc- đối ngẫu cho một cận trên hiển đối với độ lớn của độ lệch đối ngẫu.

Mục đích của phương pháp này là đưa hàm thế giảm dần tới trừ vô cùng. Phương pháp dùng để giảm hàm thế là một biến thể của phương pháp Newton (3.7). Trong trường hợp này ta chọn γ = n

n+ρ trong (3.7). Để ý rằng đó là một tổ hợp của cách chọn dự báo và cách chọn hiệu chỉnh. Cách dự báo dùng γ = 0 và cách hiệu chỉnh dùng γ = 1. Phương pháp

hàm thế gốc - đối ngẫu sử dụng γ nào đó giữa 0 và 1. Cách này tỏ ra hợp

lý vì cách dự báo di chuyển song song với đường trung tâm nhằm hướng tới độ lệch đối ngẫu nhỏ hơn và cách hiệu chỉnh đi vng góc để tiến gần hơn tới đường trung tâm. Phương pháp mới này đồng thời thực hiện cả hai mục tiêu. Tất nhiên, ý tưởng trực quan này cần được làm chính xác.

Với ρ ≥ √n hàm thế bảo đảm giảm ít nhất một lượng cố định δ. Cụ thể là

ψn+ρ x+, s+−ψn+r(x, s) ≤ −δ

với hằng số δ ≥ 0,2. Về lý thuyết, kết quả này cho một cận trên đối với số

Tuy nhiên, có thể đạt được một thuật tốn nhanh hơn nhờ dùng kỹ thuật tìm chính xác trên tia theo hướng d để giảm nhanh nhất trong phương pháp hàm thế gốc - đối ngẫu tại mỗi vòng lặp.

Thuật tốn được mơ tả như sau.

Bước 1. Xuất phát từ điểm x0, y0, s0 ∈ F0 với

ψn+ρ x0, s0 ≤ ρlog x0Ts0+nlogn+ O √

nlogn.

Điểm này được xác định theo thủ tục tìm điểm ban đầu (thuật tốn khởi sự ở mục (3.4.1)). Đặt ρ ≥√n. Đặt k = 0 và γ = n n+ ρ. Chọn tham số đo độ chính xác ε > 0 . Bước 2. Đặt (x, s) = xk, sk và tính (dx, dy, ds) theo (3.7). Bước 3. Đặt xk+1 = xk+ αdx,yk+1 = yk+ αdy,sk+1 = sk +αds với α = arg min α≥0 ψn+ρ(x+αdx, s +αds) Bước 4. Đặt k ← k + 1. Nếu xkTsk

(x0)Ts0 ≤ ε thì dừng thuật tốn. Trái lại, quay lại thực hiện bước 2.

Định lí 3.1. Thuật tốn nêu trên kết thúc sau khơng q Oρlogn

ε vịng lặp để đạt được xkTsk (x0)Ts0 ≤ ε. Chứng minh. Chú ý rằng sau k vịng lặp, từ (17) ta có

ψn+ρ xk, sk ≤ψn+ρ x0, s0−kδ ≤ ρlog x0Ts0+nlogn+O √

nlogn−kδ.

Như vậy, từ bất đẳng thức (3.8) ta nhận được

ρlog xkTsk+nlogn ≤ ρlog x0Ts0+nlogn+O √

nlogn−kδ.

hay

ρlog xkTsk−log x0Ts0 ≤ −kδ +O √

Do đó, khi k ≥ O(ρlogn) ta phải có

ρlog xkTsk−log x0Ts0 ≤ −ρlog

1 ε . hay xkTsk (x0)Ts0 ≤ ε.

Định lý 2 đúng với mọi ρ ≥ √n. Như vậy, bằng cách chọn ρ = √

n ta được cận trên cho độ phức tạp của mỗi vòng lặp bằng O√

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

ε

.

3.3.4 Độ phức tạp của mỗi vòng lặp

Về cơ bản, mỗi vịng lặp địi hỏi giải hệ (3.7) để tìm hướng d. Để ý rằng phương trình đầu của (3.7) có thể viết như sau:

Sdx+Xds = γµI −XSI,

trong đó X và S là hai ma trận đường chéo với các phần tử đường chéo lần lượt là các thành phần của x > 0 và s > 0. Nhân bên trái cả hai vế

với S−1 ta được

dx+S−1Xds = γµS−1I −x.

Sau đó, nhân bên trái hai vế với A và để ý là Adx = 0 ta nhận được

AS−1Xds = γµAS−1I −Ax = γµAS−1I −b. Sử dụng ds = −ATdy ta có

AS−1XATdy = b−γµAS−1I.

Như vậy, chi phí tính tốn ở mỗi bước lặp của phương pháp điểm trong đề cập tới trong mục này là lập và lấy nghịch đảo ma trận AXS−1AT, cơng việc này cần địi hỏi O nm2 +m3 phép tốn số học. Tuy nhiên, có thể tính truy hồi và lấy nghịch đảo ma trận xấp xỉ của ma trận này nhờ dùng ít hơn các phép tốn số học. Trên thực tế, bằng cách dùng " kỹ thuật

hạng một" (rank-one technique) để chỉnh sửa xấp xỉ nghịch đảo của ma trận chuẩn trong q trình lặp, người ta có thể giảm số trung bình các

Một phần của tài liệu Phương pháp điểm trong giải quy hoạch tuyến tính (Trang 45)