Information processing device, information processing method, and program

The information processing apparatus and method automate the adjustment of meal plans by using a generation AI to generate alternative dishes that satisfy constraints, simplifying the process of modifying meal plans in response to changes.

JP2026083289APending Publication Date: 2026-05-19BLENDING TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
BLENDING TECH CO LTD
Filing Date
2026-03-04
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

Generating a new meal plan when a part of the existing meal plan is changed, such as substituting a vegetable due to price increase, is complex and requires manual adjustment by experts to satisfy constraints like ingredient intervals, seasoning use, and cost limits.

Method used

An information processing apparatus and method that uses a generation AI to modify solution information by generating alternative dishes that satisfy constraints, allowing automatic adjustment of meal plans in response to changes.

Benefits of technology

Enables efficient and appropriate modification of meal plans by generating alternative dishes that meet predefined constraints, reducing the complexity for experts in handling changes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026083289000001_ABST
    Figure 2026083289000001_ABST
Patent Text Reader

Abstract

When modifying part of the solution information representing the solution generated by the optimization process, the solution information is modified appropriately. [Solution] The information processing device 100 includes a control unit 120 that, when modifying a part of solution information (first solution information) which shows an optimized solution using one or more elements to satisfy constraints (for example, interval between use of ingredients, interval between use of seasonings, cooking method, upper limit of cost of the dish, upper limit of energy, lower limit of protein), sets usage conditions for elements related to the generation of alternative information for a part of the first solution information, passes input data including these usage conditions and instruction information to generate the alternative information using elements corresponding to these usage conditions to the generation AI 10, obtains response data for the input data from the generation AI 10, and modifies the first solution information using the alternative information contained in the response data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing apparatus, an information processing method, and a program capable of handling solutions generated by optimization.

Background Art

[0002] Conventionally, there are techniques for generating various types of information so as to satisfy predetermined conditions. For example, a technique for creating a meal plan for a plurality of meals that are temporally continuous based on a plurality of conditions has been proposed (see, for example, Patent Document 1).

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] Here, assume a situation where an event occurs that changes a part of a meal plan for a plurality of meals. In this case, it is conceivable that an expert such as a dietitian will generate a new meal plan according to the event. For example, when an event occurs where another vegetable is used as a substitute instead of a vegetable (for example, cabbage) that has increased in price due to environmental factors or the like, it is conceivable to generate a meal plan using the substitute vegetable. In this case, the expert needs to generate a new meal plan for the period to be changed while considering the relationship between the meal plan for the period to be changed and the meal plans for other periods so as to satisfy predetermined conditions (for example, the interval of using ingredients, the interval of using seasonings, the upper limit value of the cost of cooking (or meals), the upper limit value of energy). Therefore, there is a possibility that the generation of this new meal plan will be complicated for the expert.

[0005] An object of the present invention is to appropriately change solution information when a part of the solution information indicating a solution generated by optimization processing is changed. [Means for solving the problem]

[0006] One aspect of the present invention is an information processing apparatus comprising an information processing method including each of the following processes, and a program that causes a computer to execute each of the following processes. The apparatus includes an information processing apparatus that, when modifying a part of the solution information representing a solution generated by an optimization process using constraints, passes input data including instruction information to a generating AI to generate alternative information that satisfies the constraints, obtains response data for the input data from the generating AI, and executes control to modify the solution information using the alternative information contained in the response data. [Effects of the Invention]

[0007] According to the present invention, when modifying a portion of the solution information representing the solution generated by the optimization process, the solution information can be appropriately modified. [Brief explanation of the drawing]

[0008] [Figure 1] Figure 1 is a block diagram showing an example of the functional configuration of an information processing system. [Figure 2] Figure 2 schematically illustrates an example of how menu information can be used. [Figure 3] Figure 3 shows an example of the relationship between change events, the period of change in menu information, etc. [Figure 4] Figure 4 is a simplified diagram showing an example of the configuration of a menu information database. [Figure 5] Figure 5 is a simplified diagram showing an example of the configuration of a recipe database. [Figure 6] Figure 6 is a simplified diagram showing an example of the structure of a food ingredient database. [Figure 7] Figure 7 is a simplified diagram showing an example of the configuration of a seasoning database. [Figure 8] Figure 8 is a simplified diagram showing an example of the configuration of a cooking method database. [Figure 9] Figure 9 is a simplified diagram showing an example of the configuration of a cooking utensil database. [Figure 10]FIG. 10 is a diagram schematically showing a configuration example of a list holding unit. [Figure 11] FIG. 11 is a diagram schematically showing a configuration example of a determination result holding unit. [Figure 12] FIG. 12 is a sequence chart showing an example of communication processing between devices. [Figure 13] FIG. 13 is a flowchart showing an example of a food list generation process. [Figure 14] FIG. 14 is a flowchart showing an example of a seasoning list generation process. [Figure 15] FIG. 15 is a flowchart showing an example of a food usage interval evaluation process. [Figure 16] FIG. 16 is a flowchart showing an example of a seasoning usage interval evaluation process. [Figure 17] FIG. 17 is a flowchart showing an example of a cooking method evaluation process. [Figure 18] FIG. 18 is a flowchart showing an example of a menu information change process. [Figure 19] FIG. 19 is a diagram showing a configuration example of a cooking feature DB. [Figure 20] FIG. 20 is a diagram showing an example of generating an alternative dish using a cooking feature DB. [Figure 21] FIG. 21 is a diagram showing an example of generating an alternative dish using the relationship of alternative dishes.

Embodiments for Carrying Out the Invention

[0009] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.

[0010] [Configuration Example of Information Processing System] FIG. 1 is a block diagram showing a functional configuration example of an information processing system IS1. The information processing system IS1 is an example of a system that generates menu information (solution information) through optimization processing using constraint conditions. Note that the constraint conditions mean any restrictions or the like used when deriving a solution through optimization processing. That is, under the constraint conditions, an optimal solution is derived through optimization processing. When obtaining menu information as a solution, for example, the usage interval of ingredients, the usage interval of seasonings, the cooking method, the upper limit value of the cost of a dish (or meal), the upper limit value of energy, the lower limit value of protein, etc. are set as constraint conditions.

[0011] The information processing system IS1 includes a generation AI (Artificial Intelligence) 10, an information processing device 100, and a user terminal 200. Note that each of these devices is configured to be connectable by a communication method using wired communication or wireless communication, either directly or via a network NW1. The network NW1 is a network such as a public line network or the Internet.

[0012] In FIG. 1, an example is shown in which each of the generation AI 10 and the information processing device 100 is configured as one device, but the functions of each of these devices may be realized by a plurality of devices. Also, an example is shown in which the generation AI 10 and the information processing device 100 are configured separately, but the generation AI 10 and the information processing device 100 may be configured as an integrated device. Further, in FIG. 1, only one user terminal 200 is illustrated, but the same applies when using a plurality of electronic devices.

[0013] The generation AI 10 is realized by an information processing device capable of executing various information generation processes using an AI model (for example, a machine learning model generated by machine learning), or an information processing system composed of a plurality of devices. Note that the learning shown in this embodiment means finding the regularity behind these data based on a large amount of data. Also, the AI model generated by the learning shown in this embodiment is generated by various learning algorithms.

[0014] For generative AI, for example, LLMs (large language models) and multimodal LLMs can be used. As LLMs, for example, various natural language processing models (e.g., BERT (Bidirectional Encoder Representations from Transformers)), ChatGPT® (Generative Pre-trained Transformer), GPT-4®, GPT-4 Turbo, GPT-4o (Omni), GPT-4o mini, Bard, Llama (Large Language Model Meta AI), Gemini®, Claude®, etc. can be used. Note that these are just examples, and other generative AIs may be used.

[0015] The information processing device 100 is an information processing device that performs an optimization process to satisfy constraints and can obtain menu information (solution information) that satisfies the constraints through this optimization process. For example, the information processing device 100 can generate menu information based on the constraints and provide the generated menu information to the user terminal 200 via the network NW1. Regarding the optimization process, it is possible to employ a known optimization process (for example, a combinatorial optimization process).

[0016] Here, menu information refers to meal menus for multiple meals that are consecutive in time. A meal refers to the contents of meals at each time slot included in the menu information (e.g., breakfast, lunch, dinner). A meal consists of one or more dishes. A dish is prepared using one or more ingredients (e.g., vegetables, meat, seafood) and a predetermined seasoning. In other words, ingredients and seasoning refer to the elements that constitute a meal. Seasoning also refers to the flavor applied to the ingredients used in the meal (or the seasonings used to achieve that flavor).

[0017] Furthermore, if it becomes necessary to change part of the menu information (solution information), the information processing device 100 can input input data to the generation AI 10 that includes a prompt (instruction information) indicating that it will generate some alternative dishes (alternative information) that satisfy the constraints, obtain response data for that input data from the generation AI 10, and execute control to change the menu information using the alternative dishes included in that response data.

[0018] The information processing device 100 comprises a communication unit 110, a control unit 120, and a storage unit 130.

[0019] The communication unit 110, based on the control of the control unit 120, exchanges various types of information with other devices using wired or wireless communication.

[0020] The control unit 120 controls each part based on the data stored in the memory unit 130 (for example, data for implementing various programs). The control unit 120 is implemented by processing units and processing circuits such as a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit). In other words, these processing units and processing circuits are implemented by appropriately combining circuits, circuits, processors, memories, etc. Specifically, the control unit 120 includes an acquisition unit 121, a generation unit 122, an update unit 123, a recording control unit 124, and a provision unit 125. Each of these parts refers to a functional processing unit implemented by hardware resources and information processing by software that can be specifically implemented using those hardware resources.

[0021] The acquisition unit 121 acquires information exchanged with other devices via the communication unit 110 (for example, change information, instruction information (see Figure 12)), and outputs that information to each unit.

[0022] The generation unit 122 uses each DB (Data Base) stored in the storage unit 130 to perform optimization processing to satisfy the constraints specified by the user and generates menu information (solution information). The generated menu information is then output to the recording control unit 124 and the provision unit 125. For example, the generation unit 122 can obtain menu information by employing known combinatorial optimization processing. Also, for example, the constraints are set based on various parameters input by the user. For example, the interval between the use of ingredients, the interval between the use of seasonings, the cooking method, the upper limit of the cost of the dish (or meal), the upper limit of energy, the lower limit of protein, etc., can be set as constraints. Note that these constraints are just examples, and some constraints may be omitted, or other constraints may be set.

[0023] The update unit 123 performs an update process to generate alternative dishes (alternative information) for a portion of the menu information generated by the generation unit 122 when it becomes necessary to change that portion, and outputs the alternative dishes generated by the update process to the generation unit 122. An example of when it becomes necessary to change a portion of the menu information is shown in Figure 3. For example, when it becomes necessary to change a portion of the menu information, the update unit 123 passes input data to the generation AI 10 that includes a prompt (instruction information) to generate alternative dishes for that portion that satisfy the constraints, and obtains response data for that input data from the generation AI 10. Then, the update unit 123 outputs the alternative dishes included in that response data to the generation unit 122. The update process will be explained in detail with reference to Figure 12, etc.

[0024] The recording control unit 124 performs recording control to record the menu information and the like generated by the generation unit 122 into the menu information DB 300 of the storage unit 130.

[0025] The provisioning unit 125 provides the information output from each unit to the user terminal 200 via the communication unit 110. For example, the provisioning unit 125 provides the menu information generated by the generation unit 122 to the user terminal 200 via the communication unit 110. Also, for example, the provisioning unit 125 provides the menu information including alternative dishes generated by the generation AI 10 to the user terminal 200 via the communication unit 110.

[0026] The memory unit 130 is a storage medium for storing various types of information. For example, the memory unit 130 stores various types of information necessary for the control unit 120 to perform various processes (e.g., control program, menu information DB300 (see Figure 4), recipe DB310 (see Figure 5), ingredient DB320 (see Figure 6), seasoning DB330 (see Figure 7), cooking method DB340 (see Figure 8), cooking utensil DB350 (see Figure 9), list holding unit 360 (see Figure 10), judgment result holding unit 370 (see Figure 11)). In addition, the memory unit 130 stores various types of information acquired via the communication unit 110. As the memory unit 130, for example, ROM (Read Only Memory), RAM (Random Access Memory), SRAM (Static Random Access Memory), HDD (Hard Disk Drive), SSD (Solid State Drive), or a combination thereof can be used.

[0027] Figure 1 shows an example in which the information processing device 100 stores various databases such as the menu information DB300, the dish DB310, the ingredient DB320, the seasoning DB330, the cooking method DB340, the cooking utensil DB350, the list holding unit 360, and the judgment result holding unit 370. However, at least some of these databases may be stored in external devices other than the information processing device 100. In this case, the information processing device 100 can retrieve the contents of each database from the external device as needed.

[0028] The user terminal 200 is a device capable of displaying and providing menu information generated by the information processing device 100 to the user. Furthermore, if it becomes necessary to change part of the menu information generated by the information processing device 100, the user terminal 200 can send change information to the information processing device 100, causing the information processing device 100 to generate some alternative information that satisfies the constraints. The user terminal 200 can be implemented, for example, by an electronic device such as a smartphone, tablet, or personal computer, or by an information processing device.

[0029] The user terminal 200 comprises a communication unit 210, a control unit 220, a storage unit 230, and a UI (User Interface) unit 240.

[0030] The communication unit 210, based on the control of the control unit 220, exchanges various types of information with other devices using wired or wireless communication.

[0031] The control unit 220 controls each part based on the data stored in the memory unit 230 (for example, data for implementing various programs). The control unit 220 is implemented by a processing unit such as a CPU or GPU.

[0032] The memory unit 230 is a storage medium for storing various types of information. For example, the memory unit 230 stores various types of information necessary for the control unit 220 to perform various processes (e.g., control programs, menu generation applications). The memory unit 230 also stores various types of information acquired via the communication unit 210. As the memory unit 230, for example, ROM, RAM, SRAM, HDD, SSD, or a combination thereof can be used.

[0033] The UI unit 240 functions as an interface that receives operations from the user and provides the user with various information, and includes a reception unit 241 and an output unit 242. Although not shown in the figures, the UI unit 240 may also be equipped with other components such as an audio input unit and an audio output unit. The reception unit 241 and the output unit 242 are examples of a user interface, and other user interfaces may be used.

[0034] The reception unit 241 receives various operations from the user and outputs the received operation details to the control unit 220. The reception unit 241 and output unit 242 may be configured as a touch panel that allows the user to input operations by touching or bringing their finger close to the display surface, or they may be configured as a separate user interface. When configured as a separate user interface, various operating elements such as buttons and keyboards can be used as the reception unit 241.

[0035] The output unit 242 displays various images based on the control of the control unit 220. For example, the output unit 242 can use a display panel such as an OLED (Electro-Luminescence) panel or an LCD (Liquid Crystal Display) panel.

[0036] [Examples of using menu information] Figure 2 schematically illustrates an example of using menu information generated by the information processing device 100. Figure 2 shows an example of a meal menu provided at ABC facility 50. ABC facility 50 is a facility that provides meals at specific times (e.g., breakfast, lunch, and dinner) over a long period of time. Examples of ABC facility 50 include various schools, educational institutions, and nursing care facilities.

[0037] Figure 2 shows an example in which the information processing device 100 generates menu information 51-53 for N months and provides it to the ABC facility 50. Here, the menu information 51-53 for N months may have the same menu cycle or different menu cycles. For the sake of simplicity, here we show an example in which each of the N months of menu information 51-53 has the same content. In this case, the same meal will be provided for N months. Also, N is a numerical value representing a natural number, and for example, a value of about 1 to 5 can be set.

[0038] As shown in Figure 2, the cooks at facility ABC 50 can provide meals to one or more people dining at facility ABC 50 according to menu information 51-53 for N months generated by the information processing device 100. An example of this menu content is shown in Figure 4, etc.

[0039] Here, it is conceivable that, for some reason, it may become necessary to change the menu contents of the menu information 51-53 for N months generated by the information processing device 100. An example of this is shown in Figure 3.

[0040] [Examples of changes to menu information] Figure 3 shows an example of the relationship between an event that necessitates changing the menu information generated by the information processing device 100 (change event 61), the period during which the menu information will be changed due to this event (date and time information 62), and information indicating whether or not to use the items related to the change event during that period (use / do not use 63).

