Các cải tiến của thuật toán PSO

Một phần của tài liệu Nghiên cứu giải thuật bày đàn và ứng dụng tìm thông số tối ưu cho bộ điều khiển (Trang 29 - 39)

1.4.2.1. Mở đầu

Tối ưu toàn cục nhằm mục đích tìm ra lời giải tốt nhất cho các mục tiêu. Bài toán này trở nên khó khăn khi hàm mục tiêu phức tạp và có nhiều lời giải tối ưu cục bộ. Các tính toán tiền hóa có thể được sử dụng để khắc phục khó khăn này. Tuy nhiên, một khó khăn khác nảy sinh khi sử dụng kỹ thuật tiến hóa giải bài toán tối ưu là tính không tất định của các thuật giải tiến hóa. Giải pháp thường được sử dụng để chuyển từ không tất định sang tất định là cố định số bước lặp tiến hóa. Tuy nhiên, tính tất định giả tạo như vậy chỉ có thể sử dụng với nhũng bài toán không đòi hỏi về thời gian xử lý. Trong các bài toán ấy, lời giải tối ưu toàn cục có thể đạt đến khi cho số bước lặp cao. Trong thực tiễn, những bài toán như thế không nhiều và vì thế, số bước lặp thường không thể cao khiến cho lời giải toàn cục khá đạt đến hoàn toàn.

Thuật toán PSO, như đã trình bày ở mục 1.4.2 là một kỹ thuật tiến hóa nên cũng gặp vấn đề về tính tất định như các thuật toán tiến hóa khác thì áp dụng giải bài toán tối ưu toàn cục. Vì thế, từ khi thuật toán PSO được giới thiệu bởi Eberhat và kennedy năm 1995, đã có nhiều nghiên cứu thực nghiệm nhằm nâng cao hiệu quả sử dụng của PSO. Các nghiên cứu tập trung vào hai hướng chính: thực nghiệm trên các tham số hoặc thực nghiệm trên hàm mục tiêu.

1.4.2.2. Cải tiến với tham số

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

Shi và Eberhat cải tiến thuật toán PSO bằng cách đưa vào tham số lực quán tính để cân đối việc tìm kiếm toàn cục và cục bộ của quần thể. Lực quán tính w dùng trong việc cập nhật vận tốc theo công thức sau:

Vid = wVid + c1r1(Pid - Xid) + c2r2(Pgd - Xid) (1.50) Lực quán tính được tận dụng để kiểm tra sự tác động của vận tốc trước lên vận tốc hiện hành. Bằng cách này, tham số w được điều chỉnh một cách thỏa hiệp giữa hảo sát toàn cục (phạm vi rộng khắp) và cục bộ (phạm vi gần) của quần thể và sự ảnh hưởng đến khả năng hội tụ của PSO. Lực quán tính lớn thuận tiện cho việc khảo sát toàn cục (tìm vùng lãnh thổ mới), trong khi lực nhỏ hướng tới sự thuận tiện cho việc khảo sát cục bộ. Giá trị phù hợp của lực quán tính w thường được cân bằng dưới sự khảo sát toàn cục và cục bộ có thể và do đó làm giảm số lần lặp quy định để tìm lời giải tối ưu. Tốt nhất là khởi tạo w với giá trị lớn để có thể khảo sát toàn cục không gian tìm kiếm tốt hơn và điều chỉnh giảm dần nó để được lời giải tinh tế hơn.

Shi và Eberhat đề nghị khởi tạo w bằng 0.9 và giảm dần tuyến tính đến 0.4 trong quá trình tìm kiếm.

b) Hệ số co

Hệ số co được Clerc và Kennedy đề xuất khi phân tích toán học hành vi của dơn thể (một cá thể duy nhất). Hệ sô co được dùng trong việc cập nhật vần tốc theo các công thức sau:

