Khởi tạo quần thể

Một phần của tài liệu (LUẬN văn THẠC sĩ) 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 34)

CHƢƠNG II : CƠ SỞ L THU ẾT THUẬT TOÁN DI TRU ỀN GA

2.2. Các kỹ thuật trong giải thuật di truyền GA [32]

2.2.2. Khởi tạo quần thể

Khi chọn được cách mã hoá phù hợp, người ta tiến hành mã hoá các biến đầu vào thành các cá thể (nhiễm sắc thể), tập hợp các nhiễm sắc thể này sẽ tạo thành một quần thể. Việc khởi tạo có thể bắt đầu với một quần thể bao gồm các cá thể được tạo ra ngẫu nhiên hoặc sử dụng từ:

- Một quần thể cũ được lưu lại từ trước;

- Một tập các lời giải cung cấp bởi các chuyên gia;

- Một tập các lời giải cung cấp bởi các thuật tốn tìm kiếm khác, đây là phương pháp khởi tạo quần thể ban đầu mà Luận văn sử dụng.

2.2.3. Hàm mục tiêu

Sau khi khởi tạo quần thể hoặc ở thời điểm các thế hệ mới được tạo thành, chúng ta phải sử dụng hàm mục tiêu để đánh giá độ thích nghi của mỗi nhiễm sắc thể nhằm có cơ sở cho việc lựa chọn bố mẹ cho các phép lai tạo và đột biến. Như vậy, mục đích của hàm mục tiêu là:

- Lựa chọn cá thể cha mẹ phù hợp; - Kiểm tra sự hội tụ của giải thuật; - Chọn các cá thể bị loại bỏ;

Để đảm bảo sự phân bố hợp lý của các quần thể, thuận tiện cho giải thuật tìm kiếm người ta sử dụng các phương pháp xác định độ thích nghi như sau:

- Fitness scaling – Xác định theo tỷ lệ thích nghi;

- Fitness windowing – Xác định theo phương pháp cửa sổ thích nghi; - Fitness ranking – xác định theo thứ hạng thích nghi.

2.2.4. Phép chọn lọc

Ở mỗi một thế hệ, dựa trên giá trị của hàm mục tiêu, các cá thể có độ thích nghi tốt sẽ được chọn lọc để tạo thành quần thể ở thế hệ mới và được chuẩn bị cho việc thực hiện các phép tốn lai tạo và đột biến sau này. Mục đích của phép chọn lọc là tập trung sự tìm kiếm trên miền “hứa hẹn”. Phép chọn lọc bắt nguồn từ học thuyết của Darwin về “Sự sống sót của các cá thể thích nghi nhất ” Một số phép chọn lọc thường được sử dụng bao gồm:

- Roulette wheel Selection - Chọn lọc ngầu nhiên theo bánh xe Roulette, - Fitness Proportionate Selection- Chọn lọc theo tỷ lệ thích nghi;

- Linear Ranking Selection- Chọn lọc theo thứ hạng tuyến tính; - Local Tournament Selection- Chọn lọc theo cạnh tranh cục bộ.

2.2.5. Phép lai ghép

Trong giải thuật di truyền, số lượng các thể trong quần thể ở mỗi thế hệ là không đổi. Phép chọn lọc đã chọn ra một số cá thể có độ thích nghi cao và loại bỏ đi một số cá thể thích nghi thấp. Sự thiếu hụt của số lượng quần thể khi mất đi các cá thể thích nghi thấp sẽ được bổ xung bằng việc lấy các cá thể có độ thích nghi cao là thế hệ cha mẹ, tạo ra các thế hệ con cái bằng phép lai ghép và đột biến trên các cá thể thích nghi cao này. Kết quả là thế hệ mới được hình thành giữ nguyên về số lượng bao gồm các cá thể thích nghi cao và con cái của chúng qua các phép lai ghép và đột biến.

Phép lai ghép là tạo ra các nhiễm sắc thể con cái (offspring) từ các nhiễm sắc

- Lai ghép một vị trí: Lựa chọn một cặp nhiễm sắc thể cha mẹ. Chọn ngẫu nhiên một vị trí trên chuỗi nhiễm sắc thể và tiến hành ghép phần đầu của nhiễm sắc thể này với phần đuôi của nhiễm sắc thể kia và ngược lại .

