SlideShare uma empresa Scribd logo
1 de 28
CCISDevt Sharing Session




Applying Linear Optimization
        Using GLPK
Outline

What is Linear Optimization?
What is GLPK?
Available Bindings
GNU MathProg Scripting
Examples:
 Trans-shipment (the standard example)
 Time Table Scheduling (from school days...)
 Allocating HDB Flats by “Combinatorial Auction”
                                                   2
Linear Optimization? What?

The minimization of functions of the form
 c1 x1 + c2 x2 + …+ cn xn
by varying decision variables xi,
subject to constraints of the form
 ai1 x1 + ai2 x2 + …+ ain xn = bi or
 ai1 x1 + ai2 x2 + …+ ain xn ≤ bi
where the other coefficients aij, bi and ci are fixed.

                                                     3
Linear Optimization? What?

A typical example: “The Diet Problem”. By
 varying the intake of each type of food (e.g.:
 chicken rice, durian, cheese cake), minimize
 (The Total Cost of Food)
subject to
 (Non-negativity of the intakes of each type.)
 (Satisfaction of minimum nutritional requirements)


                                                      4
Linear Optimization? What?

A secondary school example. By varying decision
 variables x and y, maximize
 2x+y
subject to
 x ≥ 0, x ≤ 1,
 y ≥ 0, y ≤ 1,
 x + y ≤ 1.5


                                              5
Linear Optimization? What?

A secondary school example. By varying decision
 variables x and y, maximize
 2x+y
subject to
 x ≥ 0, x ≤ 1,
 y ≥ 0, y ≤ 1,
 x + y ≤ 1.5


                                              6
Linear Optimization? What?

A secondary school example. By varying decision
 variables x and y, maximize
 2x+y
subject to
 x ≥ 0, x ≤ 1,
 y ≥ 0, y ≤ 1,
 x + y ≤ 1.5


                                              7
Linear Optimization? What?

A secondary school example. By varying decision
 variables x and y, maximize
 2x+y
subject to
 x ≥ 0, x ≤ 1,
 y ≥ 0, y ≤ 1,
 x + y ≤ 1.5


                                              8
Linear Optimization? What?

A more useful sounding example: “Simple
 Commodity Flow”. By varying the number of TV
 sets being transferred along each road in a
 road network, minimize
 (Total Distance each TV set is moved through)
subject to
 (Non-negativity of the flows)
 (Sum of Inflows = Sum of Outflows at each junction where
    Stock counts as inflow & demand, outflow.)
                                                            9
Linear Optimization? What?

Perhaps one of the most widely used mathematical
 techniques:
 Network flow / multi-commodity flow problems
 Project Management
 Production Planning, etc...
Used in Mixed Integer Linear Optimization for:
 Airplane scheduling
 Facility planning
 Timetabling, etc...
                                                   10
Linear Optimization? What?

Solution methods:
 Simplex-based algorithms
   Non-polynomial-time algorithm
   Performs much better in practice than predicted by
      theory
 Interior-point methods
   Polynomial-time algorithm
   Also performs better in practice than predicted by
      theory
                                                        11
What is GLPK

GLPK: GNU Linear Programming Kit
An open-source, cross-platform software package for
 solving large-scale Linear Optimization and Mixed
 Integer Linear Optimization problems.
Comes bundled with the GNU MathProg scripting
 language for rapid development.
URL: http://www.gnu.org/software/glpk/
GUSEK (a useful front-end):
 http://gusek.sourceforge.net/gusek.html

                                                      12
Bindings for GLPK

GLPK bindings exist for:
 C, C++ (with distribution)
 Java (with distribution)
 C#
 Python, Ruby, Erlang
 MATLAB, R
 … even Lisp.
 (And probably many more.)

                                13
Scripting with GNU MathProg

For expressing optimization problems in a compact,
  human readable format.
Used to generate problems for computer solution.
Usable in production as problem generation is typically a
 small fraction of solution time and problem generation
 (in C/C++/Java/etc) via the API takes about as long.
Hence, “rapid development” as opposed to “rapid
 prototyping”.


                                                        14
Scripting with GNU MathProg

Parts of a script:
 Model: Description of objective function and
   constraints to be satisfied
 Data: Parameters that go into the model
Data can be acquired from a database (e.g. via
 ODBC).
Post processed solution can be written to a
 database.

                                                 15
Scripting with GNU MathProg

Model File (For choosing a meet-up date)
 set Peoples;
 set Days;
 set Meals;
 ... # PrefInd[...] defined here
 var x{d in Days, m in Meals} binary;
 maximize Participation_and_Preference: sum{p in Peoples, d in Days, m
     in Meals} PrefInd[p,d,m]*x[d,m];
 s.t.        one_meal: sum{d in Days, m in Meals} x[d,m] = 1;
 solve;
 ...    # Post-processing here
 end;

                                                                         16