Vid = K[wVid + c1r1(Pid - Xid) + c2r2(Pgd - Xid)] (1.51) 2 2 2 4 K        ,  = c1r1 + c2r2 ,  > 4

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

PSO, giống như nhiều phương pháp tiến hóa và tối ưu (cực tiểu) hóa cổ điển khác, cũng gặp phải vấn đề là thỉnh thoảng xảy ra sự hội tụ địa phương, nhất là trong tình huống nhiều trạng thái và rải rác. K.E.Parsopoulos và M.N.Vrahatis đề xuất một vài cách sửa đổi PSO bằng cách sử dụng các kỹ thuật làm lệch (Deflection Technique) và ky thuật kéo giãn (tretchinh Technique) để làm dịu đi vấn đề cực tiểu địa phương, trong khi vẫn duy trì cực tiểu toàn cục. Các cực tiểu của họ cho thấy PSO có trang bị các kỹ thuật này bộc lộ phẩm chất hiệu suất tốt và kết quả tìm thấy cực tiểu toàn cục đáng tin cậy và có thể đoán trước.

a) Kỹ thuật làm lệch (Deflection Technique) * Giới thiệu về kỹ thuật làm lệch.

Giả sử hàm f: ER, E Rn là hàm mục tiêu có m cực tiểu xi*, i = 1,…, m. Khi đó, kỹ thuật làm lệch được định nghĩa như sau:

F(x) = T1(x; x1*, 1 )-1... Tm(x, x*m, m )-1 f(x) (1.52) Trong đó i, i = 1,…, m là các hệ số làm trơn bề mặt, còn T1,..., Tm là các hàm thích hợp sao cho kết quả của F có giá trị cực tiểu trùng với f, ngoại trừ các điểm x1*,…, *

m

x . Nói một cách khác , các hàm hàm T1,..., Tm có thể được lựa chọn sao cho bất kỳ dãy  xk k0 nào hội tụ về các điểm cực tiểu x*i

cung không làm cho hàm F đạt cực tiểu tại x = x*

i , còn tất cả các điểm cực tiểu của f không bị ảnh hưởng gì.

Các hàm T1(x; x*i , i ) = tanh (i *

i

xx ), i = 1,..., m (1.53) Thỏa tất cả các yêu cầu ở trên.

* Ví dụ minh họa.

Ví dụ 1: Hiệu ứng của việc áp dụng thủ tục làm lệch đối với hàm

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

f(x)= x4 – 12x3 + 4x2 – 60x + 25 (1.54)

tại cực tiểu địa phương x*

= 4.60095589 được minh họa ở các hình 1; 2 và 3.

Ví dụ 2: Hàm một chiều

f(x) = cos2x + 0.1 (1.55)

có cực tiểu toàn cục 0.1 tại các điểm cực tiểu toàn cục x = k(

2

 ), với

k= 1, 2...

*) Kết luận

Rõ ràng là các giá trị lớn của , hiệu ứng của kỹ thuật làm lệch đối với hàm mục tiêu là tương đối nhẹ. Ngược lại, sử dụng < 1 dẫn đến việc hàm F có giá trị lớn trong lân cận của điểm cực tiểu được làm lệch và có thể ảnh hưởng đến các cực tiểu lân cận, như trong hình 6. Trong tất cả các hình, việc làm lệch đều dẫn đến việc phát sinh các cực tiểu địa phương mới ở cả hai phía, tạo ra hiệu ứng “mũ Mêhico” xung quanh điểm được làm lệch.

b) Kỹ thuật kéo giãn (Stretching Technique) * Giới thiệu về kỹ thuật kéo giãn.

K.E.Parsopoulos và M.N.Vrahatis mô tả kx thuật hàm “kéo giãn” và đề xuất một mô hình thuật toán để trang bị cho PSO. PSO với sự sửa đổi nà gọi là SPSO (“Stretched” PSO).

