Science Umaasa Sa Computer Modelling - So What Happens When It Goes Maling?

Mula sa pagbabago ng pagtuklas ng penicillin sa mga teorya ng relativity at mekanika ng quantum, umunlad ang agham na may bilis ng pag-iisip kahit na bago nagkaroon ng mga computer. Karamihan sa mga ito ay pababa sa katabaan ng pang-agham na paraan: ang mga pang-agham na resulta ay napatunayan sa pamamagitan ng pagiging replicated at pinalawak ng iba pang mga siyentipiko.

Ngunit ang paraan ng ginagawa natin sa agham ay nagbabago - umaasa tayo ngayon sa masalimuot na mga modelo ng computer upang maunawaan ang kalikasan. At ito ay lumalabas na ang mga modelong ito ay maaaring halos imposible upang magparami - ibig sabihin ay isang mahalagang pagsubok ng agham ay hinamon. Kaya ano ang mga epekto ng tunay na mundo ng pagbabagong ito at ano ang magagawa natin tungkol dito?

Ang pre-modernong agham - na kilala bilang "natural na pilosopiya" - ay isang empirical. Ang agham na agham ay gumagamit ng mga nakaraang obserbasyon upang makagawa ng mga hula tungkol sa hinaharap, na maaaring masuri. Tycho Brahe, isang astronomer ng Danish na 16th-siglo, ay nakapangasiwa ng tumpak at komprehensibong obserbasyon ng kalangitan sa ganitong paraan.

Modern science, gayunpaman, ay manilay-nilay. Theoretical agham din ay gumagawa paghuhula, ngunit ito derives ang mga ito mula mathematical modelo sa halip na mula sa naunang mga obserbasyon. Mag-isip ng Isaac Newton 's mga batas ng paggalaw, tulad ng ang inverse square law of gravitation.

Halimbawa, mayroong isang equation na naglalarawan sa orbita ng Earth sa paligid ng araw. Ang equation na ito ay maaaring gamitin upang bumuo ng isang modelo ng computer kung saan maaari mo lamang i-plug ang ilang mga variable at makita kung paano nagbabago ang solusyon. Maaari mo lamang i-plug sa isang petsa sa hinaharap at magbasa ng posisyon ng Earth sa petsang iyon. Maaari mo ring gamitin ang parehong programa upang mag-modelo ng iba pang mga planeta system - lahat ng ito ay batay sa parehong matematika. Ang kailangan mo lang gawin ay i-plug sa iba't ibang masa at iba pang ibang mga pag-aari ng mga kasangkot na katawan.


innerself subscribe graphic


Ang ganitong mga matematiko equation ay mahusay na kapag sila ay magagamit - ngunit madalas na sila ay hindi. Halimbawa, alam namin na walang simpleng equation na malulutas ang tinatawag na "problema sa tatlong-katawan", Na naglalarawan ng tatlong katawan orbital sa paligid at pag-impluwensya sa bawat isa sa pamamagitan ng puwersa ng grabidad - tulad ng buwan, Earth at araw.

Karamihan sa kasalukuyang agham ay may kaugnayan sa mas masalimuot na mga sistema, at katulad nito ay walang eksaktong solusyon. Ang mga ganitong modelo ay kailangang "computational" - na naglalarawan kung paano nagbabago ang sistema mula sa isang instant hanggang sa susunod. Ngunit walang paraan upang matukoy ang eksaktong estado sa ilang panahon sa hinaharap maliban sa pamamagitan ng "simulating" ebolusyon nito sa ganitong paraan. Ang pagtataya ng panahon ay isang pamilyar na halimbawa; hanggang sa pagdating ng mga computer sa 1950s, imposibleng mahulaan ang hinaharap na panahon nang mas mabilis kaysa sa aktwal na nangyari.

Ang karaniwang agham ay karaniwang binubuo ng paggawa ng isang matematikal na modelo na naglalarawan ng isang kumplikadong sistema, pagkatapos ay i-on ito sa isang computational kunwa, at pagpapatakbo ng kunwa upang gumawa ng mga hula upang patunayan ang modelo.

Kapag nabigo ang pagmomolde

Ang pagmomolde ay ginagamit sa mga siyentipikong larangan - mula sa astrophysics at klima hula sa bioinformatics at economics. Pero meron pagtaas ng debate tungkol sa katotohanan na ang agham na ito ay mahirap patunayan sa pamamagitan ng pagpaparami.

Ito ay lumalabas na ang simpleng paglalarawang mga pang-eksperimentong pamamaraan sa mga salita ay hindi sapat. Iyon ay bahagyang dahil natural na mga wika tulad ng Ingles ay simpleng masyadong malabo para sa naglalarawan ng mga computations tiyak. Mayroong, pagkatapos ng lahat, isang dahilan kung bakit ang mga programmer ay gumagamit ng mga programming language. Ang isa sa mga pinakamalaking hamon sa pagpapaunlad ng software ay ang pag-convert ng mga hindi malinaw na pangangailangan sa tumpak na mga pagtutukoy ng pag-uugali.

