Lecture Summaries for Computational Intractability         Spring 2013

Prof. David Avis                          Thurs 8:45 - 10:15         Tentative Schedule

      also check:  announcements      assignments    return to:  course home page

April 11: We discussed the notions of P and NP and integer programming formulation of the knapsack problem. notes
See announcements to get information on lp_solve.
Exercise: Visit a kaiten sushi shop (or make up some reasonable data). Select 15 or more plates and for each plate i record the price p_i and a score r_i. The score is an integer in the range 0..100 that tells how much you like that piece of sushi (100 is best). Note you can give different scores for the same kind of fish: eg. you may see 4 plates of toro and give scores 78,84,85,92 respectively.
Your problem is to decide the best selection of plates to choose given budgets of 1,000, 1,500 and 2,000 yen. Solve each problem using lp_solve. Probably you do not really like the optimal solutions (e.g too much or too little of some kind of fish). Add additional constraints to get a more appetizing solution, and rerun using lp_solve.


April 18: Introduction to NP-completeness.
Some general slides and  notes .
Exercise: Show the following problems are NP-complete. You may assume that both 3-SAT and SUBSET-SUM are NP-complete (see notes for definitions)
1. 3-PARTITION   Input: n integers  Output is "yes" if they can be partitioned into three sets of equal weight.
2. 3-MACHINE SCHEDULING Input: n integers that are running times and a deadline t. Output is "yes" if all jobs can be completed by time t using 3 machines.
3. 4-SAT    Same as 3-SAT but each clause contains exactly 4 literals.

April  25: Formulation of matching and TSP problems. We proved that Directed Hamiltonian Cycle(DHC) and  TSP are NP-hard. We reduced 3SAT to the subset sum problem directly. Reduction for DHC (first 11 slides) See slides 35-37 and notes from April 18.
Exercise: 2-TSP. Here we have 2 salesman and the job is to find two disjoint routes that cover all the cities and have minimum total weight. Eg. if n=7 then the tours could be 1 3 4 6 1 and 2 5 7 2. To get the total weight just add up the weights of the two tours.
Input: integer n and positive integer weights w_ij, 1 <= i,j <= n. Output: Two tours that have minimum total weight and visit each city exactly once. For the decision version, given also integer k and we ask "are there two disjoint tours with total weight at most k"
1. Prove the decision version of 2-TSP is NP-complete (hint: reduce TSP to 2-TSP)
2. Write down an integer programming formulation for the optimization version of  2-TSP 

First report due May 9 in class and consists of exercises for April 11,18,25.

May 2: Monday schedule, no class.

May 9: Inroduction to LP. This may be the most important lecture of the course, as everything will build on this. Therefore is essential to understand the reading material LP_en.pdf or LP_jp.pdf  and  notes
Exercise: Start with the LP in the notes and consider changing the objective function so that:
(a) There are exactly two distinct optimum dictionaries
(b) There are exactly three distinct optimum dictionaries
(c) There are exactly four distinct optimum dictionaries.
In each case the initial dictionary (B={4,5}) should not be an optimum dictionary.
In each case pivot from the initial dictionary to an optimum dictionary and argue why the number of optimal dictionaries are as given.
(Hint: consider the geometry !)

May 16: General statement of the simplex method. Getting a feasible starting solution. Cycling example.  Read  LP2_en.pdf or LP2_jp.pdf and   notes
Exercise: From   LP2_en.pdf do exercise 3.9 on p. 44, all three parts.

May 23:   Duality. Weak and strong duality theorems and their proofs. Read  notes 
Exercise: Write down the dual of each problem in ex 3.9 (May 16).
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 
May 30: We looked at the Uncapacitated lot size (ULS) problem with and without fixed costs. We saw two formulations for the case with fixed costs. The second one has only integer vertices, so linear programming will give an optimum integer solution. Some notes on the vertex enumeration part using lrs are here. See announcements page for instructions on installing lp_solve and lrs. 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). 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
June 6: Crew scheduling problem. We formulated it as a linear program, and studied the structure of the underlying polyhedron.
The files we used in class for lp_solve and lrs are here notes
Exercise: (a) Given as input a list of n flights which define a flight graph, find an O(n) time algorithm to construct the flight connection graph.
(b) Construct sets of flights that result in an exponential number of pairings. (Ie. number of pairings grows as c^n for some positive constant c)

Second report due June 13 in class and consists of exercises from May 9 to June 6

June 13: The dual simplex method and Gomory's cutting plane algorithm for integer programming. slides      V. Chvatal's notes1  notes2
   The big picture is here! (thanks to Atsuki)
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).

June 19: Extra lecture (no exercise) Bill Cook goes in search of the travelling salesman. Research Building No. 8, Room 328
                          (Building 59 on this map )
His acclaimed book on the travelling salesman problem is available on  amazon and if you bring a copy to class, he will likely sign it for you!

June 20:  Special guest lecture by David Bremner: Finding a minimum norm point on a polyhedral boundary


June 27: 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 wiki.   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.
Extra credit: Formulate the problem with release times. Choose some (non-trivial) release times and recompute the new optimum solution.

July 4: We also discussed branch and bound and branch and cut strategies for integer programming. Vardges Melkonian's   slides  bb1.ppt, bb2.ppt 
The big picture is here! (thanks to Atsuki)
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.
Extra credit: After making the first branch, solve a fractional sub-problem by the cutting plane method (June 13)

Third report due July 11 in class and consists of exercises from June 13, 17 and July 4
July 11: We looked at computing ideal formulations and applied it to the knapsack problem.     lecture notes     lrs instructions
July 18: This lecture was replaced by June 19 lecture. However please try to attend to fill out the course evaluations.