Ý tưởng chính của hàm “kéo giãn” là thực hiện phép biến đổi hai bước trên hàm f(x) ban đầu. Điều này có thể thự hiện ngay sau khi cực tiểu địa phương x của hàm f được tìm thấy:

1 ( ( ( ) ( )) 1) ( ) ( ) 2 x x sign f x f x G xf x     (1.56) 2 ( ( ) ( )) 1 ( ) ( ) 2 tanh( ( ( ) ( ))) sign f x f x H x G x G x G x        (1.57)

Với 1, 2 và  là các hằng số dương tù chọn. Sign(x) là hàm dấu 3 giá trị. Bước thứ nhất, công thức (1.56), nâng giá trị hàm f(x) và làm biến mất tất

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

cả cực tiểu địa phương nào lớn hơn x. Bước hai, công thức (1.57), làm giãn lân cận của x và quy định giá trị hàm số cao hơn cho các điểm này. Cả hai bước không làm thay đổi các cực tiểu địa phương thấp hơn x. Như thế, vị trí của cực tiểu toàn cục cũng không thay đổi.

Chú ý là hàm dấu, đượ sử dụng trong phép biến đổi trên, có thể xấp xỉ bằng hàm logistic: 2 1 2 ( ) log ( ) 1 tanh( ) 1 exp( ) sign x sig x x x         (1.58)

Với các giá trị của 1 và 2lớn. *) Ví dụ minh họa

Sau đây là hàm Levy No.5 hai chiều:

    5 5 2 2 1 2 1 2 1 1 ( ) cos ( 1) . cos ( 1) ( 1.42513) ( 0.80032) i j f x i i x i j j x j x x             (1.59) Với :   10 xi 10, i = 1, 2.

Hàm có 760 cực tiểu địa phương và một cực tiểu toàn cục với giá trị hàm *

176.1375

f   tại x* = (-1.3068, -1.4248). Số lượng lớn cực tiểu địa phương như thế gây khó khăn cho bất kỳ phương pháp nào xác định cực tiểu toàn cục.

Ta thấy, các cực tiểu địa phương với giá trị hàm cao hơn cực tiểu địa phương bị “kéo giãn” biến mất, trong khi các cực tiểu thấp hơn cũng như toàn cục không thay đổi. Rõ ràng, góc phải đã phẳng hơn. Kết quả của việc áp dụng giai đoạn biến đổi thứ hai cho hàm Levy No.5 được biểu diễn ở hình 9. Nó cho thấy rõ ràng vùng lân cận của cực tiểu địa phương được nâng ao như thế nào và kết quả là, cực tiểu địa phương lúc trước chuển thành cực đại địa phương của hàm.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

SPSO được khởi động cùng với phương pháp PSO để cực tiểu hóa hàm mục tiêu . Khi PSO vấp phải cực tiểu địa phương, kỹ thuật “kéo giãn” được áp dụng, SPSO được khởi động và cùng với PSO tìm cực tiểu của hàm đã kéo dãn.

Chi tiết hiệ suất của SPSO với một vài phép trừ thông dụng cũng như việc chọn tham số cho kỹ thuật hàm “kéo giãn” sẽ được trình bày ở phần sau.

Bảng 3.1: Mô hình thuật toán PSO kéo giãn –SPSO.

Bước 0: Gán số vòng lặp it- 0 và số cực tiểu địa phương LMC- 0.

Bước 1: Khởi tạo ngẫu nhiên quần thể và vận tốc như là hai ma trận D xN, trong đó D là số chiều của bài toán. N là kích thước quần thể.

Bước 2: Gán vị trí tốt nhất cho mỗi cá thể là vị tri khởi tạo ở bước 1. Bước 3: Gán w giá trị khởi tạo w0.

Bước 4: Tìm chỉ số g của cá thể tốt nhất trong quần thể. Bước 5: Lặp các bước sau trong khi chưa đến đích

a) Gán it = it + 1.

b)Gán w – w – wd,với wd là một giá trị định trước.

