Science Relies On Modeling Komputer - Jadi Apa Yang Terjadi Apabila Ia Pergi Salah?

Dari penemuan penisilin yang berubah-ubah kepada teori-teori relativiti dan mekanik kuantum, sains berkembang dengan kelajuan minda yang membosankan sebelum ada komputer. Kebanyakan dari ini adalah untuk kekukuhan kaedah saintifik: keputusan saintifik disahkan dengan direplikasi dan dilanjutkan oleh saintis lain.

Tetapi cara kita melakukan sains berubah - kini kita semakin bergantung pada model komputer yang kompleks untuk memahami alam semula jadi. Dan ternyata bahawa model-model ini hampir tidak mungkin untuk menghasilkan semula - yang bermaksud batu ujian penting sains ditantang. Jadi apakah kesan-kesan dunia nyata perubahan ini dan apa yang boleh kita lakukan?

Sains pra-moden - yang dikenali sebagai "falsafah semula jadi" - adalah empirikal. Sains empirikal menggunakan pemerhatian lepas untuk membuat ramalan tentang masa depan, yang kemudiannya dapat diuji. Tycho Brahe, ahli astronomi Denmark abad 16, berjaya membuat pemerhatian yang tepat dan komprehensif di langit dengan cara ini.

Walau bagaimanapun sains moden adalah teori. Sains teori juga membuat ramalan, tetapi ia menghasilkannya daripada model matematik dan bukannya dari pemerhatian sebelumnya. Fikirkan undang-undang gerakan Isaac Newton, seperti undang-undang graviti persegi songsang.

Contohnya, terdapat persamaan yang menggambarkan orbit bumi mengelilingi matahari. Persamaan ini boleh digunakan untuk membina model komputer di mana anda boleh memasangkan pembolehubah tertentu dan melihat bagaimana penyelesaiannya berubah. Anda hanya boleh memasang tarikh yang akan datang dan membuang kedudukan Bumi pada tarikh tersebut. Anda juga boleh menggunakan program yang sama untuk memodelkan sistem planet lain - semuanya berdasarkan matematik yang sama. Apa yang perlu anda lakukan adalah pasangkan kepada orang ramai yang berlainan dan pelbagai lagi sifat badan yang terlibat.


grafik langganan dalaman


Persamaan matematik sedemikian besar apabila ia boleh didapati - tetapi selalunya ia tidak. Sebagai contoh, kita tahu bahawa tidak ada persamaan mudah yang menyelesaikan apa yang dipanggil "masalah tiga badan"Yang menggambarkan tiga badan yang mengorbit dan mempengaruhi satu sama lain oleh daya graviti - seperti bulan, Bumi dan matahari.

Banyak sains semasa menangani sistem yang lebih rumit, dan sama sekali tidak mempunyai penyelesaian yang tepat. Model sedemikian perlu "dikompilasi" - menerangkan bagaimana sistem berubah dari satu masa ke masa berikutnya. Tetapi tidak ada cara untuk menentukan keadaan yang tepat pada suatu masa di masa depan selain dengan "mensimulasikan" evolusinya dengan cara ini. Ramalan cuaca adalah contoh biasa; sehingga kedatangan komputer di 1950s, adalah mustahil untuk meramalkan cuaca masa depan lebih cepat daripada yang sebenarnya terjadi.

Sains semasa biasanya terdiri daripada model matematik yang menggambarkan sistem rumit, kemudian mengubahnya menjadi simulasi pengiraan, dan menjalankan simulasi untuk membuat ramalan untuk mengesahkan model.

Apabila pemodelan gagal

Pemodelan digunakan di seluruh bidang saintifik - dari astrofizik dan ramalan cuaca kepada bioinformatik dan ekonomi. Tetapi ada meningkatkan perdebatan mengenai hakikat bahawa sains ini sukar untuk mengesahkan melalui pembiakan.

Ternyata hanya menggambarkan kaedah eksperimen dalam kata-kata tidak mencukupi. Itu sebahagiannya kerana bahasa semulajadi seperti bahasa Inggeris tidak begitu jelas untuk menerangkan perhitungan dengan tepat. Terdapat, bagaimanapun, satu sebab mengapa pengaturcara menggunakan bahasa pengaturcaraan. Salah satu cabaran terbesar dalam pembangunan perisian adalah untuk menukar keperluan samar-samar ke spesifikasi tingkah laku yang tepat.

