Research Challenges in Process Systems Engineering and Overview of - - PowerPoint PPT Presentation

research challenges in process systems engineering and
SMART_READER_LITE
LIVE PREVIEW

Research Challenges in Process Systems Engineering and Overview of - - PowerPoint PPT Presentation

Research Challenges in Process Systems Engineering and Overview of Mathematical Programming Ignacio E. Grossmann Center for Advanced Process Decision-making (CAPD) Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA


slide-1
SLIDE 1

Research Challenges in Process Systems Engineering and Overview of Mathematical Programming

Ignacio E. Grossmann Center for Advanced Process Decision-making (CAPD) Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213, U.S.A.

slide-2
SLIDE 2

Questions:

  • 1. What is the role of Process Systems Engineering in

“commodity” industry vs. “new emerging” technologies?

  • 2. What is the future scope for fundamental contributions

in Process Systems Engineering ?

Process Systems Engineering (PSE)

Value preservation vs. Value creation Science vs. Engineering

  • 3. What are Research Challenges in Process Systems Engineering?
slide-3
SLIDE 3

Changes in the Chemical Industry

From Marcinowski (2006)

slide-4
SLIDE 4

ExxonMobil $208.7 $237 $359 ChevronTexaco 99.7 120 193

Revenues of major U.S. companies (billions)

(2001) (2003) (2005) Johnson & Johnson 32.3 41.8 50.5 Merck 21.2 22.4 22.0 Bristol-Myers Squibb 21.7 18.6 19.2 Procter & Gamble 39.2 43.4 56.7 Dow 27.8 32.6 46.3 DuPont 26.8 30.2 25.3 Amgen 4.0 8.4 12.4 Genentech 1.7 3.3 5.5

Economics of Chemical Enterprise

Value preservation vs. Value Creation

slide-5
SLIDE 5

Move from Engineering to Science

slide-6
SLIDE 6

Papers U.S. Fluid Mechanics, Transport Phenomena 57 18 Reactors, Kinetics, Catalysis 56 21 Process Systems Engineering 51 22 Separations 37 11 Particle Technology, Fluidization 28 11 Thermodynamics 19 2 Materials, Interfaces, Electrochemical Phenomena 21 9 Environmental, Energy Engineering 16 8 Bioeng., Food, Natural Products 9 5 Total 294 107

Distribution Research Papers AIChE Journal 2005

=> Only 36% papers involve US-based authors

Only 15% from top 25 U.S. schools

slide-7
SLIDE 7

Observations

Trade-offs: Value preservation vs. Value growth Chemicals/Fuels vs. Pharmaceutical/Biotechnology Major real world challenges Globalization, energy, environment, health

=> Need expand scope of Process Systems Engineering

Research trend away from Chemical Engineering Science vs Engineering

slide-8
SLIDE 8

Expanding the Scope of Process Systems Engineering

(Grossmann & Westerberg, 2000; Marquardt et al, 1998)

slide-9
SLIDE 9

Major Research Challenges

  • I. Product and Process Design
  • III. Enterprise-wide Optimization
  • II. Energy and Sustainability
slide-10
SLIDE 10

What is science base for PSE? Numerical analysis => Simulation Mathematical Programming => Optimization Systems and Control Theory => Process Control Computer Science => Advanced Info./ Computing Management Science => Operations/Business Math Programming & Control Theory “competitive” advantage

slide-11
SLIDE 11

Motivation

Design, operations and control problems involve decision-making

  • ver a large number of alternatives for selecting “best” solution
  • Configurations (discrete variables)
  • Parameter values (continuous variables)

Motivation Math Programming

Challenges:

How to model optimization problems? How to solve large-scale models? How to avoid local solutions? How to handle uncertainties?

slide-12
SLIDE 12

Mathematical Programming

Given a space of alternatives that are specified through constraints in a mathematical model select decision variables to optimize an objective function

Rand Symposium, Santa Monica (1959)

m n

