Thuật toán PSO

Một phần của tài liệu Sử dụng thuật toán particle swarm optimization đánh giá độ trụ từ dữ liệu đo trên máy CMM c544 (Trang 51 - 99)

V. Công cụ nghiên cứu

2.1.2Thuật toán PSO

PSO được khởi tạo bằng một nhóm cá thể ngẫu nhiên và sau đó tìm nghiệm tối ưu bằng cách cập nhật các thế hệ. Trong mỗi thế hệ, mỗi cá thể được cập nhật theo hai vị trí tốt nhất. Giá trị thứ nhất là vị trí tốt nhất mà nó đã từng đạt được cho tới thời điểm hiện tại, gọi là Pbest. Một nghiệm tối ưu khác mà cá thể này bám theo là nghiệm tối ưu toàn cục Gbest, đó là vị trí tốt nhất trong tất cả quá trình tìm kiếm từ trước tới thời điểm hiện tạị Nói cách khác, mỗi cá thể trong quần thể cập nhật vị trí của nó theo vị trí tốt nhất của nó và của cả quần thể tính tới thời điểm hiện tại như (hình 2.1).

Hình 2.1.Sơ đồ một điểm tìm kiếm bằng phương pháp PSO

Xik+1 Gbesti i ViGbest Vik+1 Vi k Xik ViPbest Pbest i

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc-tnụedụvn Trong đó: Xik: Vị trí cá thể thứ i tại thế hệ thứ k Vik: Vận tốc cá thể thứ i tại thế hệ thứ k Xik+1: Vị trí cá thể thứ i tại thế hệ thứ k+1 Vik+1: Vận tốc cá thể thứ i tại thế hệ thứ k+1 Pbest: Vị trí tốt nhất của cá thể thứ i

Gbest: Vị trí tốt nhất trong quần thể

Vận tốc và vị trí của cá thể trong quần thể đƣợc tính nhƣ sau:

   ki best k i best k i k i V c r P X c r G X V       . . . . . 1 1 2 2 1  (2.1) 1 1     k i k i k i X V X (2.2) Trong đó: w: là trọng số quán tính c1, c2: Các hệ số gia tốc

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

Lƣu đồ giải thuật PSO:

Khởi tạo các cá thể với vị trí và vận tốc ngẫu nhiên Bắt đầu Khởi tạo - Kích thƣớc quần thể N - Trọng số quán tính w - Hệ số gia tốc c1, c2 Tính hàm thích nghi Tính Pbest và Gbest

Cập nhập vị trí, vận tốc, Pbest và Gbest của các cá thể

T.chuẩn hội tụ

Dừng Thỏa

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

Biểu đồ lƣu thông của thuật toán PSO:

1. Khởi tạo quần thể:

(a) Thiết lập các hằng số: kmax , c1, c2.

(b) Khởi tạo ngẫu nhiên vị trí cá thể i

x0 thuộc miền D trong tập IRn

với i = 1, 2, ..., p.

(c) Khởi tạo ngẫu nhiên vận tốc cá thể : 0 ≤ i

v0 max 0

v với i = 1, ...,p. (d) Đặt k = 1.

2. Tối ưu hóa:

(a) Đánh giá hàm i k

f bằng tọa độ của i k

x tính toán được trong không gian tìm kiếm. (b) Nếu i best i k f f  thì i k i best f f, i k i k x p  (c) Nếu g best i k f f  thì i k g best f f, i k g k x p

(d) Nếu thỏa mãn điều kiện thì dừng lại rồi thực hiện bước 3. (e) Cập nhật tất cả các vận tốc của cá thể i k v với i= 1, ..., p. (f) Cập nhật tất cả các vị trí i k x với i = 1, ..., p. (g) Tăng k. (adsbygoogle = window.adsbygoogle || []).push({});

(h) Quay trở lại từ bước 2(a). 3. Kết thúc.

Với kmax là số lần lặp tối đạ

2.1.3 Sự khác biệt của thuật toán PSO so với các thuật toán tối ƣu khác.

PSO khác với các phương pháp tối ưu khác ở các điểm sau:

- PSO sử dụng sự tương tác giữa các cá thể trong một quần thể để khám phá không gian tìm kiếm.

- PSO tìm kiếm từ một số điểm trong không gian n chiều chứ không phải từ một điểm.

- PSO sử dụng các thông tin về hàm mục tiêu chứ không phải đạo hàm hay những đại lượng phụ khác.

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

- PSO sử dụng các luật chuyển đổi theo xác suất, chứ không phải các luật chuyển đổi tiền định.