Vị trí lai ghép

Cha 1 4 3 9 7 1 2 5 6 8 Con 1 3 8 6 9 4 5 2 1 7

Cha 2 3 8 6 9 4 5 2 1 7 Con 2 4 3 9 7 1 5 2 1 7

Lai ghép cho chu i số nguyên hoán vị

Vị trí lai ghép

Cha 1 0 0 1 0 0 1 0 0 1 Con 1 1 0 0 1 0 0 0 0 1

Cha 2 1 0 0 1 0 0 1 0 0 Con 2 0 0 1 0 0 1 1 0 0

Lai ghép cho chu i nhị phân

- Lai ghép hai vị trí: Chọn ngẫu nhiên hai vị trí trên chuỗi nhiễm sắc thể cha

thứ I sau đó thay thế các gen nằm giữa hai vị trí này bằng các gen tương ứng của cá thể cha thứ II để tạo thành cá thể con.

Vị trí lai ghép

Cha 1

Con

Cha 2

- Lai ghép ngẫu nhiên : Số lượng và vị trí lai ghép được chọn ngẫu nhiên - Lai ghép theo thuật toán: tạo ra các nhiễm sắc thể con cái từ nhiễm sắc thể bố mẹ dựa trên một thuật toán xác định.

7 8 9 3 4 6 2 5 1

7 8 3 9 4 6 2 5 1

2.2.6. Phép đột biến

Đột biến là thay đổi các bit trên chuỗi nhiễm sắc thể một cách ngẫu nhiên để tạo tính đa dạng. Phép đột biến được điều khiển bởi xác xuất đột biến, Pm. Nếu không đột biến, giải thuật chỉ tìm kiếm tại khơng gian khởi tạo.Tuy nhiên, nếu Pm quá lớn, quá trình tìm kiếm trở thành tìm kiếm ngẫu nhiên. Ta xét một số phép đột biến sau:

a. Tạo đột biến hai gen gần nhau:

Hai cá thể gần nhau thì hốn vị cho nhau để tạo sự biến đổi hay đột biến:

* * Đột biến

4 3 9 7 1 2 5 6 8 4 9 3 7 1 2 5 6 8

b. Tạo đột biến hai gen cách xa nhau

Hai cá thể cách xa nhau thì được hốn vị cho nhau để tạo sự biến đổi:

* * Đột biến

4 3 9 7 1 2 5 6 8 4 5 9 7 1 2 3 6 8

c. Tạo đột biến ba gen cách xa nhau

Ba cá thể cách xa nhau sẽ hoán vị cho nhau để tạo nên sự biến đổi – trong cách đột biến này thì có nhiều cá thể mới tạo thành một cách ngẫu nhiên:

* * * Đột biến 7 8 9 3 4 6 5 2 1 7 5 9 3 8 6 4 2 1 7 4 9 3 5 6 8 2 1 7 5 9 3 4 6 8 2 1 7 8 9 3 5 6 4 2 1 7 4 9 3 8 6 5 2 1

d. Tạo đột biến bằng cách dịch chuyển

Chọn ngẫu nhiên hai cá thể ,sau đó ch n một gen vào vị trí của gen cịn lại để tạo sự biến đổi:

* * Đột biến

7 8 9 3 4 6 5 2 1 7 5 8 9 3 4 6 2 1

7 9 3 4 6 5 8 2 1

e. Tạo đột biến bằng cách đảo ngược chu i con

Chọn ngẫu nhiên một dãy con gồm các gen của một cá thể cha thông qua việc chọn hai gen tùy ý cách xa nhau. Sau đó đảo ngược dãy gồm các gen này để tạo sự đột biến:

* * Đột biến

7 8 9 3 4 6 5 2 1 7 5 6 4 3 9 8 2 1

Trên đây là một số kỹ thuật được sử dụng trong giải thuật di truyền. Trong đó, việc xác định kích thước quần thể ban đầu, xác xuất lai ghép, xác xuất đột biến là rất quan trọng, ảnh hưởng nhiều đến kết quả của giải thuật. Việc xác định các thông số này tùy theo từng đặc điểm của mỗi bài toán cụ thể.

