Tải bản đầy đủ (.pdf) (9 trang)

Báo cáo khoa học: "SO SÁNH MỘT SỐ PHƯƠNG PHÁP TÌM KIẾM TỐI ƯU ỨNG DỤNG TRONG KỸ THUẬT" potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (462.1 KB, 9 trang )




CT 2

I. ĐẶT VẤN ĐỀ
1.1. Xác định nhiệm vụ của bài toán tối ưu
Trong kỹ thuật, khi giải quyết bất kỳ nhiệm vụ nào chúng ta đều mong muốn có phương án
tốt nhất theo một hoặc một vài tiêu chí nào đó. Có thể liệt kê rất nhiều những ví dụ cụ thể như:
tiết kiệm thời gian nhất, chi phí nhỏ nhất, năng suất lớn nhất, quãng đường đi ngắn nhất, thiết kế
kết cấu với trọng lượng vật liệu nhỏ nhất… Để giải được những bài toán này, toán học đã cho ra
đời một ngành là “Quy hoạch toán học” hay “tối ưu hóa” [1], [3].
Bài toán tối ưu nói chung được viết dưới dạng toán học như sau:
Tìm giá trị cực tiểu (hoặc cực đại) hàm:

n
f(x) min(max);x R
 
(1)
Với các điều kiện:
g
i
(x) ≥ 0; i = 1,2, , m
h
i
(x) = 0; i = 1,2, , l
SO SÁNH MỘT SỐ PHƯƠNG PHÁP TÌM KIẾM TỐI ƯU
ỨNG DỤNG TRONG KỸ THUẬT


TS. NGUYỄN QUÁN THĂNG


Phòng Khoa học Công nghệ MT
Bộ Tư lệnh Công binh
TS. NGUYỄN TUẤN ANH
Bộ môn Kỹ thuật ATGT
Trường Đại học Giao thông Vận tải
ThS. NGUYỄN THẾ MINH
Bộ môn Xe máy Công binh
Học viện Kỹ thuật Quân sự



Tóm tắt: Bài báo giới thiệu kết quả nghiên cứu, đánh giá một số thuật toán tìm kiếm tối
ưu dựa trên cơ sở mô phỏng Monte - Carlo đang được ứng dụng để giải các bài toán kỹ thuật
trên thế giới. Kết quả nghiên cứu có thể áp dụng cho bài toán tối ưu ứng dụng.
Summary: The article is introduced about result searched and evaluated for some
optimal method bese on Monte - Carlo simulation that be using in the world. The result can be
apllied for optimal mechanism design.





CT 2

Bài toán đặt ra yêu cầu là tìm tập hợp các biến x
i
, i = 1, … ,n thoả mãn các điều kiện ràng
buộc đồng thời hàm f(x) đạt giá trị cực tiểu (hoặc cực đại). Thực ra tìm cực tiểu hoặc cực đại
trong toán học không khác nhau nhiều (dùng phép biến đổi hàm ngược), do vậy trong bài báo
này chủ yếu ta xét bài toán tìm cực tiểu.

Hàm f(x) trong biểu thức (1) được gọi là hàm mục tiêu hoặc tiêu chuẩn tối ưu, biểu diễn
mối quan hệ giữa tiêu chuẩn chất lượng của quá trình khảo sát và các biến độc lập x.
Các hàm số g
i
(x), h
i
(x) là các điều kiện ràng buộc của bài toán tối ưu dưới dạng đẳng thức
và bất đẳng thức. Trong không gian các biến, các hàm số này tạo ra miền giới hạn D các khả
năng cho phép của hàm f(x).
Nếu như D  R
n
(với R là số chiều của hàm mục tiêu), có nghĩa là không tồn tại bất kỳ một
điều kiện giới hạn nào ta nói rằng bài toán quy hoạch phi tuyến không có điều kiện ràng buộc.
Tuy nhiên trong phần lớn các bài toán tối ưu, người sử dụng thường có băn khoăn đó là:
kết quả nhận được từ quá trình tính đã thật sự là phương án tốt nhất chưa. Để minh họa vấn đề
này ta có thể xét ví dụ như hàm Peaks (2) - hai biến là hàm đơn điệu đa cực trị, được biểu diễn
bằng đồ thị như trên hình 1.