c) Cập nhật quần thể và vận tốc theo các công thức (3.1) và (3.2). d)Cập nhật vị trí tốt nhất cho mỗi cá tể và trị số g.

e) Kiểm tra xem có gặp cực tiểu địa phương, nếu đúng tăng LMC lên 1.

f) Nếu LMC khác 0, gán f(x) bằng H(x), trong đó f(x) là hàm mục tiêu, H(x) xác định theo các công thức(3.10) và (3.11).

Bước 6: Kết thúc lặp. Bước 7: Trả kết quả.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

K.E.Parsopoulos và M.N.Vrahatis cũng đã thử nghiệm PSO cổ điển và SPSO cho một vài bài toán tối ưu thông dụng, như cục tiêu hóa hàm một số Levy, hàm Corana 2 chiều và 4 chiều, hàm Freudenstein – Roth và bài toán phân loại mẫu cổ điển Artificial Neural Networks (ANNs), nghĩa là phân loại các mẫu Exclusive - OR (XOR).

Trong tất cả các mô phỏng quần thể, giá trị 1, 2 và  được lấy như sau: 1= 10000, 2 = 1, và  = 10-10 . Giá trị mặc định của các tham số c1 và c2 được sử dụng là c1 = c2 = 0.5. Các tác giả duy trì sự cân bằng khảo sat toàn cục và cục bộ có thể của SPSO bằng lực quán tính từ khi vị trí của cá thể được cập nhật theo chiến lược PSO cổ điển. Bắt đầu vơi lực quán tính bằng 1 và giảm dần cho đến 0.4 công việc sẽ tốt hơn là sử dụng hằng số quán tính. Bởi vì lực quán tính lớn giúp tìm được hạt giống tốt hơn khi bắt đầu tìm kiếm, sau đó lực nhỏ làm cho việc tìm lời giải tôt nhất dễ dàng hơn.

Mỗi bài toán sử dụng SPSO được thực thi 100 lần và hiệu suất trung bình được tính với giá trị trung bình và độ lệch chuẩn của số lượng các hàm tiến hóa và phần trăm thành công của SPSO. Kết quả của tất cả cac bài toán kể trên được trình bày ở bảng 3.2, trong đó kích thước của quần thể sử dụng cho mỗi bài toán cũng như giá trị khởi tạo quần thể một cách ngẫu nhiên.

Hàm Levy No.3 được chọn bởi công thức:

5 5 1 2 1 1 ( ) os[(i-1)x ]. os[(j-1)x ] i j f x  ici   jcj (1.60) Với   10 xi 10, i = 1, 2. Hàm này có 760 cực tiểu địa phương và 18 cực tiểu toàn cục với giá trị hàm f*

= -176.524. Như chúng ta đã thấy từ bảng 2.2 có 85 lần (trên tổng số 100) PSO tìm được cực tiểu mà không cần một sự trợ giúp nào, ngoài ra 15 trường hợp nó rơi vào cực tiểu địa phương và hàm

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

“keo giãn” được áp dụng một cách hiệu quả. Như vậy tỉ lệ thành công của PSO đã tăng lên 15%.

Có sự tăng tỉ lệ thành công từ 93% đến 100% như quan sát thấy với hàm Levy No.5, nơi mà kỹ thuật “kéo giãn” được áp dụng trong 7 trường hợp. Trong khi đó đối với hàm Levy No.8, PSO có năng lực tìm thấy cực tiểu toàn cục trong cả 1oo trường hợp mà không cần một sự trợ giúp nào. Hàm Levy No.8 được cho bởi công thức:

1 2 2 2 2 1 1 1 ( ) sin ( ) ( 1) [1+10sin ( )] ( 1) n i i n i f xyyyy       (3.14) Với 1 1 1 i i x y    , i = 1, ..., n; xi[-10,10] với i = 1, 2, 3 và có một cực tiểu toàn cục tại điểm x*