Ang mga tao - kahit na ang mga siyentipiko - ay tapos na ang lahat. Ang pagbago ng anumang impormasyon sa isang programa ay halos walang pasubali na nagpapakilala sa mga bug kasama ang paraan. Halimbawa, maraming siyentipiko ang nakasalalay sa mga tool sa paggalaw ng data tulad ng mga spreadsheet, na idinisenyo para sa madaling paggamit at hindi para sa katatagan. Napakadali lamang na lagyan ng maling hanay ng mga cell sa isang spreadsheet, nang hindi nakakakuha ng anumang mga babala. Ito ay isa sa metodolohikal na mga depekto sa isang papel na ginagamit ng Partidong Republikano ng US upang i-base ang kanilang mga patakaran sa pro-austerity.

Katulad ng isang kamakailang pag-aaral sa 15,770 spreadsheets na ginawa pampubliko sa panahon ng pagsisiyasat sa korporasyong US Enron ay nagpakita na ang 24% ng mga spreadsheet na naglalaman ng hindi bababa sa isang formula ay may halatang mga bug, tulad ng pagdaragdag ng mga blangko na selula.

Sa natural na siyensiya, ang Mars Climate Observer, isang espasyo pagsisiyasat na inilunsad sa 1998 upang pag-aralan ang klima sa Mars, ay nawala sa isang taon mamaya dahil ang isang bahagi ng control software na nagkamali ginamit imperyal sa halip ng mga yunit ng panukat. Ang isa pang pag-aaral ng siyam na mga independiyenteng mga pagpapatupad ng parehong geoscience eksperimento - gamit ang parehong dataset, algorithm, at programming language - nagpakita napakakaunting kasunduan sa mga resulta na nakuha.

Higit pa rito, kahit na matagumpay na ma-interpret ng mambabasa ng isang research paper ang tiyak na kahulugan ng manunulat, at pagkatapos ay isalin ito nang walang kamali-mali sa isang programa, may mga pitfalls pa rin sa pagpapatupad nito. Ang isang partikular na nakakalito na klase ng mga problema ay nagmumula sa kung paano pinangangasiwaan ng mga computer ang mga numero: bagama't maaari nilang manipulahin ang mga integer gaya ng 42 at -17 nang may perpektong katumpakan, ang mga karaniwang pamamaraan para sa pagmamanipula ng mga tunay na numero tulad ng ??3.14 at ?2?1.414 ay pinahihintulutan lamang ang tinatayang katumpakan. Ang mga pagtatantya na ito ay nangangahulugan na ang tila katumbas na mga paraan ng pag-compute ng parehong halaga ay maaari magbigay ng iba't ibang mga resulta.

Kaya, ano ang magagawa? Kung kahit na ang mga eksperto sa software developer ay hindi maaaring mapagkakatiwalaan gumawa ng tamang software, anong pag-asa ang mayroon para sa mga amateur programmer tulad ng mga siyentipiko?

Ang isang linya ng trabaho ay upang makagawa ng mga tool para sa pagdisenyo ng "mga domain-tiyak na" programming language, bawat isa ay pinasadya sa isang partikular na uri ng problema, tulad ng pag-uugali ng mga ahente sa mga pang-ekonomiyang merkado o ang pagsasabog ng mga gamot sa mga cell. Ang mga layuning ito ay gawing mas madali para sa mga espesyalista na ilarawan ang mga computation nang direkta sa mga pamilyar na mga termino, sa halip na i-encode ang mga ito nang hindi direkta sa isang pangkalahatang layunin na programming language.

Ang ikalawang diskarte ay naglalayong mag-disenyo ng higit pang pagpapahayag ngunit gumagamit pa rin ng "mga sistema ng uri" para sa mga programa. Ang mga ito ay gawing mas madali ang mahuli ang mga "nakakatawa" na mga pagkakamali, tulad ng mga blangkong selula sa mga spreadsheet, o paghahalo ng mga halaga sa iba't ibang mga yunit. Hindi nito maaaring mamuno ang lahat ng mga error sa logic bagaman. Ang ikatlong linya ay upang bumuo ng magagamit na mga aklatan ng code para sa eksaktong aritmetika, pag-iwas sa mga problema ng pagtatantya.

Mayroong bawat pagkakataon na ang mga pamamaraan na ito ay maaaring makatulong sa pag-aayos ng problema sa pasulong, o hindi bababa sa alisin ang ilan sa mga panganib. Matapos ang lahat, kailangan ng mundo ang mga siyentipiko at siyentipiko ay nangangailangan ng mga computer - na malamang na hindi magbabago anumang oras sa lalong madaling panahon.

Tungkol sa Ang May-akda

Jeremy Gibbons, Propesor ng Computing, Unibersidad ng Oxford. Ang tema ng pananaliksik ng Pinuno ng Programming ng Wika.

Ang artikulong ito ay orihinal na lumitaw sa Pag-uusap Ang

Mga Kaugnay Book:

at InnerSelf Market at Amazon