2 2 2 2 2 2
x
(-x -(x +1) ) (-x -x ) (-(x +1) -x )
1
2 3 5
1
1 2 1 2 1 2
f(x) = 3.(1- x ) .e -10.( - x - x ).e - .e
1 1 2
5 3
(2)


Hình 1. Minh hoạ tối ưu toàn cục
Như trên hình 1, xung quanh phương án tốt nhất (ở đây chọn là điểm thấp nhất - điểm A)
còn có một điểm đạt cực trị địa phương là điểm B và một số điểm nghi ngờ có cực tiểu khác.
Trong quá trình giải, rất có khả năng kết quả giải bài toán tối ưu của chúng ta bị "kẹt" tại một
cực trị nào đó (không phải điểm A) và không thoát ra được. Vì vậy, việc phát triển các thuật
toán đủ mạnh tiệm cận được giá trị tối ưu luôn được người làm kỹ thuật quan tâm.
1.2. Các dạng bài toán tìm kiếm tối ưu dựa trên cơ sở mô phỏng Monte - Carlo
Với các phương pháp cổ điển, những bài toán tìm kiếm tối ưu trong không gian tìm kiếm
nhỏ là tương đối phù hợp. Tuy nhiên để tìm được nghiệm tiệm cận tối ưu trong không gian tìm
kiếm lớn cần thiết phải có những kỹ thuật tìm kiếm đặc biệt dựa trên những hiểu biết về trí tuệ
nhân tạo và mô phỏng các hiện tượng vật lý hay sinh học. Trong số đó nổi bật lên là các phương
pháp tìm kiếm tối ưu Monte - Carlo sau:
- Thuật giải di truyền (Genetic Algorithms - GA)



CT 2

- Thuật mô phỏng luyện kim (Simulated Annealing Algorithm - SA)
- Thuật tiến hoá vi phân (Differential Evolution Algorithm - DE)
Đây là các thuật toán thuộc lớp các thuật giải xác suất, hiện đại và đang được quan tâm ứng
dụng vào giải các bài toán tối ưu kỹ thuật.
II. NGUYÊN LÝ HOẠT ĐỘNG VÀ SƠ ĐỒ THUẬT TOÁN
2.1. Thuật giải di truyền
a. Nguyên lý hoạt động
Giải thuật di truyền - GA do D.E. Goldberg đề xuất năm 1968, sau này được phát triển bởi
L.Davis và Z.Michalevicz. Đây là thuật toán hình thành từ việc nhận xét thế giới tự nhiên: Quá
trình tiến hoá tự nhiên là quá trình tối ưu nhất, hoàn hảo nhất. Đây được xem như một tiên đề
đúng, không chứng minh được, nhưng phù hợp với thực tế khách quan. Tính tối ưu của quá
trình tiến hoá thể hiện ở chỗ thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn và

phù hợp với môi trường hơn) thế hệ trước. Xuyên suốt quá trình tiến hoá, các thế hệ mới được
sinh ra để bổ sung, thay thế thế hệ cũ, trong quá trình này cá thể nào phát triển hơn thích ứng
hơn với môi trường sẽ tồn tại, cá thể nào kém thích ứng hơn sẽ bị đào thải. Như vậy thuật toán
di truyền đều mô phỏng bốn quá trình tiến hoá cơ bản: lai ghép, đột biến, sinh sản, chọn lọc tự
nhiên.
b. Xây dựng sơ đồ thuật toán
Sơ đồ thuật toán được trình bày trên hình 2a.
Mã hoá các biến và xây dựng quần thể ban đầu (khối 1, 2): Ký hiệu npop_size là số cá thể
trong một quần thể; nếu bài toán có n biến độc lập và mỗi biến được biểu diễn bởi mi(j) bit thì
mỗi phương án cần
n
j 1
nx mi(j)



bit để biểu diễn. Tương ứng, toàn bộ bài toán cần
(npop_size*nx) bit. Để có quần thể ban đầu ta chọn ngẫu nhiên npop_size cá thể trong phạm vi
cho phép.
Quá trình chọn lọc các cá thể (khối 4) trong GA dựa trên độ thích nghi của chúng (khối 3)
thông qua xác suất lựa chọn như định nghĩa bởi biểu thức (4). Để tính xác suất lựa chọn thực
hiện các bước sau:
- Tính độ thích nghi eval(v
i
) cho mỗi cá thể; v
i
(i = 1,2,…, npop_size)
- Tính tổng giá trị thích nghi cho toàn bộ quần thể:

