Наука покладається на комп'ютерне моделювання - то що відбувається, коли воно стає не так?

Від перетворюючого відкриття пеніциліну до теорій відносності та квантової механіки наука прогресувала з розумною швидкістю ще до появи комп'ютерів. Значна частина цього зводиться до надійності наукового методу: наукові результати перевіряються шляхом їх тиражування та розширення іншими вченими.

Але те, як ми займаємось наукою, змінюється - тепер ми все більше покладаємось на складні комп'ютерні моделі, щоб зрозуміти природу. І виявляється, що ці моделі можна майже неможливо відтворити - це означає, що важливий опорний камінь піддається науці. То які реальні наслідки цієї зміни і що ми можемо з цим зробити?

Домодерна наука - відома як "природна філософія" - була емпіричною. Емпірична наука використовує попередні спостереження для прогнозування майбутнього, яке потім може бути перевірено. Тихо Браге, датський астроном 16 ст., встиг зробити таким чином точні та всебічні спостереження за небесами.

Однак сучасна наука є теоретичною. Теоретична наука також робить прогнози, але вона виходить із математичних моделей, а не з попередніх спостережень. Подумайте про закони руху Ісаака Ньютона, такі як зворотний квадратний закон гравітації.

Наприклад, існує рівняння, що описує орбіту Землі навколо Сонця. Це рівняння можна використовувати для побудови комп'ютерної моделі, до якої можна просто підключити певні змінні та подивитися, як змінюється рішення. Ви можете просто підключити майбутню дату і прочитати положення Землі на цю дату. Ви також можете використовувати ту саму програму для моделювання інших планетних систем - все це базується на одній математиці. Все, що вам потрібно зробити, це підключити різні маси та різні інші властивості тіл, що займаються.


Innersele підписатися графіка


Такі математичні рівняння чудові, коли вони доступні - але часто вони не є. Наприклад, ми знаємо, що не існує простого рівняння, яке вирішує так зване "проблема з трьома тілами”, В якому описано три тіла, що орбітують навколо і впливають одне на одного гравітаційними силами - як Місяць, Земля та Сонце.

Значна частина сучасної науки займається ще складнішими системами, а також не вистачає точних рішень. Такі моделі повинні бути "обчислювальними" - описувати, як система змінюється з однієї миті на іншу. Але немає способу визначити точний стан на якийсь час у майбутньому, окрім як "моделювати" його еволюцію таким чином. Прогнозування погоди - звичний приклад; до появи комп'ютерів у 1950, неможливо було передбачити майбутню погоду швидше, ніж це насправді відбулося.

Сучасна наука, як правило, складається з розробки математичної моделі, яка описує складну систему, а потім перетворення її в обчислювальне моделювання та запуску моделювання для прогнозування для перевірки моделі.

Коли моделювання не вдається

Моделювання використовується в наукових галузях - починаючи від астрофізики та прогноз клімату до біоінформатики та економіки. Але є посилення дебатів про те, що цю науку важко перевірити шляхом відтворення.

Виявляється, просто описати експериментальні методи словами не достатньо. Це частково тому, що природні мови, такі як англійська, просто занадто розпливчасті, щоб точно описати обчислення. Зрештою, є причина, чому програмісти використовують мови програмування. Однією з найбільших проблем у розробці програмного забезпечення є перетворення розпливчастих вимог у точні специфікації поведінки.

Люди - навіть вчені - врешті-решт помилкові. Перетворення будь-якої інформації в програму майже незмінно вводить помилки на цьому шляху. Наприклад, багато вчених залежать від інструментів дослідження даних, таких як електронні таблиці, які створені для зручності використання, а не для надійності. Дуже просто просто підбити неправильний діапазон комірок у електронній таблиці, не отримуючи жодних попереджень. Це було одним із методологічні вади у документі, на якому Республіканська партія США використовувала свою основу політики економії.

Аналогічно a Недавнє дослідження на електронних таблицях 15,770, оприлюднених під час розслідування американської корпорації Enron, було показано, що 24% електронних таблиць, що містять принаймні одну формулу, мали явні помилки, такі як додавання порожніх комірок.

У природничих науках Наглядач клімату на Марсікосмічний зонд, запущений у 1998 для вивчення клімату на Марсі, був втрачений через рік через те, що одна частина програмного забезпечення управління помилково використовувала імперський замість метричних одиниць. Інше дослідження з дев'яти незалежних реалізацій того ж експерименту з геознавства - використовуючи той самий набір даних, алгоритми та мову програмування - показали дуже незначну згоду в отриманих результатах.

What’s more, even if the reader of a research paper can successfully interpret the writer’s precise meaning, and then faultlessly translate it into a program, there are still pitfalls in executing it. One particularly tricky class of problems arises from how computers handle numbers: although they can manipulate integers such as 42 and -17 with perfect accuracy, standard techniques for manipulating real numbers such ??3.14 and ?2?1.414 permit only approximate accuracy. These approximations mean that apparently equivalent ways of computing the same value can дають різні результати.

Отже, що можна зробити? Якщо навіть експертні розробники програмного забезпечення не можуть надійно виробляти правильне програмне забезпечення, на що сподіваються програмісти-любителі, як вчені?

Одним напрямком роботи є створення інструментів для розробки «програмно-орієнтованих» мов програмування, кожне з урахуванням певного класу проблем, таких як поведінка агентів на економічних ринках або розповсюдження наркотиків по клітинах. Вони спрямовані на те, щоб спеціалістам було набагато простіше описувати обчислення безпосередньо звичними термінами, а не кодувати їх опосередковано мовою програмування загального призначення.

Другий підхід має на меті створити більш виразні, але все-таки зручні для користувача системи типу. Це полегшило б зафіксувати "нерозумні" помилки, такі як порожні комірки в електронних таблицях або змішання значень у різних одиницях. Однак він не може виключати всіх логічних помилок. Третій рядок - це розробити корисні бібліотеки коду для точної арифметики, уникаючи проблем наближення.

Є всі шанси, що ці підходи можуть допомогти виправити проблему в майбутньому або принаймні усунути частину ризику. Адже світові потрібна наука, а вченим потрібні комп'ютери - це, швидше за все, не зміниться найближчим часом.

про автора

Джеремі Гіббонс, професор обчислювальної техніки Оксфордського університету. Керівник теми дослідження мов програмування.

Ця стаття спочатку з’явилася у розмові

Пов’язана книга:

at InnerSelf Market і Amazon