y R x y x g y x h t s y x f Z } 1 , { , , ) , ( . . ) , ( min ∈ ∈ ≤ = = ) (

MINLP: Mixed-integer Nonlinear Programming Problem

Major challenges:

  • Combinatorics: scalability (NP-hard)
  • Nonconvexities: global optima
slide-13
SLIDE 13

n

R x x f Z ∈ = ) ( min

n

R x x h t s x f Z ∈ = = ) ( . . ) ( min

Newton (1664) Lagrange (1778) Solution of inequalities Fourier (1826) Solution of linear equations Gauss (1826) Solution of inequality systems Farkas (1902)

Classical Optimization

slide-14
SLIDE 14

x1 x2 x1 x2

Linear Programming Kantorovich (1939), Dantzig (1947) Nonlinear Programming Karush (1939), Kuhn, A.W.Tucker (1951) Integer Programming R. E. Gomory (1958)

y1 y2

Modern Optimization

slide-15
SLIDE 15

1950's Linear Programming Nonlinear Programming 1960's Network Theory Integer Programming Dynamic Programming 1970's Nondifferentiable Optimization Combinatorial Optimization: Graph Theory Theory Computational Complexity

Evolution of Mathematical Programming

Egon Balas: Preface to Minoux (1983)

1980’s Interior Point Methods Karmarkar (1984) 1990’s Convexification of Mixed-Integer Linear Programs

Lovacz & Schrijver (1989), Sherali & Adams (1990), Balas, Ceria, Cornuejols (1993)

2000’s MINLP Global Optimization Logic-based optimization Search techniques (tabu, genetic algorithms) Hybrid-systems Computational progress: much faster algorithms/much faster computers

slide-16
SLIDE 16

Progress in Linear Programming

Algorithms Primal simplex in 1987 (XMP) versus Best(primal,dual,barrier) 2002 (CPLEX 7.1) 2400x

Increase in computational speed from 1987 to 2002

Bixby-ILOG (2002)

Machines Sun 3/150 Pentium 4, 1.7GHz

800x Net increase: Algorithm * Machine ~ 1 900 000x Two million-fold increase in speed!!

For 50,000 constraint LP model

slide-17
SLIDE 17

Process Design Process Synthesis

Applications of Math. Programming in Chemical Engineering

Plant Warehouse Plant Distr. Center Retailer End consumers

Material flow Information flow (Orders) Demand for A Making of A, B & C Demand for B Demands for C

Plant Warehouse Plant Distr. Center Retailer End consumers

Material flow Information flow (Orders) Demand for A Demand for A Making of A, B & C Demand for B Demand for B Demands for C Demands for C

t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t+N t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t+N t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t+N t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t+k|t) y(t+k|t) w(t+k|t) t-1 t+1 t+k t ... ... N u(t) w(t) u(t+k|t) y(t+k|t) y(t) w(t+k|t) t+N

LP, MILP, NLP, MINLP, Optimal Control

Production Planning Process Scheduling Supply Chain Management Process Control Parameter Estimation

slide-18
SLIDE 18

Contributions by Chemical Engineers to Mathematical Programming

Large-scale nonlinear programming SQP algorithms Interior Point algorithms Mixed-integer nonlinear programming Outer-approximation algorithm Extended-Cutting Plane Method Generalized Disjunctive Programming Global optimization α-Branch and Bound Spatial branch and bound methods Optimal control problems NLP-based strategies Optimization under Uncertainty Sim-Opt Parametric programming

slide-19
SLIDE 19

Mathematical Programming

min f(x, y) Cost s.t. h(x, y) = 0 Process equations g(x, y) ≤ 0 Specifications x ∈ X Continuous variables y ∈{0,1} Discrete variables Continuous optimization Linear programming: LP Nonlinear programming: NLP Discrete optimization Mixed-integer linear programming: MILP Mixed-integer nonlinear programming: MINLP

slide-20
SLIDE 20

Modeling systems

Mathematical Programming GAMS (Meeraus et al, 1997) AMPL (Fourer et al., 1995) AIMSS (Bisschop et al. 2000)

  • 1. Algebraic modeling systems => pure equation models
  • 2. Indexing capability => large-scale problems
  • 3. Automatic differentiation => no derivatives by user
  • 4. Automatic interface with

LP/MILP/NLP/MINLP solvers

slide-21
SLIDE 21

LP:

Algorithms: Simplex (Dantzig, 1949; Kantorovich, 1938) Interior Point (Karmarkar, 1988, Marsten at al, 1990) Major codes: CPLEX (ILOG) (Bixby) XPRESS (Dash Optimization) (Beale, Daniel) OSL (IBM) (Forrest, Tomlin) Simplex: up to 100,000 rows (constraints), 1,000,000 vars Interior Point: up to 1,000,000 rows (constraints), 10,000,000 vars typically 20-40 Newton iterations regardless size Only limitation very large problems >500,000 constr

Linear Programming

slide-22
SLIDE 22

MILP

Branch and Bound

Beale (1958), Balas (1962), Dakin (1965)

Cutting planes

Gomory (1959), Balas et al (1993)

Branch and cut

Johnson, Nemhauser & Savelsbergh (2000)

"Good" formulation crucial! => Small LP relaxation gap Drawback: exponential complexity

, } 1 , { min ≥ ∈ ≤ + + = x y d Bx Ay st x b y a Z

m T T

Theory for Convexification

Lovacz & Schrijver (1989), Sherali & Adams (1990), Balas, Ceria, Cornuejols (1993)

Objective function Constraints

LP (simplex) based

slide-23
SLIDE 23

Modeling with MILP

Note: linear constraints

  • 3. Integer numbers

1. Multiple choice At least one Exactly one At most one 1 1

i i I i i I

y y

∈ ∈

= ≤

∑ ∑

1

i i I

y

  • 2. Implication

If select i then select k Select i if and only if select k

i k i k

y y y y − ≤ − =

∑ ∑

= =

= =

N k k N k k

y ky n

1 1

1 ,

also

=

=

M k k k y

n

1

2

Fewer 0-1 variables Weaker relaxation

slide-24
SLIDE 24

⇒ Ly ≤ x ≤ Uy y = 0, 1 MIXED-INTEGER MODEL MIXED-INTEGER MODEL

Discontinuous Functions/Domains

⇒ C = α y + β x 0 ≤ x ≤ U y y = 0, 1 0 L y = 1 U y = 0

⎩ ⎨ ⎧ = ≤ ≤ = = 1 IF IF y U x L y x

a) Domain b) Function

