lecture 1 integer programming
Post on 03-Jun-2018
229 Views
Preview:
TRANSCRIPT
-
8/13/2019 Lecture 1 integer programming
1/23
ISyE/CS 720: Integer Programming
ISyE/CS 720: Integer Programming
Jim Luedtke
Department of Industrial and Systems EngineeringUniversity of Wisconsin-Madison
January 21, 2014
ISyE/CS 720: Integer Programming 1
-
8/13/2019 Lecture 1 integer programming
2/23
ISyE/CS 720: Integer Programming
Todays Outline
About this class About me About you
Integer Programs Why are they interesting?
First denitions and rst integer programming models Branch-and-bound: Framework for solivng integer programs
ISyE/CS 720: Integer Programming 2
-
8/13/2019 Lecture 1 integer programming
3/23
ISyE/CS 720: Integer Programming
Couse Details
Where and When
Class Overview
Office Hours (subject to change):Tuesday: 11AM12PM, Friday: 9-10AMBy Appointment
Textbook: Integer Programming , Laurence Wolsey, 1998 Course home page on Piazza:
https://piazza.com/wisc/spring2014/isyecs720/homeLecture slides, homework assignments, solutionsUse Q&A on this site to post questions about the course
Learn@UW course web page:https://learnuw.wisc.eduUsed only for posting grades, and possibly for submission of parts of some homework assignments
See syllabus for overview of course topics and objectives
ISyE/CS 720: Integer Programming 3
https://piazza.com/wisc/spring2014/isyecs720/homehttps://learnuw.wisc.edu/https://learnuw.wisc.edu/https://learnuw.wisc.edu/https://piazza.com/wisc/spring2014/isyecs720/homehttps://piazza.com/wisc/spring2014/isyecs720/home -
8/13/2019 Lecture 1 integer programming
4/23
ISyE/CS 720: Integer Programming
Couse Details
Where and When
Goal of the coursePrimary course objective
Give students a solid understanding of theory of integerprogramming and methods to solve IP problems
What this course is NOT (primarily) about: We wont spend much time on how to model problems as anIP (see ISyE/CS 635)
We study what makes a model goodWe will see some advanced modeling techniques
We wont spend much time in lecture on software But you will be required to use someOverview in lecture, some details in office hour sessions, butyoull be expected to learn much on your own
We wont cover algorithms for easy integer programs (see
CS 577)ISyE/CS 720: Integer Programming 4
-
8/13/2019 Lecture 1 integer programming
5/23
ISyE/CS 720: Integer Programming
Couse Details
Where and When
Expectations
I am expected to...
Teach lectures Be at my office hours Guide your learningprocess (assignments)
Give you feedback onhow you are doing in atimely fashion
You are expected to... Learn Attend lectures andparticipate (askquestions!)
Do the homework Know and followacademic conduct
guidelines Be polite, if possible.
SleepingCell PhonesLeaving in the middleof lecture
ISyE/CS 720: Integer Programming 5
-
8/13/2019 Lecture 1 integer programming
6/23
ISyE/CS 720: Integer Programming
Couse Details
Where and When
Assignments and gradingComponents of grade
Homework (20%) Midterm (35%) save the date: March 13, 7:15 - 9:15 p.m.
Final exam or course project (35%): May 14, 5:05 - 7:05p.m.
Class participation (10%)
Homework assignments
Can work in groups of up to 2 people Assignments may not be completely graded Students should self-check ungraded parts of assignments
Notify me this week if you have a conict with either exam time.ISyE/CS 720: Integer Programming 6
-
8/13/2019 Lecture 1 integer programming
7/23
ISyE/CS 720: Integer Programming
Couse Details
Where and When
Warning on course difficulty
This is a Ph.D.-level course Much of the material in this courseis difficult
Requires very serious math Proofs will be done by me and by you (Gasp!!)
Prerequisite
Strong linear programming background is essential and will beassumed
ISyE/CS 720: Integer Programming 7
-
8/13/2019 Lecture 1 integer programming
8/23
ISyE/CS 720: Integer Programming
Couse Details
Where and When
Questions about the course?
ISyE/CS 720: Integer Programming 8
-
8/13/2019 Lecture 1 integer programming
9/23
ISyE/CS 720: Integer Programming
Couse Details
Getting to Know You...
About me...
B.S., ISyE, UW-Madison, 2001. M.S., OR, GA Tech, 2003. Ph.D., ISyE, GA Tech, 2007.
Fall 2007-Summer 2008: IBM Research Research Areas: Integer programming (linear and nonlinear),stochastic programming, applications
Married. Three children, Rowan (6), Cameron (4), Remy
(< 1). Interesting fact: Biked from Seattle to New York City insummer 2001.
Not so interesting fact: Cannot hear out of left ear
ISyE/CS 720: Integer Programming 9
-
8/13/2019 Lecture 1 integer programming
10/23
ISyE/CS 720: Integer Programming
Couse Details
Getting to Know You...
About you...
ISyE/CS 720: Integer Programming 10
-
8/13/2019 Lecture 1 integer programming
11/23
ISyE/CS 720: Integer Programming
Motivation for IP
Denitions
Programming? I Hate Programming!QuestionWhat does Programming mean in Mathematical Program-ming, Linear Programming, Stochastic Programming, In-teger Programming?
AnswerPlanning
Mathematical Programming (Optimization) is about decisionmaking. Integer Programming is about decision making with integers . More precisely, decision making in which some of the decisionscan take only certain integer values.
ISyE/CS 720: Integer Programming 11
IS E/CS 720 I P i
-
8/13/2019 Lecture 1 integer programming
12/23
ISyE/CS 720: Integer Programming
Motivation for IP
Denitions
Why is programming with integers important?
First answer
Many decisions involve deciding a quantity that is indivisible: Number of airplanes to produce Number of oors in a building What about number of cents to invest in a stock?
Sometimes a continuous approximation is good enough
ISyE/CS 720: Integer Programming 12
IS E/CS 720: Integer Programming
-
8/13/2019 Lecture 1 integer programming
13/23
ISyE/CS 720: Integer Programming
Motivation for IP
Denitions
Why is programming with integers important?
Slam dunk answerWe can use 0-1 (binary) variables for a variety of purposes.
Modeling yes/no decisions. Enforcing logical conditions. Modeling xed costs. Modeling piecewise linear functions.
Usually a continuous approximation is not good enough
ISyE/CS 720: Integer Programming 13
ISyE/CS 720: Integer Programming
-
8/13/2019 Lecture 1 integer programming
14/23
ISyE/CS 720: Integer Programming
Motivation for IP
Denitions
Integer programming is everywhere!
Design a supply chain network: decide where to open facilitiesand which customers they should serve
Portfolio optimization: limit number of stocks held
Stochastic optimization with risk: ensure percent of outcomeswhich are bad is small
LTL vehicle routing: which loads should be combined ontrucks and in what sequence should the loads be delivered?
Sports scheduling: assign games to days Chemical processing network design: which process typesshould be used and how should they be connected?
Television scheduling
ISyE/CS 720: Integer Programming 14
ISyE/CS 720: Integer Programming
-
8/13/2019 Lecture 1 integer programming
15/23
ISyE/CS 720: Integer Programming
Motivation for IP
Mathematical Details
So what is an integer program?A generic mixed-integer program (MIP):
max cT x + hT yAx + Gy b
x 0y Z p+
Instance:
A is an m n matrix G is an m p matrix bR m
cR n
h R p
AssumptionAll data is rational.
Important, but notrestrictive.
ISyE/CS 720: Integer Programming 15
ISyE/CS 720: Integer Programming
-
8/13/2019 Lecture 1 integer programming
16/23
ISyE/CS 720: Integer Programming
Motivation for IP
Mathematical Details
My friend in Math says IP is trivial Consider the following simple binary integer program:
max
n
i =1
c i y i
subject to
n
i =1a i y i b, y {0 , 1 }
n
Simple: enumerate all possible 0-1 vectors y, check if it satises theconstraint, keep the best
But how long will it take? Lets use an IBM BlueGene/L:
n Solutions to check Time3 8 010 1024 050 1 .1 10 15 2 sec110 1 .3 10 33 69 billion years
Thats four times the age of the universe!ISyE/CS 720: Integer Programming 16
ISyE/CS 720: Integer Programming
-
8/13/2019 Lecture 1 integer programming
17/23
ISyE/CS 720: Integer Programming
Motivation for IP
Mathematical Details
So how hard is integer programming? Could we be more clever and solve integer programmingproblems efficiently? (After all, we can solve linear programs...)
Solving general integer programs can be much more difficult
than solving linear programs.There is a whole theory (complexity) that supports this claimYou will learn some of the gory details
What if we ignore the integer restrictions?This is a relaxed version of the problem: the linearprogramming relaxationIt gives us an upper bound on the optimal valueRounding to a feasible integer solution may be difficult orimpossibleThe optimal solution to the LP relaxation can be arbitrarily far
away from the optimal solution to the MIP.So we have somethin to learn in this courseISyE/CS 720: Integer Programming 17 ISyE/CS 720: Integer Programming
-
8/13/2019 Lecture 1 integer programming
18/23
y g g g
Motivation for IP
Mathematical Details
Classes of integer programming problemsMixed-integer programming
Continuous and integer variables
Pure integer programming
All variables are integer: max{cx : Ax b, xZ n
+ }Binary integer programming
All variables are binary: max{cx : Ax b, x {0, 1}n }
Mixed binary programming (Mixed 0 1 programming) All integer variables are binary:max {cx + hy : Ax + Gy b, xR n+ , y {0, 1} p}
Linear programming No integer variables
ISyE/CS 720: Integer Programming 18
ISyE/CS 720: Integer Programming
-
8/13/2019 Lecture 1 integer programming
19/23
Motivation for IP
Mathematical Details
Closely related: Combinatorial Optimization A combinatorial optimization problem CP = ( N, F ) consistsof
A nite ground set N ,A set F 2N of feasible solutionsCosts c
j j N
The cost of S F is c(S ) = j S c j . The combinatorial optimization problem is then
min{c(S ) : S F}
Many COPs can be written as binary integer programsBinary decision variables: xi for i N S = {i N : x i = 1}Objective: iN ci x i
ISyE/CS 720: Integer Programming 19
ISyE/CS 720: Integer Programming
-
8/13/2019 Lecture 1 integer programming
20/23
Integer Programs
Simple Binary Models
Example Model: The Knapsack Problem
You are choosing what to bring in
your backpack on yourcross-country unicycling tour.You can carry at most b pounds.You have n possible items. Item iwould give benet of value ci and
and weight ai . What items to pack?
ISyE/CS 720: Integer Programming 20
ISyE/CS 720: Integer Programming
-
8/13/2019 Lecture 1 integer programming
21/23
Integer Programs
Simple Binary Models
Example Model: Machine assignment
Given m machines and n jobs, nd a least cost assignment of jobs to machines not exceeding the machine capacities Each job j requires aij units of machine is capacity bi Cost of assigning job j to machine i is cij
ISyE/CS 720: Integer Programming 21
ISyE/CS 720: Integer Programming
-
8/13/2019 Lecture 1 integer programming
22/23
Initial Examples
The usefulness of binary variablesSuppose for a set of elements to choose from, i I , we have thebinary variables:
yi = 1 if element i chosen0 otherwise.
How can we model these restrictions?
1. If we do choose i, must choose j2. We must either choose both i and j , or neither3. We can choose at most k items from a set S of items4. If we choose any one item in a set S , we must choose k
(k /S )5. If we choose all items in a set S , we must choose k (k /S )
ISyE/CS 720: Integer Programming 22
ISyE/CS 720: Integer Programming
-
8/13/2019 Lecture 1 integer programming
23/23
Initial Examples
Next Topic: Branch-and-bound
See Branch-and-bound slides.
ISyE/CS 720: Integer Programming 23
top related