Bài giảng Tính toán tiến hóa - Bài 6: Differential evolution (DE). Bài này cung cấp cho học viên những nội dung về: giải thuật tiến hóa sai phân (Differential Evolution - DE); sơ đồ của DE; mô hình thuật toán; các biến thể của DE;... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Trang 1PGS.TS Huỳnh Thị Thanh Bình
Email: binhht@soict.hust.edu.vn
Differential Evolution (DE)
Trang 2Tổng quan
Giải thuật tiến hóa sai phân (Differential Evolution - DE):
Thuật toán tối ưu ngẫu nhiên dựa trên quần thể
Được giới thiệu bởi Storn và Price vào năm 1996
Thuộc lớp giải thuật tiến hóa
Xử lý các bài toán tối ưu tham số thực, tìm cực trị hàm
đa biến, phi tuyến, không khả vi
Các dạng bài toán mà DE giải quyết
Hàm mục tiêu 𝑓: 𝑋 ⊂ 𝑅𝐷 → 𝑅, 𝑋 ≠ ∅ Mục tiêu bài toán tìm giá trị x* sao cho
𝑥∗ ∈ 𝑋: 𝑓 𝑥 ≥ 𝑓 𝑥∗ ∀ 𝑥 ∈ 𝑋
Trang 3Sơ đồ của DE
Khởi tạo Đột biến Lai ghép Chọn
lọc
Trang 4Mô hình thuật toán
Trang 5Khởi tạo
Giả sử cần tối ưu 𝐷 tham số
Tham số thứ 𝑘 trong khoảng giá trị [𝐿𝐵𝑘, 𝑈𝐵𝑘]
Kích thước quần thể 𝑁 ≥ 4
Mỗi cá thể được biểu diễn bằng một vector D
chiều
Cá thể thứ i
𝐼𝑖 = 𝐼𝑖1, 𝐼𝑖2, … , 𝐼𝑖𝐷
I𝑖𝑗 = 𝑟𝑎𝑛𝑑 0,1 ∗ 𝑈𝐵𝑗 − 𝐿𝐵𝑗 + 𝐿𝐵𝑗
Trang 6Đột biến
Mỗi cá thể trong DE đều tham gia vào quá trình
đột biến +lai ghép+ chọn lọc
Quá trình đột biến được thực hiện trước khi lai
ghép
Với mỗi cá thể 𝐼𝑘 ta chọn ngẫu nhiên 3 cá thể khác nhau 𝐼𝑘1, 𝐼𝑘2, 𝐼𝑘3 𝑘 ≠ 𝑘1 ≠ 𝑘2 ≠ 𝑘3
Toán tử đột biến được thực hiện bằng cách thêm
sự chênh lệch giữa 2 cá thể vào cá thể thứ 3
𝑉𝑘 = 𝐼𝑘3 + 𝐹 ∗ (𝐼𝑘2 − 𝐼𝑘1)
F là hằng số để scale chênh lệnh, 𝐹 ∈ [0,2]
𝑉𝑘 là vector đột biến
Trang 7Lai ghép
Cá thể con 𝑂𝑘 được sinh ra bằng cách lai ghép cá thể 𝐼𝑘 và vector đột biến 𝑉𝑘
Toán tử lai ghép sử dụng lai ghép nhị thức
Chọn ngẫu nhiên một số nguyên j ∈ [1, 𝐷]
𝑂𝑘𝑖 = ቊ𝑉𝑘𝑖 𝑛ế𝑢 𝑗 = 𝑖 ℎ𝑜ặ𝑐 𝑟𝑎𝑛𝑑 0,1 < 𝐶𝑅
𝐼𝑘𝑖 𝑛𝑔ướ𝑐 𝑙ạ𝑖
Sinh ra 1 con
Trang 8Chọn lọc
Cá thể con 𝑂𝑘 sinh ra được so sánh với cá thể cha
𝐼𝑘 của chúng
Nếu độ thích nghi của 𝑂𝑘 lớn hơn 𝐼𝑘 thì cá thể con
sẽ thay thế cá thể cha trong thế hệ tiếp theo
Trang 9Các biến thể của DE
Khác nhau ở cách tính vector đột biến
Adaptive ?
DE/rand/1 : 𝑉𝑘 = 𝐼𝑘1 + 𝐹 ∗ (𝐼𝑘3 − 𝐼𝑘2)
DE/rand/2: 𝑉𝑘 = 𝐼𝑘1 + 𝐹1 ∗ 𝐼𝑘3 − 𝐼𝑘2 + 𝐹2 ∗ (𝐼𝑘5 − 𝐼𝑘4)
DE/best/1: 𝑉𝑘= 𝐼𝑏𝑒𝑠𝑡 + 𝐹 ∗ (𝐼𝑘2 − 𝐼𝑘1)
DE/best/2: 𝑉𝑘 = 𝐼𝑏𝑒𝑠𝑡 + 𝐹1 ∗ 𝐼𝑘2 − 𝐼𝑘1 + 𝐹2 ∗ (𝐼𝑘4 − 𝐼𝑘3)
DE/target-to-best/1:
𝑉𝑘 = 𝐼𝑘 + 𝐹1 ∗ 𝐼𝑏𝑒𝑠𝑡 − 𝐼𝑘 + 𝐹2 ∗ 𝐼𝑘2 − 𝐼𝑘1
Trang 10Hiệu chỉnh tham số trong DE
Kích thước quần thể (N)
F
CR
Trang 11Hiệu chỉnh tham số trong DE
Kích thước quần thể
Các giải thuật tiến hóa mong muốn khám phá được nhiều không gian tìm kiếm trong các thế hệ đầu
Ở các thế hệ cuối, quá trình tập trung khai thác những vùng có chứa lời giải hứa hẹn
Các giải thuật tiến hóa khác nhau ở mức độ khám phá
và khai thác của chúng
Khám phá => Kích thước quần thể lớn
Khai thác => Kích thước quần thể nhỏ
Storn và Price chỉ ra nên chọn kích thước quần thể 𝑁 ∈
5𝐷 , 10𝐷 với D là số chiều không gian tìm kiếm
Trang 12Hiệu chỉnh tham số trong DE
Tỷ lệ lai ghép (CR) và hệ số scale F
jDE
Điều kiển F và CR bởi 2 tham số 𝑟1, 𝑟2
Cập nhật F và CR
𝐹𝑖,𝐺+1 = ቊ𝐹𝐿 + 𝑟𝑎𝑛𝑑1 ∗ 𝐹𝑢 𝑛ế𝑢 𝑟𝑎𝑛𝑑2 < 𝑟1
𝐹𝑖,𝐺 𝑛𝑔ượ𝑐 𝑙ạ𝑖
𝐶𝑅𝑖,𝐺+1 = ቊ𝑟𝑎𝑛𝑑3 𝑛ế𝑢 𝑟𝑎𝑛𝑑4 < 𝑟2
𝐶𝑅𝑖,𝐺 𝑛𝑔ượ𝑐 𝑙ạ𝑖
𝑟1 = 𝑟2 = 0.1, 𝐹 ∈ 0.1, 0.9 , 𝐶𝑅 ∈ [0,1]
Trang 13Hiệu chỉnh tham số trong DE
Tỷ lệ lai ghép (CR) và hệ số scale F
SaDE
F = lấy ngẫu nhiên theo phân phối chuẩn N(0.5,0.3)
𝐶𝑅 ~𝑁 CRm, std , std = 0.1 Giá trị trung bình ban đầu CRm =0.5
Trong một số thế hệ (cụ thể 5), CR không đổi Sau đó
CR được sinh lại theo phân phối 𝑁 CRm, std
Sau một số thế hệ (25 thế hệ) , CRm được tính lại từ giá trị trung bình của các giá trị CR của các cá thể con thành công ở các thế hệ trước
Mỗi khi tính lại CRm , các giá trị CR cũ bị xóa bỏ
Trang 14Hiệu chỉnh tham số trong DE
Tỷ lệ lai ghép (CR) và hệ số scale F
JADE
𝐶𝑅 ~𝑁 CRm, 0.1 , 𝐶𝑅 ∈ 0,1
Cập nhật
𝐶𝑅𝑚 = 1 − 𝑐 𝐶𝑅𝑚 + 𝑐 ∗ 𝑚𝑒𝑎𝑛𝐴(𝑆𝐶𝑟)
𝑆𝐶𝑟 là tập các giá trị CR của các cá thể con thành công
F ~𝑁 Fm, 0.1 , F∈ 0,1
Cập nhật
𝐹𝑚 = 1 − 𝑐 𝐹𝑚 + 𝑐 ∗ 𝑚𝑒𝑎𝑛𝐿(𝑆𝐹)
𝑚𝑒𝑎𝑛𝐿 = σ𝐹∈𝑆𝐹 𝐹
2
σ𝐹∈𝑆
𝐹 𝐹
𝑐 ∈ [0.05, 0.2]
Trang 15Hiệu chỉnh tham số trong DE
Tỷ lệ lai ghép (CR) và hệ số scale F
SHADE
Sử dụng Lehmer mean (Cec 14) để tính 𝑆𝐹, 𝑆𝐶𝑟
Lưu trữ 𝑆𝐹, 𝑆𝐶𝑟 cảu mỗi thế hệ vào trong lịch sử
𝑀𝐹, 𝑀𝐶𝑟
𝑀𝐹, 𝑀𝐶𝑟 là mảng số thực có H phần tử
Cặp giá trị (𝐹𝑖, 𝐶𝑟𝑖) được chọn bằng cách lấy ngẫu nhiên một số k trong khoảng [1,H]
𝐹𝑖 = Cauchy( MF k , 0.1)
𝐶𝑟𝑖 = N( MCr k , 0.1)
Trang 16Hiệu chỉnh tham số trong DE
Tỷ lệ lai ghép (CR) và hệ số scale F
SHADE
k = 2
𝐹𝑖 = Cauchy(0.52, 0.1)
𝐶𝑟𝑖 = N(0.87, 0.1)
Trang 17Hiệu chỉnh tham số trong DE
Tỷ lệ lai ghép (CR) và hệ số scale F
SHADE
Các phần tử trong 𝑀𝐹, 𝑀𝐶𝑟 ban đầu được khởi tạo đều
là 0.5
𝐹𝑖, 𝐶𝑟𝑖 được sử dụng bởi các cá thể con thành công được lưu trong 𝑆𝐹, 𝑆𝐶𝑟
Sau mỗi thế hệ thứ i, tính lại 𝑆𝐹, 𝑆𝐶𝑟 và lưu trữ lại vị trí
k = i mod H +1 trong mảng 𝑀𝐹, 𝑀𝐶𝑟 tương ứng
Trang 18Hiệu chỉnh tham số trong DE
Tỷ lệ lai ghép (CR) và hệ số scale F
SHADE
Trang 19Thanks for your attention