⎩ ⎨ ⎧ = + = = 1 IF IF y x y C β α

y = 1 α y = 0 x C

slide-25
SLIDE 25

Simple Minded Approaches

Exhaustive Enumeration SOLVE LP’S FOR ALL 0-1 COMBINATIONS (2m)

IF m = 5 32 COMBINATIONS IF m = 100 1030 COMBINATIONS IF m = 10,000 103000 COMBINATIONS

Relaxation and Rounding

SOLVE MILP WITH 0 ≤ y ≤ 1 If solution not integer round closest

RELAXATION

Only special cases yield integer optimum (Assignment Problem)

Relaxed LP provides LOWER BOUND to MILP solution Difference: Relaxation gap

slide-26
SLIDE 26

ROUNDING May yield infeasible or suboptimal solution y2 1

Integer Optimum INFEASIBLE ! Rounded Infeasible

0.5 1 0.5

Relaxed optimum Rounded feasible

y2 1

Integer Optimum SUBOPTIMAL !

0.5 1 0.5

Relaxed optimum

slide-27
SLIDE 27

Convert MIP into a Continuous NLP

Example: Min Z = y1 + 2y2 s.t. 2y1 + y2 ≥ 1 y1 = 0, 1 y2 = 0, 1 replace 0 – 1 conditions by 0 ≤ y1 ≤ 1, y1 (1-y1) ≤ 0 0 ≤ y2 ≤ 1 y1 (1-y2) ≤ 0 Nonlinear Nonconvex!

=>

y1 y2

  • nly feasible pts.

(1,0) (0,1) (1,1)

Using CONOPT2

  • st. point

y1 = 0, y2 = 0 = > infeasible

  • st. pt. y1 = 0.5, y2 = 0.5 = > y1 = 0 y2 = 1

Z = 2 suboptimal correct solution y1 = 1, y2 = 0 Z = 1 Z=2 Z=1

slide-28
SLIDE 28

Branch and Bound

y1 y2

Tree Enumeration Solve LP At Each Node

Min y1 + 2y2 s.t. 2y1 + y2 ≥ 1

(P)

y1 = 0, 1 y2 = 0, 1 Solve MILP with 0 ≤ y1 ≤ 1 y1 = 0.5 Z = 0.5 Lower Bound 0 ≤ y2 ≤ 1 y2 = 0 Fix y1 = 1 y2 = 0 Z = 1

OPTIMUM

1 3 2

Fix y1 = 0 y2 = 1 Z = 2 Z=2 Z=1

slide-29
SLIDE 29

Major Solution Approaches MILP

I. Enumeration Branch and bound

Land,Doig (1960) Dakin (1965) Basic idea: partition successively integer space to determine whether subregions can be eliminated by solving relaxed LP problems

II. Convexification Cutting planes

Gomory (1958) Crowder, Johnson, Padberg (1983), Balas, Ceria, Cornjuelos (1993) Basic idea: solve sequence relaxed LP subproblems by adding valid inequalities that cut-off previous solutions

Remark

  • Branch and bound most widely used
  • Recent trend to integrate it with cutting planes

BRANCH-AND-CUT

slide-30
SLIDE 30

Branch and Bound

Partitioning Integer Space Performed with Binary Tree Note: 15 nodes for 23=8 0-1 combinations

y1=1 y1=0 y2=1 y2=0 y3=0 y3=1 y2=0 y2=1 y3=0 y3=0 y3=0 y3=1 y3=1 y3=1

Root Node (LP Relaxation)

3 , 2 , 1 , 1 = ≤ ≤ i yi

Node Node k

Node k descendent node

slide-31
SLIDE 31

NODE k: LP

min Z = cTx + bTy s.t. Ax + By ≤ d x ≥ 0 0 ≤ y ≤ 1 yi = 0 or 1 i ∈ Ik

Since node k descendent of node 1. IF LP INFEASIBLE THEN LPk INFEASIBLE 2. IF LPk FEASIBLE Z ≤ Zk

monotone increase objective Z : LOWER BOUND

3. IF LPk INTEGER Zk ≤ Z* Zk : UPPER BOUND

FATHOMING RULES: If node is infeasible If Lower Bound exceeds Upper Bound

slide-32
SLIDE 32

“If sufficient care is exercised, it is now possible to solve MILP models of size approaching ‘large’ LP’s. Note, however, that ‘sufficient care’ is the operative phrase”.

JOHN TOMLIN (1983)

Modeling of Integer Programs

HOW TO MODEL INTEGER CONSTRAINTS? Propositional Logic Disjunctions

slide-33
SLIDE 33

Mathematical Modeling of Boolean Expressions

Williams (1988)

