Ciri khas model matematis yang dibuat saat ini adalah kompleksitasnya, yang berasal dari kompleksitas objek yang dimodelkan. Hal ini mendorong terbentuknya model yang semakin rumit dan kebutuhan untuk memanfaatkan sekaligus beberapa teori dari berbagai bidang ilmu, serta menggunakan metode komputasional modern dan teknologi komputasi untuk memperoleh dan menganalisis hasil simulasi. Dalam kasus objek yang kompleks, biasanya tidak mungkin memenuhi seluruh kebutuhan hanya dengan satu model. Sebagai gantinya, harus dibuat seluruh spektrum model dari objek yang sama (dalam beberapa kasus, sekumpulan model “bersarang” yang bersifat hierarkis), yang masing-masing paling cocok untuk menyelesaikan tugas tertentu yang diberikan kepadanya.
Kebutuhan akan konstruksi model berskala besar menuntut dikembangkannya seperangkat aturan dan pendekatan yang dapat mengurangi biaya pengembangan model serta menurunkan kemungkinan terjadinya kesalahan yang sulit dihilangkan di kemudian hari. Seperangkat aturan semacam itu dapat disebut sebagai teknologi pembuatan model matematis.
Proses konstruksi model matematis apa pun dapat digambarkan sebagai serangkaian tahapan berikut:
- Survei terhadap objek yang akan dimodelkan dan penyusunan kerangka acuan kerja untuk pengembangan model (perumusan masalah secara substantif);
- Perumusan konseptual dan matematis dari masalah;
- Analisis kualitatif dan verifikasi kebenaran model;
- Pemilihan dan justifikasi metode penyelesaian;
- Memperoleh solusi;
- Pengembangan algoritma penyelesaian dan penyelidikan sifat-sifatnya; implementasi algoritma sebagai perangkat lunak;
- Validasi model;
- Penerapan praktis model yang telah dibangun.
Model matematis — terutama yang menggunakan metode numerik dan teknologi komputasi — membutuhkan sumber daya intelektual, finansial, dan waktu yang signifikan untuk konstruksinya. Oleh karena itu, keputusan untuk mengembangkan model baru hanya diambil apabila tidak ada cara yang lebih sederhana untuk menyelesaikan masalah yang dihadapi (misalnya, dengan memodifikasi model yang sudah ada).
Kebutuhan akan model baru dapat muncul sehubungan dengan penelitian ilmiah, terutama pada titik pertemuan berbagai bidang ilmu. Setelah keputusan untuk membangun model matematis baru diambil, pihak pemberi tugas mencari tim untuk melaksanakan pekerjaan tersebut. Sebagai aturan, tim proyek terdiri atas para spesialis dengan latar belakang beragam: matematikawan terapan, pakar domain yang memahami secara mendalam objek yang dimodelkan, dan pengembang perangkat lunak. Setelah keputusan untuk membuat model dikonfirmasi dan tim proyek terbentuk, tahap survei dimulai. Tujuan utama tahap ini adalah menyusun pernyataan substantif dari masalah pemodelan. Pernyataan masalah substantif adalah daftar pertanyaan-pertanyaan kunci mengenai objek pemodelan, yang diungkapkan dalam bahasa sehari-hari, yang ingin dijawab oleh pihak pemberi tugas.
Menyusun daftar pertanyaan yang harus dijawab oleh model baru sering kali merupakan masalah tersendiri yang membutuhkan spesialis dengan pengetahuan dan kemampuan khusus. Mereka tidak hanya harus memiliki pemahaman menyeluruh tentang domain subjek dari upaya pemodelan dan menyadari kemampuan matematika komputasional serta teknologi komputasi modern, tetapi juga harus mampu berkomunikasi dengan orang lain — untuk menggali pengetahuan dari para praktisi ahli yang memiliki “naluri” intuitif terhadap objek pemodelan dan seluk-beluk perilakunya. Spesialis semacam ini mencakup, misalnya, analis sistem, insinyur sistem, dan periset operasi.
Berdasarkan analisis atas seluruh informasi yang terkumpul, perumus masalah harus mendefinisikan kebutuhan untuk model yang akan dibangun sedemikian rupa sehingga, di satu sisi, memenuhi keinginan pihak pemberi tugas, dan di sisi lain, memungkinkan model tersebut diimplementasikan dalam kerangka waktu dan anggaran yang ditetapkan. Analis sistem (atau periset operasi) harus memiliki kemampuan untuk menyaring hal-hal esensial yang benar-benar dapat diimplementasikan dari sejumlah besar informasi yang kurang terstruktur dan beragam mengenai objek pemodelan, serta dari berbagai keinginan dan kebutuhan pihak pemberi tugas yang diungkapkan secara samar.
Berdasarkan informasi yang terkumpul mengenai objek pemodelan, analis sistem (insinyur, periset operasi), bersama dengan pihak pemberi tugas, merumuskan pernyataan masalah substantif, yang sebagai aturan bersifat belum final dan dapat disempurnakan serta dielaborasi selama pengembangan model berlangsung. Namun, semua penyesuaian dan perubahan selanjutnya terhadap pernyataan substantif tersebut harus bersifat minor dan tidak mendasar.
Seluruh materi yang dikumpulkan selama survei — pengetahuan yang terakumulasi mengenai objek, pernyataan masalah substantif, kebutuhan tambahan untuk implementasi model dan penyajian hasil — didokumentasikan dalam bentuk kerangka acuan kerja untuk perancangan dan pengembangan model. Kerangka acuan kerja merupakan dokumen penutup dari tahap survei. Semakin lengkap informasi yang terkumpul mengenai objek selama survei, semakin jelas pernyataan masalah substantif dapat dirumuskan, semakin lengkap pengalaman dan pengetahuan yang terakumulasi dapat diperhitungkan, dan semakin banyak kesulitan pada tahap-tahap pengembangan model selanjutnya yang dapat dihindari.
Berbeda dengan perumusan substantif, perumusan konseptual dari masalah pemodelan biasanya disusun oleh anggota tim proyek tanpa keterlibatan perwakilan pihak pemberi tugas, berdasarkan kerangka acuan kerja yang dikembangkan pada tahap sebelumnya serta menggunakan pengetahuan yang tersedia mengenai objek pemodelan dan kebutuhan untuk model yang akan dibangun. Analisis dan diskusi bersama atas seluruh informasi yang tersedia mengenai objek pemodelan oleh para anggota tim memungkinkan terbentuknya model konseptual dari objek tersebut — sebuah sintesis dari model kognitif yang dikembangkan oleh masing-masing anggota tim.
Perumusan konseptual dari masalah pemodelan adalah daftar pertanyaan-pertanyaan kunci yang menjadi perhatian pihak pemberi tugas, yang diungkapkan dalam istilah disiplin ilmu tertentu, beserta seperangkat hipotesis mengenai sifat-sifat dan perilaku objek pemodelan.
Kesulitan terbesar dalam merumuskan pernyataan konseptual muncul pada model-model yang berada di titik pertemuan berbagai disiplin ilmu. Perbedaan dalam tradisi, konsep, dan bahasa yang digunakan untuk menggambarkan objek yang sama menghadirkan hambatan yang sangat serius dalam pembuatan model interdisipliner.
Perumusan konseptual yang telah selesai memungkinkan dihasilkannya perumusan matematis dari masalah pemodelan, yang mencakup seperangkat relasi matematis yang menggambarkan perilaku dan sifat-sifat objek pemodelan.
Perumusan matematis dari masalah pemodelan adalah seperangkat relasi matematis yang menggambarkan perilaku dan sifat-sifat objek pemodelan.
Sebuah model matematis dianggap benar apabila seluruh pemeriksaan verifikasi telah dilakukan dengan hasil positif: analisis dimensi, pemeriksaan orde besaran, pemeriksaan sifat ketergantungan, analisis kasus ekstrem, kondisi batas, makna fisis, dan penutupan matematis. Perumusan matematis bahkan lebih abstrak daripada perumusan konseptual, karena mereduksi masalah asli menjadi masalah yang murni matematis, yang untuknya telah tersedia metode penyelesaian yang berkembang baik.
Semua metode untuk menyelesaikan masalah yang menjadi “inti” dari model matematis dapat dibagi menjadi metode analitis dan metode algoritmik (numerik).
Perlu dicatat bahwa ketika solusi analitis digunakan untuk memperoleh hasil numerik, pengembangan algoritma terkait yang diimplementasikan pada komputer juga sering kali diperlukan.
Namun, solusi awal dalam kasus ini berbentuk ekspresi analitis (atau seperangkat ekspresi). Solusi yang berdasarkan metode algoritmik, sebaliknya, pada dasarnya tidak dapat direduksi menjadi solusi analitis eksak dari masalah yang bersangkutan.
Pemilihan metode penelitian tertentu sangat bergantung pada kualifikasi dan pengalaman anggota tim proyek. Metode analitis lebih memudahkan analisis hasil selanjutnya, tetapi hanya dapat diterapkan pada model yang relatif sederhana. Jika masalah matematis (bahkan dalam perumusan yang disederhanakan) memungkinkan solusi analitis, solusi tersebut tentu lebih diutamakan dibandingkan solusi numerik.
Metode algoritmik mereduksi masalah menjadi sebuah algoritma yang melakukan eksperimen komputasional menggunakan teknologi komputasi. Akurasi pemodelan dalam eksperimen semacam itu sangat bergantung pada metode yang dipilih dan parameternya. Metode algoritmik umumnya lebih memakan tenaga untuk diimplementasikan dan menuntut agar anggota tim proyek memiliki pengetahuan yang kuat tentang matematika komputasional, pustaka perangkat lunak khusus yang luas, dan sumber daya komputasi yang andal.
Metode numerik hanya dapat diterapkan pada masalah matematis yang terumuskan dengan baik (well-posed), yang secara signifikan membatasi penggunaannya dalam pemodelan matematis. Kesamaan dari semua metode numerik adalah reduksi masalah matematis menjadi masalah berdimensi hingga. Hal ini paling sering dicapai dengan mendiskretkan masalah asli — yaitu, dengan mengganti fungsi dari argumen kontinu menjadi fungsi dari argumen diskret. Penerapan metode numerik apa pun pasti memasukkan kesalahan ke dalam hasil. Tiga komponen utama kesalahan yang muncul dalam penyelesaian numerik dari masalah asli dapat dibedakan: kesalahan bawaan yang terkait dengan ketidaktepatan penetapan data masukan (kondisi awal dan batas, koefisien persamaan dan ruas kanan); kesalahan diskretisasi yang terkait dengan peralihan ke analog diskret dari masalah asli; dan kesalahan pembulatan yang terkait dengan presisi terbatas dari bilangan yang direpresentasikan dalam komputer.
Sebuah kebutuhan alami untuk setiap algoritma komputasional tertentu adalah keselarasan orde besaran dari ketiga jenis kesalahan tersebut.
Metode numerik, atau metode aproksimasi, selalu diimplementasikan sebagai algoritma komputasional. Oleh karena itu, semua kebutuhan yang berlaku untuk algoritma pada umumnya juga berlaku untuk algoritma komputasional. Pertama dan terutama, sebuah algoritma harus dapat dilaksanakan (feasible) — algoritma tersebut harus mampu menyelesaikan masalah dalam waktu komputasi yang dapat diterima. Karakteristik penting lain dari sebuah algoritma adalah akurasinya — kemampuan untuk memperoleh solusi dari masalah asli dengan presisi tertentu dalam jumlah operasi yang berhingga.
Waktu eksekusi sebuah algoritma bergantung pada jumlah operasi yang diperlukan untuk mencapai akurasi yang ditentukan. Untuk setiap masalah matematis, sebagai aturan, dapat diajukan beberapa algoritma yang menghasilkan solusi dengan akurasi yang diinginkan, tetapi dengan jumlah operasi yang berbeda-beda. Algoritma yang membutuhkan lebih sedikit operasi untuk mencapai akurasi yang sama disebut lebih ekonomis, atau lebih efisien.
Selama eksekusi algoritma komputasional, kesalahan tertentu muncul pada setiap langkah komputasi. Dari satu langkah ke langkah berikutnya, kesalahan ini dapat bertambah besar atau tidak bertambah besar (dan dalam beberapa kasus bahkan dapat mengecil). Jika kesalahan bertambah besar tanpa batas selama komputasi, algoritma tersebut dikatakan tidak stabil, atau divergen. Sebaliknya, algoritma tersebut dikatakan stabil, atau konvergen.
Keragaman metode numerik yang sangat besar membuat pemilihan metode tertentu dalam setiap kasus spesifik menjadi cukup sulit. Karena beberapa metode algoritmik alternatif dapat digunakan untuk mengimplementasikan suatu model tertentu, pemilihan metode spesifik dilakukan dengan mempertimbangkan metode mana yang paling sesuai dengan model tersebut dari segi efisiensi, stabilitas, dan akurasi hasil, serta metode mana yang paling dikuasai oleh anggota tim proyek.
Dalam pembuatan berbagai sistem perangkat lunak yang digunakan untuk menyelesaikan beragam tugas penelitian, rancang-bangun teknik, dan manajemen, model matematis pada umumnya berfungsi sebagai fondasi saat ini. Hal ini menimbulkan kebutuhan untuk mengimplementasikan model sebagai program komputer. Proses pengembangan perangkat lunak yang andal dan efisien tidak kalah kompleksnya dibandingkan seluruh tahapan pembuatan model matematis sebelumnya. Penyelesaian tugas ini secara berhasil hanya dimungkinkan dengan penguasaan yang mumpuni atas bahasa dan teknologi pemrograman modern, pengetahuan tentang kemampuan komputasi, perangkat lunak yang tersedia, serta spesifikasi implementasi metode matematika komputasional.
Proses pengembangan perangkat lunak dapat diuraikan ke dalam beberapa tahapan:
- penyusunan kerangka acuan kerja untuk pengembangan perangkat lunak;
- perancangan struktur sistem perangkat lunak;
- pengkodean algoritma;
- pengujian dan penyahgalatan (debugging);
- pemeliharaan dan pengoperasian.
Kerangka acuan kerja untuk pengembangan perangkat lunak didokumentasikan dalam bentuk spesifikasi. Pada tahap perancangan, struktur keseluruhan dari sistem perangkat lunak dibentuk. Seluruh program dibagi menjadi modul-modul perangkat lunak. Untuk setiap modul, kebutuhan fungsional dirumuskan dan algoritma yang mengimplementasikan fungsi-fungsi tersebut dikembangkan. Skema interaksi antarmodul — yang dikenal sebagai diagram alir data dari sistem perangkat lunak — didefinisikan. Rencana pengujian dikembangkan, dan data masukan untuk pengujian modul-modul individual serta sistem secara keseluruhan ditetapkan.
Sebagian besar program yang mengimplementasikan model matematis terdiri atas tiga bagian utama:
- prapemroses (persiapan dan verifikasi data masukan model);
- penyelesai/solver (menyelesaikan masalah, melaksanakan eksperimen komputasional);
- pascapemroses (visualisasi dan penyajian hasil).
Perhatian yang besar harus diberikan pada penerapan teknologi pemrograman modern. Tujuan dari teknologi semacam itu, pertama dan terutama, adalah meningkatkan keandalan perangkat lunak dan produktivitas pengembang. Semakin serius dan berskala besar sebuah proyek perangkat lunak, semakin penting pula persoalan penerapan teknologi pemrograman modern. Mengabaikan hal-hal ini dapat menyebabkan keterlambatan waktu yang signifikan dan menurunnya keandalan sistem perangkat lunak.
Faktor krusial dalam menjamin keandalan dan waktu pengembangan yang singkat dari sebuah sistem perangkat lunak untuk menyelesaikan kelas masalah tertentu adalah tersedianya pustaka modul perangkat lunak yang saling kompatibel dan telah dikembangkan dengan baik. Sebuah program akan lebih andal dan dapat dikembangkan lebih cepat apabila komponen perangkat lunak standar digunakan semaksimal mungkin.
Kesesuaian (adekuasi) sebuah model matematis adalah sejauh mana hasil yang diperoleh dari model yang dikembangkan sesuai dengan data eksperimen atau hasil dari masalah acuan (benchmark).
Validasi model memiliki dua tujuan:
- memverifikasi keabsahan seperangkat hipotesis yang dirumuskan pada tahap perumusan konseptual dan matematis. Verifikasi hipotesis hendaknya dilakukan hanya setelah metode penyelesaian telah diverifikasi dan perangkat lunak telah menjalani penyahgalatan (debugging) menyeluruh serta penghilangan semua kesalahan dan konflik;
- memastikan bahwa akurasi hasil sesuai dengan akurasi yang ditetapkan dalam kerangka acuan kerja.
Validasi model matematis yang dikembangkan dilakukan dengan membandingkannya terhadap data eksperimen yang tersedia mengenai objek nyata atau terhadap hasil dari model lain yang telah dibuat sebelumnya dan telah terbukti andal. Dalam kasus pertama, disebut validasi melalui perbandingan dengan eksperimen; dalam kasus kedua, perbandingan dengan hasil masalah acuan (benchmark).
Persoalan akurasi pemodelan bergantung pada kebutuhan yang diberlakukan pada model dan tujuan penggunaannya. Akurasi hasil eksperimen atau kekhususan perumusan masalah acuan juga harus diperhitungkan. Untuk model yang dimaksudkan untuk perhitungan kasar dan orde besaran, akurasi sebesar 10–15% dianggap memuaskan. Untuk model yang digunakan dalam sistem kendali dan pemantauan, akurasi yang dibutuhkan dapat mencapai 1–2% atau bahkan lebih tinggi.
Ketika muncul persoalan mengenai kesesuaian model, koreksi harus dimulai dengan analisis sistematis atas seluruh kemungkinan penyebab ketidaksesuaian antara hasil pemodelan dan hasil eksperimen. Pertama, model harus diselidiki dan tingkat kesesuaiannya dinilai untuk berbagai nilai parameter variabel (kondisi awal dan batas, parameter yang mencirikan sifat-sifat objek yang dimodelkan). Jika model tersebut tidak sesuai pada rentang parameter yang menjadi perhatian peneliti, dapat dilakukan upaya untuk menyempurnakan nilai konstanta dan parameter awal model. Jika hal ini masih belum memberikan hasil yang positif, maka satu-satunya cara yang tersisa untuk memperbaiki model adalah dengan meninjau kembali sistem hipotesis yang telah diterapkan. Keputusan ini pada dasarnya berarti kembali ke tahap kedua dari proses pengembangan model dan dapat mengakibatkan tidak hanya perubahan besar pada perumusan matematis, tetapi juga pada metode penyelesaian (misalnya, peralihan dari metode analitis ke metode numerik), pengerjaan ulang perangkat lunak secara menyeluruh, dan siklus baru validasi model. Oleh karena itu, keputusan untuk meninjau kembali sistem hipotesis yang telah diterapkan harus dipertimbangkan secara matang dan hanya diambil setelah semua cara lain untuk memperbaiki kesesuaian model telah dicoba.
Model deskriptif dirancang untuk mencirikan parameter yang diteliti dalam suatu fenomena atau proses tertentu, serta untuk menyelidiki pola-pola yang mengatur perubahan parameter tersebut. Model-model ini dapat digunakan untuk mempelajari sifat-sifat dan perilaku objek yang diteliti di bawah berbagai kombinasi data masukan dan kondisi operasi; dalam menyusun model optimasi; dan dalam membangun model simulasi dari sistem yang kompleks.
Model yang dikembangkan untuk tujuan penelitian biasanya tidak dikembangkan hingga tingkat sistem perangkat lunak yang dimaksudkan untuk didistribusikan kepada pengguna eksternal. Umur pemakaiannya biasanya terbatas pada durasi program penelitian di bidang terkait. Model-model ini dicirikan oleh sifat eksploratifnya, penggunaan prosedur dan algoritma komputasional baru, serta antarmuka pengguna yang belum berkembang.
Model dan sistem perangkat lunak yang dibangun berdasarkan model tersebut, yang dimaksudkan untuk didistribusikan kepada pengguna eksternal atau untuk dirilis secara komersial, memiliki antarmuka yang dikembangkan dengan baik dan ramah pengguna serta prapemroses dan pascapemroses yang andal. Model-model ini biasanya didasarkan pada perumusan dan prosedur komputasional yang telah teruji dan mapan. Namun, perlu diingat bahwa model semacam itu hanya dirancang untuk menyelesaikan kelas masalah tertentu yang telah didefinisikan secara jelas.
Terlepas dari tujuan penerapan model, tim pengembang berkewajiban melakukan analisis kualitatif maupun kuantitatif terhadap hasil pemodelan.
Melalui pengerjaan model, para pengembang menjadi spesialis dalam domain yang terkait dengan objek pemodelan. Mereka mengembangkan pemahaman yang cukup mendalam mengenai sifat-sifat objek tersebut dan mampu memprediksi serta menjelaskan perilakunya.
Dengan demikian, analisis menyeluruh atas hasil pemodelan memungkinkan untuk:
- memodifikasi objek yang sedang dipertimbangkan, menemukan karakteristik optimalnya, atau setidak-tidaknya memperhitungkan perilaku dan sifat-sifatnya dengan sebaik mungkin;
- menetapkan batas-batas domain penerapan model;
- memverifikasi keabsahan hipotesis yang diterapkan pada tahap perumusan matematis dan menilai kemungkinan penyederhanaan model untuk meningkatkan efisiensinya sambil mempertahankan akurasi yang dibutuhkan;
- menunjukkan arah pengembangan model lebih lanjut.