AI-система оптимизации рецептур пищевых продуктов

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
AI-система оптимизации рецептур пищевых продуктов
Средняя
~2-4 недели
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

AI-система оптимизации рецептур пищевых продуктов

Разработка пищевых рецептур — многокритериальная задача: вкус, текстура, срок хранения, состав по нутриентам, стоимость и технологичность должны соответствовать требованиям одновременно. AI ускоряет эту работу в 3–5 раз по сравнению с лабораторным перебором.

Суррогатные модели свойств рецептуры

Предсказание органолептических свойств:

Вкус, запах, текстуру нельзя вычислить аналитически — только измерить экспериментально. Суррогатная ML-модель предсказывает органолептику по составу:

import pandas as pd
import numpy as np
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import Matern, WhiteKernel

class RecipeSurrogateModel:
    """
    Surrogate model органолептических свойств рецептуры.
    Обучается на экспериментальных данных дегустаций.
    """

    def __init__(self, sensory_attributes):
        """sensory_attributes: ['sweetness', 'saltiness', 'texture', 'color', ...]"""
        self.attributes = sensory_attributes
        self.models = {}

        for attr in sensory_attributes:
            kernel = Matern(length_scale=1.0, nu=2.5) + WhiteKernel(noise_level=0.1)
            self.models[attr] = GaussianProcessRegressor(
                kernel=kernel,
                n_restarts_optimizer=10,
                normalize_y=True,
                random_state=42
            )

    def fit(self, ingredient_compositions, sensory_scores):
        """
        ingredient_compositions: (n_recipes, n_ingredients) — доли ингредиентов
        sensory_scores: (n_recipes, n_attributes) — оценки дегустаторов 0–10
        """
        for i, attr in enumerate(self.attributes):
            self.models[attr].fit(ingredient_compositions, sensory_scores[:, i])
        return self

    def predict_with_uncertainty(self, composition):
        """
        Предсказание свойств новой рецептуры с оценкой неопределённости.
        Высокая неопределённость → приоритет для лабораторного теста.
        """
        X = np.array(composition).reshape(1, -1)
        predictions = {}
        for attr, model in self.models.items():
            mean, std = model.predict(X, return_std=True)
            predictions[attr] = {'mean': float(mean[0]), 'std': float(std[0])}
        return predictions

Оптимизация состава

Multi-objective Optimization:

Три конкурирующие цели: стоимость минимальна, нутриентный профиль оптимален, органолептика максимальна:

from scipy.optimize import minimize, LinearConstraint
import numpy as np

def optimize_recipe(
    surrogate_model,
    ingredient_costs,        # руб/кг каждого ингредиента
    nutrient_targets,        # {'protein_pct': (min, max), 'fat_pct': ...}
    sensory_targets,         # {'sweetness': min_value, 'texture': min_value}
    ingredient_limits,       # (min_pct, max_pct) для каждого ингредиента
    w_cost=0.4, w_sensory=0.6
):
    """
    Поиск рецептуры, минимизирующей стоимость при соблюдении
    нутриентных и органолептических требований.
    """
    n_ingr = len(ingredient_costs)

    def objective(x):
        cost = np.dot(x, ingredient_costs)  # стоимость
        sensory = surrogate_model.predict_with_uncertainty(x)
        # Штраф за несоответствие органолептическим требованиям
        sensory_penalty = sum(
            max(0, target - sensory[attr]['mean']) ** 2
            for attr, target in sensory_targets.items()
        )
        return w_cost * cost + w_sensory * sensory_penalty * 10

    # Ограничения
    constraints = [
        {'type': 'eq', 'fun': lambda x: np.sum(x) - 1.0},  # сумма = 100%
    ]
    for attr, (min_val, max_val) in nutrient_targets.items():
        # Добавить нутриентные ограничения (через композиционные таблицы)
        pass

    bounds = ingredient_limits
    x0 = np.array([0.5 / n_ingr] * n_ingr)  # равномерный старт

    result = minimize(objective, x0, method='SLSQP',
                     bounds=bounds, constraints=constraints)
    return result.x, result.fun

Bayesian Optimization для итеративной разработки

Активный эксперимент:

Вместо перебора — умный выбор следующего эксперимента:

  1. Начальный DoE: 20–30 рецептур по Simplex-Centroid дизайну
  2. Обучить GP-суррогат
  3. Expected Improvement выбирает наиболее информативную следующую точку
  4. Лаборатория тестирует → обновить суррогат
  5. Сходимость за 50–100 итераций (vs. 200–500 при случайном поиске)

Направленная вариация:

Разработчик задаёт направление оптимизации словами:

  • «Сделать более сладким без увеличения сахара» → заменить часть сахара на стевию/эритрит
  • «Снизить жирность при сохранении кремовой текстуры» → функциональные крахмалы
  • LLM предлагает альтернативные ингредиенты → GP-суррогат оценивает эффект

Стабильность и shelf life

Прогноз срока годности:

Кинетические модели порчи (Arrhenius): скорость химических реакций при разных температурах:

  • Окисление жиров (TBARS, пероксидное число) → прогноз для разных условий хранения
  • Микробиологическая порча: модели роста (Baranyi, Modified Gompertz)
  • ML-поправки на конкретный состав рецептуры

Ускоренные испытания:

Q10 закон: при +10°C скорость реакций удваивается:

  • Хранение при 45°C × 3 недели ≈ хранение при 25°C × 6 месяцев
  • ML-модель конверсии ускоренных данных в реальный срок хранения

Срок разработки: 3–5 месяцев для системы оптимизации рецептур с GP-суррогатом, Bayesian Optimization и прогнозом shelf life.