Назад в библиотеку

Вычислительное питание: Алгоритм формирования плана диеты для удовлетворения конкретных потребностей в питании

Авторы: T. Pikes, R. Adams

Автор перевода: Солоницын Л.П.
Источник: [Ссылка]

Аннотация

Было предложено много методов для создания планов питания, но большинство из них рассматривают только проксимиты. Однако человеческому организму требуется сочетание проксимальных и нескольких макроэлементов, микроэлементов, витаминов и минералов. Кроме того, модели, предназначенные для создания этих планов питания, не учитывают конкретные потребности человека в питании. Эти потребности часто выражаются как комбинация нижнего количества (LBA), идеального количества (IA) и верхнего количества (UBA), необходимого для процветания человеческого тела. Целью этого проекта является создание алгоритма для составления списка продуктов питания, которые отвечают конкретным требованиям к питанию. С предлагаемым алгоритмом каждое питательное вещество получает оценку, основанную на количестве питательного вещества, содержащегося в списке продуктов, в отношении LBA, IA и UBA. Эти баллы агрегируются, чтобы дать плану питания общий балл.

1. Введение

Соединенные Штаты имеют самые высокие расходы на здравоохранение в процентах от валового внутреннего продукта (ВВП) среди развитых стран [1]. США также тратят на здравохранение больше, чем любая другая страна [1]. В 2006 году стоимость медицинских услуг для человека с избыточным весом составляла 1429 долларов США на человека больше, чем расходы на людей с нормальным весом. Более трети всех взрослых американцев старше 19 лет страдают ожирением [2]. Это относит США к числу десяти самых тучных стран мира [3]. Учитывая высокий уровень ожирения и увеличение расходов на медицинское обслуживание, снижение уровня ожирения в США будет способствовать значительному сокращению расходов на здравоохранение. Принятие здорового образа жизни может помочь предотвратить и уменьшить ожирение [4].

К счастью, люди становятся более осведомленными о своём здоровье и о том, как простые вещи, такие как диета и физические упражнения, могут способствовать общей здоровой жизни. Кроме того, технология помогает большему количеству людей становиться все более осведомленными и заниматься поддержанием здоровой жизни. Как доказательство, буквально тысячи приложений в Apple App Store связаны со здоровьем и фитнесом [Ссылка на App Store], не говоря уже о тысячи веб-сайтов, посвященных здоровью. Носимые вычисления (wearable computing, т.е. смарт-часы и т.д.) также революционизируют то, как люди контролируют и поддерживают своё здоровье.

Диета является одним из важных аспектов здоровья, на который люди все чаще обращают внимание. Существуют десятки мобильных приложений и веб-сайтов, посвященных отслеживанию потребления калорий, планированию питания, продуктовым магазинам и т. д. Помимо поддержания общего здоровья, диета также известна как самая дешевая и доступная медицина [5] [6], предлагающая альтернативы фармацевтическим препаратам для профилактики и лечения расстройств и заболеваний. Традиционн, зарегистрированный диетолог может быть нанят для планирования питания и выбора продуктов, чтобы помочь достичь целей в области питания. Однако такой специализированный совет является дорогостоящим для среднего человека. Необходим недорогой инструмент, позволяющий среднему потребителю, заботящемуся о своём здоровье, сделать выбор положительных продуктов питания, адаптированный к целям питания. В этом документе предлагается метод, который помогает человеку создавать индивидуальные списки продуктов, отвечающие конкретным требованиям к питанию. Кроме того, этот инструмент можно использовать в качестве помощи зарегистрированному диетологу при составлении плана диеты, направленного на лечение пациентов с определенными расстройствами, такими как диабет или пищевая чувствительность.

2. Существующие методы

2.1 SSC3gd

Модель SSC3gd – это метод профилирования питательных веществ, разработанный для того, чтобы оценивать продукты от менее здоровых до более здоровых. Он относится к продуктам на основе плотности энергии, насыщенных жиров, немолочных экстрагенных сахаров, натрия, кальция, железа и n-3 полиненасыщенных жирных кислот [7]. SSC3gd – очень хорошая модель для определения пищевой ценности продуктов. Тем не менее, она не учитывает конкретные потребности человека в питании, когда она назначает пищу своим SSC3gd [7].

