"Một là con nuôi má
Hai là má nuôi con
Ba là con nuôi cá"
(Trần Đĩnh. Đèn cù. Vè dân gian)
Thuyết chọn lọc tự nhiên của Darwin
Trước khi chúng ta bắt đầu đi vào giải thuật di truyền, hãy dành một chút thời gian để mô tả ba nguyên tắc cốt lõi về sự tiến hóa của Darwin, những nguyên tắc được yêu cầu khi ta thực hiện mô phỏng. Để chọn lọc tự nhiên xảy ra như trong tự nhiên, ba yếu tố này sẽ phải có mặt.
Sự di truyền
Phải có một quy trình để con cái nhận được những thuộc tính của cha mẹ chúng. Nếu sinh vật sống đủ lâu để sinh sản, thì các đặc tính của chúng được truyền lại cho con cái trong thế hệ tiếp theo của sinh vật đó.
Sự đa dạng
Phải có một sự đa dạng của các đặc tính trong một quần thể hoặc một phương tiện để tạo ra sự đa dạng cho các đặc tính. Ví dụ, giả sử có một quần thể bọ cánh cứng, trong đó tất cả các con bọ cánh cứng đều giống nhau: cùng một màu, cùng kích cỡ, cánh giống nhau, mọi thứ đều giống nhau. Nếu không có một sự đa dạng quần thể, con cái sẽ luôn luôn giống cha mẹ và giống lẫn nhau. Sự kết hợp mới của các đặc điểm khác nhau sẽ không bao giờ xảy ra và không có gì có thể tiến hóa.
Chọn lọc
Cần phải có một cơ chế để một số thành viên của một quần thể có cơ hội làm cha mẹ và truyền lại các thông tin di truyền của chúng và một số khác thì không. Điều này thường được gọi là “mạnh được yếu thua” (survival of the fittest). Ví dụ: giả sử rằng hàng ngày, một quần thể linh dương bị săn đuổi bởi nhũng con sư tử. Những con linh dương chạy nhanh nhất có nhiều khả năng hơn để thoát khỏi những con sư tử và do đó có nhiều khả năng để sống lâu hơn, có cơ hội sinh sản và chuyển gen của chúng xuống cho con cái. Thuật ngữ “fittest - thích ứng nhất”, tuy nhiên, có thể gây một chút hiểu nhầm. Nhìn chung, chúng ta nghĩ về nó với ý nghĩa lớn hơn, nhanh hơn hoặc mạnh hơn. Mặc dù điều này có thể xảy ra trong một số trường hợp, chọn lọc tự nhiên vẫn hoạt động dựa trên nguyên tắc rằng có một số đặc tính thích nghi tốt hơn với môi trường của sinh vật sinh sống và do đó tạo ra nhiều khả năng hơn cho sinh vật đó để sống sót và sinh sản. Nó không liên quan gì tới một sinh vật nhất định phải “tốt hơn” (sau tất cả, đây là một thuật ngữ có tính chủ quan) hoặc “phù hợp hơn về mặt thể chất”. Ví dụ trong trường hợp một con khỉ gõ bàn phím của chúng ta, một con khỉ “phù hợp” hơn là con khỉ gõ được gần đúng hơn tới cụm từ “to be or not to be”.
Tiếp theo chúng ta sẽ đi vào giải thuật di truyền. Chúng ta sẽ thực hiện việc này trong ngữ cảnh của con khỉ gõ bàn phím. Bản thân chương trình sẽ được chia làm hai phần: một tập hợp các điều kiện cho việc khởi tạo (tức hàm setup() trong Processing) và các bước mà chương trình chạy lặp đi lặp lại ( tức hàm draw() trong Processing) cho đến khi chúng ta tìm thấy câu trả lời chính xác.
About Author

I’m Viet, the founder of this website with 8+ years experience in data analytics. My sharing is focus on data, which specialise on both Analytics and Business Intelligence platform as well as Data Science and Machine Learning platform.