SlideShare a Scribd company logo
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

More Related Content

PPTX
Intensity Transformation
PPTX
Regression (Linear Regression and Logistic Regression) by Akanksha Bali
PDF
Topology for Computing: Homology
PPTX
Machine learning session4(linear regression)
PDF
Tutorial of topological data analysis part 3(Mapper algorithm)
PDF
Kmeans initialization
PDF
Topological Data Analysis: visual presentation of multidimensional data sets
PPT
periodic functions and Fourier series
Intensity Transformation
Regression (Linear Regression and Logistic Regression) by Akanksha Bali
Topology for Computing: Homology
Machine learning session4(linear regression)
Tutorial of topological data analysis part 3(Mapper algorithm)
Kmeans initialization
Topological Data Analysis: visual presentation of multidimensional data sets
periodic functions and Fourier series

What's hot (20)

PPTX
Ppt ---image processing
PDF
An overview of Bayesian testing
PPTX
Statistics for data science
PDF
L8 fuzzy relations contd.
PDF
Markov Models
PPTX
Fuzzy Clustering(C-means, K-means)
PDF
Conjugate Gradient for Normal Equations and Preconditioning
PPTX
COM2304: Intensity Transformation and Spatial Filtering – I (Intensity Transf...
PDF
An Introduction to Causal Discovery, a Bayesian Network Approach
PPTX
DISTINGUISH BETWEEN WALSH TRANSFORM AND HAAR TRANSFORMDip transforms
PDF
Engineering Mathematics-IV_B.Tech_Semester-IV_Unit-I
PDF
Classification and regression trees (cart)
PPTX
Differential equations
PDF
Dimensionality reduction
PDF
Machine Learning for Survival Analysis
PPTX
Hypergeometric Distribution
PDF
Class imbalance problem1
PDF
Wavelet neural network conjunction model in flow forecasting of subhimalayan ...
PPTX
Time series analysis
PDF
Normal Distribution.pdf
Ppt ---image processing
An overview of Bayesian testing
Statistics for data science
L8 fuzzy relations contd.
Markov Models
Fuzzy Clustering(C-means, K-means)
Conjugate Gradient for Normal Equations and Preconditioning
COM2304: Intensity Transformation and Spatial Filtering – I (Intensity Transf...
An Introduction to Causal Discovery, a Bayesian Network Approach
DISTINGUISH BETWEEN WALSH TRANSFORM AND HAAR TRANSFORMDip transforms
Engineering Mathematics-IV_B.Tech_Semester-IV_Unit-I
Classification and regression trees (cart)
Differential equations
Dimensionality reduction
Machine Learning for Survival Analysis
Hypergeometric Distribution
Class imbalance problem1
Wavelet neural network conjunction model in flow forecasting of subhimalayan ...
Time series analysis
Normal Distribution.pdf
Ad

Viewers also liked (6)

PDF
Stuart Mitchell - Pulp Optimisation
PDF
Tutorial: Python, PuLP and GLPK
PDF
Operations Research and Optimization in Python using PuLP
PDF
Macro VBA Excel2010 by A'Rong
PDF
Optimization Methods in Finance
PPTX
Special Cases in Simplex Method
Stuart Mitchell - Pulp Optimisation
Tutorial: Python, PuLP and GLPK
Operations Research and Optimization in Python using PuLP
Macro VBA Excel2010 by A'Rong
Optimization Methods in Finance
Special Cases in Simplex Method
Ad

Similar to Applying Linear Optimization Using GLPK (20)

DOCX
Solving Optimization Problems using the Matlab Optimization.docx
PDF
Reading Materials for Operational Research
PDF
ENEL_680_Linear_and_Integer_Programming-1.pdf
PPT
Vcs slides on or 2014
PDF
Linear algebra application in linear programming
PDF
Spreadsheet Modeling & Decision Analysis
PPTX
linear optimization.pptx
PPTX
linear programming
PDF
Linear programming in matlab
PDF
CB312+-+Part1.pdf
PPTX
Management Science
PDF
Linear programing
PPT
Linear Programming Applications presentation Rania.ppt
PPT
Lp and ip programming cp 9
PDF
Linear programming
PPTX
introduction to Operation Research
PPTX
Operations Research and Mathematical Modeling
PPTX
Linear Programming
PPT
Chap002t.ppt
PDF
Classification of optimization Techniques
Solving Optimization Problems using the Matlab Optimization.docx
Reading Materials for Operational Research
ENEL_680_Linear_and_Integer_Programming-1.pdf
Vcs slides on or 2014
Linear algebra application in linear programming
Spreadsheet Modeling & Decision Analysis
linear optimization.pptx
linear programming
Linear programming in matlab
CB312+-+Part1.pdf
Management Science
Linear programing
Linear Programming Applications presentation Rania.ppt
Lp and ip programming cp 9
Linear programming
introduction to Operation Research
Operations Research and Mathematical Modeling
Linear Programming
Chap002t.ppt
Classification of optimization Techniques

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Spectroscopy.pptx food analysis technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Approach and Philosophy of On baking technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Big Data Technologies - Introduction.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
sap open course for s4hana steps from ECC to s4
PPT
Teaching material agriculture food technology
MIND Revenue Release Quarter 2 2025 Press Release
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Spectroscopy.pptx food analysis technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation theory and applications.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Approach and Philosophy of On baking technology
Understanding_Digital_Forensics_Presentation.pptx
Programs and apps: productivity, graphics, security and other tools
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Big Data Technologies - Introduction.pptx
MYSQL Presentation for SQL database connectivity
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Building Integrated photovoltaic BIPV_UPV.pdf
Machine learning based COVID-19 study performance prediction
sap open course for s4hana steps from ECC to s4
Teaching material agriculture food technology

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