npop_size

F = eval(v )
i=1
i

(3)
- Tính xác suất lựa chọn p
i
cho mỗi cá thể v
i
:



CT 2


eval(v )
i
p =
npop_size
i
eval(v )
i=1
i

(4)
- Tính vị trí xác suất q
i
cho mỗi cá thể v
i

(i = 1,2,…, npop_size)

i
q = p
j=1
i j

(5)
Tiến trình chọn lọc được thực hiện bằng cách quay bánh xe Rulet npop_size lần; mỗi một
lần sẽ chọn được một cá thể để đưa vào quần thể mới.
Như vậy sẽ có một số cá thể được chọn hơn một lần và có cá thể đã bị loại bỏ.
Trong quá trình lai ghép (khối 5), thông số có ý nghĩa đối với việc lai ghép là xác suất lai
ghép p
c
, tham số này cho biết số cá thể sẽ tham gia lai ghép trong quần thể là (p
c
*npop_size).
Thường p
c
=0.25 [1], [2], [4].
- Chọn ngẫu nhiên (p
c
*npop_size) cá thể trong quần thể, tiếp tục lại chọn ngẫu một cặp cá
thể trong số các cá thể sẽ lai ghép.
- Chọn ngẫu nhiên điểm lai ghép và tiến hành lai ghép.
Đối với quá trình đột biến (khối 6), thông số khác điều khiển quá trình là xác suất đột biến
p
m
. Tham số này cho biết số bit sẽ đột biến là (p
m

. nx . npop_size). Cách thực hiện như sau:
- Phát (p
m
*nx*npop_size) lần số ngẫu nhiên r phân bố đều trong khoảng [1,
(nx*npop_size)]. Nếu r trùng với vị trí nào sẽ tiến tiến hành đột biến bit đó, có nghĩa là nếu giá
trị của bit đó bằng 0 thì chuyển thành 1 hoặc ngược lại.
2.2. Thuật mô phỏng luyện kim
a. Nguyên lý hoạt động
Như ta đã biết khi đốt nóng các phân tử của thủy tinh hoặc kim loại chuyển động tự do,
nhiệt độ là thước đo mức năng lượng trong từng phần tử cũng như toàn bộ hệ thống. Nếu như
nhiệt độ giảm nhanh chóng, các phần tử ấy sẽ đông đặc lại như một kết cấu phức hợp. Tuy
nhiên nếu nhiệt độ giảm chậm hơn thì dạng tinh thể của chúng sẽ mịn hơn nhiều. Trong trường
hợp này những phần tử của các tinh thể rắn ấy ở trạng thái năng lượng cực tiểu. Năm 1983,
S. Kirkpatrick, C. D. Gelatt và M. P. Vecchi đã mô phỏng lại quá trình tự nhiên xảy ra với
mạng tinh thể của thủy tinh hoặc kim loại khi làm nguội để tìm nghiệm tối ưu, do vậy phương
pháp được đề xuất có tên là Mô phỏng luyện kim (SA).
b. Xây dựng sơ đồ thuật toán
Sơ đồ thuật toán được trình bày trên hình 2b.
Khác với thuật toán di truyền, trong thuật toán mô phỏng luyện kim chỉ có một điểm ban
đầu được khởi tạo theo quy luật ngẫu nhiên phân bố đều trong miền xác định của bài toán sau



CT 2

khi cho các tham số ban đầu cần thiết (khối 1, 2). Mức năng lượng của toàn bộ hệ thống sẽ giảm
dần thông qua việc điều khiển nhiệt độ (khối 3). Sau đó một điểm mới XP(i) trong miền xác
định của bài toán cũng được xác lập (khối 4). Điểm mới này phụ thuộc vào điểm ban đầu X(i)
cũng như vào véc tơ điều chỉnh chiều dài bước Vm(i). Sai số giá trị hàm tại cặp điểm trên tính
theo công thức

 = f(XP) - f(X). (6)
