Процесс математического моделирования, выполняемый на компьютере
Компьютерное моделирование — это запуск математической модели на компьютере , причем модель разрабатывается для представления поведения или результата реальной или физической системы. Надежность некоторых математических моделей можно определить, сравнив их результаты с реальными результатами, которые они стремятся предсказать. Компьютерное моделирование стало полезным инструментом для математического моделирования многих естественных систем в физике ( вычислительная физика ), астрофизике , климатологии , химии , биологии и производстве , а также человеческих систем в экономике , психологии , социальных науках , здравоохранении и технике . Моделирование системы представлено как запуск модели системы. Его можно использовать для исследования и получения новых знаний о новых технологиях , а также для оценки производительности систем, слишком сложных для аналитических решений . [1]
Компьютерное моделирование реализуется путем запуска компьютерных программ , которые могут быть как небольшими, работающими почти мгновенно на небольших устройствах, так и крупномасштабными программами, которые работают часами или днями на сетевых группах компьютеров. Масштаб событий, моделируемых компьютерным моделированием, намного превзошел все возможное (или, возможно, даже вообразимое) с использованием традиционного математического моделирования на бумаге и карандаше. В 1997 году моделирование битвы в пустыне, в которой одна сила вторгается в другую, включало моделирование 66 239 танков, грузовиков и других транспортных средств на моделируемой местности вокруг Кувейта с использованием нескольких суперкомпьютеров в Программе модернизации высокопроизводительных компьютеров Министерства обороны США . [2]
Другие примеры включают модель деформации материала из 1 миллиарда атомов; [3] модель 2,64 миллиона атомов сложной органеллы, производящей белок всех живых организмов, рибосомы , в 2005 году; [4]
полное моделирование жизненного цикла Mycoplasma genitalium в 2012 году; и проект Blue Brain в EPFL (Швейцария), начатый в мае 2005 года с целью создания первой компьютерной симуляции всего человеческого мозга, вплоть до молекулярного уровня. [5]
Модель состоит из уравнений, используемых для описания поведения системы. Напротив, компьютерное моделирование — это фактическое выполнение программы, которая выполняет алгоритмы, решающие эти уравнения, часто приближенным образом. Таким образом, моделирование — это процесс запуска модели. Таким образом, не «строится моделирование»; вместо этого «строится модель (или симулятор)», а затем либо «запускается модель», либо, что эквивалентно, «запускается моделирование».
История
Компьютерное моделирование развивалось рука об руку с быстрым ростом компьютеров, после его первого крупномасштабного развертывания во время Манхэттенского проекта во Второй мировой войне для моделирования процесса ядерного взрыва . Это было моделирование 12 твердых сфер с использованием алгоритма Монте-Карло . Компьютерное моделирование часто используется как дополнение или замена для систем моделирования, для которых простые аналитические решения в замкнутой форме невозможны. Существует много типов компьютерного моделирования; их общей чертой является попытка сгенерировать выборку репрезентативных сценариев для модели, в которой полный перечень всех возможных состояний модели был бы невозможен или был бы невозможен. [7]
Подготовка данных
Требования к внешним данным для симуляций и моделей сильно различаются. Для некоторых входные данные могут состоять всего из нескольких чисел (например, моделирование формы волны переменного тока на проводе), в то время как для других могут потребоваться терабайты информации (например, модели погоды и климата).
Источники входных данных также сильно различаются:
Датчики и другие физические устройства, подключенные к модели;
Поверхности управления, используемые для управления ходом моделирования тем или иным образом;
Текущие или исторические данные, введенные вручную;
Ценности, извлеченные как побочный продукт других процессов;
Значения, выведенные для этой цели другими симуляциями, моделями или процессами.
Наконец, время доступности данных различается:
«Инвариантные» данные часто встраиваются в код модели, либо потому, что значение действительно инвариантно (например, значение π), либо потому, что проектировщики считают значение инвариантным для всех интересующих случаев;
данные могут быть введены в симуляцию при ее запуске, например, путем чтения одного или нескольких файлов или путем чтения данных из препроцессора ;
Данные могут быть предоставлены во время моделирования, например, с помощью сенсорной сети.
Из-за этого разнообразия, а также из-за того, что различные системы моделирования имеют много общих элементов, существует большое количество специализированных языков моделирования . Самым известным, возможно, является Simula . Сейчас есть много других.
Системы, принимающие данные из внешних источников, должны быть очень осторожны в понимании того, что они получают. Хотя компьютерам легко считывать значения из текстовых или двоичных файлов, гораздо сложнее узнать, какова точность ( по сравнению с разрешением и точностью измерения ) значений. Часто они выражаются в виде «полос погрешности», минимального и максимального отклонения от диапазона значений, в котором (как ожидается) будет находиться истинное значение. Поскольку цифровая компьютерная математика несовершенна, ошибки округления и усечения умножают эту ошибку, поэтому полезно выполнить «анализ ошибок» [8], чтобы подтвердить, что значения, выведенные моделированием, по-прежнему будут полезными и точными.
Типы
Модели, используемые для компьютерного моделирования, можно классифицировать по нескольким независимым парам атрибутов, включая:
Стохастическое или детерминированное (и как частный случай детерминированного, хаотическое) — см. внешние ссылки ниже для примеров стохастического и детерминированного моделирования.
Моделирование динамических систем , например, электрических систем, гидравлических систем или многотельных механических систем (описываемых в основном с помощью DAE:s) или динамическое моделирование полевых задач, например, моделирование вычислительной гидродинамики или МКЭ (описываемое с помощью PDE:s).
Другой способ категоризации моделей — это рассмотрение базовых структур данных. Для пошаговых симуляций по времени есть два основных класса:
Моделирования, которые хранят свои данные в регулярных сетках и требуют только доступа к следующему соседу, называются трафаретными кодами . Многие приложения CFD относятся к этой категории.
Если базовый граф не является регулярной сеткой, модель может относиться к классу методов без сеток .
Для моделирования стационарного состояния уравнения определяют отношения между элементами моделируемой системы и пытаются найти состояние, в котором система находится в равновесии. Такие модели часто используются при моделировании физических систем как более простой случай моделирования перед попыткой динамического моделирования.
Динамическое моделирование пытается зафиксировать изменения в системе в ответ на (обычно изменяющиеся) входные сигналы.
Дискретно -событийное моделирование (DES) управляет событиями во времени. Большинство компьютерных, логических и схем моделирования дерева неисправностей относятся к этому типу. В этом типе моделирования симулятор поддерживает очередь событий, отсортированных по времени моделирования, когда они должны произойти. Симулятор считывает очередь и запускает новые события по мере обработки каждого события. Неважно выполнять моделирование в реальном времени. Часто важнее иметь возможность доступа к данным, полученным в результате моделирования, и обнаруживать логические дефекты в конструкции или последовательности событий.
Особый тип дискретного моделирования, который не опирается на модель с базовым уравнением, но тем не менее может быть представлен формально, — это агентное моделирование . В агентном моделировании отдельные сущности (такие как молекулы, клетки, деревья или потребители) в модели представлены напрямую (а не их плотностью или концентрацией) и обладают внутренним состоянием и набором поведений или правил, которые определяют, как состояние агента обновляется от одного временного шага к другому.
Раньше выходные данные компьютерного моделирования иногда представлялись в виде таблицы или матрицы, показывающей, как данные были затронуты многочисленными изменениями параметров моделирования . Использование формата матрицы было связано с традиционным использованием концепции матрицы в математических моделях . Однако психологи и другие отметили, что люди могли быстро воспринимать тенденции, глядя на графики или даже движущиеся изображения или кинокадры, созданные на основе данных, как показано с помощью анимации, созданной с помощью компьютерной графики (CGI). Хотя наблюдатели не обязательно могли читать числа или цитировать математические формулы, наблюдая за движущейся погодной картой, они могли предсказывать события (и «видеть, что дождь направляется в их сторону») гораздо быстрее, чем просматривая таблицы координат дождевых облаков . Такие интенсивные графические отображения, которые выходили за рамки мира чисел и формул, иногда также приводили к выходным данным, в которых отсутствовала координатная сетка или отсутствовали временные метки, как будто они слишком сильно отклонялись от числовых отображений данных. Сегодня модели прогнозирования погоды, как правило, сопоставляют вид движущихся дождевых/снежных облаков с картой, использующей числовые координаты и числовые временные метки событий.
Аналогичным образом компьютерное моделирование компьютерной томографии с помощью CGI может имитировать, как опухоль может уменьшаться или изменяться в течение длительного периода лечения, представляя течение времени в виде вращающегося вида видимой части головы человека по мере изменения опухоли.
Разрабатываются и другие приложения компьютерного моделирования CGI [ на? ] для графического отображения больших объемов данных в движении по мере того, как в ходе моделирования происходят изменения.
В науке
Типичные примеры типов компьютерного моделирования в науке, которые выводятся из базового математического описания:
стохастическое моделирование, обычно используемое для дискретных систем, где события происходят вероятностно и которые не могут быть описаны напрямую дифференциальными уравнениями (это дискретное моделирование в вышеуказанном смысле). Явления в этой категории включают генетический дрейф , биохимические [9] или генные регуляторные сети с небольшим числом молекул. (см. также: метод Монте-Карло ).
Конкретные примеры компьютерного моделирования включают в себя:
статистическое моделирование, основанное на агломерации большого количества входных профилей, таких как прогнозирование равновесной температуры принимающих вод, что позволяет вводить гамму метеорологических данных для конкретного местоположения. Эта методика была разработана для прогнозирования теплового загрязнения .
Моделирование на основе агентов эффективно применяется в экологии , где его часто называют «индивидуальным моделированием» и применяют в ситуациях, когда нельзя пренебрегать индивидуальной изменчивостью агентов, например, при изучении динамики популяции лосося и форели (большинство чисто математических моделей предполагают, что вся форель ведет себя одинаково).
компьютерное моделирование вирусной инфекции в клетках млекопитающих. [9]
Компьютерное моделирование для изучения селективной чувствительности связей методом механохимии при измельчении органических молекул. [11]
Моделирование вычислительной гидродинамики используется для моделирования поведения текущего воздуха, воды и других жидкостей. Используются одно-, двух- и трехмерные модели. Одномерная модель может имитировать эффекты гидравлического удара в трубе. Двумерная модель может использоваться для моделирования сил сопротивления на поперечном сечении крыла самолета. Трехмерное моделирование может оценивать потребности в отоплении и охлаждении большого здания.
Понимание статистической термодинамической молекулярной теории является основополагающим для оценки молекулярных растворов. Развитие теоремы о распределении потенциала (PDT) позволяет упростить этот сложный предмет до приземленных представлений молекулярной теории.
В социальных науках компьютерное моделирование является неотъемлемым компонентом пяти углов анализа, поддерживаемых методологией просачивания данных [12] , которая также включает качественные и количественные методы, обзоры литературы (включая научную) и интервью с экспертами, и которая является расширением триангуляции данных. Конечно, как и любой другой научный метод, репликация является важной частью вычислительного моделирования [13].
В практическом контексте
Компьютерное моделирование используется в самых разных практических контекстах, таких как:
Симуляторы роботов для проектирования роботов и алгоритмов управления роботами
Модели городского моделирования , имитирующие динамические закономерности развития городов и реакции на политику городского землепользования и транспорта.
транспортная инженерия для планирования или перепроектирования частей уличной сети от отдельных перекрестков в городах до национальной сети автомагистралей для планирования, проектирования и эксплуатации транспортной системы. См. более подробную статью о моделировании в транспорте .
моделирование автомобильных аварий для проверки механизмов безопасности в новых моделях транспортных средств.
Системы «урожай-почва» в сельском хозяйстве с помощью специализированных программных фреймворков (например, BioMA , OMS3, APSIM)
Надежность и доверие людей к компьютерному моделированию зависят от достоверности модели моделирования , поэтому проверка и валидация имеют решающее значение в разработке компьютерного моделирования. Другим важным аспектом компьютерного моделирования является воспроизводимость результатов, что означает, что модель моделирования не должна давать разный ответ для каждого выполнения. Хотя это может показаться очевидным, это особый момент внимания [ редакционирование ] в стохастическом моделировании , где случайные числа на самом деле должны быть полуслучайными числами. Исключением из воспроизводимости являются симуляции с участием человека, такие как симуляции полета и компьютерные игры . Здесь человек является частью моделирования и, таким образом, влияет на результат таким образом, что его трудно, если не невозможно, воспроизвести в точности.
Производители транспортных средств используют компьютерное моделирование для тестирования функций безопасности в новых конструкциях. Создавая копию автомобиля в среде физического моделирования, они могут сэкономить сотни тысяч долларов, которые в противном случае потребовались бы для создания и тестирования уникального прототипа. Инженеры могут проходить моделирование миллисекунды за раз, чтобы определить точные нагрузки, оказываемые на каждую секцию прототипа. [15]
Компьютерная графика может использоваться для отображения результатов компьютерного моделирования. Анимации могут использоваться для восприятия моделирования в реальном времени, например, в учебных симуляциях . В некоторых случаях анимации могут быть полезны в режимах, более быстрых, чем в реальном времени, или даже более медленных, чем в реальном времени. Например, анимации, более быстрые, чем в реальном времени, могут быть полезны для визуализации накопления очередей в симуляции эвакуации людей из здания. Кроме того, результаты моделирования часто объединяются в статические изображения с использованием различных способов научной визуализации .
При отладке симуляция выполнения тестируемой программы (вместо выполнения в исходном виде) может обнаружить гораздо больше ошибок, чем может обнаружить само оборудование, и в то же время регистрировать полезную отладочную информацию, такую как трассировка инструкций, изменения памяти и количество инструкций. Эта техника также может обнаруживать переполнение буфера и подобные «труднообнаруживаемые» ошибки, а также выдавать информацию о производительности и данные настройки .
Подводные камни
Хотя иногда это игнорируется в компьютерном моделировании, очень важно [ editorializing ] выполнить анализ чувствительности , чтобы гарантировать, что точность результатов правильно понята. Например, вероятностный анализ риска факторов, определяющих успех программы разведки нефтяного месторождения, включает объединение выборок из различных статистических распределений с использованием метода Монте-Карло . Если, например, один из ключевых параметров (например, чистое отношение нефтеносных пластов) известен только с точностью до одной значащей цифры, то результат моделирования может оказаться не точнее одной значащей цифры, хотя он может (ошибочно) быть представлен как имеющий четыре значащих цифры.
^ Строгац, Стивен (2007). «Конец прозрения». В Брокмане, Джон (ред.). Какая у вас опасная идея? . HarperCollins. ISBN 9780061214950.
^ "Исследователи проводят крупнейшее военное моделирование". Лаборатория реактивного движения . Калтех . 4 декабря 1997 г. Архивировано из оригинала 22.01.2008.
^ "Молекулярное моделирование макроскопических явлений". IBM Research - Almaden . Архивировано из оригинала 2013-05-22.
^ Амброзиано, Нэнси (19 октября 2005 г.). «Крупнейшая симуляция вычислительной биологии имитирует самую важную наномашину жизни». Лос-Аламос, Нью-Мексико: Национальная лаборатория Лос-Аламоса . Архивировано из оригинала 2007-07-04.
^ Грэм-Роу, Дункан (6 июня 2005 г.). «Миссия по созданию имитируемого мозга начинается». New Scientist . Архивировано из оригинала 2015-02-09.
^ Сантнер, Томас Дж.; Уильямс, Брайан Дж.; Нотц, Уильям И. (2003). Планирование и анализ компьютерных экспериментов . Springer Verlag.
^ Bratley, Paul; Fox, Bennet L.; Schrage, Linus E. (2011-06-28). Руководство по моделированию. Springer Science & Business Media. ISBN9781441987242.
^ Джон Роберт Тейлор (1999). Введение в анализ ошибок: изучение неопределенностей в физических измерениях. University Science Books. стр. 128–129. ISBN978-0-935702-75-0. Архивировано из оригинала 2015-03-16.
^ ab Gupta, Ankur; Rawlings, James B. (апрель 2014 г.). «Сравнение методов оценки параметров в стохастических химических кинетических моделях: примеры в системной биологии». Журнал AIChE . 60 (4): 1253–1268. Bibcode : 2014AIChE..60.1253G. doi : 10.1002/aic.14409. ISSN 0001-1541. PMC 4946376. PMID 27429455 .
^ Атанасов, А.Г.; Вальтенбергер, Б; Пферши-Венциг, ЕМ; Линдер, Т; Ваврош, К; Ухрин, П; Теммл, В; Ван, Л; Швайгер, С; Хейсс, Э.Х.; Роллингер, Дж. М.; Шустер, Д; Бреусс, Дж. М.; Бочков, В; Миховилович, доктор медицинских наук; Копп, Б; Бауэр, Р; Дирш, В.М.; Стаппнер, Х (2015). «Открытие и пополнение запасов фармакологически активных натуральных продуктов растительного происхождения: обзор». Биотехнологии Адв . 33 (8): 1582–614. doi :10.1016/j.biotechadv.2015.08.001. ПМЦ 4748402 . PMID 26281720.
^ Мизуками, Коичи; Сайто, Фумио; Барон, Мишель. Исследование измельчения фармацевтических продуктов с помощью компьютерного моделирования. Архивировано 21 июля 2011 г. на Wayback Machine.
^ Mesly, Olivier (2015). Создание моделей в психологических исследованиях. США: Springer Psychology: 126 страниц. ISBN 978-3-319-15752-8
^ Виленски, Ури; Рэнд, Уильям (2007). «Создание соответствия моделей: воспроизведение агентной модели». Журнал искусственных обществ и социального моделирования . 10 (4): 2.
^ Уэскотт, Боб (2013). Книга о производительности каждого компьютера, Глава 7: Моделирование производительности компьютера. CreateSpace . ISBN978-1482657753.
^ Баасе, Сара. Дар огня: социальные, правовые и этические вопросы вычислений и Интернета. 3. Upper Saddle River: Prentice Hall, 2007. Страницы 363–364. ISBN 0-13-600848-8 .
Дальнейшее чтение
На Викискладе есть медиафайлы по теме «Компьютерное моделирование» .
Янг, Джозеф и Финдли, Майкл. 2014. «Вычислительное моделирование для изучения конфликтов и терроризма». Справочник Routledge по методам исследований в военных исследованиях под редакцией Сотерса, Джозефа; Шилдс, Патрисии и Ритьенса, Себастьяна. С. 249–260. Нью-Йорк: Routledge,
S. Hartmann, Мир как процесс: Моделирование в естественных и социальных науках, в: R. Hegselmann et al. (ред.), Моделирование и имитация в социальных науках с точки зрения философии науки , Библиотека теории и принятия решений. Дордрехт: Kluwer 1996, 77–100.
П. Хамфрис, Расширяя себя: вычислительная наука, эмпиризм и научный метод . Оксфорд: Oxford University Press , 2004.
Джеймс Дж. Нутаро (2011). Создание программного обеспечения для моделирования: теория и алгоритмы с приложениями на языке C++. John Wiley & Sons. ISBN 978-1-118-09945-2.
Деса, WLHM, Камаруддин, С. и Навави, МКМ (2012). Моделирование композиционных деталей самолетов с использованием симуляционного моделирования. Передовые исследования материалов, 591–593, 557–560.
Внешние ссылки
Путеводитель по архиву устной истории компьютерного моделирования 2003-2018 гг.