Tải bản đầy đủ
Chương 3: KẾT HỢP CÁC PHƯƠNG PHÁP HẺURISTIC GIẢI BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU

Chương 3: KẾT HỢP CÁC PHƯƠNG PHÁP HẺURISTIC GIẢI BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU

Tải bản đầy đủ

Bài toán (3.3) là một bài toán tối ưu một mục tiêu, phụ thuộc trọng số.
Đặc biệt nếu mọi fi (i=1,...,k) là các hàm tuyến tính thì ta có một bài toán
quy hoạch tuyến tính phụ thuộc tham số ở hàm mục tiêu.
Với phương pháp này, sau khi khởi tạo quần thể ban đầu một cách
ngẫu nhiên, ta thực hiện tạo sinh 2 cá thể từ cặp cha mẹ được chọn ngẫu
nhiên. Sau đó tính giá trị hàm mục tiêu của 2 cá thể này, từ đó tính giá trị
thích nghi của chúng.
k

W = ∑ wi * f i ( x) (3.4)
i =1

Trong đó w1,...,wk là các trọng số của các hàm mục tiêu tương ứng
* Chọn trọng số dựa theo độ quan trọng
Với cách này, các trọng số thường được cho trước theo ý đồ của
người quyết định hoặc theo ý kiến chuyên gia. Do vây các trọng số là cố
định trong suốt quá trình tiến hoá và bài toán (3.1) được đưa về bài toán tối
k

ưu môt mục tiêu W = ∑ϖ i * f i ( x) (cực tiểu W).
i =1

Thuật toán trong trường hợp này được mô tả như sau
Bước 1: Khởi tạo quần thể QT gồm M(=Size) cá thể môt cách ngẫu nhiên
Tính các giá trị hàm mục tiêu fi(x), (i = 1,...,k), với mỗi x ∈ QT
Bước 2: Trong các cá thể trong quần thể QT, ta thực hiện:
Bước 2.1: Chọn ngẫu nhiên 2 cá thể cha mẹ P 1 và P2.
Bước 2.2: Lai ghép tạo ra 2 cá thể con mới C 1 và C2.
Bước 3: Với 2 cá thể con vừa sinh ra trong phép lai ghép trên, ta thực hiện
đột biến (với xác suất đột biến là pm) và đột biến tại một trong hai cá thể này
tùy thuộc vào giá trị ngẫu nhiên tạo ra.
Bước 4: Tính giá trị các hàm mục tiêu của 2 cá thể con sau khi đột biến, từ
đó tính giá trị thích nghi của chúng. So sánh chúng với cha mẹ để chọn cá

40

thể đưa vào quần thể sau. (Cá thể có giá trị thích nghi nhỏ hơn sẽ được
chọn).
Bước 5: Nếu chưa thỏa mãn điều kiện dừng thì chuyển về bước 2.
Bước 6: Nếu thỏa mãn điều kiện dừng thì chuyển đến bước 7.
Bước 7: Nghiệm tốt nhất tìm được là nghiệm của bài toán.
k

Trong đó giá trị thích nghi được xác định như sau W = ∑ϖ i * f i ( x) và
i =1

dùng để đánh giá độ thích nghi của cá thể tương ứng.
* Trọng số được chọn một cách ngẫu nhiên (theo xác suất)
Ở đây trong mỗi lần tiến hoá, các trọng số wi của các hàm mục tiêu
tương ứng được chọn một cách ngẫu nhiên và dùng cho thế hệ kế tiếp.
Thường các wi cũng là các trọng số không âm và

∑w

i

= 1 (i = 1,...,k).