Scripting with GNU MathProg

Data File (for the above model)
 data;
 set Peoples := JC LZY FYN MJ;
 set Days := Mon Tue Wed Thu Fri Sat Sun;
 set Meals := Lunch Dinner;
 # Last element is 1 if preferred, 0 if otherwise
 set Prefs :=
   (JC, Mon, Dinner, 1),
   (JC, Tue, Dinner, 0),
   ... # Rest of preference data
   ;
 end;

                                                    17
Scripting with GNU MathProg

Good “student” practice:
 Decouple model from data (separate files)
 Write script to generate data file from sources
Reasonable production practice
 Decouple model from data
 Acquire data from and write output to database
 Abuse: Read statements can be used to write to the
   database (e.g.: a “currently working” flag)

                                                      18
Examples

Trans-shipment (the standard example)
 A source to destination network flow problem
 Data: Quantity at source, Demand at destination
Time Table Scheduling (from school days...)
 Respect requirements, Maximize preference
 Support alternate “sessions” and multiple time slots
A “Combinatorial Auction” for HDB Flat Allocation
 Allocation and pricing of HDB flats
 Efficiently solvable (Surprise!)

                                                        19
Example: Trans-shipment

Model File
 set I;       /* canning plants */

 param a{i in I};      /* capacity of plant i */

 set J;       /* markets */

 param b{j in J};      /* demand at market j */

 param d{i in I, j in J};      /* distance in thousands of miles */

 param f;     /* freight in dollars per case per thousand miles */

 param c{i in I, j in J} := f * d[i,j] / 1000;     /* transport cost */

 var x{i in I, j in J} >= 0;   /* shipment quantities in cases */

 minimize cost: sum{i in I, j in J} c[i,j] * x[i,j];   /* total costs */

 s.t. supply{i in I}: sum{j in J} x[i,j] <= a[i];/* supply limits */

 s.t. demand{j in J}: sum{i in I} x[i,j] >= b[j];/* satisfy demand */

 solve;

 # < Post-processing code >

 end;

                                                                           20
Example: Trans-shipment

Data File
 data;
 set I := Seattle San-Diego;
 param a := Seattle 350
         San-Diego 600;
 set J := New-York Chicago Topeka;
 param b :=    New-York 325
         Chicago 300
         Topeka 275;
 param d :             New-York         Chicago   Topeka :=
   Seattle                2.5     1.7     1.8
   San-Diego     2.5      1.8     1.4 ;
 param f := 90;
 end;
                                                              21
Example: Trans-shipment

Sample Output
 GLPK Simplex Optimizer, v4.47

 6 rows, 6 columns, 18 non-zeros

 ...

 OPTIMAL SOLUTION FOUND

 ************************************************

 ***POST SOLVE                                      (Post-processed Output)

 ************************************************

 Flow[ Seattle -> New-York ] = 50.000000

 Flow[ Seattle -> Chicago ] = 300.000000

 Flow[ Seattle -> Topeka ] = 0.000000

 Flow[ San-Diego -> New-York ] = 275.000000

 Flow[ San-Diego -> Chicago ] = 0.000000

 Flow[ San-Diego -> Topeka ] = 275.000000

                                                                              22
Example: Trans-shipment

Using ODBC as a Data Source
 table tbl_plants IN 'ODBC' 'dsn=demo_tpt' 'plants' :
   I <- [name], a~capacity;
 table tbl_markets IN 'ODBC' 'dsn=demo_tpt' 'markets' :
   J <- [name], b~demand;
 table tbl_freight IN 'ODBC' 'dsn=demo_tpt' 'freight' :
   [plant,market], d~cost;

Sending Output to a Database (via ODBC)
 table result{i in I, j in J: x[i,j]} OUT 'ODBC' 'dsn=demo_tpt'
   'UPDATE freight SET flow=? WHERE (plant=?) and (market=?)' :
      x[i,j], i, j;




                                                                  23
Example: Time Tabling

Objective: Maximize “preference points”
Constraints:
 Pick exactly one appointment from appointment groups
    marked compulsory
 Pick at most one appointment any appointment group
 No timing clash between appointments




                                                      24
Example: Time Tabling

Sample (Post-Processed) Output
 Selected Appointment Groups:
   SMA_IS4241C_
   FM_BMA5008_
   ...
 Selected Appointments:
   SMA_IS4241: Fri 1400 - 1730
   FM_BMA5008_B: Mon 1800 – 2130
   ...


 Mon:
   1000 - 1230: APT_ST5214
   1800 - 2130: FM_BMA5008_B
 ...
                                   25
Example: A “Combinatorial”
 Auction for HDB Flat Allocation
