Sơ đồ hoạt động của thuật toán di truyền

Một phần của tài liệu Giải thuật di truyền giải bài toán phủ đỉnh nhỏ nhất (Trang 20 - 23)

Bước 1: Xây dựng quần thể xuất phát. Ta chọn ngẫu nhiên n cá thể biểu diễn n lời giải khác nhau của bài toán để đưa vào quần thể ban đầu. Tuy nhiên, để nâng cao hiệu quả hoạt động của thuật toán di truyền, ta nên đưa một số lời giải của một số phương pháp đã biết vào quần thể ban đầu để làm “hạt giống”, số còn lại có thể chọn ngẫu nhiên.

Bước 2: Đánh giá độ thích nghi của quần thể mới tạo ra bằng hàm đánh giá với đối số là kiểu gen của các cá thể đã được xây dựng từ trước để đánh giá độ thích nghi của từng cá thể trong quần thể.

Bước 3: Sinh quần thể mới

[3a]. Chọn lọc. Lựa chọn ngẫu nhiên 2 cá thể từ quần thể để lai ghép ở bước sau, việc lựa chọn phải thỏa mãn điều kiện xác suất được chọn của một cá thể tỉ lệ với độ thích nghi của cá thể đó

[3b]. Lai ghép. Sau khi chọn được 2 cá thể, dựa vào xác suất xảy ra lai ghép pc

mà ta quyết định có tiến hành lai ghép hay không. Nếu rơi vào trường hợp có xảy ra lai ghép thì áp dụng toán tử lai ghép trên 2 cá thể cha mẹ này để tạo ra 2 cá thể con cái.

Nếu rơi vào trường hợp không xảy ra lai ghép thì 2 cá thể con thu được sẽ giống y 2 cá thể cha mẹ (một cá thể giống cá thể “cha”, cá thể còn lại giống cá thể “mẹ”).

[3c]. Đột biến. Sau khi thu được 2 cá thể con, ta sẽ tiến hành đột biến trên từng cá thể con vừa thu được với xác suất xảy ra đột biến là pm được xác định từ trước. Nếu có xảy ra đột biến thì toán tử đột biến sẽ được áp dụng trên cá thể đó để biến đổi ngẫu nhiên kiểu gen của nó, và ta sẽ thu được cá thể mới. Nếu không xảy ra đột biến thì kiểu gen của cá thể sẽ được giữ nguyên và ta thu lại cá thể con ban đầu.

[3d]. Đưa 2 cá thể con thu được sinh ra vào quần thể mới. Nếu số lượng cá thể trong quần thể mới đã đủ n thì chuyển sang bước 4, còn nếu nhỏ hơn n thì ta quay lại bước 3. (Do mỗi lần bổ sung cá thể vào quần thể mới, ta đều đưa 2 cá thể vào. Trong

trường hợp n lẻ thì ở lần bổ sung cuối cùng, dân số của quần thể mới sẽ là n+1, khi đó ta sẽ lựa chọn ngẫu nhiên một cá thể trong quần thể mới để loại ra ngoài nhằm giữ nguyên dân số của quần thể qua các thế hệ).

Bước 4: Thay thế quần thể cũ bằng quần thể mới vừa thu được.

Bước 5: Kiểm tra điều kiện dừng của thuật toán. Nếu chưa thỏa mãn điều kiện dừng thì quay lại bước 2. Nếu điều kiện dừng được thỏa mãn thì kết thúc thuật toán.

Kết quả thu được: Cá thể tốt nhất phát hiện được trong tất cả các thế hệ quần thể sẽ là lời giải cho bài toán.

Mô tả thuật toán bằng ngôn ngữ giả Pascal Procedure GTDiTruyen

Begin t := 0;

Khởi tạo quần thể P(0);

Tính giá trị thích nghi của các cá thể trong P(t);

While not Điều_kiện_kết_thúc do Begin

Chọn lọc các cá thể từ P(t) ; Lai ghép các cá thể đã chọn lọc;

