Singapore, ngày 18 tháng 7 năm 2039.
Buổi sáng, Lukas đến chiếc bàn quen thuộc sớm hơn thường lệ.
Trên mặt bàn vẫn còn những tờ giấy hôm qua. Một vài trang đã được xếp lại ngay ngắn, vài trang khác vẫn còn những nét bút và mũi tên chồng lên nhau.
Lukas kéo ghế ngồi xuống.
Anh vừa đặt ba lô sang một bên thì Tĩnh An đã xuất hiện. Cậu kéo ghế ngồi xuống đối diện rồi nhìn đống giấy.
"Tiếp tục mô hình à?"
"Ừ."
"Phần nào?"
"Phần thực tế."
Tĩnh An nhìn Lukas.
"Thực tế là cái gì?"
"Chưa biết."
Tĩnh An im lặng vài giây.
"Vậy hôm qua chúng ta quyết định thử cái chưa biết?"
"Đúng."
"Nghe hợp lý."
Lukas nhìn cậu.
"Thật à?"
"Ừ."
Tĩnh An chống cằm.
"Không biết thì mới phải thử."
Lukas không nói gì.
Một lát sau, tiếng bước chân vang lên từ phía sau.
Mikhail kéo ghế ngồi xuống. Chiếc laptop được đặt lên bàn, nhưng lần này anh không mở ngay.
Tĩnh An nhìn anh.
"Để mai tính xong chưa?"
Mikhail nhìn cậu.
"Chưa."
"Vậy hôm nay tính?"
"Ừ."
Mikhail mở laptop.
Tĩnh An lập tức dịch ghế lại gần.
Lukas cũng nhìn sang màn hình.
Mikhail không mở mô hình hôm qua. Anh mở một thư mục cũ.
Tĩnh An hơi nhướng mày.
"Đây là gì?"
"Luận án."
"Luận án của cậu?"
"Ừ."
Tĩnh An nhìn tên thư mục rồi lại nhìn Mikhail.
"Liên quan đến cái này?"
Mikhail lắc đầu.
"Không trực tiếp."
"Vậy sao mở?"
Mikhail không trả lời ngay. Anh mở một tệp dữ liệu rồi chuyển sang một phần khác của chương trình.
Một mô hình cũ xuất hiện trên màn hình.
Lukas nhìn qua.
"Đây là mô hình cậu dùng trước đây?"
"Ừ."
Tĩnh An cúi sát hơn.
"Nó mô phỏng cái gì?"
"Một hệ thống thay đổi theo thời gian."
Tĩnh An nhìn màn hình.
"Chỉ vậy?"
"Về cơ bản."
"Nhưng cái này có vẻ phức tạp hơn mô hình hôm qua."
"Vì nó được dùng cho một vấn đề khác."
Tĩnh An nhìn những đường biểu diễn trên màn hình thêm vài giây.
"Vậy nó làm gì?"
Mikhail chỉ vào một phần dữ liệu.
"Nó không chỉ ghi lại giá trị hiện tại."
Tĩnh An nhìn theo.
"Nó còn giữ trạng thái trước đó."
"Đúng."
"Để làm gì?"
"Để biết trạng thái hiện tại hình thành như thế nào."
Tĩnh An im lặng.
Mikhail mở một phần khác của mô hình.
Một chuỗi giá trị xuất hiện theo thời gian.
"Ví dụ, cùng một giá trị hiện tại nhưng nếu trạng thái trước đó khác nhau thì phản ứng tiếp theo có thể khác."
Lukas nhìn màn hình.
"Nghĩa là cùng một đầu vào nhưng không nhất thiết cho cùng một kết quả."
"Đúng."
Tĩnh An đưa tay lên cằm.
"Vì hệ thống không chỉ nhìn vào cái đang xảy ra."
Mikhail gật đầu.
"Nó còn dựa vào trạng thái của chính nó."
Tĩnh An nhìn lại mô hình hôm qua đặt trên giấy. Cậu kéo tờ giấy về phía mình.
"Chúng ta cũng có thứ này."
Mikhail nhìn sang.
"Không đủ."
"Tại sao?"
"Ở mô hình của chúng ta, trạng thái được cập nhật sau khi phản ứng kết thúc."
Tĩnh An nhìn những mũi tên.
"Đúng."
Cậu lấy bút khoanh một đoạn.
"Nếu là tế bào thì không thể như vậy."
"Tại sao?" Lukas hỏi.
"Vì trong lúc tế bào đang phản ứng, bản thân nó đã thay đổi rồi."
Tĩnh An đặt bút xuống.
"Ví dụ một vùng mô bị tổn thương. Ban đầu tổn thương nhỏ, hệ thống bắt đầu phản ứng. Nhưng ngay trong quá trình sửa chữa, mức độ tổn thương có thể giảm xuống, chất dinh dưỡng thay đổi, lượng oxy thay đổi, tế bào xung quanh cũng thay đổi. Nếu hệ thống vẫn sử dụng trạng thái cũ để quyết định phản ứng tiếp theo thì nó sẽ phản ứng chậm hơn thực tế."
Lukas nhìn cậu.
"Vậy phải cập nhật trạng thái ngay trong lúc phản ứng."
"Đúng."
Tĩnh An chỉ vào mô hình cũ của Mikhail.
"Cái này làm được không?"
Mikhail nhìn màn hình.
"Có."
Tĩnh An lập tức hỏi:
"Thế sao hôm qua chúng ta không dùng?"
"Vì hôm qua chúng ta chưa có nó."
Tĩnh An ngẫm nghĩ một lúc.
"Đúng."
Lukas khẽ bật cười.
Mikhail mở phần cấu trúc của mô hình.
"Nhưng không thể lấy nguyên như thế này."
"Vì sao?"
"Biến số khác."
Tĩnh An gật đầu.
"Đương nhiên."
Cậu kéo một tờ giấy trắng lại gần.
"Vậy giữ nguyên nguyên lý."
Mikhail nhìn cậu.
"Nguyên lý nào?"
"Trạng thái hiện tại không đứng một mình."
Tĩnh An viết xuống giấy.
Trạng thái trước → Trạng thái hiện tại → Phản ứng tiếp theo
Cậu nhìn một lúc rồi sửa lại.
Trạng thái → Phản ứng → Kết quả → Trạng thái mới
Mikhail nhìn sơ đồ.
"Đây gần với mô hình hôm qua."
"Không."
Tĩnh An lắc đầu.
"Khác một chút."
Cậu chỉ vào mũi tên cuối.
"Ở đây trạng thái mới phải được cập nhật ngay khi có kết quả tạm thời. Không cần chờ toàn bộ quá trình kết thúc."
Mikhail gật đầu.
"Được."
Anh kéo mô hình cũ sang một bên màn hình, mở mô hình hôm qua ở bên còn lại.
Lukas nhìn hai mô hình.
"Vậy chúng ta lấy phần này của cậu."
Anh chỉ vào mô hình cũ.
"Đưa vào phần này."
Mikhail gật đầu.
"Nhưng cần thay đổi cách biểu diễn."
Tĩnh An lập tức hỏi:
"Thay đổi thế nào?"
"Trạng thái không còn là một giá trị đơn."
"Vậy là nhiều giá trị?"
"Ít nhất."
Tĩnh An nhìn anh.
"Bao nhiêu?"
"Chưa biết."
"Vậy thử từng cái."
Mikhail bắt đầu viết.
Lukas kéo một tờ giấy khác sang.
"Đầu tiên phải xác định chúng ta thực sự cần gì."
Tĩnh An gật đầu.
"Đúng."
Cậu bắt đầu liệt kê.
"Trạng thái tế bào."
Viết xuống.
"Mức độ tổn thương."
Thêm một dòng.
"Vị trí."
Thêm dòng thứ ba.
"Loại tổn thương."
Thêm dòng thứ tư.
"Nguồn năng lượng."
Mikhail ngẩng lên.
"Không chỉ năng lượng."
"Ừ."
Tĩnh An suy nghĩ.
"Vật chất nữa. Protein, oxy, các chất cần thiết cho quá trình sửa chữa. Nếu thiếu một trong những thứ đó thì tốc độ phản ứng cũng thay đổi."
"Vậy thêm tài nguyên." Lukas nói.
Tĩnh An gật đầu.
"Được."
Mikhail đưa những biến đó vào mô hình.
Tĩnh An vẫn chưa dừng lại.
"Còn tốc độ thay đổi."
Lukas nhìn cậu.
"Khác với mức độ tổn thương?"
"Khác."
Tĩnh An chỉ vào hai ví dụ trên giấy.
"Cùng một tổn thương, nhưng xảy ra từ từ và xảy ra đột ngột thì cơ thể có thể phản ứng khác nhau. Hệ thống phải biết không chỉ hiện tại đang bị tổn thương bao nhiêu mà còn phải biết nó thay đổi nhanh đến mức nào."
Mikhail thêm một biến.
Lukas nhìn màn hình.
"Vậy càng nhiều biến thì mô hình càng phức tạp."
"Đúng."
"Và càng khó thử."
"Đúng."
Lukas nhìn Tĩnh An.
"Vậy phải bỏ bớt."
Tĩnh An im lặng. Cậu nhìn danh sách trên giấy rồi gạch một vài dòng.
"Không."
Lukas nhướng mày.
"Không?"
"Chưa bỏ."
"Vì sao?"
"Vì chúng ta chưa biết cái nào thực sự không cần."
Mikhail gật đầu.
"Đúng."
Tĩnh An nhìn Lukas.
"Thử trước, bỏ sau."
Lukas suy nghĩ một chút rồi gật đầu.
"Được."
Mikhail tiếp tục chỉnh mô hình.
Một lúc sau, chương trình chạy thử.
Biểu đồ xuất hiện.
Tĩnh An cúi xuống nhìn.
"Đây."
Mikhail nhìn sang.
"Phản ứng quá nhanh."
"Vì sao?" Lukas hỏi.
"Trạng thái tổn thương giảm rất nhanh."
Tĩnh An chỉ vào đường biểu diễn.
"Nhưng tài nguyên cũng không giảm tương ứng."
Mikhail dừng lại.
Anh mở phần biến tài nguyên.
"Đúng."
Lukas nhìn dữ liệu.
"Vậy mô hình đang giả định rằng tài nguyên là vô hạn."
"Không."
Mikhail lắc đầu.
"Chỉ là chúng ta chưa cho nó giới hạn."
Tĩnh An cười.
"Vậy thêm giới hạn."
Mikhail thêm điều kiện.
Chạy lại.
Lần này đường biểu diễn thay đổi. Phản ứng chậm hơn.
Tĩnh An nhìn một lúc.
"Đỡ hơn rồi, nhưng vẫn chưa đúng lắm."
Mikhail nhìn cậu.
"Ở đâu?"
"Nó giảm tốc độ theo tài nguyên hiện tại, nhưng không tính đến việc tài nguyên đang được bổ sung."
Lukas nhìn sang.
"Ý cậu là hấp thụ?"
"Đúng."
Tĩnh An bắt đầu giải thích.
"Nếu đây là một hệ thống sống thì tài nguyên không phải một kho chứa cố định. Cơ thể có thể hấp thụ thêm chất dinh dưỡng, vận chuyển oxy, phân phối vật chất giữa các vùng. Vì thế trạng thái tài nguyên cũng thay đổi theo thời gian."
Mikhail gật đầu.
"Thêm dòng vào."
Tĩnh An nhìn anh.
"Đó là lý do tôi nói phải cập nhật trạng thái liên tục."
Mikhail thêm một biến mới.
Lukas nhìn mô hình.
"Như vậy mỗi phản ứng đều làm thay đổi hệ thống."
"Ừ."
"Và sự thay đổi đó lại ảnh hưởng đến phản ứng tiếp theo."
"Đúng."
Tĩnh An chống cằm.
"Đó mới là phần giống sinh học."
Không ai nói thêm.
Mikhail chạy lại mô hình.
Lần này, đường biểu diễn không còn đi theo một hướng đơn giản. Nó thay đổi theo mức tổn thương, tài nguyên và trạng thái trước đó.
Tĩnh An nhìn màn hình khá lâu.
"Thử lại."
Mikhail nhìn cậu.
"Điều kiện nào?"
"Ít tài nguyên."
"Bao nhiêu?" Lukas hỏi.
Tĩnh An suy nghĩ.
"Thấp hơn lần trước."
Mikhail điều chỉnh.
Mô hình chạy.
Phản ứng chậm lại nhưng không dừng hẳn.
Tĩnh An mỉm cười.
"Đúng hơn rồi."
Lukas nhìn biểu đồ.
"Giờ thử tài nguyên tăng trong quá trình phản ứng."
Mikhail gật đầu.
Anh thay đổi điều kiện.
Kết quả xuất hiện.
Phản ứng ban đầu chậm, sau đó tăng tốc khi tài nguyên được bổ sung.
Tĩnh An lập tức ngồi thẳng lên.
"Thấy chưa?"
Lukas nhìn cậu.
"Thấy gì?"
"Nó tự thay đổi cách phản ứng."
Mikhail nhìn màn hình.
"Không phải tự."
Tĩnh An quay sang.
"Hả?"
Mikhail chỉ vào các biến.
"Chúng ta cho nó điều kiện để thay đổi."
Tĩnh An im lặng vài giây.
"Nhưng một hệ thống sống cũng phải có những điều kiện đó."
Mikhail gật đầu.
"Đúng."
Lukas nhìn hai người rồi nhìn mô hình.
"Vậy hiện tại chúng ta đang xây dựng một hệ thống có trạng thái thay đổi theo môi trường."
Tĩnh An nói:
"Và phản ứng của nó lại làm môi trường bên trong thay đổi."
Mikhail nhìn sơ đồ.
"Phản hồi hai chiều."
Tĩnh An cười.
"Nghe giống hôm qua."
"Nhưng hôm nay có nhiều biến hơn."
"Vậy là tiến bộ."
Lukas nhìn đồng hồ trên tường.
Lần này anh là người đầu tiên nhận ra thời gian đã trôi khá lâu.
"Ăn trưa."
Tĩnh An đang định nói gì đó thì dừng lại.
"À."
Mikhail đóng mô hình.
"Được."
Ba người rời khỏi bàn một lúc.
Buổi chiều, họ quay lại với mô hình đã được chỉnh sửa.
Tĩnh An ngồi xuống trước. Cậu nhìn hai phần mô hình cũ và mới đặt cạnh nhau.
"Cái này..."
Mikhail nhìn sang.
"Gì?"
Tĩnh An chỉ vào mô hình cũ.
"Nó không phải câu trả lời."
Mikhail gật đầu.
"Không."
"Nhưng có thể dùng làm khung."
"Ừ."
Tĩnh An nhìn mô hình mới.
"Vậy hôm qua chúng ta thiếu cái này."
"Thiếu gì?" Mikhail hỏi.
"Khả năng giữ trạng thái."
Mikhail suy nghĩ một lúc.
"Không phải giữ nguyên trạng thái."
Tĩnh An nhìn anh.
"Vậy?"
"Giữ thông tin cần thiết để xác định trạng thái tiếp theo."
Tĩnh An im lặng. Cậu nhìn màn hình rồi nhìn tờ giấy.
"Đúng là vậy."
"Có khác nhau nhiều không?" Lukas hỏi.
"Có."
Tĩnh An nói chậm hơn.
"Nếu giữ nguyên mọi thứ thì hệ thống sẽ quá nặng. Một tế bào không cần ghi lại tất cả những gì từng xảy ra với nó. Nó chỉ cần những thông tin đủ để biết hiện tại đang ở trạng thái nào và nên phản ứng thế nào."
Mikhail gật đầu.
"Đó cũng là cách mô hình cũ hoạt động."
Tĩnh An nhìn anh.
"Vậy cái cậu làm trước đây không phải để mô phỏng sinh học."
"Không."
"Nhưng nguyên lý có thể dùng ở đây."
"Ừ."
Tĩnh An chống cằm.
"Thú vị thật."
Lukas nhìn hai mô hình.
"Một cái dùng cho vấn đề của cậu, một cái dùng cho vấn đề của Tĩnh An."
Mikhail gật đầu.
"Khác vấn đề."
"Nhưng có cùng kiểu cấu trúc."
"Đúng."
Tĩnh An nhìn sơ đồ.
"Vậy thử ghép."
Mikhail nhìn cậu.
"Không ghép nguyên."
"Biết rồi."
Tĩnh An kéo tờ giấy về phía mình.
"Chỉ lấy phần cần thiết."
Lukas đưa bút cho cậu.
Tĩnh An bắt đầu viết.
Một mũi tên được vẽ từ trạng thái sang phản ứng. Một mũi tên khác quay trở lại. Bên dưới là những biến về tổn thương và tài nguyên.
Mikhail nhìn rồi chỉnh lại vị trí một vài mũi tên.
Lukas nhìn toàn bộ sơ đồ.
"Giờ thì có vẻ hợp lý hơn."
Tĩnh An nhìn anh.
"Chỉ có vẻ thôi?"
"Ừ."
Tĩnh An cười.
"Đúng."
Mikhail chạy thử mô hình mới.
Lần đầu tiên, hệ thống không chỉ phản ứng với một thay đổi đơn lẻ. Mà nó còn phản ứng dựa trên trạng thái trước đó, mức độ thay đổi, tài nguyên hiện tại và kết quả của phản ứng trước.
Biểu đồ dao động một lúc rồi ổn định.
Tĩnh An không nói gì. Cậu nhìn màn hình rất lâu.
Lukas cũng không lên tiếng.
Mikhail kiểm tra lại dữ liệu một lần nữa.
"Ổn định."
Tĩnh An lập tức hỏi:
"Ổn định trong bao lâu?"
Mikhail nhìn cậu.
"Chưa biết."
Tĩnh An gật đầu.
"Vậy thử lâu hơn."
Lukas bật cười.
"Đúng là cậu."
Tĩnh An vẫn nhìn màn hình.
"Chưa thử thì sao biết?"
Mikhail khẽ thở ra, nhưng vẫn kéo dài thời gian chạy mô hình.
Ba người lại tiếp tục làm việc.
Đến cuối ngày, trên bàn đã có thêm một chồng giấy mới.
Mô hình cũ của Mikhail vẫn nằm bên cạnh. Mô hình sinh học mới cũng chưa hoàn chỉnh. Nhưng giữa hai thứ đó đã xuất hiện một số đường nối.
Nó không quá nhiều. Chỉ vừa đủ để họ biết rằng mảnh ghép họ vừa tìm thấy có thể dùng được.
Tĩnh An đặt bút xuống.
"Ngày mai thử tiếp."
Lukas gật đầu.
"Ừ."
Mikhail nhìn mô hình trên màn hình thêm vài giây rồi đóng laptop.
"Được."
Ba người đứng dậy rời khỏi chiếc bàn nhỏ.
Lần này, họ không mang theo một câu trả lời hoàn chỉnh. Chỉ có một mô hình tốt hơn hôm qua. Và một hướng mới để tiếp tục.