Ang natatanging katangian ng mga matematikal na modelong nililikha ngayon ay ang kanilang kumplikadong katangian, na nagmumula sa kumplikadong katangian ng mga bagay na minomodelo. Ito ay humahantong sa lalo pang detalyadong mga modelo at sa pangangailangang sabay na kumuha mula sa ilang teorya mula sa iba’t ibang larangan ng kaalaman, gayundin sa paggamit ng mga modernong computational na pamamaraan at teknolohiyang computing para sa pagkuha at pagsusuri ng mga resulta ng simulasyon. Sa kaso ng mga kumplikadong bagay, karaniwang imposibleng matugunan ang lahat ng rekisito sa loob ng iisang modelo. Sa halip, kailangang lumikha ng isang buong hanay ng mga modelo ng iisang bagay (sa ilang kaso, isang hierarchical na set ng mga “nakapaloob” na modelo), kung saan ang bawat isa ay pinakaangkop sa paglutas ng partikular na gawaing itinalaga rito.
Ang pangangailangan para sa malakihang pagbuo ng modelo ay humihiling ng pagbuo ng isang hanay ng mga alituntunin at lapit na magpapababa sa gastos ng pagbuo ng modelo at magpapaliit sa posibilidad ng mga error na mahirap tanggalin sa kalaunan. Ang gayong hanay ng mga alituntunin ay maaaring tawaging teknolohiya para sa paglikha ng mga matematikal na modelo.
Ang proseso ng pagbuo ng anumang matematikal na modelo ay maaaring ilarawan bilang isang sunod-sunod na mga yugto:
- Pagsisiyasat sa bagay na imomodelo at paghahanda ng terms of reference para sa pagbuo ng modelo (substantibong pagbabalangkas ng suliranin);
- Konseptwal at matematikal na pagbabalangkas ng suliranin;
- Kwalitatibong pagsusuri at pagpapatunay sa kawastuhan ng modelo;
- Pagpili at pagbibigay-katwiran sa mga pamamaraan ng solusyon;
- Pagkuha ng solusyon;
- Pagbuo ng algorithm ng solusyon at pagsisiyasat sa mga katangian nito; pagpapatupad ng algorithm bilang software;
- Validation ng modelo;
- Praktikal na aplikasyon ng nabuong modelo.
Ang mga matematikal na modelo — lalo na ang mga gumagamit ng mga numerical na pamamaraan at teknolohiyang computing — ay nangangailangan ng malaking pandama, pinansyal, at oras na mapagkukunan para sa kanilang pagbuo. Kaya, ang desisyon na bumuo ng bagong modelo ay ginagawa lamang kapag walang mas simpleng paraan upang lutasin ang mga suliranin na kinakaharap (halimbawa, sa pamamagitan ng pagbabago ng isang umiiral na modelo).
Ang pangangailangan para sa bagong modelo ay maaaring lumitaw kaugnay ng pananaliksik pang-agham, lalo na sa pagsalubong ng iba’t ibang larangan ng kaalaman. Kapag naisagawa na ang desisyong bumuo ng bagong matematikal na modelo, ang nagpapagawa ay naghahanap ng isang pangkat upang isagawa ang gawain. Kadalasan, kasama sa pangkat ng proyekto ang mga espesyalista mula sa iba’t ibang larangan: mga applied mathematician, mga eksperto sa larangan na lubos na pamilyar sa bagay na minomodelo, at mga developer ng software. Kapag nakumpirma na ang desisyong lumikha ng modelo at nabuo na ang pangkat ng proyekto, nagsisimula ang yugto ng pagsisiyasat. Ang pangunahing layunin ng yugtong ito ay ang paghahanda ng substantibong pagbabalangkas ng suliranin sa pagmomodelo. Ang substantibong pagbabalangkas ng suliranin ay isang listahan ng mga pangunahing tanong tungkol sa bagay na minomodelo, na inihahayag sa payak na wika, na nais sagutin ng nagpapagawa.
Ang paghahanda ng listahan ng mga tanong na dapat sagutin ng bagong modelo ay kadalasang isang suliranin mismo, na nangangailangan ng mga espesyalistang may partikular na kaalaman at kakayahan. Kailangan nilang hindi lamang lubos na maunawaan ang larangan ng paksa ng pagsisikap sa pagmomodelo at malaman ang mga kakayahan ng modernong computational mathematics at teknolohiyang computing, kundi kailangan din nilang makipag-usap sa mga tao — upang mahikayat ang mga praktikal na eksperto na may intuwitibong “pakiramdam” sa bagay na minomodelo at sa mga detalye ng pag-uugali nito. Kabilang sa gayong mga espesyalista, halimbawa, ang mga systems analyst, systems engineer, at mananaliksik ng operations research.
Batay sa pagsusuri ng lahat ng impormasyong nakalap, dapat tukuyin ng nagbabalangkas ng suliranin ang mga rekisito para sa hinaharap na modelo sa paraang, sa isang banda, matugunan ang nagpapagawa, at sa kabilang banda, mapapayagang maipatupad ang modelo sa loob ng ibinigay na takdang panahon at badyet. Ang mga systems analyst (o mananaliksik ng operations research) ay dapat magtaglay ng kakayahang, mula sa malaking dami ng maluwag na istrukturado at magkakaibang impormasyon tungkol sa bagay na minomodelo at mula sa iba’t ibang malabo na naipahayag na kagustuhan at rekisito ng nagpapagawa, hango ang mga esensyal na bagay na talagang maipapatupad.
Batay sa nalikom na impormasyon tungkol sa bagay na minomodelo, ang systems analyst (engineer, mananaliksik ng operations research), kasama ang nagpapagawa, ay bumubuo ng substantibong pagbabalangkas ng suliranin, na, sa karaniwan, hindi pa panghuli at maaaring pinuhin at palawakin sa kurso ng pagbuo ng modelo. Gayunpaman, ang lahat ng kasunod na pagsasaayos at pagbabago sa substantibong pagbabalangkas ay dapat na maliit lamang at hindi mapundamental na katangian.
Ang lahat ng materyal na nakalap sa panahon ng pagsisiyasat — ang naipong kaalaman tungkol sa bagay, ang substantibong pagbabalangkas ng suliranin, ang karagdagang mga rekisito para sa pagpapatupad ng modelo at ang paglalahad ng mga resulta — ay idinodokumento sa anyo ng terms of reference para sa disenyo at pagbuo ng modelo. Ang terms of reference ang bumubuo sa pangwakas na dokumento ng yugto ng pagsisiyasat. Kung mas kumpleto ang impormasyong nakalap tungkol sa bagay sa panahon ng pagsisiyasat, mas malinaw na maisasaad ang substantibong suliranin, mas ganap na maisasaalang-alang ang naipong karanasan at kaalaman, at mas maraming kahirapan sa mga kasunod na yugto ng pagbuo ng modelo ang maiiwasan.
Kaiba sa substantibong pagbabalangkas, ang konseptwal na pagbabalangkas ng suliranin sa pagmomodelo ay karaniwang inihahanda ng mga kasapi ng pangkat ng proyekto nang walang paglahok ng mga kinatawan ng nagpapagawa, batay sa terms of reference na nabuo sa nakaraang yugto at gamit ang magagamit na kaalaman tungkol sa bagay na minomodelo at mga rekisito para sa hinaharap na modelo. Ang pagsusuri at magkasamang talakayan ng lahat ng magagamit na impormasyon tungkol sa bagay na minomodelo ng mga kasapi ng pangkat ay nagpapahintulot na mabuo ang isang konseptwal na modelo ng bagay — isang pagsasama ng mga kognitibong modelong nabuo ng bawat kasapi ng pangkat.
Ang konseptwal na pagbabalangkas ng suliranin sa pagmomodelo ay isang listahan ng mga pangunahing tanong na interesado ang nagpapagawa, na inihahayag sa mga termino ng partikular na disiplina, kasama ang isang hanay ng mga hipotesis tungkol sa mga katangian at pag-uugali ng bagay na minomodelo.
Ang pinakamalaking kahirapan sa pagbabalangkas ng konseptwal na pahayag ay lumitaw sa mga modelong nasa pagsalubong ng iba’t ibang disiplina. Ang mga pagkakaiba sa tradisyon, konsepto, at wikang ginagamit upang ilarawan ang parehong mga bagay ay nagdudulot ng napakalubhang hadlang sa paglikha ng mga interdisciplinary na modelo.
Ang isang natapos na konseptwal na pagbabalangkas ay nagpapahintulot na makabuo ng matematikal na pagbabalangkas ng suliranin sa pagmomodelo, na kinabibilangan ng isang hanay ng mga matematikal na relasyon na naglalarawan sa pag-uugali at mga katangian ng bagay na minomodelo.
Ang matematikal na pagbabalangkas ng suliranin sa pagmomodelo ay ang hanay ng mga matematikal na relasyon na naglalarawan sa pag-uugali at mga katangian ng bagay na minomodelo.
Ang isang matematikal na modelo ay itinuturing na wasto kung nasagawa na ang lahat ng verification na pagsusuri na may positibong resulta: pagsusuri ng dimensyon, pagsusuri ng magnitude, pagsusuri sa katangian ng mga relasyon, pagsusuri sa mga sukdulang kaso, mga hangganan na kondisyon, kahulugang pisikal, at closure na matematikal. Ang matematikal na pagbabalangkas ay mas abstrakto pa kaysa sa konseptwal, dahil binabawasan nito ang orihinal na suliranin sa isang purong matematikal na suliranin kung saan mayroon nang mahusay na nabuong mga pamamaraan ng solusyon.
Ang lahat ng pamamaraan para sa paglutas ng mga suliraning bumubuo sa “ubod” ng mga matematikal na modelo ay maaaring hatiin sa analitikal at algoritmiko (numerical).
Dapat tandaan na kapag ginagamit ang mga analitikal na solusyon upang makakuha ng numerical na resulta, kadalasan ay kinakailangan din ang pagbuo ng kaukulang mga algorithm na ipinapatupad sa mga computer.
Gayunpaman, ang paunang solusyon sa kasong ito ay nasa anyo ng isang analitikal na ekspresyon (o hanay ng mga ekspresyon). Ang mga solusyong batay sa mga algoritmikong pamamaraan, sa kabilang banda, ay talagang hindi maaaring ibaba sa eksaktong analitikal na solusyon ng suliraning pinag-uusapan.
Ang pagpili ng partikular na pamamaraan ng pananaliksik ay higit na nakadepende sa kwalipikasyon at karanasan ng mga kasapi ng pangkat ng proyekto. Ang mga analitikal na pamamaraan ay mas maginhawa para sa kasunod na pagsusuri ng mga resulta ngunit angkop lamang sa medyo simpleng mga modelo. Kung ang suliraning matematikal (kahit na sa pinasimpleng pagbabalangkas) ay tumatanggap ng analitikal na solusyon, ang solusyong iyon ay walang alinlangang mas mainam kaysa sa numerical na solusyon.
Binabawasan ng mga algoritmikong pamamaraan ang suliranin sa isang algorithm na nagsasagawa ng eksperimentong computational gamit ang teknolohiyang computing. Ang katumpakan ng pagmomodelo sa gayong eksperimento ay lubos na nakadepende sa napiling pamamaraan at sa mga parametro nito. Ang mga algoritmikong pamamaraan ay karaniwang mas mahirap ipatupad at nangangailangan na ang mga kasapi ng pangkat ng proyekto ay may matatag na kaalaman sa computational mathematics, isang malawak na aklatan ng espesyalisadong software, at makapangyarihang mapagkukunang computing.
Ang mga numerical na pamamaraan ay angkop lamang sa mahusay na nabalangkas na mga suliraning matematikal, na malaki ang nagbabawas sa kanilang paggamit sa matematikal na pagmomodelo. Karaniwan sa lahat ng numerical na pamamaraan ang pagbabawas ng suliraning matematikal sa isang finite-dimensional na suliranin. Ito ay kadalasang nakakamit sa pamamagitan ng discretization ng orihinal na suliranin — ibig sabihin, sa pamamagitan ng pagpapalit ng mga function ng tuluy-tuloy na argumento ng mga function ng discrete na argumento. Ang paggamit ng anumang numerical na pamamaraan ay hindi maiiwasang magdudulot ng error sa mga resulta. Tatlong pangunahing bahagi ng error na lumilitaw sa numerical na solusyon ng orihinal na suliranin ang maaaring tukuyin: ang likas na error na kaugnay ng hindi eksaktong pagtukoy ng input na datos (paunang at hangganang kondisyon, koepisyente ng equation at right-hand side); ang error ng discretization na kaugnay ng paglipat sa discrete na analog ng orihinal na suliranin; at ang round-off error na kaugnay ng finite na katumpakan ng mga numero na kinakatawan sa isang computer.
Isang natural na rekisito para sa anumang partikular na computational algorithm ay ang pagkakapare-pareho sa mga magnitude ng tatlong uri ng error na ito.
Ang isang numerical, o approximate na pamamaraan, ay palaging ipinapatupad bilang isang computational algorithm. Kaya, ang lahat ng rekisitong naaangkop sa mga algorithm sa pangkalahatan ay naaangkop din sa mga computational algorithm. Una sa lahat, ang isang algorithm ay dapat magamit — dapat nitong lutasin ang suliranin sa loob ng katanggap-tanggap na dami ng oras ng computing. Isang mahalagang katangian ng isang algorithm ay ang katumpakan nito — ang kakayahang makakuha ng solusyon sa orihinal na suliranin sa isang ibinigay na katumpakan sa finite na bilang ng mga operasyon.
Ang tagal ng pagpapatakbo ng isang algorithm ay nakadepende sa bilang ng mga operasyong kinakailangan upang makamit ang tinukoy na katumpakan. Para sa anumang suliraning matematikal, sa karaniwan, maraming algorithm ang maaaring imungkahi na nagbibigay ng solusyon sa nais na katumpakan, ngunit sa magkakaibang bilang ng mga operasyon. Ang mga algorithm na nangangailangan ng mas kaunting operasyon upang makamit ang parehong katumpakan ay tinatawag na mas matipid, o mas mahusay.
Sa panahon ng pagpapatupad ng isang computational algorithm, isang tiyak na error ang lumilitaw sa bawat hakbang ng computational. Mula sa isang hakbang patungo sa isa pa, ang error na ito ay maaaring tumaas o hindi tumaas (at sa ilang kaso ay maaari pa nga itong bumaba). Kung tumataas nang walang hangganan ang error sa panahon ng computation, sinasabing hindi matatag, o divergent, ang algorithm. Kung hindi, sinasabing matatag, o convergent, ang algorithm.
Ang napakalaking iba’t ibang klase ng mga numerical na pamamaraan ay lubos na nagpapahirap sa pagpili ng isang partikular na pamamaraan sa bawat tiyak na kaso. Dahil maraming alternatibong algoritmikong pamamaraan ang maaaring gamitin upang ipatupad ang isang ibinigay na modelo, ang pagpili ng isang tiyak na pamamaraan ay ginagawa batay sa kung alin ang pinakaangkop sa modelo sa mga tuntunin ng kahusayan, katatagan, at katumpakan ng mga resulta, gayundin kung alin ang pinakapamilyar sa mga kasapi ng pangkat ng proyekto.
Sa paglikha ng iba’t ibang sistema ng software na ginagamit sa paglutas ng malawak na hanay ng mga gawaing pananaliksik, disenyo-inhinyeriya, at pamamahala, ang mga matematikal na modelo ay karaniwang nagsisilbing pundasyon ngayon. Nagbubunga ito ng pangangailangang ipatupad ang isang modelo bilang isang programa ng computer. Ang proseso ng pagbuo ng maaasahan at mahusay na software ay hindi bababa sa kumplikado kaysa sa lahat ng naunang yugto ng paglikha ng matematikal na modelo. Ang matagumpay na paglutas ng gawaing ito ay posible lamang sa matatag na kontrol ng mga modernong wika at teknolohiya ng programming, kaalaman sa mga kakayahan ng computing, magagamit na software, at mga detalye ng pagpapatupad ng mga pamamaraan ng computational mathematics.
Ang proseso ng pagbuo ng software ay maaaring hatiin sa ilang yugto:
- paghahanda ng terms of reference para sa pagbuo ng software;
- disenyo ng istruktura ng sistema ng software;
- pag-coding ng algorithm;
- pagsubok at pag-debug;
- pagpapanatili at pagpapatakbo.
Ang terms of reference para sa pagbuo ng software ay idinodokumento sa anyo ng isang specification. Sa yugto ng disenyo, ang pangkalahatang istruktura ng sistema ng software ay nabubuo. Ang buong programa ay hinahati sa mga software module. Para sa bawat module, ang mga functional na rekisito ay ibinabalangkas at isang algorithm na nagpapatupad ng mga functionong ito ay binubuo. Ang scheme ng pakikipag-ugnayan sa pagitan ng mga module — kilala bilang data flow diagram ng sistema ng software — ay tinutukoy. Isang plano ng pagsubok ang binubuo, at ang input na datos para sa pagsubok ng bawat module at ng buong sistema ay tinutukoy.
Karamihan sa mga programang nagpapatupad ng mga matematikal na modelo ay binubuo ng tatlong pangunahing bahagi:
- isang preprocessor (paghahanda at verification ng input na datos ng modelo);
- isang solver (paglutas ng suliranin, pagsasagawa ng eksperimentong computational);
- isang postprocessor (visualization at paglalahad ng mga resulta).
Dapat bigyang-halaga ang pag-angkop ng mga modernong teknolohiya ng programming. Ang layunin ng anumang gayong teknolohiya ay, una sa lahat, upang mapabuti ang pagiging maaasahan ng software at mapataas ang produktibidad ng developer. Kung mas seryoso at malawakan ang proyekto ng software, mas mahalaga ang mga tanong tungkol sa paggamit ng mga modernong teknolohiya ng programming. Ang pagpapabaya sa mga bagay na ito ay maaaring humantong sa malaking pagbabago sa oras at pagbaba ng pagiging maaasahan ng sistema ng software.
Isang kritikal na salik sa pagtiyak ng pagiging maaasahan at maikling oras ng pagbuo ng isang sistema ng software para sa paglutas ng isang partikular na klase ng mga suliranin ay ang pagkakaroon ng isang mahusay na nabuong aklatan ng magkakaugnay na mga software module. Ang isang programa ay mas maaasahan at mas mabilis na maaaring buuin kapag ang mga standard na komponent ng software ay ginagamit sa pinakamalawak na antas na posible.
Ang kaangkupan ng isang matematikal na modelo ay ang antas kung saan ang mga resultang nakuha mula sa nabuong modelo ay tumutugma sa datos na eksperimental o sa mga resulta ng isang benchmark na suliranin.
Nagsisilbi ang validation ng modelo sa dalawang layunin:
- upang mapatunayan ang bisa ng hanay ng mga hipotesis na naisaad sa mga yugto ng konseptwal at matematikal na pagbabalangkas. Dapat lamang magpatuloy sa pagpapatunay ng hipotesis pagkatapos ma-verify ang mga pamamaraan ng solusyon at makumpleto ang masusing pag-debug ng software at pagtanggal ng lahat ng error at salungatan;
- upang matiyak na ang katumpakan ng mga resulta ay naaayon sa katumpakang itinakda sa terms of reference.
Ang validation ng nabuong matematikal na modelo ay isinasagawa sa pamamagitan ng paghahambing nito sa magagamit na datos na eksperimental tungkol sa aktwal na bagay o sa mga resulta ng iba pang naunang nalikha at napatunayang mahusay na mga modelo. Sa unang kaso, tinatawag itong validation sa pamamagitan ng paghahambing sa eksperimento; sa pangalawa, paghahambing sa mga resulta ng isang benchmark na suliranin.
Ang tanong ng katumpakan ng pagmomodelo ay nakadepende sa mga rekisitong ipinapataw sa modelo at sa nilalayon nitong layunin. Dapat ding isaalang-alang ang katumpakan ng mga resultang eksperimental o ang mga detalye ng mga pagbabalangkas ng benchmark na suliranin. Para sa mga modelong nilayon para sa magaspang at pagtataya sa antas ng magnitude, ang isang katumpakang 10–15% ay itinuturing na kasiya-siya. Para sa mga modelong ginagamit sa mga sistema ng kontrol at pagmomonitor, ang kinakailangang katumpakan ay maaaring 1–2% o mas mataas pa.
Kapag lumitaw ang mga suliranin sa kaangkupan ng modelo, dapat magsimula ang pagwawasto sa isang sistematikong pagsusuri sa lahat ng posibleng sanhi ng pagkakaiba sa pagitan ng mga resulta ng pagmomodelo at ng mga resultang eksperimental. Una, dapat sisiyasatin ang modelo at masuri ang antas ng kaangkupan nito para sa iba’t ibang halaga ng mga variable na parametro (paunang at hangganang kondisyon, mga parametrong naglalarawan ng mga katangian ng mga bagay na minomodelo). Kung hindi angkop ang modelo sa saklaw ng parametrong interesado ang mananaliksik, maaaring subukan ang pagpapahusay ng mga halaga ng mga constant at paunang parametro ng modelo. Kung hindi pa rin ito nagbubunga ng positibong resulta, kung gayon ang tanging natitirang paraan upang pagbutihin ang modelo ay ang pagbabago ng ipinagtibay na sistema ng mga hipotesis. Ang desisyong ito ay epektibong nangangahulugan ng pagbabalik sa ikalawang yugto ng proseso ng pagbuo ng modelo at maaaring magdulot hindi lamang ng malaking pagbabago sa matematikal na pagbabalangkas kundi pati na rin sa mga pamamaraan ng solusyon (halimbawa, isang paglipat mula sa analitikal patungo sa numerical na mga pamamaraan), isang kumpletong pagbabago ng software, at isang bagong ikot ng validation ng modelo. Kaya, ang desisyong baguhin ang ipinagtibay na sistema ng mga hipotesis ay dapat na maingat na timbangin at gawin lamang kapag naubos na ang lahat ng iba pang paraan upang pagbutihin ang kaangkupan ng modelo.
Ang mga descriptive na modelo ay dinisenyo upang ilarawan ang mga parametrong pinag-aaralan sa isang ibinigay na pangyayari o proseso, gayundin upang sisiyasatin ang mga pattern na namumuno sa mga pagbabago sa mga parametrong iyon. Ang mga modelong ito ay maaaring gamitin upang pag-aralan ang mga katangian at pag-uugali ng bagay na sinisiyasat sa ilalim ng iba’t ibang kombinasyon ng input na datos at kondisyon ng pagpapatakbo; sa pagbuo ng mga optimization na modelo; at sa pagbuo ng mga simulation na modelo ng mga kumplikadong sistema.
Ang mga modelong nabuo para sa layuning pananaliksik ay karaniwang hindi dinadala sa antas ng mga sistema ng software na nilayon para sa pamamahagi sa mga panlabas na user. Ang buhay nito ay karaniwang limitado sa tagal ng programa ng pananaliksik sa kaukulang larangan. Ang mga modelong ito ay may katangiang eksploratori, paggamit ng bagong mga computational na pamamaraan at algorithm, at hindi pa nabuong user interface.
Ang mga modelo at ang mga sistema ng software na binuo sa mga ito na nilayon para sa kasunod na pamamahagi sa mga panlabas na user o para sa komersyal na paglabas ay may mahusay na nabuong, madaling gamitin na interface at makapangyarihang mga preprocessor at postprocessor. Ang mga modelong ito ay karaniwang batay sa napatunayan at mahusay na naitatag na mga pagbabalangkas at pamamaraang computational. Gayunpaman, dapat tandaan na ang mga gayong modelo ay dinisenyo lamang para sa paglutas ng isang malinaw na tinukoy na klase ng mga suliranin.
Anuman ang nilayong aplikasyon ng modelo, obligado ang pangkat ng pagbuo na magsagawa ng parehong kwalitatibo at kwantitatibong pagsusuri sa mga resulta ng pagmomodelo.
Sa pamamagitan ng paggawa kasama ang modelo, ang mga developer ay nagiging espesyalista sa larangang kaugnay ng bagay na minomodelo. Nagkakaroon sila ng sapat na masusing pag-unawa sa mga katangian ng bagay at kayang tumaya at magpaliwanag sa pag-uugali nito.
Ang isang komprehensibong pagsusuri sa mga resulta ng pagmomodelo ay nagbibigay-daan, samakatuwid, na:
- baguhin ang bagay na pinag-uusapan, hanapin ang mga optimal na katangian nito, o kahit man lang isaalang-alang ang pag-uugali at mga katangian nito sa pinakamahusay na paraan;
- tukuyin ang saklaw ng aplikabilidad ng modelo;
- patunayan ang bisa ng mga hipotesis na ipinagtibay sa yugto ng matematikal na pagbabalangkas at suriin ang posibilidad ng pagpapasimple sa modelo upang mapabuti ang kahusayan nito habang pinananatili ang kinakailangang katumpakan;
- ituro ang direksyon kung saan dapat pang paunlarin ang modelo.