intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

So sánh một số phương pháp tìm nghiệm tối ưu xây dựng trên cơ sở mô phỏng quá trình tự nhiên

Chia sẻ: Thi Thi | Ngày: | Loại File: PDF | Số trang:9

54
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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 nghiệm tối ưu được xây dựng trên cơ sở mô phỏng quá trình tự nhiên ứng dụng để giải các bài toán trong kỹ thuật. Kết quả nghiên cứu có thể giúp định hướng chọn thuật toán phù hợp cho một số bài toán cụ thể.

Chủ đề:
Lưu

Nội dung Text: So sánh một số phương pháp tìm nghiệm tối ưu xây dựng trên cơ sở mô phỏng quá trình tự nhiên

Cơ kỹ thuật & Kỹ thuật cơ khí động lực<br /> <br /> <br /> So s¸nh Mét sè ph­¬ng ph¸p t×m nghiÖm<br /> tèi ­u x©y dùng trªn c¬ së m« pháng<br /> qu¸ tr×nh tù nhiªn<br /> NGUYỄN TRANG MINH<br /> 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<br /> tìm kiếm nghiệm tối ưu được xây dựng trên cơ sở mô phỏng quá trình tự nhiên<br /> ứng dụng để giải các bài toán trong kỹ thuật. Kết quả nghiên cứu có thể giúp<br /> định hướng chọn thuật toán phù hợp cho một số bài toán cụ thể.<br /> Từ khóa: Thuật giải di truyền, Thuật mô phỏng luyện kim, Thuật tiến hóa vi phân.<br /> <br /> 1. ĐẶT VẤN ĐỀ<br /> Dạng toán học của bài toán tối ưu tổng quát được viết như sau:<br /> Tìm giá trị cực tiểu (hoặc cực đại) hàm:<br /> f  x   min(max); x  R n (1)<br /> Với các điều kiện ràng buộc:<br /> gi  x   0; i  1, 2,..., , m<br /> (2)<br /> hi  x   0; i  1, 2,..., l.<br /> Bài toán đặt ra yêu cầu là tìm tập hợp các biến {xi}; i = 1, 2, …, n thoả mãn các điều<br /> 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). Hàm f(x) được gọi là<br /> hàm mục tiê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à<br /> các biến độc lập x. Các hàm số gi(x), hi(x) là các điều kiện ràng buộc của bài toán tối ưu.<br /> 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<br /> của hàm f(x).<br /> Trong miền cho phép D nếu hàm f(x) đơn điệu và tồn tại một cực trị thì nghiệm tìm<br /> được luôn luôn là duy nhất. Tuy vậy trong thực tế không phải lúc nào cũng vậy, ví dụ như<br /> 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ư hình 1.<br /> 2 2 x 2 2 1 2 2<br /> f ( x)  3.(1  x1 )2 .e(  x1 ( x2 1) )  10.( 1  x13  x25 ).e(  x1  x2 )  .e(  ( x1 1)  x2 ) ; (3)<br /> 5 3<br /> <br /> <br /> <br /> <br /> Hình 1. Hàm Peaks và các đường mức.<br /> <br /> Từ đồ thị hình 1 cho thấy, xung quanh phương án tốt nhất (điểm A đạt giá trị Min) còn<br /> có điểm B đạt cực trị địa phương và một số điểm nghi ngờ cực trị khác. Với phương pháp<br /> số xây dựng trên cơ sở các thuật toán truyền thống, trong quá trình giải, rất có khả năng<br /> kết quả cho là một điểm cực trị địa phương nào đó chứ không phải điểm Min trong toàn<br /> miền khảo sát. Hay nói một cách khác, thuật toán đã hội tụ sớm. Điều này hay xảy ra với<br /> <br /> <br /> 158 Nguyễn Trang Minh, “So sánh một số phương pháp … mô phỏng quá trình tự nhiên.”<br /> Nghiên cứu khoa học công nghệ<br /> <br /> những bài toán có số chiều lớn và hàm mục tiêu không liên tục. Vì vậy, việc phát triển các<br /> thuật toán đủ tin cậy để tìm nghiệm tối ưu toàn cục luôn được nhiều nhà khoa học quan<br /> tâm. Với sự phát triển mạnh của kỹ thuật tính toán trên máy tính điện tử đã xuất hiện một số thuật<br /> toán tìm nghiệm tối ưu dựa trên cơ sở mô phỏng các quá trình xảy ra trong tự nhiên. Điển hình là:<br /> - Thuật giải di truyền (GA- Genetic Algorithms)<br /> - Thuật mô phỏng luyện kim (SA- Simulated Annealing Algorithm)<br /> - Thuật tiến hoá vi phân (DE- Differential Evolution Algorithm)<br /> Đây là các thuật toán thuộc lớp các thuật giải xác suất, cả ba thuật toán trên chủ yếu<br /> dựa vào giá trị hàm mục tiêu không phụ thuộc vào đặc điểm của hàm và các biến. Những<br /> thuật toán này cũng chỉ hoạt động được nhờ kỹ thuật số. Cả ba thuật toán đều đã được ứng<br /> dụng để giải những bài toán tối ưu khó trong nhiều lĩnh vực của khoa học kỹ thuật.<br /> <br /> 2. NGUYÊN LÝ VÀ THUẬT TOÁN<br /> 2.1. Thuật giải di truyền<br /> 2.1.1 Nguyên lý hoạt động<br /> Thuật toán di truyền - GA do D.E. Goldberg đề xuất năm 1968, sau này được phát<br /> triển bởi L.Davis và Z.Michalevicz. Đây là thuật toán hình thành từ việc nhận mô phỏng<br /> lại quá trình tiến hóa của tự nhiên. Trong quá trình tiến hoá, các thế hệ mới được sinh ra<br /> bổ sung, thay cho thế hệ cũ, cá thể nào phát triển hơn thích ứng hơn với môi trường sẽ tồn<br /> tại, cá thể nào kém thích ứng hơn sẽ bị đào thải.<br /> Như vậy thuật toán di truyền mô phỏng ba quá trình<br /> tiến hoá cơ bản:<br /> Tái sinh và lựa chọn (Reproduction - Selection)<br /> Lai ghép (Crossover)<br /> Đột biến (Mutation)<br /> Để thực hiện được những thuật toán trên trước tiên<br /> cần tiến hành mã hóa các biến. Có hai phiên bản được sử<br /> dụng là phiên bản mã thực và phiên bản mã nhị phân.<br /> Trong phiên bản mã nhị phân, mỗi một chuỗi nhị phân<br /> với chiều dài xác định (chuỗi nhiễm sắc thể hay còn gọi<br /> là “gen”) sẽ tương ứng với một lời giải của bài toán đang<br /> khảo sát. Quá trình tiến hoá sẽ được thực hiện trên một<br /> tập các cá thể tương ứng với quá trình tìm ra lời giải tối<br /> ưu trong không gian các nghiệm cho phép.<br /> Điều khác biệt quan trọng giữa tìm kiếm của thuật toán<br /> di truyền với các phương pháp tìm kiếm khác là thuật toán di<br /> truyền luôn duy trì và xử lý một tập các lời giải, trong khi các<br /> phương pháp khác chỉ xử lý một điểm trong không gian tìm<br /> kiếm. Chính vì vậy mà thuật toán di truyền mạnh hơn và hiệu<br /> quả hơn các phương pháp khác [1].<br /> 2.1.2 Sơ đồ thuật toán<br /> Sơ đồ thuật toán của thuật giải di truyền được trình<br /> bày trên hình 2. Mã hoá các biến và xây dựng quần thể<br /> Hình 2. Sơ đồ thuật toán GA.<br /> ban đầu (khối 1,2):<br /> 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<br /> n<br /> biến được biểu diễn bởi mi(j) bit thì mỗi phương án cần nx   mi( j ) bit để biểu diễn.<br /> j 1<br /> <br /> <br /> <br /> <br /> Tạp chí Nghiên cứu KH&CN quân sự, Số 33, 10 - 2014 159<br /> Cơ kỹ thuật & Kỹ thuật cơ khí động lực<br /> <br /> 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<br /> nhiên npop_size cá thể trong vùng cho phép.<br /> 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<br /> 3) thông qua xác suất lựa chọn như định nghĩa bởi biểu thức (5). Để tính xác suất lựa chọn<br /> thực hiện các bước sau:<br /> - Tính độ thích nghi eval(vi) cho mỗi cá thể; vi (i = 1, 2, …, npop_size)<br /> - Tính tổng giá trị thích nghi cho toàn bộ quần thể:<br /> npop _ size<br /> F  eval(v ) i<br /> (4)<br /> i 1<br /> <br /> - Tính xác suất lựa chọn pi cho mỗi cá thể vi:<br /> eval (vi ) (5)<br /> pi  npop _ size<br /> <br />  eval (v )<br /> i 1<br /> i<br /> <br /> <br /> - Tính vị trí xác suất qi cho mỗi cá thể vi (i = 1, 2, …, npop_size)<br /> i<br /> qi   p j (6)<br /> j 1<br /> <br /> 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<br /> 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ể<br /> được chọn hơn một lần và có cá thể sẽ bị loại bỏ.<br /> Quá trình lai ghép (khối 5) tiến hành theo hai bước:<br /> - Chọn ngẫu nhiên (pc*npop_size) cá thể trong quần thể, sau đó chọn ngẫu nhiên một<br /> cặp cá thể trong số các cá thể sẽ lai ghép.<br /> - Chọn ngẫu nhiên điểm lai ghép và tiến hành lai ghép theo sơ đồ (hình 3).<br /> <br /> <br /> ĐIỂM LAI GHÉP CÁ THỂ SAU LAI GHÉP<br /> <br /> <br /> <br /> <br /> Hình 3. Sơ đồ lai ghép đơn giản.<br /> <br /> Thông số có ý nghĩa đối với việc lai ghép là xác suất lai ghép pc, tham số này cho biết<br /> số cá thể sẽ tham gia lai ghép trong quần thể là (pc*npop_size). Theo tài liệu [3], thường<br /> chọn pc= 0,25.<br /> Quá trình đột biến (khối 6) thực hiện như sau: Phát (pm*nx*npop_size) lần số ngẫu<br /> 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<br /> 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<br /> ngược lại. Thông số điều khiển quá trình là xác suất đột biến pm.<br /> Thuật toán GA thường kết thúc khi số lần tiến hóa vượt quá giới hạn.<br /> 2.2. Thuật mô phỏng luyện kim<br /> 2.2.1. Nguyên lý hoạt động<br /> Như ta đã biết khi đốt nóng đến một mức nhiệt độ nào đó các phân tử của thủy tinh<br /> hoặc kim loại sẽ chuyển động tự do [2]. Lúc này, nhiệt độ là thước đo mức năng lượng<br /> 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<br /> 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<br /> 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ử<br /> 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.<br /> <br /> <br /> 160 Nguyễn Trang Minh, “So sánh một số phương pháp … mô phỏng quá trình tự nhiên.”<br /> Nghiên cứu khoa học công nghệ<br /> <br /> 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<br /> 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 đề xuất<br /> được gọi là Mô phỏng luyện kim - Simulated Annealing - SA.<br /> 2.2.2. Sơ đồ thuật toán<br /> Sơ đồ thuật toán được trình bày trên hình 3. Khác với thuật toán di truyền, sau khi cho<br /> các tham số ban đầu cần thiết, thuật toán mô phỏng luyện kim xuất phát từ một điểm ban<br /> đầu được khởi tạo theo qui luật ngẫu nhiên phân bố đều trong miền xác định của bài toán<br /> (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<br /> nhiệt độ (khối 3). Xác định một điểm mới XP(i) trong miền cho phép của bài toán (khối 4).<br /> Điểm mới phụ thuộc vào điểm ban đầu X(i) và véc tơ điều chỉnh chiều dài bước Vm(i).<br /> Sai số giá trị hàm tại cặp điểm trên tính theo<br /> công thức:  = f(XP) - f(X).<br /> Giá trị này được sử dụng để xác định hướng<br /> chuyển động tiếp theo trong quá trình tìm nghiệm<br /> (khối 5). Trong bài toán tìm Max, chuyển động đi<br /> lên ( >0 - uphill) được chấp nhận, thì điểm mới<br /> sẽ thay thế điểm cũ [X(i)=XP(i)] - (khối 7). Một<br /> bước đi xuống ( < 0 dowhill), cũng có thể được<br /> chấp nhận nếu thỏa mãn tiêu chuẩn kiểm tra<br /> Metropolis (khối 8, 9). Bằng cách như vậy thuật<br /> toán có thể thoát khỏi những cực trị cục bộ và sẽ<br /> dừng lại ở cực trị toàn cục khi thoả mãn điều kiện<br /> dừng (khối 10).<br /> Do thuật toán sử dụng quá ít giá trị hàm mục<br /> tiêu nên mức độ xáo trộn rất cao. Mức độ này có<br /> thể điều chỉnh được bằng cách sử dụng các tham số<br /> điều khiển là: factor- Hệ số giảm nhiệt độ; ntm- Số<br /> bước nhiệt độ sẽ thử nghiệm; nlm- Số lần thử<br /> nghiệm ở từng mức nhiệt độ.<br /> Trong bài toán tìm cực đại, tiêu chuẩn<br /> Metropolis được sử dụng với mục đích cho phép<br /> những chuyển động đi xuống nhỏ, đồng thời ngăn<br /> chặn những chuyển động đi xuống lớn. Do đó tránh Hình 3. Sơ đồ thuật toán SA (CĐ).<br /> cho thuật toán bị sa lầy ở những cực tiểu cục bộ.<br /> Tại khối 9, ta lấy một số ngẫu nhiên phân bố đều trong khoảng [0,1] là p và so sánh<br /> với tiêu chuẩn Metropolis:<br /> <br /> m e t (7)<br /> trong đó, m là tiêu chuẩn Metropolis; t là giá trị nhiệt độ tính toán;  là sai số giá trị hàm<br /> tại hai điểm đang xét.<br /> Do  là âm trong nhánh này nên giá trị m cũng sẽ nằm trong khoảng [0,1]. Khi số mũ<br /> càng âm thì giá trị của m càng gần với 0 hơn. Tức là khi nhiệt độ giảm dần tới không và<br /> 
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
12=>0