A tudomány a számítógépes modellezésre támaszkodik – Mi történik, ha valami rosszul sül el?

A penicillin átalakuló felfedezésétől a relativitáselmélet és a kvantummechanika elméletéig a tudomány elképesztő sebességgel fejlődött, már a számítógépek megjelenése előtt is. Ez nagyrészt a tudományos módszer robusztusságának köszönhető: a tudományos eredményeket más tudósok replikálják és kiterjesztik.

De a tudomány művelésének módja változik – ma már egyre inkább komplex számítógépes modellekre támaszkodunk a természet megértéséhez. És kiderül, hogy ezeket a modelleket szinte lehetetlen reprodukálni – ami azt jelenti, hogy a tudomány egy fontos sarokköve kerül kihívások elé. Milyen valós következményei vannak ennek a változásnak, és mit tehetünk ez ellen?

A modern előtti tudomány – más néven „természetfilozófia” – empirikus volt. Az empirikus tudomány a múltbeli megfigyeléseket használja fel a jövőre vonatkozó előrejelzések készítésére, amelyeket aztán tesztelhet. Tycho Brahe, egy 16. századi dán csillagásznak ilyen módon sikerült pontos és átfogó megfigyeléseket végeznie az égboltról.

A modern tudomány azonban elméleti jellegű. Az elméleti tudomány is tesz előrejelzéseket, de ezeket matematikai modellekből, nem pedig korábbi megfigyelésekből vezeti le. Gondoljunk csak Isaac Newton mozgástörvényeire, mint például a gravitáció inverz négyzetes törvénye.

Például létezik egy egyenlet, amely a Föld Nap körüli pályáját írja le. Ez az egyenlet felhasználható egy számítógépes modell felépítésére, amelybe csak be kell illeszteni bizonyos változókat, és látni, hogyan változik a megoldás. Egyszerűen be lehet illeszteni egy jövőbeli dátumot, és le lehet olvasni a Föld helyzetét abban a dátumban. Ugyanezt a programot más bolygórendszerek modellezésére is lehetne használni – mindez ugyanazon a matematikán alapul. Csak be kell illeszteni az érintett testek különböző tömegeit és egyéb tulajdonságait.


belső én feliratkozás grafika


Az ilyen matematikai egyenletek nagyszerűek, ha rendelkezésre állnak – de gyakran nem. Például tudjuk, hogy nincs olyan egyszerű egyenlet, amely megoldja az úgynevezett „háromtest-probléma”, amely három, gravitációs erők által egymásra ható és keringő testet ír le – mint például a Hold, a Föld és a Nap.

A jelenlegi tudomány nagy része még bonyolultabb rendszerekkel foglalkozik, és hasonlóképpen hiányoznak a egzakt megoldások. Az ilyen modelleknek „számítási” alapúaknak kell lenniük – leírniuk, hogyan változik egy rendszer egyik pillanatról a másikra. De a jövőbeli állapot pontos meghatározására nincs mód, csak az evolúció ilyen módon történő „szimulációjával”. Az időjárás-előrejelzés egy ismerős példa erre; az 1950-es évekbeli számítógépek megjelenéséig lehetetlen volt a jövőbeli időjárást gyorsabban megjósolni, mint ahogyan az valójában bekövetkezett.

A jelenlegi tudomány jellemzően abból áll, hogy kidolgoznak egy matematikai modellt, amely leír egy bonyolult rendszert, majd ezt számítógépes szimulációvá alakítják, és a szimulációt lefuttatják a modell validálására szolgáló előrejelzések érdekében.

Amikor a modellezés kudarcot vall

A modellezést számos tudományos területen alkalmazzák – az asztrofizikától kezdve a éghajlati előrejelzés a bioinformatikához és a közgazdaságtanhoz. De van fokozódó vita arról a tényről, hogy ezt a tudományt nehéz reprodukcióval igazolni.

Kiderült, hogy a kísérleti módszerek szavakkal való egyszerű leírása nem elegendő. Ez részben azért van, mert a természetes nyelvek, mint például az angol, túl homályosak a számítások pontos leírásához. Végül is van ok arra, hogy a programozók miért használnak programozási nyelveket. A szoftverfejlesztés egyik legnagyobb kihívása a homályos követelmények pontos viselkedési specifikációkká alakítása.

