Giải thuật di truyền (Genetic Algorithm)

Một phần của tài liệu NGHIÊN cứu , THIẾT kế và cài đặt bộ điều KHIỂN dự báo TRÊN cơ sở hệ LOGIC mờ (Trang 44)

Thuật toán di truyền là thuật toán tối ưu ngẫu nhiên dựa trên cơ chế chọn lọc tự nhiên và tiến hóa di truyền. Nguyên lý cơ bản của thuật toán di truyền đã được Holland giới thiệu vào năm 1962. Cơ sở toán học đã được phát triển từ cuối những năm 1960 v à đã được giới thiệu trong quyển sách đầu tiên của Holland, Adaptive in Natural and Artificial Systems. Thuật toán di truyền được ứng dụng đầu tiên trong hai lĩnh vực chính: tối ưu hóa và học tập của máy. Trong lĩnh vực tối ưu hóa thuật toán di truyền được phát triển nhanh chóng và ứng dụng trong nhiều lĩnh vực khác nhau nh ư tối ưu hàm, xử lý ảnh, bài toán hành trình người bán hàng, nhận dạng hệ thống và điều khiển. Thuật toán di truyền cũng như các thuật toán tiến hóa nói chung, hình thành dựa trên quan niệm cho rằng, quá trình tiến hóa tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất và tự nó đã mang tính tối ưu. Quan niệm này có thể xem như một tiên đề đúng, không chứng minh đ ược, nhưng phù hợp với thực tế khách quan. Quá trình tiến hóa thể hiện tính tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ trước bởi tính kế thừa v à đấu tranh sinh tồn.

Thực ra, GA thuộc lớp thuật giải xác suất, nh ưng lại rất khác những thuật giải ngẫu nhiên vì chúng kết hợp các phần tử tìm kiếm trực tiếp và ngẫu nhiên. Khác biệt quan

MAI VĂN SỸ, NGUYỄN NGỌC LINH – ĐKTĐ – KSTN– K48 45 trọng trong tìm kiếm của GA và các phương pháp tìm kiếm khác là GA duy trì và xử lý một tập các lời giải ( gọi là một quần thể) – các phương pháp khác chỉ xử lý tại một điểm trong không gian tìm kiếm.

Đơn cử, ta so sánh Giải thuật di truyền với ph ương pháp tìm kiếm được sử dụng rộng rãi: Leođồi và Mô phỏng luyện thép.

Phương pháp leo đồi dùng kỹ thuật lặp và áp dụng cho một điểm duy nhất ( điểm hiện hành trong không gian tìm kiếm ). Trong mỗi bước lặp , một điểm mới đ ược chọn trong lân cận điểm hiện hành ( vì thế Leo đồi còn được gọi là phương pháp tìm kiếm lân cận hay tìm kiếm cục bộ). Nếu điểm mới cho giá trị của hàm mục tiêu tốt hơn thì điểm mới sẽ trở thành điểm hiện hành. Nếu không, một lân cận khác đ ược chọn và thử. Quá trình trên sẽ kết thúc nếu như không cải thiện thêm được cho lời giải hiện hành.

Rõ ràng là phương pháp Leo đồi chỉ cung cấp các giá trị tối ưu cục bộ và những giá trị này phụ thuộc vào điểm khởi đầu. Hơn nữa, không có thông tin sẵn có về sai số t ương đối ( thỏa tối ưu toàn cục) của lời giải tìmđược.

Để tăng cơ hội thành công, phương pháp leo đ ồi thường được thực hiện nhiều lần với các điểm khởi đầu khác nhau.