PSO đòi hỏi một tập hợp các thông số tự nhiên của bài toán tối ưu để tìm ra điểm tối ưu trong không gian tìm kiếm.

2.1.4 Tính chất của thuật toán PSỌ

- Trọng lượng quán tính không đổị

- Động lực quán tính và vận tốc tối đa giảm. - Thời gian theo dõi phụ thuộc là nhỏ nhất. - Có sử dụng thông số nén.

- Tốc độ tuyến tính của trọng lượng quán tính giảm. - Sử dụng phương pháp tối ưu hóa rời rạc.

- Khả năng tìm kiếm tốt nhưng tìm kiếm tối ưu cục bộ lại không ổn định. - Có thể tăng tốc độ tìm kiếm địa phương tốt hơn với chi phí cao hơn và khả

năng hội tụ sớm hơn.

- Khả năng tìm kiếm cục bộ tăng nhanh và đạt được bằng thuật toán sửa đổị

2.1.5 Ƣu nhƣợc điểm của thuật toán PSỌ

 Ưu điểm:

- Thực hiện đơn giản.

- Dễ dàng để xử lý song song đồng thờị - Chuyển hóa miễn phí.

- Thuật toán có ít thông số.

- Thuật toán có hiệu quả tìm kiếm trên toàn cục.  Nhược điểm: - Khả năng tìm kiếm cục bộ yếụ

2.1.6 Ứng dụng của thuật toán PSỌ

 PSO sử dụng trong lĩnh vực y học để nghiên cứu và điều trị các bệnh thần kinh: - Thuật toán PSO phát hiện được bệnh Parkinson (Đi đứng khó khăn, cử động chậm, tay chân cứng và run, cơ mặt bị liệt).

- Sử dụng thuật toán PSO có thể khai thác được các quy tắc từ các mạng mờ. - Dùng thuật toán PSO để nhận dạng bằng hình ảnh.

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

 Trong ngành điện sử dụng thuật toán PSO để tối ưu hóa trong phân bố mạng điện năng..

 Sử dụng thuật toán PSO để tìm nghiệm tối ưu trong bài toán cơ học kết cấu: - Tối ưu hóa hình dạng và kích thước thiết kế.

- Tối ưu hóa cấu trúc liên kết (tìm mối liên hệ không gian tối ưu giữa các đối tượng được liên kết). (adsbygoogle = window.adsbygoogle || []).push({});

 Sử dụng thuật toán PSO trong quy trình hóa sinh: Tạo ra một loạt động tác, đặc biệt sử dụng trong loạt hoạt động được tổ chức và tiến hành nhằm đạt tới một kết quả cuối cùng trong sản suất hóa sinh.

 Sử dụng thuật toán PSO để nhận dạng trong sinh học.

2.2. Thuật toán PSO song song và PSO nối tiếp.

 Ban đầu trong quá trình thực hiện thuật toán PSO người ta sử dụng phương pháp đồng bộ (synchronous) hay song song.

 Trong quá trình phát triển và vận dụng các nhà khoa học nhận thấy tốc độ hội tụ được cải thiện khi pipg được cập nhật sau mỗi lần đánh giá hàm mục tiêu bằng phương pháp không đồng bộ (asynchronous) hay nối tiếp.

2.2.1. Thuật toán PSO song song.

1. Khởi tạo quần thể. 2. Tối ưu hóạ (a) Xác định giá trị. i k f tại xi (b) Tất cả các quy trình được sàng lọc qua lớp màng chắn. (c) Nếu i best i k f f  thì i k i best f f, i k i k x p  (d) Nếu g best i k f f  thì i k g best f f, i k g k x p

(e) Nếu điều kiện được thỏa mãn thì đến bước 3. (f) Xác định vận tốc i k v 1và vị trí i k x 1. (g) Tăng k.

(h) Đi đến bước 2(a). 3. Kết thúc.

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

Lƣu đồ giải thuật:

Hình 2.2. Lƣu đồ giải thuật PSO song song

Cập nhập vận tốc và vị trí của mỗi phần tử: i k i k x v , Cập nhập giá trị tốt nhất của cá thể và của quần thể, g best i best f f , Xuất ra kết quả Dừng yes no T.chuẩn hội tụ Tăng i Hàng rào đồng bộ hóa Bắt đầu

Khởi tạo các hằng số thuật toán: kmax, v0max, c1, c2

Đặt k = 1

Khởi tạo ngẫu nhiên vị trí và vectơ vận tốc của tất cả các phần tử: i k x vki  x1 fi fi x2  x3 fi  x4 f i  n i x f …..

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

Ƣu nhƣợc điểm:

PSO song song sử dụng phương pháp phần tử hữu hạn để giải quyết các vấn để của bài toán:

Sử dụng thuật toán tối ưu hóa song song có những hiệu quả:  Hiệu suất giải quyết vấn đề bài toán được cao hơn:

- Giải quyết được các vấn đề phức tạp hơn trong cùng một khoảng thời gian.

- Có khả năng giải quyết được các vấn đề mà các phương pháp trước đây chưa làm được hoặc khó khăn trong việc tìm ra lời giảị  PSO song song cho độ chính xác cao hơn.

2.2.2. Thuật toán PSO nối tiếp.

1. Khởi tạo quần thể. 2. Tối ưu hóa:

(a) Xác định giá trị fik tại xi.

(b) Nếu i best i k f f  thì i k i best f f, i k i k x p  (c) Nếu g best i k f f  thì i k g best f f, i k g k x p

(d) Nếu điều kiện được thỏa mãn thì đến bước 3. (e) Xác định vận tốc i

k

v 1và vị trí i k x 1. (f) Tăng ị Nếu i > s thì đặt i = 1, tăng k.

(g) Đi đến bước 2(a) (adsbygoogle = window.adsbygoogle || []).push({});

3. Ghi nhận kết quả và kết thúc.

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

Hình 2.3. Lƣu đồ giải thuật PSO nối tiếp

Xuất ra kết quả Dừng yes Cập nhập vận tốc và vị trí của mỗi phần tử: i k i k x v , Đánh giá hàm mục tiêu  x fi của mỗi phần tử i Cập nhập giá trị tốt nhất của cá thể và của quần thể, g best i best f f , Bắt đầu

Khởi tạo các hằng số thuật toán: kmax, v0max, c1, c2

Đặt k = 1; i = 1

Khởi tạo ngẫu nhiên vị trí và vectơ vận tốc của tất cả các phần tử: i k x vki no T.chuẩn hội tụ Tăng i i> tổng số phần tử Đặt i = 1, tăng k yes no

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

Ƣu nhƣợc điểm:

PSO nối tiếp có tất cả các ưu điểm của PSO song song và phương pháp này còn có thêm ưu điểm vượt trội nữa là cho tốc độ hội tụ nhanh.

2.3. Các bƣớc quan trọng trong việc áp dụng thuật toán PSO:

Bước 1: Chọn kích thước quần thể: s, số lượng các thế hệ kmax, c1, c2, w.

Bước 2: Khởi tạo các vị trí và vận tốc của tất cả các cá thể được đặt ngẫu nhiên trong quần thể.

Bước 3: Thiết lập thời gian cập nhật thế hệ k = 1 và cá thể i =1.

Bước 4: Đánh giá sự phù hợp cho từng cá thể theo chức năng hàm mục tiêụ Bước 5: So sánh và đánh giá hàm mục tiêu của các cá thể với vị trí tốt nhất của

cá thể thứ i i best

f . Nếu giá trị hiện tại tốt hơn so với i best

f thì thiết lập

i best

f bằng giá trị hiện hành. Xác định vị trí cá thể trong vùng lân cận đạt được cho là tốt nhất cho tới thời điểm hiện tại g

best f .

Bước 6: Tốc độ mỗi cá thể được cập nhật bằng giá trị tốt nhất trên toàn cục theo công thức: (2.1)

Bước 7: Vị trí mỗi cá thể được cập nhật bằng vị trí tốt nhất trước nó đạt được và vận tốc vừa cập nhật, theo công thức: (2.2)

Bước 8: Khi nào điều kiện được thỏa mãn thì dừng lại và đến bước 11. Bước 9: Tăng i

Bước 10: Nếu i > sthì đặt i = 1, tăng k. đi đến bước 4. Bước 11: Ghi nhận kết quả và kết thúc.

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

Chƣơng 3

ÁP DỤNG THUẬT TOÁN PSO ĐỂ ĐÁNH GIÁ ĐỘ TRỤ

Trong phần này sẽ trình bầy nội dung nghiên cứu chính của luận văn, từ yêu cầu đặt ra cho bài toán đánh giá sai lệch hình trụ ta đi xây dựng hàm mục tiêu tìm kiếm. Trên cơ sở đó phát biểu bài toán dưới dạng tối ưu hàm một biến và dùng kỹ thuật tối ưu hóa bầy đàn (PSO) để giải quyết bài toán.

3.1 Yêu cầu đặt ra cho bài toán đánh giá độ trụ. (adsbygoogle = window.adsbygoogle || []).push({});

Sai số hình trụ là khoảng cách hướng kính của hai hình trụ đồng trục, trong tập dữ liệu đo tên toàn bộ bề mặt hình trụ thì khoảng cách hướng kính đó là nhỏ nhất. Mô hình sai số hình trụ được thể hiện trong hình vẽ 3.1:

Hình 3.1 Miền dung sai hình trụ Trong đó:

r1, r2: lần lượt là bán kính hai hình trụ đồng trục, (r1 < r2 ).

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

(3.1) t: là miền dung sai giữa hai hình trụ đồng trục bán kính r1, r2. (3.2) Giả sử trục hình trụ song song với trục z và xác định bởi phương trình:

(3.3) Với: a, b là các giá trị tọa độ của điểm nằm trên trục của hình trụ.

l, m là các thành phần của vectơ hướng của trục hình trụ. (l, m, 1) - vectơ hướng.

Khi đó khoảng cách giữa điểm đo Pi (xi, yi, zi), (i = 1, 2, ... , N) và trục hình trụ xác định bởi công thức:

di = (3.5)

Do vậy ta có thể biểu diễn hàm mục tiêu cho việc đánh giá sai số nhỏ nhất bằng hàm sau:

f(a, b, l, m) = min [max {di} - min {di}] (3.6)

Như vậy việc tìm sai số hình trụ dược chuyển thành tìm (a, b, l, m) để hàm

f(a, b, l, m) nhỏ nhất.

Từ đó bài toán đánh giá độ trụ được phát biểu như sau: Gọi (x1, y1, z1), (x2, y2, z2), ..., (xi, yi, zi), ..., (xn, yn, zn) là tọa độ trong không gian Oxyz của n điểm trên hình trụ cần đo (Hình 3.1). ta cần phải viết được phương trình đường thẳng là trục của hình trụ lý tưởng phù hợp nhất với các tọa độ vừa đo được. Cụ thể ta phải tìm tọa độ giao điểm của mặt phẳng Oxy với trục này (a, b, 0) và vectơ hướng (l, m, 1) của nó. Khoảng cách của điểm đo thứ I có tọa độ (xi, yi, zi) tới trục của hình trụ lý tưởng này xác định theo công thức (3.5). Gọi giá trị lớn nhất và nhỏ nhất trong các giá trị di này là dmaxdmin. Sai số hình trụ có thể tính được f (a, b, l, m) = dmax - dmin. Theo định nghĩa độ trụ, mục đích của bài toán là xác định (a, b, l, m) sao cho giá trị f là nhỏ nhất.

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

Với cách thức như vậy độ chính xác đạt được phụ thuộc vào số điểm đo và độ chính xác đạt được cao nhất khi n vô cùng lớn. Điều này dẫn đến việc phải xử lý một khối lượng dữ liệu lớn ảnh hưởng đến hiệu quả kinh tế của phép đọ Thuật toán PSO dưới đây định hướng xử lý trên tập dữ liệu hữu hạn, đo ngẫu nhiên trên toàn bộ hình trụ và phân tán dọc theo hình trụ đọ

3.2. Đánh giá độ trụ dựa trên thuật toán PSỌ

Như đã trình bầy ở chương 2, tối ưu hóa bầy đàn tương tự như thuật toán di truyền - cho phép giảm không gian tìm kiếm của bài toán mà vẫn hội tụ đến giải pháp tối ưu toàn cục - nhưng không có quá trình lai ghép và đột biến nên chúng hội tụ nhanh hơn. Sử dụng PSO đánh giá độ trụ là tối ưu hóa các giá trị (a, b, l, m ) trên tập dữ liệu đọ

Với tập dữ liệu các điểm đo, mục tiêu là xác định các giá trị (a, b, l, m) để f (a, b, l, m) = min(dmax - dmin). Thuật toán dựa trên kỹ thuật tối ưu hóa theo bầy đàn dưới đây sẽ mô tả quá trình nàỵ

a, Biểu diễn của một phần tử.

Để áp dụng được thuật toán PSO cho bài toán thì việc đầu tiên chúng ta phải tìm được cách biểu diễn của các phần tử sao cho mỗi phần tử là một giải pháp của bài toán. Thông thường, có ba phương pháp mã hóa: mã hóa số thực, mã hóa số nguyên, mã hóa bít nhi phân. Trong luận văn này, phương pháp được sử dụng là phương pháp mã hóa số thực. Mỗi phần tử là một vectơ d chiều (d là số biến được tối ưu).

Cụ thể, ký hiệu tập dữ liệu đo là N gồm L điểm trên bề mặt trụ: Nj = {(x1, y1,

Một phần của tài liệu Sử dụng thuật toán particle swarm optimization đánh giá độ trụ từ dữ liệu đo trên máy CMM c544 (Trang 51 - 99)