Az emberek – még a tudósok is – végül is tévedhetnek. Bármely információ programba konvertálása szinte elkerülhetetlenül hibákat okoz. Például sok tudós olyan adatelemző eszközökre, mint a táblázatok, támaszkodik, amelyeket a könnyű kezelhetőségre, nem pedig a robusztusságra terveztek. Nagyon könnyű egyszerűen összegezni a táblázatban a rossz cellatartományt anélkül, hogy figyelmeztetéseket kapnánk. Ez volt az egyik... módszertani hibák egy olyan dokumentumban, amelyre az amerikai republikánus párt a megszorításokat támogató politikáját alapozta.

Hasonlóképpen egy nemrégiben készült tanulmány Az amerikai Enron vállalattal kapcsolatos vizsgálat során nyilvánosságra hozott 15 770 táblázat 24%-ában legalább egy képletet tartalmazó táblázatok esetében nyilvánvaló hibák voltak, például üres cellák összeadása.

A természettudományokban a Mars Klímamegfigyelő, egy 1998-ban a Mars éghajlatának tanulmányozására felbocsátott űrszonda, egy évvel később elveszett, mert a vezérlőszoftver egyik része tévesen angolszász mértékegységeket használt metrikus helyett. Egy másik tanulmány Ugyanazon földtudományi kísérlet kilenc független implementációjának – ugyanazon adathalmaz, algoritmusok és programozási nyelv használatával – eredményei nagyon csekély egyezést mutattak.

Sőt, még ha egy kutatási dolgozat olvasója sikeresen értelmezni is tudja a szerző pontos jelentését, majd hibátlanul le tudja fordítani azt egy programba, a végrehajtás során továbbra is vannak buktatók. Az egyik különösen nehéz problémaosztály abból adódik, ahogyan a számítógépek kezelik a számokat: bár tökéletes pontossággal tudják manipulálni az olyan egész számokat, mint a 42 és a -17, a valós számok, például a ??3.14 és a ?2?1.414 manipulálására szolgáló standard technikák csak hozzávetőleges pontosságot tesznek lehetővé. Ezek a közelítések azt jelentik, hogy ugyanazon érték kiszámításának látszólag ekvivalens módjai... különböző eredményeket hoznak.

Szóval, mit lehet tenni? Ha még a szakértő szoftverfejlesztők sem tudnak megbízhatóan helyes szoftvert előállítani, akkor mi reményük van az olyan amatőr programozóknak, mint a tudósok?

Az egyik munkaterület olyan eszközök létrehozása, amelyekkel „tartományspecifikus” programozási nyelveket lehetne tervezni, amelyek mindegyike egy adott problémaosztályhoz igazodik, például a gazdasági piacokon működő szereplők viselkedéséhez vagy a gyógyszerek sejtek közötti terjedéséhez. Ezek célja, hogy a szakemberek számára sokkal könnyebbé tegyék a számítások közvetlen, ismerős kifejezésekkel történő leírását, ahelyett, hogy azokat közvetve, egy általános célú programozási nyelven kellene kódolniuk.

Egy második megközelítés kifejezőbb, de mégis felhasználóbarát „típusrendszereket” kíván tervezni a programokhoz. Ezek megkönnyítenék az olyan „buta” hibák kiszűrését, mint az üres cellák a táblázatokban, vagy a különböző mértékegységekben lévő értékek összekeverése. Azonban nem zárhatja ki az összes logikai hibát. A harmadik irányvonal a használható kódkönyvtárak fejlesztése a pontos aritmetikai feladatokhoz, elkerülve a közelítés problémáit.

Minden esély megvan rá, hogy ezek a megközelítések a jövőben segíthetnek a probléma megoldásában, vagy legalábbis kiküszöbölhetik a kockázat egy részét. Végül is a világnak szüksége van a tudományra, a tudósoknak pedig számítógépekre – ez valószínűleg nem fog egyhamar megváltozni.

A szerzőről

Jeremy Gibbons, az Oxfordi Egyetem számítástechnika professzora. A programozási nyelvek kutatási téma vezetője.

Ez a cikk eredetileg a The Conversation oldalon jelent meg.

Kapcsolódó könyv:

{amazonWS:searchindex=Könyvek;kulcsszavak=tudományos modellezés;maxresults=3}