Dynamic Preference-Based Diet Optimization
- Since the classic diet planning problem, several mathematical models and programming techniques have been shown to generate menus following several constraints.
- However, an approach focused on nutritional counseling proves to be more effective than common restrictive diets, by adapting to the habits and preferences of users.
- In this project we propose a new dynamic optimization optimization_model considering preferences predictions.
Work in Progress...
- Unit tests for nutrition database - ON GOING
- User preferences class and unit tests
- User preference database and unit tests
- User targets and unit tests
- User diet and unit tests
- User EA and unit tests
- Benchmarks
- Change the enum Model (.../test/benchmark/main.cpp) replacing by one of current available.
- nutritional facts based on TACO (http://www.nepa.unicamp.br/taco/contar/taco_4_edicao_ampliada_e_revisada.pdf?arquivo=taco_4_versao_ampliada_e_revisada.pdf)
- objective function: minimize caloric difference against target:
- nutritional deviation values:
- nutrition facts separated by categories with different portion size:
- penalties applied according to nutritional deviations intensity:
- result: a list of foods to be eat freely during the day.
- separate dayle recommendation menu into 6 different mealtimes:
- penalties formulation applied according to nutritional deviations proportionally to mealtime (the penalties are applied according to mealstime caloric target percentage of total):
- result: a list of food considering mealtimes proportional (caloric and nutrients).
- user interactions after each mealtime inputting.caloric deviation consume difference of user consume input and mealtime menu recommended calculation:
- compensatory system to equilibrate/recalculate further mealtimes considering current user consume:
- result: dynamic menu that changes/recalculate according to user input on each mealtime
- prediction instance (consume history database) based on mealtime category preferences instance generation rule:
PS: The category preference was used due a limitation provided due no real consume database availability actually. It is necessary to create a real food consume per mealtime database in ten future...
-
item-item score matrix created using collaborative filtering
magnitude calculation:
item importance:
cosine similarity calculation:
final vector score of items in a specific mealtimes for an user:
-
first-fit algorithm to include high scored items limited on 50% of mealtimes caloric target.
- populate TACO DB with prices based on ENAPE.
- (on going) change the objective function to maximizing and evaluation function to cost minimization + nutritional deviation:
- caloric value as a nutrient range like others using 1600-2400 for women and 2000-3000 for men.
- initial random population
- pattern select scale/strategy: windows/tournament
- child select scale/strategy: windows/tournament
- mutation type: flip resetting
- mutation_strength: 0.4
- crossover_probability: 0.6
- expand the capacity of the caloric compensation mechanism by adding physical exercises for cases in which there is an excess caloric intake where it is not possible to compensate.
- easy database change using cereal lib for txt/csv nutrition facts serialize or sql DB connection for MYSQL relational db query
- dynamic minimization cost considering
- different solvers
- Dissertation available on http://