200 likes | 400 Views
Optimization technology. Recent history dates back to invention of Operations Research (OR) techniques by mathematicians such as George Dantzig (1940’s) Mathematical programming techniques from OR have provided the basis for most optimization solutions in 1950’s, 1960’s and 1970’s
E N D
Optimization technology Recent history dates back to invention of Operations Research (OR) techniques by mathematicians such as George Dantzig (1940’s) Mathematical programming techniques from OR have provided the basis for most optimization solutions in 1950’s, 1960’s and 1970’s Constraint programming (invented in the 1970’s by computer scientists such as Mackworth, Montanari and Waltz) has grown in popularity in the commercial setting since the 1980’s. Agent technology has become recognized as an alternative basis for solving optimization problems since the 1990’s
An example • Optmization in the steel industry
Basic elements of an optimization problem • Identify the decision variables – finding a value for each of these constitutes a solution to the problem • Identify the set of constraints – these determine what the allowed combinations of values are for the decision variables. The language for writing constraints depends on the specific optimization technique. Ex: Linear programming only allows us to write constraints in the form of linear inequalities (e.g., x + y < 10). • Identify the objective function. This is function to be maximized or minimized, e.g. maximize profit, or minimize cost.
Supply chain optimization • Business objective: improve supply chain efficiency (velocity ?), optimize operation of the supply chain • Metrics for efficiency - what do we optimize ? • Define the problem in terms of decision variables • Define an objective function in terms of the decision variables. The goal would be to maximize or minimize the value of this function, i.e., to find an allocation of values to the decision variables such that the value of this function is either maximized or minimized. • Supply chain optimization is the continuous process of seeking optimal allocations of values to decision variables
Common optimization problems: I • Long-term planning (time-frame: several months/years): • Questions: • How much of each product type should I manufacture ? When ? Where ? (Assumes a network of manufacturing centers with potential duplication of manufacturing capability) • How much should I keep in inventory (both for manufacturing inputs and outputs) ? Where ? (Assumes a distributed network of warehouses) • Constraints: • Capacity constraints (both manufacturing and inventory) • Demand profile • Process constraints (downtimes, planned outages) • Supply variability • Objectives: Profit/revenue maximization, maximizing asset utilization, minimization of deviation from demand profile, minimization of deviation from target inventory profile
Common optimization problems: II • Medium-term planning/scheduling (time-frame: a few months/weeks): • Similar to long-term planning, but with scheduling constraints and objectives added • Unit scheduling/reactive scheduling: • Questions: • In what sequence should orders/jobs be manufactured ? Which job should I process on a given production unit at a given point in time ? Should I go into overtime ? • Constraints: • Capacity constraints • Sequencing constraints • Orders + deadlines • Process constraints (downtimes etc.) • Objectives: Minimize makespan (i.e., maximize asset utilization), minimize deviation from order deadlines, maximize profit/revenue
Common optimization problems: III • Shipping: • How do I allocate orders to trucks ? • What routes should trucks travel on ? • How do I allocate truck to routes ?
Major classes of optimization techniques: • From the field of operations research (OR) • Linear programming • Integer programming…. • From the field of artificial intelligence (AI) • Constraint programming • Heuristic search techniques
Why constraint programming: I • Operations research (OR) techniques guarantee optimality, but solve an approximation of the real problem • OR techniques operate in “black box” mode – no operator intervention • OR techniques are brittle • OR techniques cannot be interrupted to obtain partial solutions
Why constraint programming: II • Robust handling of inputs • Avoid giving up if the problem is too hard • Incremental re-solving • Avoid starting from scratch if there is a small change to the problem inputs • Mixed-initiative solving • Allow the operator full control over the problem solving process • Ask the operator for guidance when there isn’t enough information to generate a solution
Why constraint programming: III • Generating (partial) solutions in real-time • Allow the operator to interrupt and obtain a (good) partial solution if the solving process takes too long • “What-if” analysis • Allow the operator to generate hypothetical scenarios (e.g. What would the roster look like if John gets the Wednesday evening shift ?) • Support the merging of hypothetical scenarios • User-friendly interfaces
Constraint programming: Internals • Identify the variables of interest (the decision variables) • Identify the variable domains (the sets from which these variables might be assigned values) • Identify the relevant constraints on these variables. Ex: X= Y + 2 OR (X=a AND Y=b) OR (X=c AND Y=d)
Example: Scheduling • Variables: {Astart, Aend, Bstart, Bend} • Domains: {1,2, …, 24} for each variable • Constraints: • Aend - Astart = 1 • Astart > 8 • Aend < 13 • Bend - Bstart = 1 • Bstart > 8 • Bend < 13 • Bstart - Aend = 1
Constraint-based Optimization: I • Specify an objective function to be maximized (e.g. profit or resource utilization) or minimized (e.g. cost or cycle-time) • Constraint-based optimization techniques search through a space of increasingly better solutions • And can be interrupted to obtain the current best solution
Constraint-based Optimization: II • Transforming an optimization problem to a satisfaction problem: • Identify the current value of the objective function f(S) under the current solution S • Post a new constraint f(X) > f(S) (where X is the signature of the objective function f) • Search for a new solution to the satisfaction problem • Iterate until the satisfaction problem becomes unsolvable (or when the marginal improvement over each iteration drops below a threshold) (Observe that this procedure can be interrupted at any time to obtain the current best solution)
Example: Over-constrained scheduling • Variables: {Astart, Aend, Bstart, Bend} • Domains: {1,2, …, 24} for each variable • Constraints: • Aend - Astart = 1 • Astart > 8 • Aend < 13 • Bend - Bstart = 1 • Bstart > 8 • Bend < 13 • Bstart - Aend = 2
Soft constraints • When a problem is over-constrained, some constraints have to be violated. • “If at all possible, I’d like to do my talk at 11am” • Even when a constraint is violated, we do not have to deviate too far from it
Market-oriented programming (Wellman et al) exploits market models in multi-agent computational economies to solve distributed resource allocation problems. The only agent interactions are trading interactions by offering to buy or sell commodities at fixed prices. When the system reaches equilibrium, the current allocations of commodities to agents represents a solution to the distributed resource allocation problem. Applications: Truck despatch in open-pit mines Courier truck despatch A hybrid market-oriented and constraint-based solution A market mechanism such as a sealed-bid auction determines initial allocation of tasks to trucks. Computing bids requires constraint solving Near-optimality of task allocations must be maintained in a dynamic environment. This is achieved via a market mechanism where task allocations are traded Determining whether a trade is feasible requires constraint solving Supply chain optimization: Market agents
Some vendors of optimization systems • ILOG • ConstraintWorks • Cosytec • Numetrix (now part of JDEdwards) • SAP • Peoplesoft • Baan
The end Questions?