Unlocking the Power of Integer Programming

Florian Wilhelm
Unlocking the Power of
Integer Programming
Data Analytics & Science
Mathematical Modelling
Modern Data Warehousing & Analytics
Personalisation & RecSys
Uncertainty Quantification & Causality
Python Data Stack
OSS Contributor & Creator of PyScaffold
Dr. Florian Wilhelm
• HEAD OF DATA SCIENCE
FlorianWilhelm.info
florian.wilhelm@inovex.de
FlorianWilhelm
@FlorianWilhelm
2
‣ Application Development (Web Platforms, Mobile
Apps, Smart Devices and Robotics, UI/UX design,
Backend Services)
‣ Data Management and Analytics (Business
Intelligence, Big Data, Searches, Data Science
and Deep Learning, Machine Perception and
Artificial Intelligence)
‣ Scalable IT-Infrastructures (IT Engineering, Cloud
Services, DevOps, Replatforming, Security)
‣ Training and Coaching (inovex Academy)
is an innovation and quality-driven
IT project house with a focus on
digital transformation.
Using technology to
inspire our clients.
And ourselves.
Berlin · Karlsruhe · Pforzheim · Stuttgart · München · Köln · Hamburg · Erlangen
www.inovex.de
3
Definition:
The objective of Operations Research (OR) is the
development and use of mathematical methods to support
decision-making processes in domains such as
manufacturing or finance.
Operations Research
Introduction
4
● Assignment/Allocation Problem
How to schedule some talks in an agenda under some
constraints like room sizes to optimize the conference
experience?
● Transportation Problem
Which supplier should deliver to which factories given some
costs to satisfy each factory with minimal costs?
● Shortest Path Problem
Given some graph with a cost on each edge, what is the
shortest path from source to sink?
● Maximum Flow Problem
Given some pipe system with a source and sink, what is the
maximum flow through the system?
Common Problem Classes in Operations Research
Introduction
5
Definition of Linear Programming (LP)
Introduction
6
LPs can be solved with the Simplex algorithm in cubic on average
but exponential number of steps in worst case scenario or interior
point methods in about .
Definition of Mixed Integer Programming (MIP)
Introduction
7
MIPs are NP-hard, i.e. complexity grows exponentially with n
Dropping the integrality constraints, i.e. "linear relaxation", leads to
an LP problem.
If all variables need to be integer, it is a (pure)
integer linear program (ILP, IP).
If all variables need to be 0 or 1 (binary, boolean), it is a
0 - 1 linear program.
Special Cases of Mixed Integer Programming
Introduction
8
Given a set of items, each with a weight and a value,
determine which items to include in the collection so that the
total weight is less than or equal to a given limit and the
total value is as large as possible.
- Wikipedia
Knapsack problem
Introduction
9
10
Solving a MILP
Introduction
Dropping the integrality constraints, i.e. “linear relaxation”, leads to an LP problem.
Two major method classes for solving MILPs:
● Cutting plane methods
● Branch and bound methods
Often combined as Branch and Cut methods
Source: Introduction to Optimization by Laurent Lessard, Spring 2017–18
Cutting Planes
Cutting Planes Methods
Introduction
11
Idea
● solve the LP relaxation problem
● while solution is not integral:
○ add constraint that excludes solution but no integer points
○ solve LP relaxation again
Cutting Planes Methods
Introduction
12
Optimal point
Feasible point
Infeasible point
0
1
2
3
1 2 3
0
Optimal solution is 4 at (2, 2)
Cutting Planes Methods
Introduction
13
0
1
2
3
1 2 3
0
Optimal solution is 4.5 at (2, 2.5)
● Relaxing the problem and solving the LP instead of MIP
● The LP solution is always an upper bound for the MIP
Cutting Planes Methods
Introduction
14
0
1
2
3
1 2 3
0
Optimal solution is 4.16 at (2.16, 2)
● Add a cut to exclude the LP solution but no feasible
point
● Solve the LP again
● … repeat until LP solution is also an MIP solution
Cutting Planes Methods
Introduction
15
0
1
2
3
1 2 3
0
Optimal solution is 4 at (2, 2)
Branch & Bound
Branch & Bound Methods
Introduction
16
Idea
1. solve the relaxed LP and for a fractional split into two
subproblems
○ with constraint
○ and with constraint
2. repeat step 1. and build a tree of subproblems
3. eliminate branches of the tree using
How can we use MILPs for a
Conference Scheduling?
Use-Case
17
Monday Room 1 Room 2 …
Morning
Afternoon
A
B
C
D
A
B
C
D
● each talk must be assigned exactly once,
● each room/timeslot combination can only be occupied by
one talk at most,
● the length of the timeslot must match the length of the talk
● some tutorials have part 1 & 2, thus need to be consecutive
What Constraints do we have?
Use-Case
18
1. the preferences for day and time of some speakers, e.g.
keynotes, need to be considered
2.popularity of a talk should be reflected in the room
capacity,
3.avoid parallel talks that attract the same audience,
4.have in the same session, i.e. consecutive block of talks, the
same main track, e.g. PyData vs. PyCon,
5.or even the same sub track, e.g. PyData: Data Handling,
What is our objective?
Use-Case
19
Precedence: 1 > 2 > 3 > 4 > 5
1. Framework to formulate the problem, e.g.
a.Pyomo (OSS)
b.PuLP (OSS)
c.AMPL (Commercial)
d.…
2.Solver to solve the canonical problem, e.g.
a.HiGHS (OSS)
b.CBC (OSS)
c.Gurobi (Commercial)
d.IBM CPlex (Commercial)
e.…
Solving MILPs in Python
Use-Case
20
Pyomo: Index Sets
Use-Case
21
Pyomo: Parameters
Use-Case
22
Pyomo: Variables
Use-Case
23
Pyomo: Constraints
Use-Case
24
Pyomo: Objective
Use-Case
25
Solving the MILP Problem and Displaying model.vBScheduleSchedule
Use-Case
26
Pyomo / HiGHS notebook:
https://github.com/FlorianWilhelm/pytanis/blob/main/notebooks/pyconde-pydata-berlin-2023/50_scheduling_v1.ipynb
Check out the Full Source Code
Use-Case
27
Pytanis includes a Pretalx client and all
the tooling you need for conferences
using Pretalx, from handling the initial
call for papers to creating the final
program.
Looks easy enough! But is it really?
Remarks
28
m_caps_dict.keys(), ordered=True)
The Absolute Value is not linear!
Modelling the Absolute Value
Remarks
29
0
1
2
3
1 2 3
-1
-2
-3
m_caps_dict.keys(), ordered=True)
To model in the objective, we introduce auxiliary variables:
Modelling the Absolute Value
Remarks
30
1
2
3
1 2 3
1. MILPs are an important tool in the domain of
Operations Research
2.Many optimal decision use-cases can be formulated
mathematically as a MILP, e.g. Knapsack problem
3.Solving a (M)ILP is NP-hard but good heuristics methods
exists like Branch & Cut
4.Tools like Pyomo translate your problem in a standardized
form and solver like HiGHS solve it
5.Modelling a problem as MILP, especially the Linearity
requirement, is the hardest part
Main Take-Aways
Summary
31
● Introduction to Optimization by
Laurent Lessard
● Mixed Integer Programming for
time table scheduling by Francisco
Espiga
● Schedule Optimisation using Linear
Programming in Python by Lewis
Woolfson
● Some icons taken from
Flaticon.com
References
Summary
32
© 2023
Thank you!
Dr. Florian Wilhelm
Head of Data Science
EuroPython 2023
inovex.de
florian.wilhelm@inovex.de
@inovexlife
@inovexgmbh
waldstack.org
33
1 de 33

