Một số phương pháp và phần mềm giải bài toán tối ưu phi tuyến đơn mục tiêu Các phương pháp giải bài toán tối ưu toàn cục

Một phần của tài liệu Giáo trình toán ứng dụng (Trang 31 - 37)

4. Mô hình tối ưu phi tuyến đơn và đa mục tiêu

4.2.Một số phương pháp và phần mềm giải bài toán tối ưu phi tuyến đơn mục tiêu Các phương pháp giải bài toán tối ưu toàn cục

Các phương pháp giải bài toán tối ưu toàn cục

Các phương pháp giải bài toán tối ưu toàn cục phi tuyến đơn mục tiêu được phân ra thành hai lớp: phương pháp tất định (deterministic methods) và phương pháp ngẫu nhiên (stochastic methods).

Phương pháp tất định sử dụng các tính chất giải tích của hàm mục tiêu và các hàm ràng buộc. Một số dạng bài toán tối ưu toàn cục với những tính chất giải tích nhất định của hàm mục tiêu và các hàm ràng buộc có thể giải được bằng các phương pháp tất định thích hợp, chẳng hạn như phương pháp quy hoạch toàn phương, quy hoạch tách, quy hoạch lồi, quy hoạch d.c… Trong các trường hợp đó phương án tối ưu toàn cục có thể

tìm được sau một số hữu hạn bước tính toán với độ chính xác chọn trước. Tuy nhiên, đối với nhiều lớp bài toán tối ưu toàn cục phương pháp tất định tỏ ra không có hiệu quả.

Trong khi đó, các phương pháp ngẫu nhiên như: phương pháp đa khởi tạo (multistart), mô phỏng tôi (simulated annealing), thuật giải di truyền (genetic algorithm),… có thể áp dụng để giải các bài toán tối ưu toàn cục dạng bất kì, không đòi hỏi các tính chất đặc biệt của hàm mục tiêu hay các hàm ràng buộc. Các phương pháp ngẫu nhiên đặc biệt tỏ ra có hiệu quảđối với các bài toán tối ưu phi tuyến nguyên và hỗn hợp nguyên. Tuy nhiên, các phương pháp này thường chỉ cho phương án “gần” tối ưu khá tốt sau một số hữu hạn bước mà không kiểm soát được độ chính xác của phương án tìm được.

Phần mềm Lingo giải bài toán quy hoạch toàn phương

Ví dụ: Giải bài toán tối ưu phi tuyến dạng toàn phương z = 8x12 + 6x22 → Max,

với các ràng buộc:

4x1 + 2x2 ≤ 60 2x1 + 4x2 ≤ 48 x1, x2 ≥ 0.

Để giải bài toán trên, chúng ta nhấn vào biểu tượng Lingo trên màn hình để vào cửa sổ Lingo. Sau đó thực hiện các lệnh Lingo: Menu > New > <Untitle> và gõ vào các dữ

liệu của bài toán (tương tự như khi giải BTQHTT bằng phần mềm Lingo, xem lại mục 1.4, hình I.4).

Hình I.9. Kết qu bài toán quy hoch toàn phương trong Lingo.

Tiếp theo, cần nháy chuột vào nút LINGO và giải bài toán để thu được kết quả chi tiết như trên hình I.9. Kết quả trên cho ta biết giá trị cực đại của hàm mục tiêu là 180 với phương án tối ưu là: x1 = 15, x2 = 0. Các giá trị tối ưu của các biến đối ngẫu là y1 = 5/3 và y2 = y3 = y4 = 0.

Giải bài toán tối ưu phi tuyến bằng phần mềm RST2ANU

Phần mềm RST2ANU 1.0 được sử dụng để giải các bài toán tối ưu toàn cục phi tuyến dạng tổng quát với các biến liên tục, các biến nguyên và cho các bài toán hỗn hợp

ngữ C và sau này là ngôn ngữ Visual C++ 6.0 cũng như chạy thử nghiệm kéo dài gần tám năm. Ngoài ưu điểm giải được các bài toán hỗn hợp nguyên, phần mềm có độ tin cậy rất cao trong việc tìm ra các phương án tối ưu toàn cục và có giao diện thân thiện đối với người sử dụng. Phần mềm đã được đóng gói tránh sao chép và có thể dùng để giải các bài toán lớn khi được cài đặt trên hệ máy tính mạnh.

Thuật giải

Thuật giải ngẫu nhiên RST2AN (hay RST2ANU), được đưa ra bởi C. Mohan và Nguyễn Hải Thanh. Thuật giải này là thuật giải tìm kiếm ngẫu nhiên có điều khiển, có kết hợp thuật toán mô phỏng tôi (SA). Thuật giải RST2AN là thuật giải lặp, bao gồm hai pha: pha cục bộ và pha toàn cục. Sau đây là thuật giải RST2AN được phát biểu một cách ngắn gọn cho bài toán tối ưu chính tắc dạng cực tiểu hoá.