2.2 EatThisMuch

Существует множество веб-сайтов с целью создания индивидуального плана питания. Эти веб-сайты предлагают быстрый способ создания плана питания для удовлетворения определенных видов диет, таких как палео, вегетарианская или кетогенная диета. Однако одним из главных недостатков этих сайтов является то, что они не учитывают различные макроэлементы, микроэлементы, витамины и минералы, которые необходимы для общего здоровья человеческого организма.

EatThisMuch.com – это многофункциональная система для создания ежедневного плана питания. Она генерирует план приема пищи на ориентируясь на целевое количество калорий, количества блюд и ряда белковых, углеводных и жировых значений. Он обеспечивает показ процентного отношений калорий к белкам, углеводам и жирам для сгенерированного списка блюд. Он обеспечивает ежедневный трекер веса, чтобы дать пользователю отзывы о влиянии их рациона на их вес. Тем не менее, это не дает пользователю возможность ограничить или увеличить микроэлементный состав блюд.

2.3 Custom Meal Planner

CustomMealPlanner.com – это еще один сайт, посвященный созданию личного плана диеты. Он предоставляет другой набор функций, отличный от EatThisMuch.com. Он генерирует свои блюда на основе модели базальной метаболической скорости (BMR) в сочетании с определенным типом диеты, целью и активностью. По-видимому, он не учитывает конкретные требования к питанию, которые могут иметь люди.

3. Предлагаемый метод

Мы предлагаем метод, который генерирует индивидуальный план приема пищи для удовлетворения персонализированных целей в области питания. Наши ежедневные планы питания основаны на питательных веществах, указанных в таблице 1. Все питательные вещества, рассматриваемые для этого проекта, получают нижнюю границу (LB). LB является абсолютным наименьшим количеством этого питательного вещества, которое будет принято для того, чтобы план приема пищи был принят. Как поясняется ниже, LB по умолчанию предоставляется для всех питательных веществ, и пользователям предоставляется возможность настраивать LB для учета недостатков или избытков пищи, чтобы обеспечить лучшие результаты для здоровья. Например, кормящая мать потребует другого набора питательных веществ, чем беременная мать. Все питательные вещества также получают Идеальное количество (IA). IA – это количество питательного вещества, которое приведет к тому, что план питания получит идеальный балл для конкретного питательного вещества. Возможно, что LB и IA будут одинаковыми. Некоторые питательные вещества также могут иметь верхнюю границу (UB). UB – это максимальное количество, которое будет принято и при превышении которого план будет считаться неприемлимым. UB предоставляет пользователю возможность ограничить нежелательные качества плана приема пищи. Например, если кто-то страдает от высокого кровяного давления, UB питательных веществ может быть изменен до уровней, которые будут способствовать снижению артериального давления.

Таблица 1 – Питательные вещества

Питательное вещество Единицы измерения
Кальций мг
Фосфор мг
Магнезий мг
Калий мг
Натрий мг
Железо мг
Марганец мг
Медь мг
Цинк мг
Селен мкг
Витамин А МЕ (1 МЕ = 0.3 мкг ретинола)
Витамин С мг
Витамин Е мг
Витамин К мкг
Тиамин мг
Рибофлавин мг
Ниацин мг
Пантотеновая кислота мг
Фолиевая кислота мкг

Чтобы определить, соответствует ли план питания определенному набору целей в области питания, мы вычисляем числовую оценку для плана питания, называемую MSCORE. MSCORE представляет собой суммирование каждого показателя питательных веществ (NSCORE). Если мы рассмотрим два MSCORE, сгенерированных с одинаковым набором целей в области питания, более крупный MSCORE соотносится с планом питания, который более точно соответствует потребностям в питании.

NSCORE генерируется с использованием одного из трех линейных функций. Выбор какой из трех функций для использования основан на количестве питательного вещества, находящегося в настоящее время в плане приема пищи (Xnut) по отношению к UB, IA и LB питательных веществ. Если Xnut больше IA и меньше UB, используется первая функция ниже. Если Xnut меньше IA и больше LB, используется вторая функция. Наконец, если Xnut меньше LB, используется третья функция. По сути, три функции различаются по весу и по умолчанию. Как показано ниже, наш метод позволяет использовать три разных веса и три разных значения по умолчанию, позволяя пользователям делать численный акцент на LB, IA или UB для данного питательного вещества.