Objective: Maximize “Allocative Efficiency” (via bids)
Constraints:
 All flats allocated (Balance allocated to “HDB”)
 At most one flat per “actual applicant”
 Allocation limits for applicant categories (Second-timers, Racial
     Quotas according to Ethnic Integration Policy)
Modified data used to price allocated flats (allocated
 bidder excluded; VCG Mechanism: optimal objective
 function value compared with that of full problem).

                                                                     26
Example: A “Combinatorial”
 Auction for HDB Flat Allocation
Sample Output (Synthetic Data)
 ...

 Solution by Bidder:

       Bidder 1 (2 bids): 1 x C_8
       Bidder 2 (1 bids):
       ...
 ...

       Bidders in group [SecondTimers, EIP_Limit_Chinese]   allocated C_8 at price 88 (reserve
            price: 53, % of reserve price: 166.0%)
       Bidders in group [EIP_Limit_Malay]   allocated C_3 at price 218 (reserve price: 180, % of
            reserve price: 121.1%)
 ...

       Bidder 1 allocated C_8 at price 88 [SecondTimers, EIP_Limit_Chinese] (bid: 95, reserve
            price: 53, savings: 7, possible savings: 42, % savings: 16.67%)
       Bidder 6 allocated C_3 at price 218 [EIP_Limit_Malay] (bid: 319, reserve price: 180,
            savings: 101, possible savings: 139, % savings: 72.66%)


                                                                                                   27
Thanks Everybody,
     Thanks.


                    28

Mais conteúdo relacionado

Mais procurados

PyTorch 튜토리얼 (Touch to PyTorch)
PyTorch 튜토리얼 (Touch to PyTorch)PyTorch 튜토리얼 (Touch to PyTorch)
PyTorch 튜토리얼 (Touch to PyTorch)Hansol Kang
 
ICML2013読み会 Large-Scale Learning with Less RAM via Randomization
ICML2013読み会 Large-Scale Learning with Less RAM via RandomizationICML2013読み会 Large-Scale Learning with Less RAM via Randomization
ICML2013読み会 Large-Scale Learning with Less RAM via RandomizationHidekazu Oiwa
 
Sleep Period Optimization Model For Layered Video Service Delivery Over eMBMS...
Sleep Period Optimization Model For Layered Video Service Delivery Over eMBMS...Sleep Period Optimization Model For Layered Video Service Delivery Over eMBMS...
Sleep Period Optimization Model For Layered Video Service Delivery Over eMBMS...Andrea Tassi
 
To Swift 2...and Beyond!
To Swift 2...and Beyond!To Swift 2...and Beyond!
To Swift 2...and Beyond!Scott Gardner
 
Module Workshop NSC "Raspberry pi3 with Python" - Sanusi & Sasmitoh RR
Module Workshop NSC "Raspberry pi3 with Python" - Sanusi & Sasmitoh RRModule Workshop NSC "Raspberry pi3 with Python" - Sanusi & Sasmitoh RR
Module Workshop NSC "Raspberry pi3 with Python" - Sanusi & Sasmitoh RRSasmitoh Rahmad Riady
 
OPTEX MATHEMATICAL MODELING AND MANAGEMENT SYSTEM
OPTEX MATHEMATICAL MODELING AND MANAGEMENT SYSTEMOPTEX MATHEMATICAL MODELING AND MANAGEMENT SYSTEM
OPTEX MATHEMATICAL MODELING AND MANAGEMENT SYSTEMJesus Velasquez
 
A Generate-Test-Aggregate Parallel Programming Library on Spark
A Generate-Test-Aggregate Parallel Programming Library on SparkA Generate-Test-Aggregate Parallel Programming Library on Spark
A Generate-Test-Aggregate Parallel Programming Library on SparkYu Liu
 
Pydiomatic
PydiomaticPydiomatic
Pydiomaticrik0
 
C++ How I learned to stop worrying and love metaprogramming
C++ How I learned to stop worrying and love metaprogrammingC++ How I learned to stop worrying and love metaprogramming
C++ How I learned to stop worrying and love metaprogrammingcppfrug
 
Exploiting Concurrency with Dynamic Languages
Exploiting Concurrency with Dynamic LanguagesExploiting Concurrency with Dynamic Languages
Exploiting Concurrency with Dynamic LanguagesTobias Lindaaker
 
Cassandra Summit - What's New In Apache TinkerPop?
Cassandra Summit - What's New In Apache TinkerPop?Cassandra Summit - What's New In Apache TinkerPop?
Cassandra Summit - What's New In Apache TinkerPop?Stephen Mallette
 
OPTEX Mathematical Modeling and Management System
OPTEX Mathematical Modeling and Management SystemOPTEX Mathematical Modeling and Management System
OPTEX Mathematical Modeling and Management SystemJesus Velasquez
 
