Thực hiện giải thuật di truyền

Một phần của tài liệu Xây dựng phần mềm ứng dụng vào dự báo nhu cầu sử dụng điện trên địa bàn thị xã thủ dầu một (Trang 44 - 49)

2.2. GIẢI THUẬT DI TRUYỀN (GA: GENETIC ALGORITHMS) [2] [3] [4]

2.2.2. Thực hiện giải thuật di truyền

Là ánh xạ các tham số của bài toán lên một chuỗi có chiều dài xác định. Tuy theo từng bài toán cụ thể mà có những cách biểu diễn khác nhau sao cho phù hợp, thuận lợi khi giải toán. Trong đó có hai cách biểu diễn thông dụng nhât là biêu diễn nhị phân và biểu diễn sử dụng các hoán vị.

♦ Biểu diễn nhị phân

Mỗi cá thể tương ứng với một chuỗi bao gồm các bit 0 và 1, ý nghĩa của các bít này phụ thuộc vào từng tình huống cụ thể. Đây là cách biểu diễn đơn giàn nhất và là cách thông dụng nhất trong các cách biểu diễn.

♦ Biểu diễn sử dụng hoán vị

Mỗi cá thể tương ứng với một hoán vị của tập n ký hiệu nào đó. Chẳng hạn cách biểu diễn này đã được áp dụng cho bài toán người du lịch :

♦ Biếu diễn bằng giá trị

Biểu diễn giá trị trực tiếp có thể được dùng trong các bài toán có chứa những giá trị phức tạp như số thực. Nếu dùng biểu diễn nhị phân cho loại bài toán này thì rất phức tạp.

Những giá trị này có thể có dạng bất kỳ liên quan đến bài toán, từ sô nguyên, số thực, ký tự cho đến các đối tượng phức tạp hơn.

♦ Biểu diễn theo cây

Mã hóa theo cây được dùng chủ yếu cho các chương trình tiến hóa, cho lập trình gen.

Trong mã hóa theo cây mọi nhiễm sắc thể là một cây chứa các đối tượng chẳng hạn như hàm hoặc lệnh trong một ngôn ngữ lập trình nào đó. Mã hóa nhiễm sắc thể là các hàm được biểu diễn bằng cây.

2.2.2.2. Hàm mục tiêu (Fitness)

Một hàm mục tiêu sẽ lấy một chuỗi nhiễm sắc thể như là đầu vào và trả về giá trị tượng trưng cho chuỗi nhiễm sắc thể đó để đánh giá trên vấn đề cần giải quyết.

Giá trị hàm mục tiêu là Maximum hay Minimum tùy theo bài toán sẽ quyết định xác suất của mồi chuỗi có thể tham gia vào các toán tử di truyền.

2.2.2.3. Toán tử tái tạo (Reproduction)

Là một quá trình trong đó các chuỗi được lựa chọn tùy thuộc vào giá trị hàm mục tiêu. Hàm mục tiêu f(i) được gán cho mỗi cá thê trong một quân thê và những cá thể nào có giá trị hàm mục tiêu cao sẽ đại diện cho những cá thể tốt, thích nghi và sẽ có xác suất chọn lọc lớn.

♦ Chọn lọc dùng bánh xe Roulette

Đây là phương pháp chọn lọc đơn giản nhất, mỗi chuỗi (cá thể) trong quần thè chiếm một khe vòng tròn Roulette có độ rộng tỷ lệ với giá trị hàm mục tiêu. Mỗi lần quay vòng tròn Roulette nhận một chuỗi coi như là cách lựa chọn chuỗi cho tái tạo.

Các bước thực hiện:

Tính tổng giá trị mục tiêu của các cá thể trong một dân số và gán kết qua này vào biến Total fitness.

ở thế hệ thứ n, lấy một số ngẫu nhiên giữa 0 và Total fitness.

Trả về số cá thể đầu tiên của một dân số mới, dựa vào giá trị mục tiêu của nó.

Ví dụ: Giả sử ta có một dân số ban đầu với 6 chuỗi nhiễm sắc thể, tổng giá trị của hàm mục tiêu là 50 như thể hiện trong bảng 2.3

Bảng 2.3. Chọn lọc dùng bánh xe [19]

STT Chuỗi Hàm mục tiêu Tỷ lệ % Total

1 01110 10 20 8

2 11000 12 24 22

3 00100 5 10 27

4 10010 8 16 35

5 01100 9 18 44

6 00010 6 12 50

4 5

Bánh xe trọng số được thể hiện trong hình 2.6

Hình 2.6. Bánh xe Roulette [18]

Sau đó sẽ tạo các số ngẫu nhiên trong khoảng từ (0, 50) tương ứng vói việc quay vòng tròn bánh xe, đối với mỗi số kỹ thuật chọn lựa trên vòng tròn bánh xe sẽ được áp dụng để chọn một chuỗi nhiễm sắc thể đầu tiên với giá trị hàm mục tiêu lớn hon hay bằng số ngẫu nhiên. Sáu số ngẫu nhiên được tạo ra cùng vó'i các chuói được chọn thể hiện trong bảng 2.4 :

Bảng 2.4. Sự tương ứng các số ngẫu nhiên và chuỗi nhiễm sắc thế [18]

Giải thuật chọn lọc ngẫu nhiên cá thể theo phưong pháp chọn lọc đấu vòng.

ChonchameO {

Chọn ngẫu nhiên n phẩn tử

Chọn phần tử cha tối ưu lưu vào mảng cha mẹ Chọn ngẫu nhiên n phần tử

Chọn phần tử tồi ưu lưu vào mảng cha mẹ Chọn ngẫu nhiên n phần tử

Chọn phần tử tối ưu lưu vào mảng cha mẹ 4

6

}