NSCORE =  f( x nut )=   -weight <ub + default <ub , ub x nut > ia weight >lb + default >lb , ia x nut > lb weight <lb + default <lb , lb x nut > 0 ,

где

Графически функции питания показаны на рисунке 1. Ось X представляет собой количество питательного вещества, присутствующего в плане приема пищи (в данном случае в миллиграммах). Ось Y является соответствующим NSCORE для этого питательного вещества. Веса в функциях соответствуют наклону отрезков линии. Наклон (1) коррелирует с весом (1), наклон (2) коррелирует с весом (2) и т. д. Оценки по умолчанию в функциях соответствуют границам сегментов линии. Сегмент линии в красном – это функция, которая используется, если количество питательных веществ находится между 0 и LB. Обратите внимание, что наклон довольно крутой, что указывает на то, что пользователь чувствует, что важно получить по крайней мере LB для этого питательного вещества. Сегмент зеленой линии – это функция, которая используется, когда количество питательных веществ падает между LB и IA. Обратите внимание на то, что если план питания включает ИА (2500 мг), то генерируется максимальный NSCORE (2). Наконец, фиолетовый сегмент является функцией, если количество питательных веществ превышает IA, но меньше, чем UB. Обратите внимание, что чем дальше от IA, тем больше уменьшается NSCORE.

График зависимости количества питательного вещества в плане и NSCORE

Рисунок 1 – График зависимости количества питательного вещества в плане и NSCORE

3. Эффекты настройки

Наш метод предоставляет три различных диапазона и функции для расчета NSCORE, чтобы можно было настроить план приема пищи. В количественном отношении он предоставляет пользователю возможность применить преимущество или штраф к NSCORE, если количество питательного вещества попадает в желаемый или нежелательный диапазон. Пользовательская настройка веса и/или значений по умолчанию может использоваться для достижения конкретных результатов в области питания. Например, пользователи, которые беременны, могут потребовать увеличения или уменьшения фолиевой кислоты. Пользователи с высоким кровяным давлением могут быть чувствительны к натрию.

Чтобы продемонстрировать это, рассмотрите кальций, как приведено в таблице 2. В этой таблице показано, что пользователь заинтересован в создании плана приема пищи, который содержит по меньшей мере 1000 мг кальция (LB), в идеале 2500 мг (IA), и не более 5000 мг (UB). Таблица 2 также показывает, что наш метод создал список продуктов, который приводит к 1164 мг кальция (между LB и IA). Мы будем использовать информацию, чтобы показать, как изменение весов и значений по умолчанию может повлиять на NCSORE (суммировано в таблице 3).

Таблица 2 – Пример списка питательных веществ

Питательное вещество Единицы измерения LB IA UB Текущее количество
Кальций мг 1000 2500 5000 1164

Таблица 3 – Веса, значения по умолчанию и NSCORE

Питательное вещество Вес Значение по умолчанию NSCORE
#1 #2 #1 #2 #1 #2
Кальций 1 2 1 1 1.466 1.931

Сначала рассмотрим контрольный случай с весом и значениями по умолчанию, установленными в 1. Это приводит к тому, что NSCORE является отношением количества кальция к IA (1164/2500) плюс дополнительная точка для значения по умолчанию (1). Это приведет к NSCORE 1.466.

Теперь рассмотрим, если вес удваивается, от 1 до 2 (графически это увеличивает наклон линии). Поднимая вес, мы удваиваем эффект отношения кальция к IA. Теперь выражение равно 2 × (1164/2500) + 1. Окончательный NSCORE для второго набора весов и значений по умолчанию – 1.931. С возможностью регулировки весов и значений по умолчанию в трех отдельных диапазонах пользователь будет иметь микроконтроль над воздействием каждого диапазона питательных веществ на NSCORE и MSCORE.

5. Имплементация прототипа

