Lecture Summaries  for COMP 567                    Fall 2013

      also check:   news                        return to: course home page

Please report any errors in the lecture notes, thanks!

Sep 3:  Course introduction, motivation and examples of course projects

Sept 5:  We discussed formulations of the knapsack problem, bipartite-matching and the travelling salesman problem(TSP) as integer programs. notes
              We used lp_solve for the TSP problem. Sample lp_solve files are here.
1. Read the notes and consider inequality (5) on P. 2. Consider any subset S and the complementary subset S' = {1,2,...,n} \ S. That is, S' contains all the cities not in S. Show that, in the presence of (3) and (4), inequality (5) using S is equivalent to inequality (5) using S'. (In class we saw subtour violations for both S={2,3,4} and S'={1,5}, but I only needed to add one inequality to the lp_solve file.)
2. Prove that the 0-1 solutions to the system of equations/inequalities defined by (3),(4),(5) are precisely the tours that visit each city exactly once and return to the starting point. You need to prove two things: (i) every such tour gives a feasible 0-1 solution and (ii) each 0-1 solution is such a tour.

Sep 10: Linear programming and the simplex method. This may be the most important lecture of the course, as everything will build on this. Therefore it is essential to understand the reading material LP_en.pdf and  notes         DO THIS EXERCISE!!

Exercise: Write down your own LP with two constraints and four variables (or more!) and solve it by hand according to the method in today's lecture.

Sep 12: More on linear programming: how to get an initial starting solution, cycling example. Read  LP2_en.pdf and   notes
Exercise: From   LP2_en.pdf do exercise 3.9 on p. 44, all three parts.
Sep 17 :   Duality. Weak and strong duality theorems. Read  notes 
Exercise: Write down the dual of each problem in ex 3.9 (Sep 12).
In each case figure out exactly the situation of the dual problem (optimum solution or unbounded or infeasible) and compare with primal outcome.
You results should be consistent with the table on page 5-6 of the   notes 
Sep 19     More on duality. Proof of weak duality. Economic interpretation of duality. Adding new variables to a problem. Brief discussion on complexity of solving LPs.
Exercise: Solve all three parts of problem 2.1 on P.26 of the handout LP2_en.pdf. In each case you need only give the final optimum dictionary. Next obtain the dual variables (described at the bottom of P5-4 of notes ) from these optimum dictionaries and verify the optimality of each solution.
Assignment 1: Exercises from lectures on Sept 5,10,12,17,19 due in class on Sep 24 !

Sep 24  The dual simplex method and Gomory's cutting plane algorithm for integer programming. slides      V. Chvatal's notes1  notes2
   The big picture is here!
(Note: the Chvatal notes were just typeset by Kenji Okuda into latex. The original notes are  notes1  notes2. Kindly report any misprints to me, thanks !)
Exercise: Using the cutting plane method shown on the slides to show there is no integer solution to max x1+x2 st. x1 >= 1/2,  x2 >= 1/2, x1+x2 <= 3/2.
Show the optimum (or infeasible) dictionary at each step and how to derive the cutting plane. (You do not need to show all the details of the pivots).
Sep 26 Fixed costs and disjunctions. We looked at the Uncapacitated lot size (ULS) problem with fixed costs. We saw two formulations.  The second one has only integer vertices, so linear programming will give an optimum integer solution.  notes    input files   
A proof that the formulation in Section 4 gives integer solutions was obtained by Wolsey.
Exercise: Consider an instance ULS with n = 5, demands d = (5, 4, 9, 3, 6), variable production costs p = (3, 1, 3, 2, 4), and fixed production costs f = (20, 30, 25, 10, 5).
The storage costs are $1/unit per period. All variables are integer valued.
Formulate the problem as an ILP using both formulations in the notes. Solve each formulations using lp_solve both as (i) an ordinary LP and as (ii) an ILP
Oct 1-10 Mini-course on stochastic programming with mining applications.
Oct 1  Guest lecturer: Amina Lamghari.  Introduction to stochastic programming. Based on: Birge J.R., Louveaux F., Introduction to stochastic programming, Springer,  slides
Exercises (refer to slides for data)
1. Assume the farmer allocates his land according to the solution based on expected value, i.e., 120 acres of wheat, 80 acres of corn and 300 acres for sugar beets.
Show that if the yields are random (20%below average, 20% above average for all corps with equal probability one third), his expected annual profit is $107240.
2. Consider the same farmer's problem, with the difference that if in a good yield year, the price of corn and wheat goes down by 10%, and in a bad weather year, it goes up by 10%. Formulate this problem as an LP and solve it using lp_solve.

