TÌM HIỂU GIẢI THUẬT DI TRUYỀN (GA) VÀ CÔNG CỤ GA TRONG PHẦN MỀM MATLAB

Một phần của tài liệu Mô phỏng hệ thống kích từ unitrol 6800 điều khiển máy phát tại nhà máy thủy điện hàm thuận (Trang 45 - 48)

CHƯƠNG 3. TỐI ƯU BỘ ĐIỀU KHIỂN KÍCH TỪ UNITROL_6800 ĐIỀU KHIỂN MÁY PHÁT HÀM THUẬN BẰNG GIẢI THUẬT DI TRUYỀN VÀ MÔ PHỎNG ĐÁNH GIÁ KẾT QUẢ

3.1. TÌM HIỂU GIẢI THUẬT DI TRUYỀN (GA) VÀ CÔNG CỤ GA TRONG PHẦN MỀM MATLAB

3.1.1. Giới thiệu giải thuật di truyền (GA)

Trong quá trình phát triển của loài người, con người luôn không ngừng cố gắng tìm cách điều khiển và cải tạo thiên nhiên phục vụ cho cuộc sống của mình. Điều này được thể hiện qua việc loài người không ngừng tìm kiếm phát minh ra các loại máy móc thay thế cho lao động. Quá trình này có thể chia làm hai giai đoạn. Đầu tiên là giai đoạn sử dụng các công cụ tính toán và Logic truyền thống đưa vào máy móc tính chính xác và nhanh chóng trong quá trình thi hành. Ở giai đoạn thiếp theo, với mong muốn thêm vào đó tính thông minh và khả năng quyết định mềm dẻo trong các bài toán học từ mẫu dữ liệu ít ỏi cho trước, người ta sử dụng công cụ tính toán mềm gồm 4 nội dung chính là: Fuzzy logic (FL), Neutral Network (NN), Genetic Algorithm (GA), Support Vector Machines (SVM). Trong đó giải thuật di truyền có thể sử dụng độc lập hoặc là công cụ trợ giúp cho các lĩnh vực khác nhau của tính toán mềm nhờ ưu điểm trong tìm kiếm toàn cục. Giải thuật di truyền có xuất xứ từ học thuyết của Drawin về

“nguồn gốc của các giống loài”.

- Các giống loài đều có xu hướng gia tăng và mở rộng về số lượng.

- Con cái thường đại diện cho cha mẹ nhưng không hoàn toàn giống cha mẹ.

- Sự thay đổi nhỏ của con cái ảnh hưởng lớn đến cơ hội sống sót.

- Các cá thể thích nghi hơn với môi trường mới có khả năng sống sót cao hơn (chọn lọc tự nhiên).

Việc sử dụng giải thuật di truyền có một số ưu điểm chính:

- Sử dụng cơ chế song song ẩn: Sử dụng nhiều cá thể đồng thời tiến hóa nên tránh khỏi cực trị địa phương.

- Dễ dàng thực hiện. Để giải quyết vấn đề mới chỉ cần thêm các nhiễm sắc thể mới và hàm thích nghi mới. Các phép toán di truyền vẫn giữ nguyên.

Tuy nhiên, giải thuật di truyền cũng gặp một số khó khăn nhất định như:

- Khó khăn trong việc chọn và thực hiện cách mã hóa nhiễm sắc thể và biểu diễn hàm thích nghi.

- Thời gian tính toán lâu hơn so với các thuật toán khác. Để khắc phục nhược điểm này ngày nay các nhà khoa học đã kết hợp thuật toán với công cụ trợ giúp khác làm thuật toán nhanh hội tụ.

3.1.2. Ứng dụng giải thuật di truyền (GA) trong Matlab Có hai cách có thể sử dụng giải thuật di truyền trong Matlab:

- Gọi các chức năng giải thuật di truyền từ Command line (dòng lệnh).

- Sử dụng Genetic Algorithm Tool (hộp công cụ): Một giao diện ứng dựng đồ họa làm công cụ cho giải thuật di truyền, cho phép giải trực tiếp mà không cần phải viết dòng lệnh.

3.1.2.1. Giải thuật di truyền dùng dòng lệnh Command Line

Gọi giải thuật di truyền với các cấu trúc dưới đây sử dụng Command Line:

x = ga(fitnessfun, nvars)

x = ga(fitnessfun, nvars, options) x = ga(problem)

[x, fval] = ga(…)

[x, fval, reason, output] = ga(…)

[x, fval, reason, output, population] = ga(…)

[x, fval, reason, output, population, scores] = ga(…) Ở đây cấu trúc của hai hàm thông dụng nhất:

+ x = ga(fitnessfun, nvars)

Sử dụng GA giải bài toán tối ưu hóa, “fitnessfun” là hàm mục tiêu tiến tới Min,

nvars” là chiều vector x.

+ x = ga(fitnessfun, nvars, options)

Cấu trúc này có thêm yếu tố “options”: Là tham số của hàm mục tiêu.

Kết quả được cho bởi:

+ fval: giá trị của hàm mục tiêu.

+ x: Điểm mà hàm mục tiêu đạt fval.

3.1.2.2. Giải thuật di truyền dùng công cụ Genetic Algorithm Tool

Giải thuật di truyền (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ố của Matlab. Giải thuật di truyền (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 tối ưu.

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 pham vi tiêu chuẩn của Toolbox tối ưu hóa. Công cụ chủ yếu là Matlab M – File, tạo ra các báo cáo Matlab thực hiện thuật toán tối ưu hóa.

Các cấu hình chính của Genetic Algorithm Toolbox:

- 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 bằng M – File. 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 M – File bằng cách gõ tên của file chứa các chương trình đó trong cửa sổ Command window. Khi một chương trình được viết trong M – File, thì tùy theo ứng dụng cụ thể, tùy theo người lập trình chương trình.

- 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, các loại Population type như sau:

“Double vector”: Sử dụng tùy chọn này nếu mỗi cá thể trong quần thể là loại nhân đôi. Đây là mặc định.

“Bit string”: Sử dụng tùy chọn này nếu mỗi các thể trong quần thể là loại Bit.

“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 véc tơ, 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 véc tơ. Kích thước của mỗi quần thể là các mục tương ứng củ véc tơ. Kích thước quần thể tốt nhất thường khoảng 20 ÷ 200 các thể.

+ Creation function: Chỉ rõ hàm tạo ra quần thể ban đầu cho GA. 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ố đều. Đây là tùy chọn 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 loại hình quần thể. Chỉ định dùng “Creation function” nếu đang sử dụng Genetic Algorithm Tool.

“Initial population”: Chỉ định một quần thể ban đầu cho GA. Mặc định là [], trong trường hợp này GA sử dụng “Creation function” để tạo quần thể ban đầu “Initial population”. Nếu 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 đầu.

“Initial range”: Chỉ định phạm vi của vector quần thể ban đầu được tạo ra từ

Creation function”. Nếu nhập “Initial range” là một ma trận có hai hàng và số cột = số biến. Mỗi cột có dạng [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 chỉ định “Initial range” là một véc tơ 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 véc tơ).

- Đ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 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 generatons: Thuật toán dừng lại nếu không có sự cải thiện mức độ thích nghi 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 time”.

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

Một phần của tài liệu Mô phỏng hệ thống kích từ unitrol 6800 điều khiển máy phát tại nhà máy thủy điện hàm thuận (Trang 45 - 48)

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

(103 trang)