Menu generation method, device, and computer-implemented algorithm thereof
The menu generation method uses an evolutionary algorithm and AI to create personalized menus addressing nutritional needs, optimizing dietary intake for individuals with specific health conditions.
Patent Information
- Application Number
- JP2025517455
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-22
- Filing Date
- 2023-09-01
- Publication Date
- 2025-09-11
AI Technical Summary
Existing technologies fail to provide personalized and optimized nutritional intake for individuals with specific dietary needs, such as pregnant women, lactating women, and those with nutrition-related diseases, considering factors like allergens, preferences, and health conditions.
A menu generation method and apparatus utilizing an evolutionary algorithm and artificial intelligence to create personalized menus based on user-specific dietary information, including preferences, health conditions, and nutritional goals, calculating scores for each menu item to optimize nutritional intake.
The method effectively generates personalized menus that meet individual nutritional needs, ensuring balanced and healthy meal plans tailored to user preferences and health requirements.
Smart Images

Figure 2025530484000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a menu generation method, an apparatus, and a computer-implemented algorithm thereof. [Background technology]
[0002] Nutrition is an important driver of human health and well-being, and nutrition is typically obtained through the ingestion of food (including beverages). For certain groups of people, nutritional intake is very important, for example, pregnant or lactating women, people with nutrition-related diseases (e.g., diabetes), and certain segments such as the elderly / senior citizens with special nutritional needs. Therefore, it is very important to control / personalize nutritional intake according to the different circumstances of each subject.
[0003] The present invention provides a menu generation method, apparatus and computer-implemented algorithm for optimizing and personalizing nutritional intake while taking into account user preferences. Summary of the Invention [Problem to be solved by the invention]
[0004] The present invention relates to a menu generation method, apparatus and computer-implemented algorithm / method thereof.
[0005] The present invention aims to provide users with personalized menus. [Means for solving the problem]
[0006] The invention is subject to the claims.
[0007] The invention will be explained in more detail below with reference to the accompanying drawings. [Brief explanation of the drawings]
[0008] [Figure 1] This shows how to generate a menu. [Figure 2] 10 shows an example of an evolutionary algorithm for generating the second subset. [Figure 3] An example of determining weight values will be described below. [Figure 4] 1 illustrates an apparatus configured to perform some or all of the steps of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0009] Embodiments of the present disclosure will now be described below with reference to the accompanying drawings. However, the embodiments of the present disclosure are not limited to the particular embodiments, but are to be construed as including all modifications, variations, equivalent devices and methods, and / or alternative embodiments of the present disclosure.
[0010] As used herein, the terms "have," "may have," "include," and "may include" indicate the presence of a corresponding feature (e.g., a value, function, operation, or element such as a component) and do not exclude the presence of additional features.
[0011] As used herein, the terms "A or B," "at least one of A and / or B," or "one or more of A and / or B" include all possible combinations of the items listed therewith. For example, "A or B," "at least one of A and B," or "at least one of A or B" means (1) including at least one A, (2) including at least one B, or (3) including both at least one A and at least one B.
[0012] As used herein, terms such as "first" and "second" may modify various elements, without limiting the corresponding elements, regardless of the order and / or importance of the corresponding elements. These terms may be used to distinguish one element from another. For example, a first printed form and a second printed form may refer to different printed forms, regardless of the order or importance. For example, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element, without departing from the scope of the present invention.
[0013] When an element (e.g., a first element) is "operably or communicatively coupled with" or "connected to" another element (e.g., a second element), it will be understood that the element may be directly coupled with the other element, and that there may be intervening elements (e.g., third elements) between the element and the other element. Conversely, when an element (e.g., a first element) is "directly coupled with" or "directly connected to" another element (e.g., a second element), it will be understood that there are no intervening elements (e.g., third elements) between the element and the other element.
[0014] As used herein, the phrase "configured to" may be used interchangeably with "suitable for," "capable of," "designed to," "adapted to," "made to," or "capable of," depending on the context. The term "configured to" does not necessarily mean "particularly designed to" at the hardware level. Instead, the phrase "apparatus configured to" may, in some contexts, mean that the apparatus is "capable of" in conjunction with other devices or components.
[0015] The terms used in describing various embodiments of the present disclosure are intended to describe particular embodiments and are not intended to limit the present disclosure. In this specification, the singular form is intended to include the plural form unless the context clearly dictates otherwise. All terms used in this specification, including technical or scientific terms, have the same meaning as commonly understood by those skilled in the relevant art, unless otherwise defined. Terms defined in commonly used dictionaries should be interpreted as having the same or similar meaning as the contextual meaning in the relevant art, and should not be interpreted as having an ideal or exaggerated meaning unless expressly defined herein. Depending on the context, even terms defined in this disclosure should not be interpreted as excluding embodiments of the present disclosure.
[0016] The present disclosure provides a menu generation method, apparatus, and computer-implemented algorithm thereof for optimizing and personalizing nutritional intake while taking into account user preferences. The target user / person may be pregnant women, pregnant women with diabetes, men, infants, children, the elderly, or other people. For example, the menu generation method may be specifically for women at different stages, such as women preparing for pregnancy, pregnant women, women recovering from childbirth, or breastfeeding women, since these women may have different lifestyles, personal food preferences, and health conditions that require personalized nutrition.
[0017] Figure 1 shows the menu generation method.
[0018] In step 101, dietary information of a user is obtained. The dietary information may include any information related to the user's diet, such as at least one of allergens, restricted ingredients, gene / DNA information, number of meals per day, height, weight, sex, activity level, location information, dietary preferences, user pattern data, dietary history, family history information, and the user's stage (e.g., the stage is pre-pregnancy, pregnancy, postpartum, or lactation). The dietary information may further include other information, such as health conditions, diseases, body mass index (BMI), age, etc.
[0019] The user pattern data may include at least one of user behavior information data regarding menus, e.g., recently selected (or either saved, searched, commented on, viewed for longer than a predetermined period of time, etc.) menus or ingredients. The user pattern data may further include other user data when a user uses the method to obtain menu suggestions, e.g., when using an application / software implementing the method.
[0020] The location information may be the user's current location or a previous location, such as place of birth, the place where the user spent the longest time in the past, etc.
[0021] Family history information may be information related to the user's family, such as family medical records, family weights, family food preferences, and the like.
[0022] The user's weight data may include the user's current weight, the user's weight change data in the past period, the user's weight change data related to the meal plan, etc. The user's weight change data may be very important because it gives hints about the dynamic changes in the body / weight so that the meal plan may be suggested / scored accordingly. For example, a user who loses weight too quickly may not be healthy, and therefore the suggested meal may temporarily contain more energy / calories, or for a user who gains weight very quickly, the energy of the suggested meal should be slowly reduced rather than immediately lowering the calories.
[0023] Dietary information may be obtained via at least one of the following methods: questionnaires (e.g., on a smartphone / tablet), from existing databases (e.g., formal medical records, recorded dietary history, etc.), via a specific device (e.g., via a smart scale to capture daily weight, via a camera-equipped device to estimate the user's BMI), or any other method.
[0024] In step 102, a first menu subset is formed / generated based on the acquired dietary information of the user. The first menu subset includes at least one menu.
[0025] A menu may be a plan including at least one element. For example, an element may be a group of various foods (the term "food" as used herein includes both solid or mashed foods, colloids, liquids / solutions, and beverages) based on one or more food recipes (e.g., for one or more dishes). As another example, the one or more elements in each menu may include at least one of a breakfast menu, one or more main dishes for lunch, one or more main dishes for dinner, an additional meal menu, one or more dishes for lunch, and one or more dishes for dinner.
[0026] The first menu subset may be formed by menus selected from an original menu set (i.e., original menu or predetermined menu set, used interchangeably herein). The original menu set may be an original collection of all menus stored in a database (either internal or external to the device including the application / software implementing the method). For example, the first menu subset may be selected from the original set directly based on dietary information, e.g., using an artificial intelligence model. Alternatively, the first menu subset may be selected based on specific conditions, e.g., if the dietary information indicates that the user is elderly, a menu with liquid / soft foods is likely to be selected; if the dietary information indicates that the user likes spicy foods, a menu with a strong, spicy taste is likely to be selected; if the dietary information indicates that the user has not consumed any dairy products in the past week, a menu containing cheese and milk is likely to be selected; and if the dietary information indicates that the user is allergic to seafood, a menu containing seafood is not selected. Note that the above conditions are merely examples and do not limit the scope of the present invention.
[0027] The first menu subset may be formed from a filtered original menu set (i.e., from the original menu set), i.e., the original menu is first filtered (based on the dietary information) by removing all menu items containing allergens and / or restricted ingredients and / or removing menu items containing ingredients other than existing meal preparation ingredients (i.e., the suggested menu items may be limited to menu items that can be prepared based on ingredients already present in the user's home), and then menu items are selected from the filtered original set (i.e., by any of the methods disclosed above) in forming the first menu subset. For example, the formation of the first menu subset may be by removing zero, one, or more menu items containing allergens and / or restricted ingredients and / or removing menu items containing ingredients other than existing meal preparation ingredients from the predetermined / original menu set according to the dietary information, i.e., the first subset may be the filtered original menu set.
[0028] The first menu subset may be formed based on at least one estimated intake goal, where the intake goal may be a standard or recommended intake amount (e.g., according to mass, volume, or any other measurement method) during a certain period (e.g., day, week, month, entire pregnancy, etc.). For example, before step 102, at least one intake goal may be determined / estimated for each ingredient, for example, for each food category, for each macronutrient, and for each micronutrient according to the dietary information, where each food category, each macronutrient, and each micronutrient may be predetermined. The food categories may include at least one of grains / cereals, dairy products, fruits, vegetables, soy products / nuts, sweets / sugars, water, meat, poultry, fish, and other substitutes. The macronutrients may include at least one of energy, fat, protein, carbohydrates, and other macronutrients. The micronutrients may include at least one of calcium, Fe (iron / ferrum), zinc, folic acid, vitamin D, vitamin B12, vitamin B6, vitamin C, vitamin B2, vitamin E, DHA (docosahexaenoic acid), and other micronutrients. For example, determining the intake target may be further based on standard nutrition recommendations according to the user's dietary information. Determining the intake target may be further based on other information, such as the user's biological information, microbiome information, and / or blood glucose information.
[0029] The intake targets for each food category, each macronutrient, or each micronutrient may be determined according to the acquired dietary information. For example, if the dietary information indicates that the user is pregnant and may require a total energy intake within a certain range per day, a meal within this range is likely to be selected when forming the first subset; if the dietary information indicates that the user is breastfeeding and may require a daily folic acid intake within a certain range, a meal within this folic acid intake range is likely to be selected when forming the first subset. The database may be formed as at least one lookup table that provides cross-references between different dietary information and standard intake targets for different ingredients.
[0030] For example, each intake goal may be determined by comparing dietary information to a normative reference database (e.g., a look-up table). For example, the normative reference database links average / standard intakes for each ingredient (e.g., for each food category, for each macronutrient, and / or for each micronutrient) to specific dietary information. For example, the database may indicate what the average / standard daily energy intake is for a pregnant woman of a certain weight, age, and health condition, or what the average / standard daily vitamin D intake is for an elderly person of a certain age.
[0031] The determination of the intake goals may be omitted in the method, or may additionally be performed before calculating the score for each menu item in step 104, or during step 103 when using an evolutionary algorithm as described later in this specification.
[0032] In step 103, a second menu subset is generated from the first menu subset using, for example, an evolutionary algorithm or a trained artificial intelligence model. An example of using an evolutionary algorithm is shown below in FIG. 2.
[0033] In step 104, a score for each menu in the second subset is calculated. The score for a menu may be calculated based on at least two score portions, which may be an ingredient score, a weekly score, a daily score, a genetic score, or a preference score. A higher score may be defined as more desirable, or a lower score may be defined as more desirable. For purposes of explanation, the remainder of this specification will assume that a higher score is more desirable, although the option of a lower score being more desirable is implicitly disclosed.
[0034] The ingredient score may be calculated based on at least one of a total food category score, a total macronutrient score, and a total micronutrient score. The total food category score may be the sum of the individual food category scores, and the individual food category score may be calculated according to the amount (mass, volume, and / or other measurement) of the food category included in the menu and the intake target of the food category, for example, the food category may be at least one of grains, cereals, diary, fruits, vegetables, soy products, nuts, confectionery, water, meat, fish, and substitutes. The total macronutrient score may be the sum of the individual macronutrient scores, and the individual macronutrient score may be obtained according to the amount (mass, volume, and / or other measurement) of the macronutrient included in the menu and the intake target of the macronutrient. The total micronutrient score may be the sum of the individual micronutrient scores, and the individual micronutrient score may be obtained according to the amount (mass, volume, and / or other measurement) of the micronutrient included in the menu and the intake target of the micronutrient.
[0035] The intake targets for each food category, each macronutrient, and each micronutrient may be determined according to the dietary information, which has been presented above and will not be repeated here. The individual food category score may be based on the determined intake target for this individual food category, the individual macronutrient score may be based on the determined intake target for this individual macronutrient, and the individual micronutrient score may be based on the determined intake target for this individual micronutrient. If the amount (e.g., according to mass, volume, or any other measurement method) of an individual ingredient (i.e., for any of the food category, macronutrient, and micronutrient) included in the menu is closer to the intake target for that ingredient, a higher (e.g., more desirable) individual ingredient score (i.e., for any of the food category, macronutrient, and micronutrient) may be given to the ingredient. If the amount of an ingredient included in the menu is further from the intake target for that ingredient, the individual ingredient score will be lower (e.g., less desirable). Some examples of how to determine individual ingredient scores are provided below.
[0036] An example of an individual food category score table for grain and cereal intake (grams per day) is shown in Table 1.
[0037] [Table 1]
[0038] As shown in Table 1, for a woman in the first trimester of pregnancy, if her daily grain and cereal intake is less than 200 grams, the grain and cereal score (as an example of one of the individual food category scores) is 1; if it is between 200 and 249 grams, the grain and cereal score is 2; if it is between 250 and 300 grams, the grain and cereal score is 3 (most desirable / healthy according to the determined grain and cereal intake goals); if it is between 301 and 350 grams, the grain and cereal score drops to 2 (already too much); and if it is more than 350 grams, the grain and cereal score is 1. Such scores may be calculated for each food category. In this exemplary table, the column with the highest grain and cereal score (3) shows the grain and cereal intake goals (i.e., standard or recommended daily grain and cereal intakes) for different dietary information (first trimester, second trimester, third trimester, lactation, and other adults).
[0039] An example of an individual macronutrient score table for fat intake (grams per day) is shown in Table 2.
[0040] [Table 2]
[0041] As shown in Table 2, for a woman in the early stages of pregnancy, if daily fat intake is less than 40 grams, the fat score (as an example of one of the individual macronutrient scores) is 1; if 40-44 grams, the fat score is 2; if 45-55 grams, the fat score is 3 (most desirable / healthy); if 56-60 grams, the fat score drops to 2 (already too much); and if over 60 grams, the fat score is 1. Such scores may be calculated for each macronutrient. In this exemplary table, the column with the highest fat score (3) provides fat intake goals (i.e., standard or recommended daily fat intake) for different dietary information (pre-pregnancy, early pregnancy, mid-pregnancy, late pregnancy, lactating, and other adults).
[0042] Individual micronutrient scores can be determined similarly to Tables 1 and 2 for food categories and macronutrients and will not be repeated here.
[0043] The total food category score may be defined as the average score of at least one of the individual food category scores. For example, if eight different food categories are considered, then food category score = (grains and cereals score + dairy score + fruits score + vegetables score + soy products and nuts score + sweets score + water score + meat, poultry, fish, and substitutes score) / 8. Alternatively, the total food category score may be defined in other ways, such as the lowest score among the individual food category scores, or the highest score among the individual food category scores, or any other way.
[0044] Similarly, the total macronutrient score may be defined as the average score of at least one of the individual macronutrient scores, and the total micronutrient score may be defined as the average score of at least one of the individual micronutrient scores. Alternatively, the total macronutrient (or micronutrient) score may be defined in other ways, such as the lowest score among the individual scores, or the highest score among the individual scores, or in any other way.
[0045] The ingredient score (i.e., total ingredient score) may be calculated according to at least one of the total food category score, the total macronutrient score, and the total micronutrient score. The ingredient score may be further adjusted to fit a certain scale, for example, with 10 as the highest. For example, the ingredient score may be the sum of at least one of the total food category score, the total macronutrient score, and the total micronutrient score. Or, after summation, the value may be further adjusted. For example, if the maximum possible scores of the total food category score, the total macronutrient score, and the total micronutrient score are X, Y, and Z, and their total score (i.e., actual score) is x, y, and z, the ingredient score may be calculated as W * (x / X + y / Y + z / Z) / 3 or (x / X + y / Y + z / Z) / 3, where W is the weight given to the ingredient score when calculating the score of the menu. Other alternatives are possible.
[0046] The weekly score may be determined according to at least one predetermined weekly rule. The at least one predetermined weekly rule may be determined according to dietary information, i.e., different dietary information may correspond to different weekly rules. If a rule (from the at least one predetermined weekly rule) is satisfied, an individual rule score is assigned (e.g., an integer greater than 0); otherwise, another individual rule score is assigned (e.g., 0). The individual rule score may further be based on a predetermined weight for the corresponding rule score. An example of weekly rules and weights for the early stage of pregnancy (as an example of dietary information) is shown in Table 3.
[0047] [Table 3]
[0048] In the above example of Table 3, there are four weekly rules, and each rule has a different rule weight. If only rule 1 is satisfied, the weekly score (i.e., the total) may be calculated as 4*2 / (2+3+4+5)=0.57. For example, if Rw(i) indicates whether rule i is satisfied by the menu, when Rw(i)=1, rule i is satisfied, and when Rw(i)=0, rule i is not satisfied. The weight of each rule may be denoted as Ww(i). The total number of rules is Nw. As an example, the weekly score may be calculated as Nw*sum(Rw(i)*Ww(i)) / sum(Ww(i)).
[0049] The daily score may be based on at least one daily rule for daily menu planning, the genetic / DNA score may be based on genetic rules for dietary requirements according to the user's genetic / DNA, and the preference score may be based on preference rules for the user's dietary preferences. The daily score, genetic / DNA score, and preference score may be calculated in the same manner as the weekly score.
[0050] Examples of daily rules, gene rules, and preference rules are shown in Tables 4, 5, and 6, respectively.
[0051] [Table 4]
[0052] [Table 5]
[0053] [Table 6]
[0054] The daily score may be calculated in the same manner as the weekly score. The rules referred to here are daily rules. For example, if Rd(i) indicates whether rule i is satisfied, then when Rd(i)=1, rule i is satisfied, and when Rd(i)=0, rule i is not satisfied. The weight of each rule may be denoted as Wd(i). The total number of rules is Nd. As an example, the daily score may be calculated as Nd*sum(Rd(i)*Wd(i)) / sum(Wd(i)).
[0055] The gene / DNA score may be calculated in the same way as the weekly score. The rule here refers to a gene rule. For example, if Rg(i) indicates whether rule i is satisfied, when Rg(i)=1, rule i is satisfied, and when Rg(i)=0, rule i is not satisfied. The weight of each rule may be denoted as Wg(i). The total number of rules is Ng. As an example, the gene score may be calculated as Ng*sum(Rg(i)*Wg(i)) / sum(Wg(i)). As another example, rs1801133 from a user's gene / DNA information may have one of the types GG, AG, and AA, and the folic acid need / absorption capacity for different types is GG>AG>AA, which may be the basis for generating additional gene rules / scores.
[0056] The preference score may be calculated in the same manner as the weekly score. The rules here are preference rules. For example, if Rp(i) indicates whether rule i is satisfied, then when Rp(i)=1, rule i is satisfied, and when Rp(i)=0, rule i is not satisfied. The weight of each rule may be denoted as Wp(i). The total number of rules is Np. As an example, the preference score may be calculated as Np*sum(Rp(i)*Wp(i)) / sum(Wp(i)).
[0057] A menu score may be calculated based on at least two score portions, and / or a score portion that is an ingredient score, a weekly score, a daily score, a genetic score, or a preference score. Each score portion may be assigned a weight. For example, if score portion j has a score s(j) and a weight for score portion j is w(j), then the menu score S may be calculated as S=sum(s(j)*w(j)).
[0058] As disclosed above, weight values (w(j)) may be used when calculating the score of a menu. That is, a weight value may be assigned to each score portion when calculating the score of a menu. The weight value (w(j)) of score portion (j) may be determined by: determining the priority of the score portion; assigning initial weight values to the score portion, where a higher priority score portion is assigned a higher initial weight value; selecting a test subset of menus from a predetermined menu set, e.g., a portion of all menus in the predetermined / original menu set; calculating scores for the score portion based on the initial weight values assigned to the score portion; and if one or more of the calculated scores meet at least one specific condition, determining that the initial weight value is the final weight value; otherwise, iteratively assigning different initial weight values to the score portions, selecting a test subset, and calculating the score. An example of a method for determining weight values for different score portions is shown in FIG. 3.
[0059] In step 301, a priority of the score portions may be determined. For example, if the score portions include an ingredient score, a weekly score, a daily score, a genetic score, or a preference score, the priority of the score portions may be determined as ingredient score≧genetic score≧weekly score≧daily score≧preference score, or another priority may be determined.
[0060] In step 302, initial weight values for the score portions may be assigned, e.g., higher priority score portions are assigned higher initial weight values. For example, initial weight values may be assigned as Ingredient Score(10)≧Genetic Score(10)≧Weekly Score(10)≧Daily Score(10)≧Preference Score(8), where 10, 10, 10, 10, and 8 are weight values, respectively.
[0061] In step 303, a test subset of menus is formed from a predetermined menu set (i.e., an original set of menus or original menus, used interchangeably herein). For example, the total number of menus in the test subset may be about 100-200 menus or more.
[0062] In step 304, a score portion of each menu in the test subset may be calculated. Then, a score for each menu in the test subset may be calculated based on the initial weight value of the score portion. Some test / predetermined dietary information may be used during the calculation of the score portion of each test menu. The test / predetermined dietary information may be randomly generated or selected from an existing dietary information database according to some predetermined conditions. Alternatively, the test / predetermined dietary information may be the dietary information of the current user so that the weight values are personalized (i.e., individual ingredient scores and rule weights are based on the current user's actual dietary information).
[0063] The determined weight values may be further personalized so that the menus can be scored more accurately. For example, the test subset may be selected in step 303 based on the current user's dietary information, for example, in the same manner as when selecting the first menu subset in step 102. For example, the test subset may be the same as the first menu subset in step 102, or may be a part of the first menu subset in step 102. In this way, the weight values are further personalized according to the current user's dietary information.
[0064] In step 305, if one or more of the calculated scores satisfy at least one specific condition, the initial weight values are determined to be the final weight values for the score portions; otherwise, different initial weight values are iteratively assigned to the score portions, test subsets are selected, and scores are calculated. For example, the at least one specific condition may be that if the percentage of scores from all test menus that are higher than a certain score threshold (e.g., 5, 5, 5, 6, 6.5, or other scores) is higher than a certain percentage threshold, e.g., 50%, the initial weight values can be considered sufficiently good and determined to be the final weight values. Another example of a specific condition may be that the scores of all test menus calculated based on the initial weight values are within a predetermined error range of a predetermined reference score, e.g., they are approximately the same as those predicted by the corresponding scores given by experts based on the menus. "Approximately the same" can mean that the variability of the scores is within a certain range (e.g., 5% or 10%) and / or that the distribution of percentages of scores within different score ranges (e.g., scores <2, 2-4, 4-8, >8) matches expert predictions. The expert in this context can be a person or an artificial intelligence model trained to assign scores to menus based on dietary information.
[0065] In step 305, if a specific condition is not met, at least one of assigning different initial weight values to the score portion, selecting a test subset, and calculating a score is iteratively performed, i.e., iteratively calculating a score based on at least one of the newly assigned initial weight values to the score portion and the newly selected test subset. For example, the initial weight values may be adjusted but still satisfy the priority, and then the adjusted initial weight values may be used to calculate the score. The adjustment of the weight values may be iteratively performed until at least one specific condition is met, i.e., until the adjusted weight values become the final weight values. During each iteration of the adjustment of the initial weight values, the menu test subset may be iteratively reselected, or alternatively, the same menu test subset may be used until the final weight values are determined. The reselection of the menu test subset may be based on the same method as the selection of the test subset in step 303, and further, the reselected test subset may only partially overlap with the test subset in the previous iteration. The overlapping portion (i.e., overlapping menu items) may be constrained to a maximum range in the new test subset; for example, a certain percentage of menu items should never be included in the previous test subset. This percentage may be 20%, 30%, 40%, 50%, 60%, 70%, 80%, and other percentages. For example, if at least one specific condition is not met, the initial weight values may be adjusted, a new test subset may be reselected, and a score may then be calculated based on the adjusted initial weight values and the new test subset. If at least one specific condition is not met, the initial weight values may be adjusted, a new test subset may be reselected, and a score may then be recalculated. The iteration may also end when at least one specific condition is met. Furthermore, the iteration may also end when the overall number of iterations is greater than a predefined number (e.g., 20, 50, 100, or more).
[0066] Returning to FIG. 1, in step 104, scores for the menus in the second subset may be calculated according to the methods disclosed above.
[0067] In step 105, the menus in the second menu subset are ranked. Further, several top-ranked menus may be displayed / suggested to the user, and then a user input to select one of the top-ranked menus may be received. Alternatively, the menu with the highest score from the second subset may be suggested to the user and / or this menu may be output to the user. User input may include food preferences, recent health updates, types of ingredients available, etc.
[0068] After step 105, the user may be able to select and modify one or more of the suggested menus in step 105. The selected one or more menus may then be replaced with other menus. That is, an input may be received from the user to modify a first menu in the top-ranked menus and then propose a second menu based on the first menu. Additionally or alternatively, the user may be able to select and modify one or more elements in the suggested menu in step 105. The selected one or more elements may then be replaced by an element. That is, an input may be received from the user to change a staple element (e.g., bread) to another staple element (e.g., bread). A second menu may be formed by replacing the selected element with a different (but similar) element.
[0069] The second menu may be determined based on at least one of one or more characteristics of the first menu (e.g., similarities between the two menus), dietary information (e.g., dietary preferences, user pattern data, etc.), some general rules obtained from a group of users (e.g., milk may be substituted for fried eggs at breakfast, bread may be used instead of potatoes, etc.), and menus preferred by other similar users (e.g., if two users are determined to be similar, the replacement menu may be from the menu preferred by the other user). If the user only selects to replace one or more elements in the first menu, the formation of the second menu may be further based on at least the similarity between the at least one element to be replaced and at least one different element to replace it, and the dietary information. For example, similar staple food elements may be substituted for each other, or similar dairy products may be substituted for each other in forming the second menu.
[0070] For example, the user pattern data in the meal information may include at least one data of user behavior information related to menu items, which may be used to select a second menu item as a replacement for the first menu item. As another example, dietary preferences in the meal information may be used to select the second menu item.
[0071] The similarity between the menus may be determined based on at least one of the total weight of the meal, the constituent ingredients, the ratio of ingredients, foot category composition, macro ingredient composition, micro ingredient composition, total calories, and the like.
[0072] 1, forming the first menu subset in step 102 and / or generating the second menu subset in step 103 may be performed iteratively until some or all of the menus in the second menu subset have a score (i.e., calculated by step 104) that is equal to or greater than a second predetermined threshold. For example, the first menu subset and / or the second menu subset may be regenerated until at least some of the menus in the second subset are sufficiently good for the user, thereby ensuring suggested menus that have at least a threshold score.
[0073] If the formation of the first menu subset in step 102 and the generation of the second menu subset in step 103 are performed more than a predetermined number of times, the selection of a menu from the second menu subset in step 105 may be performed even if none of the menus in the second menu subset has a score equal to or greater than a second predetermined threshold, thereby avoiding endless iterations.
[0074] FIG. 2 shows an example of an evolutionary algorithm in generating the second subset in step 103.
[0075] In step 201, the evolved menu set may be formed by selecting N first initial menus. The N first initial menus may be randomly selected from the first menu subset, or may be selected based on specific conditions, such as the most frequently suggested menu, the least frequently suggested menu, or the most popular menu based on a user survey.
[0076] In step 202, a score for each first initial menu item may be calculated, and the score may be denoted as Xi for the i-th first initial menu item. The score calculation method may be the same as that disclosed for step 104 of Figure 1. Furthermore, if one, some, or all of the scores of Xi satisfy a condition equal to or greater than a first predetermined threshold, the first initial menu item may be directly output as the second menu subset, and the subsequent steps of Figure 2 may not be performed.
[0077] In step 203, one or more elements between two or more first initial menus may be exchanged to form a second initial menu. The one or more elements in each menu may include at least one of a breakfast menu, one or more main dishes for lunch, one or more main dishes for dinner, an additional meal menu, one or more dishes for lunch, and one or more dishes for dinner. The exchange of elements may be performed randomly. For example, several menus may be randomly determined, and then a random number of elements in these menus are exchanged. For example, a lunch main dish in a first menu may be exchanged with a lunch main dish in a second menu, and a breakfast menu in a third menu may be exchanged with a breakfast menu in the first menu. In this step, a new (i.e., second initial) menu is generated based on the previous (i.e., first initial) menu.
[0078] In step 204, a score for each second initial menu item is calculated, and the new score may be denoted as Yi for the i-th second initial menu item. The score calculation method may be the same as that disclosed for step 104 and step 202 of FIG. 1. Furthermore, if one, some, or all of the scores of Yi satisfy the condition of being equal to or greater than the first predetermined threshold, the second initial menu item may be directly output as the second menu subset, and the subsequent steps of FIG. 2 may not be performed. Otherwise, if one, some, or all of the scores of Yi are below the first predetermined threshold, the subsequent steps may be performed.
[0079] In step 205, if Yi≧Xi, the evolved menu set is updated by replacing the i-th first initial menu with the i-th second initial menu in the evolved menu set. In this way, menus with higher scores can be included in the evolved menu set.
[0080] In step 206, steps 202-205 are repeated. The repeats may terminate if more than a predetermined number of repeats have been performed and / or until some or all of the menus in the evolved menu set have scores equal to or greater than a first predetermined threshold. For example, the repeats may terminate if one score among the menus is equal to or greater than the first predetermined threshold, or may terminate only if all scores of the menus are equal to or greater than the first predetermined threshold.
[0081] In step 207, the evolved menu set is output as a second menu subset.
[0082] In the method of FIG. 2, menus with high scores (e.g., according to the user's specific dietary information) are included in the second subset, and at the same time, the menus in the second subset are randomly generated (e.g., by step 203) so that the same menu is always suggested to the same user.
[0083] FIG. 4 shows a device 400 for implementing the present invention, such as a mobile phone, tablet, laptop, desktop, smartwatch, television, etc.
[0084] The device 400 may include a processor 401 , a display 402 , a communication unit 403 , a memory 405 , a camera 406 , and other input / output units 407 .
[0085] The processor 401 is configured to execute programs / instructions stored in the memory 405 by controlling other components such as the display 402, the communication unit 403, the memory 405, the camera 406 and other input / output units 407, for example.
[0086] The display 402 can be controlled by the processor 401 to perform all display functions (and input functions if it is a touch screen) in the present invention, such as step 101.
[0087] The communication unit 403 may be controlled by the processor 401 to perform all communication functions in the present invention. For example, when an external device 410 (e.g., a server) is used to perform some functions in the steps of Figures 1 and / or 2 (e.g., step 101 may be performed on the user device 400, and the final menu suggestions may also be displayed on the user device 400, while other steps in Figures 1 and 2 may be performed on the external device 410, e.g., a server, or all steps may be performed on the user device 400, or some steps may be performed on the user device 400 and the remaining steps may be performed on at least one or more external devices 410), messages may be communicated via the communication unit 403. Optionally, databases used in the present invention, such as ingredient score lookup tables, original menu sets, weekly rules, daily rules, gene rules, preference rules, and user dietary information, may be stored in the external device 410 or the user device 400.
[0088] The memory 405 may be configured to store instructions for carrying out the method of the present invention. For example, a lookup table of ingredient scores, an original menu set, weekly rules, daily rules, genetic rules, preference rules, a user's dietary information, or other necessary information may also be stored in the memory 405. The device may provide at least one entry for a user to check / overview these data.
[0089] Camera 406 is configured to capture images, which is optional in the present invention.
[0090] Other input / output units 407 may be configured to perform other input / output functions of the present invention, for example to receive user input regarding dietary information and output suggested meals to the user.
[0091] In the present invention, at least a portion of the device (e.g., FIG. 4) or method (e.g., FIG. 1, FIG. 2, and / or FIG. 3 as a computer-implemented algorithm) may be implemented as instructions stored on a non-transitory computer-readable storage medium, for example, as program modules, software, a mobile app, and / or in other forms. The instructions, when executed by a processor (e.g., processor 401), may enable the processor to perform corresponding functions in accordance with the present invention. The non-transitory computer-readable storage medium may be memory 405.
[0092] The present invention includes a method for suggesting menus, executed by an electronic device, including obtaining dietary information of a user, forming a first menu subset from a predetermined menu set according to the dietary information, generating a second menu subset from the first menu subset using an evolutionary algorithm, calculating a score for each menu in the second menu subset, and ranking the menus in the second menu subset, wherein the score for each menu is calculated based on the dietary information and one or more elements included in each menu.
[0093] The method may further include displaying a number of top-ranked menus and / or receiving input from the user to select a menu from the displayed menus, or suggesting a menu with the highest score from a second menu subset.
[0094] The method may further include receiving input from a user to modify a first menu item within the top-ranked menu items and suggesting a second menu item based on the first menu item, or receiving input from a user to modify at least one element within the first menu item and replacing at least one element within the first menu item with at least one different element to form the second menu item.
[0095] In the above method, suggesting the second menu may be further based on at least the similarity between the first menu and the second menu and dietary information, and / or forming the second menu may be further based on at least the similarity between the at least one element to be replaced and the at least one different element and dietary information.
[0096] The method may further include determining at least one intake target for each food category, each macronutrient, and / or each micronutrient according to the dietary information, wherein each food category, each macronutrient, and each micronutrient is predetermined.
[0097] In the above method, the one or more elements in each menu may include at least one of a breakfast menu, one or more main dishes for lunch, one or more main dishes for dinner, an additional meal menu, one or more dishes for lunch, and one or more dishes for dinner.
[0098] In the above method, the dietary information may include at least one of allergens, restricted ingredients, genetic / DNA information, number of meals per day, height, weight, sex, activity level, location information, dietary preferences, dietary history data, user pattern data, family history information, and the user's stage (e.g., the stage is pre-pregnancy, pregnancy, postpartum, or lactation).
[0099] In the above method, the genetic / DNA information of rs1801133 may include types GG, AG, and AA, and the folate requirement for different types is GG>AG>AA.
[0100] In the above method, forming the first menu subset may include removing zero, one, or more menus from the predetermined menu set that include allergens and / or restricted ingredients, and / or removing menus from the predetermined menu set that may have ingredients other than existing meal preparation ingredients.
[0101] In the above method, the evolutionary algorithm Selecting aN first initial menus to form an evolution menu set; b. calculating a score for each first initial menu item, where the score is Xi for the i-th first initial menu item; c. exchanging one or more elements between two or more first initial menus to form a second initial menu; d. Calculating a score for each second initial menu item, where the score is Yi for the i-th second initial menu item; e. If Yi≧Xi, update the evolution menu set by replacing the i-th first initial menu with the i-th second initial menu in the evolution menu set; f. Performing steps b to e for a predetermined number of iterations and / or until some or all of the menus in the evolved menu set have a score equal to or greater than the first predetermined threshold; g. Outputting the evolved menu set as a second menu subset; may include:
[0102] In the above method, if the scores Xi of one, some, or all of the first initial menus are greater than or equal to a first predetermined threshold, the N first initial menus may be output as a second menu subset, and steps c to g are not performed.
[0103] In the above method, if the scores Yi of one, some, or all of the second initial menus are greater than or equal to a first predetermined threshold, the N second initial menus may be output as a second menu subset, and steps f and g are not performed.
[0104] In the above method, steps e to g may be performed only if the scores Yi of one, some, or all of the second initial menu items are below a first predetermined threshold.
[0105] In the above method, forming the first menu subset and generating the second menu subset may be performed iteratively until some or all of the menus in the second menu subset have a score equal to or greater than a second predetermined threshold.
[0106] In the above method, forming the first menu subset and generating the second menu subset may be performed more than a predetermined number of iterations, and selecting a menu from the second menu subset may be performed even if none of the menus in the second menu subset has a score above a second predetermined threshold.
[0107] In the above method, the score of the menu may be calculated based on at least two score portions, and / or a score portion that is an ingredient score, a weekly score, a daily score, a genetic score, or a preference score.
[0108] In the above method, the ingredient score may be calculated based on at least one of the total food category score, the total macronutrient score, and the total micronutrient score, and / or the total food category score may be the sum of the individual food category scores, and the individual food category score may be calculated according to the mass of the food category included in the menu and the intake target of the food category, for example, the food category is at least one of grains, cereals, diary, fruits, vegetables, soy products, nuts, confectionery, water, meat, fish, and substitutes, and the total macronutrient score may be the sum of the individual macronutrient scores, and the individual macronutrient score may be obtained according to the mass of the macronutrient included in the menu and the intake target of the macronutrient, and / or the total micronutrient score may be the sum of the individual micronutrient scores, and the individual micronutrient score may be obtained according to the mass of the micronutrient included in the menu and the intake target of the micronutrient.
[0109] In the above method, the weekly score may be based on a weekly rule for the weekly menu.
[0110] In the above method, the daily score may be based on a daily rule regarding the daily menu.
[0111] In the above method, the genetic score may be based on genetic rules regarding dietary requirements according to the user's genes.
[0112] In the above method, the preference score may be based on preference rules relating to the user's dietary preferences.
[0113] In the above method, when calculating the score of the menu, each score portion may be assigned a weight value.
[0114] In the above method, the weight value of the score part is determining the priority of score portions; assigning initial weight values to the score portions, where higher initial weight values are assigned to score portions having higher priority; selecting a test subset of menus from the predetermined menu set, e.g., a subset of all menus in the predetermined menu set; calculating scores for the score portions based on initial weight values assigned to the score portions; if one or more of the calculated scores satisfy at least one particular condition, determining that the initial weight values are final weight values, otherwise iteratively calculating the scores based on at least one of assigning different initial weight values to the score portions and selecting test subsets; It may be determined by:
[0115] In the above method, the at least one specific condition may include at least one of a percentage of the calculated scores being higher than a certain score threshold being higher than a certain percentage threshold, and a calculated score calculated based on the initial weight values being within a predetermined error range of a predetermined reference score.
[0116] In the above method, determining the intake target may further be based on standard nutritional recommendations according to the user's dietary information.
[0117] In the above method, determining the intake target may be further based on biometric information, microbiome information, and / or blood glucose information of the user.
[0118] The invention may include an apparatus including at least one processor, wherein the at least one processor is configured to perform the above method.
[0119] The present invention may include a storage medium storing computer instructions, the instructions configured to control at least one processor to perform the above method.
Claims
1. 1. A method for suggesting menu items, performed by an electronic device, comprising: Obtaining dietary information of a user; forming a first menu subset from a predetermined menu set according to the dietary information; generating a second menu subset from the first menu subset using an evolutionary algorithm; calculating a score for each menu item in the second menu item subset; ranking the menus in the second menu subset; Including, The score for each menu is calculated based on the dietary information and one or more elements included in each menu. method.
2. The method of claim 1, further comprising: displaying several top-ranked menus and / or receiving input from the user to select a menu from the displayed menus; or suggesting the menu with the highest score from the second menu subset.
3. receiving input from a user to modify a first menu item within the top-ranked menu items and suggesting a second menu item based on the first menu item; or 3. The method of claim 1 or 2, further comprising receiving input from the user to modify at least one element in the first menu, and replacing the at least one element in the first menu with at least one different element to form a second menu.
4. the suggesting the second menu is further based on at least a similarity between the first menu and the second menu and the dietary information; or The method of claim 3 , wherein said forming said second menu is further based on at least a similarity between said at least one element being replaced and said at least one different element, and said dietary information.
5. 5. The method of claim 1, further comprising determining at least one intake target for each food category, each macronutrient, and / or each micronutrient according to the dietary information, wherein each food category, each macronutrient, and each micronutrient is predetermined.
6. 6. The method of any one of claims 1 to 5, wherein the one or more elements in each menu include at least one of a breakfast menu, one or more main dishes for lunch, one or more main dishes for dinner, an additional meal menu, one or more dishes for lunch, and one or more dishes for dinner.
7. 7. The method of claim 1, wherein the dietary information includes at least one of allergens, restricted ingredients, gene / DNA information, number of meals per day, height, weight, sex, activity level, location information, dietary preferences, dietary history data, user pattern data, family history information, and a stage of the user, for example, the stage being pre-pregnancy, pregnancy, postpartum, or lactation.
8. 8. The method of claim 7, wherein the genetic / DNA information of rs1801133 includes types GG, AG, and AA, and the folate requirement for different types is GG>AG>AA.
9. 9. The method of claim 7 or 8, wherein forming the first menu subset comprises removing zero, one, or more menus from the predetermined menu set that include the allergen and / or the restricted ingredient, and / or removing menus from the predetermined menu set that have ingredients other than existing meal preparation ingredients.
10. The evolutionary algorithm: a. forming an evolution menu set by selecting N first initial menus; b. Calculating a score for each first initial menu item, the score being Xi for the i-th first initial menu item; c. exchanging one or more elements between two or more first initial menus to form a second initial menu; d. Calculating a score for each second initial menu item, where the score is Yi for the i-th second initial menu item; e. If Yi≧Xi, update the evolution menu set by replacing the i-th first initial menu with the i-th second initial menu in the evolution menu set; f. performing steps b through e for a predetermined number of iterations and / or until some or all of the menus in the evolved menu set have scores equal to or greater than a first predetermined threshold; g. outputting the evolved menu set as the second menu subset; The method according to any one of claims 1 to 9, comprising:
11. 11. The method of claim 10, wherein if the scores Xi of one, some, or all of the first initial menus are equal to or greater than the first predetermined threshold, the N first initial menus are output as the second menu subset, and steps c to g are not performed.
12. 12. The method of claim 10 or 11, wherein if the scores Yi of one, some, or all of the second initial menus are greater than or equal to the first predetermined threshold, the N second initial menus are output as the second menu subset, and steps f and g are not performed.
13. 13. The method of any one of claims 10 to 12, wherein steps e to g are performed only if the scores Yi of one, some or all of the second initial menus are below the first predetermined threshold.
14. 14. The method of claim 1, wherein forming the first menu subset and generating the second menu subset are performed iteratively until some or all of the menus in the second menu subset have a score equal to or greater than a second predetermined threshold.
15. 15. The method of claim 14, wherein if forming the first menu subset and generating the second menu subset are performed more than a predetermined number of iterations, selecting the menu from the second menu subset is performed even if none of the menus in the second menu subset has a score above the second predetermined threshold.
16. 16. The method of any one of claims 1 to 15, wherein the score of the menu is calculated based on at least two score portions and / or a score portion that is an ingredient score, a weekly score, a daily score, a genetic score, or a preference score.
17. the ingredient score is calculated based on at least one of a total food category score, a total macronutrient score, and a total micronutrient score; and / or The total food category score is the sum of the individual food category scores, and the individual food category scores are calculated according to the mass of the food category included in the menu and the intake target of the food category, for example, the food category is at least one of grains, cereals, diary, fruits, vegetables, soy products, nuts, confectionery, water, meat, fish, and substitutes; the total macronutrient score is the sum of the individual macronutrient scores, each of which is obtained according to the mass of the macronutrients contained in the menu and the intake target of said macronutrients; and / or 17. The method according to any one of claims 2 to 16, wherein the total micronutrient score is the sum of the individual micronutrient scores, and the individual micronutrient scores are obtained according to the mass of the micronutrient contained in the menu and the intake target of the micronutrient.
18. 18. The method of claim 17, wherein the weekly score is based on weekly rules for a weekly menu.
19. 19. The method of claim 17 or 18, wherein the daily score is based on daily rules for daily menu planning.
20. The method of any one of claims 17 to 19, wherein the genetic score is based on genetic rules regarding dietary requirements according to the user's genes.
21. The method of any one of claims 17 to 20, wherein the preference score is based on preference rules relating to dietary preferences of the user.
22. A method according to any one of claims 17 to 21, wherein when calculating the score for the menu, each score portion is assigned a weight value.
23. The weight value of the score portion is determining a priority of the score portions; assigning initial weight values to the score portions, wherein a higher initial weight value is assigned to a score portion having a higher priority; selecting a test subset of menus from the predetermined menu set, e.g., a subset of all menus in the predetermined menu set; calculating a score for the score portion based on an initial weight value assigned to the score portion; if one or more of the calculated scores satisfy at least one specific condition, determining that the initial weight values are final weight values, otherwise iteratively calculating the scores based on at least one of assigning different initial weight values to the score portions and selecting the test subsets; 23. The method of claim 22, wherein the value is determined by:
24. The at least one specific condition is the percentage of calculated scores that are higher than a certain score threshold is higher than a certain percentage threshold; and a calculated score calculated based on said initial weight values is within a predetermined error range of a predetermined reference score; 24. The method of claim 23, comprising at least one of:
25. The method of any one of claims 5 to 24, wherein said determining said intake goal is further based on standard nutrition recommendations according to said dietary information of said user.
26. The method of any one of claims 5 to 25, wherein the determining of the intake goal is further based on biometric information, microbiome information, and / or blood glucose information of the user.
27. An apparatus comprising at least one processor, said at least one processor configured to perform any one of claims 1 to 26.
28. A storage medium storing computer instructions, said instructions configured to control at least one processor to perform any one of claims 1 to 26.