Sie sind auf Seite 1von 23

ISyE/CS 720: Integer Programming

ISyE/CS 720: Integer Programming


Jim Luedtke
Department of Industrial and Systems Engineering University of Wisconsin-Madison

January 21, 2014

ISyE/CS 720: Integer Programming

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

ISyE/CS 720: Integer Programming Couse Details Where and When

Class Overview
Oce Hours (subject to change):
Tuesday: 11AM12PM, Friday: 9-10AM By Appointment

Textbook: Integer Programming, Laurence Wolsey, 1998 Course home page on Piazza:
https://piazza.com/wisc/spring2014/isyecs720/home Lecture slides, homework assignments, solutions Use Q&A on this site to post questions about the course

Learn@UW course web page:


https://learnuw.wisc.edu Used 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

ISyE/CS 720: Integer Programming Couse Details Where and When

Goal of the course


Primary course objective Give students a solid understanding of theory of integer programming and methods to solve IP problems What this course is NOT (primarily) about: We wont spend much time on how to model problems as an IP (see ISyE/CS 635)
We study what makes a model good We will see some advanced modeling techniques

We wont spend much time in lecture on software


But you will be required to use some Overview in lecture, some details in oce hour sessions, but youll 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

ISyE/CS 720: Integer Programming Couse Details Where and When

Expectations
You are expected to... Learn I am expected to... Teach lectures Be at my oce hours Guide your learning process (assignments) Give you feedback on how you are doing in a timely fashion Attend lectures and participate (ask questions!) Do the homework Know and follow academic conduct guidelines Be polite, if possible.
Sleeping Cell Phones Leaving in the middle of lecture
5

ISyE/CS 720: Integer Programming

ISyE/CS 720: Integer Programming Couse Details Where and When

Assignments and grading


Components 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:05 p.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

ISyE/CS 720: Integer Programming Couse Details Where and When

Warning on course diculty

This is a Ph.D.-level course Much of the material in this course is dicult Requires very serious math Proofs will be done by me and by you (Gasp!!) Prerequisite Strong linear programming background is essential and will be assumed

ISyE/CS 720: Integer Programming

ISyE/CS 720: Integer Programming Couse Details Where and When

Questions about the course?

ISyE/CS 720: Integer Programming

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 in summer 2001. Not so interesting fact: Cannot hear out of left ear
ISyE/CS 720: Integer Programming 9

ISyE/CS 720: Integer Programming Couse Details Getting to Know You...

About you...

ISyE/CS 720: Integer Programming

10

ISyE/CS 720: Integer Programming Motivation for IP Denitions

Programming? I Hate Programming!


Question What does Programming mean in Mathematical Programming, Linear Programming, Stochastic Programming, Integer Programming? Answer Planning Mathematical Programming (Optimization) is about decision making. Integer Programming is about decision making with integers. More precisely, decision making in which some of the decisions can take only certain integer values.
ISyE/CS 720: Integer Programming 11

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

ISyE/CS 720: Integer Programming Motivation for IP Denitions

Why is programming with integers important?

Slam dunk answer We 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 Motivation for IP Denitions

Integer programming is everywhere!


Design a supply chain network: decide where to open facilities and which customers they should serve Portfolio optimization: limit number of stocks held Stochastic optimization with risk: ensure percent of outcomes which are bad is small LTL vehicle routing: which loads should be combined on trucks and in what sequence should the loads be delivered? Sports scheduling: assign games to days Chemical processing network design: which process types should be used and how should they be connected? Television scheduling
ISyE/CS 720: Integer Programming 14

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 y Ax + Gy b x0 y Zp + Instance: A is an m n matrix G is an m p matrix b Rm c Rn h Rp
ISyE/CS 720: Integer Programming 15

Assumption All data is rational. Important, but not restrictive.

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:
n

max
i=1 n

ci yi ai yi b, y {0, 1}n
i=1

subject to

Simple: enumerate all possible 0-1 vectors y , check if it satises the constraint, keep the best But how long will it take? Lets use an IBM BlueGene/L: n 3 10 50 110 Solutions to check 8 1024 1.1 1015 1.3 1033 Time 0 0 2 sec 69 billion years

Thats four times the age of the universe!


ISyE/CS 720: Integer Programming 16

ISyE/CS 720: Integer Programming Motivation for IP Mathematical Details

So how hard is integer programming?


Could we be more clever and solve integer programming problems eciently? (After all, we can solve linear programs...) Solving general integer programs can be much more dicult than solving linear programs.
There is a whole theory (complexity) that supports this claim You will learn some of the gory details

What if we ignore the integer restrictions?


This is a relaxed version of the problem: the linear programming relaxation It gives us an upper bound on the optimal value Rounding to a feasible integer solution may be dicult or impossible The optimal solution to the LP relaxation can be arbitrarily far away from the optimal solution to the MIP.
ISyE/CS 720: Integer Programming

So we have something to learn in this course

17

ISyE/CS 720: Integer Programming Motivation for IP Mathematical Details

Classes of integer programming problems


Mixed-integer programming Continuous and integer variables Pure integer programming All variables are integer: max{cx : Ax b, x Zn +} 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: p max{cx + hy : Ax + Gy b, x Rn + , y {0, 1} } Linear programming No integer variables
ISyE/CS 720: Integer Programming 18

ISyE/CS 720: Integer Programming Motivation for IP Mathematical Details

Closely related: Combinatorial Optimization


A combinatorial optimization problem CP = (N, F ) consists of
A nite ground set N , A set F 2N of feasible solutions Costs cj j N

The cost of S F is c(S ) = j S cj . The combinatorial optimization problem is then min{c(S ) : S F} Many COPs can be written as binary integer programs
Binary decision variables: xi for i N S = {i N : xi = 1} Objective: i N ci x i
ISyE/CS 720: Integer Programming 19

ISyE/CS 720: Integer Programming Integer Programs Simple Binary Models

Example Model: The Knapsack Problem

You are choosing what to bring in your backpack on your cross-country unicycling tour. You can carry at most b pounds. You have n possible items. Item i would give benet of value ci and and weight ai . What items to pack?

ISyE/CS 720: Integer Programming

20

ISyE/CS 720: Integer Programming 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 Initial Examples

The usefulness of binary variables


Suppose for a set of elements to choose from, i I , we have the binary variables: yi = 1 if element i chosen 0 otherwise.

How can we model these restrictions? 1. If we do choose i, must choose j 2. We must either choose both i and j , or neither 3. We can choose at most k items from a set S of items 4. 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 Initial Examples

Next Topic: Branch-and-bound

See Branch-and-bound slides.

ISyE/CS 720: Integer Programming

23

Das könnte Ihnen auch gefallen