Seeing with Python presented at PyCon AU 2014
Seeing with Python presented at PyCon AU 2014Seeing with Python presented at PyCon AU 2014
Seeing with Python presented at PyCon AU 2014Mark Rees
 
Threads and Callbacks for Embedded Python
Threads and Callbacks for Embedded PythonThreads and Callbacks for Embedded Python
Threads and Callbacks for Embedded PythonYi-Lung Tsai
 
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)Hansol Kang
 
TensorFlow Dev Summit 2018 Extended: TensorFlow Eager Execution
TensorFlow Dev Summit 2018 Extended: TensorFlow Eager ExecutionTensorFlow Dev Summit 2018 Extended: TensorFlow Eager Execution
TensorFlow Dev Summit 2018 Extended: TensorFlow Eager ExecutionTaegyun Jeon
 
Go 프로그래밍 소개 - 장재휴, DomainDriven커뮤니티
Go 프로그래밍 소개 - 장재휴, DomainDriven커뮤니티Go 프로그래밍 소개 - 장재휴, DomainDriven커뮤니티
Go 프로그래밍 소개 - 장재휴, DomainDriven커뮤니티JaeYeoul Ahn
 
[JavaOne 2011] Models for Concurrent Programming
[JavaOne 2011] Models for Concurrent Programming[JavaOne 2011] Models for Concurrent Programming
[JavaOne 2011] Models for Concurrent ProgrammingTobias Lindaaker
 

Mais procurados (20)

PyTorch 튜토리얼 (Touch to PyTorch)
PyTorch 튜토리얼 (Touch to PyTorch)PyTorch 튜토리얼 (Touch to PyTorch)
PyTorch 튜토리얼 (Touch to PyTorch)
 
ICML2013読み会 Large-Scale Learning with Less RAM via Randomization
ICML2013読み会 Large-Scale Learning with Less RAM via RandomizationICML2013読み会 Large-Scale Learning with Less RAM via Randomization
ICML2013読み会 Large-Scale Learning with Less RAM via Randomization
 
Welcome to python
Welcome to pythonWelcome to python
Welcome to python
 
Sleep Period Optimization Model For Layered Video Service Delivery Over eMBMS...
Sleep Period Optimization Model For Layered Video Service Delivery Over eMBMS...Sleep Period Optimization Model For Layered Video Service Delivery Over eMBMS...
Sleep Period Optimization Model For Layered Video Service Delivery Over eMBMS...
 
To Swift 2...and Beyond!
To Swift 2...and Beyond!To Swift 2...and Beyond!
To Swift 2...and Beyond!
 
Module Workshop NSC "Raspberry pi3 with Python" - Sanusi & Sasmitoh RR
Module Workshop NSC "Raspberry pi3 with Python" - Sanusi & Sasmitoh RRModule Workshop NSC "Raspberry pi3 with Python" - Sanusi & Sasmitoh RR
Module Workshop NSC "Raspberry pi3 with Python" - Sanusi & Sasmitoh RR
 
OPTEX MATHEMATICAL MODELING AND MANAGEMENT SYSTEM
OPTEX MATHEMATICAL MODELING AND MANAGEMENT SYSTEMOPTEX MATHEMATICAL MODELING AND MANAGEMENT SYSTEM
OPTEX MATHEMATICAL MODELING AND MANAGEMENT SYSTEM
 
A Generate-Test-Aggregate Parallel Programming Library on Spark
A Generate-Test-Aggregate Parallel Programming Library on SparkA Generate-Test-Aggregate Parallel Programming Library on Spark
A Generate-Test-Aggregate Parallel Programming Library on Spark
 
Pydiomatic
PydiomaticPydiomatic
Pydiomatic
 
C++ How I learned to stop worrying and love metaprogramming
C++ How I learned to stop worrying and love metaprogrammingC++ How I learned to stop worrying and love metaprogramming
C++ How I learned to stop worrying and love metaprogramming
 
Exploiting Concurrency with Dynamic Languages
Exploiting Concurrency with Dynamic LanguagesExploiting Concurrency with Dynamic Languages
Exploiting Concurrency with Dynamic Languages
 
Cassandra Summit - What's New In Apache TinkerPop?
Cassandra Summit - What's New In Apache TinkerPop?Cassandra Summit - What's New In Apache TinkerPop?
Cassandra Summit - What's New In Apache TinkerPop?
 
OPTEX Mathematical Modeling and Management System
OPTEX Mathematical Modeling and Management SystemOPTEX Mathematical Modeling and Management System
OPTEX Mathematical Modeling and Management System
 
Seeing with Python presented at PyCon AU 2014
Seeing with Python presented at PyCon AU 2014Seeing with Python presented at PyCon AU 2014
Seeing with Python presented at PyCon AU 2014
 
Threads and Callbacks for Embedded Python
Threads and Callbacks for Embedded PythonThreads and Callbacks for Embedded Python
Threads and Callbacks for Embedded Python
 
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)
 