LITERAL IN PROPOSITIONAL LOGIC Pi TRUE NEGATION ¬ Pi FALSE Example Pi: select unit i, execute task j PROPOSITION: set of literals Pi separated by OR, AND, IMPLICATION

Representation Linear 0-1 Inequalities

ASSIGN binary yi to Pi (1 – yi) to ¬ Pi OR P1 ∨ P2 ∨ … ∨ Pr y1 + y2 + .. + yr ≥ 1 AND P1 ∧ P2 ∧ … ∧ Pr y1 ≥ 1, y2 ≥ 1, …yr ≥ 1 IMPLICATION P1 ⇒ P2 EQUIVALENT TO ¬ P1 ∨ P2 1 – y1 + y2 ≥ 1 OR y2 ≥ y1

slide-34
SLIDE 34

Systematic Procedure to Derive Linear Inequalities for Logic Propositions

Goal is to Convert Logical Expression into Conjunctive Normal Form (CNF) Q1 ∧ Q2 ∧ . . . ∧ Qs where clause Qi : P1 ∨ P2 ∨ . . . ∨ Pr (Note: all OR)

  • 3. RECURSIVELY DISTRIBUTE OR OVER AND

(P1 ∧ P2) ∨ P3 ⇔ (P1 ∨ P3) ∧ (P2 ∨ P3) BASIC STEPS

  • 1. REPLACE IMPLICATION BY DISJUNCTION

P1 ⇒ P2 ⇔ ¬ P1 ∨ P2

  • 2. MOVE NEGATION INWARD APPLYING DE MORGAN’S THEOREM

¬ (P1 ∧ P2) ⇔ ¬ P1 ∨ ¬ P2 ¬ (P1 ∨ P2) ⇔ ¬ P1 ∧ ¬ P2

slide-35
SLIDE 35

EXAMPLE flash ⇒ dist ∨ abs memb ⇒ not abs ∧ comp

PF ⇒ PD ∨ PA (1) PM ⇒ ¬ PA ∧ PC (2) (1) ¬ PF ∨ PD ∨ PA remove implication 1 – yF + yD + yA ≥ 1 yD + yA ≥ yF (2) ¬ PM ∨ (¬ PA ∧ Pc) remove implication 1 – yM + 1 – yA ≥ 1 1 – yM + yC ≥ 1 yM + yA ≤ 1 yc ≥ yM Verify: yF = 1 yD + yA ≥ 1 yF = 0 yD + yA ≥ 0 yM = 1 ⇒ yA = 0 yC = 1 yD + yA ≥ yF yM + yA ≤ 1 yC ≥ yM (¬ PM ∨ ¬ PA) ∧ (¬ PM ∨ Pc) distribute OR over AND => CNF!

slide-36
SLIDE 36

EXAMPLE Integer Cut

