Giải thuật di truyền sử dụng GeneticAlgorithm Tool

Một phần của tài liệu Nghiên cứu ứng dụng công nghệ gen vận hành liên hồ chứa sông ba mùa lũ (Trang 37)

GA và Direct search Toolbox là một tập hợp các hàm, chính là chức năng mở rộng của Optimization Toolbox (công cụ tối ưu hóa) trong môi trường tính toán số Matlab. GA và Direct search Toolbox (thuật toán di truyền và hộp công cụ tìm kiếm trực tiếp) bao gồm các thủ tục để giải bài toán tối ưu hóa có sử dụng:

- GA;

- Direct search.

Các thuật toán này cho phép giải quyết một loạt các vấn đề tối ưu hóa nằm ngoài phạm vi tiêu chuẩn của Toolbox tối ưu hóạ Công cụ chủ yếu là Matlab M-file, tạo ra các báo cáo MATLAB thực hiện các thuật toán tối ưu hóa chuyên ngành.

41

Hình 2. 2 Giao diện Genetic Algorithm Tool trong Matlab

Để sử dụng khả năng của GA và Direct search Toolbox, hàm mục tiêu và các điều kiện phải được khai báo dưới dạng hàm function viết thành M-file riêng để tính toán hàm mà mình muốn tối ưu hóa hoặc kết hợp với các Toolbox khác.

Fitness function: Hàm mục tiêu mà bạn muốn tìm giá trị nhỏ nhất, có thể viết trực tiếp vào Genetic Algorithm Tool hoặc lập bằng M-filẹ Cửa sổ M-file là một cửa sổ dùng để soạn thảo chương trình ứng dụng, để thực thi chương trình viết trong M-file bằng cách gõ tên của file chứa chương trình đó trong cửa sổ Command window. Khi

42

một chương trình được viết trong M-file, thì tuỳ theo ứng dụng cụ thể, tuỳ theo người lập trình mà chương trình có thể viết dưới dạng sau:

+ Dạng Script file: Tức là chương trình gồm tập hợp các câu lệnh viết dưới dạng liệt kê, không có biến dữ liệu vào và biến lấy giá trị rạ

+ Dạng hàm function có biến dữ liệu vào và biến rạ

Number of variables: Số lượng các biến trong Fitness function.

Khởi tạo quần thể ban đầu

Khởi tạo quần thể ban đầu gồm các chuỗi nhiễm sắc thể, được quy định bởi các chỉ số:

- Population type: Chỉ định loại dữ liệu đầu vào của hàm mục tiêu, bạn có thể nhập Population type theo các loại sau:

+ Double Vector ('doubleVector') – Sử dụng tùy chọn này nếu mỗi cá thể trong quần thể là là loại nhân đôị Đây là mặc định.

+ Bit string ('bitstring') -- Sử dụng tùy chọn này nếu cá thể trong quần thể là là loại bit.

+ Custom ('custom') -- Sử dụng tùy chọn này tạo ra quần thể thuộc loại được tạo ra bởi Creation function

- Population size: Kích thước quần thể. Nếu là một vector, các thuật toán di truyền tạo ra nhiều nhóm quần thể, số lượng quần thể là độ dài của vector. Kích thước của mỗi quần thể là các mục tương ứng của vector. Kích thước quần thể tốt nhất thường khoảng 20-200 cá thể.

- Creation function: Chỉ rõ hàm tạo ra quần thể ban đầu cho GẠ Có các tùy chọn sau:

+ Uniform: Tạo ra một quần thể ban đầu ngẫu nhiên với một phân bố đềụ Đây là mặc định.

+ Custom: Cho phép viết ra hàm của riêng người sử dụng, hàm này tạo ra các dữ liệu thuộc loại đã chỉ định trong Population type của các loại được chỉ định trong

43

loại hình quần thể. Chỉ định dùng Creation function nếu bạn đang sử dụng Genetic Algorithm Tool.

- Initial population: Chỉ định một quần thể ban đầu cho GẠ Mặc định là [], trong trường hợp này GA sử dụng Creation function để tạo ra quần thể ban đầu (Initial population). Nếu bạn nhập quần thể ban đầu là một mảng thì mảng này phải có số hàng = kích thước quần thể, cột = số biến, trong trường hợp này GA không gọi Creation function.

- Initial scores: Chỉ định dung lượng cho quần thể ban đầụ

- Initial range: Chỉ định phạm vi của vecto quần thể ban đầu được tạo ra từ Creation function. Nếu bạn nhập Initial range là một ma trận có 2 hàng và số cột = số biến. Mỗi cột có dạng là [a1;b1] ở đây a1 là biên dưới của biến (véc tơ), b1 là biên trên của biến ([a1;b1] là miền xác định của biến 1). Nếu bạn chỉ định Initial range là một vecto hàng có chiều dài biến không đổi (các biến có miền xác định là giống nhau bằng vecto).

Điều kiện dừng GA (Stopping criteria)

Các tiêu chí để dừng thuật toán:

- Generations: Chỉ định số lần lặp (số lượng thế hệ) của thuật toán di truyền, thuật toán sẽ dừng lại khi đạt đến số lượng thế hệ chỉ định;

- Time limit: Giới hạn thời gian chạy thuật toán di truyền;

- Fitness limit: Thuật toán dừng lại nếu giá trị hàm mục tiêu là tốt nhất, nhỏ hơn hoặc bằng giá trị thích nghi giới hạn;

- Stall generations: Thuật toán dừng lại nếu không có sự cải thiện mức độ thích của các giá trị qua số thế hệ được chỉ định bởi Stall generations;

- Stall time: Thuật toán dừng lại nếu không có sự cải thiện trong các giá trị thích nghi tốt nhất trong khoảng thời gian quy định bởi Stall timẹ

44

- Ngoài ra Genetic Algorithm Tool còn một số chỉ số khác như Fitness scalling, Selection, Mutation, Crossover, … Tuy nhiên đối với bài toán có sử dụng GA không quá phức tạp thì các chỉ số này thường để ở giá trị mặc định.

45

CHƢƠNG III: T I ƢU H A VẬN HÀNH LIÊN HỒ CHỨA SÔNG BA MÙA LŨ BẰNG THUẬT TOÁN DI TRU ỀN TRONG MÔI TRƢỜNG MATLAB

Để sử dụng thuật toán di truyền giải bài toán tối ưu hóa vận hành liên hồ chứa sông Ba mùa lũ, tác giả đã sử dụng mô hình HEC-RESSIM để mô phỏng, thiết lập rất nhiều phương án vận hành liên hồ chứa sông Ba mùa lũ để xác định đầu vào cho Genetic Algorithm Tool, cụ thể là xác định Initial population (quần thể ban đầu). Việc thiết lập quần thể ban đầu cho GA bằng HEC-RESSIM nhằm tạo ra quần thể ban đầu gần với nghiệm, giúp GA nhanh hội tụ, rút ngắn thời gian chạy thuật toán và tăng tính hiệu quả của bài toán tối ưu hóạ Cuối cùng, sử dụng HEC-RESSIM để kiểm định kết quả chạy ra từ Genetic Algorithm Tool.

Một phần của tài liệu Nghiên cứu ứng dụng công nghệ gen vận hành liên hồ chứa sông ba mùa lũ (Trang 37)

Tải bản đầy đủ (PDF)

(87 trang)