Dưới đây là mô tả thuật toán tổng quát cho trường hợp này
Thuật toán được mô tả như sau:
Bước 1: Khởi tạo quần thể QT gồm M(=Size) cá thể một cách ngẫu nhiên
Tính các giá trị hàm mục tiêu fi(x), (i = 1,...,k), với mỗi x ∈ QT
Bước 2: Trong các cá thể trong quần thể QT, ta thực hiện:
Bước 2.1: Chọn ngẫu nhiên 2 cá thể cha mẹ P 1 và P2.
Bước 2.2: Lai ghép tạo ra 2 cá thể con mới C 1 và C2.
Bước 3: Với 2 cá thể con vừa sinh ra trong phép lai ghép trên, ta thực hiện
đột biến (với xác suất đột biến là pm) và đột biến tại một trong hai cá thể này
tùy thuộc vào giá trị ngẫu nhiên tạo ra.
Bước 4: Khởi tạo vectơ trọng số  = (1,..., k ) một cách ngẫu nhiên.
Bước 5: Tính giá trị các hàm mục tiêu của 2 cá thể con sau khi đột biến, từ
đó tính giá trị thích nghi của chúng. So sánh chúng với cha mẹ để chọn cá
thể đưa vào quần thể sau (Cá thể có giá trị thích nghi nhỏ hơn sẽ được
chọn).
Bước 6: Nếu chưa thỏa mãn điều kiện dừng thì chuyển về bước 2.

41

Bước 7: Nếu thỏa mãn điều kiện dừng thì chuyển đến bước 8.
Bước 8: Nghiệm tốt nhất tìm được là nghiệm của bài toán.
k

Trong đó giá trị thích nghi được xác định như sau W = ∑ϖ i * f i ( x) và
i =1

được dùng để đánh giá độ thích nghi của cá thể tương ứng.
3.2. Thuật toán BEA (Blend Evolutionary Algorithm)
Thuật toán BEA là thuật toán kết hợp cả ba giải thuật di truyền, chiến
lược tiến hoá và giải thuật mô phỏng tôi luyện, về cơ bản thuật toán tiến hành
như RCGA, trước tiên quần thể kích cỡ m được khởi tạo. Thực hiện toán tử
lai ghép m lần tạo được quần thể mới có 2m cá thể gồm quần thể cũ và các
con vừa tạo. Với quần thể mới này, thực hiện đột biến có tác động của yếu tố
nhiệt độ tạo thành quần thể mới. Sau đó chọn ra m cá thể cho lần tạo sinh tiếp
theo một sơ đồ chọn lọc. Như vậy thuật toán này là kết hợp RCGA với
(1+1)ES và yếu tố nhiệt độ của SA, chúng tôi tạm gọi là thuật toán BEA
(Blend Evolutionary Algorithm).
Thuật toán được mô tả như sau:
Input: Quần thể có m cá thể được khởi tạo ngẫu nhiên.
Output: Cá thể có độ thích nghi (theo hàm mục tiêu F) cao nhất.
Algorithm BEA
* Chọn trọng số dựa theo độ quan trọng
Thuật toán trong trường hợp này được mô tả như sau
Bước 1: Khởi tạo quần thể QT gồm M(=Size) cá thể môt cách ngẫu nhiên
Tính các giá trị hàm mục tiêu fi(x), (i = 1,...,k), với mỗi x ∈ QT
Bước 2: Trong các cá thể trong quần thể QT, ta thực hiện:
Bước 2.1: Chọn ngẫu nhiên 2 cá thể cha mẹ P 1 và P2.
Bước 2.2: Lai ghép tạo ra 2 cá thể con mới C 1 và C2.
Bước 3: Với 2 cá thể con vừa sinh ra trong phép lai ghép trên, ta thực hiện
đột biến (với xác suất đột biến là pm) và đột biến tại một trong hai cá thể này

42

tùy thuộc vào giá trị ngẫu nhiên tạo ra.
Tại vị trí thứ i (được chọn đột biến), thành phần x i được thay thế
bởi:
x i + z*(x i - left) nếu u <0.5
x i + z*(righ - x i ) nếu u >=0.5
trong đó u là số ngẫu nhiên thuộc [0,1]; left và righ là cận dưới và cận
trên của x i ; việc tính z và sơ đồ tôi luyện được thực hiện như trong giải
thuật SA nêu trên
Nếu cá thể mới tạo tốt hơn cá thể cũ thì thay thế nó cho cá thể cũ ;
Cập nhật tham số nhiệt độ theo sơ đồ tôi luyện;
Bước 4: Tính giá trị các hàm mục tiêu của 2 cá thể con sau khi đột biến, từ
đó tính giá trị thích nghi của chúng. So sánh chúng với cha mẹ để chọn cá
thể đưa vào quần thể sau. (Cá thể có giá trị thích nghi nhỏ hơn sẽ được
chọn).
Bước 5: Nếu chưa thỏa mãn điều kiện dừng thì chuyển về bước 2.
Bước 6: Nếu thỏa mãn điều kiện số lần lặp đủ lớn hoặc T k < Tdong thì dừng
và chuyển đến bước 7.
Bước 7: Nghiệm tốt nhất tìm được là nghiệm của bài toán.
k