Чтобы продемонстрировать полезность нашего метода, мы построили прототип на языке программирования Python. Прототип использует Национальную базу данных о питательных веществах (NND) Департамента агрикультуры Соединенных Штатов (USDA) для получения информации о питательных веществах 8789 продуктов на стандартном справочном выпуске 28. Обзор алгоритма см. на рисунке 2. Прототип начинается с пустого плана приема пищи и постепенно добавляет продукты в попытке увеличить MSCORE плана питания. Прототип работает, исследуя каждое питательное вещество по очереди. Для каждого питательного вещества прототип выбирает случайную пищу из списка из 100 продуктов, которые содержат наибольшее количество этого питательного вещества (NND может генерировать такой список). Пища добавляется в план приема пищи, и рассчитывается новый MSCORE. Если еда не приводит к тому, что Xnut превысит UBnut, она остаётся в плане. Выбирается следующее питательное вещество в списке, и процесс повторяется. Продукты добавляют до тех пор, пока каждое питательное вещество не превысит его LB. План питания завершен, когда выполнены все минимальные требования к питательным веществам.

Блок-схема алгоритма Computational Nutrition

Рисунок 3 – Блок-схема алгоритма Computational Nutrition

Однако добавление пищи может привести к тому, что питательное вещество будет превышать его верхнюю границу. Когда это происходит, пища удаляется, и добавляется новая пища. Например, добавление бекона в план приема пищи для увеличения фосфора может привести к увеличению натрия за пределами его UB. Во время этого процесса зацикливания наш прототип записывает количество раз, когда питательное вещество вызывает отторжение пищи. Если питательное вещество вызывает отторжение пищи четыре или более раз, мы удаляем пищевой продукт из плана приема пищи с наибольшим количеством этого питательного вещества. Продолжая описанный выше пример, после того как бекон отброшен, алгоритм может добавить арахис, который также может увеличить натрий выше его UB. Предположим, что добавлено еще два продукта, которые вызывают превышение натрия. Наше предположение состоит в том, что план питания уже содержит высокое количество натрия, и у алгоритма возникают проблемы с добавлением продуктов, чтобы поддерживать количество натрия ниже своего UB. Таким образом, алгоритм удаляет пищу, которая в настоящее время имеет самое высокое содержание натрия в плане.

Ниже приведен образец вывода прототипа в его первом цикле по списку питательных веществ. Отметьте строку 12. При поиске пищи, чтобы добавить кальций, прототип выбрал пищу, которая привела бы к тому, что натрий превысил UB и был отклонён. В строке 22, пытаясь поместиться в пищу для витамина Е, натрий в четвертый раз отбросил пищу. Из-за этого, прежде чем мы начнем следующий цикл, прототип удалит пищу с наибольшим количеством натрия (строка 24). (прим. названия продуктов оставлены на английском языке)

          1) Ищем Витамин С.
          2) Добавляем Peppers, sweet, green, cooked, boiled, drained, without salt.          
          3) Ищем Витамин В1 (тиамин).          
          4) Добавляем WORTHINGTON Dinner Roast, frozen, unprepared.          
          5) Ищем Витамин B2 (рибофлавин).          
          6) Добавляем Spaghetti with meat sauce, frozen entr?e.          
          7) Ищем Витамин B3 (ниацин).          
          8) Добавляем Fast foods, submarine sandwich, turkey, roast beef and ham on white bread with lettuce and tomato.          
          9) Ищем Пантотеновая кислота.          
          10) Добавляем Chicken, liver, all classes, cooked, pan-fried.          
          11) Ищем Кальций.          
          12) Превысили Натрий (1).
          13) Ищем Витамин К.
          14) Превысили Натрий (2).
          15) Ищем Магнезий.
          16) Добавляем Peanuts, Virginia, oil-roasted, without salt.
          17) Ищем Калий.
          18) Добавляем Plums, dried (prunes), uncooked.
          19) Ищем Цинк.
          20) Превысили Натрий (3).
          21) Ищем Витамин Е.
          22) Превысили Натрий (4).
          23) Оценка: 5.52796417989.
          24) Убираем еду Натрий.
          25) Ищем Витамин С.
          26) Добавляем Orange juice, raw.
          27) Ищем Кальций.
          28) Добавляем CARRABBA’S ITALIAN GRILL, cheese ravioli with marinara sauce.
          29) Ищем Витамин К.
          30) Превысили Натрий (1).
          31) Ищем Магнезий.
          32) Превысили Натрий (2).
          33) Ищем Калий.
          34) Добавляем Apricots, dehydrated (low-moisture), sulfured, stewed.
          35) Ищем Цинк.
          36) Превысили Натрий (3).
          37) Ищем Витамин Е.
          38) Добавляем Oil, sunflower, linoleic (less than 60%).
          39) Дата создания отчёта: 02/08/16. Оценка: 7.55021904762.
      