♦ Chọn lọc lân cận địa phương

Lân cận địa phương là một vùng khép kín mà cá thể tương tác với các cá the khác nằm trong vùng đó. Theo phương pháp này, một nửa số cá thể đầu tiên được chọn bởi một phương pháp bất kỳ nào đó, chẳng hạn như phương pháp bánh xe Roulette. Sau đó với mỗi cá thể đã chọn, xác định một lân cận địa phương của nó và tìm cá thể để lai ghép với nó.

♦ Chọn lọc loại bỏ

Dùng một ngưỡng lựa chọn để xác định các cá thể được lựa chọn. Theo đó các cá thể có giá trị hàm mục tiêu nhỏ hơn ngưỡng thì sẽ bị loại bỏ, còn các cá thể có giá trị hàm mục tiêu lớn hơn ngưỡng thì được lựa chọn.

2.2.2.4. Toán tử lai ghép (Crossover)

♦ Toán tử lai ghép trong biểu diễn nhị phân

Lai ghép một điểm

Đây là cách lai ghép đơn giản nhất.

Đầu tiên, một vị trí ghép chéo được lựa chọn ngẫu nhiên (crossover site) trên hai chuỗi được chọn ra trong quá trình tải tạo, sau đó các chuỗi này được tiến hành ghép chéo tại vị trí này. Quá trình này sẽ tạo ra hai chuỗi mới, mỗi một chuỗi mới sẽ được lấy từ phần bên phải của chuỗi này ghép với phần bên trái chuỗi kia tính từ vị trí ghép chéo và tương tự cho chuỗi còn lại.

Lai ghép nhiều điểm'. Phương pháp thực hiện giống như lai ghép một điểm nhưng sẽ có nhiều điểm được chọn trong chuỗi cá thể để lai ghép.

♦ Toán tử lai ghép trong biểu diễn bằng hoán vị

Một điểm lai ghép được chọn, phần đầu của chuỗi con được tạo thành bằng cách lấy phần đầu của chuỗi cha mẹ thứ nhất (từ vị trí đầu đến vị trí chọn lai ghép) Phần còn

4 7

lại của chuỗi con được tạo thành bằng cách duyệt từ đẩu chuồi cha mẹ thứ hai và đưa vào chuỗi con những giá trị chưa có.

(1 2345678 9)+ (1 8625379 4) = (1 2345687 9) (2.3)

♦ Toán tử lai ghép trong biểu diễn theo cây.

Parent A Parent B Offspring

;//

X) i+) (A) (x: = x: .’A;

■ y} ® 2 ■:y :

Hình 2.8: Lai ghép biểu diễn theo cây ị 18]2

Lai giống theo cây trong cả hai bố mẹ điểm lai giống được chọn, các bố mẹ được chia theo điểm ấy và hoán đổi phần dưới điểm lai giống để tạo ra con mói.

Quá trình tái tạo và lai ghép làm tăng sức mạnh cho giải thuật di truyền bởi việc trực tiếp tìm kiếm những thông tin tốt hơn sử dụng thông tin tồn tại đã biêl

Giải thuật lai: Sử dụng chọn ngẫu nhiên một trong ba phương pháp lai: Lai một điểm, lai nhiều điểm, lai hoán vị.

LaighepOỈ

Chọn 2 phần tử trong mảng cha mẹ Chọn một so tự nhiên t ngẫu nhiên [1,3]

case t:

{

1=1 : Tiến hành Lai một điếm t=2 : Tiến hành Lai nhiều điếm t=3 : Tiến hành Lai hoán vị }

Trả về 2 phần tử con sau khỉ laỉ }

2.2.2.5. Toán tử đột biến (Mutation)

Mặc dùi tái tạo và ghép chéo sản sinh ra nhiều chuỗi mới nhung nó không C(' bàt kỳ một thông tin mới nào trong quần thẻ ở cấp độ bit. Với một chuồi các bit mới, ta áp dụng đột biến với một xác suất thấp Pm, nó có tác dụng chuyển 1 bit từ 0 thành 1 hay

4 8

ngược lại với bit này được chọn lựa một cách ngẫu nhiên.

• Biểu diễn nhị phân'. Chọn một số bit rồi đảo giá trị các bit đó.

• Biểu diễn bằng hoán vị: Chọn hai vị trí bất kỳ rồi hoán đổi giá trị của chúng

cho nhau: (1 2345678 9) =>(1 2845673 9) (2.4)

• Biểu diễn bằng giá trị: Chọn một vài giá trị rồi thêm hoặc bớt một giá trị nhỏ:

(3.49; 7.63; 3.55; 7.24; 4.83) => (3.49; 7.63; 3.61; 7.18; 4.83) (2.5)

• Biêu diễn theo cây. Chọn một vài nút trong cây rồi thay đối giá trị của nút đó.

Ba toán hạng tái tạo, ghép chéo, đột biến được áp dụng lập đi lập lại để tạo ra những chuỗi nhiễm sắc thể mói, cho đến khi vượt quá kích thước quần thế chọn ban đầu thì dừng lại. Quá trình sẽ tiếp tục cho đến khi cá thể tối ưu được tạo ra hay điêu kiện dừng của bài toán được thoả mãn.

Giải thuật đột biến:

Dotbien(){

Chọn 1 phần tử trong mảng con

Chọn một sổ tự nhiên t ngâu nhiên [1,2]

case t:

{ t=l: Tiến hành Đột biến nhị phân t=2: Tiến hành Đột biến hoán vị }

}

Một phần của tài liệu Xây dựng phần mềm ứng dụng vào dự báo nhu cầu sử dụng điện trên địa bàn thị xã thủ dầu một (Trang 44 - 49)

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

(83 trang)
w