Lecture 1 integer programming

download Lecture 1 integer programming

of 23

Transcript of Lecture 1 integer programming

  • 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