The supply-chain is an integrated effort by a number of entities—from suppliers of raw materials to producers, to the distributors—to produce and deliver a product or a service to the end user. Planning and managing a supply chain involves making decisions which depend on estimations of future scenarios (about demand, supply, prices, etc). Not all the data required for these estimations are available with certainty at the time of making the decision. The existence of this uncertainty greatly affects these decisions. If this uncertainty is not taken into account, and nominal values are assumed for the uncertain data, then even small variations from the nominal in the actual realizations of data can make the nominal solution highly suboptimal. This problem of design/analysis/optimization under uncertainty is central to decision support systems, and extensive research has been carried out in both Probabilistic (Stochastic) Optimization and Robust Optimization (constraints) frameworks. However, these techniques have not been widely adopted in practice, due to difficulties in conveniently estimating the data they require. Probability distributions of demand necessary for the stochastic optimization framework are generally not available. The constraint based approach of the robust optimization School has been limited in its ability to incorporate many criteria meaningful to supply chains. At best, the “price of robustness” of Bertsimas et al [9] is able to incorporate symmetric variations around a nominal point. However, many real life supply chain constraints are not of this form. In this thesis, we present a method of decision support in supply chains under uncertainty, using capacity planning and inventory optimization as examples. This work is accompanied by an implementation of “Capacity Planning” and “Inventory Optimization” modules in a “Supply-Chain Management” software.
Models for Optimization Under Uncertainty
In many supply chain models, it is assumed that all the data are known precisely and the effects of uncertainty are ignored. But the answers produced by these deterministic models can have only limited applicability in practice. The classical techniques for addressing uncertainty are stochastic programming and robust optimization.
To formulate an optimization problem mathematically, we form an objective function f: n→
that is minimized (or maximized) subject to some constraints.
Minimize f0(x, ξ)
Subject to fi(x, ξ)÷0, ∀ i ε I, 1.1
where ξ ε d is the vector of data.
When the data vector ξ is uncertain, deterministic models fix the uncertain parameters to some nominal value and solve the optimization problem. The restriction to a deterministic value limits the utility of the answers.
In stochastic programming, the data vector ξ is viewed as a random vector having a known probability distribution. In simple terms, the stochastic programming problem for 1.1 ensures that a given objective which is met at least p0 percent of time, under constraints met at least pi percent of time, is minimized. This is formulated as:
Minimize T
Subject to P(f0(x, ξ)≦T)≧p0
P(fi(x, ξ)≧0)≧pi, ∀ i ε I.
The problem can be formulated only when the probability distribution is known. In some cases, the probability distribution can be estimated with reasonable accuracy from historical data, but this is not true of supply chains.
In robust optimization, the data vector ξ is uncertain, but is bounded—that is, it belongs to a given uncertainty set U. A candidate solution x must satisfy fi(x, ξ)≧0, ∀ ξ ε U, i ε I. So the robust counterpart of 1.1 is:
Minimize T
Subject to f0(x, ξ)≦T,
f
i(x, ξ)≧0, ∀i ε I, ∀ξε U.
In this case we don't have to estimate any probability distribution, but computational tractability of a robust counterpart of a problem is an issue. Also, specification of an intuitive uncertainty set is a problem.
Our approach is a variation of robust optimization. Our formulation bounds U inside a convex polyhedron CP, U ε0 CP. The choice of robust optimization avoids the (difficult) estimation of probability distributions of stochastic programming. The faces and edges of this polyhedron CP are built from simple and intuitive linear constraints, derivable from historical data, which are meaningful in terms of macro-economic behavior and capture the co-relations between the uncertain parameters.
In practice, supply chain management practitioners use a very simple formulation to handle uncertainty. The approaches to handle uncertainty are either deterministic, or use a very modest number of scenarios for the uncertain parameters. As of now, large scale application of either the stochastic optimization or the robust optimization technique is not prevalent.
Model
The model for handling uncertainty is an extension of robust optimization. The uncertainty sets are convex polyhedra made of simple and intuitive constraints derived from historical time series data. These constraints (simple sums and differences of supplies, demands, inventories, capacities etc) are meaningful in economic terms and reflect substitutive/complementary behavior. Not only is the specification of uncertainty is unique, but it they also has the ability to quantify the information content in a polytope.
The constraints are derived from macroscopic economic data such as gross revenue in one year, or total demand in one year, or the percentage of sales going to a competitor in a year etc. The amount of information required to estimate these constraints is far less than the amount of information required to estimate, say, probability distributions for an uncertain parameter. Each of the constraints has some direct economic meaning. The amount of information in a set of constraints can be estimated using Shannon's information theory. The set of constraints represents the area within which the uncertain parameters can vary, given the information that is there in the constraints. If the volume of the convex polytope formed by the constrains is VCP, and assuming that in the lack of information, the parameters vary with equal probability in a large region R of volume Vmax, then the amount of information provided by the constraints specifying the convex polytope is given by:
This assumes that all parameter sets are equally likely, if probability distributions of the parameter sets are known, the volume is a volume weighted by the (multidimensional probability density). Our formulation automatically generates a hierarchical set of constraints, each more restrictive than the previous, and evaluates the bounds on the performance parameters in reducing degrees of uncertainty. The amount of information in each of these constraint sets is also quantified using the above quantification. Our formulation also is able to make global changes to the constraints, keeping the amount of information the same, increasing it, reducing, it etc. The formulation is able to evaluate the relations between different constraints sets in terms of subset, disjointness or intersection, relate these to the observed optimum, and thereby help decision support.
While it is recognized that volume computation of convex polyhedra is a difficult problem, for small to medium (10-20) number of dimensions, one can use simple sampling techniques. For time dependent problems, the constraints could change with time, and so would the information—the volume computation will be done in principle at each time step. Computational efficiency can be obtained by looking only at changes from earlier timesteps.
All this is illustrated with an example in Chapter 4. The main contribution of this thesis is incorporation of intuitive demand uncertainty into the capacity/inventory optimization problems in supply chain management. How both static capacity planning and dynamic inventory optimization problems can be incorporated naturally in the present formulation is shown.
Literature Review
The classical technique to handle uncertainty is stochastic programming and extensive work has been done in this field. To solve capacity planning problems under uncertainty, stochastic programming as well as robust optimization has been used extensively. Shabbir Ahmed and Shapiro et. al. [1],[24],[25], have proposed a stochastic scenario tree approach. Robust approaches have been proposed by Paraskevopoulos, Karakitsos and Rustem [23] and Kazancioglu and Saitou [18], but they still assume the stochastic nature of uncertain data. Our work avoids the stochastic approach in general, because of difficulties in P.D.F estimation.
In the 1970's, Soyster [18] proposed a linear optimization model for robust optimization. The form of uncertainty is “column-wise”, i.e., columns of the constraint matrix A are uncertain and are known to belong to convex uncertainty sets. In this formulation, the robust counterpart of an uncertain linear program is a linear program, but it corresponds to the case where every uncertain column is as large as it could be and thus is too conservative. Ben-Tal and Nemirovski [4],[5],[6], and El-Ghaoui [15] independently proposed a model for “row-wise” uncertainty—that is, the rows of A are known to belong to given convex sets. In this case, the robust counterpart of an uncertain linear program is not linear but depends on the geometry of the uncertainty set. For example, if the uncertainty sets for rows of A are ellipsoidal, then the robust counterpart is a conic quadratic program. The geometry of the uncertainty set also determines the computational tractability. They propose ellipsoidal uncertainty sets to avoid the over-conservatism of Soyster's formulation since ellipsoids can be easily handled numerically and most uncertainty sets can be approximated to ellipsoids and intersection of finitely many ellipsoids. But this approach leads to non-linear models. More recently Bertsimas, Sim and Thiele [9], [10], [11] have proposed “row-wise” uncertainty models that not only lead to linear robust counterparts for uncertain linear programs but also allow the level of conservatism to be controlled for each constraint. All parameters belong to a symmetrical pre-specified interval [
The sum of normalized deviation of all the parameters in a row of A is limited by a parameter called the Budget of uncertainty, Γi.
Γi can be adequately chosen to control the level of conservatism. It is easy to see that if Γi=0, then there is no protection against uncertainty, and when Γi=n, then there is maximum protection. The uncertainty set in this formulation is defined by its boundaries which are 2N in number, where N is the number of uncertain parameters. The polyhedron formed is a symmetrical figure (with appropriate scaling) around the nominal point. This symmetric nature does not distinguish between a positive and a negative deviation, which can be important in evaluating system dynamics (for example poles in the left versus right half plane).
The present work uses intuitive linear constraints, which can be arbitrary in principle. We do not have strong theoretical results about optimality, but are able to experimentally verify the usefulness of the formulation in simplified semi-industrial scale problems with breakpoints in cost and upto a million variables.
For inventory optimization, the classical technique is the EOQ model proposed by Harris [16]in 1913. Only in the 1950's did work on stochastic inventory control begin with the work of Arrow, Harris and Marschak [3], Dvoretzky, Kiefer and Wolfowitz [14], and Whitin [30]. In 1960, Clark and Scarf [13] proved the optimality of base stock policies for linear systems using dynamic programming. Recently Bersimas and Thiele [10], [11], have applied robust optimization to inventory optimization. However their work is limited to symmetric polyhedral uncertainty sets with 2N faces, and is not directly related to economically meaningful parameters. In this work, we extend the classical results and derive both bounds in simple cases, as well as convex optimization formulations for the general case.
Swaminathan and Tayur [28], present an overview of models developed to handle problems in the supply chain domain. They list all the questions that are needed to be answered by a supply chain management system and discuss which models address which of these issues. In the procurement and supplier decisions, our model can be used to answer the following questions: How many and what kinds of suppliers are necessary? How should long-term and short-term contracts be used with suppliers?
In the production decisions, the following questions can be answered: In a global production network, where and how many manufacturing sites should be operational? How much capacity should be installed at each of these sites?
In the distribution decisions, the following questions can be answered: What kind of distribution channels should a firm have? How many and where should the distribution and retail outlets be located? What kinds of transportation modes and routes should be used?
In material flow decisions, the following questions can be answered: How much inventory of different product types should be stored to realize the expected service levels? How often should inventory be replenished? Should suppliers be required to deliver goods just in time?
Theory and Model
Two major optimization problems in supply chain management are long term capacity planning (static problem), and short term inventory control optimization (a dynamic problem). In capacity planning, the entire structure of the supply chain—locations and sizes of factories, warehouses, roads, etc is decided (within constraints). In inventory optimization, we take the structure of the supply chain as fixed, and decide possibly in real-time who to order from, the order quantities, etc. The challenge is to perform these optimizations under uncertainty.
Within this broad framework, many variants of the supply chain and inventory optimization exist. To illustrate the power of the present approach, we have treated representative examples of both problems in this thesis, using the convex polyhedral representation of uncertainty. Our capacity planning work has treated semi-industrial scale problems, with 100's of nodes, resulting in LPs upto 1 million variables. Due to the computational complexity of the dynamic inventory problem, only relatively small problems have been treated.
The results are benchmarked with theoretical analyses—problem specific ones for capacity planning and EOQ extensions for inventory optimization.
We stress that the contributions of this work are the application of the uncertainty ideas in a complete supply chain optimization framework. Our initial focus is on the big picture, the intuitive nature, and the capabilities of the approach using simple techniques, rather than provably optimal methods for one or more subproblems (we do have a number of theoretical results also). Large scale theoretical results will be a major part of the extensions of this work. Some of our results maybe suboptimal, but recall that this whole exercise is optimization under uncertainty—even loose but guaranteed bounds on cost are useful.
Capacity Planning
Introduction
A supply chain is a network of suppliers, production facilities, warehouses and end markets. Capacity planning decisions involve decisions concerning the design and configuration of this network. The decisions are made on two levels: strategic and tactical. Strategic decisions include decisions such as where and how many facilities should be built and what their capacity should be. Tactical decisions include where to procure the raw-materials from and in what quantity and how to distribute finished products. These decisions are long range decisions and a static model for the supply chain that takes into account aggregated demands, supplies, capacities and costs over a long period of time (such as a year) will work.
From a theoretical viewpoint, the classical multi-commodity flow model [Ahuja-Orlin [2]] is the natural formulation for capacity planning. However, in practice a number of non-convex constraints like cost/price breakpoints and binary 0/1 facility location decisions change the problem from a standard LP to an non-convex LP problem, and heuristics are necessary for obtaining the solution even with state-of-the-art programs like CPLEX. Theoretical results on the quality of capacity planning results do exist, and refer primarily to efficient usage of resources relative to minimum bounds. For example, one can compare the total installed capacity with respect to the actual usage (utilization), total cost with respect to the minimum possible to meet a certain demand, etc.
The Supply Chain Model: Details
In our simple generic example, to design a supply chain network, we make location and capacity allocation decisions. We have a fixed set of suppliers and a fixed set of market locations. We have to identify optimal factory and warehouse locations from a number of potential locations. The supply chain is modeled as a graph where the nodes are the facilities and edges are the links connecting those facilities. The model will work for linear, piece-wise linear as well as non-linear cost functions.
In general the supply chain nodes can have complex structure. We distinguish two major classes: AND and OR nodes, and their behaviour1. not claim to be consisten
OR Nodes: At the OR nodes, the general flow equation holds. Here, the sum of inflow is equal to the sum of outflow and there is no transformation of the inputs. The output is simply all the inputs put together. A warehouse node is usually an OR node. For example a coal warehouse might receive inputs from 5 different suppliers. The input is coal and the output is also coal and even if fewer than 5 suppliers are supplying at some time, then also output from the warehouse an be produced.
In
φCD=φAC+φBC
AND nodes: At the AND nodes, the total output is equal to the minimum input. A factory is usually an AND node. It takes in a number of inputs and combines them to form some output. For example a factory producing toothpaste might take calcium and fluoride as inputs. Output from the factory can only be produced when both the inputs are being supplied to the factory. Even if the amount of one input is very large, the output produced will depend on the quantity of other input which is being supplied in smaller amounts. The flow equation for node C in the figure, if C is an AND node will be as follows:
φCD=min(φAC,φBC)
The total cost of the supply chain is divided into 4 parts
The following notations are used in the model:
S=Number of supplier nodes
M=Number of market nodes
P=Number of products
X=Number of intermediate stages
Nx=Number of potential facility locations in stage x
E=Number of edges
Cijp(Q)=Cost function for node j in stage i of the supply chain
Ckp(Q)=Cost function for edge k of the supply chain
Qijp=Quantity of product p processed by node j in stage i
Qkp=Quantity of product p transported over edge k
Qij-max=Maximum capacity of node j in stage i
Qk-max=Maximum capacity of edge k
Φlmp=Flow of product p between node l and node m
Fij=Fixed capital cost of building node j in stage i of the supply chain
Fk=Fixed capital cost of building edge k in the supply chain
uj=Indicator variable for entity j in the supply chain, i.e., uj=1 if entity j is located at site j, 0 otherwise
The goal is to identify the locations for nodes in the intermediate stages as well as quantities of material that is to be transported between all the nodes that minimize the total fixed and variable costs.
The problem can be formulated mathematically as follows (see below also): Minimize (w.r.t optimizable parameters):
Subject to:
This minimax program is in general not a linear or integer linear optimization (weak duality can be used to get a bound, but strong duality may not hold due to the nonconvex cost, profit functions having breakpoints). The absolute best case (best decision, best demands and supplies) and worst case (worst decision, worst demands and supplies) can be found using LP/ILP techniques. We stress that even this information is very useful, in a complex supply chain framework.
However, note the following. The key idea in our approach is that we use linear constraints to represent uncertainty. Sums, differences, and weighted sums of demands, supplies, inventory variables, etc, indexed by commodity, time and location can all be intermixed to create various types of constraints on future behaviour. Integrality constraints on one or more uncertain variables can be imposed, but do result in computational complexities.
Given this, we have the following advantages of our approach:
In passing we note that the availability of multiple candidate solutions can be used to determine bounds for the a-posteriori version of this optimization. How much is the worst case cost, if we make an optimal decision after the uncertain parameters are realized? This is very simply incorporated in our cost function C( ), by using at each value of the uncertain parameters, a new cost function which is the minimum of all these solutions. This retains the LP/ILP structure of the problem of determining best/worst case bounds given candidate solutions.
C(Demands,Supplies, . . . )=min(C1(Demands, Supplies, . . . ), C2(Demands, Supplies, . . . ), . . . )
These same comments apply for the inventory optima ion problem also.
Contrasting this with the probabilistic approach, even if an optimal sets of decisions (candidate solution) is given, at the minimum, the pdf's governing the uncertain parameters will in general have to be propagated through an AND-OR tree, which can be computationally intensive.
For handling the full min/max optimization, at this time of writing, we have implemented sampling. We take a number of candidate solutions, evaluate the best/worst cost and select the best w.r.t the worst case cost (the best w.r.t the best case cost can be found by LP/ILP). The worst/worst estimate (solved by an LP/ILP) is used as an upper bound for this search. The solutions can be improved using simulated annealing, genetic algorithms, tabu search, etc. While this approach is generally sub-optimal, we stress that the objective of this thesis is to illustrate the capabilities of the complete formulation, even with relatively simple algorithms. In addition, these stochastic solution methods can incorporate complex constraints not easily incorporated in a mathematical optimization framework (but the representation of uncertainty is very simple to specify mathematically).
We next discuss the nature of the demand constraints—supply constraints are similar and will be skipped for brevity.
Demand Constraints
Bounds: these constraints represent a-priori knowledge about the limits of a demand variable.
Min1≦d1≦Max1
Complementary constraints: these constraints represent demands that increase or decrease together.
Min2≦d1−d2≦Max2
Substitutive constraints: these constraints represent the demands that cannot simultaneously increase or decrease together.
Min3≦d1+d2≦Max3
Revenue constraints: these constraints bound the total revenue, i.e. the price times demand for all products added up is constrained.
Min4≦k1d1+k2 d2+ . . . Max4
If both the price (ki) and the demand (di) are variable, then the constraint becomes a quadratic, and convex optimization techniques are required in general.
Note that the variables in these constraints can refer to those at a node/edge, at all nodes/edges, or any subset of nodes or edges.
The Cost Function for the Model
In general the cost function will be non-linear. The costs can be additive—that is, the total cost is the sum of the costs of the sub systems or can be non-additive—that is, the cost of the whole system is not separable into costs for its constituent subsystems. For a dpipmic system, the total cost will be the sum of costs over all the time periods. We consider the case of a cost-function with break points for a static system in this section. The costs are additive. This is modeled using indicator variables as per standard ILP methods. The cost function becomes a linear function of these indicator variables. Linear inequality constraints are added to ensure that the values of the indicator variables represent the correct cost function.
From standard integer linear programming principles, the cost function can be written using the following formulation:
b=Number of breakpoints
Q=Quantity processed
Total Cost=Fixed cost+Variable cost
Indicator Variables:
I1>0 if Q>0=0; if Q=0
Ii>0; if Q>Breakpointi−1=0; if Q<Breakpointi−1, for all i=2, . . . , b,
Where the indicator variables Ii are constrained as follows:
I
i
×M≧(Q−Breakpointi−1)
(Ii−1)M<(Q−Breakpointi−1)
Where Breakpoint−1=0
Here, (Q−Breakpointi)=(Q−Breakpointi) if Q>=Breakpointi
Else, (Q−Breakpointi)=0
So we replace Q by another variable Z1 and all (Q−Breakpointi) by Zi such that:
Where, Zi variables are constrained as follows:
Z
i≧(Q−Breakpointi−1)
Zi≧0
where Breakpoint−1=0
Solution of the Optimization Problems:
The integer linear programs resulting from the above model are solved using CPLEX. The size of the problems can be very large, and hence heuristics are in general required for industrial scale problems. At the time of writing, we have been able to tackle problems with the following statistics:
The screen shot of CPLEX solver while solving the above problem is given in
Inventory Optimization
Extensions to Classical Inventory Theory
The literature on inventory optimization is very rich, and these results can be extended using our formulation. Several classical results from inventory theory can be reformulated using our representation of uncertainty. We begin with the classical EOQ model [13], [16], [17] wherein an exogenous demand D for a Stock Keeping Unit (SKU) has to be optimally serviced. A per order fixed cost f(Q) and holding cost per unit time h(Q) exists. Note that h(Q) need not be linear in Q, convexity [12] is enough. For non-convex costs—for example, with breakpoints, we have to use numerical methods—analytical formulae are not easily obtained. We shall deal with non-convex costs in the Chapter 4 (Experimental results). Our notation allows the fixed cost f(Q) to vary with the size of the order Q, under the constraint that it increases discontinuously at the origin Q=0.
The results in this section can be used both to correlate with the answers produced by the optimization methods for simple problems, as well as provide initial guesses for large scale problems with many cost breakpoints, etc. In addition, these methods can be quickly used to get estimates of both input and output information content, following the methods in the Introduction section. The input information is computed using the input polytope, and the output information is computed using bounds on a variety of different metrics spanning the output space.
As shown in
C(Q)=h(Q)+f(Q)(D/Q)
Q*=√{square root over (2fD/h;)}C*(Q)=√{square root over (2fDh)}
Our representation of uncertainty in the form of constraints generalizes these optimizations using constraints between different variables as follows.
Firstly, meaningful constraints on demands in a static case require at least two commodities, else we get max/min bounds on demand of a single commodity, which can be solved by plugging in the max/min bounds in the classical EOQ formulae. Hence below the simplest case is with two commodities. In a dyrwmic setting, where the demand constraints are possibly changing over time, these two demands can be for the same commodity at different instants of time:
Additive SKU Costs
In the simplest case, we assume that the costs of holding inventory are additive across commodities, and we have (first for the 2-dimensional and then the N-dimensional case, with 2 and N SKU's respectively)
We shall discuss the implications of Equation (1) in detail below
A. Inventory Levels Unconstrained by Demand
Consider the 2-D case (the results easily generalize for the N-D case). Under our assumptions, Q1 and Q2 are to be chosen such that the cost is minimized If there are no constraints on relating Q1 and Q2, or Qi and Di, then we can independently optimize Q1, and Q2 with respect to D1 and D2, and the constraints CP will yield a range of values for the cost metric C1+C2. In general, as long as Q1 and Q2 are independent of D1 and D2 (meaning thereby that there is no constraint coupling the demand variables with the inventory variables), then Q1 and Q2 can be optimized independently of the demand variables. Then the uncertainty results in a range of the optimized cost only.
C
max=max[D
=max[D
C
max=min[D
=min[D
A.1 Linear Holding Costs
If the holding cost is linear in the inventory quantity Q, and the fixed cost is constant, the classical results [17] readily generalize to:
Q
1
*=√{square root over (2f1D1/h1:)}C1*(D1)=√{square root over (2f1D1h1)}
Q
2
*=√{square root over (2f2D2/h2;)}C2*(D2)=√{square root over (2f2D2h2)}
C*(D1,D2)=C1*(D1)+C2*(D2)=√{square root over (2f1D1h1)}+√{square root over (2f2D2h2)}
C
max=max[D
C
min=min[D
Cmax and Cmin are clearly convex functions of D1 and D2, and can be found by convex optimization techniques.
A.1.1 Substitutive Constraint-Equalities
For example, under a substitutive constraint D1+D2=D, it is easy to show that:
Under a complementary constraint D1−D2=K, with D1 and D2 limited to Dmax, have the maximal/minimal cost as
C
max
=C
*(f1h1Dmax,f2h2(Dmax−D))
C
min
=C
*(f1h1D,0)
A.1.2 Substitutive and Complementary Constraints: Inequalities
If we have both substitutive and complementary constraints, which are inequalities, a convex polytope CP is the domain of the optimization. We get in the 2-D case equations of the form:
Convex optimization techniques are required for this optimization. The same applies if we have a number of equalities in addition to these inequalities.
B. Constrained Inventory Levels
If the inventory levels Qi and demands Di, are constrained by a set of constraints written in vector form for 2-D as:
where Φ[ ] is a vector of constraints. then the minimization is more complex, and the set of equations (1) has to be viewed as a convex optimization problem ( . . . ), and solved using convex optimization techniques developed during the last two decades [4],[12]. The vector constraint above can incorporate constraints like
Equations 1 can then be written as
C
1(Q1,D1)=h1(Q1)+f1(Q1)(D1/Q1)
C
2(Q2,D2)=h2(Q2)+f2(Q2)(D2/Q2)
C(Q1,Q2,D1,D2)=C1(Q1)+C2(Q2)
[D1,D2] ∈ CP
C*(D1,D2)=minQ
C
max=max[D
An example is furnished later in Chapter 4.
Non Additive (Non Separable) Costs:
In this case, the costs cannot be separately added and the problem has to be solved as a coupled optimization problem, namely:
[D1, D2] ∈ CP
C*(D1,D2)=minQ
C
min=min[D
Convex optimization techniques are required. -.
Time Dependent Constraints
So far we have treated a static problem, where the demand values D1, D2, . . . are constant in time, the values being unknown but constrained, and the constraints do not change with time (Equation -). It is straightforward to extend these results to time varying demand constraints. Classically this is treated by probabilistic [13], or robust optimization methods [10], [11], and either the mean or the worst case/best case value of the total cost is minimized. Our formulation can be easily generalized to incorporate this time variance by changing the constraints on the demand vector over time.
We assume a discrete time model for simplicity. Let Dct denote the demand for commodity “c” at time “t”. In a static scenario, these demands are constrained by linear (or nonlinear) equations. If there are N demand variables and M constraints, we have
where the time superscript has been dropped in this static case. EOQ can be found for this set, following procedures outlined in Equation 1. Similar methods can be used if there are correlations between demand and, inventory variables.
In the dynamic case, the convex polytope keeps changing, and so does the EOQ (in fact it is not strictly accurate to speak of a single EOQ for any commodity, since the process is non-stationary, when viewed in the probabilistic framework). If the constraints do not relate variables at different timesteps, we have
Here again, we can speak of an EOQ which changes with time Similar methods can be used if there are correlations between demand and inventory variables for one time step.
The situation is more complex when there are correlations between variables at different time instants (between demand/inventory at one timestep and demand/inventory at another timestep). Considering a finite time horizon, an appropriate metric has to be formulated for optimization.
A. Additive Costs
For simplicity, we discuss the case of separable and additive costs [7], but our work can be generalized for the case of non-additive and non-separable costs, the optimizations imposing heavier computational load. The equations become:
The above section was an analytic discussion of lower bounds in inventory theory generalized under convexity assumptions, using our formulation of uncertainty. The next section discusses an exact method—the (mathematical formulation for the inventory optimization problem.
The Inventory Optimization Model
For simplicity, we shall discuss the inventory optimization at a single node, but our results extend straightforwardly to arbitrary sets of nodes. Consider the inventory at time t at a single node in a supply chain (see
Invt=inventory at the beginning of the time period t
Dt=demand in period t
St=amount ordered in the beginning of time period t
The system evolves over time and can be described by the following equation.
Inv
t+1
=Inv
t
+S
i
−D
t
For system with N products, the equation becomes:
Inv
t+1
p
=Inv
t
p
+S
t
p
D
t
p, for all p=1, . . . , N
The cost incurred at every time step includes:
The cost function for the system consists of the holding/shortage cost and the ordering cost for all the products summed over all the time periods. This cost has to be minimized when the demand is not known exactly but the bounds on the demand are known. The problem can be formulated as the following mathematical programming problem:
Subject to ytp≧htp(Invt+1p)
y
t
p
≧−s
t
p(Invt+1p)
(Itp−M)≧Stp
(Itp−1)M<Stp
Inv
t+1
p
=Inv
t
p
+S
t
p
−D
t
p
Stp≧0
This minimax program is in general not a linear or integer linear optimization, and the comments on capacity planning problems (using duality to obtain bounds, sampling, . . . ) in Section 2.1.2 apply. While this approach is generally sub-optimal, we stress that the objective of this thesis is to illustrate the capabilities of the complete formulation, even with relatively simple algorithms. In addition, this method enables complex non-convex constraints to be easily incorporated in the solution.
We next discuss the nature of the inventory constraints—demand/supply/revenue constraints are similar and will be skipped for brevity (for example revenue, etc—see Section 2.1.1). We again reiterate that the variables in these constraints can be arbitrary sets of nodes and/or edges, and can refer to multiple commodities, at different timesteps.
Inventory Constraints
Total inventory at a node can be limited:
Total inventory at a node over all time periods can be limited:
The inventory of a particular product can be limited:
Min3≦Invtp≦Max3
The inventory of all the products can be balanced:
Min4≦Invtp1−Inv1p2<Max4
Finding an Optimal Ordering Policy
Using our convex polyhedral formulation, we find optimal ordering policy using the following approaches. Here, without recourse we mean a static one-shot optimization, and with recourse a rolling-horizon decision.
1. Without Recourse
The total cost over all time periods is minimized in a single step and optimal policy is computed according to it. This approach is taken when all the demands are known in advance and we just have to find an optimal policy for the given demands. This is deterministic optimal control, i.e., when there is no uncertainty. This approach gives us the optimal solution with uncertain parameters fixed at some particular values. We can use this approach even when we don't know the demands but know the constraints governing these demands and other exogenous variables like supply etc. We use sampling methods coupled with the global bounds (best decision, best parameters/worst decision, worst parameters) to obtain the bounds for the optimal problem without recourse as discussed in Section 2.1.2. This is a conservative policy since it gives no opportunity to correct in the future based on actual realizations of the uncertain parameters.
2. Iterative Method (With Recourse)
This approach is taken when we do not know the demands. This is a rolling-horizon optimization where we steer our policy as we step forward in time, continually adjusting the policy for the realized data. Here the first step is to find a sample solution by solving the problem without recourse. This solution is close-to-optimal over the entire range of parameter uncertainty. The first decision of this solution is typically implemented. In the next time step, when one or more of the demands are realized, the uncertainty has partly resolved itself. So the actual solution should in general be different from the first solution. When the values of demand for one time step are realized, then these values are plugged in the constraints and another solution is optimized for all the future time steps. In general, this will be different from the previous solution, and its first decision is implemented. At each time step, value of demand variables of one time period is revealed. So the solution changes as time progresses. For example, in the first time step, a decision is made about the order quantity for all the time steps, but only the first answer is implemented for the 1st timestep. At this point demand is not known. In the second step, the demand for first time step is known and decision about the order quantities for all the future time steps is made again with the value of the demand for first time step fixed at its realized value. The first answer is implemented for the 2nd timestep. At the third time step, the values for demand at first as well as the second time step are known. So the decision for the order quantities for all future time steps is made again now with 2 demands fixed. The first answer is implemented for the 3rd timestep. Thus decisions are made periodically, and optimal solution for all the time steps is approached iteratively.
This approach can be taken even when we know the demands up to a point in time and after that the demands are uncertain. We just have to plug in the values of the demands that are known in the system.
In our uncertainty formulation, as time progresses, we are taking successive slices of the high-dimensional parameter polytope at the realized values of the initially uncertain parameters. Optimization is iteratively done on these slices. Models utilizing LP/ILP can profitably use incremental LP/ILP techniques, keeping the old basis substantially fixed, etc.
To compare with other work, out rolling horizon method does not lose uncertainty as time marches on. In the rolling horizon approaches described by Kleywegt, Shapiro [26] or Powell, Topaloglu [19], [20], [29], there is loss of uncertainty as these approaches use a point estimate for all the future uncertain parameters while fixing the values of parameters whose values have been realized. Our approach is more robust as we do not make any estimates about the unknown parameters of the future, but keep their uncertainty sets intact in the problem. Our approach essentially projects the polytope of the constraints for the uncertain parameters onto the dimensions of the previous time step parameters (ones whose values have just been realized). Thus we keep projecting the polytope onto the dimensions of those parameters whose values are revealed as time goes on and the dimensionality of the uncertainty set keeps reducing, but we do not lose the robustness for the parameters whose values are yet unknown.
3. Demand Sampling
This approach goes as follows: a candidate solution is found by getting a demand sample and computing the bounds on the cost. A demand sample is nothing but a random nominal solution (a feasible solution) for the demand variables subject to the demand constraints. The values of demand parameters are fixed to the nominal solution values and bounds on the cost are computed. A number of candidate solutions are found as shown in
By taking a number of samples in this way, we get a scatter plot as shown in
Since we are sampling the demand, the worst policy over all the samples should approach the worst decision, worst case solution in the without recourse approach and the best case over all the samples should approach the best decision, best case solution without recourse, as the number of samples taken increases. From this same scatter plot, the Min-Max solution has a cost not exceeding about 460000.
The estimated pdf of the minimum costs is as given in
This approach is related to the “Certainty equivalent controller (CEC)” control scheme of Bertsekas [8]. CEC applies at each stage, the control that would be optimal if the uncertain quantities were fixed at some typical values. The advantage is that the problem becomes much less demanding computationally.
Software Implementation
The analytical techniques described in chapter 2 use linear programming. Even a moderate sized supply chain leads to huge linear programs with thousands of variables. We have extended the existing SCM project at IIIT-B to include capacity planning and inventory optimization capabilities and applied it to semi-industrial scale problems (for capacity planning). It uses CPLEX 10.0 to solve the optimization problems and is coded in java programming language.
Software Architecture
The SCM software consists of the following main modules:
The relationship between the different modules is given in
Description
SCM Main GUI 1:
The supply chain network is given as input to the system through the SCM main GUI 1 as a graph. Each element of the graph is a set of attribute value pairs where the attributes are those that are relevant to the type of element for example; a factory node has attributes such as a set of products, and for each product—production capacity, cost function, processing time etc. The optimization problem is specified by the user at this stage. The system is intended to be flexible enough for the user to choose any subset of parameters to be optimized over the entire chain or a subset of the chain
Constraint Manager 2:
Once the supply chain is specified as the input graph with values assigned to all the required attributes and the problem is specified, the control goes to the constraint manager/predictor module. Here the user can enter any constraints on any set of parameters manually as well as use the constraint predictor to generate constraints for the uncertain parameters using historical time series data. This set of constraints represents the set of assumptions given by the user and is a scenario set as each point within the polytope formed by these constraints is one scenario. The constraint predictor is described later in the document. Constraint manager uses the optimizer 9 in order to do this. Now the problem is completely specified and the user can choose to do one of the following:
Output Analyzer 6:
Once a problem is solved in the capacity planning or inventory optimization module, the solution can be viewed'in the output analyzer module. The output analyzer can not only display the output in a graphical form but the user can select parts of the solution in which he/she is interested and view only those. The user can zoom in or zoom out on any part of the solution. There is a query engine to help the user do this. The user can type in a query that works as a filter and shows only certain portions. The module has the capability of clustering similar nodes and showing a simplified structure for better comprehension. The clustering can be done on many criteria such as geographic location, capacity etc. and can be chosen by the user. This makes a large, difficult to comprehend structure into a simplified easy to analyze structure.
Auction Algorithms 8:
The auctions module performs auctions under uncertainty. Here the bids given by the bidders are fuzzy and indeed are convex polyhedra. The auctioneer has to make an optimal decision based on the fuzzy bids, and this can be done by LP/ILP if he/she has a linear metric. Based on the auctioneer decision, the bidders perform transformations on the polytopes formed by the bidding constraints to improve their chances to win in the next bidding round. If information content has to be preserved, these transformations are volume preserving, e.g. translations, rotations etc.
Other Features:
The constraints in the problems are guarantees to be satisfied, and the limits of constraints are thresholds. Events can be triggered based on one or more constraints being violated, and can be displayed to higher levels in the supply chain.
Similar to the auction module, we can treat the constraints as bids for negotiations between trading partners. There are guarantees on the performance if the constraints are satisfied. This can easily model situations where there are legally binding input criteria for a certain level of output service and can be useful in contract negotiations. Constraints can be designed by each party based on their best/worst case benefit.
The analysis of constraint sets in information analysis or constraint visualizer can not only be done by preparing a hierarchy of constraint sets but also by forming information equivalent constraint sets derived by performing random translations rotations, and dilations keeping volume fixed on a set of constraints.
Information analysis can also be done for the output information, by taking different output criteria and computing their joint min/max bounds. Details are skipped for brevity. Appendix C provides a detailed description of the software.
Here we shall illustrate the capabilities of our CP/IO package. We shall first discuss illustrative small examples, and then showcase results on large ones, with cost breakpoints, etc. We shall compare our results with theoretical estimates for capacity planning and the generalized EOQ formulations for Inventory optimization. We shall also illustrate how the capabilities merge tightly with the rest of the SCM package, especially the information content analysis module and data visualization and constraint analysis model.
Information vs. Uncertainty
In the following example we give an illustration of how our decision support works and how constraints are economically meaningful. We generate a hierarchy of constraint sets from a given constraint set and quantify the amount of information in each of them and show how guarantees on the output become loser and loser as uncertainty increases.
Let us take a small supply chain as given in the
There are 2 suppliers, 2 factories, 2 warehouses and 2 markets. There is only a single product, and hence 2 demand variables. The constraints that were derived on these 2 demand variables from historical data are as follows:
Constraints from 1 to 6 are revenue constraints as they are bounds on the sum of product of demand and price. Constraints 7 and 8 are competitive constraints and tell us that the market 0 and 1 are competitive. Constraints 9 and 10 give bounds on the value of demand in market 0. All the constraints when shown graphically look like in
This set of constraints represents the case when all the 10 assumptions are acting, i.e., the revenue constraints are valid, the market is competitive and the bounds on demand in market 0 are acting.
If we delete constraint 8, the constraint set will look like in
This set of constraints represents the case when only the revenue constraints and the bounds are acting. Here the market is not competitive. There is less number of constraints and the volume of the constraint polytope has increased signifying more uncertainty.
If we delete the constraints 9 and 10, then the constraint set looks like in
Here only revenue constraints are valid, the market is not competitive and there are no bounds on the demands. The volume of the polytope has increased further thus increasing the amount of uncertainty.
If we delete 2 more constraints, the constraint set looks like in
In this case, the market is not competitive, there are no bound constraints on the demands and fewer revenue constraints are valid. The uncertainty has increased and the number of constraints is lesser so the amount of information has decreased further.
If we delete 2 more revenue constraints, the constraint set looks like in
In this case only 1 revenue constraint is valid, the volume of the feasible region has increased even more thus increasing the amount of uncertainty.
The following table summarizes the calculations for information content for all the constraint sets in the above hierarchy and also bounds for total cost, which is the objective function for this example.
From the table we can see that as the amount of information decreases, the range of output uncertainty increases. When all the 10 constraints are valid, the amount of information is 1.84 bits and the range for uncertainty in cost is 28.38%. When only 9 constraints are valid, the information content goes down to 0.81 bits and the range of output uncertainty increases to 94.45%. When only 2 constraints are valid, then the amount of information is just 0.44 bits and the range of output uncertainty is 106.85%. This is illustrated by the pareto curve as shown in the following graph.
This example illustrates how we generate a hierarchy of scenario sets that also hold economic meaning and quantify the amount of uncertainty in each of the scenario sets also see how our performance metric changes as the amount of uncertainty increases. This is an example of the decision support that we provide by analyzing different possibilities for the future.
Capacity Planning Results
In this section, we showcase the capabilities of our overall supply chain framework. We discuss cost optimization on small, medium, and large supply chains, both with and without uncertainty. Min-max design is also illustrated in one example. The complexity of the results clearly illustrates the importance of sophisticated decision support tools to understand results on even simplified examples like the ones shown. Our framework provides information estimation, constraint set graphical visualization, and output analysis modules for this purpose.
Examples on a Small Supply Chain
We first begin with an example which illustrates the way capacity planning is handled under uncertainty, and how the module ties into other parts of the decision support package, which offer analysis of inter-relationships of constraints, information content in the constraints, etc. Here we do a static one-shot optimization. This model can be extended to dynamic optimization with incremental growth, year/year capacity planning also.
A simple potential supply chain consisting of 2 suppliers (S0 and S1), 2 factories (F0 and F1), 2 warehouses (W0 and W1) and 2 markets (M0 and M1) is shown in
The supply chain produces only 1 finished product p0. Since there are 2 markets, there are only 2 demand variables, demand for product p0 at market (dem_M0_p0) and demand for product p0 at market 1 (dem_M1_p0).
The nodes S0, F0, W0, and M0 and the links 1, 2 and 3 lie in one geographic region. The nodes S1, F1, W1, and M1 and the links 9, 10 and 11 lie in another geographic region. The links 3, 4, 5, 6, 7 and 8 connect the two regions and are twice the length of the links that lie in one region only.
The demand is uncertain and is bounded by the following demand constraints:
These constraints are derived from historical economic data and can be shown graphically as in
The optimal point shown in the figure is the point at which sum of the demand variables is minimum, without considering the cost constraints. When cost is the objective function, the optimal point will change due to integrality constraints of the breakpoints. In this case the optimal can be far away from what is shown. But in cases where no breakpoints are acting, the optimal should be equal to the optimal shown in the
The optimal point in this polytope, while doing a minimization should be as shown in the figure. At the optimal point, dem_M0_p0 is equal to 157 and dem_M1_p0 is equal to 93.
Based on this, six scenarios are described below. We will analyze the structure in these scenarios. In one set of scenarios, we explore the problems where the demand parameters are deterministic, i.e., they are known exactly, in advance. In another set of scenarios, we explore problems with uncertain demand. In all these scenarios, we assume that the factory and warehouse nodes are “OR” nodes. The edges have a maximum capacity of 500 and a minimum of 0.
The cost in this case is =190460 units.
Taking samples of the demands and finding the worst case cost of solutions optimized for these demands: (the sampling method of Section 2.1.2), we get the following plot
The worst case cost of the Min-max solution does not exceed about 140000 units, the lowest point in this graph.
The demand is uncertain and the cost of factory F0 is very large as compared to the cost of factory F1 and all links and warehouses have identical costs.
Since the cost of factory F0 is very large as compared to the cost of factory F1, all the flow will be directed through factory F1, factory F0 being un-operational. All the links that are connected to factory F0 will carry zero flow.
As predicted, the answer produced by our model is as in
4. The demand is uncertain and the cost of warehouse WO is very large as compared to the cost of warehouse W1 and all links and factories have identical costs.
Since the cost of warehouse W0 is very large as compared to the cost of warehouse W1, all the flow will be directed through warehouse W1, warehouse W0 being un-operational. All the links that are connected to warehouse W0 will carry zero flow.
As predicted, the answer produced by our model is as in
When the factories are “AND” nodes, the answer produced is as in
5. The demand is uncertain and the cost of the cross-over links is very large as compared to the straight links and the factories and warehouses have identical costs.
Since the cost of the cross-over links is very large as compared to straight links, all the flow will be through the straight links and the cross-over links will not be used. Also the breakpoint through the straight links is 100, so the flow through 1 region will be exactly equal to 100 and flow through the other region will be greater than 100.
As predicted, the answer produced by our model is as in
6. The demand is uncertain, the cost of cross-over links is very large as compared to the straight links and cost of factories and warehouses in region 1 is very large as compared to those in region 2.
Since the cost of the cross-over links is very large as compared to straight links, all the flow will be through the straight links and the cross-over links will not be used. Also the factory and warehouse in region 1 are much more costly as compared to the factory and warehouse in region 2, so the factory and warehouse in region 1 will also not be used. So a 2—regional supply chain will be reduced to a 1—regional supply chain, supplying markets in 2 regions.
As predicted, the answer produced by our model is as in
Examples on a Medium Sized Supply Chain
A simple potential supply chain consisting of 10 suppliers (S0 . . . S9), 10 factories (F0 . . . F9), 10 warehouses (W0 . . . W9) and 10 markets (M0 . . . M9) is shown in the
The supply chain produces only 1 finished product p0. Since there are 10 markets, there are only 10 demand variables, demand for product p0 at market (dem_M0_p0) and demand for product p0 at market 1 (dem_M1_p0) and so on till dem_M9_p0.
All the demand variables have a range with a minimum of 100 units and a maximum of 5000 units. We try to minimize the total cost of operation of the supply chain, while also answering the questions of where and how many factories should be built, where and how many warehouses should be built and what should be the capacity of each of them. This is described with the help of following examples:
7. The cost of straight links is much less as compared to the cost of cross links. All nodes are OR nodes. All edges have a maximum capacity of 500 units and a minimum of O.
Let us consider that the cost of all the factories is identical and is given by the following cost function:
Since the cost of cross links is very high as compared to the cost of straight links, all the flow should be pushed through the straight links and the cross links should not be used. Also all demand variables should be pushed to their least value, i.e. 100 units.
As predicted, the answer produced by our model is as in
8. The cost of straight links is much less as compared to the cost of cross links and the cost of even numbered factories and warehouses is very large when compared to the cost of odd numbered factories and warehouses. All nodes are OR nodes. All edges have a maximum capacity of 500 units and a minimum of 0.
Let us consider that the cost of all the even numbered factories is identical and is given by the following cost function:
The cost of even numbered factories and even numbered warehouses is very small compared to the cost of odd numbered factories and odd numbered warehouses. So the odd numbered factories and warehouses should not be used in order to minimize the cost. Since the cost of cross links is very high as compared to the cost of straight links, all the flow should be pushed through the straight links and the cross links should not be used. Also all demand variables should be pushed to their least value, i.e. 100 units. If all the straight links are used, then the demand at odd numbered markets will not be satisfied as all odd factories and warehouses are closed. So a few cross links must be open to transfer goods to odd numbered markets. A few even numbered factories must produce more to supply these markets. Also the maximum capacity of the links is 500, so cross links from more than 1 warehouse will be open.
As predicted, the answer produced by the software is as in
9. If all factories in example 2 are AND nodes. The cost function for all factories, warehouses and links are the same as in example 2. The demand constraints and capacity constraints are also same.
In this case the answer produced is as in
10. Multi-commodity flow—Instead of one finished product, the chain produces 3 products now. There is only 1 raw material for all the 3 products. The cost of straight links is much less as compared to the cost of cross links and the cost of even numbered factories and warehouses is very large when compared to the cost of odd numbered factories and warehouses. All nodes are OR nodes. All edges have a maximum capacity of 1500 units and a minimum of 0. All the demand variables have a range with a minimum of 300 units and a maximum of 5000 units. All nodes are OR nodes.
Let us consider that the cost of all the even numbered factories is identical and is given by the following cost function:
The cost of even numbered factories and even numbered warehouses is very small compared to the cost of odd numbered factories and odd numbered warehouses. So the odd numbered factories and warehouses should not be used in order to minimize the cost. Since the cost of cross links is very high as compared to the cost of straight links, all the flow should be pushed through the straight links and the cross links should not be used. Also all demand variables should be pushed to their least value, i.e. 300 units. If all the straight links are used, then the demand at odd numbered markets will not be satisfied as all odd factories and warehouses are closed. So a few cross links must be open to transfer goods to odd numbered markets. A few even numbered factories must produce more to supply these markets. Also the maximum capacity of the links is 1500, so cross links from more than 1 warehouse will be open.
As predicted, the answer produced by the software is as in
If all factories in CASE 4 are AND nodes. The cost function for all factories, warehouses and links are the same as in CASE 4. The demand constraints and capacity constraints are also same.
In this case the answer produced is as in
Example on a Large Supply Chain
Let us consider a large supply chain consisting of 10 suppliers, 20 factories, 75 warehouses and 100 market places. One finished product is flowing through the chain so there are 100 demand variables. All the demand variables have a range with a minimum of 100 units and a maximum of 5000 units. We try to minimize the total cost of operation of the supply chain, while also answering the questions of where and how many factories should be built, where and how many warehouses should be built and what should be the capacity of each of them. This is described with the help of following example:
Let us consider that the cost of all the even numbered factories is identical and is given by the following cost function:
The cost of even numbered factories and even numbered warehouses is very small compared to the cost of odd numbered factories and odd numbered warehouses. So the odd numbered factories and warehouses should not be used in order to minimize the cost. Since the cost of cross links is very high as compared to the cost of straight links, all the flow should be pushed through the straight links and the cross links should not be used. Also all demand variables should be pushed to their least value, i.e. 100 units. Since there are only 20 factories to supply 75 warehouses and the cost of odd factories is very large as compared to even factories, so only a very small number of odd factories can stay open and several cross links must be used in order to supply to all the open warehouses. Now, there are only 75 warehouses to supply 100 markets and the cost of odd warehouses is very large as compared to the cost of even warehouses, so all even warehouses must stay open. Some odd warehouses may have to work as there is demand at all the 100 markets. Several cross links will have to stay open.
As predicted, the answer produced by the software is as follows:
The following table summarizes several capacity planning examples run by us. From the statistics in the table, we can see that the scale of problems tackled ranges from small to fairly large. All of them were integer linear programming problems.
Inventory Optimization Results
We begin by optimizing the inventory of a small supply chain consisting of only 3 nodes. The supply chain consisting of one supplier node S0, one factory node F0 and one market node M0 is shown in
We present the bounds (best decision/best case params—worst decision/worst case params is skipped for brevity—contact author for details), as well as bounds for sampled solutions used to determine the Min-Max as per Section Supply Chain Model: Details. We have also correlated our answers in simple cases with the extended EOQ theory in Section Theory and Model.
We intend to find the ordering policy that minimizes the total cost. The problem is solved without recourse in a single step. Since the ordering cost is far less than the holding cost, the optimal solution will contain inventory and orders will be infrequent. The solution given by the software is as in
The total cost is 4460.0. Orders are placed in only 3 out of 12 time periods. The inventory flow equations all hold.
Inv_p1_t1≦100, for all i from 0 to 11.
Σ(Inv—p1—t1)≦500, for all i from 0 to 11.
The total cost in this case is 5740.00 again but the solution produced is as in
From these inventory constraint examples, the flexibility of our approach should be clear.
The solution at the first time step for the above problem is given as follows:
Suppose the demand for time step 0=100
Now we fix dem_M0_p1_t0=100 and solve the problem again. The solution that we get this time is:
Now suppose that the demand for time step 1 turned out to be 350.
Now we fix dem_M0_p1_t1=350 and solve the problem again. The solution that we get this time is:
The following table summarizes several inventory optimization examples run by us. From the statistics in the table, we can see that the scale of problems tackled ranges from small to medium. All of them were integer linear programming problems. The number of time steps in a problem blow up its size.
Conclusions
The convex polyhedral formulation of specifying uncertainty is not only a powerful but also a natural way to describe meaningful constraints on supply chain parameters such as demand. This is a very convenient way to model co-relations between the uncertain parameters in terms of substitutive and complementary effects. Using this uncertainty can be represented as simple linear constraints on the uncertain parameters. The optimization problem can be formulated as a linear programming problem and powerful solvers such as CPLEX can be used to solve fairly large problems.
This approach of modeling uncertain and performance parameters as linear equations is explored in this thesis and results in theory have been found to match the results in application. The decision support system designed as a part of this research has wide applicability and utility. It has the unique capability of not only specifying the uncertainty in a more meaningful way but also to give a quantification of the amount of uncertainty in a set of assumptions. Based on this it can compare two different sets of assumptions, that are two different views of the future. It can also analyze the effects of increasing degree of uncertainty on the performance metric. The methods have been applied on semi-industrial scale problems of up to a million variables.
Appendix A
A Detailed Capacity Planning Example with Equations:
The supply chain in
The Fixed Costs for Building:
Cost Function for All Other Costs:
The Objective Function is:
→
892 u0+207 u1+995 v0+64 v1+200 I0_F0_p0+400 I1_F0_p0+200 I0_F1_p0+400 I1_F1_p0+200 I0_W0_p0+400 I1_W0_p0+200 I0_W1_p0+400 I1_W1_p0+200 z0_F0_p0+100 z1_F0_p0+200 z0_F1_p0+100 z1_F1_p0+200 z0_W0_p0+100 z1_W0_p0+200 z0_W1_p0+100 z1_W1_p0+200 I0_S0_F0—r0+400 I1_S0_F0_r0+200 I0_S0_F1_r0+400 I1_S0_F1_r0+200 I0_S1_F0_r0+400 I1_S1_F0_r0+200 I0_S1_F1_r0+400 I1_S1_F1_r0+200 I0_F0_W0_P0+400 I1_F0_W0_p0+200 I0_F0_W1_p0+400 I1_F0_W0_p0+200 I0_F1_W0_p0+400 I1_F1_W0_p0+200 I0_F1_W1_p0+400 I1_F1_W1_p0+200 I0_W0_M0_p0+400 I1_W0_M0_p0+200 I0_W0_M1_p0+400 I1_W0_M1_p0+200 I0_W1_M0_p0+400 I1_W1_M0_p0+200 I0_W1_M1_P0+400 I1_W1_M1_p0+200 z0_S0_F0_r0+100 z1_S0_F0_r0+200 z0_S0_F1_r0+100 z1_S0_F1_r0+200 z0_S1_F0_r0+100 z1_S1_F0_r0+200 z0_S1_F_r0+100 z1_S1_F1_r0+200 z0_F0_W0_p0+100 z1_F0_W0_p0+200 z0_F0_W1_p0+100 z1_F0_W1_p0+200 z0_F1_W0_p0+100 z1_F1_W0_p0+200 z0_F1_W1_p0+100 z1_F1_W1_p0+200 z0_W0_M0_p0+100 z1_W0_M0_p0+200 z0_W0_M1_p0+100 z1_W0_M1_p0+200 z0_W1_M0_p0+100 z1_W1_M0_p0+200 z0_W1_M1_p0+100 z1_W1_M1_p0
The Constraints are as Follows:
Indicator Variables for Factory 0 (Due to the Cost Function):
Flow Variables for Factory 0 (Due to the Cost Function):
Indicator Variables for Factory 1 (Due to the Cost Function):
Flow Variables for Factory 1 (Due to the Cost Function):
Indicator Variables for Warehouse 0 (Due to the Cost Function):
Flow Variables for Warehouse 0 (Due to the Cost Function):
Indicator Variables for Warehouse 1 (Due to the Cost Function):
Flow Variables for Warehouse 1 (Due to the Cost Function):
Indicator Variables for Edge Between Supplier 0 and Factory 0 (Due to the Cost Function):
Indicator Variables for Edge Between Supplier 0 and Factory 1 (Due to the Cost Function):
Indicator Variables for Edge Between Supplier 1 and Factory 0 (Due to the Cost Function):
Indicator Variables for Edge Between Supplier 1 and Factory 1 (Due to the Cost Function):
Flow Variables for Edge Between Supplier 0 and Factory 0 (Due to the Cost Function):
Flow Variables for Edge Between Supplier 0 and Factory 1 (Due to the Cost Function):
Flow Variables for Edge Between Supplier 1 and Factory 0 (Due to the Cost Function):
Flow Variables for Edge Between Supplier 1 and Factory 1 (Due to the Cost Function):
Indicator Variables for Edge Between Factory 0 and Warehouse 0 (Due to the Cost Function):
Indicator Variables for Edge Between Factory 0 and Warehouse 1 (Due to the Cost Function):
Indicator Variables for Edge Between Factory 1 and Warehouse 0 (Due to the Cost Function):
Indicator Variables for Edge Between Factory 1 and Warehouse 1 (Due to the Cost Function):
Flow Variables for Edge Between Factory 0 and Warehouse 0 (Due to the Cost Function):
Flow Variables for Edge Between Factory 0 and Warehouse 1 (Due to the Cost Function):
Flow Variables for Edge Between Factory 1 and Warehouse 0 (Due to the Cost Function):
Flow Variables for Edge Between Factory 1 and Warehouse 1 (Due to the Cost Function):
Indicator Variables for Edge Between Warehouse 0 and Market 0 (Due to the Cost Function):
Indicator Variables for Edge Between Warehouse 0 and Market 1 (Due to the Cost Function):
Indicator Variables for Edge Between Warehouse 1 and Market 0 (Due to the Cost Function):
Indicator Variables for Edge Between Warehouse 1 and Market 1 (Due to the Cost Function):
Flow Variables for Edge Between Warehouse 0 and Market 0 (Due to the Cost Function):
Flow Variables for Edge Between Warehouse 0 and Market 1 (Due to the Cost Function):
Flow Variables for Edge Between Warehouse 1 and Market 0 (Due to the Cost Function):
Flow Variables for Edge Between Warehouse 1 and Market 1 (Due to the Cost Function):
Constraints to Ensure that Only Open Factories and Warehouses Function:
I0_S0_F0_r0+I0_S0_F0_r0+I1_S0_F0_r0+I1_S0_F0_r0−1000000000 u0<=0
I0_S0_F1_r0+I0_S0_F1_r0+I1_S0_F1_r0+I1_S0_F1_r0−1000000000 u1<=0
I0_F0_W0_p0+I0_F0_W0_p0+I1_F0_W0_p0−1000000000 v0<=0
I0_F0_W1_p0+I0_F0_W1_p0+I1_F0_W1_p0−1000000000 v1<=0
Capacity Constraints (Given by the User):
Edge Between Supplier 0 and Factory 0:
Edge Between Supplier 0 and Factory 1:
Edge Between Supplier 1 and Factory 0:
Edge Between Supplier 1 and Factory 1:
Edge Between Factory 0 and Warehouse 0:
Edge Between Factory 0 and Warehouse 1:
Edge Between Factory 1 and Warehouse 0:
Edge Between Factory 1 and Warehouse 1:
Edge Between Warehouse 0 and Market 0:
Edge Between Warehouse 0 and Market 1:
Edge Between Warehouse 1 and Market 0:
Edge Between Warehouse 1 and Market 1:
Supplier Nodes:
Flow Constraints (Flow Conservation Equations):
Supplier Nodes:
Market Nodes:
Factory Nodes:
Warehouse Nodes:
Demand Constraints:
The Output of this Mixed Integer Linear Program is as Given by
The final objective solution is =1660022930.0
The values of the demand variables are:
→These both lie in the feasible region.
The total demand is: 1107100.781
The Quantity Flowing Through Each Edge:
Total flow between warehouses and markets =1107100.781
Total flow between factories and warehouses =1107100.781
Total flow between suppliers and factories =1107100.781
The flow between supplier 0 and factory 0=4535
The flow between supplier 1 and factory 0=921
Total=5456
The flow between factory 0 and warehouse 0=2434
The flow between factory 0 and warehouse 1=3022
Total=5456
The flow between supplier 0 and factory 1=1091687.781
The flow between supplier 1 and factory 1=9957
Total=1101644.781
The flow between factory 1 and warehouse 0=1092819.781
The flow between factory 1 and warehouse 1=8825
Total=1101644.781
The flow between factory 0 and warehouse 0=2434
The flow between factory 1 and warehouse 0=1092819.781
Total=1095253.781
The flow between warehouse 0 and market 0=6282693036
The flow between warehouse 0 and market 1=466984.4777
Total=1095253.781
The flow between factory 0 and warehouse 1=3022
The flow between factory 1 and warehouse 1=8825
Total=11847
The flow between warehouse 1 and market 0=8765
The flow between warehouse 1 and market 1=3082
Total=11847
→There is flow conservation at each node.
Appendix B
Information Analysis
A simple supply chain consisting of 2 suppliers (S0 and S1), 2 factories (F0 and F1), 2 warehouses (W0 and W1) and 2 markets (M0 and M1) is shown in
The supply chain produces only 1 finished product p0. Since there are 2 markets, there are only 2 demand variables, demand for product p0 at market (dem_M0_p0) and demand for product p0 at market 1 (dem_M1_p0).
Future demand cannot be known in advance, so the 2 demand variables are the uncertain parameters. While Stochastic Programming would represent this uncertainty in form of probability distributions, we represent it with simple linear/non-linear constraints derived form meaningful economic data. The following 10 constraints were derived from demand data.
The objective function was set to be the sum of the 2 demand variables (total demand):
This objective function was optimized for different scenarios, all the predicted demand constraints being valid in the first scenario and only 2 demand constraints being valid in the last scenario. In this way we analyze how the output changes when we go from a more restrictive scenario to a less restrictive one.
The maximum as well as the minimum value was found for the objective function in each scenario. The
The following is a description of how output maximum and minimum change when the constraints are dropped:
The graph in
The graph in
Similarly, the graphs in
Appendix C
SCM Software
The first screen in the SCM software is the SCM graph viewer and is shown in
The user can click on the different components in the graph and enter the values of parameters of his/her choice. There are 4 types of nodes in the chain: supplier, factory, warehouse and market. Each of these nodes has their own set of parameters. All parameters are maintained as attribute-value pairs. The value of a parameter might be known or might be uncertain. If the value is known, it is entered through this GUI. If the value is uncertain, then constraints for that parameter are generated in the constraint manager module.
All parameters in this system are multi-commodity, and time and location dependent in general. Any set of parameters can enter into a constraint, a query, an assertion, etc.
All queries in this system are specifiable in Backus-Naur-Panini form, composed of atomic operators − arithmetic <,>,=, set theoretic − subset, disjoint, intersection, . . . − operating on variables indexed by time, commodity or location ids.
The screen shot in
The set of constraints that is generated in this module can be given as input to the information estimation module for estimating the amount of information content or generating hierarchical scenario sets from this set of constraints and analyzing them. These constraints can also be perturbed using translations, rotations, etc, keeping total volume and/or information constant, increased or decreased.
The constraints here are guarantees to be satisfied, and the limits of constraints are thresholds. Events can be triggered based on one or more constraints being violated and can be displayed to higher levels in the supply chain. We can have a hierarchy of supply chain events that are triggered as a constraint is violated.
The information estimation module shown in
This summary of information provides the information content and the bounds on the output for every set of constraints in the hierarchy.
The set of constraints from the constraint manager module can also be given as input to the graphical visualizer module which is shown in
The set of constraints from the constraint manager module can also be given as input to the capacity/inventory planning module and some optimization can be performed on the supply chain structure subject to these constraints. The type of optimization can be selected by the user. For example, the user can select the objective function and the type of optimization from the screen in the capacity planning module shown in
Once the problem has been specified, an LP file is generated and sent to CPLEX solver to solve it. The output of the CPLEX solver is read by the output analyzer module and displayed to the user.
The output analyzer shown in
The Backus-Naur-Panini form specifying the query language for the graphical visualizer as well as the output analyzer is based on atomic operations in the relational algebra used by both of them. The constraint visualizer uses set theoretic relational algebra between the polytopes as subset, intersection and disjointness relations. For the output analyzer, relational algebra can be developed in terms of the portions of the solution that the user wants to display. For example, display the factories whose capacity is more than 500 units, or display all the suppliers, factories and warehouses that supply market 5 etc.
The auctions module is another application of the intuitive specification of uncertainty. Here the constraints are not on demands, supplies etc. but on the bids and on the profit of the auctioneer etc. Bids are constraints sent by the bidders to the auctioneer, who selects the best set of bids according to his/her optimization criterion (min/max revenue, etc). In response the bids are changed by the bidders in the next round.
The screen shot for the bidder is given in
The screen shots for the auctioneer are given in
Similar to the auction module, we can treat the constraints as bids for negotiations between trading partners (or legally binding input criteria for a certain level of output service). This can be the basis for contract negotiations. Constraints can be designed by each party based on their best/worst case benefit.
Appendix D
Constraint Prediction and Scenario Set Generation
Constraint Prediction
For a given statistical or historical data, the best constraint set which represents the smallest polytope (or satisfying another criterion) should be derived. Linear programming techniques are used to solve the problem, analogous to well known least squares techniques.
We first recall the least square technique. Say we have a set of data, (xi,yi). If there exists a linear relationship between the variables x and y, we can plot the data and draw a “best-fit” straight line through the data. This relationship is governed by the familiar equation y=mx+b. We can then find the slope, m, and y-intercept, b, for the data. Linear regression explains this relationship with a straight line fit to the data. The linear regression model postulates that
Y=a+bX+e
Where the “residual” e is a random variable with mean zero. The coefficients a and b are determined by the condition that the sum of the square residuals is as small as possible (see
Now, we consider the problem of constraint prediction. Considering a set of data for a single dimension x over time t, and taking time as a variable. If the data are approximately linear with time, we can represented it as a straight line.
k2<=a1t+a2x<=k1
where the coeffs a1 and a2 are such that the line tightly encloses the data (k1 and k2 are close to each other). See
In the case of two dimensions x and y, over time t, the scatter plot can be represented by a cylinder that moves in time. See
Likewise if there are N variables, potentially changing over time, the plot will represent a convex polytope that will slide over time. For N dimensions, an N+1 dimensional solid will be plotted. The constraint prediction problem is to determine one or more constraints which represent this sliding polytope. This is discussed further below.
Assume that we have data x1, x2, x3, . . . These datapoints could be samples of demand of one commodity over time, multiple commodities at one or more times, etc. Let the constraints be of the form
Min<=a1x1+a2x2+ . . . <=Max
Here x1 , x2 . . . are known from the given data. The constraint which is best has to be found i.e. we have to determine the set of coefficients a1, a2, . . . , which result in the smallest difference between Max and Min (we have to do a normalization, to avoid the trivial solution a1=a2= . . . =0, more of this later).
For concreteness, let us slightly change our notation and define x1(0), x2(0), . . . as samples of demand, supply, etc of commodities 1, 2, . . . at time 0—they are samples of the parameters at time 0. These are obtained from observations, historical records, etc.
Let V be the vector of coefficients V=a1, a2, a3, a4, . . . We have:
Let us define A(k)=a1* x1(k)+a2*x2(k)+ . . . , where x1(k), x2(k) are the samples of the uncertain parameter values at time k
We Have
A(0)=a1*x1(0)+a2*x2(0)+ . . .
A(1)=a1*x1(1)+a2*x2(1)+ . . .
A(2)=a1*x1(2)+a2*x2(2)+ . . .
These equations can be put in matrix form as:
A=[X]*V,
where [X] is the Matrix of X values, each row of which corresponds to a time instant, each column of which is a different parameter.
We need to find the V which minimizes the maximum spread of [X]*V (L∞ norm, others metrics can also be used). This can be done by the LP
Minv(Z1−Z2)
[X]*V<=Z
1
Z
2<=[X]*V
Normalization constraints on V.
The normalization constraints, are used to avoid the trivial all-zero answer. These constraints can be chosen in various ways, such that the sum of all coefficients is unity, the sum of squares is unity, etc. If the sum of all coefficients is unity, we have
1TV=1
Where 1T is the all ones vector.
These normalization constraints refer to apriori information about the convex polytope. The can even be structural constraints—we can determine the best substititute/complementary/revenue constraints. If other (convex) metrics are used, the optimization can be handled by convex optimization well known in the state-of-art. An example with the L2 norm is (* is dot product)
Minv (Z1T*Z1)
Z
1
=[X]*V
Normalization constraints on V.
Since there are many possible normalization constraints, there are many possible answers for the vector of constraint coefficients V. How many constraints should we derive? One answer is to choose them such the volume of the convex polytope formed by these constraints is close to the minimal volume possible—that of the convex hull. Other methods are also possible. Using the constraints comprising the convex hull directly may not be meaningful in the application context—may result in constraints which are neither substitutes nor complements, etc.
A 3-D Example:
Consider a matrix with each row having data values for different dimensions (exemplarily demand for different products) and each column representing the data values for different instances of time.
X1 c11 c12 c13 . . .
X2 c21 c22 c23 . . .
X3 c31 c32 c33 . . .
Then the data will be best represented as per the L∞ norm, by the following constraints.
Z
1
>=c11x1+c21x2+c31x3+ . . . >=z2
Z
1
>=c12x1+c22x2+c32x3+ . . . >=z2
Z
1
>=c13x1+c23x2+c33x3+ . . . >=z2
provided cij's are chosen to minimize the objective function z1−z2.
Scenario Set Generation
A set of constraints represents a closed polytope in an n-dimensional space, and can be represented by the equation
Ax<=B
where A is the matrix of constraint coefficients, B the right hand side, and x the parameter vector. If a linear transformation is made on X, using a transformation matrix Q,
x=Qx′
the transformed polytope is given by
(AQ)x′<=b
Different choices of Q lead to different constraints, which have different impacts on the optimization, and results in different levels of cost/profit/ . . . etc for the supply chain.
Information is preserved if the transformation is volume preserving—in this case Determinant(Q) has to +1 or −1. Information content can be increased by using a contracting Q (Det(Q)<=1), and reduced by using an expanding Q (Det(Q)>=1). In the above we have assumed that the reference volume is invariant always. This may correspond to (say) hard limits on parameter values.
Of course, changing constraints while preserving information content can be achieved by rigid body translations also.
Suppose we have a set of constraints (S1) which encloses a volume (V1). Now we want to generate another set of constraints (S2) which has the same information content as the reference set S1. For this to be true, the volume enclosed by S2 i.e. V2 should be equal to V1. To obtain such a required set of constraints from a reference set one way is to perform geometric transformations on the constraint set. The transformation applied can be of three types:
In the first case, we utilize an orthogonal transformation (see below), in the second a general linear transformation with determinant +/−1, and the third case a general nonlinear transformation. Of course, an arbitrary translation can also be performed, and this keeps volume constant. We shall not mention the use of translations below, but assume it by implication below.
Case 1: Rigid Body Rotation i.e. Rotation While Keeping Shape Constant
We can rotate a polytope in an n-dimensional space by multiplying it with an orthogonal matrix with determinant +1. If we want to generate a large number of rotated polytopes (corresponding to rotated constraints sets as per the description), we need to generate a number of random matrices. To achieve this we will multiply the original constraint matrix A, with a randomly generated orthogonal matrix. An exemplary procedure followed to obtain a random orthogonal matrix is briefly explained in procedure A.
Case 2: Distorting the Shape While Keeping Volume Constant
We can transform a polytope in the n-dimensional space and at the same time change its shape but keep the volume constant by multiplying it with any matrix of determinant +1. To obtain a random transformation, we generate a random matrix and modify it to have determinant unity as exemplified by the following procedure:
After we have obtained the transformation matrix, we need to multiply it with the reference matrix. The procedure has been explained in procedure C, and corresponds to using A′=AQ, in addition to checking for non-negativity constraints for the variables which are restricted to have only non-negative values (e.g. total demand, supply, cost etc).
Case 3: Introducing New Constraints Keeping Volume Constant
This case corresponds to a general nonlinear transformation on the constraint polytope, and can take a variety of forms. An illustrative example was given earlier in
We stress that transformations need not keep volume constant. We can have transformation which increase volume and lower information content, by replacing A with (AQ), where Det(Q)<1, decrease volume and increase information content, by replacing A by (AQ) where Det(Q)>1, etc.
An Illustrative Example:
Application of Constraint Transformations
Here we specify one possible application of constraint transformation—there are many others also.
We take an example from supply chain management Keeping the example as simple as possible, we consider that there is a company that needs to decide on profitability, having demand for only two products dem_1 for product 1 and dem_2 for product 2. The demands represented in x and y axis in a two dimensional space are dem_1 and dem_2 respectively.
Consider a scenario described by following equations:
dem—1>=0
dem—2>=0
dem—1<=50
dem—2<=10
The above scenario can be graphically represented as in
Assume that for the company, the profit depends primarily on product 1 and that the demand of that product i.e. dem_1 is uncertain; product 2 has negligible impact on the profit for the company (it could be sold at cost itself). But in this scenario the company has some information which is certain; and would like to stick to that information. From the figure it is clear that dem_1 has a higher degree of uncertainty, resulting in profit uncertainty. The company would like to have a better estimate of its profit and hence would like to reduce the uncertainty in the profit by reducing the uncertainty in the demand of product 1, while keeping the total uncertainty under which the company's policies are designed constant (this may be a minimum requirement for safe operation). This can be achieved by operating in a regime, which corresponds to rotating the scenario set in the two dimensional plane. Ideally, the situation after rotation should have minimum value of dem_1 i.e. there should be a rotation of 90 degrees.
Clearly the scenario reflected by this new set of constraints was not predicted by the market survey, and requires measures for this to occur in practice. Whether this scenario is achievable in practice depends on how much control the company, a consortium formed from multiple companies, or possibly regulatory bodies have on the market (this is outside the scope of this discussion). This situation can be illustrated as in
However, a scenario between the worst case and best case can also be obtained. One such case is depicted in
Another way by which the user can obtain new set of scenarios keeping volume fixed is by distorting the constraint polytope as shown in
It is also clear that these same transformations can be generalized to increasing the volume and decreasing the information content, and vice versa.
Starting from an initial set of constraints, this procedure enables us to generate many constraints, which have the same information content, or less information content, or more information content.
The procedures of constraint prediction and transformation can exemplarily read/write data/constraints from a data/constraint warehouse, or a constraint database, as exemplified by data/constraint warehouse 121 and constraint database 900 in
Based on the principles outlined in the description above, and the details of the embodiment in the Software Architecture section, we present further discussion of possible embodiments and applications of the invention, which is capable of real time data analysis and control for a supply chain and similar entity. The description here describes both the functional elements, and the mapping of parts of these functional elements to the elements of the embodiment already described in the Software Architecture section and elsewhere. Also described is the operation of the embodiment, including embodiments of flow of control amongst these elements.
This embodiment addresses the central problem of decision support systems under uncertainty, for supply chain management and similar fields, and presents a novel application of robust programming [I] combined with information theory to supply chains and similar fields. Issues addressed by the embodiment include:
The embodiment is capable of giving an affirmative answer to these questions. It can be employed in multifarious domains, including
In each domain, we have domain specific constraints forming the assumption set.
The entire embodiment can be instantiated as a monolithic software entity, in HARDWARE, or a modularized service using exemplarity SOA/SAAS software methodologies.
1. Functional Components of Decision Support System
The invention in one embodiment proceeds in 4 functionally distinct phases, which are detailed subsequently. These phases can be iterated with changes in the input assumptions, optimization, etc till an adequate answer to the decision problem is attained. We note that depending on the application, one or more phases can be skipped and/or the order in which they are called changed. In the description below, only the functions of these phases (not their implementation/embodiment) is specified. Details of a specific embodiment are specified subsequently in the Section “Supply Chain Controller”, with additional details in the section “SCM Software Architecture” and figures and screenshots therein in the description.
2. Application in a Supply Chain Controller
The embodiment can be applied in a supply chain controller 10 as shown in
The SCM controller 10 analyzes the data to see if one or more constraints are satisfied and/or violated. Depending on the results, actions determined by response optimizer 122 and exemplified by the trigger-reorder action described in
3. Input Analysis Phase
The operation of the input analysis phase (100 in
Each set of constraints in polytope module 116 (exemplarily forming a polytope if all constraints are linear) is an assumption about the supply chains operating conditions, exemplarily in the future. Multiple sets of constraints can be created (CP1, CP2, CP3, in polytope module 116), referring to different assumptions about the future.
Then, analysis, done in the input analyzer 132 s performed using the following steps (not necessarily in this order)
A={X:C
A
X<=B
A}
B={Y:C
B
Y<=B
B}
Min∥X−Y∥
CAX<=BA
CBY<=BB
A. Input Analysis Database
Input Analysis operates on sets of constraints derived from exemplarily historical data in a supply chain data/constraint warehouse 121 or constraint database 120 (containing earlier formed constraints) in
These constraint sets are the atomic constituents of an ensemble of polytopes (if all constraints are linear), which are made using combinations of them, as shown in the examples below. We assume that C1, C2 and C3 are linear constraints, and C4 is a quadratic constraint over supply chain variables, such as:
P1=C1 AND C2
P2=C1 AND C3
P3=P1 AND P2
Q4=P1 AND C4
The first polytope is formed by constraints C1 and C2, the second one by C1 and C3, but the third polytope is succinctly written as the intersection of P1 and P2. Q4 is the intersection of a quadratic constraint and P1, and hence is not a polytope, but a general constraint region. The set of all the polytopes (or general constraint regions, of various dimensions), together with the constraints forms a database of constraints and their compositions viz. polytopes, part of which is attached to polytope module 116 (but not shown to avoid cluttering the diagram), and part of which is in query database 123. This database of constraints drives the complete decision support system. These constraints and polytopes can be time dependent also. The constraint database is stored in a compressed form, by using one or more of:
Then these polytopes are analyzed to determine their qualitative and quantitative relations with each other, as outlined in the description above.
Database Optimizations.
In addition to one-shot analyses of relationship between polytopes, decision support systems have to support repeated analyses of different relations made up of the same constraint sets. Let A, B, C, D, and X be constraint sets (polytopes or general constraint sets under nonlinear constraints). Then in a decision support system, we would like to verify the truth of
A≠φ
B≠φ
C≠φ
A⊂B
A⊂C
B⊂C
X=B×C
D=A×X∪B
B×(A×X)=φ
A×(B×C)−D=B
One method is to explicitly compute these expressions ab-initio from the relational algebra methods presented in the thesis. However, the existence of common subexpressions between the X=B×C, and A×(B×C)−D enables us to pre-compute the relation X=B×C (this is an intersection of two constraint sets, which can be obtained by methods like those described our patent application 1677/CHE/2008), and use it directly in the relation A×(B×C)−D. Common sub-expression elimination methods (well known in compiler technology) can be used to profitably identify good common subexpressions. These methods require the costs of the atomic operations to determine a good breakup of a large expression into smaller expression, and these costs are the costs of atomic polytope operations (disjoint, subset, and intersection) as outlined in the description above. These costs depend of course on the sizes of the constraint sets—the number of variables, and constraints, etc.
These precomputed relations are stored in a query database 123 in
We note that the relational algebra operators—subset, disjoint, intersection can be used at the conditions in a relational database generalized join. If X and Y are tables containing constraint sets (polytopes), the generalized join XY, is defined as all those tuples (x,y), such that x (a constraint set in X) is a subet of, disjoint from, or intersecting y (a constraint set in Y) respectively. This extends the relational databases to handle the richer relational algebra of polytopes (or general convex bodies if nonlinear convex constraints are allowed).
Exemplary Application of Input Analyzer
Below we give an example of the utility of the Input Analyzer embodiment of this invention. Consider the task of optimizing a supply chain for unknown future demand. Depending on the future prediction model, the teams involved in the prediction, etc, very different answers can be obtained. For example, for expansion of a retail chain, some future assumptions are possibly:
The first set of assumptions is over variables (Company Sales, Product Mix, Industry Revenue. The second set is over variables (Product Mix, Consumer Disposable Income, Industry Profit). The only variable common is the Product Mix. Clearly optimization under these two sets of assumptions is likely to yield very different answers. Which is correct? The relational algebra engine helps us resolve this dilemma by examining first, if these two sets of assumptions have anything in common (intersecting), or are totally different (disjoint). Then the common set can be separated, and the differences examined for further analysis as outlined in the description.
3.1 More Constraints: Constraint Transformations and Prediction
A key feature of this embodiment is the ability to generate new sets of constraints (new polytopes if the constraints are linear), which are information equivalent to a pre-existing constraint. Polytopes which have more or less information can also be generated. This is performed as discussed in the description, and restated below:
From a set of constraints represented in linear form as
Ax<=b
We can generate many other equivalent ones, using a variety of methods. If we use linear transformations x=Qy on the co-ordinate axes, we rewrite the constraints as
AQ y<=b.
In the y space, the constraint matrix is (AQ). If Q is orthogonal, this is a rotation, and the volume is preserved. The polytope in the y-space corresponds to the polytope in the x-space rotated by an angle specified by Q. Alternatively, we can view this as a new rotated polytope in the x-space itself, and this is the convention used here. If Q is not orthogonal, but has Det(Q)=+/−1, the volume is preserved, but shape is distorted. Similarly, a polytope can be translated—any translation preserves volume.
Polytopes with different number of constraints can be equivalent in information content and volume (see above).
As an example, consider polytope 150 in
All these constraints sets form an ensemble of information labeled constraint sets, and are placed in the same or a different database, in an exemplarily compressed form
As an example of the constraint transformation facility, consider the polytopes in
CP200: 0=dem1<=1; 0<=dem2<=1;
This can be transformed using a 45 degree rotation to the polytope CP201 in
CP201: 0<=[dem1−dem2]<=−√2; 0<=[dem1+dem2]<=√2;
The matrix Q used here is
A further translation by 1/√2 in the positive dem1 direction, results in this polytope moving to the first quadrant only, resulting in CP202 in
CP202: 0<=[dem1−dem2]<=−√2+1/√2; 0<=[dem1+dem2]<=√2+1/√2;
CP200, CP201, and CP202 all have the same volume and information content. A polytope with 2 bits more information content can be generated by scaling CP200 by a factor of ½ in each dimension, yielding CP203 in
CP203: 0<=dem1<=½; 0<=dem2<=½;
Another information equivalent polytope is the triangle CP204 in
CP204: 0<=dem1<=2;0<=x−y;−2<=−x−y(x+y<=2)
Since the number of sides is different between CP204 and the others, it is not generated by a linear; but by a nonlinear transformation from CP200.
These constraint transformations furnish one method to enhance an existing constraint database. Prediction of constraints from historical data is another method to enhance an existing constraint database.
The constraints can be inferred using several methods as outlined in the description, to minimize the L1 or other norms, representing the spread of the data along the direction perpendicular to the constraints. The constraints need not apriori have arbitrary direction, but the allowable directions can be restricted using constraints on the constraint coefficients themselves.
In
3.2 Decision Support Over Time or Other Index
The relations between polytopes (constraints sets, which can be general convex or nonconvex bodies under nonlinear/nonconvex constraints) can be analyzed as a time series by the extended relational algebra engine 119 in
The polytopes A100, B200, and C300, are evolving with time. These three can exemplarily represent three different future evolving views of a supply chain future. The evolution of this set theoretic relationship is shown in
In addition, labeled lines L1, L2, and L3 in
Quantitative information about how far disjoint polytopes are can be used to obtain insight into how different various assumption sets are. The LP formulation (repeated here from the discussion in Patent 1677/CHE/2008) can be used for this purpose:
A={X:C
A
X<=B
A}
B={Y:C
B
Y<=B
B}
Min∥X−Y∥
C
A
X<=B
A
C
B
Y<=B
B
The relational algebra relations (subset, disjoint, intersecting), together with associated min/max distances between polytopes, and polytope volume/information content, forms the basis for input analysis. The sequence depicted need not be with respect to time, but can be w.r.t product id, node id, etc.
Note that determining the set theoretic relationship and distances between evolving constraint sets requires repeatedly solving linear programs Intazurental linear programming techniques (e.g. those that keep the same basis) well known in the state-of-art can be used to reduce computation time.
As has been mentioned previously, we reiterate that the methods are applicable to arbitrarily shaped constraint sets, not just polytopes or convex bodies.
3.4 Significance of Constraints
The constraints used can have multiple interpretations. For example, they could be used as demand validity constraints, i.e. the acceptable set of demands for guarantees on the supply chain performance to hold, similarly supply validity constraints, inventory validity constraints (relations limiting the inventory of each kind of product in the chain), price validity constraints, etc. We use the word “guarantees on performance”, since the approach here in one manifestation is a performance bounding approach. In another manifestation, using information on probability distribution of the parameters, converted to constraints specifying average or kth percentile contours, the guarantees can be guarantees of average or kth percentile performance.
Constraints can also be used as contract conditions, during auctions or similar multi-agent optimization strategies. For example, consider a contract between a supplier and buyer, where quantities d1 and d2 respectively of two products are traded at discounted prices p1 and p2. The discount holds provided a certain minimum is traded (acceptable to seller, else the price will have to increase) and a certain maximum amount is traded (acceptable to buyer, else he asks for a larger discount). If the min/max amounts are [100/200] for product 1, and [180/250] for product 2 we would say
p1 and p2 hold if
180<=d2<=250
Instead of specifying independent maxima/minima for products 1 and 2, our general constraints can specify correlated conditions between products 1 and 2, as
p1 and p2 hold if
350<=d1+d2<=400
This constraint recognizes the fact that to some extent, a smaller d1 (less than 100, the minimum amount in the previous example) can be compensated by a larger d2 (greater than 250) and vice versa. The above can be generalized to arbitrary constraints used as preconditions, and arbitrary post conditions also specified as constraints. Contracts can be changed during negotiations between trading partners.
3 Optimization Phase
Using methods outlined in the description in the Capacity Planning and the Inventory Optimization sections, the optimizer optimizes one or more supply chain metrics, based on the information under the constraints. The results are generalizations of classical supply chain policies, like (s,S) basestock. The use of linear and integer linear programming techniques has been outlined in the description, and optimal policies based on repeatedly solving linear/integer-linear optimizations, under the uncertainty constraints have been described, both for capacity planning and inventory optimization. Another class of policies is described in
First, consider a 2-D example of a correlated constraint between inventory of product 1 and product 2 as:
Inv
—
p1+Inv—p2<=1000,
Inv_p1>=0; Inv_p2>=0; We assume no backorders
A generalized basestock-style inventory policy using this constraint can be defined as follows. First, this set of constraints defines a polytope. From this polytope, we generate two polytopes, an inner polytope 500 in ed. The inner and ou
S, respectively of an (s,S) basestock policy. The original constraint is not shown in
Generalized Basestock w.r.t Inventory Variables.
This generalizes basestock policies, which are based on single goods. The constraint region can be an arbitrary polytope, and may have many faces. The basic difference from a standard (s,S) policy is that the thresholds and reorder point of each product, keep changing, as a function of available inventory of the other products. In
In general, if the polytope is based on demand/supply/inventory/price! . . . variables, the same policy can be generalized to specify a triggering polytope. If the state of the supply chain system, moves to the boundary of the triggering polytope, a re-order (or other supply chain event) is triggered. The reorder event moves the supply chain state to a optimal point on a reorder point polytope. An optimal point on the reorder point boundary is chosen to optimize some metric, e.g. cost, total inventory, profit, etc. The policy is not restricted to polytopes specified by linear constraints, but also general convex bodies specified by convex constraints and also general non-convex bodies.
Hardware or modularized SOA/SAAS implementations are possible of above.
4 Input Output Analysis
The bounds on one or more outputs can be compared with the input uncertainty, yielding insight into supply chain metric sensitivity to input assumptions, as fully described in the description of
As described in Appendix D, the constraints themselves can be transformed to improve the metric, using all the transformation facilities described above. The total output information can be estimated based on multiple metrics, and compared with the total input information.
Glossary
| Number | Date | Country | Kind |
|---|---|---|---|
| 1684/CHE/2008 | Jul 2008 | IN | national |
| Filing Document | Filing Date | Country | Kind | 371c Date |
|---|---|---|---|---|
| PCT/IN2009/000398 | 7/13/2009 | WO | 00 | 3/29/2011 |