Recomendados

A Decomposition Technique For Solving Integer Programming Problems por
A Decomposition Technique For Solving Integer Programming ProblemsA Decomposition Technique For Solving Integer Programming Problems
A Decomposition Technique For Solving Integer Programming ProblemsCarrie Romero
2 visualizações11 slides
APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F... por
APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F...APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F...
APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F...Allison Thompson
3 visualizações8 slides
Applying Transformation Characteristics to Solve the Multi Objective Linear F... por
Applying Transformation Characteristics to Solve the Multi Objective Linear F...Applying Transformation Characteristics to Solve the Multi Objective Linear F...
Applying Transformation Characteristics to Solve the Multi Objective Linear F...AIRCC Publishing Corporation
38 visualizações8 slides
Constraint programming por
Constraint programmingConstraint programming
Constraint programmingJoseph Mathew
260 visualizações5 slides
“An Industry Standard Performance Benchmark Suite for Machine Learning,” a Pr... por
“An Industry Standard Performance Benchmark Suite for Machine Learning,” a Pr...“An Industry Standard Performance Benchmark Suite for Machine Learning,” a Pr...
“An Industry Standard Performance Benchmark Suite for Machine Learning,” a Pr...Edge AI and Vision Alliance
844 visualizações43 slides
A (Not So Short) Introduction to CP Optimizer for Scheduling por
A (Not So Short) Introduction to CP Optimizer for SchedulingA (Not So Short) Introduction to CP Optimizer for Scheduling
A (Not So Short) Introduction to CP Optimizer for SchedulingPhilippe Laborie
19.6K visualizações244 slides

