In the modern world, we are faced with a lot of uncertainty when trying to choose appropriate meals and diets. This, combined with a lack of good recipe databases motivated our masters thesis work. First we formulated a procedure that equips recipes with nutrition data based solely on ingredient names and their quantities. Then, we also formulated some guidelines for a good algorithmic meal planner where the user can specify ingredients they want to consume via a preference list. Besides that, the user can also change the settings for the number of meals, cumulative nutrients and even swap out a meal if they don't like it. On the changed database we have implemented four algorithms that recommend a weekly meal plan. First is completely random. Second is probabilistic and is based upon weights that are determined by nutrients and ingredients that are used from the preference list. The third one is based on non-negative matrix factorisation. The fourth and highest scored is a meal planner based on genetic algorithm.
We evaluated the recommenders with four normalised scores. First is the nutrient score which determines the fraction of satisfied weekly nutrients. Second is a preference list score which determined the percentage of ingredients used from the preference list. Third is heterogeneity score which determines the fraction of different pairs of ingredients. The fourth score determines the fraction of different meals in the same or consecutive days. With a maximum of 4, the joint score of the random recommender is 2.9, probabilistic recommender 2.97, non-negative matrix factorisation 2.54 and the genetic recommender 3.82.
|