Kỹ thuật mô phỏng luyện thép là một kỹ thuật khắc phục các nh ược điểm của phương pháp leo đồi. Lời giải không còn phụ thuộc nhều vào điểm khởi đầu nữa, và thường là gần với điểm tối ưu. Đạt được điều này là nhờ vào xác suất nhận p. Xác suất p là hàm theo giá trị của hàm mục tiêu đối với điểm hiện hành và điểm mới, và một tham số điều khiển bổ sung, tham số “nhiệt độ” T. Nói chung, nhiệt độ T càng thấp thì cơ hội nhận điểm mới càng nhỏ. Khi thực hiện thuật toán thì nhiệt độ T được hạ thấp dần theo từng bước. Thuật giải ngừng khi T nhỏ hơn một ngưỡng cho trước; với ngưỡng này thì hầu như không còn thayđổi nào được chấp nhận nữa.

Như đã trình bày, GAs thực hiện tiến trình tìm kiếm lời giải tối ưu theo nhiều hướng bằng cách duy trì một quần thể các lời giải v à thúc đẩy sự hình thành và trao đổi thông tin giữa các hướng này. Quần thể trải qua tiến trình tiến hóa : ở mỗi thế hệ lại tái sinh các lời giải tương đối tốt, trong khi phần lớn các lời giải tương đối xấu thì chết đi. Để phân biệt các lời giải khác nhau thì hàm mục tiêu được dùng để đóng vai trò môi trường.

Một thuật giải di truyền áp dụng cho một bài toán cu thể phải bao gồm năm thành phần sau đây:

 Cách biểu diễn di truyền cho lời giải của bài toán.(hay còn gọi là mã hóa nhiễm sắc thể.)

 Cách khởi tạo quần thể ban đầu.

 Xây dựng hàm lượng giá đóng vai trò môi trường, đánh giá các lời giải theo mức độ thích nghi của chúng.

 Các phép toán di truyền

 Các tham số khác (kích thước quần thể, xác suất áp dụng các phép toán di truyền…)

Sau đây chúng ta sẽ áp dụng giải thuật di truyền trong bài toán tối ưu MPC

3.1.2.1 Mã hóa nhiễm sắc thể (Encoding)

Lời giải trong bài toán điều khiển theo mô hình dự báo là chuỗi tín hiệu điều khiển trong phạm vi (miền) điều khiển –Horizon Control. Như vậy, mỗi cá thể trong quần thể sẽ biều diễn một chuỗi tín hiệu đi ều khiển:

     

i , i 1 ,... i c 1  1,..., pop

uu k u ku kHiN (3.1)

hoặc chuỗi biến thiên của tín hiệu:

     

i , i 1 ,..., i c 1 

u u k u k u k H

        (3.2)

Trong đó, Npop là số lượng nhiễm sắc thể trong quần thể.

C

H là phạm vi điều khiển.

Để đơn giản, chúng ta sẽ sử dụng ph ương phápmã hóa nhị phân. Tức là: mỗi phần tử trong chuỗi tín hiệu điều khiển hoặc biến thiên tín hiệu điều khiển được mã hóa bằng một chuỗi nhị phân có độ dài là n bits. Như thế, mỗi cá thể sẽ có độ dài là n Hc bits, vớin

được xác định dựa vào khoảng bị chặn của tín hiệu điều khiển v à độ chính xác của nghiệm cần tìm. (adsbygoogle = window.adsbygoogle || []).push({});

Giả sử u t  D  a b, R, và cần m số lẻ đối với giá trị của các u, như vậy miền giới hạn D phải được chia thành ba.10m phần bằng nhau. n là số nguyên nhỏ nhất thỏa bất đẳng thức sau:

ba.10m2n1 (3.3)

Việc biểu diễn như vậy rõ ràng là bảo đảm được độ chính xác yêu cầu. Công thức quy đổi từ chuỗi nhị phân sang giá trị thập phân (Decoding):

1001...012 2n 1 b a u a decimal      (3.4) 3.1.2.2 Khi to qun th

Để khởi tạo quần thể ta có thể thực hiện đơn giản là tạo popsize nhiễm sắc thể ngẫu nhiên theo từng bit. Một cách phức tạp hơn, ta có thể vận dụng xác suất về phân phối để khởi tạo quần thể ban đầu thì tốt hơn.