- (1, 1, 1) với giá trị hàm f* - 0 và ước chừng 125 cực tiểu địa phương.

Hàm Corana 4 chiểu được định nghĩa bởi công thức:

4 1 ( ) j j f x a   , aj 0.15 ( xj 0.05 sgn( )) zj 2dj), nếu xjzj < 0.05 2 j j j

adx nếu ngược lại

Trong đó: [-1000, 1000] j x  , dj 1,1000,10,100 và 0.49999 sgn( ) 0.2 0.2 j j j x z   x       

Và là bài toán cực tiểu hóa rất khó cho nhiều phương pháp. Như chúng ta thấy từ bảng 3.2, PSO chỉ đạt tỉ lệ thành công 74% thế nhưng khi sử dụng SPSO tỷ lệ thành công tăng đến 100%.

Có thể thấy kết quả tương tự cho hàm Freudenstein – Roth và Goldstcin Price, khi tỉ lệ thành công của SPSO tăng lần lượt là 40% và 50%.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

2 2

1 2 2 1 2 2

( ) [ 13 +((5-x )-2)x ] [ 29 +((x +1)-14)x ]

f x   x   x (1.61)

Và có cực tiểu toàn cục x*= (5, 4) với giá trị hàm f(x*

)= 0.

Trong khi hàm Goldstcin – Price được xác định bởi công thức:

2 2 2 1 2 1 1 2 1 2 2 2 2 2 1 2 1 1 2 1 2 2 ( ) (1 ( ) (19 14 3 14 6 3 )) (30 (2 3 ) (18 32 12 48 36 27 )) f x x x x x x x x x x x x x x x x x                 (1.62)

Và có cực tiểu toàn cục với giá trị hàm f* - 3tại điểm x* - (0, -1).

Trong thí nghiệm khác, ANN được huấn luyện sử dụng SPSO để học bài toán phân loại XOR Boolean. Hàm XOR ánh xạ hai đầu vào nhị phân thành hai đầu ra nhị phân đơn và ANN được huấn luyện để giải bài toán có hai tuyến nút vào, hai nút ẩn và một nút ra, tất cả đều được khởi động với hàm logistic. Nhiệm vụ này tương ứng với việc cực tiểu hóa hàm mục tiêu sau đây:

2 7 8 9 1 2 5 3 4 6 2 7 8 9 5 6 2 7 8 9 2 5 3 6 7 8 2 5 ( ) 1+cxp(- - - ) 1 exp( ) 1 exp( ) 1 exp( ) 1 xp( ) 1 exp( ) 1- 1+cxp(- - - ) 1 exp( ) 1 exp( ) 1- 1+cxp(- - 1 exp( ) 1 exp x x f x x x x x x x x x x x e x x x x x x x x x x x x x                                                      2 1 9 3 6 - ) ( x x ) x                  (1.63)

Trong ngữ cảnh của ANN, các tham số x1, x2...,x9 được gọi là trọng số và được khởi tạo trên đoạn [-1, 1]. Sự thành công của việc huấn luyện này, nghĩa là với tới cực tiểu toàn cục, phụ thuộc vào giá trị trọng số khởi tạo.

Hàm trên có rất nhiều cực tiểu địa phương và từ kết quả ở bảng 3.2, cho ta thấy rất rõ là kỹ thuật hàm “kéo giãn”giúp tăng đáng kể phần trăm thành công của PSO, từ 77% lên đến 100%.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

Kết luận chƣơng 1:

Động cơ điện một chiều được sử dụng rộng rãi và phổ biến trong các dây chuyền thiết bị, các cơ cấu vận hành như thang máy, máy nâng... Chất lượng điều chỉnh tốc độ cao, có phạm vi điều chỉnh rộng, dễ dàng điều khiển.

Một phần của tài liệu Nghiên cứu giải thuật bày đàn và ứng dụng tìm thông số tối ưu cho bộ điều khiển (Trang 29 - 39)

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

(77 trang)