Constraint that is infeasible for integer point yi = 1 i ∈ B yi = 0 i ∈ N and feasible for all other integer points 1 1 ) 1 ( ) ( ) ( )] ( ) [( − ≤ − ≥ + − ↓ ∨ ¬ ¬ ∧ ¬

∑ ∑ ∑ ∑ ∨ ∨ ∧ ∧

∈ ∈ ∈ ∈ ∈ ∈ ∈ ∈

B

N i i B i i N i i i B i i N i i B i i N i i B i

y y y y y y y y

  • Balas andJeroslow (1968)
slide-37
SLIDE 37

Example: Multiperiod Problems

“If Task yi is performed in any time period i = 1, ..n select Unit z” Intuitive Approach y1 + y2 + . . . + yn ≤ n*z (1) Logic Based Approach y1 ∨ y2 ∨ . . . ∨ yn ⇒ z Inequalities in (2) are stronger than inequalities in (1) ¬(y1 ∨ y2 ∨ . . . ∨ yn) ∨ z (¬ y1 ∨ z) ∧ (¬ y2 ∨ z) ∧ . . . ∧ (¬ yn ∨ z) 1 – y1 + z ≥ 1 1 – y2 + z ≥ 1 1 – yn + z ≥ 1 … yn ≤ z y1 ≤ z y2 ≤ z (2) (¬y1 ∧ ¬y2 ∧ . . . ∧ ¬yn) ∨ z

slide-38
SLIDE 38

1 1 1 y1 y2 z

Geometrical interpretation y1 ≤ z y2 ≤ z All extreme points in hypercube are integer!

slide-39
SLIDE 39

1 1 1 y1 y2 z 0.5 0.5

Geometrical interpretation

y1 + y2 ≤ 2z Non-integer extreme points Weaker relaxation!

slide-40
SLIDE 40

Modeling of Disjunctions

i i i D

A x b

≤ ⎡ ⎤ ⎣ ⎦

  • ne inequality must hold

Example: A before B OR B before A

A B B A A B

pt pt TS TS TS TS

⎡ ⎤ ⎡ ⎤ + ≤ ∨ + ≤ ⎣ ⎦ ⎣ ⎦

Big M Formulation Ai x ≤ bi + Mi ( 1 – yi) i∈D 1 = ∑

∈D i i

y Difficulty: Parameter Mi

Must be sufficiently large to render inequality redundant Large value yields poor relaxation

slide-41
SLIDE 41

Convex-hull Formulation (Balas, 1985)

disaggregation vars.

i i D

x z

=∑

Ai zi ≤ bi yi i∈D

1 = ∑

∈D i i

y

0 ≤ zi ≤ Uyi i∈D (may be removed) yi = 0, 1 Derivation Ai x yi ≤ bi yi i∈D (B) 1 = ∑

∈D i i

y

nonlinear disj. equiv.

slide-42
SLIDE 42

Let zi = x yi disaggregated variable 1 = ∑

∈D i i

y

i i i i D i D i D

z xy x y

∈ ∈ ∈

= =

∑ ∑ ∑

(A)

to ensure zi = 0 if yi = 0

0 ≤ zi ≤ Uyi (C) (A) ⇒

i i D

x z

= ∑

  • subst. (B)

Ai zi ≤ bi yi i∈D 1 = ∑

∈D i i

y (C) ⇒ 0 ≤ zi ≤ Uyi i∈D

i i D

z x

=

since =>

slide-43
SLIDE 43

Example

[x1 – x2 ≤ - 1] ∨ [-x1 + x2 ≤ -1] 0 ≤ x1, x2 ≤ 4

x2 x1

big M

x1 – x2 ≤ - 1 + M (1 – y1)

  • x1 + x2 ≤ - 1 + M (1 – y2)

y1 + y2 = 1 M = 10 possible choice

4 4 1 1

Convex hull

1 2 1 1 1 1 2 2 2 2

x z z x z z

= + = +

1 1 2 2 1 2 1 2 1 2

y y z z z z

− ≤− + ≤ −

1 2 1 1 1 2 1 2 1 2 1 2 2 2

1

4 4 4 4 y y y z y z y z y z

+ = ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤

slide-44
SLIDE 44

NLP: Algorithms

(variants of Newton's method for solving KKT conditions) Sucessive quadratic programming (SQP) (Han 1976; Powell Reduced gradient Interior Point Methods Major codes: MINOS (Murtagh, Saunders, 1978, 1982) CONOPT (Drud, 1994) SQP: SNOPT (Murray, 1996) OPT (Biegler, 1998) IP: IPOPT (Wachter, Biegler, 2002) www.coin-or.org Typical sizes: 50,000 vars, 50,000 constr. (unstructured) 500,000 vars (few degrees freedom) Convergence: Good initial guess essential (Newton's) Nonconvexities: Local optima, non-convergence

Nonlinear Programming

slide-45
SLIDE 45

MINLP

f(x,y) and g(x,y) - assumed to be convex and bounded over X. f(x,y) and g(x,y) commonly linear in y

} , } 1 , { | { } , , | { , ) , ( . . ) , ( min a Ay y y Y b Bx x x x R x x X Y y X x y x g t s y x f Z

m U L n

≤ ∈ = ≤ ≤ ≤ ∈ = ∈ ∈ ≤ =

  • Mixed-Integer Nonlinear Programming

Objective Function Inequality Constraints

slide-46
SLIDE 46

Branch and Bound method (BB)

Ravindran and Gupta (1985) Leyffer and Fletcher (2001) Branch and cut: Stubbs and Mehrotra (1999)

Generalized Benders Decomposition (GBD)

Geoffrion (1972)

Outer-Approximation (OA)

Duran & Grossmann (1986), Yuan et al. (1988), Fletcher & Leyffer (1994)

LP/NLP based Branch and Bound

Quesada and Grossmann (1992)

Extended Cutting Plane (ECP)

Westerlund and Pettersson (1995)

Solution Algorithms

slide-47
SLIDE 47

Basic NLP subproblems

a) NLP Relaxation Lower bound

k FU k i i k FL k i i R j k LB

I i y I i y Y y X x J j y x g t s y x f Z ∈ ≥ ∈ ≤ ∈ ∈ ∈ ≤ = β α (NLP1) , ) , ( . . ) , ( min

b) NLP Fixed yk Upper bound

X x J j y x g t s y x f Z

k j k k U

∈ ∈ ≤ = ) , ( . . ) , ( min

(NLP2)

c) Feasibility subproblem for fixed yk.

1

, ) , ( . . min R u X x J j u y x g t s u

k j

∈ ∈ ∈ ≤

(NLPF)

Infinity-norm

slide-48
SLIDE 48

Cutting plane MILP master

(Duran and Grossmann, 1986)

Based on solution of K subproblems (xk, yk) k=1,...K Lower Bound M-MIP Y y X x K k J j y y x x y x g y x g y y x x y x f y x f st Z

k k T k k j k k j k k T k k k k K L

∈ ∈ = ⎪ ⎪ ⎭ ⎪ ⎪ ⎬ ⎫ ∈ ≤ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − − ∇ + ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − − ∇ + ≥ = , ,... 1 ) , ( ) , ( ) , ( ) , ( min α α Notes: a) Point (xk, yk) k=1,...K normally from NLP2 b) Linearizations accumulated as iterations K increase c) Non-decreasing sequence lower bounds

