CA2431116C - Stochastic multiple choice knapsack assortment optimizer - Google Patents

Stochastic multiple choice knapsack assortment optimizer Download PDF

Info

Publication number
CA2431116C
CA2431116C CA2431116A CA2431116A CA2431116C CA 2431116 C CA2431116 C CA 2431116C CA 2431116 A CA2431116 A CA 2431116A CA 2431116 A CA2431116 A CA 2431116A CA 2431116 C CA2431116 C CA 2431116C
Authority
CA
Canada
Prior art keywords
profit
allocations
constraint
cost
item
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CA2431116A
Other languages
French (fr)
Other versions
CA2431116A1 (en
Inventor
John M. Bergstrom
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Accenture Global Services Ltd
Original Assignee
Accenture Global Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Accenture Global Services Ltd filed Critical Accenture Global Services Ltd
Publication of CA2431116A1 publication Critical patent/CA2431116A1/en
Application granted granted Critical
Publication of CA2431116C publication Critical patent/CA2431116C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06315Needs-based resource requirements planning or analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0637Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
    • G06Q10/06375Prediction of business process outcome or impact based on a proposed change

Abstract

A method of determining the allocations in a business operation to maximize profit includes: collecting profit data for a plurality of classes in the business operation, where each class includes an allocation having a cost function and each allocation belongs to the group consisting of physical allocations and economic allocations; determining profit functions for the allocations from the profit data (2); formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and cost constraint; and solving the Multiple Choice Knapsack Problem to determine values for the allocations.

Description

STOCHASTIC MULTIPLE CHOICE KNAPSACK ASSORTMENT
OPTIMIZER
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application claims priority from U.S. Provisional Application No.
60/255,624, titled "Stochastic multiple choice knapsack assortment optimizer,"
filed December 13, 2000.
TECHNICAL FIELD
The present invention relates to data processing generally, and more particularly, to data processing for resource optimization.
BACKGROUND ART
Combinatorial problems and various discrete solution systems are well known in the art of operations research and the art of optimization generally. (T.
H. Cormen, C. E. Leiserson and R. L. Rivest, Introduction to Algorithms, MIT Press, Massachusetts, 1990; R. Fletcher, Practical Methods of Optimization, 2nd edition, John Wiley and Sons, Chichester, 1987; Hillier, F. S., and Lieberman, G. J., Introduction to Operations Research, McGraw-Hill, New York, 1995; R. G. Parker and R. L Rardin, Discrete Optimization, Academic Press, Boston, 1988; Handbook of Combinatorial Optimization, vol. 1, D.-Z. Du and P. M. Pardalos, eds., Kluwer Academic Publishers, Drodrecht, 1998.) In many business applications, however, combinatorial optimization presents substantial challenges in that the computational resources and time required to develop an acceptable solution are typically unacceptable. Several approaches to providing a rapid solution to a combinatorial problem include the use of parallel digital processors to solve such problems as articulated in US patent 5,537,593 issued to FMC CorporationTM on July 16, 1996. IBMTm Corporation has received numerous patents on various methods of optimizing inventory and materials requirements planning (MRP), which are basically resource allocation problems, such as US
patent 5,216,593 issued June 1, 1993. Others have received patents on neurocomputers suitable for solving an optimum combination problem. Nevertheless, the technical problem of developing a highly efficient and cost effective system and method for solving hard combinatorial problems remains.
In many business applications, traditional attempted solutions to technical combinatorial problems involving resource allocation rely on periodic static data, acquired after-the-fact, are based on cumbersome, dueling spreadsheets, and require extensive time to run scenarios of multiple resource allocation options. What is desired is an improved system and method to solve these technical combinatorial problems to achieve optimal resource allocation.
SUMMARY OF THE INVENTION
In one embodiment of the present invention, a method of determining allocations in a business operation to maximize profit includes: collecting profit data for a plurality of classes in the business operation, where each class includes an allocation having a cost function and each allocation belongs to the group consisting of physical allocations and economic allocations; determining profit functions for the allocations from the profit data; formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and a cost constraint;
and solving the Multiple Choice Knapsack Problem to determine values for the allocations.
According to one aspect, determining the profit functions includes:
determining demand distributions for the allocations from the profit data; and determining each profit function from a corresponding demand distribution. The demand distributions may depend on probability distributions such as Poisson models, normal distribution models, and Markov models according to the requirements of the operational setting (e.g., Poisson models and normal distribution models for non-replacement or fashion retail and Markov models for replacement or commodity retail).
According to another aspect the spatial allocations may include spatial allotments (e.g., widths of shelves). The method may be further specialized so that all allocations are physical allocations.
According to another aspect, the economic allotments may include monetary allotments (e.g., dollar amounts). The method may be further specialized so that all allocations are economic allocations.
2 According to another aspect, the cost constraint may be further specified as a greater-than-or-equal-to inequality, an equality, or a less-than-or-equal-to inequality.
In another embodiment of the present invention, a system for determining allocations in a business operation to maximize profit, includes: a data unit, a profit-model unit, and an optimization-engine unit. The data unit has a memory that includes profit data for multiple classes in the business operation, where each class includes an allocation having a cost function that is stored in the memory.
The memory also including a cost constraint. The profit-model unit, which is connected to the data unit, includes executable instructions for determining profit functions for the allocations from the profit data. The optimization-engine unit, which is connected to the data unit and the profit-model unit, includes executable instructions for formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and the cost constraint, and for solving the Multiple Choice Knapsack Problem to determine values for the allocations. This embodiment of the present invention may include aspects described above. For example, the allocations may be exclusively physical allocations or exclusively economic allocations or some combination thereof.
In another embodiment of the present invention, computer-readable media tangibly embodies a program for determining allocations in a business operation to maximize profit. The program including executable instructions for: collecting profit data for a plurality of classes in the business operation, where each class includes an allocation having a cost function; determining profit functions for the allocations from the profit data; formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and a cost constraint; and solving the Multiple Choice Knapsack Problem to determine values for the allocations. This embodiment of the present invention may include aspects described above. For example, the allocations may be exclusively physical allocations or exclusively economic allocations or some combination thereof.
The present invention enables optimal resource allocation in a variety of business operations to maximize profit while constraining cost, where resources may include economic and physical allocations, and where profit and cost may be defined in a number of ways.
3 In an aspect, there is provided an apparatus that determines allocations in a business operation to maximize profit, the apparatus comprising: a memory; and a processor that accesses the memory to retrieve computer-executable instructions to perform:
collecting profit data for a plurality of classes in the business operation, each class including an allocation having a cost function, the allocations being constrained by a total floor space, each class corresponding to a department of the business operation, and each allocation belonging to the group consisting of physical allocations and economic allocations; determining profit functions for the allocations from the profit data by: determining demand distributions for the allocations from the profit data; determining a spatial allotment for each said department; and determining each profit function from a corresponding demand distribution for the spatial allotment of each said department; formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and a cost constraint; and solving the Multiple Choice Knapsack Problem to determine values for the allocations, by utilizing a solution vector holding allocation values, and a recursive function that rewrites allocation values into the solution vector by recursively running for possible allocations from 0 up to a predetermined maximum allocation for each class, wherein the recursive function minimizes local caching by evaluating possible allocations for each class in a sequentially increasing order of cost constraint.
In another aspect, there is provided an apparatus that determines physical allocations in a business operation to maximize profit, the apparatus comprising: a memory;
and a processor that accesses the memory to retrieve computer-executable instructions to perform: collecting profit data for a plurality of classes in the business operation, each class including a physical allocation having a cost function, the physical allocations being constrained by a total floor space, each class corresponding to a department of the business operation;
determining profit functions for the physical allocations from the profit data by: determining demand distributions for the allocations from the profit data; determining a spatial allotment for each said department; and determining each profit function from a corresponding demand distribution for the spatial allotment of each said department; formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and a cost constraint;
and solving the Multiple Choice Knapsack Problem to determine values for the physical allocations, by utilizing a solution vector holding allocation values, and a recursive function that rewrites allocation values into the solution vector by recursively running for possible allocations from 0 up to a predetermined maximum allocation for each class, wherein the recursive function minimizes local caching by evaluating possible allocations for each class in a sequentially increasing order of cost constraint.
In a further aspect, there is provided an apparatus that determines economic allocations in a business operation to maximize profit, the apparatus comprising: a memory; and a processor that accesses the memory to retrieve computer-executable instructions to perform:
collecting profit data for a plurality of classes in the business operation, each class including an economic allocation having a cost function, the economic allocations being constrained by a total floor space, each class corresponding to a department of the business operation;
determining profit functions for the economic allocations from the profit data by: determining demand distributions for the allocations from the profit data; determining a spatial allotment for each said department; and determining each profit function from a corresponding demand distribution for the spatial allotment of each said department; formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and a cost constraint; and solving the Multiple Choice Knapsack Problem to determine values for the economic allocations, by utilizing a solution vector holding economic allocation values, and a recursive function that rewrites values into the solution vector by recursively running for possible economic allocations from 0 up to a predetermined maximum economic allocation for each class, wherein the recursive function minimizes local caching by evaluating possible economic allocations for each class in a sequentially increasing order of cost constraint.
In another aspect, there is provided a system for determining allocations in a business operation to maximize profit, comprising: a memory storing profit data for a plurality of classes in the business operation, each class including an allocation having a cost function that is stored in the memory, and the memory also storing a cost constraint, the allocations being constrained by a total floor space, each class corresponding to a department of the business operation; at least one processor to execute instructions for a profit module unit to determine profit functions for the allocations from the profit data, wherein the instructions are stored on a computer readable medium and the instructions to determine the profit functions include instructions to:

determine demand distributions for the allocations from the profit data;
determine a spatial allotment for each said department; and determine each profit function from a corresponding demand distribution for the spatial allotment of each said department; and the at least one processor is to execute instructions, stored on a computer readable medium, for an optimization-engine unit to formulate a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and the cost constraint, and to solve the Multiple Choice Knapsack Problem to determine values for the allocations by utilizing a recursive function that rewrites values into the solution vector by recursively running for possible allocations from 0 up to a predetermined maximum allocation for each class, wherein the recursive function minimizes local caching by evaluating possible allocations for each class in a sequentially increasing order of cost constraint.
In a further aspect, there is provided computer-readable media having stored thereon executable instructions which, when executed by at least one processor, cause the at least one processor to determine allocations in a business operation to maximize profit, the executable instructions causing the at least one processor to perform: collecting profit data for a plurality of classes in the business operation, each class including an allocation having a cost function, the allocations being constrained by a total floor space, each class corresponding to a department of the business operation; determining profit functions for the allocations from the profit data by: determining demand distributions for the allocations from the profit data;
determining a spatial allotment for each said department; and determining each profit function from a corresponding demand distribution for the spatial allotment of each said department;
formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and a cost constraint; and solving the Multiple Choice Knapsack Problem to determine values for the allocations, by utilizing a solution vector holding allocation values, and a recursive function that rewrites values into the solution vector by recursively running for possible allocations from 0 up to a predetermined maximum allocation for each class, wherein the recursive function minimizes local caching by evaluating possible allocations for each class in a sequentially increasing order of cost constraint.

Other aspects and features of illustrative embodiments will become apparent to those ordinarily skilled in the art upon review of the following description of such embodiments in conjunction with the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows a view of different combinations of unit quantities, cost of units, and profit from units associated with assortment optimization performed by an embodiment of the invention.
Figure 2 shows an exemplary process overview of an embodiment of the invention.
Figure 3 shows an exemplary view of multiple profit curves generated for a set of items.
Figure 4 shows an exemplary solution to a generalized problem associated with an embodiment of the invention.
Figure 5 shows other exemplary business problems that may be solved by an embodiment of the invention.
Figure 6 shows an exemplary flowchart of an assortment optimization embodiment of the invention.
Figure 7 shows an exemplary item attribute table associated with an embodiment of the invention.
Figure 8 shows an exemplary item demand and price table associated with an embodiment of the invention.
Figure 9 shows an exemplary system attribute table associated with an embodiment of the invention.
Figure 10 shows an exemplary season attributes table associated with an embodiment of the invention.
Figure 11 shows an exemplary item choice table associated with an embodiment of the invention.
Figure 12 shows an exemplary constraint table associated with an embodiment of the invention.
Figure 13 shows an exemplary optimal solution table associated with an embodiment of the invention.
4 DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
1. Invention Overview The present invention provides a method and system for performing stochastic ___________________________ optimization, and in particular, assot tment optimization including the determination of physical and economic allocations to maximize profit in a business operation. In the following description, numerous details are set forth in order to enable a thorough understanding of the present invention. However, it will be understood by those of ordinary skill in the art that these specific details are not required in order to practice the invention. Further, well-known elements, devices, process steps and the like are not set forth in detail in order to avoid obscuring the present invention.
Figure 1 shows an optimization problem in spreadsheet form according to an embodiment of the present invention. For example, a retail buyer in a business operation may have an assortment choice for stocking three products: item A
102, item B 104, and item C 106. For each of these items, the buyer may choose how many units to buy 108 for which there is a corresponding cost 110 and a corresponding profit 112. Typically the cost data is imposed on the buyer, for example, by a distributor. The data for the cost for each item may be a simple linear function of the number of units as shown for items A, B, and C, or the cost function may reflect other factors such as a discount for volume purchases.
Analogously, the data for the profit for each item may be a simple linear function of the number of items as illustrated by the profit column for Item C
106.
More realistically, however, the profit data is a complex result of multiple factors including demand, competition and overhead costs, whether static or seasonal.
Thus, for Item B 104 the profit levels at a saturation value of three units, and for Item A 102 the profit actually decreases at a breakpoint value of four units. Realistic estimates for profit values may require substantial empirical analysis of market trends or at least a sensitivity to seasonal fluctuations.
A cost constraint 114 is imposed as a budget limit on the total cost of all the items bought. Then Figure 1 illustrates the problem of choosing how many units to buy for each of three items 102, 104, 106, to maximize the total profit where the total cost is constrained. That is, for each item the buyer chooses the number of units to buy (i.e., from each item's units-to-buy column) to maximize the total profit (i.e., a
5 sum of values from each item's profit column) subject to the constraint 114 on the total cost (i.e., a sum of values from each item's cost column) . For the example shown is Figure 1, there are 63=216 possible choices (i.e., from 0 to 5 for each item) and the optimal result 116 is highlighted.
The optimization problem illustrated in Figure 1 has the structure of a Multiple Choice Knapsack Problem (MCKP). Typically the MCKP is formulated as:
maximize E EPUXii i=1 jEN
subject to E Ewuxu (1_1) jeNi Ex=1 i 1, k, jeNi Xij E {0,1}, = 1, In Eq. (1-1) there are k classes Ni (i=1, k) of items corresponding to the three items 104, 106, 108 in Figure 1. Each j Ni corresponds to a row index for an item in Figure 1. The allocation variable xU has the value 1 if and only if the allocation from row j is chosen for the class Ni analogously to the highlighted solution 116 in Figure 1. The parameters pu, Wij, and c in (P1) can likewise be identified with the entries in Figure 1. The profit pu can be identified with the profit columns in Figure 1, the weight wU can be identified with the cost columns in Figure 1, and the capacity (or cost) c can be identified with the cost constraint 114 in Figure 1.
Thus, the example shown in Figure 1 can be fit generally into the class of Multiple Choice Knapsack Problems. In general, such problems are computationally difficult to solve as characterized by the complexity level NP-hard. However, as discussed in greater detail below, practically useful methods can be implemented to solve realistic problems in many operational settings.
Figure 2 shows an embodiment according to the present invention for solving the optimization problem shown in Figure 1. Profit data 118 is received by a Profit Model 120 and used to determine profit functions 122, which may be identified with the profit columns 112 in Figure 1, and cost functions, which may be identified with the cost columns 110 of Figure 1. An optimization engine 128 receives the profit
6 functions 122, the cost functions 124, and additionally a cost constraint 124, which may be identified with the cost constraint 114 of Figure 1. The optimization engine 128 determines allocations to maximize profit 128 (e.g., by solving Eq. (1-1)), which may be identified with the optimal solution 116 shown in Figure 1 (i.e., the allocations of units to buy).
Further details associated with the components of the embodiment shown in Figure 2 are presented below.
2. Profit Models Profit models 120 of varying complexity may be used to determine profit functions 122 according to the present invention. Additionally cost functions 124 are also obtained, often as an intermediate step in the determination of the profit functions 122 or as a direct (and simpler) calculation from the profit data 118. These models may rely on simple formulas that are easily implemented by spreadsheet as well as more complex stochastic modeling principles. For instance, an exemplary simple profit model A may use an invariant demand of D units for an item. Model A may use the assumption that a seller will sell any quantity of items that is purchased up to and including D units. Any units purchased over D would remain unsold. Profit for model A may be defined as:
Profit = Sales Income - Cost Of Goods. (2-1) Here the elements of Eq. (2-1) may be further defined by simple formulas that are easily implemented in a spreadsheet:
Sales Income units sold * average retail (2-2) Cost Of Goods = units purchased * average cost Increasingly complex profit models may also be used according the requirements of an operational setting. Probability distributions may be tailored to specific applications. For example, profit model B may use a fluctuating demand (e.g., units/week ) that may be characterized by a probability distribution function
7 having a mean equal to M and a variance equal to V. profit model B may calculate unit sales as an expected value over many time periods and define profit to include other factors as:
Profit = Sales Income - Cost Of Goods - Freight - Carrying Cost ¨ Other Costs.(2-3) As another example, an exemplary profit model C according to an embodiment of the invention describes the total demand (in number of units) of an item over the full life cycle of the item as a Poisson distribution with mean = . Then, the probability that the demand will exactly equal N units is given by the probability density function of the Poisson distribution evaluated at pi and N. (i.e, probability =
PDF[ ,N1). Then if a buyer purchases a quantity of items equal to "Supply", then the expected number of units sold is:
Supply-1 UnitSales = E N = PDFLu,N1+ E Supply = PDFb.t,N] (2-4) N=0 N=Supply From the value of UnitSales, other values including the Profit can be determined. For example, if the selling price of a single unit of the item is equal to UnitPrice, the sales income from the unit sales is given as:
SalesIncome = UnitPrice * UnitSales (2-5) Likewise, if the purchase cost of a single unit of the item is equal to UnitCost, the cost of purchasing M units (e.g., M=Supply) of the item is given as:
InventoryCost = UnitPrice * M (2-6) Then profit can be defined in terms of these quantities as:
Profit = SalesIncome - InventoryCost (2-7)
8 Eqs. (2-4) - (2-7) illustrate an embodiment of a profit model 120 that uses a probability distribution (e.g., a Poissson distribution) for the demand to create profit functions 122. Preferably the profit model 120 generates an independent demand distribution function for each class (or item), possibly by stochastic analysis using representative probability distributions as discussed above. Then from each demand distribution an independent profit function can be determined as discussed above.
Figure 3 shows an exemplary view of multiple profit curves generated for three distinct items 900, 902, 904. Then in the optimization engine 128 combinations of items 900, 902, 904 and quantities 906, 908, 910 are evaluated against a constraint entered by the user, and the optimizer engine returns the solution generating the optimal gross profit. (Note that Figure 3 represents the profit functions as continuous curves although the optimization engine 128 takes discrete quantities as inputs as in the columns of Figures 1 and 3.) The use of probability functions to model demand distributions in the profit model 120 may be tailored to specific operational settings and the corresponding availability of data. For example, the Poisson and normal distributions can be especially advantageous in the context a non-replenishment retail (or fashion retail) where the demand characteristics do not reflect continual replenishment. In many cases inventory is replenished as needed over a long period of time. Examples of this type of item include commodities such as aspirin and toothpaste. In these cases, as items are sold, an automated replenishment system typically places an order that initiates shipment of additional items to the store. Once the items arrive at the store, a stock clerk places some or all of them on a shelf in the sales area of the store.
Customers arriving at random times deplete the on-shelf supply causing the replenishment system to begin the cycle again by ordering additional items.
Since items of this type are frequently displayed in designated fixed-width areas on a shelf, the retailer must decide how much width to allocate to each item that goes on the shelf. In some cases the best decision is to allocate shelf width equal to the width of a single unit of the item. In other cases the retailer may wish to dedicate enough width so that two or more units may be placed beside each other on the shelf. In retail terminology this is referred to as deciding how many "facings" of an item will be placed on the shelf. In this scenario, the profit model calculates the profitability of each item as a function of the number of facings that are included on the shelf. More
9 specifically the profit model calculates the profitability as a function of the shelf width occupied by the facings.
In the literature there are examples of modeling the inventory replenishment process by using Markov chains. (Hillier, F. S., and Lieberman, G. J., Introduction to -- Operations Research, McGraw-Hill, New York, 1995.) For example, if the state of the system is defined as the number of units of an item that are on the shelf immediately following a restock cycle, a Markov transition matrix for a Markov chain can be used to model the demand and on-shelf supply between restocking the item. By calculating the stationary probabilities of this matrix, one can determine the probability of finding -- any given number of units of the item on the shelf. This piece of information, combined with the probability density function of the demand for the time interval =
between restocking cycles, allows one to calculate the expected sales of the item, and then its profitability.
An advantage of using of Markov chains is that one can calculate the -- profitability very quickly and accurately on a computer. In some situations, however, the behavior of the shelf re-supply process may be sufficiently complex so that it is easier to create a profit model from a simulation (e.g., a Monte Carlo simulation). In this type of simulation, one can use an appropriate random number generator (e.g.
Poisson) to create a series of random numbers that represent the demand for an item -- in the interval between restocking cycles. The simulation then steps through this series of numbers and, at each step, takes the action that an actual replenishment system and stock clerk would have taken in the situation. Through this process one can simulate how many units of the item are on the shelf between restocking cycles.
By comparing this to the random numbers that represent the demand, one can -- calculate the expected sales of the item, and then its profitability. To get more accurate results, one can run this simulation repeatedly and then average the results.
Consistently with the above discussion, the spreadsheet characterization of profit functions and cost functions shown in Figure 1 can be generalized as illustrated by Figures 4 and 5. Analogously to the example shown in Figure 1, Figure 4 shows -- an exemplary solution to a generalized problem associated with an embodiment of the invention. For example, one generalized problem presents two attributes 508, (Attribute 1 and Attribute 2) and a given a number of classes 500, 502, 504, 506 such that an embodiment of the invention selects exactly one choice per class such that:

1. The sum of Attribute 2 510 for all classes 500, 502, 504, 506 is a maximum or a minimum to meet an objective 512, for example, maximization of Attribute 2; and 2. The sum of Attribute 1 508 for all classes 500, 502, 504, 506 satisfies some constraint 514 such as <, >, >, or < a limit.
For example, using Figure 4, and the constraint being Attribute 1 < 10,500, the circled choices show the sum of Attribute 2 being maximized, wherein Attribute 2 is profit.
An embodiment of the optimization engine 128 then provides a solution to scenario-based retail problems, such as assortment planning and floor space allocation. The embodiment determines the most profitable answer for a given situation (e.g., potential items for the assortment) and its constraint (e.g., OTB ("Open To Buy") dollars or floor space). The present invention enables a simultaneous solution to the optimization problem and uses a comprehensive profit definition which may be based on a probability-based profit model. The invention also enables modeling the fluctuating nature of demand and selecting the assoi Latent with optimal profit, for example, using OTB dollars as the constraint.
Figure 5 shows other exemplary business problems that may be solved by an embodiment of the invention. For example, an embodiment solves a business problem that is associated with a main constraint 608, a class 602, and two attributes, Attribute 1 604 and Attribute 2 606. Attribute 2 606 may be, for example, item profit.
An embodiment of the invention then creates a customized profit model 120 associated with the specific details of the business problem, Figure 5 illustrates a number of possible embodiments tailored to specific business problems that may arise in a variety of business operations. The business problem may be associated with a dimensionally constrained assortment optimization 610, the main constraint may be total width, and the first attribute may be an item width. The business problem may be associated with a budget constrained assortment optimization 612, the main constraint may be associated with a total budget, and the first attribute may be an item cost. The business problem may be associated with advertising space allocation 618, the constraint may be associated with a total area of advertisement, and the first attribute may be an item advertisement area. The business problem may be associated with catalog space allocation 620, the constraint may be associated with a total area of catalog pages, and the first attribute may be an item advertisement area. The business problem may be associated with a start of season budget allocation 614, the constraint may be associated with a total budget available for merchandise, and the first attribute may be an item cost. The business problem may be associated with retail floor space optimization 616, the constraint may be associated with total floor space, and the first attribute may be item width.
The business problem may be associated with loan portfolios 622, the constraint may be associated with a total loan budget, and the first attribute may be an item loan amount.
The business problem may be associated with merchandise allocation to stores from a warehouse 624, the constraint may be associated with total units in the warehouse, and the first attribute may be units shipped to the stores.
3. Optimization Engines 3.1 MCKP Solvers As discussed above with reference to Figure 1, the optimization engine 128 determines the allocations by solving an MCKP, where the classical formulation is given as:
maximize E EPuxii 1=1 jeN, subject to E Ewux, c (3-1) i=1 jeN, x=1 = 1, k, jeN, xi/ E {0,4 = 1, , k,j e In Eq. (3-1), k classes NI, . . . Nk of items are given to pack into a knapsack of capacity (or cost) c. Each item/ e Ni may have a comspondingprofitpu and a weight Wij, and the problem is to choose one item from each class such that the profit sum is maximized subject to some constraint on the weight sum. Typically these parameters are assumed to be integers, but these assumptions can be relaxed for many optimization contexts (e.g., to include real-valued parameters) depending on the application setting as well as the solution method. Here it is generally assumed that the weight values wu are non-negative and the capacity c value is also non-negative.
The profit values pu may be positive, negative or zero. These assumptions may also be relaxed under some conditions. (D. Pisinger and P. Toth, "Knapsack Problems", in Handbook of Combinatorial Optimization, vol. 1, D.-Z. Du and P. M. Pardalos, eds., Kluwer Academic Publishers, Drodrecht, 299-428, 1998.) In (3-1) the constraint appears as a less-than-or-equal-to inequality so this variant may also be denoted as MCKPL. An alternative version of the problem denoted as MCKPE imposes the constraint as an equality constraint:
maximize E EPuxu i=1 jeNi subject to E Ewuxu = c (3-2) i=1 jeN, i =1, . . . , k, jeNi x {0,1}, i=1,...,k,jEiV
Additionally, a third alternative version of the problem denoted as MCKPG
imposes the constraint as a greater-than-or-equal-to inequality:
maximize Puxu i=1 .104 subject to E Ewux, (3-3) i=1 jeN, =1 i=1,... k, jeNi E {0,1}, i= 1, . . . , k, j E
In most operational settings the preferred formulation of MCKP is MCKPL, where the cost constraint appears as an upper bound (e.g., a hard budgetary or spatial limit). As an alternative formulation, MCKPE is sometimes preferred where all resources must be utilized or exhausted. And finally MCKPG may arise for example in cases where the cost appears as a lower threshold of utilization.
In an exemplary embodiment, the optimization engine 128 includes an MCKP
solver to determine the solution 130 to the allocation problem defined by the profit functions 122, the cost functions 124 and the cost constraint 126. The MCKP

formulations presented above fall into a larger class of problems known as integer programming problems, and a variety of solution techniques are possible including both exact and non-exact methods. (R. Fletcher, "Practical Methods of Optimization", 2nd edition, John Wiley and Sons, Chichester, 1987; R. G. Parker and R. L
Rardin, Discrete Optimization, Academic Press, Boston, 1988.) In the context of discrete optimization, MCKP is NP-Hard as it contains KP (i.e., the Knapsack Problem) as a special case. Some methods exploit the particular structure of the MCKP
formulation, particularly in the standard form given by Eq. (3-1). (D. Pisinger, "A Minimal Algorithm for the Mulitple-Choice Knapsack Problem", European Journal of Operational Research (83) 2, pp 394-410, 1995; D. Pisinger and P. Toth, "Knapsack Problems", in Handbook of Combinatorial Optimization, vol. 1, D.-Z. Du and P.
M.
Pardalos, eds., Kluwer Academic Publishers, Drodrecht, 299-428, 1998) The remaining subsections of this section present an embodiment of a method for solving MCKP based on dynamic programming to provide an exact solution in pseudo-polynomial time.
3.2 Exact solution of MCKPE
This subsection presents a dynamic programming method for providing the optimal solution to MCKPE. Also techniques for finding the optimal solution vector are discussed. The next subsection (3.3) presents improvements to the dynamic programming algorithm; for example, space consumption may be reduced from 0(nc) to 0(c) at almost no cost in the solution time. Also several techniques are presented for decreasing the constants in the running time 0(nc). The next subsection (3.4) shows how other variants of the problem may be addressed, including solving MCKPL and MCKPG by means of the method for solving MCKPE. The next subsection (3.5) shows computation results that illustrate the practical performance of the method and summarizes some of its advantages.
Since MCKPE is NP-hard, exact solution methods generally must rely on some enumeration techniques, where dynamic programming is generally preferred since it gives a tight bound on running time. In the method shown here, dynamic programming is used to solve MCKPE directly.
First it is shown that MCKPE has an optimal substructure property, in which an optimal solution consists of optimal subsolutions. That is, if.X(k) jeN

is an optimal solution to MCKPE, then the subsolution :i(h) = for any h = 0,. . . , k is an optimal solution to the restricted MCKPE problem defined on the ,,(k) classes 1, . . . , h and with capacity c' = c - Zi=h+1 EjeAri W;;Xv The proof is by contradiction. Assume that :i(k) jeNi is an optimal solution to MCKPE, but that the sub solution i(h) = {Z;; jeAri for any h =
0,.
k is not an optimal solution to the problem maximize E Epux, i=1 jeNi subject to E Ewuxõ = c (3-4) i=1 JEN, Ex, =1 =
jeNi Xu E{0,1}, = 1,¨, k, je Then, there must exist a solution.27(h) = j i=
h E Ni, to (3-4) that yields a 1.1 1,..., better solution value. By setting = iu for i = h + 1,. . . ,kj E N, one has constructed a complete solution 7.i.(k) to MCKPE. This solution .X(h) is feasible, since in comparison to i(k) that was a feasible solution, different items in classes 1,. . . , h may be chosen that had an identical weight sum. Moreover, this solution Y(k) will have a better objective value than i(k) since a subset of the solution i(k) is replaced with items that have a larger profit sum. This contradicts the original assumption that i(k) is an optimal solution to MCKPE and proves the result.
Knowing the property of optimal substructure, one can derive a dynamic programming algorithm. Let J(h, d) be an optimal solution to the MCKPE problem defined on classes 1, . . . , h with capacity d, i.e.
maximize 1=1 fel, f(h,d) = subject to E E wux, = d . (3-5) 1=1 jeAri EXu =1 jeAri E 104 i = 1,...,k, j With the assumption that f(h,d)=-00 if no solution exists to (3-5), one obtains the following recursion:
f (h,d)= max(f (h ¨1, d ¨ hi) for h = 1,. . k, d = 0, . . c (3-6) where it is assumed that the expression inside the parenthesis returns ¨ co if d ¨ whj <0. For h = 0 there is only one possible solution to (3-5), namely, j0, 0) = 0.
For all other capacities d = 0,. . . , c, one setsf(0, d)= ¨ 00 so as to indicate that no solution exists.
Thus to solve MCKPE, the recursion (3-6) may be used to fill a tablef(h, d) of dimensions (k + 1) x (c + 1). Since each evaluation of (3-6) takes 0(n11) time, one obtains the time complexity 0(cEi.0ni)= 0(cn). The space complexity is 0(kc) due to the dimension of table f. The optimal solution value may be found as z =
f(k-, c), where a value of co indicates that the weight sum c cannot be obtained by any combination of items from the classes. Not only is the optimal solution for capacity c obtained, but in addition, the tablef(k, .) contains all optimal solutions for capacities 0, . . . , c.
The recursion (3-6) determines the optimal solution value for all capacities 0,. . . , c but it does not give any information about the corresponding solution vector.
But having the tablef(h, d) permits one to use backtracking techniques to determine the latter. Thus it is possible to determine the solution vector for capacity c, i.e. the vector corresponding to f(k, c). To find out which item was chosen from the last class it, the following equation is tested:
f ¨1, c ¨ ki)+ pki = f (k,c) (3-7) for all values off E Nk. The equality must be satisfied for some value off E
Nk since f(k-, c) was obtained by performing the reverse operation in (3-6). Assume that j' is the proper item. Then, xki, =1, and that all other values of xki should be set to 0.
Moreover, let d = c ¨ w, be the new capacity. Then the same process may be repeated in a recursive way, now looking at class k - 1 with capacity d.

The running time of the algorithm is 0(n) because for each class h = k, . . .
, 1 equation (3-7) is tested for all j E Ni thus taking time 0 2 ni). 0(n).
According to this approach, however, the entire table f(h, d) is stored to derive the optimal solution vectors.
3.3 Improved dynamic programming algorithm Although recursion (3-6) may be used in its straightforward form, the complexity may become excessive for problems with many classes and/or large capacities. In particular the space complexity may quickly become a bottleneck when capacities are large (e.g. c = 1 000 000). Several techniques improve space and time consumption of the method, as follows:
= All calculations can be made within a single array of length c + 1.
= The solution vector may be derived in a very space-efficient way.
= Only values off(h, d) for specific values of it need to be evaluated in recursion (3-6).
= Sorting of classes according to their weight span may improve the practical performance.
= Dominance in classes removes items that will not lead to an optimal solution.
= Loop unrolling may be used to improve caching.
(a) Space Reduction A variant of the method reduces the requirements for space. In terms of space reduction, because the recursion (3-6) derives entries f(h, .) from f(h-I , .) there is only a need to store the two most recently considered columns of the table, thus decreasing the space complexity to 2(c + 1).
To decrease the space consumption further, in order to evaluate f(h, d), an alternative method only addresses the table for capacities it d - wk/ d. For example, in recursion (3-6) to determinef(h, d) for decreasing values of the capacity d = c, c -1,. . . , 0, only a single table of length c + 1 is needed because the table f(d) for a given value of it holds entries f(h - 1, d) for d = d' and values f(h, d) for d = d' +1, . . . ,c. In other words, the recursion is evaluated in-place, which provides minimal space consumption. Although only a single table is necessary for storingf(h, d), the table is still written with two arguments, where the first index refers to the current stage of the evaluation as defined by (3-5).
(b) Finding the Solution Vector in a Space-efficient Way A variant of the method finds the solution vector in a space-efficient way.
After reducing the space consumption to a single table of length c + 1, finding the solution vector in a straight-forward manner is desirable. It is then possible to re-compute the solution vector by solving a number of MCKPE problems. (U.
Pferschy, "Dynamic Programming Revisited: Improving Knapsack Algorithms", Computing, 63, pp 419-430, 1999.) For example, assume that for a given capacity c one has found the optimal solution z to (3-2). If one knows the weight sum d of the optimal solution when class i = Lk/2i was considered in recursion (3-6), then one is a step closer to finding the solution vector. Knowing the weight sum of the optimal solution at the "mid-point" of the algorithm, one can split the original problem into two problems, the first being defined on the first Lk/2i classes of the problem, the latter problem being defined on the remaining classes of the problem:
k12]
maximize EpuXu i=1 jeN, subject to E E wuxõ= d (3-8) 1=1 jeN, x1=1 jeNi Xu E {0,1}, =1,...,k,j E
and maximize E Epuxõ
jeNi subject to E Ewuxõ c ¨ d (3-9) i=1 jeNi Ex, .1 jeNi Xu E {0,1}, = 1,...,k,j E
If one repeats this process recursively, a number of problems are obtained considering only a single class, and it becomes easy to determine the optimal solution vector of a MCKPE defined on a single class.