Trong đó giá trị thích nghi được xác định W = ∑ϖ i * f i ( x) và dùng để
i =1

đánh giá độ thích nghi của cá thể tương ứng.
* Trọng số được chọn một cách ngẫu nhiên (theo xác suất)
Thuật toán được mô tả như sau:
Bước 1: Khởi tạo quần thể QT gồm M(=Size) cá thể một cách ngẫu nhiên
Tính các giá trị hàm mục tiêu fi(x), (i = 1,...,k), với mỗi x ∈ QT
Bước 2: Trong các cá thể trong quần thể QT, ta thực hiện:
Bước 2.1: Chọn ngẫu nhiên 2 cá thể cha mẹ P 1 và P2.
Bước 2.2: Lai ghép tạo ra 2 cá thể con mới C 1 và C2.

43

Bước 3: Với 2 cá thể con vừa sinh ra trong phép lai ghép trên, ta thực hiện
đột biến (với xác suất đột biến là pm) và đột biến tại một trong hai cá thể này
tùy thuộc vào giá trị ngẫu nhiên tạo ra.
Tại vị trí thứ i (được chọn đột biến), thành phần xi được thay thế bởi:
x i + z*(x i - left) nếu u <0.5
x i + z*(righ - x i ) nếu u >=0.5
trong đó u là sổ ngẫu nhiên thuộc [0,1]; left và righ là cận dưới và cận
trên của x i ; việc tính z và sơ đồ tôi luyện được thực hiện như trong giải
thuật SA nêu trên
Nếu cá thể mới tạo tốt hơn cá thể cũ thì thay thế nó cho cá thể cũ ;
Cập nhật tham số nhiệt độ theo sơ đồ tôi luyện;
Bước 4: Khởi tạo vectơ trọng số  = (1,..., k ) một cách ngẫu nhiên.
Bước 5: Tính giá trị các hàm mục tiêu của 2 cá thể con sau khi đột biến, từ
đó tính giá trị thích nghi của chúng. So sánh chúng với cha mẹ để chọn cá
thể đưa vào quần thể sau (Cá thể có giá trị thích nghi nhỏ hơn sẽ được
chọn).
Bước 6: Nếu số lần lặp đủ lớn hoặc T k < Tdong thì kết thúc, Nếu chưa thỏa
mãn điều kiện dừng thì chuyển về bước 2.
Bước 7: Nếu thỏa mãn điều kiện dừng thì chuyển đến bước 8.
Bước 8: Nghiệm tốt nhất tìm được là nghiệm của bài toán.
k

Trong đó giá trị thích nghi được xác định W = ∑ϖ i * f i ( x) và được dùng
i =1

để đánh giá độ thích nghi của cá thể tương ứng.
Giải thuật này có một số đặc điểm sau:
Thuật toán BEA (Blend Evolutionary Algorithm) về cơ bản là RCGA,
sau khi sinh cá thể con thì sử dụng (1+1)ES. Trong quá trình đột biến của ES
ta sử dụng kĩ thuật giảm nhiệt độ theo sơ đồ tôi luyện của SA.
Tại mỗi bước của một vòng lặp , toán tử lai ghép được thực hiện với số

44

