Khoa học dựa vào mô hình máy tính - Vậy điều gì xảy ra khi nó sai?

Từ việc phát hiện ra penicillin cho đến các lý thuyết về thuyết tương đối và cơ học lượng tử, khoa học đã tiến bộ với tốc độ không thể tin được ngay cả trước khi có máy tính. Phần lớn điều này là do sự mạnh mẽ của phương pháp khoa học: kết quả khoa học được xác nhận bằng cách được nhân rộng và mở rộng bởi các nhà khoa học khác.

Nhưng cách chúng ta làm khoa học đang thay đổi - ngày nay chúng ta ngày càng dựa vào các mô hình máy tính phức tạp để hiểu bản chất. Và hóa ra những mô hình này có thể gần như không thể tái tạo - có nghĩa là một nền tảng quan trọng của khoa học đang bị thách thức. Vậy những tác động trong thế giới thực của sự thay đổi này là gì và chúng ta có thể làm gì với nó?

Khoa học tiền hiện đại - được gọi là triết học tự nhiên của người Hồi giáo - là theo kinh nghiệm. Khoa học thực nghiệm sử dụng các quan sát trong quá khứ để đưa ra dự đoán về tương lai, sau đó có thể được kiểm tra. Tycho Brahe, một nhà thiên văn học người Đan Mạch thế kỷ 16, đã xoay sở để thực hiện các quan sát chính xác và toàn diện về thiên đàng theo cách này.

Khoa học hiện đại, tuy nhiên, là lý thuyết. Khoa học lý thuyết cũng đưa ra dự đoán, nhưng nó xuất phát từ các mô hình toán học hơn là từ các quan sát trước đó. Hãy nghĩ về định luật chuyển động của Isaac Newton, như luật bình phương nghịch đảo của trọng lực.

Chẳng hạn, có một phương trình mô tả quỹ đạo của Trái đất quanh mặt trời. Phương trình này có thể được sử dụng để xây dựng một mô hình máy tính mà bạn chỉ cần cắm một số biến nhất định và xem giải pháp thay đổi như thế nào. Bạn chỉ có thể cắm vào một ngày trong tương lai và đọc vị trí của Trái đất vào ngày đó. Bạn cũng có thể sử dụng cùng một chương trình để mô hình hóa các hệ hành tinh khác - tất cả đều dựa trên cùng một toán học. Tất cả bạn phải làm là cắm vào khối lượng khác nhau và các thuộc tính khác của các cơ quan liên quan.


đồ họa đăng ký nội tâm


Các phương trình toán học như vậy là tuyệt vời khi chúng có sẵn - nhưng thường thì không. Chẳng hạn, chúng ta biết rằng không có phương trình đơn giản nào giải quyết cái gọi làvấn đề ba cơ thểNghiêng, mô tả ba cơ thể quay quanh và ảnh hưởng lẫn nhau bằng lực hấp dẫn - như mặt trăng, Trái đất và mặt trời.

Phần lớn khoa học hiện nay đề cập đến các hệ thống thậm chí phức tạp hơn, và tương tự thiếu các giải pháp chính xác. Những mô hình như vậy phải là tính toán của người Viking - mô tả cách một hệ thống thay đổi từ lúc này sang lúc khác. Nhưng không có cách nào để xác định trạng thái chính xác tại một thời điểm nào đó trong tương lai ngoài việc mô phỏng sự tiến hóa của nó theo cách này. Dự báo thời tiết là một ví dụ quen thuộc; cho đến khi sự ra đời của các máy tính trong 1950, không thể dự đoán thời tiết trong tương lai nhanh hơn thực tế.

Khoa học hiện tại thường bao gồm việc đưa ra một mô hình toán học mô tả một hệ thống phức tạp, sau đó biến mô hình này thành một mô phỏng tính toán và chạy mô phỏng để đưa ra dự đoán nhằm xác nhận mô hình.

Khi mô hình thất bại

Mô hình hóa được sử dụng trên các lĩnh vực khoa học - từ vật lý thiên văn và dự báo khí hậu đến tin sinh học và kinh tế. Nhưng có tranh luận ngày càng tăng về thực tế là khoa học này rất khó để xác nhận thông qua sinh sản.

Nó chỉ ra rằng mô tả đơn giản các phương pháp thử nghiệm bằng từ ngữ là không đủ. Điều đó một phần vì các ngôn ngữ tự nhiên như tiếng Anh đơn giản là quá mơ hồ để mô tả chính xác các tính toán. Rốt cuộc, có một lý do tại sao các lập trình viên sử dụng ngôn ngữ lập trình. Một trong những thách thức lớn nhất trong phát triển phần mềm là chuyển đổi các yêu cầu mơ hồ thành các thông số kỹ thuật chính xác về hành vi.