This approach therefore solves 1+ 2 + 4 + = = = + 21"2k =1+ 2 + 4 + = = = + 2k 4k problems. Because the capacity of the problems is decreasing, the time complexity becomes the following: The first problem takes 0(nc) time to solve. The following two subproblems take 0((nI2)d) and 0((n/2)(c-d)) time respectively, which in total takes 0(nc12) time. Using the same observation, the next four subproblems take 0(nc14) time to solve, and in total the following time complexity is obtained:
liC nc nc nc+¨+¨+¨+====nc 1+1"+- 1 -+1+-==
(3-10) Thus, to derive the optimal solution vector this approach uses twice the time needed to find only the optimal solution value.
It is however not obvious to see how one keeps track on the weight sum d of the optimal solution when class i = Lk/2i was considered in recursion (3-6).
For this reason an auxiliary table g(h, d) is introduced, which for h > Lk/2Jholds the weight sum of the solution/(h, d) when the class i = Lk/2i is considered. In other words one extends recursion (3-6) to the following. For i < Lk/2i one just sets g(h, d) to any value, e.g. zero. For h = Lk/2i one has the recursion f (h, d) = f(h ¨1,d ¨ whi,)+ p hi, g(h,d). d (3-11) j' = arg max jeNhf 02 ¨1,d ¨ whi,)+ phi, For h> [k/2] one has f (h, d)= f (11 ¨1, d g(h,d)= g(h ¨1,d ¨whi,) (3-12) j' = arg maxiENhf (h ¨1,d ¨ w, )+ phi, This recursion ensures that g(k, c) holds the weight sum of the optimal solution when class i = Lk/2_I is considered.
As noted in the previous section, it is not necessary to save the whole table g(h, it) but only to store a single table of length c + 1.
(c) Evaluating the Recursion for a Limited Range of Capacities The recursion (3-6) should be evaluated for all values of h = 1,. . . , k and d =
0,. . . , c but actually it is not necessary to consider all capacities. Let for each class i = 1, . . . , k the minimum and maximum weight in the class be given as W. = min w.y. 147i = max wi, (3-13) jEN) jÃN, Then at stage h of recursion (3-6) the weight sum d cannot be obtained if 0 d < ET
(3-14) or IT47, (3-15) so that one sets Ah,d)-- co for these values of d. Thus the recursion only needs to be evaluated for the remaining capacity values d in the interval E wi d min{ ETi , c} (3-16) Although this does not change the worst-case time complexity of 0(nc) it can reduce the solution times for many practical instances.
If one wishes to solve the MCKPE problem only for the capacity c (this occurs e.g. when we are looking for the solution vector corresponding to the optimal solution), even fewer capacities need to be considered in the recursion. In this case, at stage h, one does not need to consider capacities d which cannot reach the capacity c even if one chooses the heaviest items in all the remaining classes i =h + 1, . . . , k it.
Thus one need only consider capacities where 20d+ -Wi c (3-17) i4+1 which reduces the considered capacities d to max{E min{ E wi,c}
(3-18) h i=h+1 J i=1,...,h (d) Preordering of classes As we saw in the previous section, it was only necessary to evaluate recursion (3-6) for specific values of the capacity d. In order to get the largest benefit of this optimization, one should order the classes according to increasing values of the weight span Si which for class i is defined as (3-19) A motivation for sorting the classes according to increasing si is to limit as long as possible the range of capacities that need to be considered in (3-6). A simple example may illustrate this approach Example 1 Assume that one has three classes given as N1 =1(0,0), (9,9)), N2 = 1(0,0), (3,3), (5,5)), N3 = 1(0,0), (1,1)), c= 15 (3-20) If one treats the classes as given, one will consider the capacities 0,. . . , 9 in the first iteration, capacities 0,. . . , 14 in the second, and capacities 0, . . . , 15 in the third iteration. This will in total demand 41 evaluations of (3-6). The weight spans are 9, 5 and 1 respectively, so if one treats the classes in reverse order, one will need to consider capacities 0, . . . , 1 in the first iteration, capacities 0, . . . , 6 in the second, and capacities 0, . . . , 15 in the third iteration. This will in total demand evaluations of (3-6).
(e) Dominance of items A variant of the method uses dominance within each class to remove some of the items a-priori, thus improving the solution time of the algorithm.
Definition 1 Assume that one is solving the MCKPE problem. If two items r and s in the same class Ni satisfy that wir = wis and pir Pis (3-21) then one says that item r dominates item s.
Obviously an optimal solution exists where no dominated items occur:
Assume that an optimal solution used item s from class Ni which is dominated by item r. Then by choosing item r instead of item s one obtains a solution with the same weight sum, and a not smaller profit sum. Thus one may delete dominated items from each class before running recursion (3-6).
For the MCKPL variant of the problem, a stronger concept of dominance can be used:
Definition 2 Assume that one is solving the MCKPL problem. If two items r and s in the same class Ni satisfy that wir wis and pir Pis (3-22) then one says that item r dominates item s.

