Giải thuật di truyền được mô hình hóa theo các bước giống như lưu đồ dưới đây
Hình 2.10Sơ đồ quá trình tính toán của thuật toán di truyền Trong lưu đồ trên các bước được thực hiện lần lượt như sau:
Bước 1: Khởi tạo/lựa chọn các thông số cho quá trình tính toán. Bước này người lập
trình tính toán phải lựa chọn các thông số như: Số lượng cá thể trong quần thể, cách thức hóa bài toán cần tính toán dưới dạng các nhiễm sắc thể (độ dài của nhiễm sắc thể, kiểu số biểu diễn dữ liệu,…), số thế hệ tính toán, xác suất lai ghép, xác suất đột biến, hàm thích nghi,…
Khởi tạo, lựa chọn các thông số giải thuật di truyền
Khởi tạo ngẫu nhiên các cá thể cho quần thể ban đầu
Đánh giá các cá thể bằng hàm thích nghi
Thực hiện các phép toán di truyền: đột biến, lai tạo chéo trên các cá thể để tạo ra các cá thể mới
Tạo quần thể kế tiếp bằng quá trình chọn lọc
Đánh giá quấn thểmới
Kết thúc lưu kết quả tính toán Thỏa mãn
Bước 2: Khởi tạo quần thể ban đầu: xác định bằng phương pháp tạo số ngẫu nhiên để
tạo giá trị cho các nhiễm sắc thể cho quần thể ban đầu. Tùy vào cách biểu diễn của các nhiễm sắc thể mà ta chọn phương pháp tạo số ngẫu nhiên phù hợp.
Bước 3: Đánh giá các nhiễm sắc thể bằng hàm thích nghi đã xác định ở bước 1. Trong
bước này, ngoài việc đánh giá các nhiễm sắc thể riêng rẽ, chúng ta còn có thể đánh giá độ thích nghi của một nhiễm sắc thể hay cả quần thể. Nếu một nhóm hay cả quần thể có độ thích nghi "trung bình" (theo tiêu chí của từng trường hợp của người lập trình) thấp thì có thể loại nhóm nhiễm sắc thể hay quần thể đó ra khỏi quá trình di truyền.
Bước 4: Thực hiện quá trình di truyền thông qua các cơ chế lai ghép và đột biến. Có
thể thực hiện lần lượt hai quá trình này hoặc thực hiện đồng thời theo các phương pháp đã đề cập bên trên. Trong quá trình thực hiện thuật toán di truyền, giai đoạn này là giai đoạn mà mỗi người có thể thực hiện theo những phương pháp rất khác nhau. Giai đoạn này cũng là giai đoạn quyết định tới sự thành công của thuật toán. Người thực hiện cũng có thể đưa ra những phương thức tiến hành lai ghép hay đột biến mới trong giai đoạn này. Trong quá trình thực hiện, để có được một bộ các thông số lai ghép hay đột biến hiệu quả, người lập trình thường phải trải qua nhiều bước tính toán thử. Khâu này phụ thuộc nhiều vào kinh nghiệm và kỹ năng tính toán của người lập trình.
Bước 5: Tạo quần thể mới bằng quá trình chọn lọc. Quá trình này cũng dựa vào đánh
giá các nhiễm sắc thể thông qua hàm thích nghi. Cá thể nào có độ thích nghi cao sẽ được giữ lại cho thế hệ kế tiếp. Cũng giống như ở bước 3, chúng ta có thể sử dụng những hàm thích nghi phù hợp để đánh giá từng cá thể đơn lẻ hoặc cả một nhóm các cá thể. Sau quá trình này, nhóm cá thể nào thỏa mã tiêu chuẩn đánh giá với mức độ từ cao xuống thấp sẽ được đưa vào quần thể mới.
Bước 6: Đánh giá quần thể vừa có được trong bước 5. Thông thường có hai tiêu chí để
dừng quá trình di truyền tại bước này. Thứ nhất, độ thích nghi của từng cá thể và cả quần thể thỏa mãn một điều kiện hội tụ đã được đặt ra ban đầu. Các điều kiện hội tụ thể hiện mức độ chấp nhận được của kết quả tìm được. Thứ hai, quần thể mới tạo thành là quần thể ở thế hệ thứ (N+1) với N là số thế hệ dự định tính toán đã giả thiết ban đầu. Trong khi thực hiện các quá trình di truyền, những người tính toán có thể đưa ra những tiêu chí riêng để dừng quá trình di truyền. Các tiêu chí đưa ra góp phần quyết định tới thành công của thuật toán.
Chương 3. ỨNG DụNG GIảI THUậT DI TRUYềN Để GIảI QUYếT BÀI TOÁN LậP LịCH TRONG QUảN LÝ Dự ÁN PHầN MềM