Generalized Disjunctive Programming
Generalized Disjunctive Programming
Disjunctive
Programmi
ng
Arash Mari Oriyad
Isfahan University of
Technology
BS Project
Supervisor: Dr.Hossein
Falsafain
Overview
● Introduction
● Disjunctive Programming
● GDP Solving Approaches
● GDP Programming Tools
2
Overview
● Introduction
● Disjunctive Programming
● GDP Solving Approaches
● GDP Programming Tools
3
Optimization
● The process of maximizing/minimizing a real function considering
some constraints on decision variables
● Optimization Problem Components:
➢ Objective Function
➢ Decision Variables
➢ Constraints
4
Popular Optimization
Approaches
● Linear Programming
● Integer Programming
● Quadratic Programming
● Semi-Definite Programming
● Vector Programming
● Disjunctive Programming
5
Optimization Problem Example
● Graph Coloring (ILP):
6
Motivation
● Common optimization approaches like LP and ILP are based on
conjunction of some constraints.
● In many theoretical and real world problems we are struggling
with disjunction forms.
● We need a framework which handles disjunctive constraints and
proposes a systematic approach to solve such problems.
● Here is where Disjunctive Programming comes in handy.
7
Overview
● Introduction
● Disjunctive Programming
● GDP Solving Approaches
● GDP Programming Tools
8
Disjunctive Programming
● Using disjunction form of constraints instead of conjunctive
constraints
● In the other word, disjunctive programming is optimization over
unions of polyhedra.
● So useful in modeling of problems containing discrete decisions
9
Disjunctive Programming Form
10
Disjunctive Programming
Example
11
Generalized Disjunctive
Programming (GDP)
● GDP consists of:
➢ Objective Function
➢ Algebraic Constraints
➢ Disjunction Sets
➢ Logic Propositions
➢ Continuous Variables
➢ Discrete Variables
12
GDP Form
13
GDP Example
14
GDP Applications
● Modeling real word problems in GDP framework:
➢ Process Networks
➢ Open Dimension Problems (Strip Packing)
➢ Routing Problems (Robotic Arm Routing)
15
Overview
● Introduction
● Disjunctive Programming
● GDP Solving Approaches
● GDP Programming Tools
16
GDP Form
17
GDP Different Types
● Three main functions of a GDP form, ie f(x), g(x) and r(x) can be:
➢ Linear
➢ Non-Linear but Convex
➢ Non-Convex
18
GDP Solving Approaches
● Main Idea: Reformulation a GDP problem as a MILP problem using
one of the following methods
➢ Big-M
➢ Improved Big-M
➢ Convex Hull
19
Big-M Reformulation
20
Convex Hull Reformulation
21
Big-M vs Convex Hull
● Big-M method is simpler to implement
● Big-M method results in a more compact model
● Convex Hull method construct a tighter model
22
Overview
● Introduction
● Disjunctive Programming
● GDP Solving Approaches
● GDP Programming Tools
23
GDP Programming Tools
● Most popular GDP programming tools:
➢ EMP GAMS
➢ Pyomo (Python Module)
24
Thanks :)
Any Question?
Contact me by [email protected]
25