Skip to main content

Lập trình di truyền là gì?

Lập trình di truyền là quá trình sử dụng một chương trình máy tính để viết một chương trình máy tính khác bằng phương pháp dựa trên thuật toán tiến hóa.Quá trình này thường được so sánh với lập trình tuyến tính, trong đó lập trình viên viết các hướng dẫn cụ thể cho máy tính thực hiện.Lisp và sơ đồ là ngôn ngữ lập trình phổ biến nhất cho loại công việc này do chức năng và tính linh hoạt ở cấp độ cao của chúng.Do sự tương đồng về khái niệm của nó với sự tiến hóa sinh học, lập trình di truyền thường được trích dẫn là một ví dụ về điện toán lấy cảm hứng từ sinh học. Các chương trình di truyền (GPS) hoạt động bằng cách tạo và chạy hàng ngàn chương trình và chọn hiệu quả nhất để sử dụng.Ví dụ, GP có thể được sử dụng để tạo một chương trình để vẽ một bản phác thảo của một bức ảnh.Điều đầu tiên mà GP sẽ làm là tạo ra một tập hợp các chương trình sử dụng các chức năng vẽ máy tính khác nhau trong các kết hợp ngẫu nhiên.Sau đó, GP sẽ chạy từng chương trình này theo thứ tự, xuất ra kết quả của từng tệp cho các tệp hình ảnh.

Bước tiếp theo cho GP là chọn các chương trình tốt nhất từ tập hợp đó.Quá trình này nói chung là phần khó nhất của lập trình di truyền.Trong trường hợp của chương trình vẽ, GP sẽ sử dụng phần mềm so sánh hình ảnh để xác định bản vẽ ngẫu nhiên nào giống với hình ảnh mà phần mềm đang cố gắng vẽ.Trong số các chương trình được tạo ngẫu nhiên, GP sẽ chọn một số trên cùng và loại bỏ phần còn lại.Quá trình lựa chọn được gọi là đánh giá thể lực và thường được coi là phần khó nhất của lập trình di truyền. Một khi một số chương trình hàng đầu đã được chọn, GP sẽ sử dụng chúng làm cơ sở cho một loạt các chương trình mới.Mỗi lô mới được gọi là một thế hệ.Hai cách tạo ra thế hệ mới là đột biến và chéo.Đột biến hoạt động bằng cách lấy một trong các chương trình hiện có và thực hiện các thay đổi ngẫu nhiên đối với nó, hy vọng tốt hơn.Crossover, còn được gọi là nhân giống, hoạt động bằng cách thực hiện hai trong số các chương trình hàng đầu và kết hợp các yếu tố của chúng để tạo ra các chương trình mới. Sau khi tạo một loạt các chương trình mới, GP lặp lại quá trình chạy và đánh giá chúng, sau đó lặp lại lựa chọn lựa chọn, loại bỏ, và quá trình tạo.GPS sẽ thường xuyên chạy hàng trăm thế hệ trước khi tìm một chương trình duy nhất với kết quả thỏa đáng.Mặc dù hạn chế này, lập trình di truyền là một cách phổ biến để giải quyết một số loại vấn đề tính toán khó khăn, bao gồm các vấn đề về kỹ thuật robot và trí tuệ nhân tạo.