Trong pha toàn cục, một số lượng thích hợp đủ lớn các phương án khả thi được

được phát sinh ra một cách ngẫu nhiên và lưu trữ trong mảng có tên A. Đánh dấu hai

điểm có giá trị hàm mục tiêu lớn nhất và nhỏ nhất tương ứng là M và L.

Trong pha cục bộ,các phương án được xử lí nhằm thu được giá trị tốt hơn của hàm mục tiêu. Trong pha này, thuật giải xác định X là điểm được nội suy bậc hai dựa trên phương án L và hai phương án khác được chọn ngẫu nhiên trong mảng A. Nếu như X là phương án khả thi thì với f(X) ≤ f(M), M sẽ được thay thế bởi X trong mảng A; còn với f(X) > f(M), M sẽ được thay thế bởi X với xác suất p= exp(−β(f(X)−f(M))/(f(X)−f(L))), trong đó β > 0 là tham số được lựa chọn thích hợp. Nếu X không phải là phương án khả

thi, bỏ qua X và chọn hai phương án khác trong A một cách ngẫu nhiên rồi cùng với L tiếp tục sinh ra phương án mới. Quá trình cứ thế tiếp diễn như vậy cho tới khi tập hợp các phương án trong A sẽ có xu hướng co cụm lại xung quanh một phương án tối ưu toàn cục.

Ví dụ: Giải bài toán tối ưu phi tuyến hỗn hợp nguyên.

z = x10,6 + x20,6 + x30,4 + 2x4 + 5x5 − 4x3 – x6,→ Min với các ràng buộc: x2 − 3x1 − 3x4 = 0; x3 − 2x2 − 2x5 = 0; 4x4 – x6 = 0; x1 + 2x4 ≤ 4; x2 + x5 ≤ 4; x3 + x6 ≤ 6; x1 ≤ 3; x2 ≤ 4; x3 ≤ 4; x4 ≤ 1; x5 ≤ 2; x6 ≤ 6; x1, x2, x3, x4, x5, x6 ≥ 0; x4, x5, x6 là các biến nguyên.

Hướng dẫn sử dụng

Chương trình được gói gọn trong một file chạy duy nhất mang tên rst2anu1.0.exe. Khi bắt đầu khởi động chương trình, người dùng sẽđược hỏi mã đăng kí sử dụng chương trình. Mỗi người dùng sẽ được cấp một mã đăng kí và phải có mã đăng kí mới sử dụng

được chương trình, do đó chương trình không thể bị sao chép.

Sau khi nhập mã đăng kí, người dùng có thể nhập bài toán một cách dễ dàng (xem hình I.10) với:

− NX là số biến của bài toán.

− XINT xác định biến nguyên và biến không nguyên. Như trong hình trên, XINT = 0,0,0,1,1,1 cho biết ba biến đầu là biến liên tục, ba biến sau là biến nguyên. (adsbygoogle = window.adsbygoogle || []).push({});

Hình I.10. Màn hình giao din sau khi nhp xong d liu

− FX là xâu xác định hàm ràng buộc, được nhập theo cú pháp của EvaluateExpression. Các biến được viết bằng kí hiệu “X” có kèm theo chỉ số. Ví dụ, X1 là biến thứ nhất, X5 là biến thứ 5.

− Nếu bài toán tối ưu là bài toán tìm cực tiểu thì lựa chọn ô MIN và ngược lại chọn ô MAX với bài toán tìm cực đại.

− Feas xâu cho biết các hàm ràng buộc, được nhập cách nhau bởi dấu chấm phảy hoặc xuống dòng. Các xâu này cũng tuân theo cú pháp của EvaluateExpression.

− Rules là các xâu chỉ ra các luật. Ở đây, một luật có thể coi như là một lệnh gán giá trị của một biến bởi giá trị của một biểu thức các biến khác.

− MINX là mảng xác định cận dưới cho các biến, các giá trị viết cách nhau bởi dấu phẩy (,).

− MAXX là mảng xác định cận trên cho các biến, các giá trị viết cách nhau bởi dấu phảy (,).

− NA là kích thước của mảng A (có thể chọn tuỳ ý, tối thiểu là 2(n + 1) với n là số

biến của bài toán).

− MAX RANDOM là số lần cố gắng tối đa để tìm một phương án chấp nhận được bằng phương pháp ngẫu nhiên.

− ITERLAST, ISLAST, IFLAST là các giới hạn về số vòng lặp, số lần thất bại trong việc cải thiện giá trị hàm mục tiêu, số lần thất bại trong việc nội suy phương án mới chấp nhận được.

− Epsilon1, epsilon2 là các số dương đủ nhỏ nhằm xác định tiêu chuẩn co cụm của mảng A theo thuật giải.

