TECHNICAL FIELD
[0001] The present disclosure generally relates to automated conversions of computational frameworks to different types of computational frameworks for automated planning. More specifically, the present disclosure generally relates to converting discrete computational frameworks to continuous computational frameworks for automated planning. Even more specifically, the present disclosure generally relates to converting discrete computational frameworks to binary computational frameworks, and further to continuous computational frameworks for automated planning. Further, the present disclosure generally relates to a system and method for converting discrete computational frameworks to continuous computational frameworks for automated planning.
BACKGROUND
[0002] Automated planning is widely utilized in many different scenarios. For example, automated planning may be used in determining an optimal plan and design of a transmission network. Various computational frameworks may be used, which may provide varying levels of accuracy, and which may generate results using varying levels of computational resources, which is a common technical problem associated with computing. For example, a computational framework which utilizes integers (i.e., instead of real numbers) may generate results using a significant amount of rounding. A computational framework with integral solution space may use pre-defined approximation techniques to converge to an acceptable solution. As another example, a computational framework that supports a particular internal representation (with corresponding arithmetic routines) for real numbers may provide different results from a different computational framework that supports a different internal representation (with different corresponding arithmetic routines). This differs from human calculation, as a human is not concerned with the same constraints as for computer calculations (e.g., predetermined finite number of bits for storing values, internal routines for performing arithmetic on internal numeric representations, significant loss of accuracy with bit loss (e.g., bit cutoffs due to the internal numeric representations and corresponding internal routines) in iterative computation, etc.). As an example, a result of 3.4 may be rounded to a value of only 3. As computations progress (e.g., addition, multiplication, division of multiple values, or combinations thereof), such loss of accuracy may be significant, leading to results that may be unacceptably inaccurate. For example, if computation of a trajectory of a missile requires many calculations, and a particular sequence of computer operations results in multiple losses of accuracy, the missile may actually be ultimately controlled to hit "friendly" environments, which would likely be an unacceptable result of the computer computations. As another example, if a bank computes compound interest on loans using techniques that round iteratively, the loan customers may be charged unacceptably high interest amounts (while the bank may profit substantially more than agreed, over large numbers of loan customers), which may lead to adverse consequences for the bank.
[0003] Significant research has been performed since the advent of computing devices, to develop both hardware and software that may provide more accurate results, and it is common for different hardware and/or software to generate different results in solving common problems that may involve iterative manipulations of numeric values, with their respective internal representations, which may vary from one platform to another (including both hardware and software platforms).
[0004] For example, various automated planning systems may produce inaccurate, or only approximated results, which may adversely impact decision-making based on the results.
[0005] Further, there is a lack of techniques for determining discrete solutions to a model/framework with cannibalization existing between different objects in a portfolio, although there exist techniques that may provide solutions in a continuous space or may provide an approximate discrete solution - which may not always execute successfully.
[0006] An example relaxed solution followed by discretization generates a discrete solution to a non-linear optimization problem by solving it as a continuous problem, and then discretizing the solution by rounding it off to the nearest discrete solution in the solution dataset. However, it may be difficult to retain feasibility after rounding off. For example, a rule may be violated. Further, the technique may end with local optima in many cases.
[0007] An example simulation based technique may create all possible scenarios using discrete variable values and evaluating an objective function, filtering out infeasible scenarios in accordance with constraints, and selecting the optimal scenario from the remaining cases. However, scenario counts may increase exponentially over time, and thus generating all such scenarios may quickly become computationally infeasible.
[0008] There is a need in the art for a system and method that addresses the shortcomings discussed above.
SUMMARY
[0009] A system and method for determining a result that includes a solution in a discrete space for a non-linear optimization model is disclosed. The system and method solve the problems discussed above by automatically transforming a discrete optimization framework to a binary optimization framework, and then to a continuous framework with additional constraints, to achieve higher accuracy, in less time than conventional systems.
[0010] Further, such optimization of computer operations is resource effective, conserving processor time, memory usage, and overall improving processing efficiency. Additionally, such optimization may avoid becoming mired in local maxima, thereby improving performance to provide improved results.
[0011] Additionally, the system and method may execute successfully, and efficiently, to determine discrete solutions to a model/framework with cannibalization existing between different objects in a portfolio.
[0012] In one aspect, the disclosure provides a method for determining a result that includes a solution for a discrete non-linear optimization model for an optimization problem by: determining a non-linear relationship between a key performance indicator (KPI) to be optimized and at least one decision variable using econometric modeling, determining a discrete optimization framework for the optimization problem using a plurality of discrete values of decision variables of the optimization problem, determining a binary optimization framework from the determined discrete optimization framework based on automatically revising an optimization equation of the discrete optimization framework, automatically determining a continuous framework from the determined binary optimization framework based on imposing additional constraints and/or based on modifying the optimization problem, and generating the result. An action may be controlled based on the result.
[0013] In another aspect, the disclosure provides a non-transitory computer-readable medium storing instructions that are executable by one or more device processors to determine a result that includes a solution for a discrete non-linear optimization model for an optimization problem by: determining a non-linear relationship between a key performance indicator (KPI) to be optimized and at least one decision variable using econometric modeling, determining a discrete optimization framework for the optimization problem using a plurality of discrete values of decision variables of the optimization problem, determining a binary optimization framework from the determined discrete optimization framework based on automatically revising an optimization equation of the discrete optimization framework, automatically determining a continuous framework from the determined binary optimization framework based on imposing additional constraints and/or based on modifying the optimization problem, and generating the result. An action may be controlled based on the result.
[0014] In another aspect, the disclosure provides a system that includes a device processor and a non-transitory computer readable medium storing instructions that are executable by the device processor to determine a result that includes a solution for a discrete non-linear optimization model for an optimization problem by: determining a non-linear relationship between a key performance indicator (KPI) to be optimized and at least one decision variable using econometric modeling, determining a discrete optimization framework for the optimization problem using a plurality of discrete values of decision variables of the optimization problem, determining a binary optimization framework from the determined discrete optimization framework based on automatically revising an optimization equation of the discrete optimization framework, automatically determining a continuous framework from the determined binary optimization framework based on imposing additional constraints and/or based on modifying the optimization problem, and generating the result. An action may be controlled based on the result.
[0015] In some embodiments, the discrete optimization framework may be the non-linear relationship in the form of discrete variables. In some embodiments, the binary optimization framework may be the non-linear relationship in the form of discrete variables converted to binary variables. In some embodiments, the continuous framework may be the non-linear relationship in the form of binary variables converted to continuous variables. In some embodiments, automatically determining a continuous framework from the determined binary optimization framework based on imposing additional constraints may include adding at least one of the constraints as a penalty function. The penalty function may include any penalty function known in the art. In some embodiments, automatically determining a continuous framework from the determined binary optimization framework based on modifying the optimization problem may include formulating the constraint in continuous variable form.
[0016] Other systems, methods, features, and advantages of the disclosure will be, or will become, apparent to one of ordinary skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description and this summary, be within the scope of the disclosure, and be protected by the following claims.
[0017] While various embodiments are described, the description is intended to be exemplary, rather than limiting, and it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible that are within the scope of the embodiments. Although many possible combinations of features are shown in the accompanying figures and discussed in this detailed description, many other combinations of the disclosed features are possible. Any feature or element of any embodiment may be used in combination with or substituted for any other feature or element in any other embodiment unless specifically restricted.
[0018] This disclosure includes and contemplates combinations with features and elements known to the average artisan in the art. The embodiments, features, and elements that have been disclosed may also be combined with any conventional features or elements to form a distinct invention as defined by the claims. Any feature or element of any embodiment may also be combined with features or elements from other inventions to form another distinct invention as defined by the claims. Therefore, it will be understood that any of the features shown and/or discussed in the present disclosure may be implemented singularly or in any suitable combination. Accordingly, the embodiments are not to be restricted except in light of the attached claims and their equivalents. Also, various modifications and changes may be made within the scope of the attached claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0019] The invention can be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like reference numerals designate corresponding parts throughout the different views.
FIG. 1 is a schematic diagram of an embodiment of a system for non-linear optimization transformation;
FIG. 2 is a schematic diagram of a problem definition according to an embodiment;
FIGs. 3A-3B illustrate a determination of a discrete optimization framework and conversion to a binary optimization framework according to an embodiment;
FIG. 4 illustrates a conversion of the binary optimization problem into a continuous variable form according to an embodiment;
FIG. 5 illustrates an example conversion of a discrete optimization problem to a binary optimization problem, according to an embodiment;
FIG. 6 illustrates a logical structure of an example system for determining optimal solutions for discrete non-linear optimization problems according to an embodiment;
FIG. 7 is a flowchart of a method for non-linear optimization transformation according to an embodiment;
FIG. 8 illustrates an example solution space that is continuous, within bounds;
FIG. 9 illustrates an example solution space that is discrete, with integer solution, within bounds;
FIG. 10 illustrates an example solution space that is discrete, with a custom definition;
FIG. 11 illustrates an example problem case;
FIGs. 12A-12C illustrate a relaxed solution followed by discretization;
FIGs. 13A-13C illustrate a simulation based technique; and
FIG. 14 illustrates an example mathematical formulation of an objective for maximizing profit.
DESCRIPTION OF EMBODIMENTS
[0020] A system and method for determining a result that includes a solution in a discrete space for a non-linear optimization model is disclosed. FIG. 1 shows an embodiment of a non-linear optimization transformation system 102. As shown in the embodiment of FIG. 1, the system 102 includes a processor 104 and a memory 106 storing components of the system 102. Processor 104 may include a single device processor located on a single device, or it may include multiple device processors located on one or more physical devices. Memory 106 may include any type of storage, which may be physically located on one physical device, or on multiple physical devices. The system 102 may communicate with a user device 110, for example, to receive user input. For example, the system 102 may communicate with user device 110 via a network 112. In some embodiments, network 112 may be a wide area network ("WAN"), e.g., the Internet. In other embodiments, network 112 may be a local area network ("LAN"). For example, in a more remote location far from a metropolitan area, the Internet may not be available. In yet other embodiments, network 112 may be a combination of a WAN and a LAN.
[0021] As shown in FIG. 1, the system 102 may communicate with a repository 108 storing data 114, for example, to store and retrieve information for processing data. For example, the data may include input data to processing modules. For example, the data may include results of the processing.
[0022] The system may include several modules. For example, FIG. 1 shows system 102 including non-linear relationship module 116, a discrete optimization module 118, a binary optimization module 120, a continuous optimization module 122, a result generator 124, and an action controller 126. Non-linear relationship module 116 may determine non-linearity in the objective function or a non-linear relationship between a key performance indicator (KPI) to be optimized and a decision variable or non-linearity in the constraints of the discrete non-linear optimization model. In some embodiments, the non-linear relationship between the key performance indicator (KPI) to be optimized and the decision variable may be utilized using econometric modeling. In the context of the present disclosure, econometric modeling refers to a technique for estimating the relationship between the KPI to be optimized and the influencing factors (e.g., historical data, business factors, macro-economic factors, customer lifestyle/ preferences and demographics and the decision variables).
[0023] Discrete optimization module 118 may determine a discrete optimization framework for the optimization problem using a plurality of discrete values of decision variables of the optimization problem.
[0024] Binary optimization module 120 may determine a binary optimization framework from the determined discrete optimization framework based on automatically revising an optimization equation of the discrete optimization framework.
[0025] Continuous optimization module 122 may automatically determine a continuous framework from the determined binary optimization framework based on a constraint and based on modifying the optimization problem. In some embodiments, determining the continuous framework from the determined binary optimization framework includes formulating additional constraints and incorporating those into the optimization framework either in a form of continuous variable form or as a penalty function.
[0026] Result generator 124 may generate the result. In some embodiments, generating the result includes running optimization to determine the result in a continuous space
[0027] Action controller 126 may control an action based on the result. In some embodiments, controlling the action based on the result includes controlling an optimal marketing plan.
[0028] For example, subject objects may include stock keeping units (SKUs), and controlling the action based on the result controlling the action based on a forecast associated with one of the SKUs.
[0029] In some embodiments, determining the result that includes a solution for a discrete non-linear optimization model includes determining a discrete solution to a non-linear optimization problem that includes cannibalization between subject objects. In this context, cannibalization refers to a reduction in sales volume, sales revenue, or market share of one product as a result of the introduction of a new product by a same producer or offering a discount on another product in the portfolio.
[0030] FIG. 2 is a schematic diagram of a problem definition according to an embodiment. As shown in FIG. 2, an objective may be defined 202. For example, the objective may be defined as maximizing revenue, indicated as equation 204, mathematically formulated as maximizing a function. While the objective here is indicated as a mathematical formula, one skilled in the art of computing will appreciate that such notation may be used to represent complex computerized operations that may include extensive iterative activity on computer-internal numeric representations of variable values. Other examples of objectives may include maximizing volume, revenue, margin, etc.
[0031] As shown in FIG. 2, the responsiveness may be determined 206, subject to rules and constraints 208. With regard the example shown in FIG. 2, an econometric modeling technique may be determined to estimate a key performance indicator (KPI) to be optimized and its relationship with a variable to be determined (e.g., a price).
[0032] For this example, relevant rules may be determined that may guide the operational feasibility of an implementation of recommendations.
[0033] With regard to the example of FIG. 2, the responsiveness is formulated as a function of seasonal components 210, category specific events 212, a retail price 214, promotional uplift factors 216, promotional discount 218, cannibalization 220, and post promotion impacts 222. As shown, the formulated responsiveness is non-linear, and the permissible solution is discrete in nature, via the constraints 208. Example techniques discussed herein may provide a computerized solution to this non-linear optimization model in a discrete space (DNLP).
[0034] Typical techniques may not obtain an optimal solution to this within a reasonable amount of computational effort and time, and further may not be able to determine a feasible solution to such formulated problems.
[0035] Example techniques discussed herein may utilize a multi-step approach to generate the discrete solution to the non-linear optimization problem. As a first step, the non-linear relationship may be determined. For example, responsiveness/elasticity and cross price elasticity may be determined using econometric modeling (i.e., determining the responsiveness of the consumer to the price changes of the product and to the price change of other products in the portfolio or the cannibalizing group). A discrete optimization framework for the optimization problem may then be set up using the discrete values of the decision variables. A binary optimization framework may be formulated and converted from the discrete optimization framework by revising the optimization equation, as discussed further herein. The binary optimization framework may be converted into a continuous optimization framework by modifying the optimization problem, using additional constraints. A discrete solution may then be determined for the non-linear optimization problem.
[0036] One skilled in the art will appreciate that complex computer operations may be described by way of mathematical interpretations that conveniently indicate the operations in a condensed format. Thus, mathematical equations may be utilized herein to represent such complex operations, in lieu of providing actual code, which may be more difficult in readability. It may be noted that many high-level computer languages may accommodate input equations, which are then translated into machine code for execution of the underlying complex computer operations, and that arrangements of such operations, on internal computer representations of values, may provide different results, in different arrangements. Thus, efficiency and accuracy may be impacted by different arrangements of computer operations.
[0037] FIGs. 3A-3B illustrate a determination of a discrete optimization framework according to an embodiment. As shown in FIG. 3A, the discrete optimization framework may be determined 302, indicated in mathematical equation form as computer operations for determining Demand 304 and Revenue 306. As shown in FIG. 3A, Demand of a product 304 indicates a non-linear relationship with a discount offered on that product and a discount offered by cannibalizing products 308. As shown in FIG. 3B, the example optimization problem may be determined 310, utilizing discrete price points 312 as solution to the decision variables. The discrete optimization framework is then converted to a binary optimization framework and hence, the revised decision variables 314 (binary variables) are created corresponding to each discrete price point.
[0038] FIG. 4 illustrates an example conversion of the binary optimization problem into a continuous variable form according to an embodiment. As shown in FIG. 4, the binary optimization problem may be converted to a continuous problem 402. As shown, such a conversion may be performed by formulating the constraint into a continuous variable form 404, or by adding the constraint as a penalty function 404. Both of these alternatives may convert the binary optimization to a continuous space.
[0039] FIG. 5 illustrates an example conversion of a discrete optimization problem to a binary optimization problem, according to an embodiment. For products 502, in weeks 504, values are shown for allowed price points 506, with econometric model output 508. An optimization problem formulation 510 for Max Total Revenue is shown, with values 512 indicated for products, by week, with indicated constraints 514.
[0040] FIG. 6 illustrates a logical structure of an example system for determining optimal solutions for discrete non-linear optimization problems according to an embodiment. The system obtains user inputs for various parameters for a problem and constraints 602. The optimization algorithm is then formulated (from a discrete solution space to a binary solution space) and reformulated (from a binary solution space to a continuous solution space) 604. The optimization is then executed, and output is generated 606. An optimal solution may then be provided to the user 608.
[0041] In more detail, step 602 includes steps 610-622, which include entering the optimization objective (e.g., max margin) 610, declaring the decision variables in the problem 612, defining the discrete space for each of the decision variables 614, and specifying the relationship between KPI and the decision variables 616. Step 602 further includes entering investments constraints, if any 618, entering operational constraints, if any 620, and specifying any other rule 622.
[0042] Step 604 includes formulating the optimization objective function and the constraints and the relationship specified by the user in the form of discrete variables 630, re-formulating the optimization objective function and the constraints by converting discrete variables into binary variables 632, and re-formulating the optimization objective function and the constraints by converting binary variables into continuous variables 634.
[0043] Step 606 includes coding the optimization function with solution to decision variables in a continuous space using robust optimization algorithms 640 and running the optimization problem and determining solutions in the continuous space 642.
[0044] Step 608 includes determining whether all constraints are satisfied in the output 650, and providing the optimal solution to the user and reporting the KPIs if so 652, and reporting "infeasible solution with current constraints" if not 654, followed by re-defining the constraints 660 and returning to step 618, 620, and 622.
[0045] FIG. 7 is a flowchart of an example embodiment of a method of determining solutions to discrete non-linear optimization models. As shown in FIG. 7, in step 705, a result that includes a solution for a discrete non-linear optimization model for an optimization problem may be determined. In step 710, a non-linear relationship may be determined between a key performance indicator (KPI) to be optimized and at least one decision variable using econometric modeling. In step 715, a discrete optimization framework for the optimization problem may be determined using a plurality of discrete values of decision variables of the optimization problem. In step 720, a binary optimization framework may be determined from the determined discrete optimization framework based on automatically revising an optimization equation of the discrete optimization framework. In step 725, a continuous framework may be determined from the determined binary optimization framework based on imposing additional constraints and/or based on modifying the optimization problem.
[0046] In step 730, the result may be generated. In step 735, an action may be controlled based on the result.
[0047] A more detailed discussion of existing solutions for optimization problems follows. FIG. 8 illustrates an example solution space that is continuous, within bounds 802. As shown in FIG. 8, the solution space has 3 dimensions: P1, P2, and F, with boundary 804. Here, P1 and P2 are two decision variables and F is the objective function. The solution space for P1 and P2 is continuous. As an example, gradient based techniques may use derivative information to locate the optimum point. The first derivatives may provide a slope of the function being differentiated, and at optima it becomes zero. The gradient of the function may instruct the direction to move locally.
[0048] An example for a gradient based technique may be indicated as:
[0049] As another example, a non-linear optimizer (NLOPTR) may be used to optimize differentiable or non-differentiable objective function (F) in the continuous solution space. For example, NLOPTR may be obtained as a free open source library.
[0050] There are currently some derivative based and derivate free solving techniques that are available (e.g., SLSQP, MMA and COBYLA, DIRECT, ISRES respectively).
[0051] However, the example techniques discussed with regard to FIG. 8 may not be used if the solution space is discrete in nature.
[0052] FIG. 9 illustrates an example solution space that is discrete, with an integer solution, within bounds 902. As an example, mixed integer nonlinear programming (MINLP) optimization techniques such as iterative branch and bound, and outer approximation may be used to solve the problem for integer solutions.
[0053] Branch and bound techniques may utilize a strategy of "divide and conquer," for example, by partitioning the feasible region into more manageable sub-divisions and then, if deeded, to further partition the sub-divisions. Such techniques may utilize suitable upper and lower bounds and constraints to eliminate in-feasible regions.
[0054] As an example for a convex mixed integer programming, KNITRO ("Nonlinear Interior point Trust Region Optimization" - Artelys Knitro Optimization) may be used. As a non-Convex example, BARON (Branch and Reduce Optimization Navigator) may be used.
[0055] As another example, outer approximation techniques based on solving alternating finite sequences of non-linear programming subproblems (relaxing integer variables) and then adding linearization (i.e., an iterative process) may be used. For example, AOA (AIMMS Outer Approximation) or DICOPT may be used, for mixed-integer nonlinearly-constrained optimization problems.
[0056] However, techniques discussed with regard to FIG. 9 are used mostly for integers, and their performance on large problems may be adversely unacceptable. For example, branch and bound, iterative in nature, may pose a substantially heavy computational burden due to a need to solve a correspondingly large number of non-linear relaxation problems.
[0057] FIG. 10 illustrates an example solution space that is discrete, with a custom definition 1002. As an example, evolutionary techniques may be used for solution spaces that are discrete, with custom definitions. Evolutionary techniques include population based search procedures that incorporate random variation and selection. These start from a population of possible solutions and move towards optimal solutions by incorporating generation and selection.
[0058] For example, genetic algorithms may improve fitness through evolution.
[0059] As another example, estimation of distribution techniques may discover and exploit the interaction between variables in the solution.
[0060] As yet another example, particle swarm optimization/ ant colony optimization are based on evolving social behavior and their movement towards a destination. Logic for these example techniques may be created in R/ Python (by setting the parameters and conditions for initial selection, crossover, mutation).
[0061] However, techniques discussed with regard to FIG. 10 are highly dependent on the parameters selected. If the selection pressure is high, the convergence of the algorithm is fast; however, an inferior result may follow. If the selection pressure is low, a user may be likely to obtain a superior result, although convergence may be unacceptable.
[0062] Furthermore, one algorithm may not work and provide the best solution all the time - which may require a substantial amount of experimentation.
[0063] Hence, it is possible that there is no particular algorithm that optimizes an objective function (F) for a user defined (i.e., custom defined) discrete solution space.
[0064] FIG. 11 illustrates an example problem case. A table 1102 illustrates a problem case with 5 SKUs in a portfolio/ cannibalizing group. The price for every SKU - in every week - can be one of the 5 price points {P1, P2, P3, P4, P5}. For the example of FIG. 11, an objective is to determine the optimal price point for these 5 SKUs for 5 weeks so as to maximize the total revenue of the portfolio for these 5 weeks, with constraints 1104. If there is no existing technique for providing this solution in the specified discrete space, alternate techniques for deriving that may be assessed. Example alternate solutions may include a relaxed solution followed by discretization, as illustrated in FIGs. 12A-12C, and simulation based techniques, as illustrated in FIGs. 13A-13C.
[0065] FIGs. 12A-12C illustrate a relaxed solution followed by discretization, as an alternate technique for generating a discrete solution to a non-linear optimization problem, by solving it as a continuous problem, and then discretize the solution by rounding it off to the nearest discrete solution in the solution dataset.
[0066] As shown in FIG. 12A, the example relaxed solution followed by discretization may be described by formulating the optimization objective 1202, taking the decision variables range as inputs 1204, formulating the business constraints into equations 1206, solving the optimization in continuous space of
Range 1208, and approximating to a nearby feasible discrete solution 1210. FIG. 12B illustrates example price points 1220, and a formulated optimization objective 1220, indicated as maximize revenue, for this example.
[0067] FIG. 12C illustrates an optimal solution 1240 for this example. Once the solutions are obtained by relaxing the discrete condition, they are discretized by rounding off to the nearest discrete solution in the solution dataset. However, it may be difficult to retain feasibility after rounding-off. For example, in this case, a business rule of maximum number of promoted items in week 3 to be equal to 3, may be violated. Further, the technique may end with local optima in many cases.
[0068] FIGs. 13A-13C illustrate a simulation based technique, as yet another alternate technique. As shown in FIG. 13A, the example simulation based technique may be described by formulating the optimization objective 1302, taking the decision variables allowed discrete values as inputs 1304, formulating the business constraints into equations 1306, creating all possible scenarios using the discrete variable values and evaluating the objective function 1308, filtering out infeasible scenarios in accordance with constraints 1310, and picking up the optimal scenario from the remaining cases 1312.
[0069] As indicated in FIG. 13B, for this example, there are 5 distinct price points allowed for every product in the portfolio, in every week (1320). If a user wants to create scenarios based on all the pricing options and then assess the KPI in each of the scenarios to pick up the optimal scenario, the scenario count shown in FIG. 13B may follow. FIG. 13C illustrates an example table 1340 of scenarios for one week (Week 1). With the increases in the number of SKUs in the portfolio/ cannibalization group and the increases in the number of possible price/ promotion scenarios per SKU, this would increase exponentially, and hence generating these scenarios externally may be computationally infeasible.
[0070] Thus, existing techniques and alternate solutions may not be able to provide the solution every time, and therefore the example techniques discussed herein may be utilized instead.
[0071] Example techniques discussed herein may be used in many different use cases. For example, in power system planning, an optimal plan and design of a transmission network may be desired. This may involve a question of what should be the optimal transmission system to meet a forecasted demand while minimizing the investment/cost. An analysis may be performed to determine what transmission facilities are to be added to the network (e.g., what should be the ideal voltage), where they should be installed (e.g., where should additional facilities be installed and where should facilities be decommissioned), and when should a facility be built (e.g., determining the optimal plan for a whole planning period) to meet the potential demand in the future considering various constraints.
[0072] For this example, an objective function may be formulated as minimizing investment in network construction and operational costs, which may be indicated as:
[0073] For this example, marginal cost may follow a non-linear relationship. Decision variables may include selection of the transmission lines and voltage control, which are discrete in nature.
[0074] For this example, constraints may include power flow and balancing of generation and demand at each node, bounds on minimum and maximum generation by area and technology, and transfer capacity in existing and candidate transmission lines. These constraints illustrate non-linearities of power flow.
[0075] It may be desired to determine new investments that should be made in the transmission network in the medium to long term horizons.
[0076] It may further be desirable to manage power flow during peak hours of usage. An example challenge of this problem is that increasing demand for electricity places significant pressure on the electrical utility grid during peak hours.
[0077] Example techniques discussed herein may be utilized, as a non-linear relationship may be realized, since electricity usage patterns may be expressed as a function of factors such as income, household behavior, lifestyles, weather, etc. Providing financial benefits or charging optimal electricity tariffs may help with effective electrical demand management. A varied tariff may encourage and motivate consumers to shift consumption from peak to non-peak hours. For this example, decision variables may thus be discrete in nature.
[0078] Example techniques discussed herein may also be used for trade promotion analytics. For example, an optimal promotional plan for a desired time period may include determining what to promote, how to promote, and when to promote. In some embodiments, a determination may be made as to how frequently products should be promoted, what should be an ideal duration of the promotion, and what should be the timing/optimal gap between promotions.
[0079] For example, a demand model
D_{t} as shown in FIG. 2 may be used in understanding the current offering. Given the cannibalization relationship/ cross-effects between different products in the portfolio, there could be a substantially large number of possible pricing options, leading to different impacts on the key performance indicators (KPIs). An optimal promotion calendar with business rules specified in the form of constraints may be generated, which may save many hours of planning time.
[0080] Example techniques discussed herein may also be used for determining an optimal inventory plan to meet sales goals as planned. Improved inventory management may result in improved control and optimization of stock to enhance profit in the apparels industry. Planning for this industry may be divided into 3 major groups/ stages: merchandising planning, pre-season planning, and in-season management. For example, merchandising planning may include setting up future performance goals for various metrics such as sales, inventory, other financial metrics, etc., and tracking variation to those. Pre-season planning may involve determining/ forecasting the demand to support optimum buy and optimal initial allocation. In-season management may include rapidly responding to actual demand and optimizing inventory levels.
[0081] At a high level, pre-season planning includes clustering the stores and understanding the demand patterns, followed by forecasting the demand and determining the optimal buy plan by optimizing the size and pack. This example technique may be utilized in analyzing demand patterns and determining an optimal buy plan by optimizing the size and pack.
[0082] In more detail, this may involve defining store and product attributes followed by clustering; defining buying periods, studying the historical patterns and forecasting the demand; generating size profiles, translating the size level demand into optimal pack level orders, and generating the buy plans and reconciling to MFP or space; and finally, approving and creating purchase orders.
[0083] While determining the optimal pack level orders, the objective may be determined as: Maximize the sales profit/ Minimize revenue loss due to lost sales / Minimize cost of service, which may be indicated as
[0084] As can be seen, there exists non-linearity in the relationship.
[0085] A discrete nature of the decision variables may be noted in translating merchandise purchases from the style/ size level into optimized pack level orders, subject to space constraints, supply constraints, and/or other rules.
[0086] FIG. 14 illustrates an example mathematical formulation of an objective for maximizing profit.
[0087] As shown in FIG. 14, an objective may be defined 1402. For example, the objective may be defined as maximizing profit, indicated as equation 1404, mathematically formulated as maximizing a function on variable x. While the objective here is indicated as a mathematical formula, one skilled in the art of computing will appreciate that such notation may be used to represent complex computerized operations that may include extensive iterative activity on computer-internal numeric representations of variable values. Other examples of objectives may include maximizing volume, revenue, margin, etc.
[0088] As shown in FIG. 14, the forecasted demand may be determined 1406, subject to rules and constraints 1408.
[0089] With regard to the example of FIG. 14, the forecasted demand is formulated using seasonal components and demographic components 1410, product attributes 1412, a retail price 1414, a count of options 1416, and a count of options in the cannibalization group 1418. As shown, the formulated forecasted demand is non-linear, and the decision variables are discrete in nature 1408. Example techniques discussed herein may provide a computerized solution to this discrete non-linear optimization model (DNLP).
[0090] Studying the recent history and adjusting the demand forecasts; adjusting the store sales and plan and reallocating the inventory to meet the sales goals as planned, may help drive demand driven inventory replenishment and increased availability during the in-season management.
[0091] Re-formulating the optimization problem using the example techniques discussed herein may help reduce processing time. For an example objective of testing the impact of increasing the number of styles with any particular attributes on the sales, it may be noted that this relationship is non-linear.
[0092] The objective may be to determine the optimal style count for any attribute group. In this case, there may be numerous scenarios possible, since there could be cannibalization impact of presence of any product attribute in the assortment on the sales for another product attributes and hence on a sales/ objective function.
[0093] There could be at least two ways considered for solving this problem: simulation based techniques or the optimization based techniques as discussed herein. The optimization based techniques as discussed herein may reduce the processing time up to one-third, compared to simulation based techniques.
[0094] Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them (e.g., an apparatus configured to execute instructions to perform various functionality).
[0095] Alternatively, implementations may be implemented as a computer program embodied in a machine usable or machine readable storage device (e.g., a magnetic or digital medium such as a Universal Serial Bus (USB) storage device, a tape, hard disk drive, compact disk, digital video disk (DVD), etc.), for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. Such implementations may be referred to herein as implemented via a non-transitory "computer-readable storage medium" or a "computer-readable storage device."
[0096] A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled, interpreted, or machine languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. The computer program may be tangibly embodied as executable code (e.g., executable instructions) on a machine usable or machine readable storage device (e.g., a computer-readable medium). A computer program that might implement the techniques discussed above may be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
[0097] Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. The one or more programmable processors may execute instructions in parallel, and/or may be arranged in a distributed configuration for distributed processing. Example functionality discussed herein may also be performed by, and an apparatus may be implemented, at least in part, as one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that may be used may include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc.
[0098] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor may receive instructions and data from a read only memory or a random access memory or both. Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of nonvolatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry.
[0099] To provide for interaction with a user, implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT), liquid crystal display (LCD), or plasma monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback. For example, output may be provided via any form of sensory output, including (but not limited to) visual output (e.g., visual gestures, video output), audio output (e.g., voice, device sounds), tactile output (e.g., touch, device movement), temperature, odor, etc.
[0100] Further, input from the user can be received in any form, including acoustic, speech, or tactile input. For example, input may be received from the user via any form of sensory input, including (but not limited to) visual input (e.g., gestures, video input), audio input (e.g., voice, device sounds), tactile input (e.g., touch, device movement), temperature, odor, etc.
[0101] Further, a natural user interface (NUI) may be used to interface with a user. In this context, a "NUI" may refer to any interface technology that enables a user to interact with a device in a "natural" manner, free from artificial constraints imposed by input devices such as mice, keyboards, remote controls, and the like.
[0102] Examples of NUI techniques may include those relying on speech recognition, touch and stylus recognition, gesture recognition both on a screen and adjacent to the screen, air gestures, head and eye tracking, voice and speech, vision, touch, gestures, and machine intelligence. Example NUI technologies may include, but are not limited to, touch sensitive displays, voice and speech recognition, intention and goal understanding, motion gesture detection using depth cameras (e.g., stereoscopic camera systems, infrared camera systems, RGB (red, green, blue) camera systems and combinations of these), motion gesture detection using accelerometers/gyroscopes, facial recognition, 3D displays, head, eye, and gaze tracking, immersive augmented reality and virtual reality systems, all of which may provide a more natural interface, and technologies for sensing brain activity using electric field sensing electrodes (e.g., electroencephalography (EEG) and related techniques).
[0103] Implementations may be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such back end, middleware, or front end components. Components may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
[0104] Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the scope of the embodiments.
1. A method comprising:
determining a result that includes a solution for a discrete non-linear optimization model for an optimization problem by:
determining a non-linear relationship between a key performance indicator (KPI) to be optimized and at least one decision variable using econometric modeling,
determining a discrete optimization framework for the optimization problem using a plurality of discrete values of decision variables of the optimization problem,
determining a binary optimization framework from the determined discrete optimization framework based on automatically revising an optimization equation of the discrete optimization framework,
automatically determining a continuous framework from the determined binary optimization framework based on imposing additional constraints and/or based on modifying the optimization problem,
generating the result; and
controlling an action based on the result.
2. The method of claim 1, wherein determining the continuous framework from the determined binary optimization framework includes:
formulating the constraints into a continuous variable form, and/or
adding at least one of the constraints as a penalty function.
3. The method of claim 1 or claim 2, wherein determining the result that includes a solution for a discrete non-linear optimization model includes determining a discrete solution to a non-linear optimization problem that includes cannibalization between subject objects.
4. The method according to any previous claim, wherein generating the result includes running optimization to determine the result in a continuous space, and/or
wherein controlling the action based on the result includes controlling an optimal marketing plan.
5. The method according to any previous claim, wherein:
subject objects include stock keeping units (SKUs); and
controlling the action based on the result includes controlling the action based on a forecast associated with one of the SKUs.
6. A non-transitory computer-readable medium storing instructions that are executable by one or more device processors to:
determine a result that includes a solution for a discrete non-linear optimization model for an optimization problem by:
determining a non-linear relationship between a key performance indicator (KPI) to be optimized and at least one decision variable using econometric modeling,
determining a discrete optimization framework for the optimization problem using a plurality of discrete values of decision variables of the optimization problem,
determining a binary optimization framework from the determined discrete optimization framework based on automatically revising an optimization equation of the discrete optimization framework,
automatically determining a continuous framework from the determined binary optimization framework based on imposing additional constraints and/or based on modifying the optimization problem,
generating the result; and
controlling an action based on the result.
7. The non-transitory computer-readable medium of claim 6, wherein determining the continuous framework from the determined binary optimization framework includes:
formulating the constraints into a continuous variable form, and/or
adding at least one of the constraints as a penalty function.
8. The non-transitory computer-readable medium of claim 6 or claim 7, wherein determining the result that includes a solution for a discrete non-linear optimization model includes determining a discrete solution to a non-linear optimization problem that includes cannibalization between subject objects.
9. The non-transitory computer-readable medium according to any of claims 6 to 8, wherein generating the result includes running optimization to determine the result in a continuous space.
10. The non-transitory computer-readable medium according to any of claims 6 to 9, wherein controlling the action based on the result includes controlling an optimal marketing plan.
11. The non-transitory computer-readable medium according to any of claims 6 to 10, wherein:
subject objects include stock keeping units (SKUs); and
controlling the action based on the result includes controlling the action based on a forecast associated with one of the SKUs.
12. A system comprising:
a device processor; and
a non-transitory computer readable medium storing instructions that are executable by the device processor to:
determine a result that includes a solution for a discrete non-linear optimization model for an optimization problem by:
determining a non-linear relationship between a key performance indicator (KPI) to be optimized and at least one decision variable using econometric modeling,
determining a discrete optimization framework for the optimization problem using a plurality of discrete values of decision variables of the optimization problem,
determining a binary optimization framework from the determined discrete optimization framework based on automatically revising an optimization equation of the discrete optimization framework,
automatically determining a continuous framework from the determined binary optimization framework based on imposing additional constraints and/or based on modifying the optimization problem,
generating the result; and
controlling an action based on the result.
13. The system of claim 12, wherein determining the continuous framework from the determined binary optimization framework includes:
formulating the constraints into a continuous variable form, and/or
adding at least one of the constraints as a penalty function.
14. The system of claim 12 or claim 13, wherein determining the result that includes a solution for a discrete non-linear optimization model includes determining a discrete solution to a non-linear optimization problem that includes cannibalization between subject objects.
15. The system of according to any of claims 12 to 14, wherein generating the result includes running optimization to determine the result in a continuous space; and/or
wherein controlling the action based on the result includes controlling an optimal marketing plan.