THUẬT TOÁN DINKELBACH RÚT GỌN

Một phần của tài liệu Thuật toán giải một số bài toán tối ưu phân thức tuyến tính và phi tuyến (Trang 40 - 43)

Mục này trình bày một mở rộng nhằm đẩy nhanh thuật toán Dinkelbach. Phương pháp bao gồm việc giải gần đúng các bài toán con.

Chứng minh sự hội tụ toàn cục của phương pháp với giả thiết: thuật toán dùng để giải các bài toán con làm giảm dần giá trị của hàm mục tiêu f(x) và ánh xạ thuật toán là đóng.

Patriksson (1993) đã đưa ra một lớp phương pháp tuyến tính hóa riêng biệt, cho phép giải bài toán tối ưu liên tục nhờ giải một dãy bài toán tối ưu con trên cùng miền chấp nhận được ban đầu. Nghiệm tối ưu của các bài toán con này xác định hướng giảm ở mỗi vòng lặp.

Patriksson cho rằng từ cách nhìn thực tiễn, các bài toán con không thể giải chính xác được mà phải có sự đánh đổi giữa công sức bỏ ra để giải bài toán con với mức độ giảm giá trị hàm mục tiêu nhận được.

Ý tưởng của thuật toán rút gọn là hạn chế công sức giải bài toán con đó, bằng cách quy định số vòng lặp thực hiện không vượt quá số nguyên nk. Số này có thể ấn định trước hoặc sẽ được xem xét dựa vào kết quả hoạt động của thuật toán và các tiêu chuẩn dừng đã chọn cho bài toán con.

Chiến lược này được áp dụng vào thuật toán Dinkelbach. Trong ngữ cảnh đó các bài toán con SUB(k) sẽ được giải gần đúng bằng cách thực hiện nk vòng lặp theo thuật toán làm giảm giá trị của hàm mục tiêu.

Sau đây sẽ chỉ ra rằng dãy {nk} có thể được chọn tùy ý miễn là nk ≥ 1 với mọi k, và sự hội tụ sẽ vẫn còn được đảm bảo với điều kiện là phương pháp dùng để giải SUB(k) có ánh xạ thuật toán đóng. Định lý sau đây thiết lập sự hội tụ toàn cục của thuật toán rút gọn.

Định lý 3.3 Giả sử thuật toán dùng để giải SUB(k) là thuật toán làm giảm giá trị hàm mục tiêu, ánh xạ thuật toán là đóng trên lớp bài toán P(λ) với tiêu chuẩn dừng khi giải SUB(k) là thực hiện tối đa nk vòng lặp (1 ≤ nk < ∞) và xk là điểm khởi đầu đối với SUB(k). Khi đó, thuật toán Dinkelbach rút gọn hoặc dừng sau hữu hạn vòng lặp, hoặc tạo ra dãy vô hạn {xk} sao cho một điểm tụ bất kỳ của dãy là nghiệm tối ưu của bài toán (P).

Chứng minh. Điểm xk+1 thu được ở vòng lặp tiếp theo của thuật toán giảm giá trị hàm hàm mục tiêu khi giải P(λk), với điểm ban đầu là xk. Điều này đảm bảo rằng nếu xk không là nghiệm tối ưu của SUB(k) thì fk(xk+1) < fk(xk) = 0. Trái lại, xk là một nghiệm tối ưu của SUB(k) và theo định lý Jagannathan, xk cũng là một nghiệm tối ưu của bài toán (P). Hơn nữa, trong trường hợp này fk(xk+1) = 0 và thuật toán Dinkelbach rút gọn phát hiện được xk là nghiệm tối ưu của (P).

Vì thế ta giả sử fk(xk+1) < 0 với mọi k.

Bổ đề 3.3 Bổ đề 3.1 đảm bảo rằng dãy {f(xk)} đơn điệu giảm dần.

Dãy này bị chặn dưới bởi giá trị tối ưu của (P) và kết quả là dãy này hội tụ:

klim→ ∞f(xk) = λ∗ và mọi dãy con hội tụ về λ∗. (3.5) Nếu với bất kỳ hằng số dương K đều tồn tại số nguyên hữu hạn i sao cho nk ≥ K với mọi k ≥ i thì lim

k→ ∞nk = +∞. Trong trường hợp này, bài toán con được giải chính xác ở giới hạn và sự hội tụ được đảm

bảo nhờ Định lý 3.2. Trái lại, giả sử {yk} là một dãy con của dãy {xk} thỏa mãn

klim→ ∞yk = y.

Ta sẽ chứng minh rằng y là một nghiệm tối ưu của (P). Thật vậy, vì

klim→ ∞nk 6= +∞, nên phải có số nguyên k∗ xuất hiện vô số lần trong dãy {nk}. Chọn dãy con {uk} của {yk} tương ứng với các chỉ số này. Giả sử M là ánh xạ thuật toán được xác định bởi hợp k∗ lần liên tiếp của ánh xạ thuật toán đóng đã dùng để giải các bài toán con đó (mà ta ký hiệu đó là A) với hàm

B :X ×[λmin, λmax]−→ X ×[λmin, λmax] (x, λ) −→ (x, f(x)),

trong đó λmin và λmax lần lượt là giá trị nhỏ nhất và lớn nhất của (P), nghĩa là

M = AA....AB (A xuất hiện k∗ lần).

Vì ánh xạA đóng vàB(x, λ) = (x, f(x)) là hàm liên tục trên miền xác định, nên ánh xạ hợp M là đóng.

Xét dãy con của dãy {xk} mà ta ký hiệu là {y0k}, thỏa mãn (y0k, f(uk)) ∈M(uk, f(uk)).

Không giảm tổng quát ta có thể giả thiết dãy {y0k}, hội tụ:

klim→ ∞y0k = y0.

f(uk)và f(y0k)là hai dãy con của dãy hội tụ{f(xk)} và theo (3.5), ta có

klim→ ∞f(uk) = λ∗, lim

k→ ∞f(y0k) =λ∗. (3.6) Vì {uk} và {y0k} là hai dãy hội tụ và f là hàm liên tục và giới hạn của hai dãy tương ứng là y và y0, nên ta có

klim→ ∞f(uk) = f(y), lim

k→ ∞f(y0k) = f(y0). (3.7)

Từ các hệ thức (3.6) và (3.7) suy ra

f(y) =f(y0). (3.8)

Vì M là ánh xạ đóng và từ (3.6) và (3.7), ta thấy (y0, f(y)) ∈ M(y, f(y)).

Nếu nhưy không là nghiệm tối ưu của P(f(x)), thìy0 sẽ có thể cải tiến giá trị hàm mục tiêu của P(f(x)) tại y, tức là p(y0)−f(y)q(y0) <

p(y)−f(y)q(y) = 0 và do đó theo Bổ đề 3.1, f(y0)< f(y), điều này trái với (3.8).

Ta đã chứng minh rằng y là một nghiệm tối ưu của P(f(y)) và định lý Jagannathan đảm bảo rằng y cũng là một nghiệm tối ưu của

(P).

Một phần của tài liệu Thuật toán giải một số bài toán tối ưu phân thức tuyến tính và phi tuyến (Trang 40 - 43)

Tải bản đầy đủ (PDF)

(49 trang)