Obviously an optimal solution to MCKPL exists where no dominated items occur, and thus one may a-priori delete these items.
Finally for the MCKPG variant of the problem, one uses the following concept of dominance.
Definition 3 Assume that one is solving the MCKPG problem. If two items r and s in the same class N, satisfy that wir? wis and pir?._ Pis (3-23) then one says that item r dominates item s.
Since an optimal solution to MCKPG exists where no dominated items occur, one may delete all dominated items a-priori.
(f) Loop unrolling The recursion (3-6) is easy to implement but it may be quite time-consuming to evaluate on modern processors, since it does not utilize caching very well. The problem is, that in order to evaluatef(d) it may be necessary to make several look-ups in the table fat positionsfid - why) for] E Nip Since the values whj may be scattered the caching strategy of the processor will not work very well.
As a rule of thumb the cache ensures that whenever one makes a look-up in table fat position d then also the value of fat positions around d will be available. To use this fact, it may be appropriate to evaluate several values off (d) at the same time.
Thus in recursion (3-6) we determine f(h, cl),f(h, d + 1),..., f(h, d + M - 1) (3-24) at the same time for a reasonable value of M, (e.g. 16). Initially one sets all f(h, d+ 1) = - 00 for i = M- 1 (3-25) Then one runs through the values] E Nh, one by one, setting f(h, d+ 1) = max tf(h, d+ i), - 1, d+ i - whj) +
phi} (3-26) As seen this means that the values whj and phi can be stored locally, since they are used in a number of calculations, and that the table f is addressed in a linear way. The values J(h, d + i) should be stored locally to improve performance (and to ensure correctness of the algorithm).
3.4 The MCKP with different capacity constraints Having solved MCKPE to optimality for all capacities d = 0, . . . , c it is not difficult to solve MCKPL. One simply sets f (k,d)= max f (k,d') for d = 0,...,c (3-27) which can be done in time 0(c) if one considers the capacities it in increasing order, since then one has f (k,d)= maxlf (k, d ¨1), f (k,d)) (3-28) ford= 1, c.
To find the solution vector corresponding to the optimal solution value of MCKPL, it is necessary to determine for which capacity d* the largest profit sum is obtained. This can be done by keeping track on the most promising value of d*
as part of (3-28). The optimal solution vector is then found as for MCKPE, where d* is the capacity.
In a similar way one may also solve the MCKPG problem. It is necessary however to demand that the maximum capacity c used in recursion (3-6) is at least as large as the maximum obtainable weight sum. If this is the case then the table f(k, d) holds the optimal solution value of MCKPE for all obtainable weight sums d. In this case one may set f (k,d)= max f (k,d') for d = 0,.,c (3-29) which can be evaluated efficiently by considering the capacities d in decreasing order setting f (k,d) = max{f (k, d), f (k,d +1)}
(3-30) for d=c-1,...,d.
In view of the requirement that c is larger than the total weight sum obtainable, the solution vector for MCKPG will correspond to the best solution value obtainable for this value of c. The arguments to the algorithm do not make it possible to find a solution vector for a smaller value of c.
3.5 Computational experiments and summary The worst-case solution time of the method presented above is 0(nc) where n is the total number of items, and c the maximum capacity for which the solution should be derived. To evaluate the practical performance of the algorithm and to uncover the constants involved in the term 0(nc), a number of test instances with varying problem size and data-range were executed. Three types of randomly generated data instances were considered, for a different number of classes k and size iii. The data-range R is a constant stating the magnitude of the parameters generated.
= Uncorrelated data instances (UC): In each class we generate ni items by choosing wu and pu randomly in [1, R].
= Weakly correlated data instances (WC): In each class, wu is randomly distributed in [1, R] and pu is randomly distributed in [wu - 10, w + 10], such that pu >
1.
= Subset-sum data instances (SS): Wij randomly distributed in [1, R] and pu =
Wu The currently biggest practical problems solved have 500 classes with 10 items per class, so a number of experiments with instances similar to this configuration were run testing varying data-range R and capacity c. The solution times are reported for tests run on a Intel Pentium 11 550 MHz computer with 64 Mb RAM. The internal space consumption of the algorithm is 12n+8c bytes, where it is assumed that a long integer takes 4 bytes (the return array for the histogram is not counted as part of the internal space consumption, but it takes Cc bytes).
Thus for the largest instance considered in this Section, having k= 500, ni= 20 and c =

the space consumption was 12 * 10000 + 8 * 1000000 = 8120000 bytes, a reasonable space consumption.
Tables 1 to 4 report the solution times for capacities c = 10000, 100000 and 1000000, class sizes ni = 5, 10 and 20, data-range R = 100, 1000 and 10000.
Tables 1 and 2 report the running times for deriving the histogram of all optimal solution for capacities 0,. . c. The first table is for the MCKPE
problem, the second table is for the MCKPL problem. It is seen that most of the solution times, as indicated in seconds, are very reasonable, making the algorithm applicable for interactive planning even for large instances.

k ni R c UC WC SS
500 5 100 10000 0.1 0.1 0.1 500 5 1000 100000 1.1 1.1 1.1 500 5 10000 1000000 12.9 12.9 12.3 500 10 100 10000 0.4 0.4 0.4 500 10 1000 100000 4.2 4.3 4.2 500 10 10000 1000000 45.3 45.2 44.1 500 20 100 10000 0.9 0.9 0.8 500 20 1000 100000 9.3 9.2 8.6 500 20 10000 1000000 98.1 97.3 90.6 Table 1: Running times for finding histogram to MCKPE, with an average of 10 instances.
k ni R c UC WC SS
500 5 100 10000 0.1 0.1 0.1 500 5 1000 100000 0.7 1.1 1.1 500 5 10000 1000000 8.6 12.9 12.3 500 10 100 10000 0.2 0.3 0.4 500 10 1000 100000 1.6 4.2 4.2 500 10 10000 1000000 17.0 45.1 44.1 500 20 100 10000 0.2 0.6 0.8 500 20 1000 100000 2.4 8.8 8.6 500 20 10000 1000000 24.1 96.7 90.7 Table 2: Running times for finding histogram to MCKPL, with an average of 10 instances.
k ni R c UC WC SS
500 5 100 10000 0.2 0.2 0.2 500 5 1000 100000 2.7 2.7 2.4 500 5 10000 1000000 32.5 32.4 27.5 500 10 100 10000 0.8 0.8 0.7 500 10 1000 100000 8.9 8.9 6.9 500 10 10000 1000000 98.2 97.3 74.0 500 20 100 10000 1.8 1.8 1.3 500 20 1000 100000 18.4 18.3 12.8 500 20 10000 1000000 199.7 197.1 137.3_ Table 3: Running times for finding optimal solution to MCKPE, with an average of
10 instances.

k ni R c UC WC SS
500 5 1000 100000 1.8 2.7 2.5 500 5 10000 1000000 22.6 33.1 29.1 500 10 100 10000 0.4 0.7 0.8 500 10 1000 100000 3.9 9.3 8.3 500 10 10000 1000000 43.9 103.6 89.0 500 20 100 10000 0.6 1.4 1.6 500 20 1000 100000 5.7 19.1 16.5 500 20 10000 1000000 61.3 214.8 176.2 Table 4: Running times for finding optimal solution to MCKPL, with an average of 10 instances.
Tables 3 and 4 report the running times for deriving the optimal solution vector corresponding to the capacity c. Table 3 considers the MCKPE variant of the problem, and Table 4 considers the MCKPL variant. In an embodiment, it takes about twice as long to find the optimal solution vector than to find the histogram.
This corresponds well to the observation of equation (3-10). Any dynamic programming algorithm can have some overhead for finding the corresponding solution vector.
An exemplary algorithm for the Multiple-choice knapsack problem has been presented above. The algorithm can vary by allowing the user to specify different relations in the capacity constraint, and by solving the problem for all capacities 0,. . . , c. The latter property makes the algorithm very applicable for interactive decision making, since it gives the decision maker a complete overview over the problem.
Compared to simple dynamic programming recursion the improved algorithm decreases the practical solution times by a factor 5-20. Moreover, the space consumption has been decreased from 0(nc) to 0(c) at the cost of a small increase in the solution time. Without this latter improvement, it would not have been possible to solve certain large problems. A straightforward use of recursion equation (3-6) for the instance with n = 10 000 and c = 1000 000 would have demanded approximately 40 Gb processing space. Instead, the algorithm can be run using, for example, only 8 Mb processing space. A final benefit of the algorithm is that it can be adapted for thorough error handling which should make it very robust against break-downs inside the corresponding code.

4. Additional Embodiments Figure 6 shows an exemplary flowchart of an assortment optimization embodiment of the invention, showing further detail than the embodiment shown in Figure 2. This embodiment is capable of solving either physically constrained problems, such as determining the optimal number of facings of each item to include in a fixed amount of shelf width, or economically constrained problems, such as the way in which a buyer of fashion items can optimally allocate their spending budget among a set of candidate fashion items. The sample data and calculations that appear in Figures 7-13 illustrate the use of this embodiment in its economically constrained mode only. For this embodiment, values for the profit data are read from the tables shown in Figures 7-10, the profit functions and cost functions are shown in Figure 11, the cost constraint is shown in Figure 12, and solution values for the allocations are shown in Figure 13. In step 1400, data is input, including from an item attribute table, an item demand table, a system attributes table, and a season attributes table, such as the exemplary tables shown in Figures 7-10. In step 1402, the optimizer selects the first item from the input data and determines the maximum order quantity in step 1404.
In step 1406, the optimizer determines whether the item is mandatory. If it is mandatory, step 1412 sets the first quantity choice equal to the minimum order quantity. If the item is not mandatory, at step 1408, the first quantity choice is set to 0. The profit model in this exemplary embodiment uses a simulation to calculate the profitability for any given amount of an item that the buyer purchases from the manufacturer. The profit, in this .example, is the gross profit, which is defined as the difference between the sales income and the inventory cost (cf. Eq. (2-1)).
In step 1414, the profit model is used to calculate the profitability of current quantity choices. At step 1416, if the current quantity is greater than or equal to the maximum order quantity, step 1418 checks whether this is the final item from the input data. If it is not the final item, the next item is selected in step 1410, and the maximum order quantity is determined in step 1404. At step 1416, if the current quantity is not greater than or equal to the maximum order quantity, then at step 1420, the optimizer checks to determine if the current quantity for the item is 0.
If the current quantity is 0, then at step 1422, the quantity is incremented by the minimum order quantity.
At step 1420, if the current quantity is not 0, then the optimizer increments the quantity by the incremental order quantity at step 1426. After the incrementation in step 1422 or step 1426, the data is passed back to the profit model at step 1414 to determine profitability of the current quantity choice.
At step 1418, if the final item profitability has been calculated, then at step 1424, the intermediate data, such as the data in the exemplary table shown in Figure
11, is generated. At step 1430, the optimizer takes the constraint data from step 1428, such as the exemplary constraint shown in the table in Figure 12, and finds the maximum constrained profit.
At step 1432, the output data showing the optimal solution generated by the optimizer is communicated to, for example, a display. An exemplary output table is shown in Figure 13.
As discussed above, values for the profit data are read from the tables shown in Figures 7-10. Figure 7 shows an exemplary item attribute table 1500 associated with this embodiment of the invention. Exemplary include field 1502 value of "1"
indicates that the item should be included in the optimization. Otherwise "0"
is entered. Item ID 1504 is an Item identifier. Item Description 1506 includes a text description of the item. Item Type 1508 "F" or "f' indicates a fashion item, and "R" or "r" indicates a replenishment item. Total Lifecycle 1510 indicates the number of weeks the item is expected to be selling in the stores, along with the weeks between the in-store date and the out-of-stock date.
Cost 1512 indicates the unit cost of the associated item. Width 1514 indicates the item width for the item. In an embodiment, if the item is apparel, a numeric placeholder such as "1" can be entered. Height 1516 indicates an item height, with a numeric placeholder entered for apparel. Capacity 1518 indicates facing capacity, or the number of units that fit on a shelf. A numeric placeholder may also be entered for capacity.
Mandatory 1520 may contain True ("T" or "t") to indicate that the item must be part of the assoi __ fluent, or False ("F" or "f') to indicate that the item is optional.
For Estimate Type 1522, "D" or "d" can indicate that the estimate entered in the Item Demand text file is a representation of demand rather than historical sales.

Resupply factor 1524 is a sample field for which a placeholder may be used.
MOQ 1526 indicates minimum order quantity, such as the minimum number of units that must be bought if the item is included in the assoitment. The MOQ 1526 may be determined by factors such as vendor requirements, fixture fill quantities, and other factors. The MOQ 1526 may be 0 if there is no minimum requirement.
Incr Order Qty 1528 indicates that above the MOQ 1526, buy quantities must be in increments of the number of units entered. Case packs or number of stores may be factors in determining this number. If buys may be placed for any number of units, 1 can be entered.
MM Shelf Presence 1530 indicates the number of units on the floor that will trigger the replenishment system to place an order. A numeric placeholder can be entered for fashion items. Holding Cost 1532 indicates, for example, the cost per unit per week of holding inventory in a warehouse or backroom.
Vendor Lead Time 1534 indicates a number of weeks from the point the replenishment system orders an item until the item reaches the store floor.
Start Sell Date 1536 indicates the date the item will be on the floor in a significant number of stores. Nbr Of Stores 1538 indicates the number of stores that will carry the item.
Pack Size 1540 indicates, for example, the number units shipped in one factory pack.
Figure 8 shows an exemplary item demand and price table 1600 associated with this embodiment of the invention. Item ID 1504 indicates the item identifier. In an exemplary embodiment, Entry Type 1602 may include one of three parameters for each item:
DEMAND - Specifies that the "Week" column contains the regular (not promotional) demand.
PROMO - Specifies that the "Week" column contains the demand that occurs during a promotional period.
PRICE - Specifies that the "Week" column contains the unit price.
Nbr. Of Entries 1604 specifies the number of "Week" columns that will be defined. This field allows the user to define profiles in which regular demand, promotional demand, and price fluctuate over time. In this example, a "1"
indicates that average demand and price are constant over the life cycle of the item.
Week 1 1606 indicates the value of Entry Type 1602 during week 1. Week 2 1608 indicates the value of Entry Type 1602 during week 2. Week 3 1610 represents the value of Entry Type 1602 during week 3. In this example a half-year life cycle is used, ending at Week 26 1612, which shows the value of Entry Type 1602 during week 26.
Figure 9 shows an exemplary system attribute table 1700 associated with this embodiment of the invention. Periods of Supply 1702 indicates the target weeks of supply to maintain in the stores. Periods per Window 1704 indicates the number of weeks that comprise the sliding of the window used to determine average demand.
Number of Simulation Trials 1706 indicates the number of simulations the profit model will run. Higher numbers should lead to smaller margins of error, but longer run times.
Interest Rate 1708 indicates the interest rate the company could attain if the money invested in the assortment is invested elsewhere. Date the Buys Will be Placed 1710 indicates the date to which the present value of money will be calculated.
Operating Hours per Period 1712 indicates the number of hours that the store is open for business in one time period.
Stock Clerk Success Rate 1714 indicates the probability that a stock clerk will replenish an item when the on-shelf supply of the item is depleted to the trigger value.
Stock Clerk Cycle Time 1716 indicates the elapsed time between the stock clerk's visits to the item location. Stock Clerk Trigger Value 1718 indicates that if the stock clerk finds this number of units of an item on the shelf, the clerk should attempt to replenish the shelf.
Figure 10 shows an exemplary season attributes table 1800 associated with this embodiment of the invention. Season Start Date 1802 represents the start of the time for which the buyer is selecting the assoitment. For example, the buyer may be selecting a summer assoitment that will be implemented on February 1.
Individual items have their own Start Sell Dates, for example field 1536 in Figure 7, that are independent of the Season Start Date 1802. Referring again to Figure 10, Season End Date 1804 indicates the end of the time for which the buyer is selecting the assoitment.
As discussed above, the profit functions and cost functions are shown in Figure 11, which shows an exemplary item choice table 1900 associated with an embodiment of the invention. In an embodiment, the MCKP portion of the optimizer engine processes this table and chooses a maximum profit mixture of items and their quantities that does not exceed the cost constraint. Item ID 1504 indicates the item identifier. Item description 1506 includes a text description of the item.
Choice 1902 indicates an index value corresponding to the quantity of an item. Index 1904 indicates an index value corresponding to an individual item.
Profit 1906 indicates the profit earned if the number of units corresponding to choice 1902 is purchased. Cost 1908 indicates the amount that it costs to purchase the number of units corresponding to choice 1902. Units 1910 indicates the number of units of the item corresponding to choice 1902.
As discussed above, the cost constraint is shown in Figure 12, which shows an exemplary constraint table 2000 associated with an embodiment of the invention.
Constraint 2002 indicates the limit on the money that can be spent on the assoitffient, for example $150,000. In the final assortment selection, the sum of all of the "Cost"
values, such as from field 1908 in Figure 19, must not exceed Constraint 2002.
To illustrate this embodiment in greater detail, specifically the way in which the selected numbers in Figure 11 were generated, the following sample calculations are provided for Item 411, which corresponds to the first row in Figure 7.
From the first row of Figure 8, the demand for Item 411 is 2390. From Figure 7 the total lifecycle (1510) of Item 411 is 26 weeks. Since from Figure 8 the number of entries (1604) is 1, the demand is understood to be uniformly spread across the 26 weeks of the item's lifecycle, making the weekly demand equal 2390/26 = 91.92. Since from Figure 7 the minimum order quantity (MOQ 1526) for Item 411 is 1200, the first row of Figure 11 has 1200 in the column for units 1910. In subsequent rows of Figure 11, the units 1910 are incremented in steps of 48, the value given for the incremental order quantity 1528 in Figure 7.
The highest number of units (1910) considered in Figure 11 for Item 411 is 3552. To realistically bound the number of units considered, a bound on the total demand can be used. For the example shown here, the largest number of units considered in the distribution of Item 411 was taken as 3552, a value that is approximately 150% of the total demand (i.e., 1.5 *2390 =3585 from the first row of Figure 8) and a multiple of the incremental order quantity (i.e., 3552/48=74 from the first row of Figure 7). For each of the number of units considered, the profit model calculates a cost (1908) and profit (1906). As stated above, this embodiment contains a profit model that is based on a simulation. Demand is simulated throughout the item's lifecycle in weekly increments. Since Item 411 has a 26-week lifecycle, the simulation generates 26 random numbers, each of which represent the demand during one week of this item's lifecycle and each of which is shown under the weekly demand column of Table 5. As described above, a variety of distribution models (e.g., Poisson)may be used as the underlying distribution model for the demand. For This embodiment a normal distribution, which is characterized by a mean and a standard deviation, was used. Here the mean was taken to be 91.92, estimated weekly demand as described above. The standard deviation was set as 28.84, based on an analysis of historical data.
The cumulative demand in Table 5 is calculated by summing the weekly demand from all earlier weeks and is equal to the number of units of Item 411 that are sold when the supply is at least at that level. That is, the supply of units is the upper limit on the sales of the item. The cumulative sales column in Table 5 shows the cumulative number of units sold in all of the preceding weeks and is likewise limited by the supply. Only two examples of supply are shown ¨ 1200 and 3552 units ¨
but the simulation performs similar calculations for each number of units (1910) of Item 411 that are shown in Figure 11. The cost, or inventory cost, is calculated by multiplying the total units sold by the cost of a single unit. The sales income is calculated by multiplying the total units sold by the sales price of a single unit. The profit is then calculated by taking the difference between the sales income and the inventory cost. From Figure 7 the unit cost (1512) of Item 411 is $14.12, and from Figure 8 (row 3)the unit price is $24.00.

Cumulative Sales Week Weekly Demand Cumulative Demand Units = 1200 Units = 3552
12 83 1034 1034 1034
13 64 1098 1098 1098
14 154 1252 1200 1252 Total Units Sold 1200 2329 Sales In come $28,800.00 $52,704.00 Inventory Cost $16,944.00 $50,154.24 Profit $11,856.00 $ 2,549.76 Table 5: Demand distribution values for Item 411.
5 Both the consistency and the accuracy of the simulation increase when the user runs it repeatedly and then combines the results in some way such as averaging.
Figure 9 shows that the number of simulation trials (1706) for this calculation has been set to 10. The sample data in Table 5 illustrates the way in which the simulation works, but does so only for 1 of the 10 simulation trials. For this reason, the sample 10 calculations are only approximately equal to the cost and profit shown in Figure 11.
For example, the Table 5 shows a profit of $2549.76 when the units equal 3552, whereas Figure 11 shows a profit of $6867.36 for the same number of units. In order to make all of the numbers match exactly, all of the numbers, all 10 simulations would need to be combined.

As discussed above, solution values for the allocations are shown in Figure 13, which shows an exemplary optimal solution table 2100 associated with an embodiment of the invention. Item ID 1504 indicates the item identifier. Item description 1506 includes a text description of the item. Choice 2102 indicates an index value corresponding to the optimal quantity of an item. Index 2104 indicates an index value corresponding to an individual item.
Unit 2110 indicates the optimal number of units of the item. Profit 2106 indicates the profit earned if the optimal number of units 2110 is purchased. Cost 2108 indicates the amount that it costs to purchase the optimal number of units 2110.
As illustrated by the embodiment shown in Figures 7-13, the present invention enables stochastic optimization of allocations in a wide variety of operational settings including many practical business applications.
While specific embodiments have been described and illustrated, such embodiments should be viewed as illustrative only, and not as limiting the invention as defined by the accompanying claims.

Claims (63)

CLAIMS:
1. An apparatus that determines allocations in a business operation to maximize profit, the apparatus comprising:
a memory; and a processor that accesses the memory to retrieve computer-executable instructions to perform:
collecting profit data for a plurality of classes in the business operation, each class including an allocation having a cost function, the allocations being constrained by a total floor space, each class corresponding to a department of the business operation, and each allocation belonging to the group consisting of physical allocations and economic allocations;
determining profit functions for the allocations from the profit data by:
determining demand distributions for the allocations from the profit data;
determining a spatial allotment for each said department; and determining each profit function from a corresponding demand distribution for the spatial allotment of each said department;
formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and a cost constraint; and solving the Multiple Choice Knapsack Problem to determine values for the allocations, by utilizing a solution vector holding allocation values, and a recursive function that rewrites allocation values into the solution vector by recursively running for possible allocations from 0 up to a predetermined maximum allocation for each class, wherein the recursive function minimizes local caching by evaluating possible allocations for each class in a sequentially increasing order of cost constraint.
2. The apparatus according to claim 1, wherein each demand distribution includes a Poisson model.
3. The apparatus according to claim 1, wherein each demand distribution includes a Markov model.
4. The apparatus according to claim 1, wherein each demand distribution includes a normal distribution model.
5. The apparatus according to any one of claim 1 to claim 3, wherein the allocations include spatial allotments.
6. The apparatus according to any one of claim 1 to claim 3, wherein the allocations include monetary allotments.
7. The apparatus according to any one of claim 1 to claim 6, wherein the cost constraint is a greater-than-or-equal-to inequality constraint.
8. The apparatus according to any one of claim 1 to claim 6, wherein the cost constraint is an equality constraint.
9. The apparatus according to any one of claim 1 to claim 6, wherein the cost constraint is a less-than-or-equal-to inequality constraint.
10. An apparatus that determines physical allocations in a business operation to maximize profit, the apparatus comprising:
a memory; and a processor that accesses the memory to retrieve computer-executable instructions to perform:
collecting profit data for a plurality of classes in the business operation, each class including a physical allocation having a cost function, the physical allocations being constrained by a total floor space, each class corresponding to a department of the business operation;

determining profit functions for the physical allocations from the profit data by:
determining demand distributions for the allocations from the profit data;
determining a spatial allotment for each said department; and determining each profit function from a corresponding demand distribution for the spatial allotment of each said department;
formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and a cost constraint; and solving the Multiple Choice Knapsack Problem to determine values for the physical allocations, by utilizing a solution vector holding allocation values, and a recursive function that rewrites allocation values into the solution vector by recursively running for possible allocations from 0 up to a predetermined maximum allocation for each class, wherein the recursive function minimizes local caching by evaluating possible allocations for each class in a sequentially increasing order of cost constraint.
11. The apparatus according to claim 10, wherein each demand distribution includes a Poisson model.
12. The apparatus according to claim 10, wherein each demand distribution includes a Markov model.
13. The apparatus according to claim 10, wherein each demand distribution includes a normal distribution model.
14. The apparatus according to any one of claim 10 to claim 13, wherein the physical allocations include spatial allotments for the classes.
15. The apparatus according to claim 14, wherein the spatial allotments include widths for the classes and the cost constraint is a width constraint.
16. The apparatus according to claim 14, wherein the spatial allotments include advertising spaces for the classes and the cost constraint is an advertising space constraint.
17. The apparatus according to claim 14, wherein the spatial allotments include catalog spaces for the classes and the cost constraint is a catalog space constraint.
18. The apparatus according to claim 14, wherein the spatial allotments include floor spaces for the classes and the cost constraint is a floor space constraint.
19. The apparatus according to any one of claim 10 to claim 18, wherein the cost constraint is a greater-than-or-equal-to inequality constraint.
20. The apparatus according to any one of claim 10 to claim 18, wherein the cost constraint is an equality constraint.
21. The apparatus according to any one of claim 10 to claim 18, wherein the cost constraint is a less-than-or-equal-to inequality constraint.
22. An apparatus that determines economic allocations in a business operation to maximize profit, the apparatus comprising:
a memory; and a processor that accesses the memory to retrieve computer-executable instructions to perform:
collecting profit data for a plurality of classes in the business operation, each class including an economic allocation having a cost function, the economic allocations being constrained by a total floor space, each class corresponding to a department of the business operation;
determining profit functions for the economic allocations from the profit data by:
determining demand distributions for the allocations from the profit data;

determining a spatial allotment for each said department; and determining each profit function from a corresponding demand distribution for the spatial allotment of each said department;
formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and a cost constraint; and solving the Multiple Choice Knapsack Problem to determine values for the economic allocations, by utilizing a solution vector holding economic allocation values, and a recursive function that rewrites values into the solution vector by recursively running for possible economic allocations from 0 up to a predetermined maximum economic allocation for each class, wherein the recursive function minimizes local caching by evaluating possible economic allocations for each class in a sequentially increasing order of cost constraint.
23. The apparatus according to claim 22, wherein each demand distribution includes a Poisson model.
24. The apparatus according to claim 22, wherein each demand distribution includes a Markov model.
25. The apparatus according to claim 22, wherein each demand distribution includes a normal distribution model.
26. The apparatus according to any one of claim 22 to claim 25, wherein the economic allocations include monetary allotments for the classes.
27. The apparatus according to any one of claim 22 to claim 26, wherein the cost constraint is a monetary constraint.
28. The apparatus according to any one of claim 22 to claim 26, wherein the cost constraint is a greater-than-or-equal-to inequality constraint.
29. The apparatus according to any one of claim 22 to claim 26, wherein the cost constraint is an equality constraint.
30. The apparatus according to any one of claim 22 to claim 26, wherein the cost constraint is a less-than-or-equal-to inequality constraint.
31. The apparatus of any one of claim 1 to claim 30, wherein determining demand distributions for the allocations from the profit data comprises:
modeling the demand distributions with corresponding probabilistic functions.
32. The apparatus of any one of claim 1 to claim 31, wherein the computer-executable instructions further configure the processor to select the allocation values in the solution vector that maximize profit.
33. The apparatus of any one of claim 1 to claim 32, wherein a size of the solution vector is substantially equal to a value of the cost constraint.
34. The apparatus of any one of claim 1 to claim 33, wherein the computer-executable instructions further configure the processor to perform:
before solving the Multiple Choice Knapsack Problem, ordering the plurality of classes by cost function.
35. The apparatus of any one of claim 1 to claim 34, wherein the computer-executable instructions further configure the processor to perform:
before solving the Multiple Choice Knapsack Problem, removing a first item from a class when the item is dominated by a second item in the class, wherein the second item dominates the first item when the first and second item have substantially similar cost functions, but the second item has a higher profit function.
36. A system for determining allocations in a business operation to maximize profit, comprising:
a memory storing profit data for a plurality of classes in the business operation, each class including an allocation haying a cost function that is stored in the memory, and the memory also storing a cost constraint, the allocations being constrained by a total floor space, each class corresponding to a department of the business operation;
at least one processor to execute instructions for a profit module unit to determine profit functions for the allocations from the profit data, wherein the instructions are stored on a computer readable medium and the instructions to determine the profit functions include instructions to:
determine demand distributions for the allocations from the profit data;
determine a spatial allotment for each said department; and determine each profit function from a corresponding demand distribution for the spatial allotment of each said department; and the at least one processor is to execute instructions, stored on a computer readable medium, for an optimization-engine unit to formulate a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and the cost constraint, and to solve the Multiple Choice Knapsack Problem to determine values for the allocations by utilizing a recursive function that rewrites values into the solution vector by recursively running for possible allocations from 0 up to a predetermined maximum allocation for each class, wherein the recursive function minimizes local caching by evaluating possible allocations for each class in a sequentially increasing order of cost constraint.
37. A system according to claim 36, wherein each demand distribution includes a Poisson model.
38. A system according to claim 36, wherein each demand distribution includes a Markov model.
39. A system according to claim 36, wherein each demand distribution includes a normal distribution model.
40. A system according to any one of claim 36 to claim 39, wherein the allocations include spatial allocations.
41. A system according to any one of claim 36 to claim 39, wherein the allocations include economic allocations.
42. A system according to any one of claim 36 to claim 41, wherein the cost constraint is a greater-than-or-equal-to inequality constraint.
43. A system according to any one of claim 36 to claim 41, wherein the cost constraint is an equality constraint.
44. A system according to any one of claim 36 to claim 41, wherein the cost constraint is a less-than-or-equal-to inequality constraint.
45. The system of any one of claim 36 to claim 44, wherein determining demand distributions for the allocations from the profit data comprises:
modeling the demand distributions with corresponding probabilistic functions.
46. The system of any one of claim 36 to claim 45, wherein the at least one processor is further configured to select the allocation values in the solution vector that maximize profit.
47. The system of any one of claim 36 to claim 46, wherein a size of the solution vector is substantially equal to a value of the cost constraint.
48. The system of any one of claim 36 to claim 47, wherein the at least one processor is further configured to perform:

before solving the Multiple Choice Knapsack Problem, ordering the plurality of classes by cost function.
49. The system of any one of claim 36 to claim 48, wherein the at least one processor is further configured to perform:
before solving the Multiple Choice Knapsack Problem, removing a first item from a class when the item is dominated by a second item in the class, wherein the second item dominates the first item when the first and second item have substantially similar cost functions, but the second item has a higher profit function.
50. Computer-readable media having stored thereon executable instructions which, when executed by at least one processor, cause the at least one processor to determine allocations in a business operation to maximize profit, the executable instructions causing the at least one processor to perform:
collecting profit data for a plurality of classes in the business operation, each class including an allocation having a cost function, the allocations being constrained by a total floor space, each class corresponding to a department of the business operation;
determining profit functions for the allocations from the profit data by:
determining demand distributions for the allocations from the profit data;
determining a spatial allotment for each said department; and determining each profit function from a corresponding demand distribution for the spatial allotment of each said department;
formulating a Multiple Choice Knapsack Problem to maximize profit from the profit functions, the cost functions, and a cost constraint; and solving the Multiple Choice Knapsack Problem to determine values for the allocations, by utilizing a solution vector holding allocation values, and a recursive function that rewrites values into the solution vector by recursively running for possible allocations from 0 up to a predetermined maximum allocation for each class, wherein the recursive function minimizes local caching by evaluating possible allocations for each class in a sequentially increasing order of cost constraint.
51. Computer-readable media as claimed in claim 50, wherein each demand distribution includes a Poisson model.
52. Computer-readable media as claimed in claim 50, wherein each demand distribution includes a Markov model.
53. Computer-readable media as claimed in claim 50, wherein each demand distribution includes a normal distribution model.
54. Computer-readable media as claimed in any one of claim 50 to claim 53, wherein the allocations include physical allocations.
55. Computer-readable media as claimed in any one of claim 50 to claim 53, wherein the allocations include economic allocations.
56. Computer-readable media as claimed in any one of claim 50 to claim 55, wherein the cost constraint is a greater-than-or-equal-to inequality constraint.
57. Computer-readable media as claimed in any one of claim 50 to claim 55, wherein the cost constraint is an equality constraint.
58. Computer-readable media as claimed in any one of claim 50 to claim 55, wherein the cost constraint is a less-than-or-equal-to inequality constraint.
59. The computer readable media of any one of claim 50 to claim 58, wherein determining demand distributions for the allocations from the profit data comprises:
modeling the demand distributions with corresponding probabilistic functions.
60. The computer readable media of any one of claim 50 to claim 59, further having stored thereon executable instructions for causing the at least one processor to select the allocation values in the solution vector that maximize profit.
61. The computer readable media of any one of claim 50 to claim 60, wherein a size of the solution vector is substantially equal to a value of the cost constraint.
62. The computer readable rnedia of any one of claim 50 to claim 61, further having stored thereon executable instructions for causing the at least one processor to perform:
before solving the Multiple Choice Knapsack Problem, ordering the plurality of classes by cost function.
63. The computer readable media of any one of claim 50 to claim 62, further having stored thereon executable instructions for causing the at least one processor to perform:
before solving the Multiple Choice Knapsack Problem, removing a first item from a class when the item is dominated by a second item in the class, wherein the second item dominates the first item when the first and second item have substantially similar cost functions, but the second item has a higher profit function.
CA2431116A 2000-12-13 2001-12-13 Stochastic multiple choice knapsack assortment optimizer Expired - Lifetime CA2431116C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US25562400P 2000-12-13 2000-12-13
US60/255,624 2000-12-13
PCT/US2001/048835 WO2002048840A2 (en) 2000-12-13 2001-12-13 Stochastic multiple choice knapsack assortment optimizer

Publications (2)

Publication Number Publication Date
CA2431116A1 CA2431116A1 (en) 2002-06-20
CA2431116C true CA2431116C (en) 2016-06-28

Family

ID=22969170

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2431116A Expired - Lifetime CA2431116C (en) 2000-12-13 2001-12-13 Stochastic multiple choice knapsack assortment optimizer

Country Status (5)

Country Link
US (1) US7653561B2 (en)
EP (1) EP1350203A4 (en)
AU (2) AU2908502A (en)
CA (1) CA2431116C (en)
WO (1) WO2002048840A2 (en)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3505619B2 (en) * 2001-01-17 2004-03-08 ミネベア株式会社 Planar lighting device
US20030135444A1 (en) * 2002-01-15 2003-07-17 Nachiappan Annamalai Multiple award optimization
GB2392054B (en) * 2002-08-14 2005-11-02 Fujitsu Ltd Capacity analysis for spread-spectrum radio communication systems
US7668801B1 (en) * 2003-04-21 2010-02-23 At&T Corp. Method and apparatus for optimizing queries under parametric aggregation constraints
US7886055B1 (en) * 2005-04-28 2011-02-08 Hewlett-Packard Development Company, L.P. Allocating resources in a system having multiple tiers
US9021094B1 (en) * 2005-04-28 2015-04-28 Hewlett-Packard Development Company, L.P. Allocation of resources for tiers of a multi-tiered system based on selecting items from respective sets
US20050197886A1 (en) * 2004-03-08 2005-09-08 Sap Aktiengesellschaft System and method for defining a sales promotion
US8478632B2 (en) * 2004-03-08 2013-07-02 Sap Ag System and method for defining a sales promotion
US7769625B2 (en) * 2004-03-08 2010-08-03 Sap Aktiengesellschaft System and method for defining a sales promotion
US8489446B2 (en) * 2004-03-08 2013-07-16 Sap Ag System and method for defining a sales promotion
WO2006063077A2 (en) * 2004-12-08 2006-06-15 Oracle International Corporation Systems and methods for optimizing total merchandise profitability
JP2008287371A (en) * 2007-05-15 2008-11-27 Dentsu Retail Marketing Inc Store management system and program
US20080291204A1 (en) * 2007-05-22 2008-11-27 International Business Machines Corporation Coupled placement of items using stable marriage techniques
US8046294B2 (en) * 2007-07-30 2011-10-25 Hewlett-Packard Development Company, L.P. Bidding in online auctions
US8195496B2 (en) * 2008-11-26 2012-06-05 Sap Aktiengesellschaft Combining multiple objective functions in algorithmic problem solving
US20100223112A1 (en) * 2009-02-27 2010-09-02 Research In Motion Limited Adaptive roadside billboard system and related methods
US9087465B2 (en) * 2009-02-27 2015-07-21 Blackberry Limited Adaptive pedestrian billboard system and related methods
US8838469B2 (en) * 2009-06-12 2014-09-16 Accenture Global Services Limited System and method for optimizing display space allocation of merchandising using regression analysis to generate space elasticity curves
US20110246307A1 (en) * 2010-03-31 2011-10-06 Martin Zinkevich Mass-Based Approach for Serving Impressions in Guaranteed Delivery Advertising
US20110276364A1 (en) 2010-05-04 2011-11-10 Walgreen Co. Method and System for Optimizing Store Space and Item Layout
US8660882B2 (en) * 2010-07-16 2014-02-25 International Business Machines Corporation Maximizing retailer profit and customer satisfaction using multi-channel optimization
US8386298B2 (en) * 2010-08-18 2013-02-26 International Business Machines Corporation Competing simulator in multi-channel retailing environment among multiple retailers
US8571920B2 (en) * 2010-10-05 2013-10-29 Xerox Corporation Optimal list-price mechanism design for multi-level device click-through in targeted print or electronic communication
US20120215576A1 (en) * 2011-02-17 2012-08-23 International Business Machines Corporation Allocating tasks to resources
US20130289945A1 (en) * 2012-04-27 2013-10-31 U.S.A. As Represented By The Administrator Of The National Aeronautics And Space Administration System and Method for Space Utilization Optimization and Visualization
US20150032512A1 (en) * 2013-07-26 2015-01-29 Teradata Corporation Method and system for optimizing product inventory cost and sales revenue through tuning of replenishment factors
US20160283883A1 (en) * 2013-11-15 2016-09-29 Hewlett Packard Enterprise Development Lp Selecting a task or a solution
US10650344B2 (en) 2014-08-22 2020-05-12 Walmart Apollo, Llc Inventory mirroring in a heterogeneous fulfillment network
US10540621B2 (en) 2014-08-22 2020-01-21 Walmart Apollo, Llc Inventory mirroring
US20160283953A1 (en) * 2015-03-26 2016-09-29 International Business Machines Corporation Demand-supply matching with a time and virtual space network
US20190042995A1 (en) * 2017-08-03 2019-02-07 Walmart Apollo, Llc Automated Item Assortment System
RU2681694C1 (en) * 2017-10-23 2019-03-12 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Method of constructing physical structure of user terminal of info-communication system
KR102234129B1 (en) * 2019-04-24 2021-04-02 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. Distributed resource allocation
WO2020219040A1 (en) 2019-04-24 2020-10-29 Alibaba Group Holding Limited Distributed resource allocation
US10678594B2 (en) * 2020-01-09 2020-06-09 Alipay Labs (singapore) Pte. Ltd. System and method for optimizing resource allocation using GPU

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3705410A (en) * 1971-01-21 1972-12-05 Pillsbury Co Automated method for optimizing utilization of warehouse storage space
US4745555A (en) * 1985-09-06 1988-05-17 Burlington Industries, Inc. Method and apparatus for inventory control to optimize usage of colored fabric
US4723819A (en) * 1986-06-12 1988-02-09 Shoe Spa Inc. Merchandizing device
US4885686A (en) * 1987-01-12 1989-12-05 American Telephone And Telegraph At&T Bell Laboratories Methods and apparatus for efficient resource allocation
US5148365A (en) * 1989-08-15 1992-09-15 Dembo Ron S Scenario optimization
US5537593A (en) * 1990-02-12 1996-07-16 Fmc Corporation Method for solving enumerative search problems using message passing on parallel computers
US5216593A (en) * 1991-01-24 1993-06-01 International Business Machines Corporation Method and apparatus for discrete activity resourse allocation through cardinality constraint generation
US5241467A (en) * 1992-04-30 1993-08-31 Ers Associates Limited Partnership Space management system
JP2779736B2 (en) * 1992-08-03 1998-07-23 株式会社日立製作所 Optimization device and process plan creation device using the same
US5615109A (en) * 1995-05-24 1997-03-25 Eder; Jeff Method of and system for generating feasible, profit maximizing requisition sets
US5775504A (en) * 1996-10-01 1998-07-07 Menaged; Neal M. Merchandising package
US5886902A (en) * 1997-02-03 1999-03-23 Digital Equipment Corporation Method for optimizing items represented in permutation spaces
US6032123A (en) * 1997-05-12 2000-02-29 Jameson; Joel Method and apparatus for allocating, costing, and pricing organizational resources
US6078905A (en) * 1998-03-27 2000-06-20 Pich-Lewinter; Eva Method for optimizing risk management
US6044357A (en) * 1998-05-05 2000-03-28 International Business Machines Corporation Modeling a multifunctional firm operating in a competitive market with multiple brands
US6219649B1 (en) * 1999-01-21 2001-04-17 Joel Jameson Methods and apparatus for allocating resources in the presence of uncertainty
US20010047293A1 (en) * 1999-01-26 2001-11-29 Waller Matthew A. System, method and article of manufacture to optimize inventory and inventory investment utilization in a collaborative context
US6341269B1 (en) 1999-01-26 2002-01-22 Mercani Technologies, Inc. System, method and article of manufacture to optimize inventory and merchandising shelf space utilization
US6609101B1 (en) * 1999-03-26 2003-08-19 The Retail Pipeline Integration Group, Inc. Method and system for determining time-phased product sales forecasts and projected replenishment shipments for a retail stores supply chain
US6374227B1 (en) * 1999-04-15 2002-04-16 I2 Technologies Us, Inc. System and method for optimizing the allocation of a resource
US6321207B1 (en) * 1999-04-15 2001-11-20 I2 Technologies Us, Inc. System and method for optimizing the allocation of a resource
US6826538B1 (en) * 1999-07-28 2004-11-30 I2 Technologies Us, Inc. Method for planning key component purchases to optimize revenue
US6952821B2 (en) * 2002-08-19 2005-10-04 Hewlett-Packard Development Company, L.P. Method and system for memory management optimization

Also Published As

Publication number Publication date
CA2431116A1 (en) 2002-06-20
EP1350203A4 (en) 2006-02-01
US20020156667A1 (en) 2002-10-24
AU2908502A (en) 2002-06-24
US7653561B2 (en) 2010-01-26
AU2002229085B2 (en) 2007-07-26
EP1350203A2 (en) 2003-10-08
WO2002048840A3 (en) 2003-03-06
WO2002048840A2 (en) 2002-06-20

Similar Documents

Publication Publication Date Title
CA2431116C (en) Stochastic multiple choice knapsack assortment optimizer
AU2002229085A1 (en) Stochastic multiple choice knapsack assortment optimizer
Paterson et al. Inventory models with lateral transshipments: A review
Rajaram Assortment planning in fashion retailing: methodology, application and analysis
US8082175B2 (en) System and method for optimization of a promotion plan
Agrawal et al. Optimal inventory management for a retail chain with diverse store demands
Katsifou et al. Joint product assortment, inventory and price optimization to attract loyal and non-loyal customers
Murray et al. The multi-product price-setting newsvendor with resource capacity constraints
Wan et al. Demand estimation under multi-store multi-product substitution in high density traditional retail
Li et al. Shelf life extending packaging, inventory control and grocery retailing
Timonina-Farkas et al. Product assortment and space allocation strategies to attract loyal and non-loyal customers
Cai et al. Optimal inventory decisions under vendor managed inventory: Substitution effects and replenishment tactics
WO2005060588A2 (en) Decision variable computation in a strategic planning model
van Donselaar et al. Heuristics for setting reorder levels in periodic review inventory systems with an aggregate service constraint
van der Heijden Multi-echelon inventory control in divergent systems with shipping frequencies
Shin et al. Robust multiperiod inventory model with a new type of buy one get one promotion:“My Own Refrigerator”
Martínez-de-Albéniz et al. A model for integrated inventory and assortment planning
Chan et al. Assortment optimisation problem: A distribution-free approach
Goedhart et al. Inventory rationing and replenishment for an omni-channel retailer
Shah et al. Inventory control policies for substitutable deteriorating items under quadratic demand
US20180268352A1 (en) Method and system for retail stock allocation
Pakhira et al. A two-warehouse multi-item supply chain with stock dependent promotional demand under joint replenishment policy: a mixed-mode ABC approach
Yıldız et al. A variant SDDP approach for periodic-review approximately optimal pricing of a slow-moving a item in a duopoly under price protection with end-of-life return and retail fixed markdown policy
Li et al. Optimal policies and heuristics to match supply with demand for online retailing
JP2024514309A (en) Inventory allocation and pricing optimization system

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry

Effective date: 20211213