− Beta là hằng số sử dụng trong công thức tính xác xuất thay thế một phương án tốt hơn trong mảng A bởi một phương án tồi hơn.

− Prob file và Res file là các tệp đầu vào và tệp kết quả. Có thể soạn sẵn tệp bài toán đầu vào rồi nạp bài toán. Cũng có thể lưu một bài toán đã nhập ra tệp.

Chạy chương trình

Sau khi nhập bài toán hay nạp bài toán từ tệp, có thể chạy chương trình bằng cách kích chuột vào nút RUN. Trong khi chạy chương trình, ô trạng thái ở phía trên nút RUN sẽ xuất hiện dòng chữ SEARCHING. Khi thuật giải chạy xong thì ô trạng thái sẽ trở về

READY cho biết đã sẵn sàng cho các bài toán tiếp theo. Mọi thông tin về phần mềm và cách sử dụng sẽđược biết nếu kích chuột vào nút ABOUT.

Sau khi chạy xong chương trình, kết quả chạy sẽđược xem trực tiếp khi kích chuột vào nút RESULTS và có thể lưu ra file văn bản, bao gồm phương án tối ưu, giá trị hàm mục tiêu, mảng A,… có cấu trúc như trên hình I.11.

Như vậy, bài toán đã được giải xong, với kết quả: x1 = 2/3, x2 = 2, x3 = 4, x4 = 0, x5 = 0, x6 = 0, và giá trị tối ưu của hàm mục tiêu là −11,95913.

Bài toán tối ưu thông số sàng phân loại

Chúng ta có thể sử dụng phần mềm RST2ANU để tìm nghiệm của hệ phương trình phi tuyến sau phát sinh trong việc tính toán một số thông số hình học và động học của cơ

cấu sàng phân loại dao động (cần chú ý rằng nhiều phương pháp tính toán thông dụng khác của giải tích sốđã tỏ ra không hiệu quả):

r cosϕ1 + lcosϕ2 + l’’3cosϕ3 + l4cosϕ4 – xC1 = 0; r sinϕ1 + lsinϕ2 + l’’3sinϕ3 + l4sinϕ4 – yC1 = 0;

r cosϕ1 + lcosϕ2 + l’3cos(ϕ3−α) + l5cosϕ5 – xD1 = 0; r sinϕ1 + lsinϕ2 + l’

3sin(ϕ3−α) + l5sinϕ5 – yD1 = 0;

Trong hệ phi tuyến trên các thông sốđã biết là: r = 0,05m; l = 0,30m; l’’3 = 0,15m; l’3 = 1,075m; l3 = 1,025m; l4 = 0,50m; l5 = 0,40m; xC1 = 0,365m; yC1 = 0,635m; xD1 = 1,365m; yD1 = 0,635m; α = π/8.

Để sử dụng phần mềm RST2ANU giải hệ phương trình phi tuyến cho ϕ1 = kπ/8 (k = 0, …, 9), trước hết chúng ta cần thiết lập hàm mục tiêu sau:

z = (rcosϕ1 + lcosϕ2 + l’’3cosϕ3 + l4cosϕ4 – xC1)2 + (rsinϕ1 + lsinϕ2 + l’’3 sinϕ3 + l4sinϕ4 – yC1)2 + (rcosϕ1 + lcosϕ2 + l’3cos(ϕ3 −α) + l5cosϕ5 – xD1)2 + (rsinϕ1 + lsinϕ2 + l4sinϕ4 – yC1)2 + (rcosϕ1 + lcosϕ2 + l’3cos(ϕ3 −α) + l5cosϕ5 – xD1)2 + (rsinϕ1 + lsinϕ2 + l’3sin(ϕ3 −α) + l5sinϕ5 – yD1)2→ Min.

Kết quảđược cho trong bảng I.3 với zmin = 0.

Bng I.3. Kết qu tính toán giá tr các thông s ca sàng phân loi (adsbygoogle = window.adsbygoogle || []).push({});

ϕ1 ∈[0,2π] ϕ2 ∈[0,π] ϕ3∈[0,π] ϕ4∈[0,π] ϕ5∈[0,π] 0 0,226128 0,551311 1,783873 1,666775 π/18 0,199269 0,550518 1,784628 1,670250 2π/18 0,170835 0,550590 1,782751 1,668853 3π/18 0,143343 0,550490 1,778826 1,663697 4π/18 0,112669 0,552073 1,770032 1,652171 5π/18 0,090986 0,551991 1,759350 1,639575 6π/18 0,066036 0,553576 1,745374 1,622823 7π/18 0,051284 0,554296 1,730174 1,602970 8π/18 0,039053 0,555262 1,713242 1,581813

Một phần của tài liệu Giáo trình toán ứng dụng (Trang 31 - 37)