Розробка AI-системи скорочення харчових відходів (Food Waste AI)
Харчові відходи – 30-40% закуплених продуктів у ресторані, 15-20% у рітейлі. AI-система скорочує їх через точне прогнозування попиту, динамічне управління запасами, інтелектуальне ціноутворення товарів і оптимізацію використання залишків.
Джерела харчових відходів
Первинні причини:
- Overproduction: приготували більше, ніж продали
- Overordering: закупили більше, ніж потрібно
- Expiry: не встигли продати до закінчення терміну
- Spoilage: порушення зберігання, ланцюги холоду
За ланками ланцюга:
- Виробництво та ферми: надвиробництво
- Дистрибуція: псування при транспортуванні
- Рітейл: термін, що минув, некондиція
- Загальноживлення: overproduction, plate waste
- Домогосподарства: більша частина всіх втрат
AI-системи для бізнесу (рітейл, громадське харчування) зачіпають ланки дистрибуції та продажів.
Demand Forecasting для рітейлу
Проблема швидкопсувних товарів: Молочні, хліб, овочі/фрукти – термін 1-7 днів. Помилка прогнозу 5% = списання реальних грошей.
Спеціальні методи:
- Intermittent demand: для нішевих позицій (organic, premium) з рідкісним продажем
- Shelf-life aware replenishment: замовлення з урахуванням залишкового терміну придатності на полиці
def shelf_life_adjusted_order(прогноз, поточний_запас, дати_терміну_придатності, мінімальний_сhelf_life_at_sale=2):
"""
Залишок, який буде проданий до закінчення терміну мінус 2 дні
= Інвентар, що продається
Чиста потреба = прогноз - продаваний_товар
"""
продаваний = сума(кількість для кількості, термін дії в поштовому індексі(поточний_запас, дати_виходу)
якщо (термін придатності - сьогодні).днів >= min_shelf_life_at_sale)
повернення max(0, прогноз - придатний для продажу)
Динамічне зниження цін
Товари, що витікають, потрібно продати, поки вони ще мають цінність. Dynamic markdown:
def calculate_markdown(поточна_ціна, дні_що_виникли, щоденний_попит, одиниці_що_виникли):
"""
Оптимальна знижка: максимізувати виторг від залишку
при обмеженні: продати все до закінчення терміну
"""
# Ймовірність продажу всіх одиниць за поточною ціною
prob_sell = survival_model.predict_proba(днів_залишилося, одиниць_залишилося, щоденний_попит)
якщо prob_sell > 0.8:
return 0 # немає необхідності знижувати
# Оптимальна знижка: price × demand(price) = max revenue
оптимальна_ціна = оптимізатор_ціни(щоденний_попит, еластичність_ціни, кількість_днів, кількість_одиниць)
markdown_pt = (поточна_ціна - оптимальна_ціна) / поточна_ціна
повернути markdown_pct
Типові маркдауни: D-3 до закінчення: -15%, D-1: -30%, D0: -50%
Для ресторанів - Daily Specials: Залишки інгредієнтів → AI генерує пропозиції "Блюдо дня" з високою маржою, що використовують продукти з терміном, що закінчується. Рецептурна база + inventory LLM генерує опис страви.
Production Planning для громадського харчування
Налаштування оптимізатора:
def calculate_mise_en_place(прогноз_обкладинки, меню, інвентар, час_підготовки):
"""
Cover forecast → очікувані замовлення страв
→ інгредієнти, які потрібно підготувати
→ зіставлення з поточним inventory
→ що потрібно підготувати, в якій кількості
"""
очікувані_страви = прогноз_обкладинки @ menu.dish_probability_matrix
очікувані_інгредієнти = очікувані_страви @ menu.recipe_matrix
# Буфер для walk-ins та варіабельності
підготовка_з_буфером = очікувані_інгредієнти * 1.15
# За вирахуванням вже готового
net_prep = prep_with_buffer - поточний_підготовлений_інвентар
повернути net_prep
Оптимізація пакетного приготування: При великому обсязі готувати партіями. AI визначає оптимальний розмір батчу: баланс між fresh quality (менше = краще смак) і labor efficiency (більше = менше переналаштування кухні).
IoT моніторинг відходів
Система розумного сміттєвого бака:
- Ваги під сміттєвими баками (Winnow, Orbisk): автоматичне зважування
- Камера над баком + CV: класифікація що викидається
- Дані в реальному часі → шеф-кухар бачить wastage by item
# Приклад виведення системи моніторингу відходів
щоденний_звіт_про_відходи = {
'total_kg': 12.3,
'value_usd': 45.80,
'найбільш_витрачені_предмети': [
{'item': 'Лосось', 'qty_kg': 2.1, 'cause': 'перевиробництво'},
{'item': 'Салат змішаний', 'qty_kg': 1.8, 'cause': 'відходи_з_тарілки'},
{'item': 'Круасани', 'qt_kg': 1.4, 'cause': 'термін придатності закінчився'}
]
}
Донації та B2B продаж залишків
Автоматичне керування надлишками:
- За 24 години до закінчення: публікація на Too Good To Go / Eatwith (magic bag)
- За 12 годин: пропозиція у локальні charity через Last Mile API
- За 6 годин: передача у фудбанк (логістика через власний кур'єр чи platforma)
Юридично: ГОСТ Р 55787-2013 регулює передачу продуктів організаціям соціального захисту.
Метрики системи:
- Зменшення харчових відходів: 20-35% від базового рівня
- Food Cost%: зниження на 1-3 п.п.
- Markdown recovery rate: виручка від знижкових продажів / вартість потенційно списаного
- Waste per cover (ресторани): кг/гість
Терміни: базова система з demand forecast + markdown engine - 4-5 тижнів. Повноцінна платформа з IoT вагами, donation API та recipe optimizer - 3-4 місяці.







