Ilmu Bergantung Pada Komputer Pemodelan - Jadi Apa Yang Terjadi Ketika Hal Goes Salah?

Dari penemuan penicillin yang berubah menjadi teori relativitas dan mekanika kuantum, sains berkembang dengan kecepatan yang membingungkan bahkan sebelum ada komputer. Sebagian besar dari ini adalah ke robustness dari metode ilmiah: hasil ilmiah divalidasi dengan direplikasi dan diperluas oleh ilmuwan lain.

Tapi cara kita melakukan sains berubah - sekarang kita semakin bergantung pada model komputer yang kompleks untuk memahami alam. Dan ternyata model-model ini hampir mustahil untuk diproduksi ulang - yang berarti batu ujian penting dari ilmu pengetahuan sedang ditantang. Jadi, apa dampak dunia nyata dari perubahan ini dan apa yang bisa kita lakukan?

Ilmu pra-modern - yang dikenal sebagai "filsafat alam" - bersifat empiris. Ilmu empiris menggunakan pengamatan masa lalu untuk membuat prediksi tentang masa depan, yang kemudian dapat diuji. Tycho Brahe, astronom Denmark 16 abad, berhasil melakukan observasi yang akurat dan menyeluruh terhadap langit dengan cara ini.

Ilmu pengetahuan modern, bagaimanapun, adalah teori. ilmu teoritis juga membuat prediksi, tetapi berasal mereka dari model matematika dan bukan dari pengamatan sebelumnya. Pikirkan hukum Isaac Newton tentang gerak, seperti hukum kuadrat terbalik gravitasi.

Misalnya, ada persamaan yang menggambarkan orbit Bumi di sekitar matahari. Persamaan ini dapat digunakan untuk membangun model komputer dimana Anda bisa memasukkan variabel tertentu dan melihat bagaimana solusi berubah. Anda bisa saja memasang tanggal yang akan datang dan membacakan posisi Bumi pada tanggal tersebut. Anda juga bisa menggunakan program yang sama untuk memodelkan sistem planet lain - semuanya didasarkan pada matematika yang sama. Yang harus Anda lakukan adalah memasang berbagai massa dan berbagai sifat tubuh lainnya yang terlibat.


grafis berlangganan batin


Persamaan matematika seperti itu bagus bila tersedia - namun seringkali tidak. Sebagai contoh, kita tahu bahwa tidak ada persamaan sederhana yang memecahkan apa yang disebut "Masalah tiga tubuh", Yang menggambarkan tiga badan mengorbit di sekitar dan mempengaruhi satu sama lain dengan gaya gravitasi - seperti bulan, bumi dan matahari.

Sebagian besar sains saat ini berhubungan dengan sistem yang lebih rumit lagi, dan sama sekali tidak memiliki solusi yang tepat. Model seperti itu harus "komputasi" - menggambarkan bagaimana sebuah sistem berubah dari satu instan ke yang berikutnya. Tapi tidak ada cara untuk menentukan keadaan pastinya pada suatu waktu di masa depan selain dengan "mensimulasikan" evolusinya dengan cara ini. Peramalan cuaca adalah contoh yang akrab; Sampai munculnya komputer di 1950, tidak mungkin memprediksi cuaca di masa depan lebih cepat daripada yang sebenarnya terjadi.

Ilmu pengetahuan saat ini biasanya terdiri dari merancang model matematis yang menggambarkan sistem yang rumit, kemudian mengubahnya menjadi simulasi komputasi, dan menjalankan simulasi untuk membuat prediksi untuk memvalidasi model.

Saat pemodelan gagal

Pemodelan digunakan di seluruh bidang sains - mulai dari astrofisika dan prediksi iklim untuk bioinformatika dan ekonomi. Tapi ada meningkatkan perdebatan tentang fakta bahwa sains ini sulit untuk divalidasi melalui reproduksi.

Ternyata yang hanya menggambarkan metode eksperimental dalam kata-kata saja tidaklah cukup. Itu sebagian karena bahasa alami seperti bahasa Inggris terlalu samar untuk menggambarkan perhitungan secara tepat. Bagaimanapun, ada alasan mengapa programmer menggunakan bahasa pemrograman. Salah satu tantangan terbesar dalam pengembangan perangkat lunak adalah mengubah persyaratan yang samar menjadi spesifikasi perilaku yang tepat.