[0041] For example, "Hina Matsuri" (Girls' Day) is one event that might necessitate a change in menu information. For this change event 61, "Hina Matsuri," the period (date and time information 62) for changing the menu information is assumed to be "March 3rd" (or a date and time around that). For example, on Hina Matsuri, it might be possible to serve dishes appropriate for the occasion (e.g., chirashi sushi, sakura mochi, sakura shumai). Therefore, on the day of Hina Matsuri, "March 3rd" (or a date and time around that), the regular menu information may be changed. Also, in this case, since dishes appropriate for Hina Matsuri (e.g., chirashi sushi, sakura mochi, sakura shumai) will be used, "Use" will be stored in "Use / Don't Use" 63.

[0042] For example, one event that might necessitate a change in menu information is a "malfunction of the toaster oven." Note that a malfunction of the toaster oven is just one example of a cooking appliance failure. For instance, when preparing meals within facility ABC 50, a malfunction of the toaster oven installed within facility ABC 50 is anticipated. Similarly, when preparing meals at an external facility (e.g., a cooking center), a malfunction of the toaster oven installed at that external facility is anticipated. In such cases, a malfunction of the toaster oven makes it impossible to prepare dishes that require it. Therefore, the menu information may need to be changed during the period the toaster oven is malfunctioning. Regarding this change event 61, "malfunction of the toaster oven," the period for changing the menu information (date and time information 62) will be specified by the user as the period until the toaster oven is repaired (or until a new toaster oven is installed). In this case, since dishes requiring the toaster oven are not used, "Do not use" will be stored in the "Use / Do not use" field 63.

[0043] For example, one event that might necessitate changing menu information is "unavailability of ingredients." This could occur if a particular ingredient (e.g., vegetables, meat, or seafood) becomes unusable due to a price surge, a shortage of supply, spoilage due to poor storage conditions, or a legal ban on its sale (e.g., a temporary ban). In such cases, it becomes impossible to prepare dishes using that ingredient. Therefore, menu information may be changed during the period when the ingredient is unavailable. Regarding this change event 61, "unavailability of ingredients," the period for changing the menu information (date and time information 62) will be specified by the user, representing the period until the ingredient becomes available again. In this case, since the unavailable ingredient will not be used, "Do not use" will be stored in the "Use / Do not use" field 63.

[0044] For example, one event that might necessitate changing the menu information is "using seasonal ingredients." For example, seasonal ingredients might be those appropriate to the location where the meal is served. For instance, bamboo shoots in spring, eggplants in summer, and chestnuts in autumn. When using seasonal ingredients, it's necessary to prepare dishes that utilize those seasonal ingredients. Therefore, the menu information may need to be changed during the period when seasonal ingredients are used. Regarding this change event 61, "using seasonal ingredients," the period during which the menu is changed (date and time information 62) will be specified by the user, based on the period during which the seasonal ingredients are available (or unavailable). In this case, since seasonal ingredients are being used, "Use" will be stored in the "Use / Don't Use" field 63.

[0045] Note that the change event 61 shown in Figure 3 is just one example, and the same can be applied to other events.

[0046] As described above, if an event occurs that necessitates changing the menu information generated by the information processing device 100 (change event 61), a specialist such as a nutritionist may generate a new menu corresponding to that event. For example, if an event occurs where "the use of an ingredient is impossible," a menu using a substitute ingredient may be generated. In this case, the specialist needs to generate a new menu for the period to be changed, taking into account the relationship between the menu for the period to be changed and the menus for other periods, so as to satisfy the constraints (e.g., interval between ingredient use, interval between seasoning use, cooking method, upper limit of cost of dish (or meal), upper limit of energy, lower limit of protein, color (e.g., combination of yellow, green, and red, their proportions)). Therefore, generating this new menu may be cumbersome for the specialist. Thus, in this embodiment, when changing a part of the menu information generated by the optimization process to satisfy the constraints, an example is shown in which the generation AI 10 is used to appropriately change the menu information on behalf of the specialist.

[0047] [Example of menu information database configuration] Figure 4 is a simplified diagram showing an example of the configuration of the menu information DB 300 stored in the memory unit 130.

[0048] The menu information DB300 is a database that stores the menu information generated by the generation unit 122. In this embodiment, an example is shown in which menus to be provided to a predetermined facility (e.g., a school, a welfare facility) are generated on a monthly basis. Figure 4 also shows an example in which the monthly menu information to be provided to a predetermined facility is stored in the menu information DB300.

[0049] The menu information DB300 stores the date and time information 301, meal ID 302, dish ID 303, dish name 304, dish category 305, unit price 306, energy 307, protein 308, and meal category 309 in association with each other.

[0050] Date and time information 301 is information indicating the date and time the meal will be served. Meal ID 302 is identification information (e.g., letters, numbers, symbols, or combinations thereof) for identifying the meal to be served. Dish ID 303 is identification information (e.g., letters, numbers, symbols, or combinations thereof) for identifying each dish included in the meal to be served.

[0051] Dish name 304 is information indicating the name of each dish included in the meal being served. Dish category 305 is information indicating the category of each dish included in the meal being served. For example, dish category 305 may include A (staple food), B (main dish), C (side dish), D (small side dish), E (pickles), etc., depending on the dish.

[0052] Unit price 306 is information indicating the unit price of each dish included in the meal provided. Energy 307 is information indicating the amount of energy (e.g., calories) obtained from each dish included in the meal provided. Protein 308 is information indicating the amount of protein obtainable from each dish included in the meal provided. Meal category 309 is information indicating the category of the meal provided (e.g., breakfast, lunch, dinner). Figure 4 shows menu information for meal category 309 "lunch" as an example.

[0053] Each of these pieces of information is stored based on the menu information generated by the generation unit 122. Furthermore, each of these pieces of information is retrieved based on the information stored in each database. Note that the information stored in the menu information database 300 shown in Figure 4 is just an example; some of this information may be omitted, or other information may be stored, as needed. For example, the dish category 305, unit price 306, energy 307, protein 308, meal category 309, etc., may be managed using IDs.

[0054] [Example of a recipe database structure] Figure 5 is a simplified diagram showing an example of the configuration of the recipe database 310 stored in the memory unit 130.

[0055] The dish database 310 is a database that stores information about each dish that makes up a meal included in the menu information generated by the generation unit 122. The dish database 310 stores the dish ID 311, dish name 312, ingredients used 313, seasonings used 314, cooking method 315, and cooking utensils used 316 in association with each dish.

[0056] The dish ID 311 and dish name 312 correspond to the dish ID 303 and dish name 304 shown in Figure 4. The ingredients used 313 is information indicating the ingredients and quantities used in the dish whose name is stored in dish name 312. The seasonings used 314 is information (e.g., condiments) used in the dish whose name is stored in dish name 312. Note that in Figure 5, for the sake of clarity, only a portion of the elements of the ingredients used 313 and seasonings used 314 are shown as representative examples. For example, the ingredients used 313 may store condiments (e.g., salt, soy sauce) and their quantities (e.g., 0.5g).

[0057] Cooking method 315 is information indicating the cooking method used to prepare the meal to be served. Cooking utensils used 316 is information indicating the cooking utensils used to prepare the meal to be served. If multiple cooking methods are required for the same meal, each of those cooking methods is stored in cooking method 315, and the cooking utensils corresponding to each of those cooking methods are stored in cooking utensils used 316. Furthermore, if different cooking methods can be used for the same dish, each of those cooking methods is stored in cooking method 315, and the cooking utensils corresponding to each of those cooking methods are stored in cooking utensils used 316.

[0058] Note that the information stored in the recipe DB310 shown in Figure 5 is just an example, and some of this information may be omitted or other information may be stored as needed. For example, the ingredients used 313, seasonings used 314, cooking methods 315, cooking utensils used 316, etc., may be stored with corresponding IDs and used for extraction processing (see Figure 12, etc.).

[0059] [Example of a food ingredient database configuration] Figure 6 is a simplified diagram showing an example of the configuration of the ingredient database 320 stored in the memory unit 130.

[0060] The ingredient database 320 is a database that stores information about each ingredient used in the dishes included in the menu information generated by the generation unit 122. The ingredient database 320 stores the ingredient ID 321, ingredient name 322, usage interval condition 323, unit price 324, energy 325, and protein 326 in association with each ingredient.

[0061] Ingredient ID 321 is identification information (e.g., letters, numbers, symbols, or combinations thereof) used to identify the ingredients used in the dish being served. Ingredient name 322 is information indicating the name of the ingredients used in the meal being served.

[0062] The usage interval condition 323 indicates the period during which a used ingredient can be used again. For example, for ingredient name 322 "spinach" corresponding to ingredient ID 321 "44312", the usage interval condition 323 is "wait 5 days or more". Therefore, for example, if "spinach" is used as an ingredient in some dish on July 12, 2024, it means that "spinach" cannot be used as an ingredient until July 17, 2024, which is 5 days or more after the date of use. In other words, "spinach" will be available as an ingredient from July 18, 2024 onwards. In this way, each ingredient has constraints such as a period during which it cannot be used.

[0063] The unit price of 324 indicates the unit price of the food ingredient. The energy of 325 indicates the amount of energy that can be obtained from the food ingredient (e.g., calories). The protein of 326 indicates the amount of protein that can be obtained from the food ingredient.

[0064] Note that the information stored in the ingredient database 320 shown in Figure 6 is just an example; some of this information may be omitted or other information may be stored as needed.

[0065] [Example of a seasoning database structure] Figure 7 is a simplified diagram showing an example of the configuration of the seasoning DB330 stored in the memory unit 130.

[0066] The seasoning database 330 is a database that stores information about the seasonings used in dishes included in the menu information generated by the generation unit 122. The seasoning database 330 stores the seasoning ID 331, the seasoning ingredient name 332, and the usage interval condition 333 in association with each other.

[0067] The seasoning ID 331 is identification information (e.g., letters, numbers, symbols, or combinations thereof) used to identify the seasoning ingredients used in the dish being served. The seasoning ingredient name 332 is information indicating the name of the seasoning ingredient used in the meal being served.

[0068] The usage interval condition 333 indicates the period during which the used seasoning ingredient can be used again. Note that, similar to the usage interval condition 323 shown in Figure 6, the usage interval condition 333 indicates the period during which the seasoning ingredient will not be used.

[0069] Note that the information stored in the seasoning DB330 shown in Figure 7 is just an example; some of this information may be omitted or other information may be stored as needed.

[0070] [Example of Cooking Method Database Configuration] Figure 8 is a simplified diagram showing an example of the configuration of the cooking method DB340 stored in the memory unit 130.

[0071] The Cooking Method DB340 is a database that stores information about the cooking methods of dishes included in the menu information generated by the generation unit 122. The Cooking Method DB340 stores the Cooking Method ID 341, the Cooking Method 342, and the Usage Interval Condition 343 in association with each other.

[0072] Cooking method ID 341 is identification information (e.g., letters, numbers, symbols, or combinations thereof) used to identify the cooking method used for the dish being served. Cooking method 342 is information indicating the name of the cooking method used for the meal being served.

[0073] The usage interval condition 343 is information indicating restrictions on the use of the cooking method stored in the cooking method 342. For example, it is preferable that a meal does not contain two or more fried dishes. It is also preferable that breakfast, lunch, and dinner do not contain consecutive fried dishes. On the other hand, it is often not a problem if a meal contains two or more boiled dishes. It is also often not a problem if boiled dishes are included consecutively in breakfast, lunch, and dinner. Therefore, it is preferable to set usage conditions such as usage within the same meal or consecutive meals, depending on the cooking method, as usage interval conditions.

[0074] In this way, it is possible to set constraints in the cooking method DB340 to limit the number of times the main dish and side dishes in the same meal are fried, or to limit the number of times fried foods are served consecutively for breakfast, lunch, and dinner. However, the cooking method may also be restricted by other conditions. For example, combinations of cooking methods and ingredients that serve as constraints may be stored in the cooking method DB340.

[0075] For example, it is possible to associate cooking method 342 "frying" with a list of candidate ingredients that can be cooked, such as "chicken, eggplant, lotus root, shrimp, ...". In this case, if each ingredient in the target dish is included in the "candidate ingredients that can be cooked" associated with the cooking method of that dish, it can be determined that the target dish satisfies the constraints. If each ingredient is not included in the "candidate ingredients that can be cooked", it can be determined that the target dish does not satisfy the constraints.

[0076] Furthermore, for example, combinations of cooking methods and ingredients that do not satisfy the constraints may be stored in the cooking method DB340. For example, a dish of frying strawberries is generally not conceivable. Therefore, the ingredient "strawberry" and the cooking method "fry" can be associated and stored, and if a dish consisting of these combinations is the target dish, it can be determined that the target dish does not satisfy the constraints.

[0077] Note that the information stored in the cooking method DB340 shown in Figure 8 is just an example; some of this information may be omitted as needed, and other information may be stored as described above.

[0078] [Example of a cooking utensil database structure] Figure 9 is a simplified diagram showing an example of the configuration of the cooking utensil DB350 stored in the memory unit 130.

[0079] The Cooking Utensil DB350 is a database that stores information about the cooking utensils used to prepare the dishes included in the menu information generated by the generation unit 122. The Cooking Utensil DB350 stores the Cooking Utensil ID 351, the Cooking Utensil Name 352, and the boiling method 353, the roasting method 354, and the steaming method 355, all associated with each other.

[0080] Cooking Utensil ID 351 is identification information (e.g., letters, numbers, symbols, or combinations thereof) used to identify the cooking utensil used to prepare the food being served. Cooking Utensil Name 352 is information indicating the name of the cooking utensil used to prepare the meal being served.

[0081] The boiling method 353, roasting method 354, and steaming method 355 are information indicating the cooking methods that can be performed using the cooking appliance stored in the cooking appliance name 352. For example, for the cooking appliance name 352 "Oven" corresponding to cooking appliance ID 351 "100102", boiling, roasting, and steaming are all possible, so "Possible" is stored for boiling method 353, roasting method 354, and steaming method 355, respectively. Note that in Figure 9, only boiling method 353, roasting method 354, and steaming method 355 are shown as representative examples, but other cooking methods (e.g., grilling, stir-frying) may also be stored in the cooking appliance DB 350.

[0082] Note that the information stored in the cooking utensil DB350 shown in Figure 9 is just an example; some of this information may be omitted or other information may be stored as needed.

[0083] [Example of list storage unit configuration] Figure 10 is a simplified diagram showing an example of the configuration of the list holding unit 360 stored in the memory unit 130.

[0084] The list holding unit 360 is a holding unit that holds a list of ingredients, seasonings, etc. that can be used for the alternative dish when instructing the generation AI 10 to generate the alternative dish. The list holding unit 360 stores a list of usable ingredients 362 and a list of usable seasonings 363, associated with the date and time 361. Note that these lists are just examples, and some may be omitted, or other lists may be added. For example, a list of usable cooking methods may be added. The method for extracting the information held in each of these lists will be explained in detail with reference to Figures 12 to 14, etc.

[0085] [Example of configuration for the judgment result retention unit] Figure 11 is a simplified diagram showing an example of the configuration of the determination result holding unit 370 stored in the memory unit 130.

[0086] The determination result holding unit 370 is a holding unit that holds the evaluation result (determination result) when evaluating whether the menu information generated by the generation unit 122 satisfies the constraint conditions. Similarly, if, for example, part of the menu information is updated using alternative dishes obtained from the generation AI 10, the updated menu information is evaluated to see whether it satisfies the constraint conditions, and the evaluation result (determination result) is held in the determination result holding unit 370.

[0087] The judgment result storage unit 370 stores the interval between use of ingredients 372, the interval between use of seasonings 373, the cooking method 374, the cost 375, the energy 376, and the protein 377, all associated with the date and time 371. The method for determining each judgment result stored in the judgment result storage unit 370 will be explained in detail with reference to Figures 12, 15 to 17, etc.

[0088] [Example of information processing device operation] Figure 12 is a sequence chart showing an example of communication processing between the information processing device 100 and the user terminal 200. This example shows a communication process that starts when a user operation is performed on the user terminal 200. This communication processing example will be explained with reference to Figures 1 to 11 as appropriate.

[0089] In step S501, the control unit 220 of the user terminal 200 transmits change information to the information processing device 100 to modify the menu information stored in the menu information DB 300 based on the user operation. For example, as shown in Figure 3, possible change information could include information to change the menu for Hina Matsuri (March 3rd) to a menu related to Hina Matsuri (e.g., the period (e.g., March 3rd) and the dishes (e.g., Hina Matsuri-related dishes)), information indicating the period during which the toaster oven cannot be used due to a malfunction (information indicating the period during which the restriction condition of not using the toaster oven is added), information indicating the period until an ingredient becomes available because it is currently unavailable, or information indicating the period during which seasonal ingredients are available because the customer wants to provide meals using seasonal ingredients.

[0090] The change information includes the period during which the menu information will be changed (for example, the content corresponding to the date and time information 62 (see Figure 3)), the subject of the menu information change (for example, the content corresponding to the change event 61 (see Figure 3)), etc. The subject of the menu information change may be, for example, ingredients, cooking utensils, or cooking methods.

[0091] In step S502, the acquisition unit 121 of the information processing device 100 acquires the change information and outputs it to the update unit 123. Figure 12 shows an example of receiving change information (dotted rectangle SQ1 (see Figure 4)) in step S502, indicating a change in the dish category 305 "C (side dish)" and "D (small dish)" for the date and time information 301 "2023 / 6 / 12 12:00~13:00". Note that the change information is not limited to this. For example, it may be change information indicating a change in meals for a predetermined period (e.g., several days, 3 meals a day), a single meal, some of the dishes that make up a meal, or the ingredients or seasonings of these dishes.

[0092] In step S503, the update unit 123 of the information processing device 100 extracts ingredients and seasonings that satisfy the constraints for the period related to the change information received in step S502. Each of the one or more ingredients and seasonings extracted by this extraction process is stored in the list holding unit 360 (see Figure 10). In this case, the update unit 123 may adjust the one or more ingredients and seasonings extracted by the extraction process based on the change information received in step S502. For example, if change information corresponding to change event 61 (see Figure 3) "Oven toaster failure" is received, the list holding unit 360 may be instructed to exclude cooking methods that are performed using only an oven toaster, based on the contents of the cooking appliance DB 350. Also, for example, if change information corresponding to change event 61 "Ingredients cannot be used" is received, the ingredients that cannot be used may be excluded from the usable ingredients list 362 (see Figure 10). Furthermore, for example, if change information corresponding to change event 61 "Use seasonal ingredients" is received, the specified ingredients may be added to the list of available ingredients 362 (see Figure 10). Also, for example, if change information corresponding to change event 61 "Another cooking method" is received, the list holding unit 360 may be instructed to exclude the specified cooking method. This stored information can be included in the prompt and passed to the generating AI 10. These extraction processes will be explained in detail with reference to Figures 13 and 14.

[0093] In step S504, the update unit 123 of the information processing device 100 determines whether all ingredients and seasonings were extracted in the extraction process in step S503. Specifically, the generation unit 122 determines whether information is stored in all of the available ingredient list 362 and available seasoning list 363 in the list holding unit 360. The update unit 123 then determines that all ingredients and seasonings have been extracted if information is stored in all of these lists. On the other hand, the generation unit 122 determines that not all ingredients and seasonings were extracted if information is not stored in at least some of these lists. If all ingredients and seasonings were extracted, the process proceeds to step S510. On the other hand, if at least some of the ingredients and seasonings were not extracted, the process proceeds to step S505.

[0094] In step S505, the information processing unit 125 of the information processing device 100 sends information to the user terminal 200 indicating that it is impossible to generate menu information in accordance with the change information received in step S502. In other words, a process is executed to notify the user that it is impossible to generate menu information in accordance with the change information sent from the user terminal 200 in step S501. In this example, the user is notified that it is impossible to generate menu information if not all of the ingredients and seasonings are extracted. However, even if only some of the ingredients and seasonings are extracted (or if none of them are extracted), a prompt containing the extracted content (or other content (e.g., types of main dish, side dish, appetizer, menu policy)) may be passed to the generation AI 10 to generate and use an alternative dish. In this case, in step S512, it is evaluated whether the menu information incorporating the alternative dish satisfies the constraints, so menu information that satisfies the constraints can be generated by repeating the alternative dish generation process one or more times.

[0095] In step S506, the control unit 220 of the user terminal 200 receives information indicating that it is impossible to generate menu information corresponding to the change information, and presents this information to the user. For example, the control unit 220 can display this information on the display unit of the output unit 242 or output it as an audio from the audio output unit. This allows the user to understand that it is impossible to generate menu information corresponding to the change information they have sent to the information processing device 100 through their own operation.

[0096] In step S507, the control unit 220 of the user terminal 200 determines whether the user has performed an operation to set new change information to modify the menu information. For example, it is assumed that the user has performed an operation to modify part of the change information sent in step S501 (for example, the use of seasonal ingredients A, B, and C) (for example, the use of seasonal ingredients A and B). If an operation to set new change information has been performed, the process proceeds to step S501, and the new change information is sent to the information processing device 100. As a result, the extraction process of ingredients and seasonings that satisfy the constraints (step S503) and the generation process of alternative dishes using the generation AI 10 (steps S510 to S515) are executed for the new change information. On the other hand, if there is no operation to set new change information (or if there is an operation to stop the generation of menu information according to the change information), the operation ends.

[0097] In step S510, the update unit 123 of the information processing device 100 generates a prompt to generate an alternative dish using the ingredients and seasonings extracted in step S503 and inputs it to the generation AI 10.

[0098] As described above, let's assume that change information is received indicating a change within the dotted rectangle SQ1 (see Figure 4). In this case, from the perspective of a professional nutritionist, it is possible to use a prompt that suggests multiple side dishes and appetizers (alternative dishes) using the ingredients stored in the usable ingredients list 362 and the seasonings stored in the usable seasoning list 363. For example, it is possible to use a prompt that includes the work instruction, "You are a professional nutritionist. For each of the side dishes and appetizers, please list three dishes that use ingredients from the 'usable ingredients' list and seasonings from the 'usable seasonings' list," along with list information that lists the ingredients stored in the usable ingredients list 362 as "usable ingredients" and the seasonings stored in the usable seasoning list 363 as "usable seasonings." The prompt may also include a prompt to generate alternative dishes that satisfy the change conditions set by the user (e.g., change event 61, date and time information 62, use / not use 63 (see Figure 3)).

[0099] In step S511, the update unit 123 of the information processing device 100 obtains response data from the generating AI 10 to the prompt entered into the generating AI 10 in step S510. This response data presents multiple side dishes and appetizers as responses to the prompt entered into the generating AI 10 in step S510. For example, if a prompt is entered into the generating AI 10 that includes a list of "usable ingredients" such as "komatsuna, bacon, broccoli, eggplant, ..." and "usable seasonings" such as "butter, soy sauce, consommé, ...", then the response data (alternative dishes) to this prompt will suggest side dishes such as "stir-fried komatsuna and bacon, grilled eggplant" and appetizers such as "broccoli salad".

[0100] In step S512, the generation unit 122 of the information processing device 100 evaluates whether the menu information incorporating the alternative dishes (included in the response data) obtained in step S511 satisfies the constraints.

[0101] As described above, let's assume that change information is received indicating a change within the dotted rectangle SQ1 (see Figure 4). In this case, the alternative dish obtained in step S511 will include multiple alternative dishes (combinations of side dishes and appetizers). For example, let's assume that there are three alternative dishes (combinations of side dishes and appetizers) A1 to C1. In this case, the generation unit 122 generates menu information for each of the three alternative dishes (combinations of side dishes and appetizers) A1 to C1, incorporating each of the multiple alternative dishes (combinations of side dishes and appetizers) A1 to C1 into the dish category 305 "C (side dish)" and "D (appetizer)" of the date and time information 301 "2023 / 6 / 12 12:00~13:00". In other words, menu information A2 incorporating alternative dish (combination of side dish and small dish) A1, menu information B2 incorporating alternative dish (combination of side dish and small dish) B1, and menu information C2 incorporating alternative dish (combination of side dish and small dish) C1 are generated. The generation unit 122 then evaluates for each of the three menu information A2 to C2, each incorporating the three alternative dish (combination of side dish and small dish) A1 to C1, whether each meal included in each menu information A2 to C2 satisfies the constraint conditions. This evaluation process will be explained in detail with reference to Figures 15 to 17, etc.

[0102] In step S513, the generation unit 122 of the information processing device 100 determines, based on the results of the evaluation process in step S512, whether the menu information incorporating the alternative dishes obtained from the generation AI 10 satisfies the constraints. As described above, it is assumed that for each of the three menu information A2 to C2 incorporating the three alternative dishes (combinations of side dishes and appetizers) A1 to C1, it is evaluated whether each meal included in each menu information A2 to C2 satisfies the constraints. In this case, it is assumed that all of the menu information A2 to C2 satisfies the constraints, some of the menu information A2 to C2 does not satisfy the constraints, and none of the menu information A2 to C2 satisfies the constraints. Therefore, in the cases where all of the menu information A2 to C2 satisfies the constraints and where some of the menu information A2 to C2 does not satisfy the constraints, it is determined that the menu information incorporating the alternative dishes obtained from the generation AI 10 satisfies the constraints. On the other hand, if all of the menu information A2 to C2 does not satisfy the constraints, it is determined that the menu information incorporating the alternative dishes obtained from the generating AI 10 does not satisfy the constraints. If the menu information satisfies the constraints, the process proceeds to step S515. On the other hand, if the menu information does not satisfy the constraints, the process proceeds to step S514. If some of the menu information A2 to C2 does not satisfy the constraints, only the menu information from A2 to C2 that satisfies the constraints will be sent to the user terminal 200 (step S515).

[0103] In step S514, the update unit 123 of the information processing device 100 identifies the parts that were determined not to satisfy the constraints in the evaluation process in step S512. For example, if there are ingredients that do not satisfy the constraint on the interval between ingredient use, those ingredients are identified. In this case, those ingredients are excluded from the extraction process (step S503). Also, for example, if there are meals that do not satisfy the constraint on the upper limit of energy TH2 (e.g., 500 kcal), a predetermined number (e.g., 1 to 5) of ingredients that make up that meal and have high energy per unit are identified. In this case, those ingredients are excluded from the extraction process (step S503). In this way, the parts that were determined not to satisfy the constraints are identified and reflected in the extraction process (step S503).

[0104] In step S515, the information processing device 100's provision unit 125 transmits menu information that satisfies the modified constraints to the user terminal 200. This menu information includes the modified portion (modified period) of the original menu information, which was replaced with the alternative dish (modified portion) obtained from the generated AI 10 in step S511.

[0105] As described above, we assume that change information is received indicating that the area within the dotted rectangle SQ1 (see Figure 4) will be changed. We also assume that multiple alternative dishes (combinations of side dishes and appetizers) A1 to C1 are obtained from the generation AI 10. In this case, one or more menu information that satisfies the constraints in step S513 is sent to the user terminal 200 from among the three menu information A2 to C2, which are created by incorporating each of the multiple alternative dishes (combinations of side dishes and appetizers) A1 to C1 into the dish category 305 "C (side dish)" and "D (appetizer)" of the date and time information 301 "2023 / 6 / 12 12:00~13:00".

[0106] In step S516, the control unit 220 of the user terminal 200 receives menu information transmitted from the information processing device 100 and presents the menu information to the user. For example, the control unit 220 can display one or more modified menu information on the output unit 242 based on the received menu information. In this case, the portion containing the modified alternative dish can be displayed in a way that makes it distinguishable from other menu information (for example, by using a different text color, a different background color, or enclosing it in a rectangle).

[0107] In step S517, the control unit 220 of the user terminal 200 determines whether or not there has been a user operation to reflect one or more menu information presented to the user in step S516. For example, if one menu information is presented to the user, and the user decides to adopt that menu information, a user operation to adopt that menu information is performed. Also, for example, if multiple menu information is presented to the user, and the user decides to adopt any of those multiple menu information, a user operation to select the one menu information that the user decides to adopt is performed.

[0108] If the user performs an action to reflect the menu information presented to the user, the process proceeds to step S518. On the other hand, if there is no user action to reflect the menu information presented to the user (or if the user performs an action to further change the presented menu information), the process returns to step S501 and sends change information (change information to change the alternative dish) corresponding to that user action to the information processing device 100.

[0109] In step S518, the control unit 220 of the user terminal 200 transmits instruction information to the information processing device 100 to reflect the menu information presented to the user in step S516.

[0110] In step S519, the acquisition unit 121 of the information processing device 100 receives the instruction information and outputs it to the generation unit 122 and the recording control unit 124.

[0111] In step S520, the recording control unit 124 of the information processing device 100 reflects the menu information (modified menu information that satisfies the constraints) that was sent to the user terminal 200 in step S515 into the menu information DB 300, based on the instruction information received in step S519.

[0112] As described above, we assume that change information is received indicating a change within the dotted rectangle SQ1 (see Figure 4). We also assume that multiple alternative dishes (combinations of side dishes and appetizers) A1-C1 obtained from the generating AI10 satisfy the constraints of all three menu information A2-C2 incorporated into the dish category 305 "C (side dish)" and "D (appetizer)" of the date and time information 301 "2023 / 6 / 12 12:00-13:00". Furthermore, we assume that menu information B2 is selected from the three menu information A2-C2 by user operation. In this case, the recording control unit 124 replaces the meal of date and time information 301 "2023 / 6 / 12 12:00-13:00" with the corresponding part of menu information B2. Furthermore, meal ID 302, dish ID 303, dish name 304, etc., can be assigned to menu information B1 by the generation unit 122 based on each database.

[0113] Thus, if it becomes necessary to change the menu information generated by the information processing device 100, the user sends the change information to the information processing device 100 using the user terminal 200. This allows the information processing device 100 to use the generation AI 10 to modify the menu information appropriately according to the change information. In this case, the user operating the user terminal 200 does not need to be a nutritionist or other expert; they only need to confirm one or more menu information candidates presented by the information processing device 100. Therefore, if it becomes necessary to change part of the menu information generated by the optimization process to satisfy constraints, the generation AI 10 can be used to appropriately modify the menu information instead of an expert.

[0114] In this example, menu information is modified through communication between the information processing device 100 and the generation AI 10 in response to a request from the user terminal 200, but this is not limited to this example. For example, the communication with the generation AI 10 may be performed by an external device other than the information processing device 100. In this case, the information processing device 100 is a device that generates menu information by performing optimization processing to satisfy constraints and performs evaluation processing of the menu information (for example, a device that performs the processes in steps S502 to S505 and S512 to S515), and the communication with the generation AI 10 to modify the menu information (for example, the processes in steps S510 to S511) can be performed by an external device based on instructions from the information processing device 100.

[0115] [Example of generating a list of ingredients that can be used in meals on the change date] Figure 13 is a flowchart illustrating an example of the ingredient list generation process in the information processing device 100. This ingredient list generation process is executed by the control unit 120 based on a program stored in the storage unit 130. This ingredient list generation process starts when the acquisition unit 121 acquires change information (step S502 (see Figure 12)). Although Figure 13 shows an example where the change date is one day, if the change date is multiple days, the ingredient list generation process is executed for each change date, and the results are stored in the available ingredient list 362 (see Figure 10) for each change date. This ingredient list generation process will be explained with reference to Figures 1 to 12 as appropriate.

[0116] In step S541, the update unit 123 selects a food item to be judged from the food item database 320 (see Figure 6). For example, the update unit 123 selects one food item to be judged from among the food items stored in the food item database 320 in order (for example, in the order of the numerical values ​​of food item ID 321). In this case, the update unit 123 retrieves the usage interval condition 323 that is stored in association with the food item selected as the food item to be judged. Here, we will explain using the example where food item name 322 "spinach" corresponding to food item ID 321 "44312" is selected as the food item to be judged, and the usage interval condition 323 "leave 5 days or more" associated with food item name 322 "spinach" is retrieved.

[0117] In step S542, the update unit 123 sets the non-use period corresponding to the usage interval condition, based on the change date (e.g., 2023 / 6 / 13) corresponding to the change information received in step S502. For example, if ingredient name 322 "spinach" is selected as the ingredient to be judged, the usage interval condition 323 "leave at least 5 days" is associated with ingredient name 322 "spinach". Therefore, based on the change date, the non-use period before and after the change date is set from "change date - 5 days" to "change date + 5 days". For example, if the change date is the 13th, the non-use period before and after the change date (13th) is set from 2023 / 6 / 8 to 2023 / 6 / 18. If the non-use period before and after the change date includes the previous month or the following month, that previous month or the following month is set as the non-use period before and after the change date.

[0118] In step S543, the update unit 123 determines whether the target ingredient is included during the non-use period set in step S542. For example, the update unit 123 retrieves the dish ID 303 from the menu information DB 300 (see Figure 4) that corresponds to the non-use period (from 2023 / 6 / 8 to 2023 / 6 / 18). Next, the update unit 123 retrieves the ingredients used 313 stored in the dish DB 310 (see Figure 5) in association with the retrieved dish ID 303. Next, the update unit 123 determines whether "spinach" is included in the retrieved ingredients used 313. The update unit 123 then determines that the target ingredient is included during the non-use period if at least one of the ingredients used 313 corresponding to the non-use period contains "spinach". On the other hand, the update unit 123 determines that the target ingredient is not included during the non-use period if none of the ingredients used 313 corresponding to the non-use period contain "spinach". If the food item to be evaluated is included during the non-use period, proceed to step S545. On the other hand, if the food item to be evaluated is not included during the non-use period, proceed to step S544.

[0119] In step S544, the update unit 123 adds the ingredient to be judged to the list of ingredients that can be used in meals on the day of the change (list of usable ingredients 362 (see Figure 10)).

[0120] In step S545, the update unit 123 determines whether the judgment process has been completed for all ingredients. Specifically, the update unit 123 determines whether all ingredients stored in the ingredient DB 320 have been selected as ingredients to be judged. If the judgment process has been completed for all ingredients, the ingredient list generation process ends. On the other hand, if the judgment process has not been completed for all ingredients, the process proceeds to step S546.

[0121] In step S546, the update unit 123 selects another ingredient from the ingredient database 320 (see Figure 6) as an ingredient to be judged. For example, the update unit 123 selects one ingredient that has not been selected as an ingredient to be judged from among the ingredients stored in the ingredient database 320 as a new ingredient to be judged. Then, it returns to step S542 and continues the operation of the ingredient list generation process.

[0122] [Example of generating a list of available seasonings for meals on the change date] Figure 14 is a flowchart illustrating an example of the seasoning list generation process in the information processing device 100. This seasoning list generation process is executed by the control unit 120 based on a program stored in the storage unit 130. This seasoning list generation process starts when the change information is acquired by the acquisition unit 121 (step S502 (see Figure 12)). Although Figure 14 shows an example where the change date is one day, if the change date is multiple days, the seasoning list generation process is executed for each change date, and the results are stored in the available seasoning list 363 (see Figure 10) for each change date. This seasoning list generation process will be explained with reference to Figures 1 to 13 as appropriate.

[0123] Note that each process in steps S561 to S566 corresponds to each process in steps S541 to S546 shown in Figure 13, except that the target of determination is seasoning (for example, seasoning ingredient name 332 (see Figure 7)) instead of ingredients. In other words, the difference is that the seasoning DB 330 is used instead of the ingredient DB 320, and the extraction results are stored in the usable seasoning list 363 (see Figure 10) instead of the usable ingredient list 362. For this reason, the explanation of each process shown in Figure 14 is omitted.

[0124] As shown in Figures 13 and 14, by executing the ingredient list generation process and the seasoning list generation process, respectively, an extraction process (step S503 (see Figure 12)) is performed to extract ingredients and seasonings that satisfy the constraints according to the change information received in step S502 (see Figure 12).

[0125] The extraction processes shown in Figures 13 and 14 are examples of extraction processes that extract elements that satisfy constraints according to the received change information, and other elements (e.g., cooking methods, cooking utensils) may also be extracted and used. For example, elements that satisfy constraints (e.g., ingredients, seasoning, cooking methods, cooking utensils) may be extracted based on criteria such as the cost of ingredients, energy, and protein.

[0126] For example, as mentioned above, it is also possible to restrict cooking methods by linking them with ingredients. For example, a list of cooking methods that can be used in meals on the day of change may be generated. For example, the update unit 123 selects one cooking method in order from among the cooking methods stored in the cooking method DB 340 as the cooking method to be determined. The update unit 123 then determines whether one or more ingredients stored in the usable ingredient list 362 generated in step S544 (see Figure 13) are included in the ingredient candidates corresponding to the cooking method to be determined (e.g., chicken, eggplant, lotus root, shrimp, etc.). If at least one ingredient stored in the usable ingredient list 362 is included in the ingredient candidates corresponding to the cooking method to be determined, the update unit 123 adds the cooking method to be determined to the list of cooking methods that can be used in meals on the day of change. On the other hand, if none of the ingredients stored in the usable ingredient list 362 are included in the ingredient candidates corresponding to the cooking method to be determined, the cooking method to be determined is not added to the list of cooking methods that can be used in meals on the day of change.

[0127] Next, we will explain the evaluation process (step S512 (see Figure 12)) which evaluates whether all menu information incorporating the alternative dishes obtained from the generated AI 10 satisfies the constraints, with reference to Figures 15 to 17.

[0128] [Example of evaluating the interval between food ingredient uses] Figure 15 is a flowchart illustrating an example of the ingredient usage interval evaluation process in the information processing device 100. This ingredient usage interval evaluation process is executed by the control unit 120 based on a program stored in the storage unit 130. This ingredient usage interval evaluation process starts when an alternative dish is obtained from the generation AI 10 (step S512 (see Figure 12)). Although Figure 15 shows an example of executing the ingredient usage interval evaluation process on a monthly basis, the process may also be executed on other units (for example, multiple months). This ingredient usage interval evaluation process will be explained with reference to Figures 1 to 14 as appropriate.

[0129] In step S601, the generation unit 122 sets the day to be determined for the month M1. Initially, the 1st day (day←1) of the month M1 is set.

[0130] In step S602, the generation unit 122 extracts each ingredient included in the meal for the day of determination. For example, the generation unit 122 retrieves the dish ID 303 and dish name 304 associated with the meal ID 302 for the day of determination (date and time information 301) from the menu information DB 300 (see Figure 4). The generation unit 122 also extracts the dish ID 311 and dish name 312 corresponding to the retrieved dish ID 303 and dish name 304 from the dish DB 310 (see Figure 5), and extracts each ingredient (ingredients used 313) associated with the extracted dish ID 311 and dish name 312. Information about each of these ingredients is extracted from the ingredient DB 320 (see Figure 6).

[0131] In step S603, the generation unit 122 selects a food item to be judged from among the food items extracted in step S602. For example, the generation unit 122 selects one food item as the food item to be judged from among the food items stored in the food item DB 320 in the order of the extracted food items (for example, in the order of the numerical values ​​of food item ID 321). In this case, the generation unit 122 obtains the usage interval condition 323 that is stored in association with the food item selected as the food item to be judged. Here, we will explain using the example where food item name 322 "spinach" corresponding to food item ID 321 "44312" is selected as the food item to be judged, and the usage interval condition 323 "leave 5 days or more" associated with food item name 322 "spinach" is obtained.

[0132] In step S604, the generation unit 122 sets the non-use period corresponding to the usage interval condition, based on the day to be judged. If the ingredient selected as the ingredient to be judged in step S603 is ingredient name 322 "spinach", then the usage interval condition 323 "leave at least 5 days" is associated with ingredient name 322 "spinach". Therefore, based on the day to be judged, the non-use period before and after the day to be judged is set from "day-5 days" to "day+5 days". The method for setting this non-use period is the same as the method for setting the non-use period shown in Figure 13, so a detailed explanation is omitted here.

[0133] In step S605, the generation unit 122 determines whether one or more target ingredients are included during the non-use period set in step S604. The determination method is the same as the determination method shown in Figure 13, so a detailed explanation is omitted here. If the target ingredients are included during the non-use period, the process proceeds to step S607. On the other hand, if the target ingredients are not included during the non-use period, the process proceeds to step S606.

[0134] In step S606, the generation unit 122 determines that the use of the target ingredient on the target date is normal, and stores "normal" in the ingredient usage interval 372 (see Figure 11) corresponding to the target date.

[0135] In step S607, the generation unit 122 determines that the use of the target ingredient on the target date is an error, and stores "Error" in the ingredient usage interval 372 corresponding to the target date, as well as the name of the target ingredient as "Error Ingredient". Note that even if other target ingredients are determined to be normal, if one target ingredient is determined to be an error, "Error" is stored in the ingredient usage interval 372 corresponding to the target date.

[0136] In step S608, the generation unit 122 determines whether the judgment process has been completed for all of the ingredients extracted in step S602. If the judgment process has been completed for all ingredients, the process proceeds to step S610. On the other hand, if the judgment process has not been completed for all ingredients, the process proceeds to step S609.

[0137] In step S609, the generation unit 122 selects other ingredients from among the ingredients extracted in step S602 as ingredients to be judged. Then, it returns to step S604 and continues the ingredient usage interval evaluation process.

[0138] In step S610, the generation unit 122 determines whether the day to be determined is the last day of the month M1. For example, if the end of the month M1 is the 31st, the last day is the 31st; if the end of the month M1 is the 30th, the last day is the 30th; and if the end of the month M1 is the 28th (or 29th), the last day is the 28th (or 29th). If the day to be determined is the last day of the month M1, the process proceeds to step S612. On the other hand, if the day to be determined is not the last day of the month M1, the process proceeds to step S611.

[0139] In step S611, the generation unit 122 sets the day of determination for the month M1 to the next day. That is, the generation unit 122 adds 1 to the day of determination.

[0140] In step S612, the generation unit 122 records the determination results for all days of the target month M1 in the determination result holding unit 370 (see Figure 11).

[0141] [Example of evaluating the interval between using seasonings] Figure 16 is a flowchart illustrating an example of the seasoning usage interval evaluation process in the information processing device 100. This seasoning usage interval evaluation process is executed by the control unit 120 based on a program stored in the memory unit 130. This seasoning usage interval evaluation process starts when an alternative dish is obtained from the generation AI 10 (step S512 (see Figure 12)). Although Figure 16 shows an example of executing the seasoning usage interval evaluation process on a monthly basis, the process may also be executed on other units (for example, multiple months). This seasoning usage interval evaluation process will be explained with reference to Figures 1 to 15 as appropriate.

[0142] Note that each process in steps S621 to S632 corresponds to each process in steps S601 to S612 shown in Figure 15, except that seasoning is used as the determination target instead of ingredients. In other words, the difference is that seasoning DB330 is used instead of ingredient DB320, and the determination result is stored in seasoning usage interval 373 (see Figure 11) instead of ingredient usage interval 372. For this reason, the explanation of each process shown in Figure 16 is omitted.

[0143] [Example of evaluating cooking methods] Figure 17 is a flowchart illustrating an example of the cooking method evaluation process in the information processing device 100. This cooking method evaluation process is executed by the control unit 120 based on a program stored in the storage unit 130. This cooking method evaluation process starts when an alternative dish is obtained from the generation AI 10 (step S512 (see Figure 12)). Figure 17 shows an example of executing the cooking method evaluation process on a monthly basis, but the process may be executed on other units (for example, multiple months). This cooking method evaluation process will be explained with reference to Figures 1 to 16 as appropriate.

[0144] In step S641, the generation unit 122 sets the day to be determined for the month M1. Initially, the 1st day (day←1) of the month M1 is set.

[0145] In step S642, the generation unit 122 extracts each meal for the day to be determined and the cooking method for each of these meals. For example, the generation unit 122 retrieves the dish ID 303 and dish name 304 associated with the meal ID 302 for the day to be determined (date and time information 301) from the menu information DB 300 (see Figure 4). The generation unit 122 also extracts the dish ID 311, dish name 312, and cooking method 315 corresponding to the retrieved dish ID 303 and dish name 304 from the dish DB 310 (see Figure 5). The generation unit 122 also extracts the usage interval condition 343 (see Figure 8) associated with the cooking method 342 in the cooking method DB 340 corresponding to the extracted cooking method 315.

[0146] In step S643, the generation unit 122 selects a cooking method to be judged from among the cooking methods (cooking methods 315 (see Figure 5)) extracted in step S642. For example, the generation unit 122 sequentially selects one cooking method from among the cooking methods (cooking methods 315) as the cooking method to be judged.

[0147] In step S644, the generation unit 122 sets the usage interval conditions based on the day to be judged. For example, if the cooking method to be judged is "frying," then the cooking method 342 (see Figure 8) "frying" is associated with the usage interval condition 343 "only one dish per meal, leave at least one day between servings." Therefore, among the meals provided on the day to be judged, only one dish using "frying" as a cooking method is set per meal. In addition, based on the day to be judged, the non-use period before and after the day to be judged is set from "day-1 day" to "day+1 day." The method for setting this non-use period is the same as the method for setting the non-use period shown in Figure 13, so a detailed explanation is omitted here.

[0148] In step S645, the generation unit 122 determines whether the cooking method to be judged, selected in step S643, violates the usage interval condition set in step S644. For example, if the cooking method to be judged is "frying," then cooking method 342 (see Figure 8) "frying" is associated with usage interval condition 343, "only one dish per meal, leave at least one day between servings." Therefore, if the cooking method "frying" is used for two or more dishes among the meals provided on the day to be judged, it is determined that it violates the usage interval condition. Also, if the cooking method "frying" is used during the non-use period before and after the day to be judged (from "day-1" to "day+1"), it is determined that it violates the usage interval condition. If the cooking method to be judged violates the usage interval condition, the process proceeds to step S647. On the other hand, if the cooking method to be judged does not violate the usage interval condition, the process proceeds to step S646.

[0149] In step S646, the generation unit 122 determines that the target cooking method for the target date is normal, and stores "normal" in the cooking method 374 (see Figure 11) corresponding to the target date.

[0150] In step S647, the generation unit 122 determines that the target cooking method for the target date is an error, stores "Error" in the cooking method 374 corresponding to the target date, and stores cooking methods that violate the usage interval condition 343 as "Error Cooking Methods". Even if other target cooking methods are determined to be normal, if one target cooking method is determined to be an error, "Error" is stored in the cooking method 374 corresponding to that target date.

[0151] In step S648, the generation unit 122 determines whether the determination process has been completed for all of the cooking methods extracted in step S642. If the determination process has been completed for all cooking methods, the process proceeds to step S650. On the other hand, if the determination process has not been completed for all cooking methods, the process proceeds to step S649.

[0152] In step S649, the generation unit 122 selects another cooking method from among the cooking methods extracted in step S642 as the cooking method to be evaluated. Then, it returns to step S644 and continues the operation of the cooking method evaluation process.

[0153] Steps S650 to S652 correspond to steps S610 to S612 shown in Figure 15, so a detailed explanation of these steps is omitted here.

[0154] [Example of an evaluation method for assessing the cost, energy, and protein content of a meal] Here, we show an example of evaluating whether the constraints are met, given that there are upper limits on the cost of the meal, upper limits on energy (e.g., calories), and lower limits on protein. This evaluation process is performed in step S512 (see Figure 12). The results of these evaluations are stored in Cost 375, Energy 376, and Protein 377 (see Figure 11).

[0155] [Example of evaluating the upper limit of the cost of food] First, we will explain an example of determining whether the cost of the meal is below the upper limit. This evaluation process is performed in step S512 shown in Figure 12.

[0156] For example, each dish included in the meal to be evaluated will be designated as the dish to be evaluated, and the ingredients used in these dishes will be designated as the ingredients to be evaluated. The dishes and ingredients to be evaluated will be selected from the meals of the day to be evaluated, as in Figures 15 and 16. In this case, let wn be the amount of the ingredients to be evaluated, and en be the cost per 100g of the ingredients to be evaluated. In this case, the cost x of the ingredients to be evaluated can be calculated using the following formula 1. x=wn×en / 100…Formula 1

[0157] The required quantity (wn) is stored in ingredient 313 of the recipe database 310. The cost (en) is stored in unit price 324 of the ingredient database 320.

[0158] Furthermore, if the dish being evaluated uses three ingredients, the costs of the three ingredients will be denoted as x1, x2, and x3. In this case, the cost y of the dish being evaluated can be calculated using the following equation 2. Note that x1, x2, and x3 can each be calculated using the equation 1 described above. y=x1+x2+x3 …Formula 2

[0159] Furthermore, if the meal to be evaluated consists of four dishes, the costs of the four dishes to be evaluated are denoted as y1, y2, y3, and y4. In this case, the cost z of the meal to be evaluated can be calculated using the following equation 3. Note that each of y1, y2, y3, and y4 can be calculated using the equation 2 described above. z = y1 + y2 + y3 + y4 ... Equation 3

[0160] For example, if the meal for date and time information 301, "2023 / 6 / 12 12:00~13:00," is to be evaluated, then each of the dishes listed under dish name 304—"200g white rice," "grilled Atka mackerel with salt," "stir-fried potatoes with seaweed and salt," and "spinach with sesame dressing"—will be the dishes to be evaluated. In this case, the ingredients used in each of the dishes to be evaluated—"200g white rice," "grilled Atka mackerel with salt," "stir-fried potatoes with seaweed and salt," and "spinach with sesame dressing"—will be the ingredients to be evaluated. Furthermore, it is possible to calculate the cost x of each ingredient to be evaluated using equation 1 above, the cost y of each dish to be evaluated using equation 2 above, and the cost z of the meal to be evaluated using equation 3 above. This cost z of the meal to be evaluated becomes the total cost of the meal for date and time information 301, "2023 / 6 / 12 12:00~13:00."

[0161] Thus, when the meal in the date and time information 301, "2023 / 6 / 12 12:00~13:00," is selected as the meal to be evaluated, the generation unit 122 compares the cost z of this meal with the upper limit TH1 of meal costs (for example, 300 yen). If the cost z of the meal to be evaluated exceeds the upper limit TH1 (for example, 300 yen), the generation unit 122 determines that the meal to be evaluated does not satisfy the constraints. On the other hand, if the cost z of the meal to be evaluated is less than or equal to the upper limit TH1 (for example, 300 yen), the generation unit 122 determines that the meal to be evaluated satisfies the constraints.

[0162] [Example of evaluating the upper limit of energy] Next, we will explain an example of determining whether the energy is below the upper limit. This evaluation process is performed in step S512 shown in Figure 12.

[0163] For example, each dish included in the meal to be evaluated will be designated as the dish to be evaluated, and the ingredients used in these dishes will be designated as the ingredients to be evaluated. The dishes and ingredients to be evaluated will be selected from the meals of the day to be evaluated, as shown in Figures 15 and 16. In this case, the amount of the ingredients to be evaluated will be denoted as wn, and the energy per 100g of the ingredients to be evaluated will be denoted as eng. In this case, the energy ex of the ingredients to be evaluated can be calculated using the following equation 11. ex = wn × eng / 100 …Equation 11

[0164] The required amount of wn is stored in ingredient 313 of the recipe database 310. The energy eng is stored in energy 325 of the ingredient database 320.

[0165] Furthermore, if the dish being evaluated uses three ingredients, the energies of the three ingredients will be denoted as ex1, ex2, and ex3. In this case, the energy ey of the dish being evaluated can be calculated using the following equation 12. Note that each of ex1, ex2, and ex3 can be calculated using the equation 11 described above. ey=ex1+ex2+ex3 …Formula 12

[0166] Furthermore, if the meal to be evaluated consists of four dishes to be evaluated, the energies of the four dishes to be evaluated are denoted as ey1, ey2, ey3, and ey4. In this case, the energy ez of the meal to be evaluated can be calculated using the following equation 13. Note that each of ey1, ey2, ey3, and ey4 can be calculated using the equation 12 described above. ez = ey1 + ey2 + ey3 + ey4 ... Equation 13

[0167] Similar to the cost calculation described above, if, for example, the meal for "2023 / 6 / 12 12:00~13:00" in date and time information 301 is to be evaluated, then each of the dishes listed in dish name 304—"200g white rice," "grilled Atka mackerel with salt," "stir-fried potatoes with seaweed and salt," and "spinach with sesame dressing"—will be the dishes to be evaluated. In this case, the ingredients used in each of the dishes to be evaluated—"200g white rice," "grilled Atka mackerel with salt," "stir-fried potatoes with seaweed and salt," and "spinach with sesame dressing"—will be the ingredients to be evaluated. Furthermore, it is possible to calculate the energy ex of each ingredient to be evaluated using equation 11 described above, the energy ey of each dish to be evaluated using equation 12 described above, and the energy ez of the meal to be evaluated using equation 13 described above. This energy ez of the meal to be evaluated becomes the total energy of the meal for "2023 / 6 / 12 12:00~13:00" in date and time information 301.

[0168] Thus, when the meal in the date and time information 301, "2023 / 6 / 12 12:00~13:00," is selected as the meal to be evaluated, the generation unit 122 compares the energy ez of this meal with the upper limit of the meal's energy TH2 (for example, 500 kcal). If the energy ez of the meal to be evaluated exceeds the upper limit TH2 (for example, 500 kcal), the generation unit 122 determines that the meal to be evaluated does not satisfy the constraints. On the other hand, if the energy ez of the meal to be evaluated is less than or equal to the upper limit TH2 (for example, 500 kcal), the generation unit 122 determines that the meal to be evaluated satisfies the constraints.

[0169] [Example of evaluating the lower limit of protein levels] Next, we will describe an example of determining whether the protein level is above the lower limit. This evaluation process is performed in step S512, as shown in Figure 12.

[0170] For example, each dish included in the meal to be evaluated will be designated as the dish to be evaluated, and the ingredients used in these dishes will be designated as the ingredients to be evaluated. The dishes and ingredients to be evaluated will be selected from the meals of the day to be evaluated, as shown in Figures 15 and 16. In this case, the amount of the ingredients to be evaluated will be denoted as wn, and the protein content per 100g of the ingredients to be evaluated will be denoted as pr. In this case, the protein pr of the ingredients to be evaluated can be calculated using the following formula 21. px=wn×pr / 100…Equation 21

[0171] The required amount of wn is stored in ingredient 313 of recipe DB310. The protein pr is stored in protein 326 of ingredient DB320.

[0172] Furthermore, if the dish being evaluated uses three ingredients to be evaluated, the proteins of the three ingredients to be evaluated will be designated as pr1, pr2, and pr3. In this case, the protein py of the dish to be evaluated can be calculated using the following equation 22. Note that pr1, pr2, and pr3 can each be calculated using the equation 21 mentioned above. py=px1+px2+px3 …Equation 22

[0173] Furthermore, if the meal to be evaluated consists of four dishes to be evaluated, the proteins of the four dishes to be evaluated are designated as py1, py2, py3, and py4. In this case, the protein pz of the meal to be evaluated can be calculated using the following equation 23. Note that each of py1, py2, py3, and py4 can be calculated using the equation 22 described above. pz=py1+py2+py3+py4 …Formula 23

[0174] Similar to the cost and energy values ​​mentioned above, if, for example, the meal for date and time information 301, "2023 / 6 / 12 12:00~13:00," is to be evaluated, then each of the dishes listed under dish name 304—"200g white rice," "grilled Atka mackerel with salt," "stir-fried potatoes with seaweed and salt," and "spinach with sesame dressing"—will be the dishes to be evaluated. In this case, the ingredients used in each of the dishes to be evaluated—"200g white rice," "grilled Atka mackerel with salt," "stir-fried potatoes with seaweed and salt," and "spinach with sesame dressing"—will be the ingredients to be evaluated. Furthermore, it is possible to determine the protein px of each ingredient to be evaluated using equation 21 mentioned above, the protein py of each dish to be evaluated using equation 22 mentioned above, and the protein pz of the meal to be evaluated using equation 23 mentioned above. This protein pz of the meal to be evaluated will be the total protein of the meal for date and time information 301, "2023 / 6 / 12 12:00~13:00."

[0175] Thus, when the meal in the date and time information 301, "2023 / 6 / 12 12:00~13:00," is selected as the meal to be evaluated, the generating unit 122 compares the protein pz of this meal with the lower limit of protein TH3 for meals (for example, 40g). If the protein pz of the meal to be evaluated is less than the lower limit TH3 (for example, 40g), the generating unit 122 determines that the meal to be evaluated does not satisfy the constraints. On the other hand, if the protein pz of the meal to be evaluated is equal to or greater than the lower limit TH3 (for example, 40g), the generating unit 122 determines that the meal to be evaluated satisfies the constraints.

[0176] [Example of setting priorities using each evaluation result] As mentioned above, it is possible to determine the cost, energy, protein, etc., of the entire meal to be changed. For example, if the generating AI 10 proposes multiple alternative dishes for the same mealtime, the cost, energy, and protein of the entire meal including each of those dishes can be determined for each dish, and the cost, energy, and protein of the entire meal for each dish can be compared to set a priority. For example, a higher weight can be set according to the decrease in the overall cost of the meal, the decrease in the overall energy of the meal, and the increase in the overall protein of the meal. The priority can be set in descending order of the sum of these weights for each dish. This priority can be presented to the user along with the alternative dishes. It is also possible to present the values ​​(cost, energy, protein) that form the basis of the priority along with the priority. This makes it possible for the user to refer to the selection criteria (priority) of the alternative dishes when selecting an alternative dish, making the selection of an alternative dish easier.

[0177] [Examples using other constraints] The constraints described above are just examples and are not limited to them; other constraints may be used. For example, when generating menu information for a facility, the preferences of the people within that facility may be used as a constraint. For example, when generating menu information for facility H, if the majority of people within facility H like spicy food, spicy dishes should be prioritized. Alternatively, constraints may be set to prevent dishes from being in the same category consecutively. For example, when generating menu information for facility G, if Chinese food is served at facility G for a predetermined number of days or more, dishes other than Chinese food should be included.

[0178] [Example of threshold determination when a dish or ingredient not stored in each database is proposed] It is also conceivable that the generating AI 10 may propose alternative dishes (or ingredients contained therein) that are not stored in the dish DB 310, ingredient DB 320, etc. In such cases, by inputting a prompt to the generating AI 10 to add the cost, energy, and protein of the alternative dish, it is possible to include the cost, energy, and protein of the alternative dish in the response data to that prompt. However, it is assumed that the cost, energy, and protein of the alternative dish included in the response data output by the generating AI 10 will be general values. However, these values ​​will differ from the values ​​of the dishes actually used in the menu, but they can be used as approximations. Therefore, if the generating AI 10 proposes an alternative dish (or ingredients contained therein) that is not stored in the dish DB 310, ingredient DB 320, etc., it is possible to perform the threshold determination described above using the cost, energy, and protein of the alternative dish included in the response data output by the generating AI 10.

[0179] [Example of generating a list of usable ingredients using cost information] The above examples show how to generate a list of 362 usable ingredients (see Figure 10) based on the interval between ingredient use, the interval between seasoning use, and the cooking methods that can be used with these ingredients. Here, we show an example of generating a list of 362 usable ingredients (see Figure 10) based on the cost of the ingredients.

[0180] First, the update unit 123 calculates the cost of each meal within the period corresponding to the change information. This calculation method is the same as the calculation method using equations 1 to 3 described above. For the sake of simplicity, here we will show an example where there is only one meal within the period corresponding to the change information. Let z1 be the cost of the meal before the change within the period corresponding to the change information. In this case, the update unit 123 calculates the difference d1 between the upper limit of the meal cost TH1 (for example, 300 yen) and the meal cost z1.

[0181] Next, the update unit 123 calculates the cost xa of each ingredient included in the usable ingredient list 362. In this case, the amount required for the original ingredient is wn, and the cost per 100g of the ingredient is en. Then, similar to equation 1 above, it can be calculated using the following equation 31. That is, since the amount required for the substitute dish is unknown, a hypothetical value is calculated using the amount wn required for the original ingredient. xa = wn × en / 100 …Equation 31

[0182] Next, the update unit 123 determines whether the following equation 32 is satisfied with the difference value d1, the cost xa of the ingredients included in the usable ingredients list 362, and the cost x of the ingredients before the change. Then, the update unit 123 deletes all ingredients from the usable ingredients list 362, keeping only those ingredients with a cost xa that satisfy the following equation 32. However, ingredients with a cost xa that do not satisfy the following equation 32 may be given a lower priority instead of being deleted. In this case, for example, the priority of ingredients with a cost xa that satisfy the following equation 32 may be set high, and the priority of other ingredients may be set low to generate the usable ingredients list 362, and this priority may be included in the prompt. This makes it possible for the generation AI 10 to preferentially suggest alternative dishes using high-priority ingredients. d1 > xa - x …Equation 32

[0183] If no single ingredient satisfies the above-mentioned formula 32, the update unit 123 may detect combinations of ingredients that satisfy the above-mentioned formula 32 and keep those combinations of ingredients in the usable ingredient list 362.

[0184] [Example of operation when a part of the device that does not meet the constraints is detected] Figure 12 shows an example of modifying menu information using the generating AI 10 when change information transmitted based on user operation is received. Here, it is also assumed that parts that do not satisfy the constraints may be detected in the evaluation process that is performed periodically or irregularly in the information processing device 100. Therefore, Figure 18 describes an example of modifying menu information when parts that do not satisfy the constraints are detected in the evaluation process of the information processing device 100.

[0185] Figure 18 is a flowchart illustrating an example of the menu information modification process in the information processing device 100. This menu information modification process is executed by the control unit 120 based on a program stored in the storage unit 130. This menu information modification process is initiated when the evaluation process is executed in the information processing device 100. This menu information modification process will be explained with reference to Figures 1 to 17 as appropriate.

[0186] Note that steps S504, S510-S514, and S520 correspond to the processes with the same names shown in Figure 12. Therefore, their explanations are omitted.

[0187] In step S701, the update unit 123 determines whether or not a portion of the menu information that does not satisfy the constraints has been detected in the evaluation process. This evaluation process is the same as the evaluation process shown in Figures 15 to 17. If a portion of the menu information that does not satisfy the constraints has been detected (i.e., if "Error" is stored in any of the judgment result holding units 370), the process proceeds to step S702. On the other hand, if no portion of the menu information that does not satisfy the constraints has been detected (i.e., if "Normal" is stored in all of the judgment result holding units 370), the operation of the menu information modification process is terminated.

[0188] In step S702, the update unit 123 extracts ingredients and seasonings that satisfy the constraints from the portion detected in step S701 (the portion that does not satisfy the constraints). This extraction process is the same as the extraction process in step S503 shown in Figure 12.

[0189] If at least some of the ingredients and seasonings are not extracted in step S504, in step S705, the supply unit 125 sends information to the user terminal 200 indicating that it is impossible to generate menu information that satisfies the constraints. In other words, it notifies the user that it is impossible to generate menu information that satisfies the constraints. However, as in the example shown in Figure 12, even if some of the ingredients and seasonings are extracted (or if none of them are extracted), a prompt containing the extracted content (or other content (e.g., types of main dish, side dish, appetizer, menu policy)) may be passed to the generation AI 10 to generate and use an alternative dish. In this case, in step S512, it is evaluated whether the menu information incorporating the alternative dish satisfies the constraints, so by repeating the alternative dish generation process one or more times, it is possible to generate menu information that satisfies the constraints.

[0190] In step S703, the generation unit 122 determines whether the alternative dishes obtained from the generation AI 10 in step S511 contain content other than that of each DB (for example, the dish DB 310). If the alternative dishes obtained from the generation AI 10 contain content other than that of each DB, the process proceeds to step S704. On the other hand, if the alternative dishes obtained from the generation AI 10 do not contain content other than that of each DB (i.e., all of the alternative dishes obtained from the generation AI 10 (for example, ingredients, seasonings) are stored in one of the DBs), the process of changing the menu information is terminated.

[0191] In step S704, the generation unit 122 stores the contents of the alternative dishes obtained from the generation AI 10 in step S511, excluding those in each DB (for example, the dish DB 310), into the corresponding DB. In other words, information about alternative dishes obtained from the generation AI 10 that is not stored in a DB can be sequentially stored in the DB and reflected. This makes it possible to update each DB of the information processing device 100 using the generation AI 10. Similarly, in the example shown in Figure 12, the processes in steps S703 and S704 may be executed after the process in step S520 to update each DB.

[0192] Thus, when evaluating the menu information (solution information) generated by the optimization process of the information processing device 100, it is conceivable that parts that do not satisfy the constraints may be detected as a result of the evaluation. In this case, it is possible to quickly and automatically modify those parts using the generation AI 10. Furthermore, for alternative dishes proposed by the generation AI 10 that are not stored in each DB, it is possible to sequentially store that information in the DB and reflect it.

[0193] [Example of updating the database after confirmation by a nutritionist] The above examples illustrate how to store and reflect alternative dishes suggested by the generating AI 10 in the database (steps S520 (see Figure 12) and S704 (see Figure 18)). However, when storing alternative dishes suggested by the generating AI 10 in the database, it is also possible to have the alternative dishes checked by experts such as nutritionists before storing them in the database. This makes it possible to store highly reliable dish information (alternative dishes) that have been checked by experts such as nutritionists in the database.

[0194] [Examples of applications such as usable lists] Figure 10 shows an example in which the list holder 360 holds a list of usable ingredients, seasonings, etc., that can be used for alternative dishes. However, as mentioned above, in addition to ingredients and seasonings, usable cooking methods, usable cooking utensils, etc., may also be included in the list holder 360 and held therein.

[0195] For example, a process similar to that shown in Figures 13 and 14 may be used to extract usable cooking methods based on the usage interval condition 343 (see Figure 8) of the cooking method DB340. Alternatively, for example, usable cooking methods may be extracted based on the relationship with ingredients, seasonings, etc., included in the usable list. For example, consider the case where the ingredient included in the usable list is "strawberries." For example, since no dish of deep-frying "strawberries" can be considered, cooking methods excluding the cooking method "deep-frying" for the ingredient "strawberries" can be extracted as usable cooking methods. In this case, cooking utensils excluding those used to "deep-fry" the ingredient "strawberries" (e.g., a tempura pot) can be extracted as usable cooking utensils. Note that the cooking method "deep-frying" for the ingredient "strawberries" can be extracted as an unusable cooking method, as will be described later. Similarly, cooking utensils used to "deep-fry" the ingredient "strawberries" (e.g., a tempura pot) can be extracted as an unusable cooking utensil, as will be described later.

[0196] [Example of using a disabled list] The above example shows how to use a list of available ingredients, seasonings, etc. (list holding unit 360 (see Figure 10)) when instructing the generation AI 10 to generate an alternative dish. Specifically, the example shows how to generate a prompt to the generation AI 10 to generate an alternative dish using the ingredients, seasonings, etc. included in the list of available ingredients, seasonings, etc. extracted by the extraction process shown in step S503 (see Figure 12), Figures 13 and 14, and how to obtain response data to that prompt from the generation AI 10 (steps S510, S511 (see Figure 12)).

[0197] Here, if usable ingredients, seasonings, etc. are explicitly specified to the generating AI 10, it is possible that the generating AI 10 may generate alternative dishes using unusable ingredients, seasonings, etc. Therefore, here we show an example of generating and using a list of usable and unusable ingredients. Note that the method for generating the usable list is the same as the example shown in step S503 (see Figure 12), Figure 13, Figure 14, etc.

[0198] The unusable list can include ingredients, seasonings, cooking methods, cooking utensils, etc. that cannot be used, similar to the usable list. The unusable list can also be generated, for example, based on change information received in step S502. For example, if change information corresponding to change event 61 (see Figure 3) "Oven toaster malfunction" is received, cooking methods that are performed using only an oven toaster (or dishes that are cooked only using that cooking method, or ingredients used only for that dish) can be included in the unusable list as unusable cooking methods, based on the contents of the cooking utensil DB350. Also, for example, if change information corresponding to change event 61 "Ingredients cannot be used" is received, the ingredients that cannot be used can be included in the unusable list as unusable ingredients.

[0199] Furthermore, for example, if, among the change conditions set by user operation (e.g., change event 61, date and time information 62, use / do not use 63 (see Figure 3)), the use / do not use 63 is set to "do not use", then the content of the change event 61 corresponding to that use / do not use 63 "do not use" can be included in the unavailable list as it is unavailable.

[0200] Alternatively, for example, similar to the examples shown in Figures 13 and 14, cooking methods that cannot be used may be extracted based on the usage interval condition 343 (see Figure 8) of the cooking method DB340 and included in the list of unusable methods.

[0201] The generated list of usable and unusable items can be stored in the list holding unit 360 (see Figure 10) and used. For example, in step S510 (see Figure 12), a prompt can be generated and input to the generation AI 10 indicating that an alternative dish should be generated that does not use the ingredients, seasonings, cooking methods, cooking utensils, etc. included in the unusable list, but uses the ingredients, seasonings, cooking methods, cooking utensils, etc. included in the usable list. Then, in step S511 (see Figure 12), the response data to that prompt can be obtained from the generation AI 10. Other processes can be carried out in the same way as the processes described above.

[0202] Here, it is important that the prompts input to the generating AI 10 include information that the generating AI 10 can understand. As mentioned above, it is also possible to pass only the usable list to the generating AI 10. However, by generating both usable and unusable lists and clearly instructing the generating AI 10 on unusable ingredients, seasonings, cooking methods, cooking utensils, etc., it is possible to prevent the generating AI 10 from using unusable items in advance. This prevents the alternative dish generation process from being repeated many times, and enables the rapid generation of menu information that satisfies the constraints. Furthermore, by preventing the repetition of the alternative dish generation process, computing resources can be used efficiently, and computational efficiency can be increased. In other words, it is possible to reduce the computational processing of the information processing device 100 and the generating AI 10, and thus reduce the power consumption of the information processing device 100 and the generating AI 10.

[0203] [Example of providing personalized menus] The above examples illustrate how to generate and modify meal menu information provided to various facilities such as schools, educational institutions, and nursing care facilities. However, this embodiment is not limited to these examples. For example, this embodiment can also be applied to generating and modifying meal menu information for individuals. For instance, a menu provision service that provides personalized meal menu information can be provided to individuals. In this case, users of this menu provision service can use their own user terminal 200 (e.g., a smartphone) to check their personalized meal menu information. For example, the user's UI unit 240 of the user terminal 200 can display their personalized meal menu information.

[0204] For example, users of the menu provision service can set their own constraints using the user terminal 200. For instance, they can change the usage interval conditions 323 (Figure 6) for the ingredient DB 320, 333 (Figure 7) for the seasoning DB 330, and 343 (Figure 7) for the cooking method DB 340 according to their preferences. They can also set upper limits for energy (calories), lower limits for protein, and upper limits for salt.

[0205] For example, if a user has a medical condition, a prompt to set constraints appropriate for that condition can be input to the generating AI10, and the user can then set their own constraints using the response data. For instance, if a user has symptoms of anemia, iron, protein, and other nutrients are important for blood production. In this case, it is possible to set constraints that increase the upper limit of the nutrients necessary for blood production.

[0206] Furthermore, the generation unit 122 can generate personalized menu information by performing optimization processing to satisfy the constraints specified by the user, using each DB stored in the storage unit 130. This generation method is the same as the generation method described above. It is also possible to calculate nutritional information such as the unit price, energy content, protein, fat, and salt content per person and include this nutritional information in the menu information for the user. It is also possible to include information (text information, image information) showing the specific cooking procedure for each dish in the menu information for the user. As a result, individual users can easily cook their own meals each time and easily understand the nutritional information of each meal.

[0207] For example, a user of the menu provision service can modify part of the menu information using the user terminal 200. For example, they can modify part of the menu information based on their own convenience, surrounding environment, etc. For example, if the menu information includes ingredients or dishes that the user dislikes, the user can use the user terminal 200 to send modification information to the information processing device 100 to change those ingredients or dishes. Also, for example, if the menu information includes ingredients that are unavailable due to price increases, shortages, etc., the user can use the user terminal 200 to send modification information to the information processing device 100 to change those ingredients. In these cases, the update unit 123 executes an update process that uses the generation AI 10 to generate alternative dishes (alternative information) for those ingredients or dishes in order to change them. The method of modification is the same as the modification method described above.

[0208] Furthermore, for example, if a user experiences any symptoms (e.g., dizziness), the user can use the user terminal 200 to send change information to the information processing device 100 to change to ingredients or meals that will alleviate those symptoms. In this case, the update unit 123 executes an update process that uses the generation AI 10 to generate alternative dishes (alternative information) related to the ingredients or meals that will alleviate those symptoms. This change method is the same as the change method described above. In this case, the change information may be generated by inputting a prompt to the generation AI 10 suggesting ingredients or meals that will alleviate the symptoms (e.g., dizziness), as described above, and using the response data.

[0209] Furthermore, when inputting a prompt to the generating AI 10 for changing the ingredients or dishes mentioned above, the prompt may include instructions to calculate and output nutritional information such as the unit price, energy content, protein, fat, and salt content per serving. In this case, it is also possible to provide the user with this nutritional information included in the modified menu information. Additionally, the prompt may include instructions to output information (text information, image information) showing the specific cooking procedure for each dish. In this case, it is also possible to provide the user with information (text information, image information) showing the specific cooking procedure for each modified dish included in the menu information. This allows individual users to easily prepare the modified meals and easily understand the nutritional information of the meals before and after the changes.

[0210] [Example of providing health management information] The above examples illustrate how menu information can be provided to users, but the system is not limited to these. For example, it is also possible to provide users with health management information along with menu information. As mentioned above, it is possible to calculate and output nutritional information such as the unit price, energy content, protein, fat, and salt content per person. Therefore, it is possible to provide users with aggregated information (health management information) for each item, for example, in predetermined units (e.g., daily, weekly, or monthly). For example, the aggregated health management information can be displayed item by item on the UI unit 240 of the user terminal 200. For example, it is possible to display the amount of salt consumed on a weekly basis.

[0211] As described above, users of the menu provision service can set their own restrictions. For example, they can set upper limits for energy (calories), lower limits for protein, upper limits for fat, upper limits for salt, etc. Therefore, the restrictions set by the user and the health management information described above can be linked and managed on an item-by-item basis. For example, the restrictions set by the user and the health management information described above can be associated with each item and provided to the user. For example, the UI section 240 of the user terminal 200 can display the restrictions set by the user and the health management information described above on an item-by-item basis so that they can be compared. In this case, health management information that meets a predetermined standard for the restrictions may be displayed in a way that makes it distinguishable from other health management information.

[0212] For example, consider a scenario where a constraint is set to limit daily protein intake to 65g, and health management information (including protein) for June (30 days) is to be displayed. In this case, if the protein consumption for June (30 days) is 110% or more of the constraint value (1950g for 30 days) (health management information within a specified range), an example of how the protein consumption can be displayed in a specific way is shown. For example, if the total protein consumption for June (30 days) is 2200g, this is 110% or more of the constraint value (1950g for 30 days). In this case, the protein consumption item in the health management information can be displayed in a specific color (e.g., green) different from other items (e.g., black).

[0213] [Example of generating alternative dishes using search results from a recipe database] The above example demonstrates the use of a list of available and unavailable alternative dishes when instructing the generation AI 10 to generate alternative dishes. Here, we show an example where the ingredients, nutrients, cooking methods, etc., of a dish are stored as vector data, and this vector data is used to generate alternative dishes.

[0214] [Example of a Food Characteristics Database Structure] Figure 19 is a simplified diagram showing an example of the configuration of the cooking feature DB800 stored in the memory unit 130.

[0215] The Dish Features DB800 is a database that stores information about each dish that makes up a meal included in the menu information generated by the generation unit 122. The Dish Features DB800 is a modified version of the Dish DB310 (see Figure 5) and stores information about each dish as vector data.

[0216] The Dish Features DB800 stores the following associated items: Dish ID 801, Dish Name 802, Energy 803, Protein 804, Meat 805, Fish 806, Fried 807, and Grilled 808. Dish ID 801 and Dish Name 802 correspond to Dish ID 311 and Dish Name 312 in Dish DB310.

[0217] Energy 803 is information (e.g., calories) indicating the amount of energy obtainable from the dish corresponding to dish ID 801 and dish name 802. Protein 804 is information indicating the amount of protein obtainable from the dish corresponding to dish ID 801 and dish name 802. This information may be entered by a professional such as a nutritionist, or values ​​obtained based on experiments, simulations, etc. In Figure 19, for the sake of clarity, energy and protein are used as examples of nutrients for each dish, but other nutrients (e.g., salt, lipids, carbohydrates) may also be stored.

[0218] Meat 805 is information indicating whether or not meat is used as an ingredient in the dish corresponding to dish ID 801 and dish name 802. Fish 806 is information indicating whether or not fish is used as an ingredient in the dish corresponding to dish ID 801 and dish name 802. For example, "1" is stored in meat 805 for dishes that use meat, and "1" is stored in fish 806 for dishes that use fish. On the other hand, "0" is stored in meat 805 for dishes that do not use meat, and "0" is stored in fish 806 for dishes that do not use fish. Note that in Figure 19, for the sake of clarity, meat and fish are used as examples of ingredients for each dish, but other ingredients (e.g., vegetables, grains, fruits) may also be stored. Also, in Figure 19, for the sake of clarity, various types of meat (e.g., chicken, pork, beef) are broadly classified as meat, but they may be classified and stored in more detail by type of meat. Similarly, while we show an example of broadly classifying various types of fish (e.g., mackerel, salmon, tuna) as "fish," it is also possible to classify and store them in more detail by fish species.

[0219] Frying 807 is information indicating whether the cooking method for the dish corresponding to dish ID 801 and dish name 802 is "frying". Grilling 808 is information indicating whether the cooking method for the dish corresponding to dish ID 801 and dish name 802 is "grilling". For example, for dishes that are fried, "1" is stored in Frying 807, and for dishes that are grilled, "1" is stored in Grilling 808. On the other hand, for dishes that are not fried, "0" is stored in Frying 807, and for dishes that are not grilled, "0" is stored in Grilling 808. Note that in Figure 19, for the sake of ease of explanation, frying and grilling are used as examples of cooking methods for each dish, but other cooking methods (for example, stir-frying, boiling, steaming) may also be stored.

[0220] For example, the dish corresponding to dish ID 801 "CU001" and dish name 802 "Dish A" can be identified as a dish made using meat (meat 805 stores "1") as the main ingredient and cooked using a grilling method (grilling 808 stores "1"). Furthermore, the dish corresponding to dish ID 801 "CU001" and dish name 802 "Dish A" can be identified as having an energy content of 707 kcal and a protein content of 25.9 g. Figure 20 also shows an example of generating an alternative dish using information about the dish enclosed by the dotted rectangle 810 (see Figure 19).

[0221] Furthermore, the information corresponding to dish ID 801 and dish name 802 (energy 803, protein 804, meat 805, fish 806, fried 807, grilled 808) can also be understood as vector information, which allows the meaning of words and sentences to be represented numerically.

[0222] Note that the information stored in the dish characteristics DB800 shown in Figure 19 is just an example; some of this information may be omitted or other information may be stored as needed.

[0223] [Example of generating alternative dishes based on the current dishes and the purpose of the changes] First, we will show an example of instructing the generation AI 10 to generate the alternative dish by telling it the original dish (the current dish) and the purpose of changing the alternative dish. For example, we will show an example of using the generation AI 10 to generate an alternative dish for dish name 802 "Dish A" in the dish feature DB 800 shown in Figure 19, which uses fish instead of meat.

[0224] For example, the information processing device 100 (see Figure 1) can display a list of menu information stored in the menu information DB 300 (for example, monthly menu information provided to a designated facility) on the UI unit 240 of the user terminal 200. In this case, the information processing device 125 can display each piece of information from the dish features DB 800 corresponding to the displayed menu information on the UI unit 240 on a dish-by-dish basis. Thus, the user can select a dish they wish to change from the list of menu information displayed on the UI unit 240 and display the corresponding information from the dish features DB 800.

[0225] For example, if a user wishes to change dish A, they perform a selection operation to select dish A from the list of menu information, and the information in the dish feature DB800 corresponding to dish A is displayed. For example, the information corresponding to dish name 802 "Dish A" in the dish feature DB800 shown in Figure 19 can be displayed. The user can then select the element they wish to change from within dish A and modify that element. For example, the user can select "meat" as the element they wish to change from within dish A and change it to use "fish" instead of "meat".

[0226] When such a modification operation is performed, the update unit 123 instructs the generation AI 10 to generate an alternative dish that has similar nutritional content to dish A but uses fish instead of meat. Specifically, the update unit 123 records the name and value of the information for each piece of information in the dish feature DB 800 corresponding to dish A that contains a numerical value indicating the content amount (e.g., energy 803, protein 804), and for information that contains a numerical value indicating presence or absence (e.g., meat 805, fish 806, fried 807, grilled 808), it explicitly states that the information where "1" is stored, and inputs a prompt to the generation AI 10 that includes a suggestion to propose a dish that satisfies the modification information changed by the user (using fish instead of meat).

[0227] For example, the update unit 123 can generate a prompt that includes the question, "Based on Dish A (Energy: 707kcal, Protein: 25.9g, ..., Ingredients: Meat, Cooking Method: Grilled, ...), what dishes can be considered if the ingredient 'meat' is changed to 'fish'?" In this case, response data including alternative dishes is output from the generating AI 10. This response data includes the answer to the prompt mentioned above, "How about Dish Q (Energy: 650kcal, Protein: 25.2g, ..., Ingredients: Fish, Cooking Method: Grilled, ...)?" In this way, it is possible to tell the generating AI 10 the current dish (for example, Dish A) and the purpose of the change (for example, using fish instead of meat) and receive suggestions for an appropriate recipe.

[0228] This example is applicable to the examples shown in Figure 12 and Figure 18. For example, in the example shown in Figure 12, as the process in step S503, a list of available and unavailable alternative dishes is generated in response to the change information from the user. For example, the available list can include "fish" and the unavailable list can include "meat". As the process in step S510, the available and unavailable lists, along with a prompt including "What dishes can be considered if the ingredient "meat" is changed to "fish" based on dish A (energy: 707kcal, protein: 25.9g, ..., ingredient: meat, cooking method: grilled, ...)?" can be input to the generating AI10. This is also applicable to the example shown in Figure 18.

[0229] [Example of extracting alternative dishes using vector search] Next, we will show an example in which a food feature database, which stores the ingredients, nutrients, cooking methods, etc. of a dish as vector data, is used to perform a vector search for dishes similar to the alternative dish, and the dishes found through the vector search are communicated to the generation AI 10, which is then instructed to generate the alternative dish.

[0230] Figure 20 is a simplified diagram illustrating the process of generating alternative dishes using dishes extracted from the dish feature database 800 via vector search. Specifically, it shows an example where dishes similar to dish A (dish name 802), enclosed by the dotted rectangle 810 (see Figure 19), are extracted from the dish feature database 800, these extracted dishes are communicated to the generation AI 10, and the generation AI 10 proposes alternative dishes. In Figure 20, an example is shown where dishes using fish instead of meat are extracted from the dish feature database 800 and used as alternative dishes to dish A.

[0231] Vector search refers to a search method that represents the meaning of each element's word or sentence numerically and searches by comparing the similarity between each element. For example, consider a case where "strawberry" and "apple" are assigned similar numerical values, while "chicken" and "pork" are assigned significantly different numerical values. In this case, the distance between "strawberry" and "apple" is determined to be small, and the similarity between "strawberry" and "apple" can be determined to be high (high degree of similarity). On the other hand, the distance between "chicken" and "pork" is determined to be large, and the similarity between "chicken" and "pork" can be determined to be low (low degree of similarity). Furthermore, when comparing vector data composed of multiple elements, the distance between the vector data can be calculated using known calculation methods. For example, the cosine similarity of each vector data to be compared can be calculated, and the higher the cosine similarity, the higher the similarity, and the lower the cosine similarity, the lower the similarity. Note that a high cosine similarity means that the distance is small in the vector space. Alternatively, the distance between vector data can be calculated and used using other calculation methods.

[0232] Figure 20(A) shows the information related to dish A (dish name 802). This information is the same as the information enclosed in the dotted rectangle 810 (see Figure 19). Figure 20(B) shows the information related to the alternative dish (dish name 802) for dish A. The information shown in Figure 20(B) is the same as that shown in Figure 20(A), with meat 805 "1" and fish 806 "0" (dotted rectangle 811) replaced by meat 805 "0" and fish 806 "1" (dotted rectangle 812), and the other information is the same as that shown in Figure 20(A).

[0233] As shown in Figure 20(B), by changing meat 805"1" and fish 806"0" (dotted rectangle 811) to meat 805"0" and fish 806"1" (dotted rectangle 812), it is possible to obtain vector data for an alternative dish of dish A that uses fish instead of meat.

[0234] For example, the information processing device 100 (see Figure 1) can display a list of menu information stored in the menu information DB 300 (for example, monthly menu information provided to a designated facility) on the UI unit 240 of the user terminal 200. In this case, the information processing device 125 can display each piece of information from the dish features DB 800 corresponding to the displayed menu information on the UI unit 240 on a dish-by-dish basis. Thus, the user can select a dish they wish to change from the list of menu information displayed on the UI unit 240 and display the corresponding information from the dish features DB 800.

[0235] For example, if a user wishes to change dish A, they perform a selection operation to select dish A from the list of menu information, and the information in the dish feature DB800 corresponding to dish A is displayed. For example, the information shown in Figure 20(A) can be displayed. The user can then select the element they wish to change from within dish A and modify that element. For example, as shown in Figures 20(A) and (B), the user can select "meat" as the element they wish to change from within dish A and modify it to use "fish" instead of "meat".

[0236] When such a modification operation is performed, the update unit 123 extracts from the dish feature DB 800 dishes that have similar nutritional content to dish A but use fish instead of meat, as a replacement for dish A. Specifically, the update unit 123 performs a vector search based on the vector data shown in Figure 20(B) to extract a predetermined number of dishes from the dish feature DB 800 that are closest to the vector data shown in Figure 20(B). In this case, the update unit 123 searches for dishes that correspond to vector data where the elements modified by the user (meat 805 "0", fish 806 "1" (dotted rectangle 812)) have the same value, and other elements (for example, energy 803 "707 kcal", protein 804 "25.9 g", fried 807 "0", grilled 808 "1") have similar values.

[0237] The predetermined number may be a fixed value (for example, around 2 to 10) or a variable value set based on proximity (for example, a number that satisfies the proximity criterion). Furthermore, a known vector search method can be used for the search. The dishes extracted by this vector search are shown in Figure 20(C).

[0238] Furthermore, the search results from the vector search may be corrected before use. For example, the update unit 123 extracts dishes with similar nutritional content to dish A from the dish feature DB 800, without considering the changes made by the user (meat → fish). Next, the update unit 123 can further extract only the dishes corresponding to meat 805 "0" and fish 806 "1" from the one or more extracted dishes. This makes it possible to extract dishes from the dish feature DB 800 that have similar nutritional content to dish A, but use fish instead of meat, instead of dish A.

[0239] Figure 20(C) shows an example of a dish extracted from the dish feature DB800 based on the vector data shown in Figure 20(B). As described above, dishes are extracted that correspond to vector data where the user-modified elements (meat 805 "0", fish 806 "1" (dotted rectangle 812)) have the same value, and other elements (for example, energy 803 "707 kcal", protein 804 "25.9 g", fried 807 "0", grilled 808 "1") have similar values. For example, since vector data with similar values ​​for other elements are extracted, fried and grilled dishes are also extracted based on the relationships between each element. It is also possible to present these extracted dishes to the user as alternative dishes to dish A. However, it is also possible to transmit the vector data of these extracted dishes to the generating AI10 and receive suggestions for appropriate cooking recipes from the generating AI10. Therefore, here we show an example in which the vector data of these extracted dishes is input to the generating AI10 and alternative dishes suggested by the generating AI10 are used.

[0240] For example, the update unit 123 instructs the generation AI 10 to suggest alternative dishes that have similar nutritional content to dishes Y and Z extracted from the dish feature DB 800, but use fish instead of meat. Specifically, the update unit 123 records the name and numerical value of the information that stores numerical values ​​indicating content volume (e.g., energy 803, protein 804) among the vector data shown in Figure 20(C), and for information that stores numerical values ​​indicating presence or absence (e.g., meat 805, fish 806, fried 807, grilled 808), it explicitly records the information that stores "1", and inputs a prompt to the generation AI 10 that includes a suggestion to suggest alternative dishes that satisfy the elements changed by the user (using fish instead of meat). For example, a prompt is input to the generating AI 10 indicating that it will suggest an alternative dish that has similar content (e.g., similar nutrients) to the information containing numerical values ​​indicating the content (e.g., energy 803, protein 804), has similar content to other elements (frying 807, grilling 808), and satisfies the element changed by the user (using fish instead of meat). Alternatively, the information of the original dish A may be included in the prompt as the original information and input to the generating AI 10.

[0241] Figure 20(D) shows a simplified version of the response data 820, which includes the alternative dish (dish Q1) output by the generating AI 10. The response data 820 contains the following as a response to the prompt mentioned above: "As an alternative dish, how about the following dish Q1? Energy: 700kcal, Protein: 25.2g, ..., Ingredients: Fish, Cooking method: Grilled, Description of cooking procedure: ..." In this way, by inputting one or more dishes (e.g., dishes Y, Z) extracted from the dish feature DB 800 into the generating AI 10, it is possible to receive suggestions for appropriate cooking recipes from the generating AI 10.

[0242] The providing unit 125 can display the response data 820 shown in Figure 20(D) on the UI unit 240 of the user terminal 200. The providing unit 125 may also display the results of the vector search (for example, information on a predetermined number of top-ranking dishes) along with the contents of the response data 820 on the UI unit 240 in a comparable display format. This allows the user to compare and consider the alternative dishes output from the generating AI 10 with the results of the vector search. Furthermore, if the user adopts an alternative dish output from the generating AI 10, that adopted alternative dish can be stored in the dish feature DB 800. Alternatively, the dish may be stored in the dish feature DB 800 regardless of whether it is adopted or not.

[0243] Here, high-end French cuisine, high-end Japanese cuisine, and school lunches may share at least some of their ingredients, but their destinations and content differ significantly. For example, when requesting a dish to be served in a school lunch, it's possible that the AI ​​10 might output a high-end French dish or a high-end Japanese dish. Therefore, as shown in Figure 20, by providing the AI ​​10 with examples of dishes that have actually been served, it is possible to improve the accuracy of the alternative dishes output by the AI ​​10. For example, by providing the AI ​​10 with information about dishes that have actually been served in school lunches, it becomes possible to output alternative dishes that can actually be served in school lunches. Also, for example, when applying this to a home menu, by providing the AI ​​10 with examples of dishes that have been served at home, it becomes possible to output alternative dishes that can actually be served at that home.

[0244] This example is applicable to the examples shown in Figure 12 and Figure 18. For example, in the example shown in Figure 12, as the process in step S503, a vector search from the dish feature DB 800 can be performed in response to change information from the user. As the process in step S504, a determination process is performed to determine whether one or more dishes have been extracted from the dish feature DB 800, and as the process in step S510, a prompt containing one or more dishes extracted from the dish feature DB 800 can be input to the generation AI 10. The same applies to the example shown in Figure 18.

[0245] In the example shown in Figure 12, as the process in step S503, a list of usable alternative dishes (and a list of unusable alternative dishes) may be generated along with the vector search process from the dish feature DB 800 described above, and as the process in step S510, a prompt including one or more dishes extracted from the dish feature DB 800 and the list of usable alternative dishes (and the list of unusable alternative dishes) may be input to the generation AI 10. The same can be applied to the example shown in Figure 18. This makes it possible to have the generation AI 10 generate alternative dishes that take into account one or more dishes extracted from the dish feature DB 800 and the list of usable alternative dishes (and the list of unusable alternative dishes), thereby improving the accuracy of the alternative dishes.

[0246] In this example, vector data (for example, the numerical value for energy 803, the numerical value for protein 804, 0 or 1 for meat 805, 0 or 1 for fish 806, 0 or 1 for fried 807, and 0 or 1 for grilled 808) is input to the generating AI 10, and the response data is obtained from the generating AI 10. In other words, the vector data is converted to text data, and the converted text data (information equivalent to the vector data) is input to the generating AI 10. That is, information equivalent to the vector data (or the vector data itself) is input to the generating AI 10. Note that as information equivalent to the vector data, CSV (Comma Separated Values) data, JSON (JavaScript® Object Notation) data, etc., may also be input to the generating AI 10, and the response data may be obtained from the generating AI 10.

[0247] [Example of generating alternative dishes using past examples] Next, we will show an example where the relationships between previously substituted dishes are recorded, and this relationship is communicated to the generation AI 10, which is then instructed to generate a new substituted dish.

[0248] Figure 21 is a simplified diagram illustrating the process of generating alternative dishes by utilizing the relationships between previously substituted dishes.

[0249] Figure 21(A) shows the relationships between dishes that have been substituted in the past, indicated by arrows. Specifically, arrows connect the original dish to the substituted dish. For example, dish D (834) means that it has been used as a substitute for dish X (835) at least once in the past. Also, for example, dish B (832) and dish C (833) each mean that they have been used as a substitute for dish A (831) at least once in the past.

[0250] Figure 21(B) shows a simplified example of the configuration of the alternative relationship DB840 stored in the memory unit 130.

[0251] The Alternative Relationship DB 840 is a database that stores information about alternative dishes previously generated by the Update Unit 123. The Alternative Relationship DB 840 is a modified version of the Dish Features DB 800 (see Figure 19), differing in that it adds the original dish 841 and alternative dish 842; otherwise, it is common to the Dish Features DB 800. Therefore, information common to the Dish Features DB 800 will be described using the same reference numerals.

[0252] As shown in Figure 21(A), when dish D(834) is generated as a substitute dish for dish X(835), the substitute dish 842 corresponding to dish name 802 "dish X" stores "D", which means dish D(834). In this case, the original dish 841 corresponding to dish name 802 "dish D" stores "X", which means dish X(835).

[0253] Furthermore, if dish A(831) is generated as a substitute for dish D(834), then "A," meaning dish A(831), is stored in substitute dish 842, which corresponds to dish name 802 "dish D." In this case, "D," meaning dish D(834), is stored in original dish 841, which corresponds to dish name 802 "dish A."

[0254] As described above, the information processing device 100 (see Figure 1) can display a list of menu information stored in the menu information DB 300 (for example, monthly menu information provided to a designated facility) on the UI unit 240 of the user terminal 200. The user can then select a dish they wish to change from the list of menu information displayed on the UI unit 240 and display the corresponding information in the dish features DB 800.

[0255] In this example, the user wishes to change dish A for some reason, but there are no other elements that the user wishes to change. In this case, the user wishes to change dish A, so they perform a selection operation to select dish A from the list of menu information.

[0256] When such a modification operation is performed, the update unit 123 extracts other dishes from the alternative relationship DB 840 that have an alternative relationship with dish A. Specifically, the update unit 123 refers to the original dish 841 and alternative dish 842 in the alternative relationship DB 840 and extracts dishes from the alternative relationship DB 840 in which information about dish A is stored. In the example shown in Figure 21(B), information about dish A is stored in either the original dish 841 or the alternative dish 842 corresponding to dish names 802 "Dish B", "Dish C", and "Dish D". In this case, the update unit 123 extracts the information corresponding to dish names 802 "Dish B", "Dish C", and "Dish D".

[0257] In this example, we show an example where dishes with a direct substitution relationship (for example, a relationship directly connected by an arrow in Figure 21(A)) are selected as the target of extraction. However, dishes with indirect substitution relationships may also be selected as the target of extraction. In the example shown in Figure 21(A), an indirect substitution relationship means a relationship that is not directly connected by an arrow but is connected primarily or secondarily. For example, dish X (835) and dish A (831) are not directly connected by an arrow, but are indirectly connected via dish D (834). In this case, dishes X (835) and dish A (831) are considered to have a primarily indirect substitution relationship. Also, for example, dishes X (835) and dish B (832) are not directly connected by an arrow, but are indirectly connected via dishes D (834) and dish A (831). In this case, dishes X (835) and dish B (832) are considered to have a secondarily indirect substitution relationship. Furthermore, dishes with weak substitution relationships are considered unlikely to contribute to the generation of alternative dishes. Therefore, for dishes with indirect substitution relationships, extraction is limited to those with N-th degree (where N is a natural number) indirect substitution relationships. This N can be set appropriately based on, for example, user preferences, experiments, simulations, etc.

[0258] It is also possible to present the extracted dishes (dish B, dish C, dish D) to the user as alternative dishes to dish A. However, it is also possible to provide information about each of these extracted dishes (e.g., vector data) to the generating AI 10 and receive suggestions for appropriate recipes from the generating AI 10. Therefore, Figure 21 shows an example in which information about each of these extracted dishes is input to the generating AI 10 and alternative dishes suggested by the generating AI 10 are used.

[0259] For example, the update unit 123 instructs the generation AI 10 to suggest alternative dishes for dish A, using the dishes (dish B, dish C, dish D) extracted from the alternative relationship DB 840 as a reference. Specifically, the update unit 123 inputs a prompt to the generation AI 10 that explicitly states the information corresponding to each of the dish names 802 "dish B", "dish C", and "dish D" from the alternative relationship DB 840 shown in Figure 21(B), and that it is suggesting alternative dishes for dish A.

[0260] Figure 21(C) shows a simplified version of the response data 850, which includes the alternative dish (dish Q2) output by the generating AI 10. The response data 850 contains the following as a response to the prompt mentioned above: "As an alternative dish, how about the following dish Q2? Energy: 711kcal, Protein: 26.1g, ..., Ingredients: Fish, Cooking method: Grilled, Cooking procedure description: ..." In this way, by inputting one or more dishes (for example, dish B, dish C, dish D) extracted from the alternative relationship DB 840 into the generating AI 10, it is possible to receive suggestions for appropriate cooking recipes from the generating AI 10.

[0261] The providing unit 125 can display the response data 850 shown in Figure 21(C) on the UI unit 240 of the user terminal 200. The providing unit 125 may also display the dishes extracted from the alternative relationship DB 840 (for example, dish B, dish C, dish D) along with the contents of the response data 850 on the UI unit 240 in a comparable display format. This allows the user to compare and consider the alternative dishes output from the generation AI 10 with the dishes extracted from the alternative relationship DB 840 (dish B, dish C, dish D). Furthermore, if the user adopts an alternative dish output from the generation AI 10, that adopted alternative dish can be stored in the alternative relationship DB 840. In this case, "A" is stored in the original dish 841. If a secondary alternative dish (alternative dish) is subsequently generated for that alternative dish (primary alternative dish), the identification information of the secondary alternative dish is stored in the alternative dish 842 of the primary alternative dish. Note that the alternative dish may be stored in the alternative relationship DB 840 regardless of whether it is adopted or not.

[0262] Similar to the example shown in FIG. 20, by informing the generation AI 10 of an example with the actually provided dish, it is possible to improve the accuracy of the alternative dishes output from the generation AI 10. For example, by informing the generation AI 10 of information regarding the dish actually provided in the school lunch, it becomes possible to output from the generation AI 10 alternative dishes that can actually be provided in the school lunch.

[0263] This example is applicable to the examples shown in FIG. 12 and FIG. 18. For example, in the example shown in FIG. 12, as the process of step S503, it is possible to execute the extraction process of dishes having an alternative relationship from the alternative relationship DB 840 according to the change information from the user. As the process of step S504, a determination process for determining whether or not one or more dishes (dishes having an alternative relationship) have been extracted from the alternative relationship DB 840 is executed, and as the process of step S510, it is possible to input a prompt including the one or more dishes extracted from the alternative relationship DB 840 to the generation AI 10. Similarly, it is also applicable to the example shown in FIG. 18.

[0264] In addition, in the example shown in FIG. 12, as the process of step S503, together with the above-described extraction process from the alternative relationship DB 840 (extraction process of dishes having an alternative relationship), a usable list (and unusable list) regarding alternative dishes may be generated, and as the process of step S510, a prompt including the one or more dishes extracted from the alternative relationship DB 840 and the usable list (and unusable list) may be input to the generation AI 10. Similarly, it is also applicable to the example shown in FIG. 18. Thereby, since it is possible to cause the generation AI 10 to generate an alternative dish considering the one or more dishes extracted from the alternative relationship DB 840 and the usable list (and unusable list), it is possible to improve the accuracy of the alternative dish.

[0265] In this way, it is possible to record and utilize the relationship of dishes that have been replaced in the past as past history information (for example, the editing history of the past menu). And it is possible to generate alternative dishes according to the purpose by using the recorded relationship of past alternative dishes.

[0266] Furthermore, alternative dishes may be generated by appropriately combining the above-mentioned examples of extracting alternative dishes using vector search (see Figure 20) and generating alternative dishes using past examples (see Figure 21). For example, a prompt containing the search results from vector search (one or more dishes) and one or more dishes with past alternative relationships may be input to the generating AI 10, and the response data may be obtained. This makes it possible to further improve the accuracy of alternative dishes.

[0267] [Example of generating alternative dishes using customer feedback] Here, we consider a scenario where, for example, it is possible to collect data such as questionnaires and leftover amounts for dishes served based on menu information. For example, leftover food can be obtained through visual inspection or image information. It is also possible to compile questionnaires from people who ate the food. For example, suppose a survey of leftovers of dish A, which uses bell peppers as an ingredient, reveals that a high percentage of bell peppers were left behind. In this case, it is possible to record "bell peppers were left behind" in relation to dish A. Alternatively, suppose a survey of dish A, which uses beef as an ingredient, reveals that a high percentage of people favored the beef. In this case, it is possible to record "beef was well-received" in relation to dish A. For example, a Feedback (FB) information field can be set up in the dish features DB800 (or alternative relationship DB840), and "bell peppers were left behind," "beef was well-received," etc., can be stored in that FB information field in relation to dish A. For example, in the case of a questionnaire, questionnaire information (e.g., text information showing the questionnaire results) (e.g., a file in a predetermined format) can be stored in the FB information field. Similarly, in the case of leftover food information obtained through visual inspection or image information (e.g., leftover ingredients, leftover seasonings, completely consumed ingredients, completely consumed seasonings), the leftover information (e.g., text information) (e.g., a file in a predetermined format) can be stored in the FB information field. The ingredients, leftovers, and completely consumed items in the text information of the FB information field can be determined based on known character recognition technology. For example, if the character for "ingredient" and the related character "leftovers" are extracted based on known character recognition technology, that ingredient can be determined to be unpopular. Similarly, if the character for "ingredient" and the related character "completely consumed" are extracted based on known character recognition technology, that ingredient can be determined to be popular. Furthermore, each piece of information, such as survey information and leftover information, may be stored in the FB information field in a predetermined format that allows for identification of the content (e.g., ingredient ID, whether completely consumed, whether leftovers were present). For example, information linking ingredient IDs (see Figure 6) and seasoning IDs (see Figure 7) with whether they were well-received or poorly received may be stored in the FB information field.

[0268] For example, when the update unit 123 instructs the generation AI 10 to suggest an alternative dish for dish A, it can refer to the FB information column of each DB and input a prompt to the generation AI 10 that reflects the information in that FB information column. For example, if the FB information column for dish A contains "bell peppers are unpopular" and "beef is popular," the update unit 123 can input a prompt to the generation AI 10 that includes a statement to refrain from using bell peppers and to use beef as much as possible. In addition to instructing the generation AI 10, for example, a nutritionist or other expert may decide whether or not to reflect the information to an acceptable extent, or to reflect it in constraints. For example, in the case of a menu that requires salt control, even if the FB information column contains information that salty tastes are popular, it is preferable not to reflect that information.

[0269] Additionally, each ingredient may be added to both the usable list and the unusable list for alternative dishes. For example, if the FB information field for dish A contains "bell peppers remain" and "beef is popular," beef can be added to the usable list and bell peppers to the unusable list. Since beef is used in dish A, it is considered that beef satisfies the constraint. Therefore, it is highly likely that beef will be extracted in the ingredient and seasoning extraction process that satisfies the constraint (step S503, etc.) and will already be included in the usable list. In this case, it is unnecessary to add beef to the usable list. However, since "beef is popular," information recommending the use of beef may be added to beef and added to the usable list. In this case, it is possible to input a prompt including a recommendation to use beef into the generating AI10. Furthermore, when menu information is changed based on user operation, the changes may include the exclusion of beef. In this case, it is unnecessary to add beef to the usable list. Also, in this case, beef will be excluded in the ingredient and seasoning extraction process that satisfies the constraint (step S503, etc.). It is also possible that bell peppers are already included in the generated usable list. In this case, remove bell peppers from the list of usable peppers and add them to the list of unusable peppers.

[0270] [Example of generating alternative dishes by specifying the quantities of each ingredient] In many cases, the edible amount of each ingredient used in a dish cannot be changed drastically. Therefore, for example, when the update unit 123 instructs the generation AI 10 to suggest an alternative dish, it can input a prompt to the generation AI 10 that includes the quantities of each ingredient used in the alternative dish. The edible amount of each ingredient used in a dish is stored in the ingredients used 313 of the dish DB 310 (see Figure 5). By inputting a prompt to the generation AI 10 that includes the quantities of each ingredient used in the alternative dish in this way, it is possible to further improve the accuracy of the alternative dish.

[0271] [Example of generating all or part of menu information using generation AI] For example, the generation AI 10 may be used to propose each dish that makes up the menu information, and each proposed dish may be sequentially evaluated to see if it satisfies the constraints. The menu information may then be generated using the dishes that satisfy the constraints. For example, ingredients and seasonings that satisfy the constraints may be extracted for part or all of the period corresponding to the menu information, and the generation AI 10 may be used to propose each dish based on the extraction results. This makes it possible to automatically generate menu information using the generation AI 10.

[0272] [Examples of application to solution information other than menu information] In the above explanation, menu information was used as an example of solution information generated by the optimization process. However, this embodiment can also be applied to other types of solution information. Therefore, the following section will describe examples of its application to other types of solution information.

[0273] [Examples of application to personnel issues] For example, it is possible to obtain personnel information for a certain organization as solution information through optimization processing. For instance, an attribute database can be prepared to store the attributes of each person belonging to that organization (e.g., educational background, work history, skills, qualifications, age, gender), and the personnel of that organization can be obtained through optimization processing using this attribute database and the content of projects carried out by that organization. In this case, for example, if it is found that there is a shortage of people for project A, or if it is found that person B belonging to project A cannot participate for some reason (e.g., illness, injury), it can be determined that it is necessary to change the personnel of project A. In this case, the attributes of a person who can replace person B can be extracted using the attributes of person B, etc., to generate a list of candidate people, and a prompt containing this list of people, attribute information about each person in this list, and a request to propose a person to replace person B can be passed to the generating AI, response data to the prompt can be obtained from the generating AI, and the personnel of project A can be considered using the alternative information (a person to replace person B) contained in the response data. In this case, the relationship between the surrogate person obtained from the generated AI and other individuals can be determined using an attribute database, and it is possible to evaluate whether the new personnel meet the constraints.

[0274] [Example of application to travel itinerary] For example, a travel plan can be obtained as solution information through optimization processing. For instance, an attribute database can be prepared to store attributes of places to visit included in the travel plan (e.g., location, history, field, nearest means of transport), and a means of transport database can be prepared to calculate travel routes and travel times when using various means of transport (e.g., car, bus, train, airplane, ship, bicycle, walking). Using this attribute database, the means of transport database, and the main destination (e.g., Hokkaido, Kagoshima), a travel plan to that destination can be obtained through optimization processing. In this case, for example, if it is found that there is a place C (e.g., museum, restaurant, shopping center) that cannot be visited at a certain stage of the travel plan (e.g., closed, under construction, insufficient travel time, means of transport changed, or the time spent at that place is limited), it can be determined that the travel plan needs to be changed. In this case, the attributes of alternative locations to the unvisitable location C are extracted using the attributes of location C (for example, locations near location C with similar fields), a list of candidate locations is generated, and this list of locations, attribute information for each location in the list, and a prompt indicating that alternative locations to location C are being suggested are passed to the generating AI. Response data to this prompt is then obtained from the generating AI, and the travel plan can be modified using the alternative information (alternative locations to location C) contained in that response data. In this case, the travel route and travel time can be determined using the transportation database for the alternative locations obtained from the generating AI, and it is possible to evaluate whether the new travel plan satisfies the constraints.

[0275] [Example of application to a daily schedule] For example, it is possible to obtain a daily schedule as solution information through optimization processing. For example, an attribute database can be prepared to store the attributes of each element included in a daily schedule (e.g., location, content, necessary items, means of transportation), and the daily schedule can be obtained through optimization processing using this attribute database. In this case, for example, if it is found that there is an item (e.g., leisure, travel) in a certain daily schedule that is impossible to realize (e.g., rain, day off, insufficient travel time, change of means of transportation), it can be determined that the daily schedule needs to be changed. In this case, the attributes of an item that can replace the impossible item D are extracted using the attributes of item D (e.g., an item with similar content located near the location of item D), a list of candidate items is generated, and a prompt containing this list of items, attribute information for each item in this list, and a request to propose an item to replace item D is passed to the generating AI. Response data to the prompt is obtained from the generating AI, and the daily schedule can be changed using the alternative information (items that replace item D) contained in that response data. In this case, using the attribute database, it is possible to determine the travel route, travel time, required time, etc., for the alternative items obtained from the generating AI, and evaluate whether the new daily schedule satisfies the constraints.

[0276] [Examples of application to exam questions] For example, it is possible to obtain exam questions as solution information through optimization processing. For example, by preparing an attribute database that stores the attributes of each sub-question included in the exam question (e.g., content, difficulty, format such as written or multiple-choice), it is possible to obtain the exam question through optimization processing using this attribute database. For example, if the difficulty of each sub-question is known, it is possible to optimize the overall difficulty by combining each sub-question. Also, for example, if the subject area of ​​each sub-question is known, it is possible to optimize the combination of each sub-question to avoid bias in subject areas.

[0277] In this case, for example, if it is discovered that there are sub-questions in a certain exam that cannot be included (e.g., questions in areas not taught, or questions with incorrect content), it can be determined that the exam question needs to be changed. In this case, the attributes of sub-questions that can replace the unusable sub-question E are extracted using the attributes of sub-question E (e.g., questions in a similar field to sub-question E with similar content), a list of candidate sub-questions is generated, and a prompt containing this list of sub-questions, attribute information for each sub-question in the list, and a request to propose a sub-question to replace sub-question E is passed to the generating AI. Response data to this prompt is obtained from the generating AI, and the exam question can be changed using the alternative information (sub-questions that replace sub-question E) contained in that response data. In this case, the attribute database can be used to determine the field, difficulty level, etc., of the alternative questions obtained from the generating AI in relation to other sub-questions, and it is possible to evaluate whether the new exam question satisfies the constraints.

[0278] [Example of executing processing on other devices or systems] The above examples illustrate how extraction processing, control processing, etc., are performed in the information processing device 100. However, all or part of these processes may be performed on other devices. In this case, the information processing system is composed of devices that perform parts of these processes. For example, at least part of each process can be performed using various information processing devices such as servers, user-accessible devices (e.g., smartphones, tablet terminals, personal computers), servers that can be connected via a predetermined network such as the Internet, and various electronic devices. Furthermore, all or part of the information in the storage unit 130 of the information processing device 100 (e.g., each DB, each storage unit) may be stored on external devices. The contents of the DBs, etc., stored on external devices can be retrieved and used by the information processing device 100 from those external devices as needed.

[0279] Furthermore, some (or all) of the information processing system capable of executing the functions of the information processing device 100 may be provided by an application that can be provided via a predetermined network such as the Internet. This application may be, for example, SaaS (Software as a Service).

[0280] [Example configuration and effects of this embodiment] The information processing device 100 includes a control unit 120 that, when it is necessary to change part of the menu information (an example of solution information showing a solution) generated by an optimization process using constraints (for example, interval between use of ingredients, interval between use of seasonings, cooking method, upper limit of cost of a dish (or meal), upper limit of energy, lower limit of protein), passes input data including a prompt (an example of instruction information) indicating that it is necessary to generate some alternative dishes (an example of alternative information) that satisfy the constraints (step S510 (see Figures 12 and 18)), obtains response data for that input data from the generation AI 10 (step S511 (see Figures 12 and 18)), and executes control to change the menu information using the alternative dishes included in the response data (steps S512 to S514, etc. (see Figures 12 and 18)). Furthermore, the information processing method according to this embodiment is an information processing method that includes each of these processes. Furthermore, the program according to this embodiment is a program that causes a computer to execute each of these processes. In other words, the program according to this embodiment is a program that causes a computer to realize each of the functions that the information processing device 100 can execute. As mentioned above, it is also possible to have an external device other than the information processing device 100 perform the interaction with the generation AI 10. In this case, the control unit of the external device executes all or part of these processes. For example, when the control unit of the external device modifies part of the menu information generated by the optimization process using constraints, it passes input data to the generation AI 10 that includes a prompt to generate some alternative dishes that satisfy the constraints, obtains response data from the generation AI 10 to the input data, and executes control to modify the menu information using the alternative dishes included in the response data.

[0281] According to this configuration, when it becomes necessary to change the menu information generated by the information processing apparatus 100, the information processing apparatus 100 can use the generation AI 10 to change it to appropriate menu information according to the change information. That is, when it becomes necessary to change a part of the menu information generated by the optimization process so as to satisfy the constraint conditions, instead of an expert, it is possible to appropriately change the menu information by using the generation AI 10.

[0282] The menu information (an example of the solution information) can be generated using one or more elements (for example, dishes, ingredients, seasonings, cooking methods) so as to satisfy the constraint conditions. The control unit 120 extracts a candidate list of elements (for example, the available ingredient list 362, the available seasoning list 363) that can be used for generating alternative dishes (an example of alternative information) (steps S503, S702 (see FIGS. 12 and 18)), and passes input data including the candidate list and a prompt (an example of instruction information) for generating an alternative dish using the elements included in the candidate list (for example, ingredients, seasonings) to the generation AI 10 (step S510 (see FIGS. 12 and 18)). For example, as shown in step S510 (see FIG. 12), the input data is passed to the generation AI 10.

[0283] According to this configuration, since it is possible to pass input data including the candidate list and a prompt for generating an alternative dish using the elements included in the candidate list to the generation AI 10 and obtain the response data, it is possible to improve the accuracy of the alternative dishes included in the response data.

[0284] Menu information (an example of solution information) is generated using a database (dish DB310, ingredient DB320, seasoning DB330, cooking method DB340, cooking utensil DB350) that stores one or more elements (for example, dish, ingredients, seasoning, cooking method). When menu information that has been partially modified using an alternative dish (an example of alternative information) is adopted by the control unit 120 (steps S515 to S519 (see Figure 12), step S513 (see Figure 18)), if there are elements used to generate the alternative dish that are not stored in the above-mentioned database, those elements may be added to the database. For example, as shown in steps S703 and S704 (see Figure 18), the elements used to generate the alternative dish are added to the database.

[0285] With this configuration, any alternative dishes suggested by the Generating AI 10 that are not yet stored in each database can be sequentially stored and reflected in the database. This allows the database to be automatically updated using the Generating AI 10.

[0286] When the control unit 120 receives an instruction to change part of the menu information (an example of solution information) based on user operation (steps S501 to S502 (see Figure 12)), it may pass input data to the generation AI 10 that includes a prompt (an example of instruction information) indicating that it will generate an alternative dish (an example of alternative information) that satisfies the change conditions (for example, change event 61, date and time information 62, use / not use 63 (see Figure 3)) and constraint conditions set by the user operation (step S510 (see Figure 12)).

[0287] With this configuration, if it becomes necessary to change the menu information, the user can send the change information to the information processing device 100 using the user terminal 200, and the appropriate menu information changes corresponding to that change information can be quickly executed using the generating AI 10. In other words, the user operating the user terminal 200 does not need to be a nutritionist or other expert; they only need to check one or more menu information candidates presented by the information processing device 100.

[0288] If the control unit 120 detects that a part of the menu information needs to be changed during the evaluation process to evaluate whether the menu information (an example of solution information) satisfies the constraint conditions (step S701 (see Figure 18)), it may pass input data to the generation AI 10 that includes a prompt (an example of instruction information) indicating that an alternative dish (an example of alternative information) that satisfies the constraint conditions should be generated (step S510 (see Figure 18)).

[0289] With this configuration, if the information processing device 100 detects a part of the menu information that does not meet the constraints, it is possible to quickly and automatically modify that part using the generating AI 10.

[0290] In an evaluation process (step S512 (see Figures 12 and 18)) in which the partially modified menu information (solution information) using the alternative dishes (alternative information) included in the response data is evaluated to determine whether the menu information is partially modified and satisfies the constraints, the control unit 120 adopts the partially modified solution information (steps S513 and S515 (see Figure 12), steps S513 and S520 (see Figure 18)), on the other hand, if it is determined that the partially modified menu information does not satisfy the constraints, the control unit 120 identifies the part of the partially modified menu information that does not satisfy the constraints (step Steps S513 and S514 (see Figures 12 and 18) are used to pass input data to the generating AI 10, which includes a prompt (an example of instruction information) indicating that the identified part will generate new alternative information that satisfies the constraints (step S510 (see Figures 12 and 18)). Response data for the input data is then obtained from the generating AI 10 (step S511 (see Figures 12 and 18)). The menu information may then be modified using the new alternative dishes included in the response data (steps S503, S504, S510, S511, S512, S513, S515, S519, S520 (see Figure 12), steps S702 and S520 (see Figure 18)).

[0291] With this configuration, even if menu information that has been partially modified using alternative dishes does not meet the constraints, the parts that do not meet the constraints can be identified, and new alternative dishes can be obtained using the generating AI 10. This allows the menu information to be appropriately modified by repeatedly executing the process of obtaining new alternative dishes until the constraints are met.

[0292] Menu information (an example of solution information) can be generated using one or more elements (e.g., dishes, ingredients, seasonings, cooking methods) so as to satisfy the constraints. The control unit 120 extracts a first candidate list of elements that can be used to generate an alternative dish (an example of alternative information) (e.g., a list of usable ingredients 362, a list of usable seasonings 363) and a second candidate list of elements that cannot be used to generate an alternative dish (steps S503, S702 (see Figures 12, 18)), and may pass input data to the generation AI 10 that includes the first candidate list, the second candidate list, and a prompt (an example of instruction information) indicating that an alternative dish should be generated using elements included in the first candidate list (e.g., ingredients, seasonings) but without using the elements included in the second candidate list (step S510 (see Figures 12, 18)).

[0293] With this configuration, input data including a first candidate list, a second candidate list, and a prompt to generate an alternative dish using elements from the first candidate list but without using elements from the second candidate list can be passed to the generation AI 10, and response data can be obtained, thereby further improving the accuracy of the alternative dishes included in the response data. In other words, it is possible to prevent the generation AI 10 from using unusable elements in advance. This prevents the alternative dish generation process from being repeated many times, and menu information that satisfies the constraints can be generated quickly. In addition, by preventing the repetition of the alternative dish generation process, computing resources can be used efficiently, and computational efficiency can be improved. In other words, the computational processing of the information processing device 100 and the generation AI 10 can be reduced, and the power consumption of the information processing device 100 and the generation AI 10 can be reduced.

[0294] The control unit 120 may pass input data to the generation AI 10 that includes a prompt (an example of instruction information) indicating that it will generate alternative dishes (for example, alternative dishes whose similarity to the target dish meets a criterion) in which elements that need to be changed (for example, fish instead of meat) and other elements other than those that need to be changed (for example, energy 803, protein 804, grilled 808) are similar to those of the target dish (step S510 (see Figures 12 and 18)). Note that alternative dishes whose similarity to the target dish meets a criterion mean, for example, dishes whose similarity to the target dish is higher than a criterion (for example, a threshold).

[0295] With this configuration, it is possible to pass input data to the generating AI 10 that includes the elements that need to be changed for the target dish, and a prompt to generate an alternative dish in which the elements other than those that need to be changed are comparable to the target dish, and to obtain the response data, thereby easily generating an alternative dish that is comparable to the target dish. For example, even in a situation where some of the ingredients for the target dish are unavailable, it is possible to easily generate an alternative dish that does not use the unavailable ingredients and is comparable to the target dish, thereby quickly generating menu information that satisfies the constraints.

[0296] Menu information (an example of solution information) is generated using a database (e.g., Dish DB310, Ingredient DB320, Seasoning DB330, Cooking Method DB340, Cooking Utensil DB350, Dish Features DB800, Alternative Relationship DB840) that stores one or more elements (e.g., dish, ingredients, seasoning, cooking method). When the control unit 120 modifies part of the menu information, it may extract information about one or more dishes related to alternative dishes from the database (e.g., Dish Features DB800, Alternative Relationship DB840) based on predetermined conditions, and pass the extracted information about one or more dishes, along with input data including a prompt (an example of instruction information) indicating that an alternative dish should be generated, to the generating AI.

[0297] For example, the information processing device 100 includes a dish feature DB 800 that stores one or more elements (e.g., dish ID 801, dish name 802, energy 803, protein 804, meat 805, fish 806, fried 807, grilled 808) as vector data. The control unit 120 extracts one or more dishes similar to the target dish (or one or more dishes similar to a dish in which some elements of the target dish have been changed) (for example, one or more dishes whose similarity to the target dish (or a dish in which some elements have been changed) meets the criteria) from the dish feature DB 800 based on the vector data of some dishes (target dishes) of the menu information to be changed. The control unit 120 may also pass the vector data of the extracted one or more dishes and input data including a prompt (an example of instruction information) indicating that an alternative dish equivalent to the target dish (for example, an alternative dish whose similarity to the target dish meets the criteria) should be generated to the generation AI 10 (step S510 (see Figures 12 and 18)). For example, input data containing the information shown in Figure 20(C) is passed to the generating AI 10.

[0298] With this configuration, input data including a prompt that includes one or more dishes similar to the target dish (or one or more dishes similar to a dish in which some elements of the target dish have been changed) extracted based on the vector data of the target dish to be changed, and a statement indicating that an alternative dish comparable to the target dish should be generated, can be passed to the generating AI 10, and the response data can be obtained, making it possible to easily generate a highly accurate alternative dish comparable to the target dish.

[0299] Furthermore, for example, the information processing device 100 includes an alternative relationship DB 840 that stores the alternative relationships of multiple dishes. The control unit 120 uses the alternative relationship DB 840 to extract one or more dishes that have had an alternative relationship with some of the dishes (target dishes) in the menu information to be changed. The control unit 120 may also pass input data to the generation AI 10 that includes vector data of the extracted one or more dishes and a prompt (an example of instruction information) indicating that an alternative dish that is comparable to the target dish (for example, an alternative dish whose similarity to the target dish meets the criteria) should be generated (step S510 (see Figures 12 and 18)). For example, input data containing the information shown in Figure 21(B) is passed to the generation AI 10.

[0300] With this configuration, input data including one or more dishes that have been substituted for the target dish to be changed, and a prompt indicating that the AI ​​should generate a substitute dish that is comparable to the target dish, can be passed to the generating AI 10, and the response data can be obtained. As a result, it is possible to easily generate a highly accurate substitute dish that is comparable to the target dish.

[0301] The processing steps shown in this embodiment are merely examples of how to implement this embodiment. The order of some of the processing steps may be changed, some of the processing steps may be omitted, or other processing steps may be added, as long as the embodiment is feasible.

[0302] Furthermore, each process shown in this embodiment is executed based on a program that causes a computer to execute each processing procedure. For this reason, this embodiment can also be understood as an embodiment of a program that realizes the function of executing each of these processes, and a recording medium that stores that program. For example, an update process to add a new function to an information processing device can cause that program to be stored in the storage device of the information processing device. This makes it possible to have the updated information processing device perform each of the processes shown in this embodiment.

[0303] Although embodiments of the present invention have been described above, these embodiments only represent a part of the application examples of the present invention, and are not intended to limit the technical scope of the present invention to the specific configurations of the above embodiments.

[0304] For example, it is also possible to adopt the following configurations (configuration examples 1 to 21). [Configuration Example 1] The system includes a control unit that, when modifying a portion of the first solution information, which is solution information that shows a solution optimized to satisfy the constraints, passes input data containing instruction information to the generating AI to generate alternative information for the portion that satisfies the constraints, obtains response data for the input data from the generating AI, and performs control to modify the first solution information using the alternative information contained in the response data. The control unit, In an evaluation process that evaluates whether the second solution information, which is a modified version of the first solution information using alternative information included in the response data, satisfies the constraints, if it is determined that the second solution information satisfies the constraints, the second solution information is adopted. On the other hand, if it is determined that the second solution information does not satisfy the constraints, input data containing instruction information to generate new alternative information that satisfies the constraints is passed to the generating AI, response data for the input data is obtained from the generating AI, and the first solution information is modified using the new alternative information contained in the response data. Information processing device. [Configuration Example 2] If the control unit determines in the evaluation process that the second solution information does not satisfy the constraints, it will identify the portion of the second solution information that does not satisfy the constraints and pass input data to the generation AI that includes instructions to generate new alternative information in which the identified portion satisfies the constraints. The information processing device described in Configuration Example 1. [Configuration Example 3] The first solution information and the second solution information can be generated using one or more elements so as to satisfy the constraints, The control unit sets usage conditions for the elements related to the generation of alternative information for a portion of the first solution information, passes input data including the usage conditions and instruction information to generate the alternative information using the elements according to the usage conditions to the generation AI, obtains response data for the input data from the generation AI, and modifies the first solution information using the alternative information contained in the response data. An information processing device as described in Configuration Example 1 or 2. [Configuration Example 4] The aforementioned usage conditions are set using a candidate list of elements that can be used to generate alternative information for a portion of the first solution information. The control unit extracts the candidate list and passes input data, including the candidate list and instruction information indicating that the alternative information should be generated using the elements included in the candidate list, to the generation AI. The information processing device described in Configuration Example 3. [Configuration Example 5] The first solution information is generated using a database that stores the one or more elements, If the second solution information is adopted, the control unit will add any elements used to generate the alternative information related to the second solution information that are not stored in the database to the database. The information processing device described in Configuration Example 4. [Configuration Example 6] When the control unit receives an instruction to modify a portion of the first solution information based on user operation, it passes input data to the generation AI that includes instruction information to generate alternative information that satisfies the modification conditions set by the user operation and the constraint conditions. An information processing device as described in Configuration Example 1 or 2. [Configuration Example 7] The aforementioned usage conditions are set using a first candidate list of elements that can be used to generate alternative information for a portion of the first solution information, and a second candidate list of elements that cannot be used to generate said alternative information. The control unit extracts the first candidate list and the second candidate list, and passes input data to the generation AI that includes the first candidate list, the second candidate list, and instruction information to generate the alternative information using elements from the first candidate list but without using elements from the second candidate list. The information processing device described in Configuration Example 3. [Configuration Example 8] The aforementioned first solution information is generated using a database that stores one or more elements. The control unit extracts elements from the database that relate to a portion of the alternative information of the first solution information, and passes input data including the extracted elements and instruction information to generate the alternative information that satisfies the constraints to the generation AI. An information processing device as described in Configuration Example 1 or 2. [Configuration Example 9] When a computer modifies a portion of the first solution information, which is solution information that shows a solution optimized to satisfy the constraints, it provides input data to a generating AI that includes instruction information to generate alternative information for the portion that satisfies the constraints, obtains response data for the input data from the generating AI, and performs control to modify the first solution information using the alternative information contained in the response data. In the aforementioned control process, In an evaluation process that evaluates whether the second solution information, which is a modified version of the first solution information using alternative information included in the response data, satisfies the constraints, if it is determined that the second solution information satisfies the constraints, the second solution information is adopted. On the other hand, if it is determined that the second solution information does not satisfy the constraints, input data containing instruction information to generate new alternative information that satisfies the constraints is passed to the generating AI, response data for the input data is obtained from the generating AI, and the first solution information is modified using the new alternative information contained in the response data. Information processing methods. [Configuration Example 10] A program that causes a computer to execute a control procedure to modify a portion of first solution information, which is solution information that shows a solution optimized to satisfy constraints, by passing input data including instruction information to generate alternative information that satisfies the constraints to a generating AI, obtaining response data for the input data from the generating AI, and using the alternative information contained in the response data to perform control to modify the first solution information, In the control procedure described above, In an evaluation process that evaluates whether the second solution information, which is a modified version of the first solution information using alternative information included in the response data, satisfies the constraints, if it is determined that the second solution information satisfies the constraints, the second solution information is adopted. On the other hand, if it is determined that the second solution information does not satisfy the constraints, input data containing instruction information to generate new alternative information that satisfies the constraints is passed to the generating AI, response data for the input data is obtained from the generating AI, and the first solution information is modified using the new alternative information contained in the response data. program. [Explanation of symbols]

[0305] 10 Generation AI, 100 Information Processing Unit, 110, 210 Communication Unit, 120, 220 Control Unit, 121 Acquisition Unit, 122 Generation Unit, 123 Update Unit, 124 Record Control Unit, 125 Provision Unit, 130, 230 Storage Unit, 300 Menu Information DB, 310 Cooking DB, 320 Ingredient DB, 330 Seasoning DB, 340 Cooking Method DB, 350 Cooking Utensil DB, 360 List Holding Unit, 370 Judgment Result Holding Unit, 200 User Terminal, 240 UI Unit, 241 Reception Unit, 242 Output Unit, NW1 Network

Claims

1. An information processing device comprising a control unit that, when modifying a portion of first solution information which is solution information showing an optimized solution using one or more elements to satisfy constraints, sets usage conditions for the elements for generating alternative information for a portion of the first solution information, passes input data including the usage conditions and instruction information to generate the alternative information using the elements according to the usage conditions to a generating AI, obtains response data for the input data from the generating AI, and modifies the first solution information using the alternative information contained in the response data.

2. An information processing device capable of handling a feature database that manages the characteristics of the constituent elements included in the first solution information, which is solution information that shows a solution optimized to satisfy the constraints, for each attribute, An information processing device comprising a control unit that, when modifying a portion of the first solution information, extracts similar alternative information from the feature database that is similar to the characteristics of the portion of information that satisfies the constraints, passes input data including the characteristics of each attribute of the similar alternative information and instruction information to generate the portion of alternative information to a generating AI, obtains response data for the input data from the generating AI, and modifies the first solution information using the alternative information contained in the response data.

3. An information processing device capable of handling a database that manages the relationship between alternative information, which is a part of the original information of a first solution information that represents a solution optimized to satisfy constraints, and the original information, An information processing device comprising: when modifying a portion of the first solution information, extracting other alternative information from the database that has an alternative relationship with the portion of information satisfying the constraints, passing input data including the other alternative information and instruction information to generate the portion of alternative information to a generating AI, obtaining response data for the input data from the generating AI, and modifying the first solution information using the alternative information contained in the response data.

4. The aforementioned usage conditions are set using a candidate list of elements that can be used to generate alternative information for a portion of the first solution information. The control unit extracts the candidate list and passes input data, including the candidate list and instruction information to generate the alternative information using the elements included in the candidate list, to the generation AI. The information processing apparatus according to claim 1.

5. The first solution information is generated using a database that stores the one or more elements, In an evaluation process in which the control unit evaluates whether the second solution information, which is a modified version of the first solution information using the alternative information contained in the response data, satisfies the constraint conditions, if it is determined that the second solution information satisfies the constraint conditions, the control unit adopts the second solution information, and if there are elements used to generate the alternative information related to the second solution information that are not stored in the database, it adds those elements to the database. The information processing apparatus according to claim 1 or 4.

6. When the control unit receives an instruction to modify a part of the first solution information based on user operation, it passes input data to the generation AI that includes instruction information to generate alternative information that satisfies the modification conditions set by the user operation and the constraint conditions. An information processing device according to any one of claims 1 to 3.

7. The usage conditions are set using a first candidate list of elements that can be used to generate alternative information for a portion of the first solution information, and a second candidate list of elements that cannot be used to generate the alternative information. The control unit extracts the first candidate list and the second candidate list, and passes input data to the generation AI that includes the first candidate list, the second candidate list, and instruction information to generate the alternative information using elements included in the first candidate list but without using elements included in the second candidate list. The information processing apparatus according to claim 1 or 4.

8. The first solution information is generated using a database that stores one or more elements. The control unit extracts elements related to a portion of the alternative information of the first solution information from the database, and passes input data including the extracted elements and instruction information to generate the alternative information that satisfies the constraints to the generation AI. The information processing apparatus according to claim 1 or 4.

9. An information processing method that includes a control process to modify a portion of first solution information, which is solution information showing an optimized solution using one or more elements to satisfy constraints, by setting usage conditions for the elements related to generating alternative information for a portion of the first solution information, passing input data including the usage conditions and instruction information to generate the alternative information using the elements according to the usage conditions to a generating AI, obtaining response data for the input data from the generating AI, and modifying the first solution information using the alternative information contained in the response data.

10. An information processing method executed by a computer capable of handling a feature database that manages the characteristics of the constituent elements included in the first solution information, which is solution information that shows a solution optimized to satisfy the constraints, for each attribute, An information processing method that includes, when modifying a portion of the first solution information, extracts similar alternative information from the feature database that is similar to the characteristics of the portion of information that satisfies the constraints, passes input data including the characteristics of each attribute of the similar alternative information and instruction information to generate the portion of alternative information to a generating AI, obtains response data for the input data from the generating AI, and modifies the first solution information using the alternative information contained in the response data.

11. An information processing method executed by a computer capable of handling a database that manages the relationship between the original information and alternative information obtained by substituting a portion of the original information of the first solution information, which is solution information that shows a solution optimized to satisfy the constraints, An information processing method that includes, when modifying a portion of the first solution information, extracts other alternative information from the database that has a substitute relationship with the portion of information satisfying the constraints, passes input data including the other alternative information and instruction information to generate the portion of alternative information to a generating AI, obtains response data for the input data from the generating AI, and modifies the first solution information using the alternative information contained in the response data.

12. A program that, when modifying a portion of first solution information which is solution information showing an optimized solution using one or more elements to satisfy constraints, sets usage conditions for the elements related to generating alternative information for a portion of the first solution information, passes input data including the usage conditions and instruction information to generate the alternative information using the elements according to the usage conditions to a generating AI, obtains response data for the input data from the generating AI, and causes a computer to execute a control procedure to modify the first solution information using the alternative information contained in the response data.

13. A program to be executed on a computer capable of handling a feature database that manages the characteristics of the constituent elements included in the first solution information, which is solution information that shows a solution optimized to satisfy the constraints, for each attribute, A program that, when modifying a portion of the first solution information, extracts similar alternative information from the feature database that is similar to the characteristics of the portion of information that satisfies the constraints, passes input data including the characteristics of each attribute of the similar alternative information and instruction information to generate the portion of alternative information to a generating AI, obtains response data for the input data from the generating AI, and causes a computer to execute a control procedure to modify the first solution information using the alternative information contained in the response data.

14. A program to be executed on a computer capable of handling a database that manages the relationship between the original information and alternative information which is obtained by substituting a portion of the original information of the first solution information, which is solution information that shows an optimized solution that satisfies the constraints, A program that, when modifying a portion of the first solution information, extracts other alternative information from the database that has a substitute relationship with the portion of information satisfying the constraints, passes input data including the other alternative information and instruction information to generate the alternative information to the generating AI, obtains response data for the input data from the generating AI, and causes the computer to execute a control procedure to modify the first solution information using the alternative information contained in the response data.