MAI VĂN SỸ, NGUYỄN NGỌC LINH – ĐKTĐ – KSTN– K48 47 Trong bài toán tối ưu MPC thì hàm thích nghiđược xây dựng dựa vào giá trị của hàm mục tiêu (hàm chi phí):             1 2 2 1 | | 1| p C H H k n k J u k y t k t t k t k u t k t                  (3.5) 1

n là giới hạn dưới của miền dự báo; H H là phc, p ạm vi điều khiển và phạm vi dự báo. Các hệ số ( )j( )j xác định trọng số các thành phần trong hàm mục tiêu.

Tuy nhiên đây là bài toán t ối thiểu hàm mục tiêu nên nhiễm sắc thể nào có giá trị hàm chi phí nhỏ hơn thì sẽ có độ thích nghi cao h ơn. Trên cơ sở đó, có nhiều phương pháp xây dựng hàm thích nghi. Để đơn giản ta sẽ xây dựng hàm thích nghi có tương quan tỉ lệ nghịch với hàm chi phí:    1 f u J u     (3.6)

được bổ sung để tránh khả năng f  .

3.1.2.4 Các phép toán ca thut toán di truyn

1.Tái sinh (Reproduction)

Tái sinh là quá trình chọn quần thể mới thỏa phân bố xác suất dựa trên độ thích nghi. Độ thích nghi là một hàm gán một giá trị thực cho nhiễm sắc thể hay cá thể trong quần thể. Các cá thể có độ thích nghi lớn sẽ có nhiều bản sao trong thế hệ mới. Hàm thích nghi có thể không tuyến tính, không tồn tại đạo hàm, không liên tục bởi vì thuật toán di truyền chỉ cần liên kết hàm thích nghi với các chuỗi số. Quá trình này được thực hiện dựa trên

bánh xe quay Roulette (bánh xe sổ xố) với các rãnh được định kích thước theo độ thích nghi. Kỹ thuật này được gọi là lựa chọn cha mẹ theo bánh xe roulette. Bánh xe roulette được xây dựng như sau (giả định rằng, các độ thích nghi đều dương, trong trường hợp ngược lại thì ta có thể dùng một vài phép biến đổi tương ứng để định lại tỷ lệ sao cho các độ thích nghi đều dương).

- Tính độ thích nghi fi, i=1÷ n của mỗi nhiễm sắc thể trong quần thể hiện hành,với

nlà kích thước của quần thể (số nhiễm sắc thể trong quần thể).

- Tìm tổng giá trị thích nghi toàn quần thể: 1 n i i F f  

- Tính xác suất chọnpi cho mỗi nhiễm sắc thể:

F f pii

- Tính vị trí xác suất qi của mỗi nhiễm sắc thể: 

  i j j i p q 1

Hình 3.1: Bánh xe quay Roulette

Tiến trình chọn lọc được thực hiện bằng cách quay bánh xe roulette n lần, mỗi lần chọn một nhiễm sắc thể từ quần thể hiện hành vào quần thể mới theo cách sau:

- Phát sinh ngẫu nhiên một sốr (quay bánh xe roulette) trong khoảng [0÷1] - Nếu rq1thì chọn nhiễm sắc thể đầu ti ên; ngược lại thì chọn nhiễm sắc thể

thứi sao cho: qi1rqi

Kết quả của quá trình này là các cá thể có độ thích nghi cao thì có nhiều khả năng sống sót và được nhân bản. Còn các cá thể kém thích nghi thi ít có c ơ hội sống hơn và được loại bỏ bớt khỏi quá trinh tiến hóa. Điều này thực sự cũng phù hợp với tiến hóa của tự nhiên.

2. Lai ghép (Crossover)

Phép lai là quá trình hình thành nhiễm sắc thể mới trên cơ sở các nhiễm sắc thể cha - mẹ, bằng cách ghép một hay nhiều đoạn gen của hai (hay nhiều) nhiễm sắc thể cha - mẹ với nhau. Phép lai xảy ra với xác suất pc, được thực hiện như sau:

- Đối với mỗi nhiễm sắc thể trong quần thể mới, phát sinh ngẫu nhiên một số r

trong khoảng [0÷1], nếur < pc thì nhiễm sắc thể đó được chọn để lai ghép. - Ghép đôi các nhiễm sắc thể đã chọn được một cách ngẫu nhi ên, đối với mỗi

cặp nhiễm sắc thể được ghép đôi, ta phát sinh ngẫu nhiên một số nguyên pos (adsbygoogle = window.adsbygoogle || []).push({});

trong khoảng [0÷m-1] (m là tổng chiều dài của một nhiễm sắc thể - tổng số gen). Sốpos cho biết vị trí của điểm lai. Điều n ày được minh họa nhưsau:

MAI VĂN SỸ, NGUYỄN NGỌC LINH – ĐKTĐ – KSTN– K48 49 1 2 os os+1 1 2 os os+1 ... ... ... ... p p m p p m b b b b b b c c c c c c  

- Chuyển đổi các gen nằm sau vị trí lai:

1 2 os os+1 1 2 os os+1 ... ... ... ... p p m p p m b b b b c c c c c c b b    

Như vậy phép lai này tạo ra hai chuỗi mới, mỗi chuổi đều đ ược thừa hưởng những đặc tính lấy từ cha và mẹ của chúng.

Trên đây là sơ đồ kiểu lai ghép tại một điểm. Tuy nhiên còn có kiểu lai ghép phức tạp hơn là : lai ghép tại đa điểm (thông thường là hai điểm :two-point crossover).

Mặc dù phép lai ghép sử dụng lựa chọn ngẫu nhi ên, nhưng nó không đư ợc xem như là một lối đi ngẫu nhiên qua không gian tìm kiếm. Sự kết hợp giữa tái sinh và lai ghép làm cho thuật toán di truyền hướng việc tìm kiếm đến những vùng tốt hơn.

3. Đột biến(Mutation)

Đột biến là hiện tượng cá thể con mang một (số) tính trạng không có trong mã di truyền của cha mẹ. Phép đột biến xảy ra với xác suất pm, nhỏ hơn rất nhiều so với xác suất lai pc. Mỗi gen trong tất cả các nhiễm sắc thể có c ơ hội bị đột biến như nhau, nghĩa là đối với mỗi nhiễm sắc thể trong quần thể hiện h ành (sau khi lai) và đ ối với mỗi gen trong nhiễm sắc thể, quá trình đột biến được thực hiện như sau:

- Phát sinh ngẫu nhiên một sốr trong khoảng [0÷1] - Nếurpm, thìđột biến gen đó.

Đột biến đưa thêm thông tin mới vào quần thể, làm tăng khả năng tìm được lời giải gần tối ưu của thuật toán di truyền. Đột biến không đ ược sử dụng thường xuyên vì nó là phép toán tìm kiếm ngẫu nhiên, với tỷ lệ đột biến cao, thuật toán di truyền sẽ còn xấu hơn phương pháp tìm kiếm ngẫu nhiên.

Sau quá trình tái sinh, lai và đột biến, quần thể mới tiếp tục đ ược tính toán các giá trị thích nghi, sự tính toán này được dùng để xây dựng phân bố xác suất (cho tiến trình tái sinh tiếp theo), nghĩa là, để xây dựng lại bánh xe roulette với các rãnh được định kích thước theo các giá trị thích nghi hiện hành. Phần còn lại của thuật toán di truyền chỉ là sự lặp lại chu trình của những bước trên.

3.1.2.5 Cấu trúc của thuật toán di truyền tổng quát.

Thuật toán di truyền bao gồm các b ước sau: Vị trí lai

- Bước 1: Khởi tạo quần thể các nhiễm sắc thể.

- Bước 2: Xác định giá trị thích nghi của từng nhiễm sắc thể.

