Giải thuật di truyền là một kỹ thuật của khoa học máy tính nhằm tìm kiếm giải pháp thích hợp cho các bài toán tối ưu tổ hợp (combinatorial optimization
Ngày nay, giải thuật di truyền được sử dụng phổ biến trong một số lĩnh vực như sinh học máy tính, khoa học máy tính, trí tuệ nhân tạo, tài chính và một số lĩnh vực khác.
Phương pháp
Trong giải thuật di truyền cho một bài toán tối ưu hóa, ý tưởng là một tập hợp (gọi là nhiễm sắc thể) của các giải pháp có thể (gọi là cá thể) sẽ được 'tiến hóa' thông qua quá trình lựa chọn các giải pháp tối ưu hơn dần.
Thông thường, các giải pháp được biểu diễn dưới dạng chuỗi nhị phân với các bit 0 và 1, nhưng mang nhiều thông tin mã hóa khác nhau. Quá trình tiến hóa bắt đầu từ một tập hợp các cá thể hoàn toàn ngẫu nhiên ở mỗi thế hệ. Trong mỗi thế hệ, độ thích nghi của tập hợp này được đánh giá, nhiều cá thể được lựa chọn dựa trên thể trạng hiện tại, và sau đó được sửa đổi (bằng đột biến hoặc lai ghép) để tạo ra một tập hợp mới. Tập hợp này sẽ tiếp tục được lựa chọn và cải tiến qua các thế hệ tiếp theo của thuật toán.