TensorFlow Dev Summit 2018 Extended: TensorFlow Eager Execution
TensorFlow Dev Summit 2018 Extended: TensorFlow Eager ExecutionTensorFlow Dev Summit 2018 Extended: TensorFlow Eager Execution
TensorFlow Dev Summit 2018 Extended: TensorFlow Eager Execution
 
Groovy intro for OUDL
Groovy intro for OUDLGroovy intro for OUDL
Groovy intro for OUDL
 
Go 프로그래밍 소개 - 장재휴, DomainDriven커뮤니티
Go 프로그래밍 소개 - 장재휴, DomainDriven커뮤니티Go 프로그래밍 소개 - 장재휴, DomainDriven커뮤니티
Go 프로그래밍 소개 - 장재휴, DomainDriven커뮤니티
 
[JavaOne 2011] Models for Concurrent Programming
[JavaOne 2011] Models for Concurrent Programming[JavaOne 2011] Models for Concurrent Programming
[JavaOne 2011] Models for Concurrent Programming
 

Semelhante a Applying Linear Optimization Using GLPK

Informatics Practices (new) solution CBSE 2021, Compartment, improvement ex...
Informatics Practices (new) solution CBSE  2021, Compartment,  improvement ex...Informatics Practices (new) solution CBSE  2021, Compartment,  improvement ex...
Informatics Practices (new) solution CBSE 2021, Compartment, improvement ex...FarhanAhmade
 
Vcs slides on or 2014
Vcs slides on or 2014Vcs slides on or 2014
Vcs slides on or 2014Shakti Ranjan
 
The Concurrent Constraint Programming Research Programmes -- Redux (part2)
The Concurrent Constraint Programming Research Programmes -- Redux (part2)The Concurrent Constraint Programming Research Programmes -- Redux (part2)
The Concurrent Constraint Programming Research Programmes -- Redux (part2)Pierre Schaus
 
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...Databricks
 
Efficient Design Exploration for Civil Aircraft Using a Kriging-Based Genetic...
Efficient Design Exploration for Civil Aircraft Using a Kriging-Based Genetic...Efficient Design Exploration for Civil Aircraft Using a Kriging-Based Genetic...
Efficient Design Exploration for Civil Aircraft Using a Kriging-Based Genetic...Masahiro Kanazaki
 
Cost-Based Optimizer in Apache Spark 2.2
Cost-Based Optimizer in Apache Spark 2.2 Cost-Based Optimizer in Apache Spark 2.2
Cost-Based Optimizer in Apache Spark 2.2 Databricks
 
Adtech scala-performance-tuning-150323223738-conversion-gate01
Adtech scala-performance-tuning-150323223738-conversion-gate01Adtech scala-performance-tuning-150323223738-conversion-gate01
Adtech scala-performance-tuning-150323223738-conversion-gate01Giridhar Addepalli
 
Adtech x Scala x Performance tuning
Adtech x Scala x Performance tuningAdtech x Scala x Performance tuning
Adtech x Scala x Performance tuningYosuke Mizutani
 
XGBoost @ Fyber
XGBoost @ FyberXGBoost @ Fyber
XGBoost @ FyberDaniel Hen
 
Ernest: Efficient Performance Prediction for Advanced Analytics on Apache Spa...
Ernest: Efficient Performance Prediction for Advanced Analytics on Apache Spa...Ernest: Efficient Performance Prediction for Advanced Analytics on Apache Spa...
Ernest: Efficient Performance Prediction for Advanced Analytics on Apache Spa...Spark Summit
 
Automatic and Interpretable Machine Learning with H2O and LIME
Automatic and Interpretable Machine Learning with H2O and LIMEAutomatic and Interpretable Machine Learning with H2O and LIME
Automatic and Interpretable Machine Learning with H2O and LIMEJo-fai Chow
 
Supply Chain Management - Optimization technology
Supply Chain Management - Optimization technologySupply Chain Management - Optimization technology
Supply Chain Management - Optimization technologyNurhazman Abdul Aziz
 
How to easily find the optimal solution without exhaustive search using Genet...
How to easily find the optimal solution without exhaustive search using Genet...How to easily find the optimal solution without exhaustive search using Genet...
How to easily find the optimal solution without exhaustive search using Genet...Viach Kakovskyi
 
The Other HPC: High Productivity Computing
The Other HPC: High Productivity ComputingThe Other HPC: High Productivity Computing
The Other HPC: High Productivity ComputingUniversity of Washington
 
Optimization of Continuous Queries in Federated Database and Stream Processin...
Optimization of Continuous Queries in Federated Database and Stream Processin...Optimization of Continuous Queries in Federated Database and Stream Processin...
Optimization of Continuous Queries in Federated Database and Stream Processin...Zbigniew Jerzak
 