Giá trị này được sử dụng để xem xét đánh giá nhằm xác định hướng chuyển động tiếp theo
trong quá trình tìm nghiệm (khối 5). Trong bài toán tìm Max, chuyển động đi lên (>0 - uphill)
được chấp nhận, thì điểm mới sẽ thay thế điểm cũ [X(i)=XP(i)] - (khối 7). Một bước đi xuống
(<0 dowhill), cũng có thể được chấp nhận nếu thỏa mãn tiêu chuẩn kiểm tra Metropolis (khối
8, 9). Bằng cách như vậy thuật toán có thể thoát khỏi những cực trị cục bộ và sẽ dừng lại khi
thoả mãn điều kiện dừng (khối 10).
2.3. Thuật tiến hoá vi phân
a. Nguyên lý hoạt động
Trên cơ sở ý tưởng của thuật toán GA, vào năm 1995, Rainer Storn và Kenneth Price đã
hoàn thiện cơ chế đột biến và lai ghép để tạo ra một thuật toán mới tin cậy, hiệu quả hơn. Điểm
khác biệt lớn nhất của DE so với GA là luôn duy trì và bổ sung một cặp 2 véctơ bao gồm
(n_popsize) quần thể với (m) chiều các tham số thực và đã ứng dụng thành công cho nhiều bài
toán tối ưu ở các lĩnh vực khác nhau.
b. Xây dựng sơ đồ thuật toán
Sơ đồ thuật toán được trình bày trên hình 2c.
Cũng như thuật toán GA đã trình bày ở trên, thuật toán tiến hoá vi phân cũng khởi tạo quần
thể các điểm ban đầu P(t) theo quy luật ngẫu nhiên phân bố đều trong miền xác định bài toán
sau khi cho các thông số ban đầu (khối 1, 2). Mỗi phần tử trong quần thể ban đầu này cũng được
DE thực hiện trên miền tham số thực với công thức sau [5]:

x = rand(0,1)*(BU -BL ) + BL
ij ij ij ij
(7)
Trong đó: x
ij
- giá trị của phần tử ij với: i - số cá thể xem xét của bài toán; j - số biến của bài
toán tối ưu; BU
ij
, BL

ij
- giới hạn trên và giới hạn dưới của biến x
ij
; rand (0,1) - số ngẫu nhiên
phân bố đều trong khoảng [0, 1].
Ngay sau quá trình tạo quần thể ban đầu, khác với GA, thuật toán DE thực hiện luôn tiến
trình đột biến (khối 3). Trong tiến trình này, DE tiếp tục tạo ra một quần thể được đột biến [V]
dựa trên quần thể ban đầu. Kỹ thuật đột biến trong thuật toán DE là sự kết hợp giữa hệ số tỷ lệ
cho trước và các quá trình ngẫu nhiên. Phương trình (8) biểu diễn giá trị phần tử đột biến v
ij
từ
việc tổ hợp ba phần tử khác nhau được chọn ngẫu nhiên trong quần thể ban đầu [X].

v = x + F*(x -x )
ij ro,j r1,j r2,j
(8)



CT 2

Trong đó: r
0
, r
1
, r
2
- các giá trị ngẫu nhiên khác nhau được chọn theo luật phân bố đều trong
khoảng [0, n_popsize]; F - hằng số tỷ lệ. F  (0,1) là một số thực dương điều khiển mức độ tiến
hóa của quần thể.

Trong quá trình lai ghép (khối 4), DE cũng tiến hành lai ghép theo kiểu cặp đôi (dual
crossover) tạo ra một quần thể lai ghép [U] có giá trị các tham số được lựa chọn ngẫu nhiên từ
các quần thể [X] và [V] ban đầu. Kỹ thuật lai ghép sử dụng trong lập trình của DE có thể biểu
diễn như sau:

v ; if rand(0,1) £ C or j= rand(j)
r
ij
u =
x ; otherwise
ij
ij





(9)
Trong đó: C
r
- xác suất lai ghép. C
r
 (0,1) được người sử dụng định nghĩa nhằm điều
khiển một phần các tham số được sao chép từ quần thể đột biến. Thêm vào đó giá trị của phần
tử lai ghép u
ij
với chỉ số chọn ngẫu nhiên j = rand(j) được lấy từ quần thể đột biến [V] sẽ đảm
bảo chắc chắn phần tử lai ghép không trùng với phần tử ban đầu x
ij
.