Oct 3  Guest lecturer: Roussos Dimitrakopoulos. An SIP formulation for production scheduling and application at a gold mine: An industry example of the value of stochastic solutions. paper1  paper2  slides

Oct 8 Guest lecturer: Amina Lamghari. Metaheuristics for scheduling production in large-scale open-pit mines accounting for metal uncertainty - Tabu search as an example.  paper  tutorial on tabu search. slides

Oct 10  Guest lecturer: Ryan Goodfellow. Multistage Stochastic Programming and an Application to Production Scheduling in Mining paper   slides

Oct 15  We discussed branch and bound and branch and cut strategies for integer programming. Vardges Melkonian's   slides  bb1.ppt, bb2.ppt 
Exercise: Solve the problem given in the slides bb1.ppt by first branching on x_1 (not on x_2). Show the full solution tree. You can use lp_solve to solve the LPs.

Oct 17  Another flowchart for branch and cut essentially derived from the wiki page branch and cut.
Crew scheduling problem. We formulated it as an integer linear program after preprocessing.
The files we used in class for lp_solve are here notes
No Exercise: Work on those proposals !

Oct 22 Consultant teams 3 and 1.  20 mins presentation (all team members) + 15 minutes discussion (all management members)
List of project descriptions

Assignment 1 will be returned in class on Oct 24. Solutions are posted in assignments
Oct 24 Consultant teams 4 and 2.  20 mins presentation (all team members) + 15 minutes discussion (all management members)

Assignment 2: Please hand in exercises from Sept 24,26, Oct 1, Oct 15 at the beginning of class on Oct. 29.
I will go through the solutions in class, so no late assignments please!

Oct 29 Review session. Suggestions welcome! Solutions for Sep 24 and Oct 15 are here and Oct 1 (not covered on class test) is here.

Oct 31 Class test. Test covers material and exercises from lectures Sep 3 - Sep 26 and Oct 15,17,24.
Nov 5: We looked at computing ideal formulations and applied it to the knapsack problem.     lecture notes     lrs instructions
Exercise: Do both exercises in the lecture notes.
Nov 7: We studied two completely different integer programming formulations of the one machine scheduling problem with precedence constraints and release times. The objective was to minimize weighted completion time. See the  notes
Exercise: Use the precedence graph in the notes and generate a set of process times and weights for the seven jobs. You may assume no release times.
Now formulate an integer program for the minimum weighted completion time using the second method in the notes (ie. variables x_ij for jobs i and j ).
Solve the problem using lp-solve.

Nov 12: Valid inequalities for LPs, ILPs and the Chvatal-Gomory procedure. Read: Sections 8.1-8.3 (except the proof of Thm 8.4)
            A very good description of C-G procedure is in Jochen Konemann's slides (48-71)
Exercise: Refer to the lecture notes for Nov 5, Section 2.1 and 2.2.
Use the Chvatal-Gomory procedure to generate the cover inequalities: x_1 + x_4 <= 1 and x_3 + x_4 + x_5 <=2 for the given Knapsack problem.

Nov 14:
Nov 19:

Nov 21: Assignment 3 consisting  of exercises from Nov 5 - Nov 14 is due in class. 
              Project session!
Nov 26: Progress reports: Team 2 followed by Team 4
Nov 28: Progress reports: Team 1 followed by Team 3