Mais conteúdo relacionado

Similar a Unlocking the Power of Integer Programming

Applying Transformation Characteristics to Solve the Multi Objective Linear F... por
Applying Transformation Characteristics to Solve the Multi Objective Linear F...Applying Transformation Characteristics to Solve the Multi Objective Linear F...
Applying Transformation Characteristics to Solve the Multi Objective Linear F...AIRCC Publishing Corporation
106 visualizações8 slides
APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F... por
APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F...APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F...
APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F...ijcsit
24 visualizações8 slides
A Modified Chaotic Firefly Algorithm For Solving Discrete Logarithm Problem A... por
A Modified Chaotic Firefly Algorithm For Solving Discrete Logarithm Problem A...A Modified Chaotic Firefly Algorithm For Solving Discrete Logarithm Problem A...
A Modified Chaotic Firefly Algorithm For Solving Discrete Logarithm Problem A...Erica Thompson
2 visualizações8 slides
Prespective analytics with DOcplex and pandas por
Prespective analytics with DOcplex and pandasPrespective analytics with DOcplex and pandas
Prespective analytics with DOcplex and pandasPyDataParis
112 visualizações34 slides
Packing Problems Using Gurobi por
Packing Problems Using GurobiPacking Problems Using Gurobi
Packing Problems Using GurobiTerrance Smith
498 visualizações12 slides
QA CHAPTER II.pptx por
QA CHAPTER II.pptxQA CHAPTER II.pptx
QA CHAPTER II.pptxTeshome48
17 visualizações105 slides

Similar a Unlocking the Power of Integer Programming(20)

