Tôi chỉ xem một khá mát mẻ ted talk Danny Hillis đề ngày 1994.lập trình tiến hóa
Tại một thời điểm trong đoạn video, ông nói về "lập trình tiến hóa", tức là anh ta hỏi máy tính để tạo ra hàng trăm chương trình bằng cách tạo ra ngẫu nhiên chuỗi các lệnh, sau đó kiểm tra để xem mỗi chương trình sắp xếp số lượng như thế nào. Ông giữ 10% các chương trình phân loại số tốt nhất, sau đó tạo ra một vòng tiếp theo của chương trình dựa trên 10% đã làm tốt và lặp lại nhiều lần như ông muốn, để cuối cùng tạo ra các chương trình phân loại cuối cùng.
Có công cụ/ngôn ngữ lập trình nào ở đó thực hiện việc này không? Ví dụ. với một số ràng buộc nhất định, tạo ra mã C đáp ứng tốt nhất các ràng buộc đó.
Tôi đã truy cập một số bài viết wikipedia liên quan đến "Lập trình tiến hóa"; dường như có rất nhiều lý thuyết ở đó, nhưng có vẻ như không dễ dàng tìm thấy thứ gì đó bạn có thể chơi cùng.
Không có gì liên quan đến tính toán tiến hóa - không có lựa chọn nào cả, bất kỳ chương trình ngẫu nhiên nào trong Csmith đều có giá trị 100%. –
Điều đó phụ thuộc vào trình điều khiển thực thi Csmith - lựa chọn tự động có thể xảy ra dựa trên việc mã được tạo ra có gây ra lỗi trình biên dịch có thể phát hiện hay không; đầu ra mới có thể được tạo ra từ đầu hoặc bằng cách thực hiện các đột biến trên đầu ra trước đó. – smokris
thật thú vị, tôi sẽ thử. Tôi đã chỉ sử dụng mã được tạo ngẫu nhiên hoàn toàn để thử nghiệm trước đây. –