Trong quá trình chọn lọc và tái sinh (khối 5, 6), các cá thể trong quần thể lai ghép [U] được
so sánh với các cá thể trong quần thể ban đầu [X] theo hướng cá thể nào có giá trị hàm mục tiêu
thấp hơn sẽ được lựa chọn vào quần thể mới [Y]. Kỹ thuật lựa chọn của DE có thể biểu diễn
như sau:

u ;if f(u ) £ f(x )
ij ij ij
y =
x ; otherwise
ij
ij





(10)
Quá trình tái sinh sẽ được thực hiện bằng phép gán [X] = [Y].
Điều kiện dừng của thuật toán DE cũng rất dễ dàng và thuận tiện. Các khối 7, 8, 9 biểu diễn
điều kiện kiểm tra dừng và xuất kết quả của thuật toán. Các giá trị về số thế hệ tiến hoá (S
th
)
hoặc một giá trị vô cùng bé (EPS) được đưa ra so sánh với các sai lệch của quá trình tính. Biểu
thức điều kiện dừng của thuật toán DE có thể viết như sau:

N
p
F(x)
i
i=1

F(x) - £
ε;
min
N
p

(11)
Trong đó: F(x)
min
- giá trị nhỏ nhất của hàm mục tiêu tại thế hệ xét; F(x)
i
- giá trị hàm mục
tiêu của cá thể thứ i; N
p
(= n_popsize) - tổng số cá thể trong quần thể đang xét;  - giá trị vô cùng
bé cho trước (thường chọn = 10
-4
 10
-6
tùy theo loại bài toán).



CT 2


Hình 2. Sơ đồ các thuật toán GA, SA và DE
III. MỘT SỐ BÀI TOÁN THỬ NGHIỆM VÀ SO SÁNH
3.1. Một số bài toán thử nghiệm
a. Bài toán 1: Tìm cực tiểu hàm Generalized Rosenbrock

Tìm cực tiểu hàm số sau:
D-2
2 2 2
f(x) = (100.(x - x ) +(x -1) ;
j+1 j j
j=0


Các điều kiện hạn chế có dạng:
-30  x
j
 30; j = 0,1,2, … , D - 1; D >1
Đồ thị hàm Generalized Rosenbrock với 2
biến được biểu diễn như hình 3.

Hình 3. Đồ thị hàm Generalized Rosenbrock
b. Bài toán 2: Tìm cực tiểu hàm Ackley
Tìm cực tiểu hàm số sau:
D-1 D-1
1 1
2
f(x) = -20.exp(-0,2. . x ) -exp( cos(2.π.x )) + 20
+ e;
j j
D D
j=0 j=0
 

Các điều kiện hạn chế có dạng:
-30  x

j
 30; j = 0,1,2, …, D - 1; D > 1
Đồ thị hàm Ackley với 2 biến được biểu diễn như hình 4.
a) b) c)



CT 2


Hình 4. Đồ thị hàm Ackley
c. Bài toán 3: Tìm cực đại hàm Zbigniew Michalewicz
Tìm cực đại hàm số sau:
f(x) = 21,5+ x sin 4
πx + x sin 20πx
1 1 2 2
   
   
   

Các điều kiện hạn chế có dạng:
-3.0  x
1
 12.1; 4.1  x
2
 5.8
Đồ thị hàm Zbigniew Michalewicz được biểu diễn như hình 5.

Hình 5. Đồ thị hàm Zbigniew Michalewicz
d. Kết quả tính toán các bài toán thử nghiệm

Kết quả tính toán ba bài toán thử nghiệm trên bằng chương trình tính viết bằng ngôn ngữ
FORTRAN 95 được thể hiện trên bảng như sau:
Bài toán 1 (n = 6)
-2  x
i
 2
Bài toán 2 (n = 6)
-30  x
i
 30
Bài toán 3 (n = 2)
-3  x
1
 12,1; 4,1 x
2
 5,8
