A method includes predicting availability of a plurality of constituents for one or more future epochs, obtaining one or more metrics for each of a plurality of existing work products, each of the plurality of existing work products using at least one constituent, and generating at least one work product for each of the one or more future epochs based in part on the predicted availability of the constituents and the one or more metrics for the existing work products. The metrics for the existing work products may include quality metrics and novelty metrics.
|
18. An apparatus comprising:
a memory; and
a processing device operatively coupled to the memory and configured to:
predict availability of a plurality of constituents for one or more future epochs, wherein predicting the availability of the plurality of constituents comprises:
querying a knowledge database to obtain information associated with current availability of respective ones of the plurality of constituents for a current epoch and to receive information associated with historical availability of respective ones of the plurality of constituents for one or more previous epochs; and
creating probability distributions of future availability of respective ones of the plurality of constituents for the one or more future epochs utilizing one or more constraints associated with supply chains of respective ones of the plurality of constituents and the received information associated with current and historical availability of respective ones of the plurality of constituents;
obtain one or more metrics for each of a plurality of existing work products, each of the plurality of existing work products using at least one of the plurality of constituents, wherein obtaining the one or more metrics comprises:
querying the knowledge database to obtain information associated with the plurality of existing work products;
utilizing the obtained information associated with the plurality of existing work products to determine, for respective ones of the existing work products, one or more novelty metrics and one or more quality metrics, the one or more novelty metrics comprising temporal novelty metrics associated with respective constituents, the novelty metric for a given constituent for a given future epoch being based on selection of the given constituent for one or more previous epochs; and
generate at least one work product for each of the one or more future epochs based in part on the predicted availability of the constituents and the one or more metrics for the existing work products, wherein generating the at least one work product comprises:
building an optimization model comprising two or more constraints, the two or more constraints comprising an availability-based constraint determined utilizing the predicted availability of the constituents and a creativity-based constraint determined using a computational creativity model that utilizes the quality metrics and novelty metrics associated with the existing work products to compute a creativity metric for respective ones of a plurality of candidate work products different from the existing work products in the knowledge database; and
utilizing the optimization model to select the at least one new work product for each of the one or more future epochs from the plurality of candidate work products;
wherein the creativity-based constraint is a function of:
amounts of one or more constituents utilized in a given candidate work product;
whether the given candidate work product is selected for a given epoch; and
whether the given candidate work product is selected for two or more consecutive ones of the future epochs; and
wherein the optimization model comprises an objective function that takes into account a transfer cost associated with producing the given candidate work product for the given epoch, the transfer cost being based at least in part on whether the given work product was selected for an epoch preceding the given epoch.
1. A method comprising:
predicting availability of a plurality of constituents for one or more future epochs, wherein predicting the availability of the plurality of constituents comprises:
querying a knowledge database to obtain information associated with current availability of respective ones of the plurality of constituents for a current epoch and to receive information associated with historical availability of respective ones of the plurality of constituents for one or more previous epochs; and
creating probability distributions of future availability of respective ones of the plurality of constituents for the one or more future epochs utilizing one or more constraints associated with supply chains of respective ones of the plurality of constituents and the received information associated with current and historical availability of respective ones of the plurality of constituents;
obtaining one or more metrics for each of a plurality of existing work products, each of the plurality of existing work products using at least one of the plurality of constituents, wherein obtaining the one or more metrics comprises:
querying the knowledge database to obtain information associated with the plurality of existing work products;
utilizing the obtained information associated with the plurality of existing work products to determine, for respective ones of the existing work products, one or more novelty metrics and one or more quality metrics, the one or more novelty metrics comprising temporal novelty metrics associated with respective constituents, the novelty metric for a given constituent for a given future epoch being based on selection of the given constituent for one or more previous epochs; and
generating at least one work product for each of the one or more future epochs based in part on the predicted availability of the constituents and the one or more metrics for the existing work products, wherein generating the at least one work product comprises:
building an optimization model comprising two or more constraints, the two or more constraints comprising an availability-based constraint determined utilizing the predicted availability of the constituents and a creativity-based constraint determined using a computational creativity model that utilizes the quality metrics and novelty metrics associated with the existing work products to compute a creativity metric for respective ones of a plurality of candidate work products different from the existing work products in the knowledge database; and
utilizing the optimization model to select the at least one work product for each of the one or more future epochs from the plurality of candidate work products;
wherein the method is performed by at least one processing device comprising a processor coupled to a memory;
wherein the creativity-based constraint is a function of:
amounts of one or more constituents utilized in a given candidate work product;
whether the given candidate work product is selected for a given epoch; and
whether the given candidate work product is selected for two or more consecutive ones of the future epochs; and
wherein the optimization model comprises an objective function that takes into account a transfer cost associated with producing the given candidate work product for the given epoch, the transfer cost being based at least in part on whether the given work product was selected for an epoch preceding the given epoch.
16. An article of manufacture comprising a computer readable storage medium for storing computer readable program code which, when executed, causes a computer to:
predict availability of a plurality of constituents for one or more future epochs, wherein predicting the availability of the plurality of constituents comprises:
querying a knowledge database to obtain information associated with current availability of respective ones of the plurality of constituents for a current epoch and to receive information associated with historical availability of respective ones of the plurality of constituents for one or more previous epochs; and
creating probability distributions of future availability of respective ones of the plurality of constituents for the one or more future epochs utilizing one or more constraints associated with supply chains of respective ones of the plurality of constituents and the received information associated with current and historical availability of respective ones of the plurality of constituents;
obtain one or more metrics for each of a plurality of existing work products, each of the plurality of existing work products using at least one of the plurality of constituents, wherein obtaining the one or more metrics comprises:
querying the knowledge database to obtain information associated with the plurality of existing work products;
utilizing the obtained information associated with the plurality of existing work products to determine, for respective ones of the existing work products, one or more novelty metrics and one or more quality metrics, the one or more novelty metrics comprising temporal novelty metrics associated with respective constituents, the novelty metric for a given constituent for a given future epoch being based on selection of the given constituent for one or more previous epochs; and
generate at least one work product for each of the one or more future epochs based in part on the predicted availability of the constituents and the one or more metrics for the existing work products, wherein generating the at least one work product comprises:
building an optimization model comprising two or more constraints, the two or more constraints comprising an availability-based constraint determined utilizing the predicted availability of the constituents and a creativity-based constraint determined using a computational creativity model that utilizes the quality metrics and novelty metrics associated with the existing work products to compute a creativity metric for respective ones of a plurality of candidate work products different from the existing work products in the knowledge database; and
utilizing the optimization model to select the at least one new work product for each of the one or more future epochs from the plurality of candidate work products;
wherein the creativity-based constraint is a function of:
amounts of one or more constituents utilized in a given candidate work product;
whether the given candidate work product is selected for a given epoch; and
whether the given candidate work product is selected for two or more consecutive ones of the future epochs; and
wherein the optimization model comprises an objective function that takes into account a transfer cost associated with producing the given candidate work product for the given epoch, the transfer cost being based at least in part on whether the given work product was selected for an epoch preceding the given epoch.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
the optimization model comprising a sequential decision problem for two or more future epochs;
utilizing the optimization model to generate the at least one work product for each of the one or more future epochs comprises utilizing a backward recursion over the two or more future epochs to solve the optimization model; and
the optimization model is formulated to maximize total expected profits over time subject to the two or more constraints.
12. The method of
13. The method of
14. The method of
15. The method of
17. The article of manufacture of
19. The apparatus of
20. The method of
|
The present invention relates to computational creativity, and more specifically, to generation of work products. Various types of work products are made using a set of constituents. As an example, a recipe is a type of work product that utilizes a set of ingredients to make a particular food dish. A menu is a type of work product that includes a set of food dishes. Businesses and other entities often have a set of work products which are offered for sale or used within an entity. Entities may desire to use new and/or different work products over time. For example, a restaurant may periodically alter a set menu.
According to one embodiment of the present invention, a method comprises predicting availability of a plurality of constituents for one or more future epochs, obtaining one or more metrics for each of a plurality of existing work products, each of the plurality of existing work products using at least one constituent, and generating at least one work product for each of the one or more future epochs based in part on the predicted availability of the constituents and the one or more metrics for the existing work products. The predicting, obtaining and generating, are performed by at least one processing device comprising a processor coupled to a memory.
According to another embodiment of the invention, an article of manufacture comprises a computer readable storage medium for storing computer readable program code. The computer readable program code, when executed, causes a computer to predict availability of a plurality of constituents for one or more future epochs, obtain one or more metrics for each of a plurality of existing work products, each of the plurality of existing work products using at least one constituent, and generate at least one work product for each of the one or more future epochs based in part on the predicted availability of the constituents and the one or more metrics for the existing work products.
According to another embodiment of the invention, an apparatus comprises a memory and a processor device operatively coupled to the memory. The processor device is configured to implement a forecasting module configured to predict availability of a plurality of constituents for one or more future epochs, an assessment module configured to obtain one or more metrics for each of a plurality of existing work products, each of the plurality of existing work products using at least one constituent, and a generation module configured to generate at least one work product for each of the one or more future epochs based in part on the predicted availability of the constituents and the one or more metrics for the existing work products.
These and other embodiments of the invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.
Illustrative embodiments of the invention may be described herein in the context of illustrative methods, systems and devices for work product generation. However, it is to be understood that embodiments of the invention are not limited to the illustrative methods, systems and devices described but instead are more broadly applicable to other suitable methods, systems and devices.
As used herein, the term “work product” is used to refer to a material or abstract object. Work products include manufactured goods such as electronic circuits, food products, and pharmaceuticals, as well as culinary recipes, menus, complex travel itineraries, financial portfolios, catalogs, etc. Some work products are also work plans, in that they include a process that realizes another work product. For example, a culinary recipe is both a work product and a work plan for creating another work product, namely, a food dish. In addition, one work product may comprise other work products. For example, a menu is an example of a work product which may include other work products such as food dishes or recipes.
As used herein, the term “constituent” is used to refer to components used or to be used in forming a work product. As an example, a menu includes one or more food dishes, each of which uses one or more ingredients. In this example, the ingredients are examples of constituents. The food dishes themselves may also be considered examples of constituents of the menu. As another example, a complex travel itinerary includes a number of events, such as visiting historical sites, parks, museums, restaurants, etc. Each event may be considered a constituent of the travel itinerary. As a further example, a fashion catalog may include various clothing items and outfits. Each outfit or clothing item is made from one or more raw materials. These raw materials are examples of constituents. Each outfit or clothing item in the fashion catalog may also be considered a constituent of the fashion catalog. Numerous other examples are possible.
Embodiments of the invention provide systems, devices and methods which allow for generation of work products. In some embodiments, work products are generated based on the predicted availability of constituents used or to be used in forming the generated work product as well as one or more metrics relating to one or more existing work products.
Creative establishments aim to prepare creative products for their customers. A creative work product may be a set of existing work products or constituents that, when considered together, are considered to be creative by customers. Computational creativity algorithms may be used to generate novel work products. As an example, consider a restaurant that seeks to prepare a creative menu. A creative menu may include individual food dishes which are considered to be novel and/or surprising, as well as novel and/or surprising combinations of food dishes. As another example, an apparel store may seek to offer a creative ensemble of clothing items.
In some embodiments, creative products include transformations and combinations of a potentially large and diverse set of raw materials or constituents. As an example, a restaurant may wish to use Italian sauces together with Chinese herbs and spices to create new and exciting food dishes. A restaurant may also seek to use new or surprising combinations of existing food dishes.
In order to effectively design and plan creative products, an establishment such as a restaurant or apparel store should consider the flow of materials in their respective supply chains, so as to manage the risk of potential disruptions in raw material availability. As an example, weather events may affect the availability of food ingredients. If a weather event affects the availability of tomatoes but does not affect the availability of avocados, then a restaurant may wish to prepare and serve creative alternatives to guacamole which use avocados.
Establishments may also wish to couple inventory stocking with work product offerings in generating creative products. As an example, a restaurant may seek to take into account predicted availability of ingredients in order to generate menus each day, week, month, etc. which are considered to be creative. Thus, the restaurant can couple inventory stocking with menu generation so as to have creative dishes with reduced supply chain risk.
As shown in
The knowledge database 108 stores information relating to existing work products and constituent availability. This information may include lists of constituents used in forming existing work products, statistical analysis of clusters of existing work products and constituents, user evaluation and feedback information for existing work products, supply chain configurations, etc.
Forecasting module 102 is configured to predict availability of constituents for future epochs. In some embodiments, the forecasting module 102 uses information pertaining to a supply chain and amounts of ordered constituents to predict the availability of constituents at an establishment. Such information may be obtained at least in part from knowledge database 108. Stochastic forecasting techniques based on a time series regression model may be used in some embodiments to predict availability of constituents.
Assessment module 104 is configured to obtain metrics for existing work products. The assessment module 104 in some embodiments builds models for assessing creativity of work products using information obtained from knowledge database 108. Some embodiments use computational creativity models that combine metrics for measuring novelty with metrics for measuring human hedonic perception to evaluate or otherwise assess work products.
Generation module 106 is configured to generate at least one work product for each of one or more future epochs based on information received from the forecasting module 102 relating to predicted availability of constituents and information received from the assessment module 104 relating to metrics for existing work products. In some embodiments, the generation module 106 formulates and solves an optimization model to generate work products that increase a desired characteristic subject to certain constraints, e.g., maximize profits under creativity constraints. The generation module 106 may generate a single work product for each future epoch, or may generate a set of two or more work products for each epoch. The set of generated work products for each epoch may be provided to a user for selection.
Forecasting module 102, as discussed above, is configured to predict availability of constituents for future epochs. In some embodiments, forecasting module 102 has or receives information on the current availability of constituents for a current epoch as well as information on the historical availability of constituents for one or more previous epochs. The forecasting module 102 may also have or receive information relating to the amounts of constituents ordered for a next epoch. Using such information, the forecasting module 102 creates a probability distribution for each constituent for each of one or more future epochs. In some embodiments, the forecasting module 102 takes into account other information, such as supply chain configurations and other constraints, in addition to or in place of information regarding the current and historical availability of constituents.
Examples of other constraints which may be used by the forecasting module 102 in predicting the availability of constituents include, by way of example, delivery times for constituents, seasonality effects relating to constituents, climate and weather considerations, infestations, outbreaks, predictions regarding political instability, human error, competitor strategies, etc. These constraints may be analyzed in conjunction with the supply chain configuration. For example, a drought may affect the amounts of constituents available from producers 202 in the supply chain shown in
Assessment module 104, as described above, obtains metrics for existing work products. In some embodiments, these metrics are used to measure the creativity, denoted h(□), of a work product. The creativity h(□) may be determined as a function of quality and novelty metrics. Quality of a work product may be determined using human hedonic perception information, such as the use of a human hedonic perception scoring function learned from historical data. Such historical data may be obtained from knowledge database 108.
The novelty of a work product may be determined using a surprise metric. As an example, the generation module 106 may be used for sequential creative menu generation. When an establishment such as a restaurant generates creative menus for several epochs, novelty metrics should evolve over time. If a creative menu in one epoch uses a unique or surprising combination of constituents or dishes, this should be taken into account for future assessments by the assessment module 104. A creative food pairing which is novel for one epoch may be less novel in a next epoch and subsequent epochs. Some embodiments use a temporal version of Bayesian surprise for determining novelty metrics.
Bayesian surprise involves calculating posterior probability based on prior probability. Let M be a set of existing work products known to an observer. Let M∈M be a work product in the set of known existing work products, and let D be a new work product being observed not in the set M. The Bayesian surprise can be calculated using the following equation:
where p denotes a probability distribution function.
Generation module 106, as described above, is configured to generate work products for future epochs. In some embodiments, this includes building an optimization model. The optimization model may be a sequential decision problem for two or more future epochs. Various techniques may be used to solve the optimization model, including backward recursion techniques. The optimization model may be formulated to maximize total expected profits over time subject to various constraints.
Such constraints include, by way of example, availability-based constraints determined using predicted availability of constituents and creativity-based constraints determined using work product metrics for existing work products and generated work products. As an example, the creativity-based constraints may specify that the creativity of a generated work product exceed a user-defined threshold and the availability-based constraints may specify that the amounts of constituents used by the generated work product in a given epoch cannot exceed predicted availability of the constituents for the given epoch.
The generation module 106, in addition to generating a work product, may also generate an inventory order for future epochs. The inventory orders specify respective amounts of constituents to order in a given epoch to satisfy the generated work product associated with the given epoch.
An example of an optimization model used in some embodiments is described below in the context of menu generation. This optimization model, however, may be modified for use in other contexts, such as itinerary generation, catalog generation, etc. In the optimization model described below, i∈{1, . . . , M} denotes a dish index, j∈{1, . . . , N} denotes an ingredient index and t∈{1, . . . , T} denotes an epoch index. More generally, i may denote a work product index and j may denote a constituent index. The optimization model uses a number of decision variables, including xijt, yit, and zit. xijt∈{0,1}∀i,j,t indicates the amount of ingredient j in dish i at epoch t. yit∈{0,1}∀i,t indicates whether dish i is in the selected menu at epoch t. zit∈{0,1}∀i,t indicates whether dish i is selected in menus in both epochs t and t−1.
Ajt and Cjt denote the amount of ingredient j available at epoch t and the amount of ingredient j consumed in the menu at epoch t, respectively. Ojt denotes the amount of ingredient j ordered at epoch t. In some cases, the amount of an ingredient ordered in one epoch may affect the availability of that ingredient for subsequent epochs. LDt and UDt denote lower and upper limits on the number of dishes in the menu at epoch t, respectively.
The optimization model may make use of a number of functions. For example, the revenue from a menu at epoch t is represented as ƒRt(xijt,yit ∀i,j). The ordering cost at epoch t is represented as ƒOt (Ojt ∀j). The revenue function ƒRt and ordering cost function ƒOt may be stochastic functions. The inventory and operating cost at epoch t is represented as ƒIt (Ajt,Cjt ∀j). The inventory and operating cost function ƒIt may including holding costs, maintenance costs, etc. The cost of transferring systems if a dish i was not prepared in the previous epoch is represented as ƒTt (zit ∀i). In some instances, using a new dish in a menu requires new equipment or training of staff. The transferring cost function ƒTt represents such costs.
The creativity metric is represented as h(xijt,yit ∀i,j,t). The creativity metric measures the creativity of menus over time. In some embodiments a lower limit on creativity is denoted LCreativity. Certain functions in the optimization model may be based in part on the creativity metric. As an example, the revenue function ƒRt may in some embodiments be a function of the creativity metric h(xijt,yit ∀i,j,t). A more creative menu is likely to increase sales for an establishment such as a restaurant. Creativity may in some cases also increase costs. For example, the creativity metric may affect the transferring function ƒTt.
An objective function is used in some embodiments for solving the optimization model. The objective function, for example, may seek to maximize total expected profits subject to various constraints. Such constraints include, by way of example, creativity restrictions, upper and lower limits on the total number of dishes in the menu, specifying that consumption must be less than predicted availability, etc. as described above. The objective function may make use of a number of stochastic functions, and take into account the various functions described above.
An example of an objective function which may be used in some embodiments is the following
The constraints for xijt and yit specify that dishes are in the menu when they contain at least one ingredient. The constraint zit specifies whether the dish was created in the previous epoch. The constraint for upper and lower limits on the total number of dishes is represented as
represents total consumption of an ingredient as the sum of ingredient amounts used in the menu, and is constrained in that consumption must be less than predicted availability. ƒCt is a total cost computation, and is the sum of ƒOt, ƒIt and ƒTt, e.g.,
ƒCt(Ajt,Cjt,Ojt,zit,∀i,j)=[ƒOt(Ojt∀j)+ƒIt(Ajt−Cjt∀j)+ƒTt(zit∀i)]∀t.
Ajt+1 in the objective function above represents availability in a next epoch, and is determined according to
Ajt+1=gj(Ajt−Cjt+Ojt)∀j,t.
Ajt+1 may be a random variable, and gj is stochastic function. h(xijt,yit ∀i,j,t)≥LCreativity represents the creativity restriction for the optimization model. As described above, the revenue function ƒRt depends on creativity metric h(xijt,yit ∀i,j,t).
In some embodiments, the optimization model combines inventory ordering or stocking with work product generation. As an example, the decision maker at a restaurant who creates menus may also make inventory ordering decisions. Thus, it is possible to couple these decisions resulting in efficiencies in menu generation and inventory ordering. The objective function described above may be adjusted so as to take into account amounts of raw materials ordered or to be ordered as a decision. Using the same constraints described above, the resulting objective function is
The following scenarios are presented to illustrate work product generation using system 100 in the context of menu generation, itinerary generation and catalog generation. It is to be appreciated, however, that embodiments are not limited solely to these contexts or scenarios. In addition, the scenarios below are simplified for clarity of illustration. For example, each scenario considers only a single constituent subject to variations in availability. In many other scenarios, however, a plurality of constituents are subject to variations in availability. Each scenario also considers only a single decision within the context of the menu, itinerary or catalog. Embodiments, however, may be used to generate multiple portions of and/or entire work products such as menus, itineraries and catalogs.
For menu generation, consider a restaurant which seeks to generate creative menus for their customers. In this example, the restaurant considers two time epochs, e.g., the current week and the following week. As will be appreciated, in other contexts epochs may be longer or shorter in duration. Further, the restaurant has decided on most of the menu for both the current week and the following week. The restaurant, however, has a surplus of avocados and thus seeks to add a dish to the menu for the current week and the following week which makes use of avocados. The restaurant is deciding between a relatively standard avocado dish, e.g., guacamole, and a relatively novel avocado dish, e.g., Filipino avocado dessert.
Using the forecasting of tomatoes shown in the
Using a temporal novelty model, the novelty is considered somewhat low when the same avocado dish is used in consecutive weeks. Thus, in this example, novelty is lowest when guacamole is used in both epochs, e.g., the current week and the following week.
Using an optimization model, such as the optimization model described above, the system 100 in this example will generate an optimal menu for each week. A representative solution would be for the restaurant to use a generated menu which serves guacamole during the current week and to use a generated menu which serves Filipino avocado dessert during the following week. These generated menus are based in part on the supply chain issues predicting a decreasing availability of tomatoes for the next epoch. If not enough tomatoes are available and the restaurant has made plans to serve guacamole, then the restaurant may suffer losses by being unable to meet demand, wastage of ingredients, etc. Creativity based issues also indicate that preparing the same avocado-based dish in consecutive epochs may not meet creativity-standards. The use of a creative dish like Filipino avocado dessert, as well as preparing different avocado dishes for consecutive epochs, has a positive impact on profits by creating additional demand while also avoiding overreliance on tomatoes which are subject the supply chain risk.
For itinerary generation, consider a travel agency which seeks to provide creative travel itineraries for customers seeking to travel. In this scenario, a travel agency considers two time epochs, e.g., a current weekend and a following weekend. The travel agency has decided on most of the events for travel itineraries in a given city for both the current weekend and the following weekend. The travel agency has a contract for buses for each weekend, and thus wishes to use bus tours in the travel itineraries for both weekends. The travel agency is deciding between a relatively standard sightseeing tour of outdoor historical landmarks and a relatively novel sightseeing tour of various local restaurants offering menu tastings.
Using forecasting techniques, the travel agency expects poor weather conditions for the current weekend relative to the next weekend. The outdoor landmark tour may be negatively affected by such weather conditions, while the indoor tasting tour would not be. Assessment models indicate that although the tasting tour is more novel, the landmark tour has higher user ratings.
Using an optimization model, such as the optimization model described above, the system 100 in this scenario will generate an optimal travel itinerary for each weekend. A representative solution would be for the travel agency to offer an itinerary including the tasting tour in the current epoch and an itinerary including the landmark tour in the next epoch. The use of different itineraries for the successive weekends increases creativity while also accounting for the weather constraints which may negatively impact events in the itineraries.
For catalog generation, consider a clothing retailer which seeks to provide creative catalogs for customers. In this scenario, the clothing retailer considers two time epochs, e.g., a current month and a following month. The clothing retailer has decided on most of the apparel to offer in the catalogs for both months, but is yet to decide on special items to offer for each month. The retailer is deciding between a standard special involving accessories and relatively novel special involving custom-tailored suits.
Using forecasting techniques, the clothing retailer anticipates a labor strike in the next month amongst tailors. Thus, orders on custom-tailored suits may be significantly delayed in the next month while the accessories may have a more stable supply chain and thus not be negatively impacted by the labor strike. Assessment models indicate that the custom-tailored suit special is more novel than the accessories special, although both receive approximately equivalent user ratings.
Using an optimization model, such as the model described above, the system 100 in this scenario will generate an optimal catalog for each month. A representative solution would be for the retailer to offer a special on custom-tailored suits in the catalog in the current month and a special on accessories in the catalog in the following month.
As noted above, the above-described scenarios are presented solely for illustration. Embodiments are applicable to various other contexts such as perfumery, and may involve more complex scenarios involving a plurality of constrained constituents and selection of a plurality of portions of a generated work product.
The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
One or more embodiments can make use of software running on a general-purpose computer or workstation. With reference to
Computer system/server 712 may be described in the general context of computer system executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Computer system/server 712 may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.
As shown in
The bus 718 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus.
The computer system/server 712 typically includes a variety of computer system readable media. Such media may be any available media that is accessible by computer system/server 712, and it includes both volatile and non-volatile media, removable and non-removable media.
The system memory 728 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) 730 and/or cache memory 732. The computer system/server 712 may further include other removable/non-removable, volatile/nonvolatile computer system storage media. By way of example only, storage system 734 can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically called a “hard drive”). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to the bus 718 by one or more data media interfaces. As depicted and described herein, the memory 728 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the invention. A program/utility 740, having a set (at least one) of program modules 742, may be stored in memory 728 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules 742 generally carry out the functions and/or methodologies of embodiments of the invention as described herein.
Computer system/server 712 may also communicate with one or more external devices 714 such as a keyboard, a pointing device, a display 724, etc., one or more devices that enable a user to interact with computer system/server 712, and/or any devices (e.g., network card, modem, etc.) that enable computer system/server 712 to communicate with one or more other computing devices. Such communication can occur via Input/output (I/O) interfaces 722. Still yet, computer system/server 712 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 720. As depicted, network adapter 720 communicates with the other components of computer system/server 712 via bus 718. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server 712. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.
The flowchart and block diagrams in
The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. In addition, particular features described above with respect to a particular embodiment of the invention are not necessarily limited solely to use in the particular embodiment described. Instead, a single embodiment may include features described above in the context of two or more different embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
Bhattacharjya, Debarun, Varshney, Lav R., Varshney, Kush R.
Patent | Priority | Assignee | Title |
11887035, | Oct 05 2018 | Blue Yonder Group, Inc. | System and method for automatic parameter tuning of campaign planning with hierarchical linear programming objectives |
Patent | Priority | Assignee | Title |
6236974, | Aug 08 1997 | DIETFOOD CORP | Method and apparatus for automated selection and organization of products including menus |
6837148, | Sep 17 1999 | SEB S A | Cooking aid device |
7953873, | Apr 25 2008 | INTUIT INC.; INTUIT, INC | Network-based service for menu filtering based on user information |
8249946, | Feb 09 2000 | General Mills, Inc. | Customized food selection, ordering and distribution system and method |
8429027, | Nov 08 2010 | R2 SOLUTIONS LLC | Mobile-based real-time food-and-beverage recommendation system |
20020004749, | |||
20020046060, | |||
20020138358, | |||
20100106626, | |||
20100325075, | |||
20130035985, | |||
20130047864, | |||
20130054387, | |||
20130085901, | |||
20130173339, | |||
20150081608, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 11 2014 | VARSHNEY, KUSH R | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033538 | /0132 | |
Aug 11 2014 | VARSHNEY, LAV R | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033538 | /0132 | |
Aug 14 2014 | International Business Machines Corporation | (assignment on the face of the patent) | / | |||
Aug 14 2014 | BHATTACHARJYA, DEBARUN | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033538 | /0132 |
Date | Maintenance Fee Events |
Jun 26 2023 | REM: Maintenance Fee Reminder Mailed. |
Dec 11 2023 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Nov 05 2022 | 4 years fee payment window open |
May 05 2023 | 6 months grace period start (w surcharge) |
Nov 05 2023 | patent expiry (for year 4) |
Nov 05 2025 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 05 2026 | 8 years fee payment window open |
May 05 2027 | 6 months grace period start (w surcharge) |
Nov 05 2027 | patent expiry (for year 8) |
Nov 05 2029 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 05 2030 | 12 years fee payment window open |
May 05 2031 | 6 months grace period start (w surcharge) |
Nov 05 2031 | patent expiry (for year 12) |
Nov 05 2033 | 2 years to revive unintentionally abandoned end. (for year 12) |