Как только метод добавит достаточное количество продуктов для приведения каждого питательного вещества к его LB, программа остановится, и пользователю будет представлен окончательный список продуктов, каждый NSCORE, MSCORE и разбивка питательных веществ. Ниже приведен образец конечного результата.

          1) Прошло времени (ms): 329500.334978.
          2) Дата создания отчёта: 02/20/16. Оценка: 19.7325233333.          
          3) Список питательных веществ.
          4) Гистидин = N/A DRV (2.068 г/0).
          5) Витамин С = 40.7% от идеального (609.9 мг/1.2198).
          6) Витамин В1 (тиамин) = 84.4% от идеального (2.111 мг/2.5332).
          7) Витамин B2 (рибофлавин) = 174.6% от идеального (4.015 мг/0.330833333333).
          8) Витамин B3 (ниацин) = 69.4% от идеального (20.81 мг/2.081).
          9) Пантотеновая кислота = 54.2% от идеального (10.837 мг/1.62555).
          10) Фолиевая кислота = 197.8% от идеального (989.0 мкг/0.6044).
          11) Кальций = 107.8% от идеального (2694.0 мг/3.6896).
          12) Витамин К = 24.8% от идеального (124.1 мкг/0.7446).
          13) Железо = 73.7% от идеального (22.12 мг/2.212).          
          14) Магнезий = 87.2% от идеального (698.0 мг/2.6175).
          15) Фосфор = 246.1% от идеального (2461.0 мг/0.0156).
          16) Калий = 153.1% от идеального (6890.0 мг/?3.92142857143).
          17) Натрий = 136.3% от идеального (1363.0 мг/0.0264285714286).
          18) Цинк = 107.1% от идеального (18.2 мг/0.636).
          19) Медь = 49.6% от идеального (2.978 мг/1.489).
          20) Фторид = 0.0% от идеального (0 мкг/0).          
          21) Марганец = 178.7% от идеального (5.36 мг/0.464).
          22) Селен = 72.0% от идеального (72.0 мкг/2.16).
          23) Витамин A = 111.1% от идеального (8334.0 IU/0.66664).
          24) Витамин Е = 154.1% от идеального (46.22 мг/0.5378).
          25) Витамин D = 0.4% от идеального (8.0 IU/0).
          26) Триптофан = N/A DRV (0.904 г/0).          
          27) Треонин = N/A DRV (3.2 г/0).
          28) Изолейцин = N/A DRV (3.487 г/0).
          29) Лейцин = N/A DRV (6.107 г/0).
          30) Лизин = N/A DRV (4.907 г/0).
          31) Метионин = N/A DRV (0.914 г/0).
          32) Фенилаланин = N/A DRV (1.002 г/0).
          33) Валин = N/A DRV (3.732 г/0).
          34) Список блюд.          
          35) Beverages, MONSTER energy drink, low carb-Beverages.
          36) Broccoli, frozen, chopped, unprepared-Vegetables and Vegetable Products.
          37) Beans, white, mature seeds, raw-Legumes and Legume Products.
          38) Desserts, mousse, chocolate, prepared-from-recipe-Sweets.
          39) Strawberries, frozen, sweetened, sliced-Fruits and Fruit Juices          
          40) Peppers, sweet, red, raw-Vegetables and Vegetable Products.
          41) Lupins, mature seeds, raw-Legumes and Legume Products.
          42) CAMPBELL’S, V8 Vegetable Juice, Essential Antioxidants V8-Vegetables and Vegetable Products.
          43) Pepper, banana, raw-Vegetables and Vegetable Products.
          44) Peppers, hot chili, green, raw-Vegetables and Vegetable Products.
          45) Whey, acid, dried-Dairy and Egg Products.
          46) Oil, sunflower, high oleic (70% and over)-Fats and Oils.
          47) Mushrooms, white, cooked, boiled, drained, without salt-Vegetables and Vegetable Products.
      