lần như nhau và một con sinh ra được bổ sung ngay vào quần thể trung gian.
Điều này giúp làm tăng tính đa dạng của quần thể và các con sinh ra vẫn
kế thừa được cha mẹ chúng.
Toán tử đột biến được thực hiện trên tất cả các cá thể của quần thể trung
gian, toán tử này sử dụng cách thức đột biến theo giải thuật mô phỏng tôi luyện.
Tham số nhiệt độ có vai trò điều chỉnh khoảng cách giữa cá thể con sinh ra và cha
mẹ nó.
3.3. Lập trình thử nghiệm
Trong các bài toán thử nghiệm dưới đây sử dụng số cá thể trong một
quần thể cố định là m=30. Toán từ lai ghép được thực hiện là toán tử lai ghép
SBX, nhiệt độ khời tạo T0 = 1000; nhiệt độ đông là Tdong = 0.01. Chiến lược
tiến hoá sử dụng là (1 + 1 )ES.
3.3.1. Bài toán 1 [7]
3

1 2
) ) → Min
 F1(x) = 1 - exp(- ∑ (x i 3
i =1

1 2

) ) → Min
F2(x) = 1 - exp(-∑ (x i +
3

xi ∈ [ − 4,4], i = 1,2,3


n=3


a. Mã hóa
Bài toán này gồm có 2 hàm mục tiêu đều tiến đến Min, mỗi hàm bao
gồm 3 biến. Vì vậy, mỗi cá thể (lời giải của bài toán) được mã hóa là một
véctơ thực 6 chiều. Trong đó 3 thành phần đầu biểu diễn các giá trị biến x i
(i=1,…,3); thành phần thứ 4, thứ 5 để ghi giá trị các hàm mục tiêu f 1, f2 ứng
với cá thể này. Thành phần thứ 6 để ghi giá trị hàm tổ hợp các mục tiêu của cá
thể khi sử dụng giải thuật kết hợp BEA, và để ghi giá trị độ thích nghi của
từng cá thể khi sử dụng GA nhằm đánh giá trong việc chọn các cá thể đưa vào
quần thể mới .
b. Các toán tử lai, đột biến:

45

Toán tử lai: Toán tử SBX (Simulated Binary Crossover)
Giả sử x = (x1, x2 , ... xn) và y = (y1, y2 , ..., yn) là hai cá thể cha mẹ đã
chọn để tạo sinh. Khi đó hai cá thể con c 1 = (c11, ... , c1n) và c2 = (c21, ... , c2n)
được sinh ra theo công thức:
c1i = 0.5*((1 + β) * xi + (1 - β) * yi)

(3.3)

c2i = 0.5*((1 - β) * xi + (1 + β) * yi)

(3.4)

trong đó β được tính bởi công thức:
1

η +1

 (2 * u )
1
β =
1
η +1
(
)

 2 * (1 − u )

if u ≤ 0.5
otherwise

(3.5)

với u là số ngẫu nhiên trong [0, 1]; η là tham số điều khiển.
Trong 2 con sinh ra chọn con tốt hơn đem so sánh với cha mẹ.
❖ Toán tử lai ghép SBX.

Thủ tục lai như sau:
for v2=1:n;
lamda=2;
u=rand;
beta=lamda*exp(-lamda*u);
yy1=0.5*((1+beta)*y(1,v2) + (1- beta)*y(2,v2));
yy2=0.5*((1+beta)*y(2,v2)+(1- beta)*y(1,v2));
if (yy1>=left)&(yy1<=righ);
y (1,v2)=yy1; else;
y(1,v2)=u*x3(i1,v2) + (1-u)*x3(i2,v2) ; ;
end;
if (yy2>=left)&(yy2<=righ);
y (2,v2)=yy2; else;
y(2,v2)=(1-u)*x3(i1,v2)+u*x3(i2,v2);; end;
end;

46

Toán tử đột biến: sử dụng đột biến đều có sự tham gia của yếu tố nhiệt
độ của SA, với một gen i được chọn ngẫu nhiên để đột biến từ cá thể b = (x 1 ,
x2, ... , xn), thành phần xi được thay thế bởi một số ngẫu nhiên trong khoảng
xác định [li, ui] của xi .


Đột biến đều.

Thủ tục đột biến như sau:
vd=1+fix(n*rand);

%vi tri dot bien

z=(-tk)*(1+1/tk)^abs(2*rand-1)-1;
if rand
%dot bien

if rand<0.5;
y (1,vd)=y (1,vd)+z*(y (1,vd)-left);
else
y (2,vd)=y (2,vd)+z*(righ- y (2,vd));
end;
tk=t0/(1+v1);
c. Các tham số :
Các tham số được sử dụng trong bài toán này là:
 Kích thước quần thể: 30
 Xác suất lai 1, đột biến 0.1.
 Chương trình thực hiện tiến hoá sau 1000 thế hệ.
d. Kết quả được cho trong bảng sau:
Bảng 3.1: Một số lời giải sử dụng GA, ES, SA và BEA của bài toán 1.

x1
x2
x3
f1
f2
Giá trị TB

GA
0.5520
0.5259
0.5192
0.0066
0.9752
0.4909

Lần thử 1
ES
SA
0.5607 0.5547
0.5578 0.5741
0.5541 0.5293
0.0012 0.0028
0.9790 0.9783
0.4902 0.4906

BEA
0.5488
0.5647
0.5634
0.0012
0.9792
0.4901

47

GA
0.4649
0.4847
0.4424
0.0386
0.9614
0.5000

Lần thử thứ 50
ES
SA
-0.532 0.5299
-0.583 0.5082
-0.547 0.4966
0.9787 0.0134
0.0031 0.9715
0.4909 0.4925

BEA
-0.569
-0.587
-0.572
0.9815
0.0002
0.4908

Trong bảng trên, cột GA là kết quả quá trình tiến hóa quần thể gồm 30 cá
thể sau 1000 thế hệ và sau 100 lần lặp thì cập nhật lại giá trị lý tưởng sử dụng độ
thích nghi đế đánh giá và chọn lọc cá thể, còn cột BEA là kết quả quá trình tiến
hóa quần thể gồm 30 cá thể sau 1000 thế hệ sử dụng giá trị tổ hợp các mục tiêu
để đánh giá và chọn lọc cá thể.
 −1

Theo tác giả [7], các hàm mục tiêu đạt giá trị tốt nhất khi x∈ 

 3

,

1 
.
3

Kết quả ở bảng trên cũng hoàn toàn phù hợp với kết quả này, giá trị các hàm
mục tiêu càng tiến dần tới Min khi giá trị của các x i xấp xỉ bằng nhau và x∈
 −1 1 
,  . Việc sử dụng giải thuật GA và giải thuật đề xuất có những ưu

 3 3

nhược điểm nhất định, tùy vào mục đích yêu cầu của người sử dụng mà ta có
thể chọn phương pháp giải cho bài toán cho phù hợp. Trong các giải thuật này
thì giải thuật đề xuất cho kết quả mà giá trị trung bình của các hàm mục tiêu
nhỏ hơn, nghĩa là các cá thể được chọn đến quần thể cuối cùng trong giải
thuật này có tính đồng đều hơn.
3.3.2 Bài toán 2 [5]
1

f
1
=
* x1 * (1 + g ) →Min

2

 f 2 = 1 * (1 − x ) * (1 + g ) →Min
1

2

6

g =100 * 5 + ∑(( xi − 0.5) 2 − cos(2π * ( xi − 0.5)))



2




xi ∈[ 0,1], i =1,...n


n = 6

a. Mã hóa
Bài toán này gồm có 2 hàm mục tiêu đều tiến đến Min, mỗi hàm bao
gồm 6 biến. Vì vậy, mỗi cá thể (lời giải của bài toán) được mã hóa là một

48

véctơ thực 9 chiều. Trong đó 6 thành phần đầu biểu diễn các giá trị biến x i
(i=1,…,6); thành phần thứ 7, thứ 8 để ghi giá trị các hàm mục tiêu f 1, f2 ứng
với cá thể này; thành phần thứ 9 để ghi giá trị hàm tổ hợp các mục tiêu của cá
thể khi sử dụng giải thuật kết hợp BEA, và để ghi giá trị độ thích nghi của
từng cá thể khi sử dụng GA nhằm đánh giá trong việc chọn các cá thể đưa vào
quần thể mới .
b. Các toán tử lai, toán tử đột biến, các tham số và thuật toán của bài toán 2
đều tương tự như bài toán 1.
c. Kết quả được cho trong bảng sau:
Bảng 3.2: Một số lời giải sử dụng GA, ES, SA và BEA của bài toán 2.
GA
x1
x2
x3
x4
x5
x6
f1
f2

Lần thử 1
ES
SA

BEA

GA

Lần thử thứ 50
ES
SA

BEA

0.80285

0.74914

0.55927

0.75905

0.60005

0.82092

0.48868

0.5212

0.49853

0.50007

0.50531

0.49893

0.50092

0.50084

0.50378

0.50099

0.50021

0.49904

0.4961

0.49654

0.50041

0.50386

0.50041

0.50142

0.50004

0.50254

0.5012

0.5012

0.50114

0.50451

0.49478

0.49998

0.50024

0.50213

0.50553

0.50137

0.5004

0.50169

0.49597

0.50018

0.49892

0.50236

0.4996

0.49479

0.50074

0.49939

0.5008

0.49862

0.40427

0.3882

0.32347

0.31387

0.30191

0.44378

0.27403

0.25326

0.09927

0.12999

0.25491

0.13138

0.20124

0.09681

0.28672

0.24184

0.25177

0.25909

0.28919

0.22263

0.25158

0.27029

0.28038

0.24755

Giá
trị
trung
bình

Trong bảng trên, cột GA là kết quả quá trình tiến hóa quần thể gồm 30 cá
thể sau 1000 thế hệ và sau 100 lần lặp thì cập nhật lại giá trị lý tưởng sử dụng độ
thích nghi đế đánh giá và chọn lọc cá thể, còn cột BEA là kết quả quá trình tiến
hóa quần thể gồm 30 cá thể sau 1000 thế hệ sử dụng giá trị tổ hợp các mục tiêu
để đánh giá và chọn lọc cá thể.

49

Theo tác giả [5], các hàm mục tiêu đạt giá trị tốt nhất khi x=0.5. Kết
quả ở bảng trên cũng hoàn toàn phù hợp với kết quả này, giá trị các hàm mục
tiêu càng tiến dần tới Min khi giá trị của các x i xấp xỉ bằng nhau và x ≈ 0.5.
Trong hai giải thuật này thì giải thuật kết hợp cho kết quả mà giá trị trung
bình của các hàm mục tiêu nhỏ hơn. Tuy nhiên, giá trị mục tiêu thì trong mỗi
lần chạy lại cho những kết quả không cố định nên tùy vào yêu cầu của người
nhận lời giải mà chọn phương pháp phù hợp.
3.3.3. Bài toán 3 [7]



F1(x) = x 1 → min

F2(x) = g(x) * (1 - (x1 /g(x))) → min

n

g(x) = 1 + 9 * (∑ x i )/(n - 1)
i =2

x ∈[0,1]; i = 1..30


n = 30
a. Mã hóa
Bài toán này gồm có 2 hàm mục tiêu đều tiến đến Min, mỗi hàm bao
gồm 30 biến. Vì vậy, mỗi cá thể (lời giải của bài toán) được mã hóa là một
véctơ thực 33 chiều. Trong đó 30 thành phần đầu biểu diễn các giá trị biến x i
(i=1,…,30); thành phần thứ 31, thứ 32 để ghi giá trị các hàm mục tiêu f 1, f2
ứng với cá thể này; thành phần thứ 33 để ghi giá trị hàm tổ hợp các mục tiêu
của cá thể khi sử dụng giải thuật kết hợp BEA, và để ghi giá trị độ thích nghi
của từng cá thể khi sử dụng GA nhằm đánh giá trong việc chọn các cá thể đưa
vào quần thể mới.
b. Các toán tử lai, toán tử đột biến, các tham số và thuật toán của bài toán 3
đều tương tự như bài toán 1.
c. Kết quả được cho trong bảng sau:

50