Scalable frequent itemset mining using heterogeneous computing par apriori a...
Scalable frequent itemset mining using heterogeneous computing  par apriori a...Scalable frequent itemset mining using heterogeneous computing  par apriori a...
Scalable frequent itemset mining using heterogeneous computing par apriori a...ijdpsjournal
 

Semelhante a Applying Linear Optimization Using GLPK (20)

Xgboost
XgboostXgboost
Xgboost
 
Informatics Practices (new) solution CBSE 2021, Compartment, improvement ex...
Informatics Practices (new) solution CBSE  2021, Compartment,  improvement ex...Informatics Practices (new) solution CBSE  2021, Compartment,  improvement ex...
Informatics Practices (new) solution CBSE 2021, Compartment, improvement ex...
 
Vcs slides on or 2014
Vcs slides on or 2014Vcs slides on or 2014
Vcs slides on or 2014
 
The Concurrent Constraint Programming Research Programmes -- Redux (part2)
The Concurrent Constraint Programming Research Programmes -- Redux (part2)The Concurrent Constraint Programming Research Programmes -- Redux (part2)
The Concurrent Constraint Programming Research Programmes -- Redux (part2)
 
ML unit-1.pptx
ML unit-1.pptxML unit-1.pptx
ML unit-1.pptx
 
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...
 
Efficient Design Exploration for Civil Aircraft Using a Kriging-Based Genetic...
Efficient Design Exploration for Civil Aircraft Using a Kriging-Based Genetic...Efficient Design Exploration for Civil Aircraft Using a Kriging-Based Genetic...
Efficient Design Exploration for Civil Aircraft Using a Kriging-Based Genetic...
 
Cost-Based Optimizer in Apache Spark 2.2
Cost-Based Optimizer in Apache Spark 2.2 Cost-Based Optimizer in Apache Spark 2.2
Cost-Based Optimizer in Apache Spark 2.2
 
modeling.ppt
modeling.pptmodeling.ppt
modeling.ppt
 
Xgboost
XgboostXgboost
Xgboost
 
Adtech scala-performance-tuning-150323223738-conversion-gate01
Adtech scala-performance-tuning-150323223738-conversion-gate01Adtech scala-performance-tuning-150323223738-conversion-gate01
Adtech scala-performance-tuning-150323223738-conversion-gate01
 
Adtech x Scala x Performance tuning
Adtech x Scala x Performance tuningAdtech x Scala x Performance tuning
Adtech x Scala x Performance tuning
 
XGBoost @ Fyber
XGBoost @ FyberXGBoost @ Fyber
XGBoost @ Fyber
 
Ernest: Efficient Performance Prediction for Advanced Analytics on Apache Spa...
Ernest: Efficient Performance Prediction for Advanced Analytics on Apache Spa...Ernest: Efficient Performance Prediction for Advanced Analytics on Apache Spa...
Ernest: Efficient Performance Prediction for Advanced Analytics on Apache Spa...
 
Automatic and Interpretable Machine Learning with H2O and LIME
Automatic and Interpretable Machine Learning with H2O and LIMEAutomatic and Interpretable Machine Learning with H2O and LIME
Automatic and Interpretable Machine Learning with H2O and LIME
 
Supply Chain Management - Optimization technology
Supply Chain Management - Optimization technologySupply Chain Management - Optimization technology
Supply Chain Management - Optimization technology
 
How to easily find the optimal solution without exhaustive search using Genet...
How to easily find the optimal solution without exhaustive search using Genet...How to easily find the optimal solution without exhaustive search using Genet...
How to easily find the optimal solution without exhaustive search using Genet...
 
The Other HPC: High Productivity Computing
The Other HPC: High Productivity ComputingThe Other HPC: High Productivity Computing
The Other HPC: High Productivity Computing
 
Optimization of Continuous Queries in Federated Database and Stream Processin...
Optimization of Continuous Queries in Federated Database and Stream Processin...Optimization of Continuous Queries in Federated Database and Stream Processin...
Optimization of Continuous Queries in Federated Database and Stream Processin...
 
Scalable frequent itemset mining using heterogeneous computing par apriori a...
Scalable frequent itemset mining using heterogeneous computing  par apriori a...Scalable frequent itemset mining using heterogeneous computing  par apriori a...
Scalable frequent itemset mining using heterogeneous computing par apriori a...
 