Đột biến các cá thể con cháu;

Tính độ thích nghi của các cá thể trong P(t);

Tạo lập P(t+1) từ P(t);

t = t+1;

end;

Trả về cá thể tốt nhất trong P(t).

End;

Trong hoạt động của thuật toán di truyền yếu tố ngẫu nhiên đóng vai trò nhất định, vì thế mỗi lần thực hiện khác nhau có thể cho kết quả khác nhau. Trên đây là sơ đồ hoạt động chung của thuật toán di truyền. Ngoài ra, để nâng cao hiệu quả hoạt động của thuật toán di truyền, người ta có thể đưa thêm vào một số bước, ví dụ sau khi thực hiện bước [3d] ta có thể áp dụng thêm các kĩ thuật tìm kiếm cực trị địa phương để làm tốt lời giải thu được.

Sơ đồ hoạt động chung cho ta một hình dung khái quát về nguyên lý làm việc của thuật toán di truyền, tuy nhiên để xây dựng một thuật toán di truyền cho một bài toán cụ thể còn rất nhiều việc cần phải thực hiện, như là:

 Làm thế nào để biểu diễn lời giải bằng những cá thể trong quần thể. Một bài toán có thể có nhiều cách khác nhau để mã hoá lời giải. Việc chọn cách biểu diễn lời giải sẽ ảnh hưởng đến việc lựa chọn các toán tử di truyền (lai ghép, đột biến…), vì mỗi cách biểu diễn sẽ cần có cách tương ứng để xây dựng những toán tử này.

 Giá trị độ thích nghi của các cá thể được xác định như thế nào. Việc lựa chọn hàm đánh giá độ thích nghi sẽ ảnh hưởng đến việc định hướng hoạt động của thuật toán. Do đó nếu lựa chọn hàm thích nghi phù hợp, thuật toán sẽ mang lại kết quả tốt hơn.

Xác định một số tham số khác trong thuật toán :

* Kích thước quần thể. Kích thước quần thể nhỏ quá thì hiệu quả tìm kiếm sẽ thấp, ngược lại kích thước lớn quá thì quá trình hội tụ đến lời giải cũng chậm và thời gian thực hiện của thuật toán cũng tăng lên.

* Lựa chọn điều kiện dừng. Thông thường điều kiện dừng của thuật toán là số lượng xác định các bước lặp sinh quần thể. Tuy nhiên, cần phải chọn số lượng bước lặp này cho phù hợp. Nếu ít quá thì vùng tìm kiếm sẽ bị hạn chế, còn nếu nhiều quá thì thời gian sẽ tăng. Bên cạnh đó nếu không có chiến lược xử lý hợp

lý trong quá trình tìm kiếm thì việc tăng số vòng lặp sinh quần thể cũng không mang lại điều gì thêm.

 Xác định các giá trị xác suất đột biến pm và xác suất lai ghép pc cho phù hợp.

Nếu những xác suất này có giá trị cao thì quá trình tìm kiếm sẽ có tính đa dạng và phân tán, tuy nhiên tính hội tụ lại chậm và ngược lại. Người ta thường để giá trị của pmpc tự điều chỉnh theo kết quả tìm kiếm, ví dụ qua nhiều thế hệ mà kết quả tìm kiếm không được cải thiện thì pmpc sẽ được tăng lên nhằm chuyển hướng tìm kiếm sang vùng khác, tránh hiện tượng bị tắc nghẽn ở những cực trị địa phương. Còn trong trường hợp quá trình tìm kiếm đang diễn ra tốt thì pmpc sẽ được điều chỉnh thấp xuống nhằm tránh những tác động tiêu cực đối với quá trình hội tụ của lời giải. Cách thực hiện các thuật toán tìm kiếm cực trị địa phương hỗ trợ cho kết quả lời giải tốt hơn.

Một phần của tài liệu Giải thuật di truyền giải bài toán phủ đỉnh nhỏ nhất (Trang 20 - 23)

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

(107 trang)