Giải bài toán tối ưu bằng thuật giải di truyền

Một phần của tài liệu Nghiên cứu vấn đề cấp phát mảnh trên các vị trí trong cơ sở dữ liệu phân tán (Trang 25 - 28)

MỘT SỐ THUẬT TOÁN TỐI ƯU

2.1.4 Giải bài toán tối ưu bằng thuật giải di truyền

Để giải quyết một bài toán theo thuật giải di truyền chúng ta cần thực hiện các công việc sau:

(a)Xem đối tượng cần tìm của bài toán như là 1 cá thể. Mô tả lớp đối tượng cần tìm theo một cấu trúc dữ liệu, biểu diễn không gian tìm kiếm của bài toán. (b)Xây dựng phương pháp khởi tạo quần thể ban đầu.

(c)Định nghĩa hàm thích nghi, xác định độ thích nghi của các cá thể trong quần thể.

(d)Xác định các phương thức tiến hóa của thuật giải di truyền như lai ghép, đột biến, tái sinh và chọn lọc.

(e)Xác định các tham số cần thiết cho thuật giải như kích thước quần thể, xác

suất lai, xác suất đột biến, số thế hệ tiến hóa, ... (f) Xây dựng thuật giải

Bước 1: Khởi tạo quần thể ban đầu.

Bước 2: Xác định độ thích nghi của các cá thể

Bước 3: Thực hiện các phương thức lai ghép, đột biến, tái sinh và chọn lọc để sinh ra quần thể mới.

Bước 4: Tính độ thích nghi của các cá thể mới, loại bỏ đi các cá thể kém nhất, giữ lại một số nhất định các cá thể tốt.

Bước 5: Nếu chưa tìm được cá thể tốt (lời giải tối ưu) hay chưa hết số thế hệ tiến hoá (thời gian ấn định), quay lại bước 3.

Bước 6: Tìm được lời giải tối ưu hay thời gian cho phép đã hết thì kết thúc thuật giải và báo cáo kết quả tìm được.

2.2 GIẢI BÀI TOÁN TỐI ƯU THEO MÔ HÌNH QUI HOẠCH TUYẾN TÍNH

(Linear Programming Model – LP Model) 2.2.1 Bài toán qui hoạch tuyến tính

Bài toán tìm quyết định tối ưu với mô hình toán học đã được xây dựng gọi là

bài toán qui hoạch toán học hay bài toán tối ưu. Sự liên quan giữa các đối tượng đã

được khảo sát trong quá trình xây dựng mô hình toán học thường được thể hiện

(hay ràng buộc) không thể bỏ qua. Nếu tất cả các hàm có mặt trong bài toán ấy là các hàm tuyến tính thì ta có bài toán quy hoạch tuyến tính.

2.2.1.1 Định nghĩa qui hoạch tuyến tính

Qui hoạch tuyến tính (Linear Programming) hoặc Tối ưu hóa tuyến tính (Linear Optimization) là một phương pháp toán học dùng để tối ưu hóa một hàm mục tiêu tuyến tính trong một mô hình toán học với một số ràng buộc được biểu diễn như là các mối quan hệ tuyến tính.

Mô hình toán học là mô hình có dạng :

Maximize cTx Subject to Ax  b

and x0

Trong đóx là vector của các biến quyết định cần tìm; c, b là vectơhệ số và A

là ma trận các hệ số cho trước. (cTlà ký hiệu ma trận chuyển vị của ma trận c)

Các biểu diễn maximize cTx hoặc minimize cTx được gọi là hàm mục tiêu.

Các biểu diễn subject to Ax b được gọi là các ràng buộc.

Những bài toán qui hoạch tuyến tính mà biến quyết định nhận giá trị nguyên gọi là qui hoạch tuyến tính nguyên (Integer Linear Programming, ILP)

2.2.1.2 Các phương pháp giải bài toán qui hoạch tuyến tính

Để giải bài toán qui hoạch tuyến tính, người ta có thể sử dụng các phương

pháp sau:

(a)Phương pháp đồ thị

- Biểu diễn các ràng buộc lên đồ thị Oxy

- Xác định phần giới hạn bởi các ràng buộc là tập các phương án. - Xác định các điểm cực biên của tập các phương án thỏa mãn các ràng

buộc.

- Xác định giá trị của f(x) tại các điểm cực biên. - Suy ra phương án tối ưu.

(b) Phương pháp đơn hình

Phương pháp đơn hình được Dantzig đưa ra năm 1947 cùng lúc với việc ông khai sinh ra qui hoạch tuyến tính. Đây là một phương pháp thực sự có hiệu quả để giải những bài toán qui hoạch tuyến tính cở lớn trong thực tế. Với cách nhìn hiện đại ý tưởng của phương pháp đơn hình rất đơn giản.

Xuất pháttừmột phươngán cựcbiênx0. Kiểmtra xemx0 cólàphương ántối

ưu hay chưa. Nếu x0 chưaphảilàphương án tối ưuthì tìm cáchcảitiến nóđể được

phương pháp khác x1 tốt hơn x0, tứclà f(x1) < f(x0).Quá trình này lặp lại nhiều lần. số phương án cực biênlà hữu hạn nênsau một số hữu hạn lần lặp tasẽ tìm thấyphươngán cựcbiêntốiưu.

Phương pháp đơn hình được cài đặt thành công và có ứng dụng rộng rãi trên nhiều bài toán qui hoạch tuyến tính lớn với hàng nghìn biến và ràng buộc.

Ngày nay, đã có nhiều công cụ phần mềm hỗ trợ giải các bài toán qui hoạch tuyến tính như Excel, Spreadsheet, WinQSB, Gurubi, COIN, ILOG, ...

Một phần của tài liệu Nghiên cứu vấn đề cấp phát mảnh trên các vị trí trong cơ sở dữ liệu phân tán (Trang 25 - 28)