U.S. patent application number 11/875209 was filed with the patent office on 2008-02-14 for generating an optimized price schedule for a product.
Invention is credited to James M. JR. Crawford, Mukesh Dalal, Vibhu Kalyan, Srinivas Palamarthy, Joachim P. Walser.
Application Number | 20080040202 11/875209 |
Document ID | / |
Family ID | 26931859 |
Filed Date | 2008-02-14 |
United States Patent
Application |
20080040202 |
Kind Code |
A1 |
Walser; Joachim P. ; et
al. |
February 14, 2008 |
Generating an Optimized Price Schedule for a Product
Abstract
Generating a price schedule involves generating a graph having
paths that include states with values. The graph is generated by
determining the values of a successor state from the values of a
predecessor state. An optimal path is selected, and a price
schedule is determined from the optimal path. Computing an
elasticity curve involves having a demand model, values for demand
model, and filter sets that restrict the values. Elasticity curves
are determined by filtering the values using filter sets, and
calculating the elasticity curve using the demand model. A
best-fitting elasticity curve is selected. Adjusting a demand
forecast value includes estimating an inventory and a demand at a
number of locations. An expected number of unrealized sales at each
location is calculated. An sales forecast value is determined
according to the expected number.
Inventors: |
Walser; Joachim P.; (Dallas,
TX) ; Kalyan; Vibhu; (Plano, TX) ; Palamarthy;
Srinivas; (Euless, TX) ; Crawford; James M. JR.;
(Flower Mound, TX) ; Dalal; Mukesh; (Flower Mound,
TX) |
Correspondence
Address: |
i2 TECHNOLOGIES US, INC.
ONE i2 PLACE, 11701 LUNA ROAD
DALLAS
TX
75234
US
|
Family ID: |
26931859 |
Appl. No.: |
11/875209 |
Filed: |
October 19, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09896388 |
Jun 28, 2001 |
|
|
|
11875209 |
Oct 19, 2007 |
|
|
|
60238676 |
Oct 6, 2000 |
|
|
|
Current U.S.
Class: |
705/7.25 ;
705/7.31; 705/7.34; 705/7.37 |
Current CPC
Class: |
G06Q 30/0202 20130101;
G06Q 10/06315 20130101; G06Q 10/06 20130101; G06Q 30/0283 20130101;
G06Q 10/06375 20130101; G06Q 10/063 20130101; G06Q 30/0205
20130101; G06Q 30/0206 20130101 |
Class at
Publication: |
705/010 ;
705/001 |
International
Class: |
G06Q 10/00 20060101
G06Q010/00; G06F 17/10 20060101 G06F017/10; G06Q 99/00 20060101
G06Q099/00 |
Claims
1. A method for determining a sales forecast, comprising: defining
a plurality of locations; estimating an inventory at each location;
estimating a demand at each location; calculating an expected
number of unrealized sales at each location using a difference
between the demand at the location and the inventory at the
location; and determining a sales forecast in response to the
expected number.
2. The method of claim 1, wherein: estimating the inventory at each
location comprises randomly populating the locations with a
plurality of inventory units; and estimating the demand at each
location comprises randomly populating the locations with a
plurality of demand units.
3. The method of claim 1, wherein: estimating the inventory at each
location comprises calculating a probability of each location
receiving a number of inventory units according to a binomial
distribution; and estimating the demand at each location comprises
calculating a probability of each location receiving a number of
demand units according to the binomial distribution.
4. The method of claim 1, wherein: estimating the inventory at each
location comprises calculating a probability of each location
receiving a number of inventory units according to an incomplete
beta-function; and estimating the demand at each location comprises
calculating a probability of each location receiving a number of
demand units according to the incomplete beta-function.
5. A system for determining a sales forecast, comprising: a
database operable to store a plurality of definitions defining a
plurality of locations; and a server coupled to the database and
operable to: estimate an inventory at each location; estimate a
demand at each location; calculate an expected number of unrealized
sales at each location using a difference between the demand at the
location and the inventory at the location; and determine a sales
forecast in response to the expected number.
6. The system of claim 5, wherein the server is operable to:
estimate the inventory at each location by randomly populating the
locations with a plurality of inventory units; and estimate the
demand at each location by randomly populating the locations with a
plurality of demand units.
7. The system of claim 5, wherein the server is operable to:
estimate the inventory at each location by calculating a
probability of each location receiving a number of inventory units
according to a binomial distribution; and estimate the demand at
each location by calculating a probability of each location
receiving a number of demand units according to the binomial
distribution.
8. The system of claim 5, wherein the server is operable to:
estimate the inventory at each location by calculating a
probability of each location receiving a number of inventory units
according to an incomplete beta-function; and estimate the demand
at each location by calculating a probability of each location
receiving a number of demand units according to the incomplete
beta-function.
9. Logic for determining a sales forecast, the logic encoded in
media and when executed operable to: define a plurality of
locations; estimate an inventory at each location; estimate a
demand at each location; calculate an expected number of unrealized
sales at each location using a difference between the demand at the
location and the inventory at the location; and determine a sales
forecast in response to the expected number.
10. The logic of claim 9, further operable to: estimate the
inventory at each location by randomly populating the locations
with a plurality of inventory units; and estimate the demand at
each location by randomly populating the locations with a plurality
of demand units.
11. The logic of claim 9, further operable to: estimate the
inventory at each location by calculating a probability of each
location receiving a number of inventory units according to a
binomial distribution; and estimate the demand at each location by
calculating a probability of each location receiving a number of
demand units according to the binomial distribution.
12. The logic of claim 9, further operable to: estimate the
inventory at each location by calculating a probability of each
location receiving a number of inventory units according to an
incomplete beta-function; and estimate the demand at each location
by calculating a probability of each location receiving a number of
demand units according to the incomplete beta-function.
13. A system for determining a sales forecast, comprising: means
for defining a plurality of locations; means for estimating an
inventory at each location; means for estimating a demand at each
location; means for calculating an expected number of unrealized
sales at each location using a difference between the demand at the
location and the inventory at the location; and means for
determining a sales forecast in response to the expected
number.
14. A method for generating a price schedule, comprising:
generating a transition graph comprising a plurality of paths, each
path comprising a plurality of states, each state having a
plurality of values comprising a state value, the transition graph
being generated by repeating the following for a plurality of
stages until a final stage is reached; calculating the values of a
successor state using the values of a predecessor state; and
quantizing the values of each successor state; selecting an optimal
path according to the state values of the states; and determining a
price schedule from the optimal path.
15. The method of claim 14, wherein the values comprise a price
value.
16. The method of claim 14, wherein the values comprise an
inventory value.
17. The method of claim 14, wherein selecting the optimal path
according to the state values comprises: determining a state at the
final stage having an optimal state value; and determining a path
comprising a state of an initial stage and the state having the
optimal state value.
18. The method of claim 14, further comprising eliminating a
successor state in response to a constraint.
19. The method of claim 14, further comprising: computing an
elasticity curve; and computing an inventory value of each
successor state using the elasticity curve.
20. The method of claim 14, wherein: each state has a certainty
value; and selecting the optimal path comprises determining a state
at the final stage having a certainty value of a predetermined
value.
21. The method of claim 14, further comprising: defining a
plurality of locations; calculating an expected number of
unrealized sales at each location; and adjusting a value of the
successor state in response to the expected number.
Description
CLAIM OF PRIORITY
[0001] This application is a divisional of U.S. patent application
Ser. No. 09/896,388 filed on 28 Jun. 2001 entitled "GENERATING AN
OPTIMIZED PRICE SCHEDULE FOR A PRODUCT", and which claims the
benefit under 35 U.S.C. .sctn. 119(e) of U.S. Provisional
Application Ser. No. 60/238,676, filed Oct. 6, 2000. U.S. patent
application Ser. No. 09/896,388 and U.S. Provisional Application
Ser. No. 60/238,676 are commonly assigned to the assignee of the
present application. The disclosure of related U.S. patent
application Ser. No. 09/896,388 and U.S. Provisional Application
Ser. No. 60/238,676 are hereby incorporated by reference into the
present disclosure as if fully set forth herein.
BACKGROUND
[0002] 1. Technical Field of the Invention
[0003] This invention relates in general to commercial
environments, and more particularly to generating an optimized
price schedule for a product.
[0004] 2. Background of the Invention
[0005] An important decision for a business to make is determining
the prices of products, goods, or services offered by the business.
Pricing decisions are important to a business's success or failure,
since these decisions may have a critical impact on customer
demand, profitability, and business operations. Informed pricing
decisions, however, may be difficult to make, since these decisions
may need to reflect a large number of business objectives and
operating constraints, and may need to be made for a large number
of items across a large number of sales locations. Moreover,
pricing decisions may need to be frequently updated in order to
adjust for rapid changes in business conditions, such as changes in
inventory, demand, or a competitor's prices. Consequently,
businesses may benefit greatly from price optimization, which may
allow businesses to make effective pricing decisions.
[0006] A business may generate a price schedule over a time
horizon, and may optimize the price schedule in order to maximize
the benefit of a product to the business. For example, a price
schedule may be optimized to maximize expected profits or revenues
over a time horizon, subject to operating constraints such as an
allowed frequency of price changes, a maximum number of price
changes, or an inventory target level. Optimizing price schedules,
however, may be computationally difficult. As a result, previous
techniques for generating an optimized price schedule have been
inadequate.
SUMMARY OF THE INVENTION
[0007] In accordance with the present invention, disadvantages and
problems associated with generating price schedules have been
substantially reduced or eliminated.
[0008] In accordance with an embodiment of the present invention, a
method for generating a price schedule includes generating a
transition graph having paths. Each path has states, and each state
has a price value, an inventory value, and a state value. The
transition graph is generated by repeating the following for a
number of stages until a last stage is reached. The price value of
a successor state is determined. The inventory value of the
successor state is calculated using the price value and the
inventory value of a predecessor state. The state value of the
successor state is calculated using the price value and the
inventory value of the predecessor state. After the last stage has
been reached, an optimal path is selected according to the state
values of the states, and a price schedule is determined from the
optimal path.
[0009] In accordance with another embodiment of the present
invention, a method for computing an elasticity curve includes
selecting a demand model having a number of variables. A number of
values for each variable are received. Filter sets that restrict
the values for at least one variable are defined. An elasticity
curve is determined for each filter set by filtering the values for
at least one variable using the filter set, and calculating the
elasticity curve from the filtered values by performing a
regression analysis using the demand model as a regression
equation. A quality value is measured for each elasticity curve,
and an optimal elasticity curve is selected according to the
quality values.
[0010] In accordance with another embodiment of the present
invention, a method for determining a sales forecast from an
estimated demand and inventory includes defining a number of
locations. An inventory and a demand are estimated at each
location. An expected number of unrealized sales at each location
is calculated using a difference between the demand and the
inventory at the location. A sales forecast is determined using the
expected number of unrealized sales.
[0011] Certain embodiments of the present invention may provide one
or more technical advantages over previous price scheduling
techniques. Selling goods typically requires dynamic adjustment of
a sales price over a time horizon. Given a forecast of product
demand over time and a model of price elasticity, the present
invention may calculate a price schedule that maximizes a business
objective such as cumulative revenue, while satisfying business
constraints such as a desired price behavior or an inventory target
level.
[0012] The present invention may generate price schedules that
satisfy a variety of operating constraints. Price schedules are
typically required to meet operating constraints such as a maximum
number of price changes within a given time period of a time
horizon, a maximum number of price changes over a time horizon, or
a maximum price change over a time horizon. Price values may be
constrained to meet specific price rules, for example, a price
value must have a "9" in the cents position. Price values may be
constrained to adhere to certain price reduction levels, such as
25%, 50%, or 75% off a base price. Constraints may be applied to
the inventory age as described by the time the products are stored
in inventory. The present invention may generate price schedules
that satisfy these and other operating constraints.
[0013] The present invention may allow for optimization of a
variety of business objectives. Objectives may include, but are not
limited to, margin and revenue considerations, opportunity costs of
capital, inventory carrying costs, inventory age, costs of
implementing price changes, impact on profits of substitute
products, or opportunity costs of allocated shelf-space, or any
other suitable objective.
[0014] The present invention may be extended to incorporate an
uncertainty of a demand forecast or an elasticity model in order to
achieve certain statistical guarantees of performance of computed
price schedules. The invention may be extended to compute price
schedules of portfolios of products while considering price
constraints between these products, or price schedules for groups
of locations given price constraints between locations in the
group.
[0015] The present invention may efficiently generate an optimized
price schedule using a "quantized dynamic programming" technique. A
transition graph with paths representing possible price schedules
may be generated using quantized dynamic programming. An optimal
path of the transition graph is selected in order to determine an
optimized price schedule. The present invention may improve the
efficiency of the optimization by quantizing values associated with
the transition graph at various degrees of granularity. Quantizing
the state values reduces the size of transition graph, which may
improve the processing time and power required to determine an
optimal path of the transition graph.
[0016] The present invention may take into account the elasticity
of a product in order to improve the accuracy of the optimization.
The elasticity of a product describes a change in the demand of a
product in response to a change in the price of the product. The
present invention may take into account the effect of unrealized
sales due to supply limitations, which may improve the accuracy of
the optimal path. An unrealized sale is predicted where there is a
demand for a product, but no inventory, and may result when
inventory is distributed across a group of locations that are being
optimized together. Typically, aggregate values only take into
account a total demand and a total inventory and do not account for
supply limitations.
[0017] The present invention may be used to compute an optimal
sequence of product markdowns for liquidating merchandise, which
may enable sellers to better plan and more profitably manage
inventory, such as at the end of a product lifecycle. Given initial
inventory and price values, a price schedule of product markdowns
that maximizes business objectives while satisfying business
constraints may be calculated. The price schedule may be used to
maximize margin capture rates while reducing margin degradation and
to provide accurate estimates of both margin capture rates and
margin degradation factors. In addition, the present invention may
be used to determine optimal start and end dates of a markdown
horizon, or to determine which products should be put on a markdown
plan. The present invention may be used to guide the decision of
how many units of which product should be acquired for subsequent
sale.
[0018] Systems and methods incorporating one or more of these or
other advantages may be well suited for modem commercial
environments such as those associated with marking down the price
of a product to achieve a predetermined inventory target. Other
technical advantages are readily apparent to those skilled in the
art from the following figures, descriptions, and claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0019] For a more complete understanding of the present invention
and its advantages, reference is now made to the following
description, taken in conjunction with the accompanying drawings,
in which:
[0020] FIG. 1 illustrates an example system for generating an
optimized price schedule for a product;
[0021] FIG. 2 illustrates an example transition graph that
represents possible valid price schedules for a product;
[0022] FIG. 3 illustrates an example method for generating an
optimized price schedule for a product;
[0023] FIG. 4 illustrates an example method for computing
elasticity;
[0024] FIG. 5 illustrates an example method for optimizing a
transition graph to generate an optimized price schedule for a
product;
[0025] FIGS. 6A through 6C illustrate example an elasticity curve;
and
[0026] FIG. 7 illustrates an example method for adjusting an
aggregate inventory value.
DETAILED DESCRIPTION OF THE INVENTION
[0027] FIG. 1 illustrates an example system 10 that generates an
optimized price schedule for a product. A price schedule lists
prices for a product at successive stages of time. A company 20 may
use system 10 to determine an optimized price schedule for a
product sold by company 20. Depending on the nature of company 20,
company 20 may include any combination of locations 24, for
example, one or more sales locations 24.
[0028] Company 20 and/or one or more locations 24 may include a
computer system 26 that may share data storage, communications, or
other resources according to particular needs. Computer systems 26
may include appropriate input devices, output devices, mass storage
media, processors, memory, or other components for receiving,
processing, storing, and communicating information according to the
operation of system 10. As used in this document, the term
"computer" is intended to encompass a personal computer, work
station, network computer, wireless data port, wireless telephone,
personal digital assistant, one or more microprocessors within
these or other devices, or any other suitable processing device.
Reference herein to a location 24 may include reference to one or
more associated computing devices and/or persons, as
appropriate.
[0029] A server 30 manages applications that generate an optimized
price schedule. Server 30 includes an optimizer 34 and an
elasticity module 36. Optimizer includes a transition graph
generator 32 and a forecast correction module 35. Transition graph
generator 32 may be used to generate a transition graph that
represents possible price schedules that satisfy predetermined
business constraints. Optimizer 34 optimizes the transition graph
generated by transition graph generator 32 in order to determine an
optimal path of the transition graph. The optimal path represents
an optimal price schedule. Forecast correction module 35 determines
a projected number of unrealized sales, and converts a demand
forecast into a sales forecast. Elasticity module 36 may be used to
determine a projected price elasticity curve that transition graph
generator 32 may use to generate a transition graph.
[0030] A database 40 stores data that may be used by server 30.
History 42 may include data that may be used to generate a price
schedule for a product, such as inventory history or sales history
of one or more products. History 42 may include, for example, a
number of units of a product sold, a price per unit, and a time at
which the units were sold. Elasticity curve 44 describes an
estimated change in demand for a product in response to a change of
a price of the product. Demand forecast 43 describes a forecasted
demand over time. Transition graph generator 32 uses elasticity
curve 44 to determine an estimated change in the demand of a
product in response to a change in the price of the product.
[0031] Locations 24 and/or database 40 may be coupled to server 30
using one or more local area networks (LANs), metropolitan area
networks (MANs), wide area networks (WANs), a global computer
network such as the Internet, or any other appropriate wire line,
wireless, or other links.
[0032] FIG. 2 illustrates an example transition graph 50 that
represents possible price schedules. Transition graph 50 includes
states 52 at different stages 60. Stages 60 represent time
intervals during which a product has a particular price. Stages 60
may represent any suitable time interval, for example, a week.
Additionally, the time intervals represented by stages 60 may be
equal to each other in length or may differ from each other, for
example, using telescoping buffers. In the illustrated example, n
stages 60 are illustrated. A predecessor state may be coupled to a
successor state by a transition 53. A sequence of states 52 from
stage 160a to stage n 60n coupled by transitions 53 form a path of
transition graph 50.
[0033] A state 52 may include any combination of values, for
example, a stage value 51, a price value 54, an inventory value 56,
a state value 58, and a state history 59. Stage value 51 represents
the number of the stage 60 at which state 52 occurs. Price value 54
represents the price per unit of a product. Price value 54 may
alternatively be associated with a transition 53 from a predecessor
state to a successor state. Inventory value 56 represents the
number of units of the product in the inventory of company 20,
typically at the beginning of the state following transactions at
previous states.
[0034] State value 58 represents the value of state 52, and is used
to calculate the value of the paths of transition graph 50. State
value 58 may be computed from, for example, the sales of a product,
the expected profit of a product, the gross margin of a product,
the inventory carrying cost of an optimal path leading to the
state, the number of price changes of an optimal path leading to
the state, or the average selling price of a product. State history
59 of state 52 includes information associated with a path from the
initial state to state 52. For example, state history 59 may
include a number of price changes since stage 60a or a number of
stages since a last price change. State history 59 may include a
certainty value that measures the certainty of state value 58. The
certainty value may be determined from an error margin associated
with the calculation of state value 58.
[0035] In the illustrated example, transition graph 50 includes
state 52a at stage 60a. State 52a has a price value 54 of
"$100.00," an inventory value 56 of "500 units", a state value 58
of "0" (since state 52a is an initial state), and a state history
59 h. State 52a is a predecessor state to successor states 52b-e.
Successor states 52b-e represent possible states at stage 60b given
state 52a at stage 60a. States 52b-e include price values
"$100.00," "$95.00," "$90.00," and "$85.00," respectively. These
price values 54 represent possible prices of the product at stage
60b given that the product has a price value of $100.00 at stage
60a. Inventory values 56 of "400 units" for states 52b-e represent
the number of units at stage 60b given that there were five hundred
units with a price value of $100.00 per unit at stage 60a.
Inventory value 56 may be computed using a demand forecast, and
elasticity curve 44 provided by elasticity module 36. State values
58 of states 52b-e measure the value of states 52b-e given that one
hundred units were sold at a price value of $100.00 per unit.
[0036] The values 54, 56, 58, and 59 may be quantized to reduce the
number of successor states 52, which may reduce the complexity of
transition graph 50. Reducing the complexity of transition graph 50
may in turn reduce the processing power and time needed to generate
transition graph 50, which may be important if transition graph 50
is large. In one embodiment, price value 54 may be quantized. For
example, specific price values 54 may be predetermined for each
stage. "Each" as used in this document means each member of a set
or each member of a subset of a set. In the illustrated example,
the price values "$100.00", "$95.00," "$90.00," and "$80.00" may be
predetermined for states 52b-e. Alternatively, changes in the price
values 54 from one stage 60 to another stage 60 may be
predetermined. For example, price changes of $0.00, -$5.00,
-$10.00, and -$15.00 may be predetermined for states 52b-e.
Alternatively, price increments may be predetermined. For example,
price values at $5.00 increments may be predetermined for states
52b-e.
[0037] Similarly, inventory values 56 may be quantized. Inventory
increments may be predetermined, and inventory values 56 at a
successor stage 60 computed from price value 54 and an inventory
value 56 at a predecessor stage 60 may be rounded up or down to the
appropriate quantized inventory value 56. For example, an inventory
increment may be predetermined to be ten units, and inventory
values 56 of states 52 may be rounded up or down to inventory
values at increments of ten units. Rounding of inventory values,
however, is not required to store the states, but may be used to
compare states.
[0038] Additionally, constraints may be used to reduce the number
of successor states 52 generated from a predecessor state 52.
Constraints may be placed on price value 54. For example, a maximum
and a minimum price change may be used to limit the difference
between price values 54 of a successor state 52 and the price
values 54 of a predecessor state 52. In the illustrated example, a
maximum price change is -$15.00, and no minimum price change is
given. An absolute minimum price value 54 and an absolute maximum
price value 54 may be defined to limit the price value 54 of any
state 52. In the illustrated example, a maximum price value is the
starting price of "$100.00," and a minimum price value is
"$50.00."
[0039] A minimum and a maximum number of price changes may be used
to control the number of times price value 54 may change from stage
60a to stage 60n. Alternatively, initial maximum and minimum price
changes may be used to limit the price change from stage 60a to
stage 60b, and subsequent maximum and minimum price changes may be
used to limit price changes from stage 60b to stage 60n. A minimum
number of stages 60 between price changes may be used to avoid
frequent price changes. A maximum number of price changes may be
defined to limit the number of price changes from stage 60a to
stage 60n.
[0040] Constraints may be placed on inventory values 56. For
example, a maximum ending inventory may be used to eliminate states
52 at stage 60n that include inventory values 56 that are too high.
Additionally, constraints may define a penalty or cost for
inventory left at the last stage 60. Maximum and minimum inventory
values 56 may be used to control the unit's inventory at each stage
52.
[0041] FIG. 3 illustrates an example method for generating an
optimized price schedule for a product. At step 78, elasticity
module 36 accesses demand forecast 43 from database 40. At step 80,
elasticity module 36 computes an optimal elasticity curve 44.
Elasticity curve 44 describes the change in the demand for a
product in response to a change in the price of the product. A
method for computing elasticity curve 44 is described in more
detail with reference to FIG. 5. Demand forecast 43 is adjusted at
step 82. Demand forecast 43 may be adjusted in order to take into
account unrealized sales that are estimated at one or more sales
locations 24. A method for adjusting demand forecast 43 is
described in more detail with reference to FIG. 7. Demand forecast
43 is converted to a sales forecast at step 84. Generating an
optimized price schedule for locations 24 in the aggregate uses a
sales forecast. A method for converting demand forecast 43 is
described in more detail with reference to FIG. 7.
[0042] The values describing the product are quantized at step 86
to reduce the complexity of the computation. At step 88, transition
graph generator 32 generates a transition graph 50 that represents
possible price schedules for a product. A method for generating
transition graph 50 described with reference to FIG. 4. At step 90,
optimizer 34 determines an optimal path of transition graph 50. The
optimal path represents an optimized price schedule for company 20.
Determining an optimal path is described in more detail with
reference to FIG. 4. A price schedule is determined from the
optimal path at step 92. The price schedule is output at step 94. A
computer 26 may output the price schedule.
[0043] FIG. 4 illustrates an example method for generating an
optimized price schedule using dynamic programming. Using dynamic
programming techniques, a transition graph 50 is generated. An
optimal path of transition graph 50 is selected to determine an
optimized price schedule. In one embodiment, a user at location 24
may use computer 26 to initiate transition graph generator 32,
which may in turn use elasticity module 36 and optimizer 34 to
generate an optimized price schedule.
[0044] Generating a price schedule includes generating transition
graph 50 that comprises paths. Each path includes states 52, and
each state 52 may include, but is not limited to, the following: a
stage 60 relating to the state's position in the time horizon, an
assigned price, a projected inventory level, a state value, and a
record of historic information, such as number of previous price
changes. The inventory level, value, and history of state 52
reflect the best path from the origin of transition graph 50 that
leads to state 52.
[0045] Transition graph 50 may be generated by repeating the
following for a number of stages 60 until a final stage is reached.
The price value of a successor of a current state 52 is determined
using a forecast of product demand at the current stage 60 and a
mathematical model of the current stage's price-demand response,
also referred to as "price-demand elasticity." The process of
generating successor states may be called "state expansion". The
stage 60, inventory level, value, and history of the successor
state 52 are calculated using the current state information in
addition to the forecasted demand and price-demand elasticity for
the current state. The process of state expansion may be carried
out for states 52 of a given stage, advancing stage 60 by stage 60
through the time horizon in order to construct transition graph 50.
After the final stage 60 has been reached and states 52 have been
expanded, an optimal path is selected according to the state values
and other information of states 52. A price schedule is determined
from the optimal path.
[0046] At step 150, transition graph generator 32 defines states 52
and transitions 53 of transition graph 50. States q.sub.i may be
defined by Equation (6):
q.sub.i:=(s.sub.i,p.sub.i,c.sub.i,v.sub.i,h.sub.i) (6)
[0047] where:
[0048] s.sub.i represents the stage,
[0049] p.sub.i represents the price at stage s.sub.i,
[0050] c.sub.i represents the inventory of state q.sub.i
[0051] v.sub.i represents the value of state q.sub.i,
[0052] h.sub.i represents accumulated state history of state
q.sub.i.
[0053] Set Q is defined as the set of all states q.sub.i. While the
state history may include various aspects relating to an optimal
path to the state such as a number of price changes, the state
representation as expressed by Equation (6) abstracts away the
details of the state history. Different representations of a state
may be used. Unless otherwise noted, the components of a state are
labeled using the state's annotation. For example, the state q' has
components labeled (s', p', c', v', h').
[0054] State value v.sub.i is used to evaluate states q.sub.i
during state expansion. State value v.sub.i may represent, for
example, revenues accumulated through state q.sub.i. Additional or
alternative criteria may be used to select an optimal final state
from transition graph 50. For example, an evaluation function
finalval: Q.fwdarw.R that maps states to real numbers may be used
to evaluate inventory values and other values of a final state. A
feasibility function finalfeasible: Q.fwdarw.{0,I} may be used to
determine whether a final state is feasible according to the
constraints. For example, a feasibility function may be used to
determine whether a final inventory value is acceptable.
[0055] Initial conditions and data are received at step 152.
Initial conditions may include a maximum number of stages n, an
initial state q.sub.0, and a maximum number M of inventory units
allowed at the last stage n. Other constraints may also be included
in the initial conditions. Initial conditions may also include
quantization criteria such as quantized inventory levels C and
quantized price levels P. Quantization of inventory and price
values may be defined by Equations (7): .gamma..sub.c:R.fwdarw.C
quantization of inventory (7) .gamma..sub.c:R.fwdarw.P quantization
of price
[0056] where R is the set of real numbers. In general, the
quantization may be used to limit the number of states that may be
generated at each stage while constructing the transition
graph.
[0057] Initial data may include a demand forecast F.sub.s at a
stage s, and an elasticity adjustment E(p,s) for price p at stage s
that may be used to adjust demand forecast F.sub.s. Elasticity
adjustment E(p,s) may be determined from the elasticity curve
calculated by elasticity module 36 according to the method as
described in connection with FIG. 5. For example, an elasticity
constant c.sub.E may be extracted from the elasticity curve, as
expressed by Equation (1), and may be used to determine E(p,s). If
only the effect of price on demand is considered, and if elasticity
is assumed to be constant over time and given according to the
model in Equation (1), E(p,s) may be defined using Equation (8): E
.function. ( p , s ) = ( p p 0 ) c E ( 8 ) ##EQU1##
[0058] Where
[0059] c.sub.E=elasticity constant
[0060] p.sub.0=base price on which forecast F.sub.s is based
[0061] Transition 53 from a predecessor state 52 to a successor
state 52 may be defined by a state-transition function expressed by
Definition (9) that has a state-transition operator :
(s,p,c,v,h)(s',p',c',v',h'), if and only if (9) [0062] s'=s+1,
[0063] p'.epsilon.P, [0064]
c'=.gamma..sub.c(max(0,c-F.sub.sE(p,s))), [0065] v'=v+p(c-c'),
[0066] h'captures the new state history and modifies h according to
the transition, and [0067] the transition to the new state is
consistent with any additional constraints that may be imposed.
[0068] Definition (9) provides an example of a state-transition
function. Transition 53, however, may be defined in any suitable
manner. In addition, constraints may be placed on transition 53 in
order to limit the successor states 52 of a state 52. Any of the
components of state 52 may be constrained. A constraint may, for
example, prohibit drastic or frequent changes in the price values.
A price-adjusted demand forecast F.sub.s. E(p,s) may be adjusted to
take into account unrealized sales that occur at one or more sales
locations 24. A method for adjusting the price-adjusted demand
forecast is described in more detail in connection with FIG. 7.
[0069] The following summary outlines a method for determining an
optimal final state. The method expands transition graph 50 and
determines an optimal feasible final state. An optimized price
schedule may be determined from the optimal feasible final state
and transition graph 50. The subsequent description provides a more
detailed description of the method. TABLE-US-00001 Optimal Price
Scheduling Algorithm (Summary) Input: Stages n, Forecast
F.sub.s,Elasticity E(p,s), Quantizations Initial staTe q.sub.0 1 K
:= { q 0 } , U := Q .times. .times. K , F := { q .di-elect cons. U
: q 0 q } ##EQU2## 2 for k = 1 to n 3 S.sup.k := {} 4 for .times.
.times. each .times. .times. p _ .di-elect cons. P ##EQU3## S k :=
S k { ( q * , q ' ) .di-elect cons. K F : q _ .di-elect cons. F
& ##EQU4## 5 ( q * , q ' ) = arg .times. .times. max ( q 1
.times. q 2 ) .di-elect cons. K F .times. { v 2 : q 1 q 2 &
##EQU5## q 2 = ( k + 1 , p _ , c 2 , v 2 , h _ ) & .times.
.gamma. c .function. ( c 2 ) = .gamma. c .function. ( c _ ) }
##EQU6## 6 end 7 K := K .orgate. F 8 U := U/F 9 F := { q '
.di-elect cons. U : .E-backward. q .di-elect cons. K : q q ' }
##EQU7## 10 end Output: argmax.sub.q.di-elect
cons.K:finalfensible(q){finalval(q)}, Graph .function. ( K , k = 1
, .times. , n .times. S k ) ##EQU8##
[0070] At step 154, data structures that describe transition graph
50 are defined and initialized. The data structures may include set
K at stage i, which is a set of maximal states q that may be
coupled by transitions 53 from initial state q.sub.0 to a state at
stage i. A maximal state 52 may be calculated according to state
value v. Equation (10) describes a valid invariant for the states
in set K: .A-inverted. q = ( s , p , c , v , h ) .di-elect cons. K
.times. : .times. .times. q = arg .times. .times. max q ' .di-elect
cons. Q .times. { v ' .times. : .times. .times. q 0 * q ' &
.times. .times. q ' = ( s , p , c ' , v ' , h ) & .times.
.gamma. c .function. ( c ' ) = .gamma. c .function. ( c ) } ( 10 )
##EQU9##
[0071] where denotes a possibly repeated application of the
state-transition operator , as defined by Definition (9). Equation
(10) expresses that at any time, set K contains only maximal
states, that is, states (s, p, c, v, h) for which there is no
better state, having the same values of s, p, h, and the same
quantized value of c, that is reachable from q.sub.0.
[0072] Initially, set K is defined as {q.sub.0}. Set F is a set of
successor states 52 that may be coupled to a maximal predecessor
state 52 of set K. Set U is a set of unexplored states 52 at a
stage 60, and may be defined by U=(Q\K)\F. Set U may be initialized
as U:=Q\K. Set S is a set of transitions 53 that couple a maximal
predecessor state of set K to an unexplored successor state 52 of
set U. Set S maybe initialized as S:={ }.
[0073] Successor states 52 are generated at step 158. Successor
states 52 may be generated by adding state transitions to the set
S.sup.k, according to Equation (11): S k := S k { ( q * , q ' )
.di-elect cons. K .times. F | q _ .di-elect cons. F & .times. (
q * , q ' ) = .times. .times. arg .times. .times. max ( q 1 , q 2 )
.di-elect cons. K .times. F .times. .times. { v z | q 1 q 2 &
.times. q 2 = ( k + 1 , p _ , c 2 , v 2 , h _ ) & .times.
.times. .gamma. c .function. ( c 2 ) = .gamma. c .function. ( c _ )
} ( 11 ) ##EQU10##
[0074] Ordered pair (q*,q') is a state-transition to be added, and
q is a reachable state of set F that conforms to the specific price
value p. The argmax expression yields an ordered pair (q*,q').
State q' of the ordered pair represents a value-maximal successor
state q', given fixed price value p, state history value h, and
fixed inventory value c, modulo the given quantization
.gamma..sub.c, and state q* represents the origin of the
transition. State q binds inventory value c and state history value
h, and enforces that only states which equivalent state history
values are compared in the argmax expression. Set F, set K, and set
U, are updated according to Equations (12):
F:={q'.epsilon.U:.E-backward.q.epsilon.K:qq'} K:=K.orgate.F U:=U\F
(12)
[0075] A successor state 52 may be indexed by its maximal
predecessor state 52 in order to allow for efficient retrieval of
maximal states 52 from previous stages 60. The index may be
implemented in any suitable manner, for example, using a hash
function or static array indexing. Invalid successor states 52 may
be eliminated according to the constraints specified in the initial
conditions.
[0076] Values for the successor state 52 are quantized and adjusted
at step 160. Values for successor states 52 may be quantized and
adjusted using Equations (7). Price value p' is quantized according
to the quantization criteria specified in the initial conditions.
Quantizing values reduces the complexity of transition graph 50,
which may improve the processing time required to determine an
optimal path of transition graph 50. Inventory c' is also adjusted
using the elasticity adjustment E(p,s). Inventory c' may also be
adjusted in order to take into account unrealized sales that occur
at one or more sales locations 24. A method for adjusting inventory
values 56 is described in more detail in connection with FIG.
7.
[0077] Quantization may be applied in any suitable manner. For
example, price values may be stored as quantized values, and
inventory values may be stored as exact precise values. When
different states are compared using Equation (11), the inventory
values may be compared after quantization. If the quantized values
are the same, the two successors can be regarded identical
according to Equation (11).
[0078] At step 164, transition graph generator 32 determines
whether there is a next stage 60. If there is a next stage 60,
transition graph generator 32 returns to step 156 to define
successor states 52 at the next stage 60. If there is no next stage
60 at step 164, transition graph generator 32 proceeds to step 166,
where optimizer 34 determines an optimal path of transition graph
50. The optimal path may be determined the at the final stage,
which may be described by Equation (14), in terms of an optimal
feasible solution and a transition graph: arg .times. .times. max q
.di-elect cons. K .times. : .times. .times. finalfeasible
.function. ( q ) .times. { finalval .function. ( q ) } , .times.
Graph ( K , k = 1 , .times. , q .times. S k ) ( 12 ) ##EQU11##
[0079] The selection of the optimal path may be limited by a
constraint specified in the initial conditions, which may be
labeled as finalfeasible. Additionally or alternatively, a
predetermined certainty value may limit the optimal paths to paths
that satisfy the predetermined certainty value.
[0080] A price schedule is determined from the optimal path at step
168. The path comprises a sequence of states 52 that describe a
price value at each stage 60. The price values at each stage 60 are
converted into a price schedule for a product. After the price
schedule is determined, the method is terminated. A user may
program transition graph generator 32 to periodically perform the
method, for example, daily or weekly, in order to provide an
updated price schedule generated using recent data.
[0081] In one embodiment, the present invention may be used to
compute an optimal sequence of product markdowns for liquidating
merchandise, which may enable sellers to better plan and more
profitably manage inventory, for example, at the end of a product
lifecycle. Given initial inventory and price values, a price
schedule of product markdowns that maximizes business objectives
while satisfying business constraints may be calculated.
[0082] FIG. 5 illustrates an example method for computing
elasticity. In one embodiment, a user at location 24 may use
computer 26 to initiate elasticity module 36 to compute an
elasticity curve 44. According to the method, elasticity module 36
determines an elasticity curve from state history and may use
different filter sets to determine the elasticity curve. In
general, each filter set is used to filter product data. Regression
analysis is performed on the filtered data to yield elasticity
curves. The fit of the data and the elasticity curves is measured,
and an elasticity curve is selected.
[0083] Elasticity module 36 begins at step 110, where a demand
model having dependent and independent variables is determined. The
demand model may be defined by, for example, Equation (1):
D=KP.sup.C.sup.E(1+a).sup.qt.sup..beta.e.sup.n (1)
[0084] where:
[0085] D=demand
[0086] P=price
[0087] .alpha.=promotional variable
[0088] t=time
[0089] c.sub.E=elasticity constant
[0090] K, q, .beta., and .gamma. are constants, K>O, and it is
expected that c.sub.E<0, .beta.>0, and .gamma.<0. Equation
(1) may be rewritten as Equation (2): ln(D)=ln(K)+c ln(P)+q
ln(1+.alpha.)+.beta. ln(t)+.gamma.t (2)
[0091] Equation (2) may be used as a regression equation, where
ln(D) is the dependent variable and ln(P), ln(1+.alpha.), ln(t),
and t are the independent variables.
[0092] At step 112, values for the dependent and independent
variables are received. The values may be derived from data
describing one or more products. The products may include the
product for which a price schedule is to be generated and/or
products similar to the product for which a price schedule is to be
generated. For example, a single product may not have sufficient
sales history data to generate a meaningful price schedule, so data
from similar products may be combined to generate a price
schedule.
[0093] Data for a product may be grouped in data rows, where each
data row includes data for a specific stage in time. A data row may
include, for example, the following values: Product Identifier,
Stage Number, Sales, Price, Revenues, and Promo. Product Identifier
identifies the product, and Stage Number identifies the stage.
Sales describes the number of units of the products sold during the
stage, Price defines the price per unit, and Revenues describe the
revenues generated from the sale of the product. Promo describes
the number of units sold during a promotion for the product, such
as a temporary price reduction. Other or additional values may be
used to calculate an elasticity curve. For example, a seasonal
index variable that describes how a time of year, such as the
Christmas season, affects the demand for a product maybe used.
[0094] The values for Sales may be used as the values for demand D.
Values for Price and Stage Number may be used as the values for
price P and time t. Promotion variable .alpha. measures the
significance of a promotion, and may be defined using Equation (3):
.alpha. := { Promo Sales , if .times. .times. Promo > Promo
.times. .times. Filter 0 otherwise ( 3 ) ##EQU12##
[0095] where Promo Filter is a constraint.
[0096] Filter sets are defined at step 114. Each filter set
comprises one or more constraints that restrict the values for the
variables of the demand model. An example filter set is described
by Table 1: TABLE-US-00002 TABLE 1 Example Filter Name Description
Value Min Sales Minimum number of sales 5 units Min Revenues
Minimum revenues $10 Min Rows Minimum number of data rows 15 points
Promo Filter Promotions filter 5% Perc Filter Data value filter
2.5%
[0097] According to the filter set of Table 1, a data row is
removed if Sales is less than Min Sales or Revenues is less than
Min Revenues. The data rows for a product are removed if number of
data rows for the product is less than Min Rows. Promo Filter is
used to define promotion variable .alpha., as shown in Equation
(3). Data rows that include values that are within a first or last
percentile given by Perc Filter are removed.
[0098] Steps 116 through 144 are performed for each filter set in
order to determine the filter set that yields an optimal elasticity
curve. At step 116, a filter set is selected. Steps 118 through 136
are performed on data for each product individually in order to
eliminate unacceptable data. At step 118, a product is selected. At
step 120, the values for the product are filtered using the filter
set selected at step 116. The variables are normalized at step 122.
Variables may be normalized according to Equations (4):
Norm(D)=ln(D)-Mean(ln(D)) Norm(P)=ln(P)-Mean(ln(P))
Norm(t)=t-Mean(t) Norm(ln(t))=ln(t)-Mean(ln(t))
[0099] where Mean (x) is the average of x.
[0100] At step 124, a regression analysis is performed using the
demand model, as expressed by Equation (2), as the regression
equation of the dependent variable over the independent variables,
that is, of ln(D) over ln(P), ln(1+.alpha.), ln(t), and t. The
regression analysis yields values for coefficients c.sub.E, K, q,
.beta., and .gamma., which are inserted into Equation (2) to define
a regression or elasticity curve. The quality of the elasticity
curve is measured at step 126. The quality may be measured by
determining the fit of the elasticity curve to the values that were
used to generate the elasticity curve, and may be measured using a
Box-Wetz value B expressed by Equation (5): B = ( max i .times. Y ^
i - min i .times. Y ^ i ) / p .times. .times. s 2 n ) ( 5 )
##EQU13##
[0101] where: p = number .times. .times. of .times. .times.
parameters ##EQU14## s 2 .apprxeq. .sigma. 2 .times. V .function. (
Y i ) ##EQU14.2## V _ .function. ( Y ^ ) = i .times. V .function. (
Y ^ i ) / n ##EQU14.3##
[0102] The quality of the elasticity curve is determined to be
acceptable or not at step 128. The quality may be acceptable if it
satisfies a predetermined criteria. If the quality is not
acceptable, the data for the product is eliminated at step 130, and
elasticity module 36 proceeds to step 138. If the quality is
acceptable, elasticity module 36 proceeds to step 132.
[0103] At step 132, an elasticity value is determined from the
elasticity curve. The negative of the elasticity coefficient
c.sub.E of the price variable P may be used as the elasticity
value. In one embodiment, the elasticity value is required to be
positive.
[0104] At step 138, elasticity module 36 determines whether there
is a next product. If there is a next product, elasticity module 36
returns to step 118, where the next product is selected. If there
is no next product, elasticity module 36 proceeds to step 140.
[0105] Steps 140 through 144 are performed on the aggregated data
for the products in order to determine which filter set provides an
optimized fit of the elasticity curve. At step 140, the data for
the remaining products are aggregated to yield aggregated data. At
step 142, regression analysis is performed on the aggregated data.
The regression analysis may use the demand model as expressed by
Equation (2) as the regression equation of the dependent variable
over the independent variables. The quality of the elasticity curve
is measured at step 144, and may be measured in a manner
substantially similar to that described above in connection with
step 126.
[0106] At step 138, elasticity module 36 determines whether there
is a next filter set. If there is a next filter set, elasticity
module 36 returns to step 116, where the next filter set is
selected. If there is no next filter set, elasticity module 36
proceeds to step 148, where an optimal elasticity curve is
selected. The optimal elasticity curve may be the highest quality
elasticity curve according to measurements performed at step 144.
Additionally, the elasticity curve may be rewritten in the format
of Equation (1) and sent to transition graph generator 32. After
selecting the optimal elasticity curve, elasticity module 36
terminates the method. A user may program elasticity module 36 to
perform the method periodically, for example, daily or weekly, in
order to provide an updated elasticity curve to transition graph
generator 32.
[0107] FIGS. 6A through 6C illustrate an example elasticity curve
40. FIG. 6A illustrates elasticity curve 40 with respect to time.
Elasticity curve 40 is computed from price values and demand
values. FIG. 6B illustrates elasticity curve 40 and the demand
values with respect to time. FIG. 6C illustrates elasticity curve
40 and the demand values with respect to the price values.
[0108] FIG. 7 illustrates an example method for estimating a sales
forecast from a demand forecast and an aggregate inventory value
that describes the total inventory spread across a number of
locations 24 of company 20. A demand forecast typically predicts
customer demand, but not sales. Computing an optimized price
schedule for a number of locations 24 in the aggregate, however,
requires the prediction of sales instead of demand. An aggregate
sales forecast may be calculated from the aggregate inventory value
and demand values from predecessor states 52.
[0109] Unrealized sales, or stockouts, may be determined in order
to predict sales. An unrealized sale is predicted where there is a
demand at a location, but no inventory. An unrealized sale may be
expressed as a difference between a demand value and an inventory
value at any given location 24. According to the method, a demand
forecast is adjusted to take into account unrealized sales that may
be predicted at one or more locations 24 of company 20, which may
improve the accuracy of the predicted inventory values of an
optimized price schedule.
[0110] The method performs a significant adjustment to the demand
forecast when inventory levels and forecasted demands are
aggregated across a number of locations 24, or a store-group. The
method may be used with the method for generating an optimized
price schedule as described with reference to FIG. 4, in order to
improve the accuracy of the predicted number of sales when
operating on a store-group level. The method may be used at each
state-expansion in order to estimate the unit sales from the demand
forecast, thereby significantly improving the accuracy of the
inventory level of a successor state, in particular at low
inventory levels. The method may be calibrated to a particular
location 24 and replenishment situation based on historic sales and
inventory figures.
[0111] This method may be applied as part of the computation of the
optimal price schedule, particularly if the estimate is not
accurately performed as a preprocessing step. This may be the case
if the demand value at each stage of the price scheduling horizon
is dependent on a price value, and the future inventory values are
dependent on the demand value. As has been outlined above, the
prediction of sales in turn depends on the inventory values,
leading to a circular dependency. The circular dependency may be
resolved by taking the effect of distributed inventory on projected
sales into account at each step of the computation of a price
schedule. FIG. 7 describes how a projected number of sales can be
computed, given a demand forecast and an aggregate inventory at
locations 24.
[0112] At step 180, transition graph generator 32 defines a number
n of locations 24. An inventory s at each location 24 is estimated
at step 182. Inventory s may be estimated by, for example, randomly
populating each location 24 with inventory units. A demand at d at
each location 24 is estimated at step 184. Demand d at each
location 24 may be estimated by randomly populating each location
24 with demand units. This random sampling may be performed a
number of times. The expected number E(M) of unrealized sales is
determined at step 186.
[0113] Alternatively, steps 182 through 186 may be performed using
a probabilistic estimation. Given S units that are assumed to be
evenly distributed across a number of n locations, the probability
of a location receiving s units may be expressed using a binomial
distribution. The binomial distribution may be used to determine
the probability of s successful experiments, where the probability
of success is 1/n. The random variable that represents the number
of units of inventory at any particular store may be denoted by
X.sub.s. At step 182, inventory s at each location 24 may be
estimated by calculating the probability of a location 24 having
inventory s using Equation (15): p .function. ( X S = s ) = Bnp
.function. ( S , s , 1 n ) = ( S s ) ( 1 n ) s ( 1 - 1 n ) S - s (
15 ) ##EQU15##
[0114] where S represents the total amount of inventory at all
locations 24. Similarly, at step 184, the probability of demand d
at each location 24 may be calculated using Equation (16): p
.function. ( X D = d ) = Bnp .function. ( D , d , 1 n ) = ( D d ) (
1 n ) d ( 1 - 1 n ) D - d ( 16 ) ##EQU16##
[0115] where D represents the aggregate demand summed over
locations 24, and X.sub.D denotes the random variable that
represents the unit demand at a particular location 24.
[0116] The expected number of unrealized sales E(M) may be
calculated at step 186 using Equation (17): E .function. ( M ) =
.times. s = 1 S .times. d = s + 1 D .times. p .function. ( S = s ,
D = d ) ( d - s ) = .times. s = 1 S .times. p .function. ( S = s )
.times. d = s + 1 D .times. p .function. ( D = d ) ( d - s )
.times. s = 1 S .times. Bnp .function. ( S , .times. s , 1 n ) d =
s + 1 D .times. .times. Bnp .function. ( D , d , 1 n ) .times. ( d
- s ) = .times. s = 1 S .times. [ ( S s ) ( 1 n ) s ( 1 - 1 n ) S -
s .times. d = s + 1 D .times. ( D d ) ( 1 n ) d ( 1 - 1 n ) D - d
.times. ( d - s ) ] ( 17 ) ##EQU17##
[0117] To efficiently implement computation of unrealized sales
E(M) on system 10, different numerical approximations schemes may
be used, depending on the value ranges of the input parameters. In
the following, several approximation schemes are described that can
be applied according to the value ranges of D, S, and n.
[0118] The binomial distribution as expressed by Equation (18): Bnp
.function. ( k , n , p ) = ( n k ) .times. p k .function. ( 1 - p )
n - k ( 18 ) ##EQU18##
[0119] may be approximated by the Poisson distribution for a
sufficiently large n, a sufficiently small p, and moderately sized
np, as expressed by Equation (19): Bnp .function. ( k , n , p )
.apprxeq. .lamda. k .times. e - .lamda. k ! , ( 19 ) ##EQU19##
[0120] where .lamda.=np. This can be applied, for example, to the
computation of E(M) at step 182, if np.gtoreq.10. Thus, steps 182
through 186 may be performed using a Poisson approximation to a
binomial distribution by computing the probability of a location 24
having an inventory s or demand d using Equation (19).
[0121] At step 186, expected number E(M) may be determined using
Equation (20): E .function. ( M ) = s = 1 S .times. d = s + 1 D
.times. Bnp .function. ( S , s , 1 n ) Bnp .function. ( D , d , 1 n
) .times. ( d - s ) = s = 1 S .times. [ ( .lamda. S ) s .times. e -
.lamda. s s ! d = s + 1 D .times. ( .lamda. D ) d .times. e -
.lamda. D d ! .times. ( d - s ) ] ( 20 ) ##EQU20##
[0122] Alternatively, the computation in Equation (17) may be
performed by using an incomplete beta-function. The inner sum of
Equation (17) may be denoted by J, and Equations (21) through (28)
may be used to describe the steps to transform J into a form that
may be efficiently computed using a standard procedure for the
incomplete beta-function. J = d = s + 1 D .times. Bnp .function. (
D , d , 1 n ) .times. ( d - s ) = d = s + 1 D .times. ( D d )
.times. ( 1 n ) d .times. ( 1 - 1 n ) D - d .times. ( d - s ) ( 21
) ##EQU21##
[0123] Probabilities p and q are defined using Equations (22): p =
1 n .times. .times. q = 1 - p ( 22 ) ##EQU22##
[0124] J may then be expressed by J1 and J2, as shown by Equation
(23): J = d = s + 1 D .times. ( D d ) .times. p d .times. q D - d
.times. d - d = s + 1 D .times. ( D d ) .times. p d .times. q D - d
.times. s = J .times. .times. 1 - J .times. .times. 2 .times.
.times. where .times. .times. J .times. .times. 1 = d = s + 1 D
.times. ( D d ) .times. p d .times. q D - d .times. d , .times. and
.times. .times. J .times. .times. 2 = s .times. d = s + 1 D .times.
( D d ) .times. p d .times. q D - d ( 23 ) ##EQU23##
[0125] Expression ( D d ) .times. d ##EQU24## may be substituted by
Equation (24): ( D d ) .times. d = D ! .times. d ( D - d ) !
.times. d ! = D .times. ( D - 1 ) ! ( D - d ) ! .times. ( d - 1 ) !
= D .function. ( D - 1 d - 1 ) ( 24 ) ##EQU25##
[0126] Furthermore, J1 may be described by Equation (25): J .times.
.times. 1 = Dp .times. d = s + 1 D .times. ( D - 1 d - 1 ) .times.
p d - 1 .times. q D - d = Dp .times. d ' = s D ' .times. ( D ' d '
) .times. p d ' .times. q D ' - d ' .times. .times. where .times. :
.times. .times. D ' = D - 1. ( 25 ) ##EQU26##
[0127] To compute J, the components J1 and J2 and Equation (26) may
be used: l = k 1 Q .times. ( Q I ) .times. p l .times. q Q - 1 = Ip
.function. ( k 1 , Q - k 1 + 1 ) ( 26 ) ##EQU27##
[0128] where I.sub.x(a,b) is an incomplete beta function given by
Equation (27), I x .function. ( a , b ) = 1 B .function. ( a , b )
.times. .intg. 0 x .times. t a - 1 .function. ( 1 - t ) b - 2
.times. d t .times. .times. where ( 27 ) B .function. ( a , b ) =
.intg. 0 .infin. .times. t a - 1 .function. ( 1 - t ) b - 1 .times.
d t ( 28 ) ##EQU28##
[0129] At step 188, the aggregate sales forecast is computed
according to the expected number of unrealized sales. An aggregate
sales forecast at a successor state 52 is calculated by subtracting
the expected sales from the aggregate inventory at a predecessor
state 52. The demand does not take into account unrealized sales.
Thus, the expected number of unrealized sales may be subtracted
from the forecasted demand to account for unrealized sales, which
may yield a more accurate price schedule. After the forecast is
adjusted, the method is terminated.
[0130] The present invention may efficiently generate an optimized
price schedule by using dynamic programming. In dynamic
programming, transition graph 50 with paths representing possible
price schedules is generated, and an optimal path of the transition
graph 50 is selected in order to determine an optimized price
schedule. The present invention may also improve the efficiency of
the optimization by using quantized dynamic programming, which
involves quantifying values associated with transition graph 50.
Quantizing the values reduces the complexity of transition graph
50, which may improve the processing time and power required to
determine an optimal path of transition graph 50. In addition, the
present invention may use an improved calculation of elasticity in
order to increase the accuracy of the optimization. Moreover, the
present invention may take into account an unrealized sale that
occurs at one of many locations, which may improve the accuracy of
the optimal path.
[0131] Although the present invention has been described with
several embodiments, a myriad of changes, variations, alterations,
transformations, and modifications may be suggested to one skilled
in the art, and it is intended that the present invention encompass
such changes, variations, alterations, transformations, and
modifications as fall within the scope of the appended claims.
* * * * *