slide-49
SLIDE 49

X f(x) x x 1 2 x1 x2

Linearizations and Cutting Planes

Underestimate Objective Function Overestimate Feasible Region

Convex Objective Convex Feasible Region X X1 2

slide-50
SLIDE 50

Branch and Bound

NLP1:

min ZLB

k =

f (x,y)

Tree Enumeration

s.t. g j (x,y) < 0 j ∈J x∈X , y∈YR yi < αi

k

i∈IFL

k

yi > βi

k

i∈IFU

k Successive solution of NLP1 subproblems Advantage: Tight formulation may require one NLP1 (IFL=IFU=∅) Disadvantage: Potentially many NLP subproblems Convergence global optimum: Uniqueness solution NLP1 (sufficient condition) Less stringent than other methods

min ( , ) . . ( , ) ,

k LB j R k k i i FL k k i i FU

Z f x y s t g x y j J x X y Y y i I y i I α β = ≤ ∈ ∈ ∈ ≤ ∈ ≥ ∈

slide-51
SLIDE 51

Outer-Approximation

Alternate solution of NLP and MIP problems:

NLP2 M-MIP

NLP2:

min ZU

k =

f (x,yk)

s.t. g j (x,yk) < 0 j ∈J

x∈X

M-MIP:

min ZL

K = α s.t α > f xk,yk + ∇f xk,yk T x–xk y–yk g xk,yk + ∇gj xk,yk T x–xk y–yk < 0 j∈Jk k=1..K

x∈ X, y∈Y , α∈ R1

  • Property. Trivially converges in one iteration if f(x,y) and g(
  • If infeasible NLP solution of feasibility NLP-F required

to guarantee convergence. X x J j y x g t s y x f Z

k j k k U

∈ ∈ ≤ = ) , ( . . ) , ( min

min ( , ) ( , ) 1,... ( , ) ( , ) ,

K L k k k k k T k k k k k k T k j j k

Z x x st f x y f x y y y k K x x g x y g x y j J y y x X y Y α α = ⎫ ⎡ ⎤ − ⎪ ≥ +∇ ⎢ ⎥ ⎪ − ⎢ ⎥ ⎣ ⎦ ⎪ = ⎬ ⎡ ⎤ − ⎪ +∇ ≤ ∈ ⎢ ⎥ ⎪ − ⎢ ⎥ ⎪ ⎣ ⎦ ⎭ ∈ ∈

x,y) are linear

Upper bound Lower bound

slide-52
SLIDE 52

Generalized Benders Decomposition

Benders (1962), Geoffrion (1972)

Particular case of Outer-Approximation as applied to (P1)

  • 1. Consider Outer-Approximation at (xk, yk)

α > f xk,yk + ∇f xk,yk T x–xk y–yk g xk,yk + ∇gj xk,yk T x–xk y–yk < 0 j∈Jk

(1)

  • 2. Obtain linear combination of (1) using Karush-Kuhn-

Tucker multipliers μk and eliminating x variables

α > f xk,yk + ∇yf xk,yk T y–yk

(2)

+ μk T g xk,yk + ∇yg xk,yk T y–yk

Lagrangian cut

  • Remark. Cut for infeasible subproblems can be derived in

a similar way.

λk T g xk,yk + ∇yg xk,yk T y–yk < 0

slide-53
SLIDE 53

Generalized Benders Decomposition

Alternate solution of NLP and MIP problems:

NLP2 M-GBD

NLP2:

min ZU

k =

f (x,yk) s.t. g j ( x,yk) < 0 j ∈J x∈X

M-GBD:

min ZL

K = α

s.t. α > f xk,yk + ∇ y f xk,yk T y–yk + μk T g xk,yk + ∇yg xk,yk T y–yk k∈KFS λk T g xk,yk + ∇ yg xk,yk T y–yk < 0 k∈KIS y∈Y , α∈ R1

Property 1. If problem (P1) has zero integrality gap, Generalized Benders Decomposition converges in one iteration when optimal (xk, yk) are found. => Also applies to Outer-Approximation

X x J j y x g t s y x f Z

k j k k U

