Vớ dụ 4.7
Biểu diễn pop[i][j]
j 0 1 2 3 … lchrom-1 i 0 0 1 0 1… 1 1 …….. 2 . . . popsize-1
7. Hàm tạo sinh (generate)
Hàm này đúng vai trũ quan trọng nhất trong Thuật giải di truyền. Dựa vào giỏ trị thớch nghi của từng cỏ thể (fitness) trong quần thể, tổng giỏ trị thớch nghi (total
fitness) của quần thể, ỏp dụng cỏc toỏn tử di truyền (chọn lựa cỏ thể (select), đột biến, lai ghộp) lờn quần thể cỏc chuỗi biểu diễn cỏc biến oldpop, từ đú sản sinh ra quần thể chuỗi biểu diễn mới newpop.
Đầu vào:
+ Tập hợp nhiễm sắc thể hiện tại(oldpop); + Kớch cỡ nhiễm sắc thể (popsize);
+ Chiều dài nhiễm sắc thể biểu diễn một biến; + Tổng số biến nhập trong hàm mục tiờun; + Xỏc suất lai ghộp, xỏc suất đột biến.
+ Giỏ trị thớch nghi (fitness) và tổng giỏ trị thớch nghi (sum).
Đầu ra: Tập hợp nhiễm sắc thể mới sau khi đó ứng dụng cỏc toỏn tử.
Void generate(char oldpop[100][250], char newpop[100][250], int popsize, int lchrom, float *fit, float sum, float pcross, float pmu, int n)
int j, mate1, mate2; j=0;
while(1)
mate1=select(fit,sum,popsize); mate2=select(fit,sum,popsize);
crossover(oldpop[mate1],oldpop[mate2],
newpop[j], newpop[j+1], lchrom, pcross, pmu, n) j+=2; if(j>=popsize) break; Hỡnh 15. Hàm tạo sinh Vớ dụ 4.8
Giả sử, ta xột bài toỏn cực tiểu hàm mục tiờu f=x1*x1+x2*x2 với x1,x2 [-10,10]
Ban đầu: popsize=3; n=2; Pcross=0,85; Pmu=0,05; oldpop=100101, 110011, 001010;
Với cỏ thể thứ nhất: 100101, ta cú x1 = 1,43; x2 = 4,29; và f(1)=20,449 Với cỏ thể thứ hai: 110011, ta cú x1 = 7,14; x2 = -1,43; và f(2)=53,025 Với cỏ thể thứ ba: 100101, ta cú x1 = -7.14; x2 = -4,29; và f(3)=69,38
Thực hiện hàm scalepop với cỏc giỏ trị hàm mục tiờu trờn: obj[0]=20,449, ta cú ob[0] =48,931 obj[1]=53,025, ta cú ob[1]=16,355 obj[2]=69,38 ta cú ob[2]=0 max=48,931, ave=21,762. Vậy a=21,762/(48,931-21,762)=0,8 min=0 b=0,8*(48,931-2*21,762)=4,3256 Do đú: fit[0]=0,8*48,931+4,3256=4 fit[1]=0,8*16,355+4,3256=17,4096 fit[2]=4,3256 sum=65,2056
Với cỏc tham số đó xỏc định ở trờn, ta cú thể thức hiện hàm generate j=0; Bắt đầu vũng lặp:
Chọn hai cỏ thể tốt trong quần thể: Giả sử:
Lần 1: Tớnh hàm select ứng với random01()=0,5 rand=0,5*sum=0,5*65,2=32,6
partsum=43,4704>32,6
i=0; do đú select(fit, sum, popsize)=0 Cuối cựng, mate1=0;
Lần 2: Tớnh hàm select ứng với random01()=0,7 rand=0,7*sum=0,7*65,2=45,64
partsum=43,4704<45,64
partsum=43,4704+17,4096>45,64 Do đú i=1; ->select(fit,sum,popsize)=1 Cuối cựng, mate2=1;
Ứng dụng cỏc toỏn tử lai ghộp, đột biến cho hai thành viờn trờn: crossover(oldpop[0], oldpop[1], newpop[0], newpop[1],3,0.85,0.5,0)
Với: oldpop[0]=‟110011‟ Oldpop[1]=‟110011‟ Cho ra:
newpop[1]=‟100100‟ cú hai đột biến. j=2<popsize;
Lặp lại
Với random01()=0,3 lần 1 và 0,4 lần 2, khụng xảy ra đột biến. Kết quả cuối cựng cho ra:
100011 Newpop = 100100 100101
Quần thể cuối mới này ổn định hơn quần thể trước.
8.Hàm nạp lại quần thể
Sau khi một quần thể mới ra đời, nú được nạp vào quần thể hiện tại, và vũng lặp mới được thực hiện để sinh sản ra những quần thể khỏc.
Hàm Reproduction đảm nhiệm cụng việc này.
Void reproduction(char oldpop[100][250], char newpop[100][250], int popsize, int lchrom)
int i,j; for(i=0;i<popsize;i++) for(j=0;j<lchrom;j++) oldpop[i][j]=newpop[i][j]
Hỡnh 16. Hàm tỏi tạo quần thể(rreproduction)
9.Hàm giải mó
Chuyển đổi từ xõu ký tự biểu diễn biến sang cỏc số thực dấu phẩy động, hỡnh 3.11.
Void decode(char *indi, int lchrom, float *up, double rate, float *k, int n) char fr[30]; for(j=0;j<n;j++) for(i=0;i<lchron;i++) fr[i]=indi[j*lchrom+i]; power=1; for(cum=0,i=0;i<lchrom;i++) if(fr[i]) cum+=power; power*=2;
power=cum/rate; k[j]=down[j]+(up[j]-down[j])*power; Hỡnh 17. Hàm giải mó Vớ dụ 4.9 Chuỗi nhị phõn:
100011111 biểu diễn ba biến trong miền [-10; 10] Sau khi chạy thủ tục giải mó sẽ được:
k[0]=-10*20+4/7=1,42857 k[1]=-10*20+3/7=-1,42857 k[0]=-10*20+7/7=10
10.Hàm di truyền (là thủ tục chớnh của chương trỡnh)
Float GEN(float *X,float *up, float down, int gen, float ss(float *),
float pross, float pmu, int n, int popsize)
char oldpop[100][250], newpop[100][250]; float obj[100], fit[100], sum,ty;
int lchrom, i, j, l, N; float k[10], x[10]; double rate;
/* Xỏc định chiều dài chuỗi biến biểu diễn*/ lchrom=250/n;
if(lchrom>25) lchrom=25;/*Giới hạn <=25*/ /*Xỏc định tổng chiều dài của cỏc nhiễm sắc thể*/ N=lchrom*n;
/*Xỏc định giỏ trị thập phõn lớn nhất mà chuỗi nhị phõn cú thể biểu diễn*/
(2l-1), cơ sở của hàm giải mó decode*/ sum=1;
for(rate=1,i=0;i<lchrom;i++) rate+=sum; sum*=2;
randommize(); ty=1.0e37; /* Khởi tạo quần thể*/
initpop(oldpop,popsize,N); /* Bắt đầu vũng lặp*/
for(j=0;j<gen;j++)
/* Giải mã các biến*/ decode(oldpop[i],lchrom,up,down,rate,k,n); /* Đỏnh giỏ hàm mục tiờu*/ obj[i]=ss(k); if(ty>obj[i]) for(l=0;l<n;l++) X[l]=k[l]; ty=obj[i];
/*Xỏc định giỏ trị thớch nghi của từng cỏ thể, tổng thớch nghi của quần thể*/
sum=scalepop(obj,fit,popsize);
/*Nảy sinh quần thể mới (ỏp dụng cỏc toỏn tử di truyền*/ generate(oldpop,newpop,popsize,lchron,fit,sum,pcross,pmu,n);
/*nạp lại giỏ trị để chuẩn bị cho vũng lặp tiếp theo*/ reproduction(oldpop,newpop,popsize,N);
return ty;
Hỡnh 18. Hàm thể hiện cỏc bước của Thuật giải di truyền
Đầu vào: Miền giỏ trị của cỏc biến x[up; down], số vũng lặp (số lần tạo sinh), xỏc suất lai ghộp, xỏc suất đột biến, tổng số biến x, kớch cỡ quần thể, cụng thức hàm cần tối ưu.
Đầu ra: Cho giỏ trị x dưới dạng số thực tương ứng với kết quả tối ưu của hàm.
3.7.3. Thử nghiệm và đỏnh giỏ 3.7.3.1. Chạy thử chương trỡnh
Chỳng ta giả sử rằng kớch cỡ quần thể popsize=40; xỏc suất của toỏn tử di truyền Pcross=0,85 và Pmu=0,05; số vũng lặp gen=50.
Trường hợp 1. Ứng dụng thuật toỏn để cực tiểu hoỏ một hàm 2 biến
f_min=(x1-6)*(x1-6)+(x2-4)*(x2-4); biết x1,x2 thuộc [-10, 10]. Chạy lần 1: f_min=0,0236; x1=6,14; x2=3,95 Chạy lần 2: f_min=0,0168; x1=5,99; x2=4,13 Chạy lần 3: f_min=0,0207;
x1=5,9; x2=4,1
Trường hợp 2. Ứng dụng thuật toỏn để cực tiểu hoỏ một hàm 3 biến
f_min=(x1-6)*(x1-6)+(x2-4)*(x2-4)+(x3-2)*(x3-2); biết x1,x2,x3 thuộc [-10, 10]. Chạy lần 1: f_min=0,0700 x1=6,19 ; x2=3,99 ; x3=2,18 Chạy lần 2: f_min=0,1006 x1=6,05 ; x2=3,69 ; x3=2,03 Chạy lần 3: f_min=0,0606 x1=6,11 ; x2=4,18 ; x3=1,86
Trường hợp 3. Ứng dụng thuật toỏn để cực tiểu hoỏ một hàm 4 biến
f_min=(x1-6)*(x1-6)+(x2-4)*(x2-4)+(x3-2)*(x3-2)+(x4)*(x4) biết x1, x2, x3, x4 thuộc [-10, 10]. Chạy lần 1: f_min=0,2429 x1=6,18 ; x2=3,67 ; x3=2,11 ; x4=-0,30 Chạy lần 2: f_min=0,4327 x1=6,35 ; x2=3,53 ; x3=1,86 ; x4=-0,26; Chạy lần 3: f_min=0,8697 x1=6,04 ; x2=4,35 ; x3=2,24 ; x4=0,83
NHẬN XẫT: Như vậy, cỏc kết quả trờn tương đối ổn định thuật giải cú thể chấp nhận được khi ỏp dụng vào bài toỏn cực tiểu hàm 4 biến
3.7.3.2. Đỏnh giỏ, kết luận
Thuật giải 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 mằ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
THUẬT GIẢI DI TRUYỀN VỚI BÀI TOÁN Mễ PHỎNG QUÁ TRèNH CHIẾT DUNG MễI [2]
TểM TẮT
Ứng dụng thuật giải di truyền cho bài toỏn mụ phỏng quỏ trinh chiết dung mụi trong hoỏ học.
Từ hàm phi tuyến hoỏ học:
(Y = A1*CA2exp(-A3*CA4*H)) (5.1)
Với cỏc biến gồm:
C là nồng độ ion kim loại cho vào ban đầu trước khi cõn bằng; H là nồng độ axit ban đầu;
Cần ước lượng cỏc tham số (A1, A2, A3, A4) để cưc tiểu hoỏ hàm sai số theo phương phỏp bỡnh phương tối thiểu tương đối:
2 1 ( )/ N i Yi Ylithuyet Yi S (5.2) trong đú N là số lần thớ nghiệm.
Bài toỏn này được quy về bài toỏn cực tiểu hàm phi tuyến bốn biến vào. Để giải nú, ta cú thể thực hiện qua hai bước:
Bước 1: Tiền xử lớ: Sử dụng kỹ thuật hồi quy xỏc định miền ràng buộc ban đầu [A10- , A10+ ]; [A20- , A20+ ]; [A30- , A30+ ]; [A40- , A40+ ]; ((A10,A20, A30, A40 ) là bộ nghiệm được ước lượng từ phương phỏp bỡnh phương tối thiểu), Giỏ trị là hệ số biến thiờn được chọn tương ứng.
Bước 2: Trờn cơ sở miền ràng buộc ban đầu đó được xỏc định, ứng dụng Thuật giải di truyền để tỡm đến kết quả tốt hơn của bài toỏn. Chi tiết về bài toỏn được trỡnh bày dưới đõy:
Đặt vấn đề:
Nghiờn cứu thớ nghiệm sau:
Một thiết bị thớ nghiệm hoỏ học gồm hai pha: Pha trờn chứa dung mụi (chất hữu cơ)
Pha dưới chứa nước. Pha trờn
Dung mụi
Dung dịch nước
H C
Nồng độ axit Nồng độ ion kim loại (chưa cõn bằng)
Hỡnh 19. Minh hoạ thiết bị thớ nghiệm trước khi cõn bằng
Đư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 độ ion kim loại ở pha trờn là 0).
Thực hiện quỏ trỡnh cõn bằng hoỏ học (tỏc động bằng thiết bị cơ điện). Kết quả, sau khi cõn bằng sẽ xỏc định được:
- Nồng độ ion kim loại trong dung mụi (ở pha trờn) - Nồng độ ion kim loai trong nước (ở pha dưới).
C dung mụi C nước
H” (lượng axit cũn lại sau khi cõn bằng)
Hỡnh 20. Minh họa thiết bị thớ nghiệm sau khi cõn bằng
Từ đú, tớnh được tỉ số của chỳng tại thớ nghiệm:
Y = C dung mụi / C nước (5.3)
(bớờt C dung mụi + C nước = C (nồng độ ion kim loại đưa vào ban đầu)).
Như vậy, sau một thớ nghiệm, từ lượng kim loại (C) và lượng axit (H) nạp vào ban đầu, hoàn toàn xỏc định được tỉ số Y biểu diễn giữa nồng độ ion kim loại trong dung mụi (pha trờn) và nồng độ ion kim loại trong nước (pha dưới), sau cõn bằng.
Dạng cụng thức tổng quỏt biểu diễn tỉ số trờn theo lý thuyết đó từng được đưa ra bởi T. Sekine:
Y = A1* CA2 exp(-A3*CA4* H) (5.4) Với cỏc biến vào gồm:
C là nồng độ ion kim loại cho vào ban đầu trước khi cõn bằng; H là nồng độ axit ban đầu;
Như vậy vấn đề đặt ra là: Cần phải xỏc định cỏc tham số A1, A2, A3, A4 sao 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.
Trờn cơ sở cụng thức được xõy dựng, ứng với một nồng độ ion kim loại (C) đầu vào nhất định, cú thể điều chỉnh nồng độ axit (H) ban đầu tương ứng, để thu được nồng độ ion kim loại trong dung mụi thớch hợp ở đầu ra (C dung mụi)
Làm thế nào để xỏc định được cỏc tham số trờn? Người ta tiến hành N thớ nghiệ. Mỗi thớ nghiệm được tiến hành giống như đó mụ tả.
Sau lần thớ nghiệm thứ i (i[1; N]), từ nồng độ ion kim loại Ci và nồng độ óit Hi ban đầu, dễ dàng xỏc định được tỉ số Yi thớ nghiệm.
Mặt khỏc, biết Ci và Hi, cũng xỏc định được phương trỡnh tớnh Y lý thuyết theo cỏc tham số (A1, A2, A3, A4):
Ylý thuyết = A1* CiA2 exp(-A3*CiA4* H) (5.5)
Vỡ Y lý thuyết phải gần với Y thớ nghiệm nhất, ỏp dụng phương phỏp bỡnh phương tối thiểu tương đối, cú thể viết lại bài toỏn:
Với Ci (nồng độ ion kim loại ban đầu), Hi (nồng độ axit ban đầu) và Yi (tỷ số thu được sau thớ nghiệm i) đó biết, cần xỏc định cỏc biến (A1, A2, A3, A4) để cực tiểu húa hàm sai số:
2 1( )/ N i Yi Ylithuyet Yi S (5.6) trong đú N là số lần thớ nghiệm
Bài toỏn này được quy về bài toỏn cực tiểu hàm bốn biến.
Như võy, cú thể ứng dụng Thuật giải di truyền để giải bài toỏn này.
Xỏc định miền ràng buộc
Tỡm biểu thức:
Y = A1* CA2 exp(-A3*CA4* H) (5.7) Giả thiết ban đầu: C cố định (với nồng độ ion kim loại nhất định điều chỉnh nồng độ axit để thu được Y mong muốn ).
Đặt:
A1* CA2 = a (5.8)
A3*CA4 = b (5.9)
Ta cú cụng thức là:
Y= a* exp(-b*H), (5.10)
Hàm trờn cú thể đưa về tuyến tớnh bằng cỏch lấy Ln hai vế:
LnY= Lna – b*H (5.12) Đặt Y‟= lnY, A= lna; B = b, ta cú:
Y‟= A - B*H (5.13)
Ứng dụng phương phỏp ướ lượng hàm hồi quy tuyến tớnh [xem 9]. Biết: H: H1, H2, H3, ….., Hn
Y: Ln Y1, Ln Y2, ….., Ln Yn.
Đặt: Ti= LnYi (i = 1, … , N ) (5.14) 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 :
2 1 ( * ) N i Ti A B Hi Q min (5.15)
Điều kiện cần để Q tối thiểu là:
0 0 Q Q (5.16)
Giải hệ ta xỏc định được A và B. Do đú cú thể xỏc đinh được:
a = exp(A) (5.17)
b = B (5.18)
Thay vào (5.8) ta cú
A1* CA2 = a LnA1 + A2*LnC = Lna.
Lại đặt A‟ = LnA1; B‟ = A2. Thực hiện cỏc bước như trờn, cuối cựng xỏc đinh được A‟ và B‟. Do vậy xỏc định được A10 và A20.
Tương tự, thay vào (5.9), ta cú
A3* CA4 = a LnA3 + A4*LnC = Lna. Từ đú xỏc định được A30 và A40
Bộ tham số (A10, A20, A30, A40) thoả (5.15) đỏp ứng điều kiện cần để tối thiểu hàm sai số S (5.6), nhưng vỡ C biến đổi nờn tại (A10, A20, A30, A40) chỉ là cực tiểu địa phương, chưa phải là điểm mà tại đú hàm S nhỏ nhất.
Vấn đề đặt ra là: Bằng cỏch nào xỏc định được cỏc giỏ trị (A1, A2, A3, A4) để đạt được cực tiểu toàn cục của hàm sai số S.
2
1( )/
iN Yi Ylithuyet Yi
S (5.19)
Để đạt được điều này, ta tiến hành như sau:
ước lượng từ phương phỏp bỡnh tối thiểu) sao cho tỡm ra được cực tiểu toàn cục của S bộ hơn cực tiểu địa phương ứng với bộ tham số trờn.
Ở đõy, chọn = 0.5, do vậy miền ràng buộc ban đầu sẽ là: A1[A10– 0.5; A10+ 0.5]; A2[A20– 0.5; A20+ 0.5]; A3[A30– 0.5; A30+ 0.5]; A4[A40– 0.5; A40+ 0.5].
Ứng dụng Thuật giải di truyền với cỏc miền ràng buộc trờn, để xỏc định tập biến (A1, A2, A3, A4) sao cho hàm sai số S là nhỏ nhất.
Cỏch biểu diễn
Miền ràng buộc cỏc biến xuất phỏt từ những giỏ trị thực, do đú khụng nờn dựng cỏch biểu diễn nhị phõn cổ điển 0; 1, như vớ dụ trong chương 4 đó trỡnh bày, mà sử dụng phương phỏp vectơ điểm thực (số thực) cho cỏc nhiễm sắc thể là thớch hợp hơn nhiều. Biểu diễn này là tất yếu bởi nú khụng những cần thiết để tiến hành phương phỏp xử lý cỏc ràng buộc này, mà cũn được chọn để làm đơn giản việc xỏc định cỏc toỏn tử di truyền và làm Thuật giải di truyền mạnh hơn
Vớ dụ 5.1
Giả sử miền ràng buộc:
A1[-0.481; 0.519]; A2[-1.815; -0.815]; A3[-4.631; -3.631]; A4[-0.053; 0.053].
Kớch cỡ tập hợp pop_size=10; vậy tập hợp vectơ biểu diến sẽ là: A1 A2 A3 A4 s1 = (-0.470; -1.811; -4.301; -0.051); s2 = (-0.130; -1.420; -4.090; -0.031); s3 = ( 0.221;-0.901; -4.361; -0.010); s4 = (-0.370; -0.950; -4.071; -0.051); s5 = (-0.320; -0.930; -3.950; -0.031); s6 = (0.351; -0.970; -4.410; -0.011); s7 = (0.471; -0.991; -3.710; -0.030); s8 = (-0.030; -0.920; -3.971; 0.011); s9 = (0.071; -0.911; -4.520; -0.011); s10= (-0.361; -0.901; -4.160; -0.001); Tỡm hàm số thớch nghi.
Hàm số thớch nghi phải cú liờn quan đến tớnh chất của vấn đề cần giải quyết. Trong trường hợp này, chi tiết của vấn đề mà chỳng ta cú là hàm sai số. Giỏ trị hàm
càng nhỏ thỡ càng tốt (đó phõn tớch ở trờn). Tuy nhiờn khi đề cập độn GA, chỳng ta thường chọn sự tối ưu là mức độ cực đại của hàm số thớch nghi. Do đú ta chọn hàm số thớch nghi :
Hàm số thớch nghi =1- S (5.20)
Biến hoỏ cỏc giải phỏp (Cỏc toỏn tử di truyền)
Cỏc toỏn tử mà chỳng ta sử dụng ở đõy hoàn toàn khỏc biệt với toỏn tử di truyền cổ điển, với cỏc lý do sau:
1.Chỳng được xử lớ trờn khụng gian thực, ở đõy mỗi lời giải được mó hoỏ thành một vectơ điểm thực.
2.Một số toỏn tử di truyền cú thể khụng đều (non- uniform) cú nghĩa là phụ thuộc vào tuổi của quần thể (Số vũng lặp khi chọn Thuật giải di truyền).
Giỏ trị của thành phần thứ i của lời giải chấp nhận được s = (v1, …, vm) luụn cú một phạm vi động trong miền [li; ui], cỏc biến li; ui được xỏc định dựa vào phương phỏp đó nờu.
Chỳng ta gộp cỏc toỏn tử vào hai lớp chuẩn: đột biến, lai ghộp. Những toỏn tử này điều chỉnh quỏ trỡnh để trỏnh hội tụ non (cực tiểu địa phương).
Nhúm toỏn tử đột biến
Đột biến đều:
Chọn ngẫu nhiờn gen k (trong số cỏc gen cú thể di chuyển của nhiễm sắc thể s được xỏc định hiện hành) nếu sit=( A1, A2, A3, A4) là một nhiễm sắc thể, thỡ sau đú mỗi phần tử Ak cú cơ hội đột biến như nhau. Kết quả của phộp đột biến đều là: sit+1=( A1, …, A‟k, …, A4), trong đú 1 <=k <= 4, và A‟k là một giỏ trị ngẫu nhiờn từ miền ràng buộc [lk; uk] xỏc định ở mục trờn.
Vớ dụ 5.2
Giả sử phần tử thứ 3 (A3) của vộctơ:
s3 = (0.221; -0.901; -4.361; -0.010 ) được chọn cho đột biến, biết A3 thuộc [- 4.631; -3.361]; chẳng hạn A‟3 = -4.12.
Độ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ộctơ sit+1=( A1, …, A‟k, …, A4), với 1 <=k <= 4 và
Ak + (t,uk - Ak) nếu ký số ngẫu nhiờn là 0; (5.21(a)) A‟k =
Ak - (t,Ak - lk) nếu ký số ngẫu nhiờn là 1; (5.21(b))
(Trong chương trỡnh, xử lý theo: (5.21(a)) nếu k lẻ, (5.21(b)) 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:
) 1 ( * ) , (t y y r(1t/T)b (5.22)
Trong đú r là một số ngẫu nhiờn trong miền [0; 1], T là số lần tạo sinh lớn nhất (tổng số vũng lặp), b là tham số hệ thống chỉ mức độ khụng đều, và t là thế hệ đang