Applying Transformation Characteristics to Solve the Multi Objective Linear F... por AIRCC Publishing Corporation
Applying Transformation Characteristics to Solve the Multi Objective Linear F...Applying Transformation Characteristics to Solve the Multi Objective Linear F...
Applying Transformation Characteristics to Solve the Multi Objective Linear F...
AIRCC Publishing Corporation106 visualizações
APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F... por ijcsit
APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F...APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F...
APPLYING TRANSFORMATION CHARACTERISTICS TO SOLVE THE MULTI OBJECTIVE LINEAR F...
ijcsit24 visualizações
A Modified Chaotic Firefly Algorithm For Solving Discrete Logarithm Problem A... por Erica Thompson
A Modified Chaotic Firefly Algorithm For Solving Discrete Logarithm Problem A...A Modified Chaotic Firefly Algorithm For Solving Discrete Logarithm Problem A...
A Modified Chaotic Firefly Algorithm For Solving Discrete Logarithm Problem A...
Erica Thompson2 visualizações
Prespective analytics with DOcplex and pandas por PyDataParis
Prespective analytics with DOcplex and pandasPrespective analytics with DOcplex and pandas
Prespective analytics with DOcplex and pandas
PyDataParis112 visualizações
Packing Problems Using Gurobi por Terrance Smith
Packing Problems Using GurobiPacking Problems Using Gurobi
Packing Problems Using Gurobi
Terrance Smith498 visualizações
QA CHAPTER II.pptx por Teshome48
QA CHAPTER II.pptxQA CHAPTER II.pptx
QA CHAPTER II.pptx
Teshome4817 visualizações
Sci computing using python por Ashok Govindarajan
Sci computing using pythonSci computing using python
Sci computing using python
Ashok Govindarajan60 visualizações
“Programação paralela híbrida com MPI e OpenMP – uma abordagem prática”. Edua... por lccausp
“Programação paralela híbrida com MPI e OpenMP – uma abordagem prática”. Edua...“Programação paralela híbrida com MPI e OpenMP – uma abordagem prática”. Edua...
“Programação paralela híbrida com MPI e OpenMP – uma abordagem prática”. Edua...
lccausp607 visualizações
Efficient Deep Learning in Natural Language Processing Production, with Moshe... por Seth Grimes
Efficient Deep Learning in Natural Language Processing Production, with Moshe...Efficient Deep Learning in Natural Language Processing Production, with Moshe...
Efficient Deep Learning in Natural Language Processing Production, with Moshe...
Seth Grimes440 visualizações
CP Optimizer pour la planification et l'ordonnancement por Philippe Laborie
CP Optimizer pour la planification et l'ordonnancementCP Optimizer pour la planification et l'ordonnancement
CP Optimizer pour la planification et l'ordonnancement
Philippe Laborie944 visualizações
Portfolio Planning por ahmad bassiouny
Portfolio PlanningPortfolio Planning
Portfolio Planning
ahmad bassiouny550 visualizações
Dynamic programming prasintation eaisy por ahmed51236
Dynamic programming prasintation eaisyDynamic programming prasintation eaisy
Dynamic programming prasintation eaisy
ahmed51236396 visualizações
PF_MAO2010 Souma por Souma Chowdhury
PF_MAO2010 SoumaPF_MAO2010 Souma
PF_MAO2010 Souma
Souma Chowdhury376 visualizações
chapter-04(Computational Thinking).pptx por ssuserf60ff6
chapter-04(Computational Thinking).pptxchapter-04(Computational Thinking).pptx
chapter-04(Computational Thinking).pptx
ssuserf60ff69 visualizações
Thomas Wolf "Transfer learning in NLP" por Fwdays
Thomas Wolf "Transfer learning in NLP"Thomas Wolf "Transfer learning in NLP"
Thomas Wolf "Transfer learning in NLP"
Fwdays2K visualizações
I/O Challenges in Brain Tissue Simulation por inside-BigData.com
I/O Challenges in Brain Tissue SimulationI/O Challenges in Brain Tissue Simulation
I/O Challenges in Brain Tissue Simulation
inside-BigData.com589 visualizações
Solving Industrial Scheduling Problems with Constraint Programming por Philippe Laborie
Solving Industrial Scheduling Problems with Constraint ProgrammingSolving Industrial Scheduling Problems with Constraint Programming
Solving Industrial Scheduling Problems with Constraint Programming
Philippe Laborie3.1K visualizações
Convex optmization in communications por Deepshika Reddy
Convex optmization in communicationsConvex optmization in communications
Convex optmization in communications
Deepshika Reddy2.1K visualizações

Mais de Florian Wilhelm

WALD: A Modern & Sustainable Analytics Stack por
WALD: A Modern & Sustainable Analytics StackWALD: A Modern & Sustainable Analytics Stack
WALD: A Modern & Sustainable Analytics StackFlorian Wilhelm
169 visualizações40 slides
Forget about AI and do Mathematical Modelling instead! por
Forget about AI and do Mathematical Modelling instead!Forget about AI and do Mathematical Modelling instead!
Forget about AI and do Mathematical Modelling instead!Florian Wilhelm
427 visualizações40 slides
An Interpretable Model for Collaborative Filtering Using an Extended Latent D... por
An Interpretable Model for Collaborative Filtering Using an Extended Latent D...An Interpretable Model for Collaborative Filtering Using an Extended Latent D...
An Interpretable Model for Collaborative Filtering Using an Extended Latent D...Florian Wilhelm
103 visualizações19 slides
Honey I Shrunk the Target Variable! Common pitfalls when transforming the tar... por
Honey I Shrunk the Target Variable! Common pitfalls when transforming the tar...Honey I Shrunk the Target Variable! Common pitfalls when transforming the tar...
Honey I Shrunk the Target Variable! Common pitfalls when transforming the tar...Florian Wilhelm
340 visualizações36 slides
Matrix Factorization for Collaborative Filtering Is Just Solving an Adjoint L... por
Matrix Factorization for Collaborative Filtering Is Just Solving an Adjoint L...Matrix Factorization for Collaborative Filtering Is Just Solving an Adjoint L...
Matrix Factorization for Collaborative Filtering Is Just Solving an Adjoint L...Florian Wilhelm
155 visualizações11 slides
Uncertainty Quantification in AI por
Uncertainty Quantification in AIUncertainty Quantification in AI
Uncertainty Quantification in AIFlorian Wilhelm
2.3K visualizações55 slides