2.3. Tổng quan về Matlab

2.3.1. Khái niệm về Matlab

Matlab là một ngơn ngữ lập trình thực hành bậc cao được sử dụng để giải các bài tốn về kỹ thuật. Matlab tích hợp được việc tính tốn, thể hiện kết quả, cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng. Dữ liệu cùng với thư viện được lập trình sẵn cho phép người sử dụng có thể có được những ứng dụng sau đây.

• Sử dụng các hàm có sẵn trong thư viện, các phép tính tốn học thơng thường • Cho phép lập trình tạo ra những ứng dụng mới.

• Cho phép mơ phỏng các mơ hình thực tế. • Phân tích, khảo sát và hiển thị dữ liệu. • Với phần mềm đồ hoạ cực mạnh

2.3.2. Tổng quan về cấu trúc dữ liệu của MATLAB, các ứng dụng

Matlab là một hệ thống tương giao, các phần tử dữ liệu là một mảng( mảng này khơng địi hỏi về kích thước). Chúng cho phép giải quyết các vấn đề liên quan đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay véc tơ và có thể sử dụng ngơn ngữ C hoặc Fortran lập trình rồi thực hiện ứng dụng lập trình đó bằng các câu lệnh gọi từ MATLAB. MATLAB được viết tắt từ chữ matrix laboratory tức là thư viện về ma trận, từ đó phần mềm MATLAB được viết nhằm cung cấp cho việc truy cập vào phần mềm ma trận một cách dễ dàng, phần mềm ma trận này được phát triển bởi các cơng trình Linpack và Eispack. Ngày nay MATLAB được phát triển bởi Lapack và Artpack tạo nên một nghệ thuật phần mềm cho ma trận.

2.4. Thuật toán di truyền GA trong Matlab

Có hai cách có thể sử dụng thuật tốn di truyền trong Matlab:

- Gọi các chức năng giải thuật toán 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 thuật tốn 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. Luận văn đã lựa chọn cơng cụ này để giải bài tốn tối ưu hóa vận hành liên hồ chứa sông Ba mùa lũ.

2.4.1.Giải thuật di truyền bằng command line

Gọi thuật toán 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] = ga(...)

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

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

Ở đây tác giả chỉ mô tả cấu trúc của 2 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 dài vectơ 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 của hàm mục tiêu - x: Điểm mà hàm mục tiêu đạt fval.

2.4.2. Giải thuật di truyền sử dụng Genetic Algorithm Tool

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 tố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 tố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 ngồi phạm 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 các thuật tốn tối ưu hóa chun ngành.

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 tố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-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 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

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ị ra.

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

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 đôi. Đâ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 tố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 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à 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 bạn đ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 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 đầu.

- 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 tố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 tố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ị

- Ngồ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 tốn có sử dụng GA khơng q phức tạp thì các chỉ số này thường để ở giá trị mặc định.

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 TỐN DI TRU ỀN TRONG MƠI TRƢỜNG MATLAB

Để sử dụng thuật toán di truyền giải bài tố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 tốn và tăng tính hiệu quả của bài tốn tối ưu hóa. Cuối cùng, sử dụng HEC-RESSIM để kiểm định kết quả chạy ra từ Genetic Algorithm Tool.

3.1. Quy trình cắt lũ.

Với mục tiêu là phịng, chống và giảm đến mức thấp nhất các thiệt hại của lũ lụt, ngập úng khu vực trung và hạ lưu sông Ba, tập trung chủ yếu cho vùng đồng bằng hạ lưu ven biển Tuy Hoà và thành phố Tuy Hoà, nhằm ổn định dân cư, đảm bảo sản xuất tạo đà phát triển kinh tế xã hội bền vững và an ninh quốc phòng. Tác giả sử dụng trận lũ năm 2009 để mô phỏng các phương án vận hành liên hồ chứa sông Ba.

Vận hành liên hồ chứa thủy điện có hai giai đoạn quan trọng:

- Giai đoạn xả nước đón lũ: Trước mỗi con lũ phải xả một lượng nước nhất

Một phần của tài liệu (LUẬN văn THẠC sĩ) 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 34)

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

(90 trang)