6. Оценка результатов

Мы запускали реализацию прототипа десятки раз, используя как базовую конфигурацию, так и пользовательские веса и значения по умолчанию. Прототип всегда выдавал валидные планы питания. Однако случайный характер выбора пищи имеет последствия. Во-первых, планы питания редко бывают одинаковыми. Теоретически можно производить один и тот же план питания дважды, но выбор из 100 продуктов для каждого из 19 питательных веществ делает его крайне маловероятным. Случайный характер выбора продуктов питания в сочетании с большим количеством вариантов выбора продуктов делает достижение идеального результата практически невозможным.

Во-вторых, в некоторых планах питания есть интересные комбинации продуктов. Например, один план питания включал Red Bull и печенье Twinkie (прим. очень калорийное и не самое полезное), но всё же отвечал целям питания. Модель, такая как SSC3gd, может использоваться для уменьшения списка продуктов до того, как она будет передана нашему методу. При прочих равных условиях, мы склонны к большему разнообразию.

Наконец, из-за того, как прототип создает план приема пищи, достижение приемлемого плана приема пищи требует большего количества сравнений, поскольку разница между LB и UB сокращается. Алгоритм потребует еще большего количества сравнений, если большое количество питательных веществ имеют небольшие диапазоны между их LB и UB. Это связано с рандомизированным выбором продуктов питания. Прототипу необходимо будет выбрать продукты, основанные, в частности, на их влиянии на MSCORE. Мы предпочитаем разнообразие и решили держаться подальше от того, чтобы сделать выбор продуктов слишком умным, потому что это потенциально может привести к тому, что всегда будут выбраны одни и те же продукты, и будет сформирован тот же план еды.

7. Дальнейшее развитие

Прототип существует только как приложение командной строки. Мы хотели бы создать полностью функциональный веб-сайт, используя алгоритм базового скоринга, реализованный в методе. Веб-сайт будет иметь функцию кладовой, которая позволит пользователям отслеживать продукты, которые они в настоящее время имеют в своей кладовой / доме. Мы будем использовать эту информацию вместе с списком продуктов для готовых планов еды, чтобы предоставить пользователям список покупок. На веб-сайте также будут представлены пользователи с шаблонами целевых продуктов питания, примером которых является «Восстановление после гонки». Шаблон порекомендовал бы LB, IA и UB и ввел бы значения по умолчанию и веса питательных веществ. Веб-сайт предоставит пользователю рецепты, а не простой список продуктов. Рецепты будут представлены пользователям, а также выбор продуктов из базы данных USDA для использования.

Список литературы

  1. Aetna (2008) The Facts About Rising Health Case Costs. [Ссылка][Citation Time(s):2]
  2. Ogden, C.L., Carroll, M.D., Kit, B.K. and Flegal, K.M. (2014) Prevalence of Childhood and Adult Obesity in the United States. The Journal of American Medical Association, 311, 806-814. [Ссылка][Citation Time(s):1]
  3. World Health Organization (2015) Global Databose on Body Mass Index. [Ссылка][Citation Time(s):1]
  4. National Heart, Lung, and Blood Institute (2012) How Can Overweight and Obesity Be Prevented? [Ссылка][Citation Time(s):1]
  5. Finkelstein, E.A., Trogdon, J.G., Cohen, J.W. and Dietz, W. (2009) Annual Medical Spending Attributable to Obesity: Payer-and Service-Specific Estimates. Health Affairs, 28, 822-831. [Ссылка][Citation Time(s):1]
  6. Tippett, K. (2009) Transcript for Mark Hyman, James Gordon, and Penny George—The Evolution of Medicine. [Ссылка][Citation Time(s):1]
  7. Rayner, M., Scarborough, P., Stockley, L. and Boxer, A. (2005) Nutrient Profiles; Further Refinement and Testing of Model SSCg3d. Final Report 2005. [Ссылка][Citation Time(s):2]