Biết rằng mỗi biến xi có thể lấy các giá trị từ miền Di=[ai, bi] là tập con của R và yêu cầu độ chính xác là k chữ số thập phân đối với các giá trị biến... Hàm thích nghi: Cmin là tham
Trang 2Các ứng dụng của Thuật giải di
truyền
Giải bài toán tối ưu miền liên tục tổng quát
Trang 3Thuật giải di truyền giải bài
toán tối ưu hàm nhiều biến liên
tục
Trang 41 Đặt vấn đề:
dụng giải thuật di truyền cho bài toán cực tiểu hoá một hàm f có n biến, min f(x1,x2, ,xn) Biết rằng mỗi biến xi có thể lấy các giá trị từ miền Di=[ai, bi] là tập con của R và yêu cầu độ chính xác là k chữ số thập phân đối với các giá trị biến
Trang 52 Biễu diễn biến nhờ các véc tơ
nhị phân:
được biểu diễn bởi chuỗi nhị phân có chiều dài l L bit mã hoá x ứng với giá
lên các giá trị thuộc miền xác định [Umin,
miền trị của các biến và tính chính xác của chúng Tỷ lệ co dãn của ánh xạ này được cho bởi:
Trang 62 Biễu diễn biến nhờ các véc tơ
nhị phân:
định theo công thức:
x=Umin+decimal(string2)*g
Decimal(string2) biểu diễn giá trị thập phân của
chuỗi nhị phân string2, g được xác định bởi
công thức trên
1 2
g
Trang 72 Biễu diễn biến nhờ các véc tơ
nhị phân:
các biến riêng lẻ lại với nhau Mỗi mã
tương ứng với một chiều dài các bit riêng
và xác định một giá trị tương ứng của nó nằm trong khoảng [Umin,Umax].Ví dụ mã hoá cho 10 biến được cho bởi:
U1 | U2 | | U9 | U10
Trang 83.Toán tử chọn lọc cá thể (select ):
mỗi cá thể được bảo lưu cho vòng sinh sản tiếp sau tuỳ thuộc vào giá trị thích
toán tử chọn lọc Roulete Toán tử này là một phiên bản mô phỏng của quá trình chọn lọc tự nhiên Giá trị thích nghi f(i) được xác định đối với mỗi cá thể trong tập hợp Giá trị này càng lớn thì cá thể được coi là hợp lý
Trang 93.Toán tử chọn lọc cá thể (select ):
các bước :
1.Tính tổng giá trị thích nghi (fitness) của tất cả
thành viên lực lượng và gọi nó là tổng thích nghi
2.Phát sinh một số n là số ngẫu nhiên trong
khoảng từ 0 đến tổng thích nghi
3.Trả lại thành viên tập hợp đầu tiên mà độ
thích nghi của nó cộng với độ phù hợp của các thành viên tập hợp trước đấy lớn hơn hoặc bằng n
Trang 104 Toán tử lai ghép (crossover):
để tạo ra những con lai tốt được gọi là lai
mẹ được chọn lựa với xác suất lai ghép
ký hiệu bởi pcross Xác suất này cho chúng ta số lượng pcross*pop_size các nhiễm sắc thể được dùng cho hoạt động lai ghép, ở đây pop_size là kích thước của quần thể được lai tạo
Trang 114 Toán tử lai ghép (crossover):
Với mỗi nhiễm sắc thể trong tập hợp:
Phát sinh một số ngẫu nhiên r trong khoảng [0 1];
Nếu r<pcross, chọn nhiễm sắc thể đó để lai ghép
Sau đó, ta kết hợp các nhiễm sắc thể được chọn một cách
ngẫu nhiên:
Mỗi cặp nhiễm sắc thể, chúng ta có thể phát sinh một số
ngẫu nhiên pos từ khoảng [1 l] (l là tổng số bit trong nhiễm thể) Số pos báo hiệu vị trí của điểm lai ghép Hai nhiễm
sắc thể :
(b1b2 bposbpos+1 bl) và (c1c2 cposcpos+1 cl)
được thay thế bởi cặp con cháu:
(b1b2 bposcpos+1 cl) và (c1c2 cposbpos+1 bl)
Như vậy xử lý này sản xuất 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 mẹ của chúng
Trang 125 Toán tử đột biến (mutation):
thông tin mới trong quần thể lai tạo tại
các vị trí bit (gen) nào đó (quần thể được xem xét có pop_size cá thể, mỗi cá thể
được biểu thị qua l bit) Đột biến được áp
biến là pmu*l*pop_size bit Mỗi bit có cơ hội đột biến như nhau và được thay đổi
từ 0 thành 1 hay ngược lại
Trang 135 Toán tử đột biến (mutation):
mỗi bit trong nhiễm sắc thể :
[0 1]
Nếu r <pmu, tiến hành đột biến tại bit đó
lại cho tới khi các cá thể con cháu của chúng tăng trưởng tới kích cỡ mong
muốn của quần thể
Trang 146 Hàm thích nghi:
nghi:
do đó cần phải xây dựng ánh xạ hàm mục tiêu đang xét trong bài toán sang hàm thích nghi
thông qua một hoặc nhiều lần ánh xạ Nếu bài toán tối ưu là cực tiểu một hàm đánh giá
g(x), việc chuyển từ hàm đánh giá sang hàm thích nghi để sử dụng với GA như sau:
Trang 156 Hàm thích nghi:
Cmax là một tham số đầu vào Ví dụ, có thể lấy
Cmax là giá trị g lớn nhất trong tập hợp hiện tại, hoặc lớn nhất sau k vòng lặp
xét bài toán cực đại hoá một hàm hữu dụng u(x), chúng ta có thể chuyển sang hàm thích nghi như sau:
Truong
C x
g khi
x g
C x
f
0
) ( )
( )
Trang 166 Hàm thích nghi:
Cmin là tham số đầu vào, có thể là trị tuyệt
đối của u bé nhất trong tập hợp hiện tại hoặc trong k vòng lặp cuối cùng hoặc là một hàm của biến tập hợp
Truong
C x
u khi
C x
u x
f
0
0 )
( )
( )
Trang 176 Hàm thích nghi:
Thang đo độ thích nghi:
Khi một vài cá thể "siêu" có tiềm năng chiếm lĩnh phần
lớn quần thể và làm cho hội tụ sớm Thang đo độ thích nghi có thể giúp giải quyết vấn đề này
Một kiểu thang đo hay gặp là thang đo tuyến tính Định
nghĩa độ thích nghi gốc là f và độ thích nghi đã biến đổi
là f' Thang đo tuyến tính xác định quan hệ giữa f và f' như sau:
Trang 186 Hàm thích nghi:
Cmult là số các bản sao cần thiết đối với một thành viên
tốt nhất Với lượng biến tương đối nhỏ (n=50 đến 100),
Cmult thường được chọn từ 1.2 đến 2 và tỏ ra khá hiệu quả Biểu thức (2) bảo đảm rằng mỗi thành viên với
độ phù hợp trung bình sẽ cho một con cháu đối với lần phát sinh tiếp theo Biểu thức (3) kiểm soát số con cháu được nạp vào làm thành viên với độ thích nghi gốc cực đại Lưu ý rằng thang đo tuyến tính trong biểu thức từ (1)-(3) có thể làm cho giá trị thích nghi trở thành âm Điều này không cho phép vì phải luôn đảm bảo tính không âm của nó Một giải pháp thay thế điều kiện trong biểu thức (3) là sử dụng điều kiện f'min=0
Trang 197 Bài toán cực tiểu hàm f với n
biến vào liên tục:
Thuật toán
Khởi tạo tập hợp (thủ tục initpop): nhằm thiết lập số lượng
nhiễm sắc thể ngẫu nhiên ban đầu dưới dạng chuỗi nhị phân với kích cỡ tập hợp bằng pop_size Tuy nhiên, nếu chúng ta có thể
ước lượng một số cá thể gần tối ưu, cũng có thể dùng thông tin đó
để thiết lập các giải pháp ban đầu
Phần còn lại của thuật toán được tiến hành như sau:
Với mỗi lần lặp,đánh giá từng nhiễm sắc thể (Sử dụng hàm mục tiêu f trên tập biến được giải mã (decode));
Chọn tập hợp mới (áp dụng toán tử chọn cá thể) với phân phối xác
suất căn cứ vào các giá trị thích nghi (fitness values);
Tái sản xuất nhiễm sắc thể trong tập hợp mới bởi các toán tử đột biến
và lai ghép (Hàm generate mục sau)
Sau một số lần lặp khi không tìm được cải tiến tốt hơn, nhiễm sắc thể biễu diễn lời giải tối ưu
Thường thuật toán kết thúc sau một số vòng lặp được xác định tuỳ
thuộc vào tốc độ và tài nguyên máy tính
Trang 248 Thử nghiệm và đánh giá:
Nhận xét: Các kết quả trên tương đối ổn định, ứng với
4 biến vào thuật toán có thể chấp nhận được
Đánh giá, kết luận:
Giải thuật di truyền trên có thể giải quyết bài toán tối
ưu bất kỳ (cực tiểu hoá hàm mục tiêu) với n biến vào Tuy nhiên, với số lượng biến vào khá nhiều, các giá trị hàm mục tiêu đạt được thường không gần với kết quả tối ưu thực sự Để khắc phục vấn đề này, có thể tăng
số lượng vòng lặp, hy vọng lần sinh sản muộn sẽ hình thành những con cháu với độ thích nghi cao ứng với các giá trị hàm mục tiêu gần kết quả tối ưu thực sự nhất
Trang 25THUẬT GIẢI DI TRUYỀN CHO VIỆC XÁC ĐỊNH THAM SỐ CỦA DẠNG HÀM – BÀI TOÁN CHIẾT DUNG MÔI
Trang 26Nội dung chi tiết:
môi hóa học
Trang 27Giới thiệu bài toán:
Nhiều hệ thống vật lý, hoá học… vận hành theo các
hàm tuyến tính hoặc phi tuyến :
Bằng phương pháp đo đạc thực nghiệm người ta
có thể tìm được những giá trị là kết quả hoạt động của hệ thống ứng với các giá trị đầu vào cụ thể
Nhu cầu đặt ra là từ các kết quả thực nghiệm có
được làm sao có thể xác định một cách tương đối hàm số mô phỏng hệ thống đó
Bằng một số phương pháp nào đó người ta có thể
phán đoán được dạng hàm của hệ thống, vấn đề tiếp theo là làm sao xác định được các tham số cho hàm
số đã phán đoán được này
Trang 28Cách giải quyết:
Hàm số f(x) đã biết dạng trước và một số bộ dữ liệu ta có thể
xác định được tham số của f(x) bằng :
Bình phương tối tiểu(BPTT) khảo sát phương pháp này Nội suy đa thức
Nếu f(x) là dạng hàm tuyến tính thì BPTT có thể cho kết quả
tối ưu
Nếu f(x) là dạng hàm phi tuyến thì kết quả thu được qua BPTT
chưa hẳn là tối ưu (vì có nhiều dạng hàm phi tuyến khá
phức tạp,và ta phải qua khá nhiều bước biến đổi : logarit,
đặt ẩn phụ… do đó bộ tham số kết quả có được chưa hẳn
là tối ưu)
Ta đề xuất phương pháp dùng thuật giải di truyền sau khi
đã áp dụng BPTT
Trang 29Như vậy mô hình được đề xuất là:
Trang 3030
* Dạng hàm Phi tuyến:
Phương pháp BPTT ứng với dạng hàm cho trước
Trang 31Phương pháp bình phương tối tiểu
- Nội dung
Xét một quan hệ giữa x và y: y = f(x)
Giả sử chúng ta đã biết được dạng của f(x)
với các tham số ai ,i = 1,2, ,m Và ta cũng có tập dữ liệu đầu vào ứng với f(x) là các bộ (xi, yi) i = 1,2,…,n
Gọi εi là các sai số tại xi : εi = yi – f(xi) , i = 1,2,…n
Khi đó tổng bình phương của các sai số được xác định:
S = ∑ εi2 = ∑ (yi – f(xi)) 2 với i = 1,2,…n
Mục đích của BPTT là xác định các tham số
ai, i = 1,2, m của f(x) sao cho S là nhỏ nhất
Trang 3232
Nội dung(tt)
Như vậy các tham số ai sẽ là nghiệm của hệ:
Giải hệ phương trình trên ta có thể xác định cụ thể các tham số ai
Trang 33 Vậy a, b sẽ là nghiệm của hệ:
với (xi, yi) là bộ dữ liệu cho trước
Trang 36Xét hàm phi tuyến y = ax1bexp(-cx1dx2)
Với các bộ giá trị thực nghiệm (x1i, x2i, yi )
Trang 37Phi Tuyến Tính (tt)
Tuyến tính hoá y
Lấy Logarit nepe hai vế ta được:
ln y = lnA + ln(exp(-Bx2))
Đặt Y’= lny , A’ = ln A, B’ = B Ta được:
Y’ = A’ + B’x2 ( dạng y =ax + b)
Áp dụng phương pháp BPTT Tìm được A’, B’ :
A = eA’, B = B’
Thay A vào (1) và tuyến tính hoá ta được:
(1) <=> ln A = a + b ln(x1)
Trang 38Phi Tuyến Tính (tt)
Với hàm số : ln A = a + b ln(x1) (biết A, x1)
Thực hiện tương tự ta xác định a,b
Thay B vào (2) tương tự như (1) ta cũng xác định được
Vì do sai số nên bộ tham số kết quả tìm được (a,b,c,d)
chưa phải là tối ưu Đề xuất kế tiếp là ta sẽ lấy bộ tham số này làm đầu vào cho thuật giải di truyền để hi vọng tìm được bộ tham số tối ưu hơn
Trang 3939
Sử dụng thuật giải di truyền sau khi đã áp dụng phương pháp BPTT để xác định
Chọn ε, xét những giá trị thuộc các miền [a-ε, a+ε]; [b-ε,
b+ε]; [c-ε, c+ε]; [d-ε, d+ε] (với (a,b,c,d) là bộ tham số tìm được từ phương pháp BPTT)
Tìm bộ tham số mới sao cho giá trị mới S’ bé hơn giá trị S tìm được ứng với bộ tham số ở trên (S = ∑ (yi –
Áp dụng thuật giải di truyền với các miền ràng buộc trên
Xác định bộ (a0, b0, c0, d0) sao cho hàm sai số S là
nhỏ nhất
Trang 40Sử dụng thuật giải di truyền(tt)
Cách biểu diễn nhiễm sắc thể:
Biểu diễn gen :
Phương pháp nhị phân Phương pháp biêu diễn dấu phẩy động
Do miền ràng buộc các biến xuất phát từ những giá trị thực, bộ tham số kết quả cũng là những giá trị thực …
Không nên dùng phương pháp nhị phân
Dùng phương pháp biểu diễn dấu phẩy động
Trang 41Sử dụng thuật giải di truyền(tt)
Trang 4242
Sử dụng thuật giải di truyền(tt)
Ví dụ : Đầu tiên là sắp độ thích nghi giảm dần , sau đó đặt độ
thích nghi theo thứ tự này lên đoạn [0,1].Chẳng hạn với ví dụ trên ta có đoạn [0,1] như hình sau đây, trong
đó cá thể 1 sẽ chiếm đoạn đầu tiên [0,0.18], cá thể số 2
độ thích nghi 0.16 sẽ chiếm đoạn tiếp theo
[0.18 , 0.18+0.16 = 0.34], tương tự cho các cá thể còn lại cho đến khi lắp đầy đoạn [0,1]
Trang 43Sử dụng thuật giải di truyền(tt)
Để chọn nhiều cá thể chỉ cần phát sinh p nhiều lần
Trang 44Và a’k là một giá trị ngẫu nhiên từ miền ràng buộc [lk,uk] của
Trang 45Sử dụng thuật giải di truyền(tt)
Toán tử đột biến:
Đột biến không đều: là một trong những toán tử có nhiệm vụ điều
chỉnh năng lực tiềm tàng của hệ thống
Nếu sit = (A1,A2,A3,A4) là một nhiễm sắc thể và phần tử Ak được chọn từ những gen có thể di chuyển Kết quả là véc tơ
sit+1 =(A1, ,Ak’, ,A4), với 1<=k<=4 và
Ak’ = Ak + (t,uk - Ak) (1) nếu ký số ngẫu nhiên là 0
Ak’ = Ak - (t,Ak - lk) (2) nếu ký số ngẫu nhiên là 1
(hoặc xử lý theo: (1) nếu k lẽ, (2) nếu k chẵn )
Hàm (t,y) trả về một giá trị trong miền [0,y], và có công thức:
Trang 46Sử dụng thuật giải di truyền(tt)
Trang 47Sử dụng thuật giải di truyền(tt)
Toán tử lai ghép:
Lai ghép đơn giản: được xác định như sau:
Nếu svt = (v1,…,vm) và swt = (w1, ,wm) được lai ghép sau vị trí thứ k, kết quả là :
Trang 48Với
vk’=a*wk+(1-a)*vk và wk’=a*vk+(1-a)*wk
Trong đó a là giá trị động được xác định theo véc tơ sv và sw
Trang 49Sử dụng thuật giải di truyền(tt)
Trang 50Sử dụng thuật giải di truyền(tt)
Trang 51Sử dụng thuật giải di truyền(tt)
Toán tử lai ghép:
của 2 véc tơ :
Nếu svt =(v1,…,vm) và swt =(w1,…,wm) được lai ghép thì kết quả là:
(Biến đổi tất cả các thành phần của hai vectơ)
svt+1 = a*swt + (1-a)*svt
swt+1 = a*svt + (1-a)*swt
Với a là một tham số tĩnh [0,1]
Trang 52Sử dụng thuật giải di truyền(tt)
s5’ = (0.083; -0.954; -4.226; 0.006);
các phần tử của s’6 sẽ là :
pht1 = (0.320) * 0.6 + 0.4 * (-0.351) = -0.052 pht2 = (-0.930) * 0.6 + 0.4*(-0.970) = -0.946 pht3 = (-3.950) * 0.6 + 0.4 * (-4.410) = -4.134 pht4 = (0.031) * 0.6 + 0.4 * (-0.011) = 0.014
s6’ = (-0.052; -0.964; -4.134; 0.014);
Trang 53Bài toán thực tế: Mô phỏng quá trình chiết dung môi hoá
học
Trang 54Bài toán mô phỏng quá trình chiết
dung môi
Trang 5555
Bài toán mô phỏng quá trình chiết
dung môi
Đưa kim loại và axit vào pha chứa nước với nồng độ
xác định ban đầu có đơn vị đo là mol (spt g/l) ( Lúc
đó nồng độ kim loại ở pha trên là 0)
Kết quả, sau khi cân bằng sẽ xác định được :
Nồng độ kim loại trên dung môi (ở pha trên) Nồng độ kim loại trên nước (ở pha dưới)
Trang 56Bài toán mô phỏng quá trình chiết
dung môi
Dạng công thức tổng quát T.Sekine :
Y = A1 * CA2 exp(-A3 * CA4 * H) (I)
Với các biến vào gồm :
C là nồng độ kim loại cho vào ban đầu trước khi cân bằng;
H là nồng độ axit ban đầu;
A1, A2, A3, A4 là các tham số của công thức (chưa biết)
A1,A2,A3,A4 = ? Để cho Y lý thuyết tính toán từ công thức trên gần với Y thí nghiệm nhất
Trang 57Bài toán mô phỏng quá trình chiết
dung môi
Cách giải quyết bài toán :
Làm sao để xác định bộ tham số (A1,A2,A3,A4) ?
Người ta tiến hành N thí nghiệm Mỗi thí nghiệm được làm giống như đã mô tả Tại lần thí nghiệm thứ i (i [1,N]),
từ nồng độ kim loại Ci và nồng độ axit Hi ban đầu Yi thí nghiệm
Ta cũng có phương trình Y lý thuyết :
Y = A1 * C A2 exp(-A3 * C A4 * H)
Với bộ dữ liệu thực ngiệm (Ci,Hi,Yi)
Trở thành bài toán : xác định tham số cho dạng hàm cho trước
Trang 58Bài toán mô phỏng quá trình chiết
dung môi
Phương pháp bình phương tối thiểu :
Ta có dạng hàm
Y = A1 * CA2 exp(-A3 * CA4 * H) Đặt A1 * CA2 = a (1)
Trang 59Bài toán mô phỏng quá trình chiết
dung môi
Ta được hàm tuyến tính : Y’ = A – B*H
Với bộ tham số đầu vào
H : H1, H2, H3,…., Hn Y’ : Ln Y1, Ln Y2, …., Ln Yn Đặt Ti = Ln Yi (i= 1…N) (các Y thực nghiệm)
Sử dụng phương pháp bình phương bé nhất, nghĩa là
xác định A và B sao cho :
Trang 60Bài toán mô phỏng quá trình chiết
Trang 61Bài toán mô phỏng quá trình chiết
dung môi
Lại đặt A’ = Ln A1; B’ = A2 Thực hiện như trên
Xác định A’ và B’ Do vậy xác định được A10 và A20
Tương tự thay vào (2), Có :
A3 * CA4 = b <=> Ln A3 + A4*Ln C = Ln b
Từ đó xác định được A30 và A40
Có bộ tham số : (A10, A20, A30, A40)
Bộ tham số (A10, A20, A30, A40) đáp ứng điều kiện để
Qmin nhưng chỉ đáp ứng điều kiện cần để tối thiểu hàm sai số S Bởi vì như đã thấy để tuyến tính hoá Y phải trải qua khá nhiều bước biến đổi nên bộ tham số (A10, A20, A30, A40) chưa tối ưu