∈ ∈ ≤ = ) , ( . . ) , ( min

( ) ( ) ( )

min ( , ) ( , ) ( , ) ( , )

K L k k k k T k y T k k k k k T k y

Z st f x y f x y y y g x y g x y y y k KFS α α μ = ≥ +∇ − ⎡ ⎤ + +∇ − ∈ ⎣ ⎦

( ) ( )

1

( , ) ( , ) ,

T k k k k k T k y

g x y g x y y y k KIS y Y R λ α ⎡ ⎤ +∇ − ≤ ∈ ⎣ ⎦ ∈ ∈ Sahinidis, Grossmann (1991) Upper bound Lower bound

slide-54
SLIDE 54

Extended Cutting Plane

Westerlund and Pettersson (1992)

M-MIP' Evaluate

Add linearization most violated constraint to M-MIP Jk= { j j ∈ arg{ max

j ∈J g j(x k

, y

k

) }} Remarks.

  • Can also add full set of linearizations for M-MIP
  • Successive M-MIP's produce non-decreasing sequence

lower bounds

  • Simultaneously optimize xk, yk with M-MIP

= > Convergence may be slow

)} , ( max { arg ˆ {

k k j J j k

y x g j J

∈ =

No NLP !

(1995)

slide-55
SLIDE 55

LP/NLP Based Branch and Bound

Quesada and Grossmann (1992)

Integrate NLP and M-MIP problems

NLP2 M-MIP M-MIP LP1 LP2 LP3 LP4 LP5 = > Integer Solve NLP and update bounds open nodes

Remark. Fewer number branch and bound nodes for LP subproblems May increase number of NLP subproblems (Branch & Cut)

slide-56
SLIDE 56

Numerical Example

min Z = y1 + 1.5y2 + 0.5y3 + x12 + x22 s.t. (x1 - 2) 2 - x2 < 0 x1 - 2y 1 > 0 x1 - x2 - 4(1-y2) < 0 x1 - (1 - y1) > 0 x2 - y2 > 0 (MIP-EX) x1 + x2 > 3y3 y1 + y2 + y3 > 1 0 < x1 < 4, 0 < x2 < 4 y1, y2, y3 = 0, 1 Optimum solution: y1=0, y2 = 1, y3 = 0, x1 = 1, x2 = 1, Z = 3.5.

slide-57
SLIDE 57

Starting point y1= y2 = y3 = 1.

Iterations Objective function Lower bound GBD Upper bound GBD Lower bound OA Upper bound OA

Summary of Computational Results Method Subproblems Master problems (LP's solved) BB 5 (NLP1) OA 3 (NLP2) 3 (M-MIP) (19 LP's) GBD 4 (NLP2) 4 (M-GBD) (10 LP's) ECP

  • 5 (M-MIP) (18 LP's)
slide-58
SLIDE 58

Example: Process Network with Fixed Charges

  • Duran and Grossmann (1986)

Network superstructure

1 2 6 7 4 3 5 8 x1 x4 x6 x21 x19 x13 x14 x11 x7 x8 x12 x15 x9 x16 x17 x25 x18 x10 x20 x23 x22 x24 x5 x3 x2 A B C D F E

slide-59
SLIDE 59

Example (Duran and Grossmann, 1986)

Algebraic MINLP: linear in y, convex in x 8 0-1 variables, 25 continuous, 31 constraints (5 nonlinear) NLP MIP Branch and Bound (F-L) 20

  • Outer-Approximation:

3 3 Generalized-Benders 10 10 Extended Cutting Plane

  • 15

LP/NLP based 3 7 LP's vs 13 LP's OA

A

slide-60
SLIDE 60

Effects of Nonconvexities

1. NLP supbroblems may have local optima 2. MILP master may cut-off global optimum

Objective

Multiple minima

1 y x Global optimum Cut off!

Handling of Nonconvexities

1. Rigorous approach (global optimization- See Chris Floudas): Replace nonconvex terms by underestimtors/convex envelopes Solve convex MINLP within spatial branch and bound 2. Heuristic approach: Add slacks to linearizations Search until no imprvement in NLP

slide-61
SLIDE 61

Handling nonlinear equations

h(x,y) = 0 1. In branch and bound no special provision-simply add to NLPs 2. In GBD no special provision- cancels in Lagrangian cut 3. In OA equality relaxation Lower bounds may not be valid Rigorous if eqtn relaxes as h(x,y) ≤ 0 h(x,y) is convex

[ ]

1 , 1

( , )

k i k k k k ii ii i k i

k k k k T k

if T t t if if

x x T h x y y y

λ λ λ > = = − < =

⎡ ⎤ − ∇ ≤ ⎢ ⎥ − ⎣ ⎦ ⎧ ⎪ ⎨ ⎪ ⎩

slide-62
SLIDE 62

MIP-Master Augmented Penalty

Viswanathan and Grossmann, 1990

Slacks: pk, qk with weights wk

min ZK = α + w p

k p k + wq kqk

Σ

k=1 K

(M-APER)

s.t. α > f xk,yk + ∇ f xk,yk T x–xk y–yk T k ∇h xk,yk T x–xk y–yk < p

k

g xk,yk + ∇g xk,yk T x–xk y–yk < qk k=1..K

yi

Σ

i ∈ Bk

– yi

Σ

i ∈ Nk

≤ Bk – 1 k = 1,...K

x∈X , y∈Y , α∈R1 , p

k, qk > 0 If convex MINLP then slacks take value of zero => reduces to OA/ER Basis DICOPT (nonconvex version)

  • 1. Solve relaxed MINLP
  • 2. Iterate between MIP-APER and NLP subproblem

until no improvement in NLP

K k q y y x x y x g y x g p y y x x y x h T y y x x y x f y x f t s

k k k T k k k k k k k T k k k k k T k k k k

,... 1 ) , ( ) , ( ) , ( ) , ( ) , ( . . = ⎪ ⎪ ⎪ ⎪ ⎭ ⎪ ⎪ ⎪ ⎪ ⎬ ⎫ ≤ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − − ∇ + ≤ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − − ∇ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − − ∇ + ≥ α

slide-63
SLIDE 63

MINLP:

Algorithms Branch and Bound (BB) Leyffer (2001), Bussieck, Drud (2003) Generalized Benders Decomposition (GBD) Geoffrion (1972) Outer-Approximation (OA) Duran and Grossmann (1986) Extended Cutting Plane(ECP) Westerlund and Pettersson (1992) Codes: SBB GAMS simple B&B MINLP-BB (AMPL)Fletcher and Leyffer (1999) Bonmin (COIN-OR) Bonami et al (2006) FilMINT Linderoth and Leyffer (2006) DICOPT (GAMS) Viswanathan and Grossman (1990) AOA (AIMSS) α−ECP Westerlund and Peterssson (1996) MINOPT Schweiger and Floudas (1998) BARON Sahinidis et al. (1998)

Mixed-integer Nonlinear Programming

slide-64
SLIDE 64
slide-65
SLIDE 65

IBM A.R. Conn, J. Lee, A. Lodi, A. Wächter Carnegie Mellon University

  • L. T. Biegler, I.E. Grossmann, C.D. Laird, N. Sawaya (Chemical Eng.)
  • G. Cornuéjols, F. Margot (OR-Tepper)

Bonmin-An Algorithmic Framework for Convex Mixed Integer Nonlinear Programs

COIN-OR is a set of open-source codes for operations research. Contains codes for : Linear Programming (CLP) Mixed Integer Linear Programming (CBC, CLP, CGL) Non Linear Programming (IPOPT)

Software in COIN-OR

Goal: Produce new MINLP software http://egon.cheme.cmu.edu/ibm/page.htm Pierre Bonami

slide-66
SLIDE 66

Bonmin

Single computational framework that implements:

  • NLP based branch and bound (Gupta & Ravindran, 1985)
  • Outer-Approximation (Duran & Grossmann, 1986)
  • LP/NLP based branch and bound (Quesada & Grossmann, 1994)

a) Branch and bound scheme b) At each node LP or NLP subproblems can be solved NLP solver: IPOPT MIP solver: CLP c) Various algorithms activated depending on what subproblem is solved at given node I-OA Outer-approximation I-BB Branch and bound I-Hyb Hybrid LP/NLP based B&B http://projects.coin-or.org/Bonmin

slide-67
SLIDE 67

Logic-based Optimization

Motivation

  • 1. Facilitate modeling of discrete/continuous optimization

problems through use symbolic expressions

  • 2. Reduce combinatorial search effort
  • 3. Improve handling nonlinearities

Emerging techniques

  • 1. Constraint Programming

Van Hentenryck (1989)

  • 2. Generalized Disjunctive Programming

Raman and Grossmann (1994)

  • 3. Mixed-Logic Linear Programming

Hooker and Osorio (1999)

slide-68
SLIDE 68

Generalized Disjunctive Programming (GDP)

( ) { }

Ω , ) ( ) ( ) ( min

1

false true, Y R c , R x true Y K k γ c x g Y J j x s.t. r x f c Z

jk k n jk k jk jk k k k

∈ ∈ ∈ = ∈ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ≤ ∈ ≤ ∑ + =

  • Raman and Grossmann (1994) (Extension Balas, 1979)

Objective Function Common Constraints Continuous Variables Boolean Variables Logic Propositions OR operator Disjunction Fixed Charges Constraints

Multiple Terms / Disjunctions

slide-69
SLIDE 69

Modeling Example

Process: A −> B −> C

x8 x7 Y1 Y2 Y3 x6 x4 x5 x1 x2 x3 A B B B C B

MINLP GDP

min Z = 3.5y1+y2+1.5y3+x4 min Z = c1+c2+c3+x4 +7x6+1.2x5+1.8x1

+1.8x1+1.2x5+7x6-11x8

  • 11x8

s.t s.t. x1 - x2 - x3 = 0 x1 - x2 - x3 = 0 x7 - x4 - x5 - x6 = 0 x7 - x4 - x5 - x6 = 0 x5 ≤ 5 x5 ≤ 5 x8 ≤ 1 x8 ≤ 1 x8 - 0.9x7 = 0 Y1 x8= 0.9x7 c1= 3.5 ¬Y1 x7=x8=0 c1= 0

x4 = ln(1+x2) Y2 x4= ln (1+x2) c2= 1 ¬Y2 x2=x4=0 c2= 0

x5 = 1.2 ln(1+x3) Y3 x5=1.2 ln (1+x3) c3= 1.5 ¬Y3 x3=x5=0 c3= 0

x7 - 5y1 ? 0 x2 - 5y2 ? 0 Y2 ⇒ Y1 x3 - 5y3 ? 0 Y3 ⇒ Y1 xi∈R i = 1,...,8 xi∈R i = 1,...,8 yj∈{0,1} j = 1,2,3 Yj∈{True,False} j = 1,2,3 ≤ 0 ≤0 ≤0 ≤ 0