Наука Полагается На компьютерного моделирования - Так что же происходит, когда она идет не так?

От трансформационного открытия пенициллина до теорий относительности и квантовой механики наука прогрессировала с ошеломляющей скоростью еще до того, как появились компьютеры. В значительной степени это связано с надежностью научного метода: научные результаты подтверждаются путем тиражирования и распространения другими учеными.

Но то, как мы делаем науку, меняется - теперь мы все больше полагаемся на сложные компьютерные модели, чтобы понять природу. И оказывается, что эти модели практически невозможно воспроизвести, а это означает, что важный пробный камень науки оспаривается. Итак, каковы реальные последствия этого изменения и что мы можем с этим поделать?

Предсовременная наука, известная как «естественная философия», была эмпирической. Эмпирическая наука использует прошлые наблюдения, чтобы предсказать будущее, которое затем может быть проверено. Tycho Brahe, датский астроном 16-го века, сумел сделать точные и всеобъемлющие наблюдения за небесами таким образом.

Современная наука, однако, является теоретическим. Теоретическая наука также делает предсказания, но она выводит их из математических моделей, а не из предыдущих наблюдений. Подумайте о законах Исаака Ньютона, таких как обратный квадрат закона тяготения.

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


графика подписки внутри себя


Такие математические уравнения велики, когда они доступны, но часто это не так. Например, мы знаем, что нет простого уравнения, которое решает так называемые "проблема с тремя телами", Который описывает три тела, вращающиеся вокруг вокруг и влияют друг на друга гравитационными силами - как луна, Земли и Солнца.

Большая часть современной науки имеет дело с еще более сложными системами и аналогичным образом не имеет точных решений. Такие модели должны быть «вычислительными», описывая, как система изменяется с одного момента на другой. Но невозможно определить точное состояние в будущем, а не «имитировать» его эволюцию таким образом. Прогноз погоды - знакомый пример; до появления компьютеров в 1950s невозможно было предсказать будущую погоду быстрее, чем это было на самом деле.

Текущая наука обычно состоит из разработки математической модели, которая описывает сложную систему, затем превращая ее в компьютерное моделирование и запускает симуляцию для прогнозирования, чтобы проверить модель.

При неудачном моделировании

Моделирование используется в научных областях - от астрофизики и прогнозирование климата к биоинформатике и экономике. Но есть растущая дискуссия о том, что эту науку трудно подтвердить путем размножения.

Оказывается, что простого описания экспериментальных методов в словах недостаточно. Это отчасти потому, что естественные языки, такие как английский, слишком расплывчаты для описания вычислений точно. В конце концов, есть причина, по которой программисты используют языки программирования. Одной из самых больших проблем в разработке программного обеспечения является преобразование неопределенных требований в точные спецификации поведения.

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

Аналогичным образом Недавнее исследование на электронных таблицах 15,770, которые были обнародованы в ходе расследования в американской корпорации Enron, показали, что 24% электронных таблиц, содержащих хотя бы одну формулу, имеет очевидные ошибки, такие как добавление пустых ячеек.

В естественных науках Mars Climate Observer, космический зонд, запущенный в 1998 для изучения климата на Марсе, был потерян через год, потому что одна часть программного обеспечения управления ошибочно использовала имперский вместо метрических единиц. Другое исследование из девяти независимых реализаций одного и того же геофизического эксперимента - с использованием того же набора данных алгоритмов и языка программирования - показали очень мало согласия в полученных результатах.

Более того, даже если читатель исследовательской статьи может успешно интерпретировать точный смысл написанного автором, а затем безошибочно перевести его в программу, при ее выполнении все равно существуют подводные камни. Один особенно сложный класс проблем возникает из-за того, как компьютеры обрабатывают числа: хотя они могут манипулировать целыми числами, такими как 42 и -17, с идеальной точностью, стандартные методы работы с действительными числами, такими как ??3.14 и ?2?1.414, допускают только приблизительную точность. Эти приближения означают, что очевидно эквивалентные способы вычисления одного и того же значения могут дают разные результаты.

Итак, что может быть сделано? Если даже опытные разработчики программного обеспечения не могут надежно создавать правильное программное обеспечение, какая надежда для любительских программистов, таких как ученые?

Одной из задач является создание инструментов для разработки «языков, специфичных для домена», каждый из которых адаптирован к определенному классу проблем, таких как поведение агентов на экономических рынках или распространение наркотиков по ячейкам. Они направлены на то, чтобы специалистам было проще описать вычисления непосредственно в привычных терминах, вместо того, чтобы их косвенно кодировать на языке программирования общего назначения.

Второй подход направлен на разработку более выразительных, но все же удобных для пользователя «систем типов» для программ. Это упростило бы уловить «глупые» ошибки, такие как пустые ячейки в электронных таблицах или смешение значений в разных единицах. Однако он не исключает все логические ошибки. Третья строка - разработка пригодных для использования библиотек кода для точной арифметики, избежание проблем аппроксимации.

Есть все шансы, что эти подходы помогут решить проблему в будущем или, по крайней мере, устранить часть риска. В конце концов, миру нужна наука, а ученым нужны компьютеры - это вряд ли изменится в ближайшее время.

Об авторе

Джереми Гиббонс, профессор вычислительной техники Оксфордского университета. Руководитель темы исследования языков программирования.

Эта статья первоначально появилась на разговоре

Связанные книги:

at Внутренний рынок самовыражения и Amazon