Mais de Florian Wilhelm(15)

WALD: A Modern & Sustainable Analytics Stack por Florian Wilhelm
WALD: A Modern & Sustainable Analytics StackWALD: A Modern & Sustainable Analytics Stack
WALD: A Modern & Sustainable Analytics Stack
Florian Wilhelm169 visualizações
Forget about AI and do Mathematical Modelling instead! por Florian Wilhelm
Forget about AI and do Mathematical Modelling instead!Forget about AI and do Mathematical Modelling instead!
Forget about AI and do Mathematical Modelling instead!
Florian Wilhelm427 visualizações
An Interpretable Model for Collaborative Filtering Using an Extended Latent D... por Florian Wilhelm
An Interpretable Model for Collaborative Filtering Using an Extended Latent D...An Interpretable Model for Collaborative Filtering Using an Extended Latent D...
An Interpretable Model for Collaborative Filtering Using an Extended Latent D...
Florian Wilhelm103 visualizações
Honey I Shrunk the Target Variable! Common pitfalls when transforming the tar... por Florian Wilhelm
Honey I Shrunk the Target Variable! Common pitfalls when transforming the tar...Honey I Shrunk the Target Variable! Common pitfalls when transforming the tar...
Honey I Shrunk the Target Variable! Common pitfalls when transforming the tar...
Florian Wilhelm340 visualizações
Matrix Factorization for Collaborative Filtering Is Just Solving an Adjoint L... por Florian Wilhelm
Matrix Factorization for Collaborative Filtering Is Just Solving an Adjoint L...Matrix Factorization for Collaborative Filtering Is Just Solving an Adjoint L...
Matrix Factorization for Collaborative Filtering Is Just Solving an Adjoint L...
Florian Wilhelm155 visualizações
Uncertainty Quantification in AI por Florian Wilhelm
Uncertainty Quantification in AIUncertainty Quantification in AI
Uncertainty Quantification in AI
Florian Wilhelm2.3K visualizações
Performance evaluation of GANs in a semisupervised OCR use case por Florian Wilhelm
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
Florian Wilhelm1.8K visualizações
Bridging the Gap: from Data Science to Production por Florian Wilhelm
Bridging the Gap: from Data Science to ProductionBridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to Production
Florian Wilhelm1.3K visualizações
How mobile.de brings Data Science to Production for a Personalized Web Experi... por Florian Wilhelm
How mobile.de brings Data Science to Production for a Personalized Web Experi...How mobile.de brings Data Science to Production for a Personalized Web Experi...
How mobile.de brings Data Science to Production for a Personalized Web Experi...
Florian Wilhelm701 visualizações
Deep Learning-based Recommendations for Germany's Biggest Vehicle Marketplace por Florian Wilhelm
Deep Learning-based Recommendations for Germany's Biggest Vehicle MarketplaceDeep Learning-based Recommendations for Germany's Biggest Vehicle Marketplace
Deep Learning-based Recommendations for Germany's Biggest Vehicle Marketplace
Florian Wilhelm1.3K visualizações
Deep Learning-based Recommendations for Germany's Biggest Online Vehicle Mark... por Florian Wilhelm
Deep Learning-based Recommendations for Germany's Biggest Online Vehicle Mark...Deep Learning-based Recommendations for Germany's Biggest Online Vehicle Mark...
Deep Learning-based Recommendations for Germany's Biggest Online Vehicle Mark...
Florian Wilhelm755 visualizações
Declarative Thinking and Programming por Florian Wilhelm
Declarative Thinking and ProgrammingDeclarative Thinking and Programming
Declarative Thinking and Programming
Florian Wilhelm818 visualizações
Which car fits my life? - PyData Berlin 2017 por Florian Wilhelm
Which car fits my life? - PyData Berlin 2017Which car fits my life? - PyData Berlin 2017
Which car fits my life? - PyData Berlin 2017
Florian Wilhelm566 visualizações
PyData Meetup Berlin 2017-04-19 por Florian Wilhelm
PyData Meetup Berlin 2017-04-19PyData Meetup Berlin 2017-04-19
PyData Meetup Berlin 2017-04-19
Florian Wilhelm1K visualizações
Explaining the idea behind automatic relevance determination and bayesian int... por Florian Wilhelm
Explaining the idea behind automatic relevance determination and bayesian int...Explaining the idea behind automatic relevance determination and bayesian int...
Explaining the idea behind automatic relevance determination and bayesian int...
Florian Wilhelm9.8K visualizações

