Giải thuật di truyền GA Genetic Algorithms GA bắt đầu với một tập hợp các giải pháp được mã hóa bởi các nhiễm sắc thể NST gọi là quần thể.. Các giải pháp từ một quần thể được lấy và sử d
Trang 1Giải thuật di truyền GA (Genetic Algorithms)
GA bắt đầu với một tập hợp các giải pháp (được mã hóa bởi các nhiễm sắc thể (NST)) gọi là quần thể Quần thể ban đầu thường được thành lập một cách ngẫu nhiên Các giải pháp từ một quần thể được lấy và sử dụng để tạo ra quần thể mới Điều này dẫn đến việc các quần thể mới sẽ tốt hơn quần thể cũ Những giải pháp được lựa chọn theo độ thích nghi sẽ tạo nên các giải pháp mới
(con cái) càng phù hợp hơn với hàm số thích nghi thì càng có nhiều cơ hội hơn để tiếp tục tái sinh Việc lặp
sẽ tiếp tục được thực hiện cho đến khi thỏa mãn một
hoặc một số điều kiện dừng do chúng ta đặt ra
Trang 21 [Khởi đầu] Tạo ngẫu nhiên quần thể của N nhiễm sắc thể
2 [Độ thích nghi] Tính độ thích nghi cho mỗi nhiễm sắc thể x thuộc quần thể:
3 [Quần thể mới] Tạo quần thể mới bằng cách lặp lại các bước cho tới khi
quần thể mới được hoàn thành
1 [Chọn lọc] Chọn cặp nhiễm sắc thể bố mẹ từ quần thể dựa trên độ
thích nghi của chúng (độ thích nghi càng cao, cơ hội được lựa chọn càng lớn)
2 [Lai] Với một sác xuất lai, lai cặp nhiễm sắc thể bố mẹ để cho ra
nhiễm sắc thể con Nếu việc lai không được thực hiện, nhiễm sắc thể con là bản sao chính xác của bố mẹ
3 [Đột biến] Với một sác xuất đột biến, biến đổi nhiễm sắc thể con tại
một vài vị trí của nhiễm sắc thể được chúng ta lựa chọn
4 [Thay thế] Sử dụng quần thể mới tạo để tiếp tục chạy chương trình
5 [Kiếm tra] Nếu điều kiện kết thúc được thỏa mãn, dừng lặp và trả về giải
pháp tốt nhất từ quần thể hiện tại; nếu không thỏa mãn điều kiện dừng quay lại bước 2
Trang 4-Chọn lọc xếp hạng:
Sắp xếp các chuỗi theo thứ tự giảm dần của hàm mục tiêu (bài toán cực đại) hoặc theo thứ tự tăng đần của hàm mục tiêu (bài toán cực tiểu)
Tính độ phù hợp của chuỗi
Sử dụng thủ tục quay Rulet chọn chuỗi để sao chép sang quần thể tạm thời
-Chọn lọc cạnh tranh:
Chọn t cá thể từ quần thể hiện tại một cách ngẫu nhiên và chọn
cá thể tốt nhất trong t cá thể đó để sao chép sao chép sang quần thể tạm thời
Lặp lại bước trên N lần chúng ta sẽ có quần thể tạm thời
Giá trị t được gọi là kích cỡ của chọn lọc cạnh tranh Khi t=2 chúng ta chọn lọc cạnh tranh nhị phân
-Sử dụng bánh xe Roulette
Trang 5Người ta thực hiện việc sinh sản bằng cách quay bánh xe Roulette với số lần bằng số nhiễm sắc thể trên bánh xe
Roulette Đối với bài toán này số lần quay bánh xe Roulette
là 4 Nhiễm sắc thể 1 có giá trị thích nghi là 169, tương ứng 14,4 % tổng độ thích nghi Như vậy, nhiễm sắc thể 1 chiếm 14.4% trên bánh xe Roulette Mỗi lần quay nhiễm sắc thể 1
sẽ chiếm khe với giá trị 0,144
Trang 6◦ Chọn ngẫu nhiên hai (hay nhiều) cá thể bất kỳ trong quần thể Giả sử các nhiễm sắc thể của cha
mẹ đều có m gen
◦ Tạo một số ngẫu nhiên trong khoảng từ 1 đến
m-1 (ta gọi là điểm lai)
◦ Đưa hai cá thể mới này vào quẩn thể để tham gia các quá trình tiến hóa tiếp theo
Trang 7↓
↓ ↓ ↓
Trang 8◦ Chọn ngẫu nhiên một cá thể bất kỳ cha mẹ
trong quần thể
◦ Tạo một số ngẫu nhiên k trong khoảng từ 1 đến
m, 1 ≤ k ≤ m
◦ Thay đổi gen thứ k và trả cá thể này về quần thể
để tham giá quá trình tiến hóa tiếp theo
Trang 9Hệ nhị phân 00001 00010 00011 00100 00101 00110 00111 01000
Trang 11
Chọn hàm số thích nghi f(x)= 1000–|X*X –64| và quy định đáp số nào có hệ số thích nghi bằng 1000 hay gần 1000 nhất sẽ là đáp số của bài toán
Thứ tự Nhị phân Thập phân Bình phương
của hệ số ở cột thập phân
Trang 12Chúng ta thấy theo thứ tự 10 và 4 có hệ số
thích nghi cao hơn do đó chúng sẽ được
chọn để tạo sinh và biến hóa, đồng thời số
21 và 24 có hệ số thích nghi thấp nhất sẽ bị loại
001 | 00 (4) 010 | 00 (hay 8)
010 | 10 (10) 001 | 10 (hay 6)
Trang 13Thứ tự Nhị phân Thập phân Bình phương
của hệ số ở cột thập phân
Trang 14Thuật toán tối ưa hóa bầy đàn PSO
(Particle swarm optimization)
PSO là một kỹ thuật tối ưu hóa ngẫu nhiên dựa trên một quần thể và sau đó tìm nghiệm tối ưu bằng cách cập nhật các thế hệ
Thuật toán PSO nghĩa là vị trí tối ưu của quần thể sẽ được cập nhật ngay lập tức khi một cá thể tìm thấy một vị trí tốt hơn so với vị trí tối ưu của quần thể trong việc tìm kiếm Thuật toán
PSO đảm bảo tính độc lập và sức mạnh tổng hợp của các cá thể,
để thông tin của cá thể tối ưu kịp thời có thể được chia sẻ bởi các cá thể khác Trong mỗi lần lặp, mỗi cá thể cập nhật tốc độ và
vị trí của nó bằng cách theo dõi các vị trí tối ưu của cá thể đó và quần thể,
PSO có nhiều sự tương tự như kỹ thuật tính toán tiến hóa trong thuật toán di truyền GA (Genetic algorithm) Tuy nhiên, không giống như GA, PSO không có các thao tác tiến hóa như là lai ghép (crossover) hay đột biến (mutation)
Trang 15Wini là trọng số quán tính ban đầu,
Wend là trọng số quán tính khi đạt số lần lặp lớn nhất
C là hệ số gia tốc , thường là 2
Trọng số 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 tại Trọng số quán tính được điều chỉnh một cách thỏa hiệp giữa sự khảo sát toàn cục( phạm vi rộng khắp)
và cục bộ (phạm vi gần) và ảnh hưởng khả năng hội tụ của PSO
Thường khởi tạo ban đầu là 0.9 và kết thúc là 0.4
Trang 16 Bước 1 : Khởi tạo N cá thể ( kích thước của quần thể ) Với mỗi cái thể
i từ 0 đến N , khởi tạo ngẫu nhiên vị trí Xi, vận tốc Vi Vị trí tốt nhất của cá thể thứ i (Pi) và chỉ số g của cá thể tốt nhất bằng 0
Bước 2 : Với mỗi cái thể i:
Tính giá trị hàm mục tiêu f(Xi)
Nếu f(Xi) nhỏ hơn f(Pi), gán Pi = Xi
Nếu f(Pi) nhỏ hơn f(Pg), gán g = i
Trang 17http://ieeexplore.ieee.org.sci-hub.org/xpl/articleDetails.jsp?tp=&arnumb er=6008424&queryText%3DPSO+Algorith m+in+pid+controller+on+fpga
Trang 18Scilab/Scicos
Part 1: Scilab
1.Khái niệm và ứng dụng:
Là phần mềm mã nguồn mở miễn phí dùng cho việc tính toán số học
và mô phỏng (tương thích Windows ,Linus ,Mac OS X ) ,cụ thể hơn
là : xử lý tín hiệu, xử lý ảnh, tính toán và mô phỏng, thiết kế hệ thống điều khiển, tối ưu hóa và phát triển 1 số ứng dụng khác…
Scilab là 1 loại ngôn ngữ lập trình bậc cao với tính toán cơ bản dựa trên ma trận và quản lý bộ nhớ tự động Do đó có thể giải quyết nhiều vấn đề, bài toán với số dòng lệnh ít hơn so với các ngôn ngữ lập trình thường dùng như C,C++,…
Scilab được xây dựng dựa trên cơ sở của Matlab nên nó có cú pháp, câu lệnh tương tự với Matlab
Scilab được sử dụng rộng rãi trong các cơ sở giáo dục trung học và cao hơn cho giảng dạy toán học, khoa học kỹ thuật và kỹ thuật điều khiển
tự động
Trang 192.Một số link: (thông tin chi tiết ,HD sử dụng, download link…)
http://www.scilab.org/
http://www.scilab-enterprises.com/
Trang 20
1.Khái niệm,ứng dụng:
Scicos là 1 chương trình xây dựng mô hình và mô phỏng Với
nó, người dùng có thể tạo ra sơ đồ khối để mô hình hóa và mô phỏng các hoạt động của hệ thống (bao gồm tín hiệu thời gian liên tục và rời rạc), sau đó biên dịch các mô phỏng này thành những đoạn mã thực thi
Ứng dụng: Xử lý tín hiệu, điều khiển hệ thống, phục vụ các nghiên cứu về hệ thống vật lý và sinh học
Tính năng cụ thể:
- Xây dựng mô hình đồ họa, biên dịch và mô phỏng
- Kết hợp các tín hiệu thời gian liên tục và rời rạc trên cùng 1
mô hình
- Lập trình các block mới trong ngôn ngữ C hoặc scilab
- Tạo C code từ mô hình scicos bằng việc sử dụng 1 Code
Generator