Алгоритмы стохастической симуляции обеспечивают практический метод для симуляции реакций, которые являются стохастическими по своей природе. Модели с небольшим количеством молекул могут быть реалистично моделированы стохастически, то есть позволяя результатам содержать элемент вероятности, в отличие от детерминированного решения.
Модели необходимых условий включать:
Все реакции в модели должны иметь свои KineticLaw
значение свойства установлено в MassAction
.
Если ваша модель содержит события, можно симулировать с помощью стохастической ssa
решатель. Другие стохастические решатели не поддерживают события.
Ваша модель не должна содержать дозы. Никакие стохастические решатели не поддерживают дозы.
Кроме того, если вы выполняете индивидуума или население подбор на модели, Configset object
задает стохастический решатель и опции, имейте в виду, что во время аппроксимации SimBiology® временные изменения:
SolverType
свойство решателю по умолчанию ode15s
SolverOptions
свойство последним опциям, сконфигурированным для детерминированного решателя
Во время стохастической симуляции модели программное обеспечение игнорирует любую скорость, назначение или алгебраические правила, если они присутствуют в модели. В зависимости от модели стохастические симуляции могут потребовать больше времени расчетов, чем детерминированные симуляции.
Совет
При симуляции модели с помощью стохастического решателя можно увеличить LogDecimation
свойство configset object
запись меньшего количества точек данных и сокращение времени запуска.
Химическое Главное Уравнение (CME) описывает динамику химической системы с точки зрения временной эволюции распределений вероятностей. Прямое решение для этого распределения непрактично для большинства реалистичных задач. Алгоритм стохастической симуляции (SSA) вместо этого эффективно генерирует отдельные симуляции, которые согласуются с CME, путем симуляции каждой реакции с помощью ее функции склонности. Таким образом, анализ нескольких стохастических симуляций, чтобы определить распределение вероятностей, более эффективен, чем непосредственное решение CME.
Преимущество
Этот алгоритм точен.
Недостатки
Поскольку этот алгоритм оценивает одну реакцию за раз, он может быть слишком медленным для моделей с большим количеством реакций.
Если количество молекул любых реагентов огромное, может потребоваться много времени, чтобы завершить симуляцию.
Поскольку алгоритм стохастической симуляции может быть слишком медленным для многих практических задач, этот алгоритм был разработан, чтобы ускорить симуляцию за счет некоторой точности. Алгоритм рассматривает каждую реакцию как независимую от других. Он автоматически выбирает временной интервал, такой что относительное изменение функции склонности для каждой реакции меньше, чем ваш допуск ошибки. После выбора временного интервала алгоритм вычисляет количество раз, когда каждая реакция происходит в течение временного интервала, и вносит соответствующие изменения в концентрацию различных химических веществ.
Преимущества
Этот алгоритм может быть порядком величины быстрее, чем SSA.
Можно использовать этот алгоритм для больших задач (если задача не численно жесткая).
Недостатки
Этот алгоритм жертвует некоторой точностью для скорости.
Этот алгоритм не хорош для жестких моделей.
Необходимо задать допуск ошибки, чтобы результирующие временные шаги соответствовали порядку самой быстрой шкалы времени.
Как и явный алгоритм скачка тау, неявный алгоритм скачка тау также является приблизительным методом моделирования, предназначенным для ускорения симуляции за счет некоторой точности. Он может обрабатывать численно жесткие задачи лучше, чем явный алгоритм тау-скачка. Для детерминированных систем задача, называется численно жесткой, если в системе присутствуют «быстрые» и «медленные» временные шкалы. Для таких задач явный способ тау-скачка работает хорошо только, если он продолжает делать небольшие временные шаги, которые имеют порядок самой быстрой шкалы времени. Неявный метод скачка тау потенциально может сделать гораздо большие шаги и все еще быть стабильным. Алгоритм рассматривает каждую реакцию как независимую от других. Он автоматически выбирает временной интервал, таким образом, чтобы относительное изменение функции склонности для каждой реакции было меньше, чем пользовательский допуск ошибки. После выбора временного интервала алгоритм вычисляет количество раз, когда каждая реакция происходит в течение временного интервала, и вносит соответствующие изменения в концентрацию различных химических веществ.
Преимущества
Этот алгоритм может быть намного быстрее, чем SSA. Это также обычно быстрее, чем явный алгоритм тау-скачка.
Можно использовать этот алгоритм для больших задач, а также для численно жестких задач.
Общее количество предпринятых шагов обычно меньше, чем явный алгоритм скачка тау.
Недостатки
Этот алгоритм жертвует некоторой точностью для скорости.
Существует более высокая вычислительная нагрузка для каждого шага по сравнению с явным алгоритмом скачка тау. Это приводит к увеличению времени центрального процессора на шаг.
Этот метод часто демпфирует возмущения медленного многообразия, приводя к уменьшенному отклонению состояния относительно среднего.
[1] Гибсон М.А., Bruck J. (2000), «Точная стохастическая Симуляция химических систем со многими видами и многими каналами», Journal of Physical Chemistry, 105: 1876-1899 .
[2] Gillespie D. (1977), «Точная стохастическая симуляция связанных химических реакций», Журнал физической химии, 81 (25): 2340-2361 .
[3] Gillespie D. (2000), «The Chemical Langevin Equation», Journal of Chemical Physics, 113 (1): 297-306.
[4] Gillespie D. (2001), «Approximate Accelerated Stochastic Симуляции of Chemical Reacting Systems», Journal of Chemical Physics,115 (4): 1716-1733.
[5] Gillespie D., Petzold L. (2004), «Улучшенный выбор размера скачка для ускоренной стохастической Симуляции», Журнал химической физики, 119: 8229-8234
[6] Rathinam M., Petzold L., Cao Y., Gillespie D. (2003), «Stiffness in Stochastic Chemical Reacting Systems: The Implicit Tau-Leaping Method», Журнал Chemical Physics, 119 (24): 12784-12794.
[7] Moler, C. (2003), «Жесткие дифференциальные уравнения Жесткость является тонкой трудной и важной концепцией в численном решении обыкновенных дифференциальных уравнений», MATLAB News & Notes.