- Bước 3: Sao chép lại các nhiễm sắc thể dựa vào giá trị thích nghi của chúng và tạo ra những nhiễm sắc thể mới bằng các phép toán di truyền.

- Bước 4: Loại bỏ những thành viên không thích nghi trong quần thể.

- Bước 5: Chèn những nhiễm sắc thể mới vào quần thể để hình thành một quần thể mới.

- Bước 6: Nếu mục tiêu tìm kiếm đạt được thì dừng lại, nếu không trở lại b ước 3.

Hình 3.2: Sơ đồ thực thi giải thuật di truyền

Bắt đầu

Định nghĩa hàm đánh giá; chọn các biến, thông

số di truyền.

Khởi tạo quần thể ban đầu. Giải mã nhiễm sắc thể Tính độ thích nghi Tái sinh Lai ghép Đột biến Số thế hệ = Max ? Kết thúc N Y

MAI VĂN SỸ, NGUYỄN NGỌC LINH – ĐKTĐ – KSTN– K48 51

3.1.2.6 Thực thi thuật toán

Giải thuật di truyền được xây dựng trên công cụ lập trình bậc cao là Matlab.

Các mô phỏng dưới đây được thực hiện trên máy tính PC có cấu hình: Pentium IV 2.8GHz, DRAM 512.

Điều khiển đối tượng nhiệt: (adsbygoogle = window.adsbygoogle || []).push({});

Xét đối tượng nhiệt có hàm truyền đạt:

     20 120 1 50 1 s e G s s s     (3.7)

Đây là đối tượng tương đối chậm, thời gian trễ lớn.

Sau khi thu thập số liệu từ quá trình, ta tiến hành nhận dạng băng mô hình mờ. Mô hình này được sử dụng để dự báo đầu ra của đối t ượng. Bộ điều khiển MPC sử dụng giải thuật di truyền được xây dựng trong Matlab d ưới dạng hàm:

function u = ga_fis (myfis,lamda,TDLy,TDLu,... model,Ts,Hc,Hp,num_bit,num_chro,num_gen);

myfis : mô hình mờ sau khi nhận dạng

model : mô hình đối tượng ( dùng để tính giá trị phản hồi) Hp : phạm vi dự báo đầu ra

Hc : phạm vi điều khiển num_bit : số bit để mã hóa u

num_chro: số nhiễm sắc thể trong quần thể num_gen : số thế hệ tiến hóa.

Các hàm con sử dụng trong chương trình:

function generation=genbin(pop,nbit) : tạo quần thể gồm pop nhiễm

sắc thể, mỗi nhiễm sắc thể dài nbit.

function val=bin2real(chro,range,pos) : chuyển đổi chuỗi nhị phân

sang giá trị thập phân.

function newgen = selectmin(gen,myfis,Hp,cur_state,ref) : tái

sinh có chọn lọc.

function newgen = mate (gen,ma): thực hiện lai ghép

function newgen=mutate(gen,mu) : thực hiên đột biến.

function J=cost(myfis,du,Hp,cur_state,ref) : hàm mục tiêu.

Kết quả mô phỏng: Với giả thiết:

- u bịchặn trong khoảng [0, 1] - Hc= 1;

- xác suất lai ghép: pc 0.7 - xác suất đột biến: pm 0.007 - chu kỳ trích mẫu: Ts = 10s

 với Hp=5, num_bit=15, num_chro =50, num_gen=3, Lamda =0.001. - Thời gian lớn nhất mỗi bước tính Tmax ~ 3.1 s .(<Ts=10s)

- Đầu ra bám được với tín hiệu đặt, tuy nhiên tín hiệu điều khiển lại thay đổi khá mạnh, nghiệm tìmđược chưa phải là nghiệm tối ưu.

Một phần của tài liệu NGHIÊN cứu , THIẾT kế và cài đặt bộ điều KHIỂN dự báo TRÊN cơ sở hệ LOGIC mờ (Trang 44)