Último

Oral presentation (1).pdf por
Oral presentation (1).pdfOral presentation (1).pdf
Oral presentation (1).pdfreemalmazroui8
6 visualizações10 slides
Penetration testing by Burpsuite por
Penetration testing by  BurpsuitePenetration testing by  Burpsuite
Penetration testing by BurpsuiteAyonDebnathCertified
6 visualizações19 slides
[DSC Europe 23] Irena Cerovic - AI in International Development.pdf por
[DSC Europe 23] Irena Cerovic - AI in International Development.pdf[DSC Europe 23] Irena Cerovic - AI in International Development.pdf
[DSC Europe 23] Irena Cerovic - AI in International Development.pdfDataScienceConferenc1
7 visualizações9 slides
Report on OSINT por
Report on OSINTReport on OSINT
Report on OSINTAyonDebnathCertified
6 visualizações15 slides
Analytics Center of Excellence | Data CoE |Analytics CoE| WNS Triange por
Analytics Center of Excellence | Data CoE |Analytics CoE| WNS TriangeAnalytics Center of Excellence | Data CoE |Analytics CoE| WNS Triange
Analytics Center of Excellence | Data CoE |Analytics CoE| WNS TriangeRNayak3
5 visualizações6 slides
Business administration Project File.pdf por
Business administration Project File.pdfBusiness administration Project File.pdf
Business administration Project File.pdfKiranPrajapati91
11 visualizações36 slides

Último(20)

