Phương pháp tối ưu của Powell 1 Cơ sở lý thuyết

Một phần của tài liệu tối ưu hoá hàm nhiều biến không có ràng buộc (Trang 37 - 41)

1. Cơ sở lý thuyết

Trước hết ta đi xem xét khái niệm các hướng liên hợp để tối ưu hàm

mục tiêu f(x). Hai hướng si và sj được gọi là liên hợp với nhau nếu:

(si)TQsj=0 với i≠j (si)TQsj≥0 với i=j trong đó Q=∇2f(x(k)).

Thuật toán của Powell về cơ bản dựa vào ý tưởng là nếu giá trị nhỏ nhất của hàm bậc hai f(x) được tìm thấy theo mỗi hướng trong p hướng liên hợp (p<n) tại một bước lặp, đồng thời tìm được một bước tối ưu trong mỗi hướng thì tất cả các bước tối ưu từ hướng bắt đầu tới hướng thứ p liên hợp với p hướng còn lại.

Phép biến đổi từ điểm x0(k) tới điểm xm(k) như sau: xm(k)= x0(k)+∑=−1 1 ) ( ) ( s λ m i k i k i (5.1.1)

Ta đi tìm hiểu cụ thể cách thực hiện thủ tục biến đổi trên. Tại một vector x0(0) trong En xây dựng các hướng khởi tạo s1(0), s2(0),…, sn(0) song

song với các trục toạ độ của En. Bước đầu tiên được thực hiện trong

hướng sn(0); f(x0(0)+λ sn(0)) được tối ưu bằng phương pháp tối ưu một tham số (chú ý λ ở đây là λ0(0)). Sau đó x1(0)=x0(0)+ λ0(0)sn(0). Tiếp theo thực hiện lần lượt với n hướng si(0) (i=1,2,…,n), f(xi(0)+λ si(0)) được tối ưu

để tìm được λi(0) và biểu thức (5.1.1) được ứng dụng để tính toán thành

công các giá trị mới của xi(0).

2. Các bước của thuật toán

Từ cách biến đổi như trên ta trình bày cụ thể tại bước thứ k của phương pháp Powell thực hiện tối ưu n hướng độc lập tuyến tính với điểm khởi tạo là x0(k)=xn+1(k-1).

Bước 1: Từ x0(k) xác định λ1(k) bằng tối ưu một tham số sao cho f(x0(k)

+λ1s1(k)) là một giá trị tối ưu và đặt x1(k)=x0(k)+ λ1(k)s1(k). Từ x1(k) xác định λ2(k) sao cho f(x1(k)+λ2s2(k)) là một giá trị tối ưu và đặt x2(k)=x1(k)+ λ

2(k)s2(k)…, thực hiện liên tiếp như vật cho tới khi tất cả λi(k) (i=1,2,…,n) được xác định.

Bước 2: Tìm một điểm xm(k) cụ thể mà tại đó giá trị của hàm mục tiêu thay đổi lớn nhất, gọi khoảng thay đổi đó là ∆(k) thì ta có:

∆(k)=max{f(xi(k))- f(xi-1(k))} với i=1,2,…,n và ∆(k)=f(xm(k))- f(xm-1(k))

Xác định vector μ =xn(k)-x0(0).

Bước 3: Xác định f(2xn(k)-x0(k))=ft(k)

Đặt: f0(k)= f(x0(k)), fn(k)= f(xn(k)).

Bước 4: Nếu: ft(k) ≥ f0(k) hoặc

(f0(k)-2 fn(k)+ ft(k)) (f0(k)- fn(k) -∆(k)) ≥0.5∆(k)( f0(k)- ft(k))2

thì μ không phải là một hướng tốt, ta thực hiện bước tối ưu tiếp theo: x0(k+1)=xn(k)

si(k+1)=si(k) với i=1,2,…,n Quay lại lặp từ bước 1.

Ngược lại cả hai bất đẳng thức trên đều không thoả mãn thì μ là hướng tốt để tính:

Thực hiện tối ưu theo hướng μ tìm được giá trị tối ưu tại x0(k+1), là điểm cơ sở để thực hiện bước tối ưu tiếp theo.

Thay: si(k+1)=si(k) với i=1,2,…,m-1

si(k+1)=si+1(k) với i=m,…,n-1 và sn(k+1)= μ Lặp lại từ bước 1.

Bước 5: Tiêu chuẩn hội tụ của phương pháp Powell là thoả mãn điều kiện: (0 ) ) ( x x k k n − ≤0.1ε với ε là độ chính xác của x.

Trong thủ tục trên ở bước 4 ta có kiểm tra hai bất đẳng thức. Bất

đẳng thức thứ nhất có chứa ft(k) là giá trị tối ưu của hàm mục tiêu trên

hướng mới. Cụ thể là điểm xt(k)= 2xn(k)-x0(k) trên hướng μ . Nếu giá trị ft(k)

không tốt hơn giá trị hàm mục tiêu tại điểm cơ sở x0(k) thì hướng mới μ

không được dùng để tối ưu. Bất đẳng thức thứ hai dùng để xác định xem hàm mục tiêu có thể không tăng (trong trường hợp tìm min) qua bước dịch chuyển từ điểm xn(k) tới điểm 2xn(k)-x0(k), đồng thời nó cũng để xác định liệu hướng μ có đi qua một điểm nằm trong vùng lõm không, nếu có thì ta bỏ qua hướng này và giữ nguyên các hướng cũ để thực hiện cho bước lặp tiếp theo.

Zangwill đã chỉ ra rằng thủ tục của Powell sẽ hội tụ tới một điểm mà tại đó gradient của f(x) bằng không nếu f(x) là hàm hoàn toàn lồi, đó là điểm mà hàm mục tiêu dần tới vô cùng.

3. Sơ đồ giải thuật

Từ các bước thực hiện như trên ta có sơ đồ giải thuật như hình vẽ dưới.

40

Bắt đầu

k=0

Đặt si(k) song song với các trục toạ độ của En

Xác định bằng cách tối ưu

một tham số f() Nếu -<, i=1,2,…,n

Tìm min của f() theo hướng =- thu được

Thay = với i=1,…,n và im. Còn =

Đặt =+

Nếu i=n

Tính =2-

Tính =max{f()-f()} Với i=1,2,…,n. Thu được

=f()-f() Nếu: (1): f()f() hoặc (2): [f()-2f()+f()][f()-f()-]0.5[ f()-f()] Nếu f()f() Đặt s i (k+1)=s i (k) Đặt: = Đặt: = Kết thúc Đún g Sa i k=k+1 Sa i Đún g Đún g Sa i Đún g Sa i

Chương IV.

Tối ưu hoá hàm Nhiều biến có ràng buộc

Một phần của tài liệu tối ưu hoá hàm nhiều biến không có ràng buộc (Trang 37 - 41)