Con người - ngay cả các nhà khoa học - sau tất cả là ngụy biện. Chuyển đổi bất kỳ thông tin nào thành một chương trình hầu như luôn luôn giới thiệu các lỗi trên đường đi. Ví dụ, nhiều nhà khoa học phụ thuộc vào các công cụ khám phá dữ liệu như bảng tính, được thiết kế để dễ sử dụng và không mạnh mẽ. Rất dễ dàng chỉ đơn giản là tổng hợp phạm vi ô sai trong bảng tính mà không nhận được bất kỳ cảnh báo nào. Đây là một trong những sai sót phương pháp luận trong một bài viết mà Đảng Cộng hòa Hoa Kỳ đã sử dụng để dựa trên các chính sách ủng hộ thắt lưng buộc bụng của họ.

Tương tự như vậy nghiên cứu gần đây trên bảng tính 15,770 được công khai trong quá trình điều tra tập đoàn Enron của Hoa Kỳ cho thấy 24% của bảng tính chứa ít nhất một công thức có lỗi rõ ràng, chẳng hạn như thêm các ô trống.

Trong khoa học tự nhiên, Đài quan sát khí hậu sao Hỏa, một tàu thăm dò không gian được đưa ra trong 1998 để nghiên cứu khí hậu trên Sao Hỏa, đã bị mất một năm sau đó vì một phần của phần mềm điều khiển đã sử dụng nhầm lẫn đế quốc thay vì đơn vị số liệu. một nghiên cứu khác trong số chín triển khai độc lập của cùng một thí nghiệm khoa học địa lý - sử dụng cùng một bộ dữ liệu, thuật toán và ngôn ngữ lập trình - cho thấy rất ít sự đồng ý trong kết quả thu được.

Hơn nữa, ngay cả khi người đọc một bài nghiên cứu có thể diễn giải thành công ý nghĩa chính xác của người viết và sau đó dịch nó thành một chương trình một cách hoàn hảo thì vẫn có những cạm bẫy khi thực hiện nó. Một loại vấn đề đặc biệt phức tạp nảy sinh từ cách máy tính xử lý các con số: mặc dù chúng có thể xử lý các số nguyên như 42 và -17 với độ chính xác hoàn hảo, các kỹ thuật tiêu chuẩn để xử lý các số thực như ??3.14 và ?2?1.414 chỉ cho phép độ chính xác gần đúng. Những phép tính gần đúng này có nghĩa là các cách tính toán có vẻ tương đương với cùng một giá trị có thể mang lại kết quả khác nhau.

Vậy thì cái gì có thể làm được? Nếu ngay cả các chuyên gia phát triển phần mềm không thể tạo ra phần mềm chính xác, thì hy vọng gì cho các lập trình viên nghiệp dư như các nhà khoa học?

Một công việc là sản xuất các công cụ để thiết kế các ngôn ngữ lập trình dành riêng cho miền tên miền, từng được điều chỉnh theo một loại vấn đề cụ thể, chẳng hạn như hành vi của các tác nhân trong thị trường kinh tế hoặc khuếch tán thuốc qua các tế bào. Những mục đích này giúp các chuyên gia mô tả các tính toán trực tiếp theo các thuật ngữ quen thuộc dễ dàng hơn nhiều, thay vì phải mã hóa chúng một cách gián tiếp bằng ngôn ngữ lập trình đa năng.

Cách tiếp cận thứ hai tìm cách thiết kế các hệ thống kiểu biểu hiện rõ ràng hơn nhưng vẫn thân thiện với người dùng. Những điều này sẽ giúp dễ dàng bắt các lỗi ngớ ngẩn của Wap, chẳng hạn như các ô trống trong bảng tính hoặc trộn các giá trị trong các đơn vị khác nhau. Nó không thể loại trừ tất cả các lỗi logic mặc dù. Dòng thứ ba là phát triển các thư viện mã có thể sử dụng cho số học chính xác, tránh các vấn đề gần đúng.

Có mọi cơ hội những cách tiếp cận này có thể giúp khắc phục vấn đề trong tương lai, hoặc ít nhất là loại bỏ một số rủi ro. Rốt cuộc, thế giới cần khoa học và các nhà khoa học cần máy tính - điều đó không có khả năng thay đổi bất cứ lúc nào sớm.

Giới thiệu về Tác giả

Jeremy Gibbons, Giáo sư Điện toán, Đại học Oxford. Trưởng chủ đề nghiên cứu Ngôn ngữ lập trình.

Bài viết này ban đầu xuất hiện trên The Conversation

Sách liên quan:

at Thị trường InnerSelf và Amazon