Digital organisms

Digital organisms là một chương trình máy tính có thể mô phỏng sự đột biến, nhân bản và cạnh tranh. Tạm gọi là những "cá thể số". Chương trình này được sử dụng trong những thí nghiệm trên máy tính với mục đích chứng minh phát biểu của Darwin về những đặc tính phức tạp của cơ thể sống: những đặc tính phức tạp của cơ thể sống được tạo nên từ những đặc tính đơn giản hơn.

Để có thể sử dụng chương trình này trên máy tính, cần một chương trình nền tạo môi trường, chương trình nền được biết đến nhiều nhất là chương trình Avida. Trong môi trường Avida tạo nên, các "cá thể số" sẽ cạnh tranh nhau để có năng lượng bằng cách đạt được những hàm logic.

Chạy chương trình Digital Organisms trên Avida
"Cá thể số" thể hiện một gen thông qua một vòng lặp sử dụng bộ 26 lệnh. Vòng lặp thực hiện liên tiếp cho tới khi bắt gặp điều kiện để thực hiện lệnh Jump. Mỗi bước lặp thể hiện cho một lần sinh sản vô tính. Mỗi lần sinh sản thành công thể hiện cho việc phát sinh đột biến thông qua các đoạn mã lỗi được sao chép từ gen chủ thể.

Chạy chương trình theo mô hình gen:

Các thanh ghi sử dụng là những thanh ghi 32 bit.
Đầu vào: X và Y là các chuỗi 32 bit.
Thực hiện phép toán NAND trên 2 chuỗi trong thanh ghi bx và cx, đưa kết quả vào ax.
Phép toán logic:
So sánh các bit tương ứng trên X và Y.
Kết quả logic thu được là 1 nếu bit tương ứng trên X giống bit tương ứng trên Y, và sẽ thu được kết quả là 0 trong trường hợp còn lại.
So sánh ax với kết quả logic, nếu giống nhau tức là đời gen này có thể sinh ra hàm EQU.

Avida
Avida là chương trình nền để chạy chương trình "cá thể số". Chương trình này giúp máy tính không bị nhầm lẫn giữa virus và những "cá thể số". Bởi virus và những "cá thể số" có chung những đặc điểm như: đột biến, nhân bản, cạnh tranh, và chỉ khác nhau ở chỗ: virus là chương trình chạy có mục đích, có hướng còn những "cá thể số" nhân bản, cạnh tranh theo một cách ngẫu nhiên.
Avida sử dụng thuật toán "time-slicing" để đảm bảo sự ảnh hưởng lên các "cá thể số" là như nhau.

Hàm logic
Có 9 hàm logic: NOT, AND, OR, NAND, OR_N, AND_N, NOR, XOR, EQU. Đời gen đầu tiên có thể tự nhân bản nhưng không tạo được hàm logic nào. Mỗi đời gen có thể sử dụng 1 hoặc nhiều hàm logic. Mỗi hàm logic có thể được sinh ra ở bất kỳ đoạn nào trong đời gen. Cũng có thể lặp lại, nhưng sẽ không nhận được thêm năng lượng.

Hàm EQU: EQU là hàm logic phức tạp nhất và là hàm logic không có sẵn trong bộ lệnh, chỉ được tạo nên từ các hàm khác trong chương trình.

Theo một trong số thí nghiệm "cá thể số" đã thực hiện:
Trong 60 lệnh thể hiện hàm EQU đầu tiên, có 35 lệnh là không thể thiếu.
Trong số 35 lệnh, có 22 lệnh thực thi các hàm logic đơn giản còn lại, 3 câu lệnh dành cho việc nhân bản. Số còn lại sử dụng cho việc duy trì đặc tính của đời trước.
Việc thiếu đi bất kỳ một lệnh nào cũng sẽ làm cho các lệnh còn lại không thể xây dựng nên hàm EQU. Có thể thấy, hàm EQU rất khó tạo nhưng dễ hỏng và khó có thể tồn tại lâu. Tuy nhiên, hàm EQU tồn tại xuyên suốt quá trình thí nghiệm, bởi rất may là những đột biến có hại đã được loại ngay từ khâu chọn lọc.

Năng lượng của Digital Organisms
Năng lượng cần thiết để các "cá thể số" thực thi một lệnh là một SIP (single instruction processing). Mỗi SIP đủ để thực thi một câu lệnh.

Các "cá thể số" có được SIP thông qua:
Nhận SIP theo tỷ lệ tương ứng với chiều dài gen.
Nhận SIP thông qua các hàm logic. (trường hợp này nhận được nhiều SIP hơn)

Sự thay đổi chiều dài kiểu gen sẽ dẫn đến sự thay đổi về SIP. Mỗi kiểu gen sẽ có một tỷ lệ nhân đôi nhất định. Chiều dài kiểu gen thay đổi theo mỗi bước đột biến.

;Ví dụ:
Theo một trong số thí nghiệm "cá thể số" đã thực hiện: Để đến được bước tạo được EQU đầu tiên phải qua 111 bước đột biến, trong đó có 103 đột biến đơn, 6 đột biến kép và 2 đột biến ba. 45 đột biến trong số đó là có ích, 48 là đột biến trung tính và 18 còn lại là đột biến có hại. Tỷ lệ này phản ánh kết quả của quá trình chọn lọc tự nhiên.

Chú thích

Tham khảo
"The evolutionary origin of complex features" của nhóm tác giả Richard E. Lenski, Charles Ofria, Robert T. Pennock & Christoph Adami.