Último

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Último (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Applying Linear Optimization Using GLPK

  • 1. CCISDevt Sharing Session Applying Linear Optimization Using GLPK
  • 2. Outline What is Linear Optimization? What is GLPK? Available Bindings GNU MathProg Scripting Examples: Trans-shipment (the standard example) Time Table Scheduling (from school days...) Allocating HDB Flats by “Combinatorial Auction” 2
  • 3. Linear Optimization? What? The minimization of functions of the form c1 x1 + c2 x2 + …+ cn xn by varying decision variables xi, subject to constraints of the form ai1 x1 + ai2 x2 + …+ ain xn = bi or ai1 x1 + ai2 x2 + …+ ain xn ≤ bi where the other coefficients aij, bi and ci are fixed. 3
  • 4. Linear Optimization? What? A typical example: “The Diet Problem”. By varying the intake of each type of food (e.g.: chicken rice, durian, cheese cake), minimize (The Total Cost of Food) subject to (Non-negativity of the intakes of each type.) (Satisfaction of minimum nutritional requirements) 4
  • 5. Linear Optimization? What? A secondary school example. By varying decision variables x and y, maximize 2x+y subject to x ≥ 0, x ≤ 1, y ≥ 0, y ≤ 1, x + y ≤ 1.5 5
  • 6. Linear Optimization? What? A secondary school example. By varying decision variables x and y, maximize 2x+y subject to x ≥ 0, x ≤ 1, y ≥ 0, y ≤ 1, x + y ≤ 1.5 6
  • 7. Linear Optimization? What? A secondary school example. By varying decision variables x and y, maximize 2x+y subject to x ≥ 0, x ≤ 1, y ≥ 0, y ≤ 1, x + y ≤ 1.5 7
  • 8. Linear Optimization? What? A secondary school example. By varying decision variables x and y, maximize 2x+y subject to x ≥ 0, x ≤ 1, y ≥ 0, y ≤ 1, x + y ≤ 1.5 8
  • 9. Linear Optimization? What? A more useful sounding example: “Simple Commodity Flow”. By varying the number of TV sets being transferred along each road in a road network, minimize (Total Distance each TV set is moved through) subject to (Non-negativity of the flows) (Sum of Inflows = Sum of Outflows at each junction where Stock counts as inflow & demand, outflow.) 9
  • 10. Linear Optimization? What? Perhaps one of the most widely used mathematical techniques: Network flow / multi-commodity flow problems Project Management Production Planning, etc... Used in Mixed Integer Linear Optimization for: Airplane scheduling Facility planning Timetabling, etc... 10
  • 11. Linear Optimization? What? Solution methods: Simplex-based algorithms Non-polynomial-time algorithm Performs much better in practice than predicted by theory Interior-point methods Polynomial-time algorithm Also performs better in practice than predicted by theory 11
  • 12. What is GLPK GLPK: GNU Linear Programming Kit An open-source, cross-platform software package for solving large-scale Linear Optimization and Mixed Integer Linear Optimization problems. Comes bundled with the GNU MathProg scripting language for rapid development. URL: http://www.gnu.org/software/glpk/ GUSEK (a useful front-end): http://gusek.sourceforge.net/gusek.html 12
  • 13. Bindings for GLPK GLPK bindings exist for: C, C++ (with distribution) Java (with distribution) C# Python, Ruby, Erlang MATLAB, R … even Lisp. (And probably many more.) 13
  • 14. Scripting with GNU MathProg For expressing optimization problems in a compact, human readable format. Used to generate problems for computer solution. Usable in production as problem generation is typically a small fraction of solution time and problem generation (in C/C++/Java/etc) via the API takes about as long. Hence, “rapid development” as opposed to “rapid prototyping”. 14
  • 15. Scripting with GNU MathProg Parts of a script: Model: Description of objective function and constraints to be satisfied Data: Parameters that go into the model Data can be acquired from a database (e.g. via ODBC). Post processed solution can be written to a database. 15
  • 16. Scripting with GNU MathProg Model File (For choosing a meet-up date) set Peoples; set Days; set Meals; ... # PrefInd[...] defined here var x{d in Days, m in Meals} binary; maximize Participation_and_Preference: sum{p in Peoples, d in Days, m in Meals} PrefInd[p,d,m]*x[d,m]; s.t. one_meal: sum{d in Days, m in Meals} x[d,m] = 1; solve; ... # Post-processing here end; 16
  • 17. Scripting with GNU MathProg Data File (for the above model) data; set Peoples := JC LZY FYN MJ; set Days := Mon Tue Wed Thu Fri Sat Sun; set Meals := Lunch Dinner; # Last element is 1 if preferred, 0 if otherwise set Prefs := (JC, Mon, Dinner, 1), (JC, Tue, Dinner, 0), ... # Rest of preference data ; end; 17
  • 18. Scripting with GNU MathProg Good “student” practice: Decouple model from data (separate files) Write script to generate data file from sources Reasonable production practice Decouple model from data Acquire data from and write output to database Abuse: Read statements can be used to write to the database (e.g.: a “currently working” flag) 18
  • 19. Examples Trans-shipment (the standard example) A source to destination network flow problem Data: Quantity at source, Demand at destination Time Table Scheduling (from school days...) Respect requirements, Maximize preference Support alternate “sessions” and multiple time slots A “Combinatorial Auction” for HDB Flat Allocation Allocation and pricing of HDB flats Efficiently solvable (Surprise!) 19
  • 20. Example: Trans-shipment Model File set I; /* canning plants */ param a{i in I}; /* capacity of plant i */ set J; /* markets */ param b{j in J}; /* demand at market j */ param d{i in I, j in J}; /* distance in thousands of miles */ param f; /* freight in dollars per case per thousand miles */ param c{i in I, j in J} := f * d[i,j] / 1000; /* transport cost */ var x{i in I, j in J} >= 0; /* shipment quantities in cases */ minimize cost: sum{i in I, j in J} c[i,j] * x[i,j]; /* total costs */ s.t. supply{i in I}: sum{j in J} x[i,j] <= a[i];/* supply limits */ s.t. demand{j in J}: sum{i in I} x[i,j] >= b[j];/* satisfy demand */ solve; # < Post-processing code > end; 20
  • 21. Example: Trans-shipment Data File data; set I := Seattle San-Diego; param a := Seattle 350 San-Diego 600; set J := New-York Chicago Topeka; param b := New-York 325 Chicago 300 Topeka 275; param d : New-York Chicago Topeka := Seattle 2.5 1.7 1.8 San-Diego 2.5 1.8 1.4 ; param f := 90; end; 21
  • 22. Example: Trans-shipment Sample Output GLPK Simplex Optimizer, v4.47 6 rows, 6 columns, 18 non-zeros ... OPTIMAL SOLUTION FOUND ************************************************ ***POST SOLVE (Post-processed Output) ************************************************ Flow[ Seattle -> New-York ] = 50.000000 Flow[ Seattle -> Chicago ] = 300.000000 Flow[ Seattle -> Topeka ] = 0.000000 Flow[ San-Diego -> New-York ] = 275.000000 Flow[ San-Diego -> Chicago ] = 0.000000 Flow[ San-Diego -> Topeka ] = 275.000000 22
  • 23. Example: Trans-shipment Using ODBC as a Data Source table tbl_plants IN 'ODBC' 'dsn=demo_tpt' 'plants' : I <- [name], a~capacity; table tbl_markets IN 'ODBC' 'dsn=demo_tpt' 'markets' : J <- [name], b~demand; table tbl_freight IN 'ODBC' 'dsn=demo_tpt' 'freight' : [plant,market], d~cost; Sending Output to a Database (via ODBC) table result{i in I, j in J: x[i,j]} OUT 'ODBC' 'dsn=demo_tpt' 'UPDATE freight SET flow=? WHERE (plant=?) and (market=?)' : x[i,j], i, j; 23
  • 24. Example: Time Tabling Objective: Maximize “preference points” Constraints: Pick exactly one appointment from appointment groups marked compulsory Pick at most one appointment any appointment group No timing clash between appointments 24
  • 25. Example: Time Tabling Sample (Post-Processed) Output Selected Appointment Groups: SMA_IS4241C_ FM_BMA5008_ ... Selected Appointments: SMA_IS4241: Fri 1400 - 1730 FM_BMA5008_B: Mon 1800 – 2130 ... Mon: 1000 - 1230: APT_ST5214 1800 - 2130: FM_BMA5008_B ... 25
  • 26. Example: A “Combinatorial” Auction for HDB Flat Allocation Objective: Maximize “Allocative Efficiency” (via bids) Constraints: All flats allocated (Balance allocated to “HDB”) At most one flat per “actual applicant” Allocation limits for applicant categories (Second-timers, Racial Quotas according to Ethnic Integration Policy) Modified data used to price allocated flats (allocated bidder excluded; VCG Mechanism: optimal objective function value compared with that of full problem). 26
  • 27. Example: A “Combinatorial” Auction for HDB Flat Allocation Sample Output (Synthetic Data) ... Solution by Bidder: Bidder 1 (2 bids): 1 x C_8 Bidder 2 (1 bids): ... ... Bidders in group [SecondTimers, EIP_Limit_Chinese] allocated C_8 at price 88 (reserve price: 53, % of reserve price: 166.0%) Bidders in group [EIP_Limit_Malay] allocated C_3 at price 218 (reserve price: 180, % of reserve price: 121.1%) ... Bidder 1 allocated C_8 at price 88 [SecondTimers, EIP_Limit_Chinese] (bid: 95, reserve price: 53, savings: 7, possible savings: 42, % savings: 16.67%) Bidder 6 allocated C_3 at price 218 [EIP_Limit_Malay] (bid: 319, reserve price: 180, savings: 101, possible savings: 139, % savings: 72.66%) 27
  • 28. Thanks Everybody, Thanks. 28