Oral presentation (1).pdf por reemalmazroui8
Oral presentation (1).pdfOral presentation (1).pdf
Oral presentation (1).pdf
reemalmazroui86 visualizações
Penetration testing by Burpsuite por AyonDebnathCertified
Penetration testing by  BurpsuitePenetration testing by  Burpsuite
Penetration testing by Burpsuite
AyonDebnathCertified6 visualizações
[DSC Europe 23] Irena Cerovic - AI in International Development.pdf por DataScienceConferenc1
[DSC Europe 23] Irena Cerovic - AI in International Development.pdf[DSC Europe 23] Irena Cerovic - AI in International Development.pdf
[DSC Europe 23] Irena Cerovic - AI in International Development.pdf
DataScienceConferenc17 visualizações
Analytics Center of Excellence | Data CoE |Analytics CoE| WNS Triange por RNayak3
Analytics Center of Excellence | Data CoE |Analytics CoE| WNS TriangeAnalytics Center of Excellence | Data CoE |Analytics CoE| WNS Triange
Analytics Center of Excellence | Data CoE |Analytics CoE| WNS Triange
RNayak35 visualizações
Business administration Project File.pdf por KiranPrajapati91
Business administration Project File.pdfBusiness administration Project File.pdf
Business administration Project File.pdf
KiranPrajapati9111 visualizações
Employees attrition por MaryAlejandraDiaz
Employees attritionEmployees attrition
Employees attrition
MaryAlejandraDiaz8 visualizações
Underfunded.pptx por vgarcia19
Underfunded.pptxUnderfunded.pptx
Underfunded.pptx
vgarcia1916 visualizações
GDG Cloud Community Day 2022 - Managing data quality in Machine Learning por SARADINDU SENGUPTA
GDG Cloud Community Day 2022 -  Managing data quality in Machine LearningGDG Cloud Community Day 2022 -  Managing data quality in Machine Learning
GDG Cloud Community Day 2022 - Managing data quality in Machine Learning
SARADINDU SENGUPTA8 visualizações
4_4_WP_4_06_ND_Model.pptx por d6fmc6kwd4
4_4_WP_4_06_ND_Model.pptx4_4_WP_4_06_ND_Model.pptx
4_4_WP_4_06_ND_Model.pptx
d6fmc6kwd47 visualizações
apple.pptx por honeybeeqwe
apple.pptxapple.pptx
apple.pptx
honeybeeqwe8 visualizações
DGST Methodology Presentation.pdf por maddierlegum
DGST Methodology Presentation.pdfDGST Methodology Presentation.pdf
DGST Methodology Presentation.pdf
maddierlegum8 visualizações
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion por Bertram Ludäscher
Games, Queries, and Argumentation Frameworks: Time for a Family ReunionGames, Queries, and Argumentation Frameworks: Time for a Family Reunion
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion
Bertram Ludäscher11 visualizações
Inawisdom Quick Sight por PhilipBasford
Inawisdom Quick SightInawisdom Quick Sight
Inawisdom Quick Sight
PhilipBasford8 visualizações
[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptx por DataScienceConferenc1
[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptx[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptx
[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptx
DataScienceConferenc15 visualizações
Oral presentation.pdf por reemalmazroui8
Oral presentation.pdfOral presentation.pdf
Oral presentation.pdf
reemalmazroui86 visualizações
GDG Community Day 2023 - Interpretable ML in production por SARADINDU SENGUPTA
GDG Community Day 2023 - Interpretable ML in productionGDG Community Day 2023 - Interpretable ML in production
GDG Community Day 2023 - Interpretable ML in production
SARADINDU SENGUPTA7 visualizações
Infomatica-MDM.pptx por Kapil Rangwani
Infomatica-MDM.pptxInfomatica-MDM.pptx
Infomatica-MDM.pptx
Kapil Rangwani13 visualizações
K-Drama Recommendation Using Python por FridaPutriassa
K-Drama Recommendation Using PythonK-Drama Recommendation Using Python
K-Drama Recommendation Using Python
FridaPutriassa9 visualizações

Unlocking the Power of Integer Programming

  • 1. Florian Wilhelm Unlocking the Power of Integer Programming Data Analytics & Science
  • 2. Mathematical Modelling Modern Data Warehousing & Analytics Personalisation & RecSys Uncertainty Quantification & Causality Python Data Stack OSS Contributor & Creator of PyScaffold Dr. Florian Wilhelm • HEAD OF DATA SCIENCE FlorianWilhelm.info florian.wilhelm@inovex.de FlorianWilhelm @FlorianWilhelm 2
  • 3. ‣ Application Development (Web Platforms, Mobile Apps, Smart Devices and Robotics, UI/UX design, Backend Services) ‣ Data Management and Analytics (Business Intelligence, Big Data, Searches, Data Science and Deep Learning, Machine Perception and Artificial Intelligence) ‣ Scalable IT-Infrastructures (IT Engineering, Cloud Services, DevOps, Replatforming, Security) ‣ Training and Coaching (inovex Academy) is an innovation and quality-driven IT project house with a focus on digital transformation. Using technology to inspire our clients. And ourselves. Berlin · Karlsruhe · Pforzheim · Stuttgart · München · Köln · Hamburg · Erlangen www.inovex.de 3
  • 4. Definition: The objective of Operations Research (OR) is the development and use of mathematical methods to support decision-making processes in domains such as manufacturing or finance. Operations Research Introduction 4
  • 5. ● Assignment/Allocation Problem How to schedule some talks in an agenda under some constraints like room sizes to optimize the conference experience? ● Transportation Problem Which supplier should deliver to which factories given some costs to satisfy each factory with minimal costs? ● Shortest Path Problem Given some graph with a cost on each edge, what is the shortest path from source to sink? ● Maximum Flow Problem Given some pipe system with a source and sink, what is the maximum flow through the system? Common Problem Classes in Operations Research Introduction 5
  • 6. Definition of Linear Programming (LP) Introduction 6 LPs can be solved with the Simplex algorithm in cubic on average but exponential number of steps in worst case scenario or interior point methods in about .
  • 7. Definition of Mixed Integer Programming (MIP) Introduction 7 MIPs are NP-hard, i.e. complexity grows exponentially with n Dropping the integrality constraints, i.e. "linear relaxation", leads to an LP problem.
  • 8. If all variables need to be integer, it is a (pure) integer linear program (ILP, IP). If all variables need to be 0 or 1 (binary, boolean), it is a 0 - 1 linear program. Special Cases of Mixed Integer Programming Introduction 8
  • 9. Given a set of items, each with a weight and a value, determine which items to include in the collection so that the total weight is less than or equal to a given limit and the total value is as large as possible. - Wikipedia Knapsack problem Introduction 9
  • 10. 10 Solving a MILP Introduction Dropping the integrality constraints, i.e. “linear relaxation”, leads to an LP problem. Two major method classes for solving MILPs: ● Cutting plane methods ● Branch and bound methods Often combined as Branch and Cut methods Source: Introduction to Optimization by Laurent Lessard, Spring 2017–18
  • 11. Cutting Planes Cutting Planes Methods Introduction 11 Idea ● solve the LP relaxation problem ● while solution is not integral: ○ add constraint that excludes solution but no integer points ○ solve LP relaxation again
  • 12. Cutting Planes Methods Introduction 12 Optimal point Feasible point Infeasible point 0 1 2 3 1 2 3 0 Optimal solution is 4 at (2, 2)
  • 13. Cutting Planes Methods Introduction 13 0 1 2 3 1 2 3 0 Optimal solution is 4.5 at (2, 2.5) ● Relaxing the problem and solving the LP instead of MIP ● The LP solution is always an upper bound for the MIP
  • 14. Cutting Planes Methods Introduction 14 0 1 2 3 1 2 3 0 Optimal solution is 4.16 at (2.16, 2) ● Add a cut to exclude the LP solution but no feasible point ● Solve the LP again ● … repeat until LP solution is also an MIP solution
  • 15. Cutting Planes Methods Introduction 15 0 1 2 3 1 2 3 0 Optimal solution is 4 at (2, 2)
  • 16. Branch & Bound Branch & Bound Methods Introduction 16 Idea 1. solve the relaxed LP and for a fractional split into two subproblems ○ with constraint ○ and with constraint 2. repeat step 1. and build a tree of subproblems 3. eliminate branches of the tree using
  • 17. How can we use MILPs for a Conference Scheduling? Use-Case 17 Monday Room 1 Room 2 … Morning Afternoon A B C D A B C D
  • 18. ● each talk must be assigned exactly once, ● each room/timeslot combination can only be occupied by one talk at most, ● the length of the timeslot must match the length of the talk ● some tutorials have part 1 & 2, thus need to be consecutive What Constraints do we have? Use-Case 18
  • 19. 1. the preferences for day and time of some speakers, e.g. keynotes, need to be considered 2.popularity of a talk should be reflected in the room capacity, 3.avoid parallel talks that attract the same audience, 4.have in the same session, i.e. consecutive block of talks, the same main track, e.g. PyData vs. PyCon, 5.or even the same sub track, e.g. PyData: Data Handling, What is our objective? Use-Case 19 Precedence: 1 > 2 > 3 > 4 > 5
  • 20. 1. Framework to formulate the problem, e.g. a.Pyomo (OSS) b.PuLP (OSS) c.AMPL (Commercial) d.… 2.Solver to solve the canonical problem, e.g. a.HiGHS (OSS) b.CBC (OSS) c.Gurobi (Commercial) d.IBM CPlex (Commercial) e.… Solving MILPs in Python Use-Case 20
  • 26. Solving the MILP Problem and Displaying model.vBScheduleSchedule Use-Case 26
  • 27. Pyomo / HiGHS notebook: https://github.com/FlorianWilhelm/pytanis/blob/main/notebooks/pyconde-pydata-berlin-2023/50_scheduling_v1.ipynb Check out the Full Source Code Use-Case 27 Pytanis includes a Pretalx client and all the tooling you need for conferences using Pretalx, from handling the initial call for papers to creating the final program.
  • 28. Looks easy enough! But is it really? Remarks 28
  • 29. m_caps_dict.keys(), ordered=True) The Absolute Value is not linear! Modelling the Absolute Value Remarks 29 0 1 2 3 1 2 3 -1 -2 -3
  • 30. m_caps_dict.keys(), ordered=True) To model in the objective, we introduce auxiliary variables: Modelling the Absolute Value Remarks 30 1 2 3 1 2 3
  • 31. 1. MILPs are an important tool in the domain of Operations Research 2.Many optimal decision use-cases can be formulated mathematically as a MILP, e.g. Knapsack problem 3.Solving a (M)ILP is NP-hard but good heuristics methods exists like Branch & Cut 4.Tools like Pyomo translate your problem in a standardized form and solver like HiGHS solve it 5.Modelling a problem as MILP, especially the Linearity requirement, is the hardest part Main Take-Aways Summary 31
  • 32. ● Introduction to Optimization by Laurent Lessard ● Mixed Integer Programming for time table scheduling by Francisco Espiga ● Schedule Optimisation using Linear Programming in Python by Lewis Woolfson ● Some icons taken from Flaticon.com References Summary 32
  • 33. © 2023 Thank you! Dr. Florian Wilhelm Head of Data Science EuroPython 2023 inovex.de florian.wilhelm@inovex.de @inovexlife @inovexgmbh waldstack.org 33