Manusia - walaupun saintis - adalah selepas semua tidak dapat dimengerti. Mengubah apa-apa maklumat ke dalam program hampir selalu memperkenalkan pepijat di sepanjang jalan. Sebagai contoh, banyak saintis bergantung kepada alat penerokaan data seperti spreadsheet, yang direka untuk kemudahan penggunaan dan bukan untuk kekukuhan. Ia sangat mudah hanya untuk meringkaskan pelbagai sel yang salah dalam hamparan, tanpa mendapat sebarang amaran. Ini adalah salah satu daripada kecacatan metodologi dalam sebuah kertas bahawa Parti Republikan AS digunakan untuk mendasarkan dasar pro-penjimatan mereka.

Begitu juga a kajian baru-baru pada hamparan 15,770 yang dibuat umum semasa siasatan ke syarikat AS Enron menunjukkan bahawa 24% daripada spreadsheet yang mengandungi sekurang-kurangnya satu formula mempunyai bug nyata, seperti menambah sel kosong.

Dalam sains semulajadi, yang Pemerhati Iklim Marikh, satu siasatan angkasa yang dilancarkan di 1998 untuk mengkaji iklim di Marikh, telah hilang satu tahun kemudian kerana satu bahagian perisian kawalan secara keliru menggunakan empayar dan bukan unit metrik. Satu lagi kajian daripada sembilan pelaksanaan bebas eksperimen geosains yang sama - menggunakan dataset yang sama, algoritma, dan bahasa pengaturcaraan - menunjukkan persetujuan yang sangat kecil dalam hasil yang diperoleh.

What’s more, even if the reader of a research paper can successfully interpret the writer’s precise meaning, and then faultlessly translate it into a program, there are still pitfalls in executing it. One particularly tricky class of problems arises from how computers handle numbers: although they can manipulate integers such as 42 and -17 with perfect accuracy, standard techniques for manipulating real numbers such ??3.14 and ?2?1.414 permit only approximate accuracy. These approximations mean that apparently equivalent ways of computing the same value can hasil yang berbeza.

Jadi, apa yang boleh dilakukan? Sekiranya pemaju perisian pakar tidak dapat menghasilkan perisian yang tepat, harapan apa yang ada untuk pengaturcara amatur seperti saintis?

Satu barisan kerja adalah untuk menghasilkan alat-alat untuk mereka bentuk bahasa pengaturcaraan "khusus domain", masing-masing disesuaikan dengan masalah kelas tertentu, seperti tingkah laku agen dalam pasaran ekonomi atau penyebaran dadah di seluruh sel. Ini bertujuan untuk menjadikannya lebih mudah bagi pakar untuk menerangkan perhitungan secara langsung dalam istilah yang biasa, dan bukannya menyandarkannya secara tidak langsung dalam bahasa pengaturcaraan umum.

Pendekatan kedua bertujuan untuk reka bentuk yang lebih ekspresif tetapi masih mesra pengguna "sistem jenis" untuk program. Ini akan memudahkan untuk menangkap ralat "bodoh", seperti sel kosong dalam spreadsheet, atau mencampurkan nilai dalam unit yang berbeza. Ia tidak boleh menolak semua kesilapan logik walaupun. Baris ketiga adalah untuk membangunkan perpustakaan yang boleh digunakan kod untuk aritmetik yang tepat, mengelakkan masalah penghampiran.

Terdapat setiap peluang pendekatan ini dapat membantu menyelesaikan masalah ke depan, atau sekurang-kurangnya menghapuskan beberapa risiko. Lagipun, dunia memerlukan sains dan saintis memerlukan komputer - itu tidak mungkin berubah dalam masa terdekat.

Tentang Pengarang

Jeremy Gibbons, Profesor Pengkomputeran, University of Oxford. Ketua tema penyelidikan Bahasa Pemrograman.

Artikel ini pada asalnya muncul pada Perbualan ini

Tempah berkaitan:

at InnerSelf Market dan Amazon