Tính
toán
nf t x* f(x*) nf t x* f(x*) nf t x* f(x*)
GA - - - - - - - - 702 0
11,645
5,522
38,209
SA 12000 14 {0,9} 0,0036 13801 3 {0} 0 2601 3
11,625
5,225
38,350
DE 19350 2 {1} 0 12421 3 {0} 0 870 0
11,625
5,725

38,850
Trong đó: nf - số lần tính giá trị hàm; t - thời gian tính toán (% sec); x* - giá trị tối ưu của
các biến; f(x*) - giá trị hàm ở điểm tối ưu.



CT 2

3.2. So sánh khả năng của các phương pháp
Từ các tài liệu tham khảo và kết quả lập trình, tính toán cụ thể cho các bài toán thử nghiệm,
nhận thấy ưu nhược điểm của ba phương pháp trên như sau:
GA SA DE
Ưu
điểm
- Thuộc lớp thuật toán Monte-
Carlo và do xem xét nhiều cá thể
trong một quần thể nên có thể
vượt qua cực trị địa phương,
tiệm cận điểm tối ưu của bài
toán.
- Thuộc lớp thuật toán
Monte - Carlo, có khả
năng tạo ra các đột biến
để tiệm cận điểm tối ưu
của bài toán.
- Có tiêu chuẩn dừng rõ
ràng.
- Có đầy đủ các ưu
điểm của GA và SA.
- Thời gian tính rất

nhanh.
- Được đánh giá là
một thuật toán hiện
đại nhất trong tối ưu.
Nhược
điểm
- Việc xây dựng tiêu chuẩn dừng
rất khó khăn.
- Rất khó sử dụng đối với các
hàm số biến đổi trái dấu ngẫu
nhiên.
- Thời gian tính thường
kéo dài hơn so với các
phương pháp GA, DE
do số lượng vòng lặp
trong chương trình
nhiều.
- Việc lựa chọn các
hệ số tỷ lệ F và hệ số
xác suất lai ghép C
r

phụ thuộc rất nhiều
vào kinh nghiệm
người sử dụng
VI. KẾT LUẬN
Qua quá trình nghiên cứu và thử nghiệm nhiều lần trên máy tính điện tử các thuật toán tối
ưu trên kết hợp với kết quả thử nghiệm một số bài toán mẫu như đã đề cập, có thể đưa ra một số
kết luận sau:
- Theo quan điểm thuần tuý toán học, việc chứng minh nghiệm tối ưu của một bài toán thật

sự không đơn giản đặc biệt với bài toán kỹ thuật. Tuy vậy, các phương pháp nêu trên cũng chỉ
ra cho chúng ta một bức tranh khá tốt về tìm kiếm nghiệm tối ưu trong không gian lớn của bài
toán đa cực trị, không liên tục khá phổ biến trong kỹ thuật. Với cả ba phương pháp đã trình bầy
thì nghiệm đạt được chí ít cũng là phương án tốt nhất (theo một tiêu chuẩn xác định) trong tất cả
các phương án đã xem xét.
- Thông thường để giải các bài toán tối ưu thực tế trong kỹ thuật quá trình tính toán thường
mất rất nhiều thời gian. Ví dụ dùng thuật toán GA để giải bài toán tối ưu kết cấu trong môi
trường Matlab thường mất nhiều tiếng. Do đó, việc rút ngắn được thời gian trong tính toán tối
ưu của thuật toán DE là một ưu điểm vượt trội so với các thuật toán khác trong quá trình tìm
nghiệm, đặc biệt với bài toán mà giá trị hàm không thể biểu diễn được bằng những hàm đại số
tường minh và với số biến lớn.

Tài liệu tham khảo
[1]. Hoàng Kiếm, Thuật giải di truyền, NXB Giáo dục, Hà nội, 2000.
[2]. Nguyễn Đình Thúc, Trí tuệ nhân tạo - Lập trình tiến hóa, NXB Giáo dục, Hà nội, 2001.
[3]. Bùi Minh Trí, Bài tập tối ưu hoá, NXB Khoa học Kỹ thuật, Hà nội, 2002.
[4]. Zbigniew Michalewicz, Genetic Algorithms + Data Structures = Evolution Programs, Springer,
Verlag, 1994.
[5]. Kenneth Price, Rainer Storn, Jouni Lampinen, Differiential Evolution A Practical Approach to
Global Optimization, Springer, Verlag, 2005

×