Di Balik Kode: Keterampilan Kunci untuk Proyek Otomasi yang Sukses
Menerjemahkan persamaan matematika menjadi kode adalah bagian dari, tetapi juga terpisah dari, pengembangan proyek otomasi yang melibatkan solusi komputer. Kita harus mempertimbangkan efektivitas persamaan matematika relatif terhadap kebutuhan proyek yang sedang dikembangkan. Kita juga harus mempertimbangkan metode solusi untuk menyelesaikan persamaan dengan data dan waktu yang terlibat.
Masalah data yang mencapai algoritma solusi harus terdeteksi, dikontrol, dan jika memungkinkan, dikoreksi. Manajemen presisi harus terjadi pada berbagai tahap proses. Kesalahan yang dibuat di sepanjang jalan oleh proses solusi dan implementasi harus terdeteksi dan dikelola.
Ini adalah subjek untuk buku, tetapi semoga proses pemikiran dapat dilanjutkan dengan beberapa ratus kata.
Pertama, ingatlah bahwa tidak semua yang tidak kita buat secara deterministik adalah, secara default, stokastik. Komputer dan prosedur yang digunakan untuk memecahkan masalah dapat mengintroduksi bias yang tidak jelas yang, dengan analisis, jelas deterministik—hanya tidak sengaja. Yang sederhana yang mengilustrasikan masalah berkaitan dengan presisi. Dalam banyak kasus, kita ingin mengira bahwa nilai tengah tepat atau setidaknya dibulatkan menggunakan kriteria yang kita ketahui dari matematika.
Pada berbagai level, truncation—daripada pembulatan—memaksa angka yang dihitung untuk muat ke dalam ukuran variabel yang disediakan untuknya. Kadang-kadang ini tidak masalah, tetapi kadang-kadang ini mengintroduksi bias. Bisa berguna untuk menggunakan prosedur dan praktik matematika untuk secara aktif mengelola nilai tersimpan dari semua nilai yang dihitung sehingga mesin solusi mempertahankan akurasi yang diharapkan untuknya. Ini biasanya diajarkan dalam kelas pemrograman, dan sering diabaikan karena memahami dan mengelola presisi itu membosankan dan melelahkan.
Kadang-kadang pengamatan kurang konsisten (misalnya, karena masalah sampling atau sinkronisasi) atau presisi yang andal pada saat pengukuran (misalnya, karena ketidakstabilan transien). Seringkali ada cara untuk membersihkannya (misalnya, dengan pemeriksaan batas, analisis data, dan teknik regresi). Seringkali ada cara untuk membuat sesuatu lebih dari yang diungkapkan oleh aliran data, tetapi banyak di antaranya melibatkan konjecture programmer tentang apa yang mungkin terjadi. Hati-hati dengan ini—hasil yang baik terlalu penting untuk ditolak a priori, tetapi hasil yang salah bisa lebih merugikan dari nilai potensi peningkatan yang dihasilkannya.
Kadang-kadang prosedur solusi itu sendiri, bahkan dengan manajemen presisi yang tepat, dapat memperkenalkan masalah. Misalkan kita ingin mengintegrasikan fungsi streaming dari sekarang hingga tak hingga. Bahkan kesalahan atau ambigu yang sangat kecil, tidak signifikan dalam satu perhitungan, tumbuh menjadi nilai astronomis ketika secara berkala terakumulasi dalam jangka waktu yang lama. Ini dapat bercampur dengan pembulatan dan truncation dan menghasilkan perbedaan karena pengukuran atau metodologi integrasi yang terus bias. Ini dapat muncul seiring waktu dalam kesalahan besar, misalnya, pada istilah "I" dari kontroler PID. Ada prosedur kontrol data dan manajemen presisi, serta cara matematis untuk mendekati masalah untuk solusi yang diperlukan yang menyelesaikan masalah-masalah ini, tetapi jalan untuk menemukannya dapat memalukan.
Kadang-kadang matematika diterapkan pada kebutuhan tanpa memahami masalah secara penuh, matematika, atau apa yang sebenarnya dirancang oleh matematika. Misalnya, mungkin mungkin kadang-kadang mendeteksi situasi dan kadang-kadang sepenuhnya melewatinya menggunakan matematika yang sama persis.