Manusia - bahkan ilmuwan - bagaimanapun juga akan lenyap. Mengubah informasi apapun menjadi sebuah program hampir selalu memperkenalkan bug di sepanjang jalan. Sebagai contoh, banyak ilmuwan bergantung pada alat eksplorasi data seperti spreadsheet, yang dirancang untuk kemudahan penggunaan dan bukan untuk ketahanan. Sangat mudah untuk meringkas rentang sel yang salah dalam spreadsheet, tanpa mendapat peringatan. Ini adalah salah satu dari kelemahan metodologis dalam sebuah makalah yang digunakan oleh Partai Republikan AS untuk mendasarkan kebijakan pro-penghematan mereka.

Demikian pula a Studi terbaru pada spreadsheet 15,770 yang dipublikasikan selama penyelidikan terhadap perusahaan AS Enron menunjukkan bahwa 24% dari spreadsheet yang mengandung setidaknya satu formula memiliki bug yang jelas, seperti menambahkan sel kosong.

Dalam ilmu alam, Mars Climate Observer, sebuah probe ruang yang diluncurkan di 1998 untuk mempelajari iklim di Mars, hilang setahun kemudian karena salah satu bagian perangkat lunak kontrol secara keliru menggunakan kekaisaran dan bukan unit metrik. Studi lain sembilan implementasi independen dari eksperimen geoscience sama - menggunakan dataset yang sama, algoritma, dan bahasa pemrograman - menunjukkan sangat sedikit kesepakatan dalam hasil yang diperoleh.

Terlebih lagi, bahkan jika pembaca makalah penelitian berhasil menafsirkan makna yang tepat dari penulisnya, dan kemudian dengan sempurna menerjemahkannya ke dalam sebuah program, masih ada kendala dalam melaksanakannya. Salah satu kelompok masalah rumit muncul dari cara komputer menangani bilangan: meskipun komputer dapat memanipulasi bilangan bulat seperti 42 dan -17 dengan akurasi sempurna, teknik standar untuk memanipulasi bilangan real seperti 3.14 dan 2 1.414 hanya mengizinkan akurasi perkiraan. Perkiraan ini berarti bahwa cara-cara yang tampaknya setara untuk menghitung nilai yang sama dapat dilakukan menghasilkan hasil yang berbeda.

Jadi, apa yang bisa dilakukan? Jika pengembang perangkat lunak pakar pun tidak dapat dengan andal menghasilkan perangkat lunak yang benar, harapan apa yang ada bagi pemrogram amatir seperti ilmuwan?

Salah satu bidang kerja adalah menghasilkan alat untuk merancang bahasa pemrograman "domain-spesifik", masing-masing disesuaikan dengan kelas masalah tertentu, seperti perilaku agen di pasar ekonomi atau difusi obat-obatan di sel-sel. Ini bertujuan agar lebih mudah bagi para spesialis untuk menggambarkan perhitungan secara langsung dalam istilah yang sudah dikenal, daripada harus menyandikannya secara tidak langsung dalam bahasa pemrograman tujuan umum.

Pendekatan kedua berusaha mendesain sistem tipe yang lebih ekspresif tapi tetap ramah pengguna untuk program. Ini akan mempermudah untuk menangkap kesalahan "konyol", seperti sel kosong di spreadsheet, atau mencampur nilai pada unit yang berbeda. Ini tidak bisa mengesampingkan semua kesalahan logika sekalipun. Baris ketiga adalah mengembangkan perpustakaan kode yang dapat digunakan untuk aritmatika yang tepat, menghindari masalah pendekatan.

Ada setiap kesempatan pendekatan ini dapat membantu memperbaiki masalah ke depan, atau setidaknya menghilangkan beberapa risiko. Bagaimanapun, dunia membutuhkan sains dan ilmuwan membutuhkan komputer - bagaimanapun, hal itu tidak mungkin berubah dalam waktu dekat.

Tentang Penulis

Jeremy Gibbons, Profesor Komputasi, Universitas Oxford. Kepala tema penelitian Bahasa Pemrograman.

Artikel ini awalnya muncul pada Percakapan The

Buku terkait:

at Pasar InnerSelf dan Amazon