Product proliferation is a concern for many business enterprises because making or selling numerous products adds to inventory and management costs. Further, a business enterprise may lose sales as a result of consumer confusion stemming from numerous product choices. In today's fast paced business climate, businesses attempt to monitor the financial success of the products that are offered for sale. Businesses strive to select a particular product portfolio for sale to customers that increase the business' profit.
For a detailed description of exemplary embodiments of the invention, reference will now be made to the accompanying drawings in which:
Certain term(s) are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, different companies/industries may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “couple” or “couples” is intended to mean either an indirect or direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
The following discussion is directed to various embodiments of the invention. Although one or more of these embodiments may be preferred, the embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure, including the claims. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any embodiment is meant only to be exemplary of that embodiment, and not intended to intimate that the scope of the disclosure, including the claims, is limited to that embodiment.
In accordance with various embodiment of the invention, methods and apparatuses are described that reduce the number of products included in a product portfolio to a set of products that is expected to cover most, or at least a substantial amount of order revenue. The disclosed approach helps reduce the costs associated with managing a product offering without substantially sacrificing the variety that customers may desire and the associated revenue from customer demand.
As an illustrative example, in the personal computer (PC) business, a customer's order can comprise a particular set of products such as a chassis, processor, memory card, graphics card, monitor, mouse, keyboard and power cable. An order is said to be “covered” by a product set if every product in the order is included in the set. A method is described for selecting a set of at most n products to offer for sale to maximize the revenue of orders that are covered by the product set for a range of product sets of different sizes. The method generates a plurality of product portfolios along an efficient frontier of revenue coverage and set size. In one embodiment, the efficient frontier is the plot line showing where revenue is maximized versus portfolio size.
To better describe embodiments of the invention, some mathematical notation is first presented. Because it is desirable to find a set of products of a size of at most “n” that maximizes the revenue of orders covered, as a first step, the problem can be formulated as an integer program model (denoted by IP(n)) by defining decision variables, constraints and an objective function as follows for IP(n):
Decision Variables
In accordance with an embodiment of the invention, the requirement that the Xp,Yo variables comprise binary values is relaxed, and is replaced with a requirement that permits Xp,Yo to be continuous variables with values in a particular range such as in the interval of 0 to 1. This latter requirement in which Xp,Yo comprise values in a particular range transforms the problem into a linear program which can be solved faster than the integer program model above. Secondly, the constraint that ΣpXp≦n is eliminated and is replaced with a penalty term in the objective, −λΣpXp. The number of products used in the solution is penalized by a nonnegative number λ, which will be referred to as the Langrangian Relaxation, LR(λ) or linear programming relaxation.
Some notation used for LR(λ) include:
Decision Variables
Maximize the total revenue of orders covered minus the penalty of using more than target product set size n: ΣoRoYo−λ(ΣpXp−n), or equivalently, since −λn is a constant, maximize the total revenue of orders covered minus λ times the number of products included in the product portfolio: ΣoRoYo−λΣpXp.
Changing the objective function and constraints as shown above offers several advantages over the integer program. By eliminating the constraint ΣpXp≦n and replacing it with a penalty in the objective function, the remaining set of constraints are completely unimodular. By using unimodular constraints, an integer solution will be obtained. Moreover, if a set of the orders and products (O, P) is the optimal solution to LR (λ), then the optimal solution will be an optimal solution to IP(|P|). One property of the series of solutions generated by the above technique is that the solutions are nested which means that for λ1≦λ2, the optimal product portfolio for LR(λ2) is a subset of the optimal product portfolio for LR (λ1).
By solving LR(λ) for a series of values of λ, a series of solutions to IP (n) for one or more values of “n” can be obtained. This series of solutions is along an efficient line of revenue coverage versus portfolio size. If the series of λ are chosen carefully, a dense curve of solutions can be found.
Although LR(λ) can be solved using a linear programming solver, solving for very large problems can take up to several hours. In accordance with an embodiment of the invention, the LR(λ) is recast as a maximum-flow problem. In
By solving a maximal s-t flow problem in graph 100, a solution to LR(λ) can be obtained. A well-known result of graph theory is that the value of a maximal s-t flow is equal to the value of a minimum s-t cut, and that by solving a maximum s-t flow problem, a minimum s-t cut can be obtained. The s-t maximum flow problem aims to a flow of maximum value. A minimal s-t cut comprises the set of arcs of minimum capacity whose removal disconnects s from t. An s-t cut divides the set of nodes into two sets of nodes, node S (which contains node s) and node T (which contains node t). The cut itself contains all arcs directed from nodes in S to nodes in T. In
A maximal flow problem can be solved faster than the linear program LR(λ). For example, a “preflow-push” algorithm has complexity O(|o|2m) where |o| is the number of orders, and m is the number of order-product combinations. Linear programming techniques apply algorithms with higher complexity. The preflow-push algorithm for solving maximal flow problems of embodiments of the present invention can solve for LR(λ) more quickly than, at least some or most linear programming solvers.
Referring now to
The method takes as an input, historical order data that includes each order and each product contained in each such order, as well as the order revenue data. Prior to commencing the routine the data is preprocessed in 202 in which data errors are removed and identical orders are consolidated. The data errors that are removed comprise errors such as orders having incorrect product numbers, etc. These orders are removed from consideration in order to avoid any data errors from occurring. Identical orders which include the same products in the order can be consolidated in order to simplify the computations.
In 204, λ is set equal to λo. In 206, a bipartite graph labeled as G(λ) is generated, which includes one node for each product, one node for each order, a source node, s, a sink node, t, a λ-capacity link from s to each product node, a Ro-apacity link from order “o” to the sink node t, and an infinite-capacity link from the product “p” node to the order “o” node for each p,o such that product p is in order o.
The maximal s-t flow problem for G(λ) is solved in 208. The solution to the problem is commenced with the previous flow solution, if available. When finished, the maximal flow is stored for use in subsequent flow problems for the next value of λ. The minimum cut for G(λ) is constructed in 210, which is obtained from the solution of the maximum flow. In 212, the solution for LR(λ) is constructed from the minimum cut. If the link from s to product p is included in the cut, then p is selected in the solution. If the link from order o to t is selected in the solution, then order o is uncovered by the portfolio of selected products.
In 214, λ is incremented by letting λ=λ+Δ, where Δ is a predetermined increment that can depend on particular system design requirements or other factors. In decision 216 it is determined if n(λ)>0, if it is 0 or less, the routine goes to 218 where a solution report is generated along an efficient frontier of revenue coverage and portfolio size. If in 218, it is determined that n(λ)>0 then the problem is reduced in 220. The problem is reduced in 220 by removing all unselected products from the previous solution. All orders that are uncovered are also removed and the routine then loops back to 206.
Embodiments of the invention can also be applied in a different way by, instead of starting with a small value of λ and increasing λ in each step as shown in
Referring now to
While it has been described how to apply embodiments of the invention to achieve efficient revenue coverage versus product portfolio size, the results generalize to other objectives. Instead of maximizing order revenue, the same method can be applied to maximize order profit, number of orders, or any other metric/benefit associated with individual orders. The constraints can be based on portfolio size, portfolio cost, or any other metric associated with individual products. These generalizations affect the input data requirements. The invention is flexible enough to accommodate strategic constraints such as forced inclusion or exclusion of products by simply introducing a constraint into the integer and linear programs enforcing the inclusion/exclusion of the desired product.
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art. It is intended that the following claims be interpreted to embrace all such variations and modifications.