You are on page 1of 12

ESI 6448 Integer Programming

Fall, 2016

Department of Industrial and Management Systems Engineering

University of South Florida


Instructor: Dr. Hadi Charkhgard
Office: ENC 2509
Phone: 813-974-2090
Email: hcharkhgard@usf.edu
Class Meeting Times: Tue and Thr 9:30 10:45 AM at ENB-228
Office Hours: Tue and Thr 4:15-5:15 PM

All contents (and even timeline) in this document may change during the
semester.

Course Description:

Integer Programming problems are a subset of mathematical optimization


problems in which some or all variables can only take integer values. The
significance of this field of study is highlighted by the fact that many real-world
problems can be formulated and solved as an Integer Program. The focus of this
course will be on Integer Linear Programs. The course starts by introducing
modeling techniques, and showing that why a wide variety of problems can be
formulated as an Integer Program. Next, the connection between Linear
Programming and Integer Programming will be explored. The major part of the
course is designated for covering theoretical and algorithmic developments on
solving (Mixed) Integer Programs.

Textbooks:

Required Textbook:

L.A Wolsey (1998) , Integer Programming

Suggested References:

1
G.L. Nemhauser & L.A Wolsey (1988), Integer and Combinatorial
Optimization.
Wayne L. Winston (2004), Operations Research: Applications and
Algorithms
Vasek Chvatal (1983), Linear Programming.
D. Bertsimas and R. Weismantel (2005), Optimization over
Integers .
Schrijver (1986) , Theory of Linear and Integer Programming.

Prerequisites:

Good knowledge of linear programming and linear algebra


Good understanding of mathematical concepts : vectors , matrices, sets,
functions,
(Optional) Be willing to learn C++ and CPLEX. I think learning these tools
are EXTREMELY useful for both your research, and your future career. I
do not expect you to become a professional user of these tools, but I
want you to take the first few steps toward this goal in this course.
There will be questions about these tools in your homework
assignments, but they will only have BONUS marks. So, take advantage
of this opportunity and do your best to learn more. I will briefly teach
these tools in the class but in UBUNTU. However, you can use any
operating system since the basics are the same. I suggest you do the
following steps by WEEK THREE, and start to learn a bit about C++ by
that time:

(Step 1) Install UBUNTU on your computer (for free).


(Step 2) Install a C++ compiler on your UBUNTU (for free).
(Step 3) Install Netbeans IDE on your UBUNTU (for free).
(Step 4) Install IBM ILOG CPLEX Optimization Studio (v 12.6) on
your UBUNTU (for free), but please use the following directory for
installation:
opt/ibm/ilog/

*If you have any problem about installing these software, please feel
free to ask for help from me.

2
Course Topics:

Basics of Integer Programming, Modelling and Formulations


Primal Heuristics, Relaxations and Duality
Branch-and-Bound, Preprocessing, Probing, and Reduced Cost
Fixing
Valid Inequalities, Chvtal-Gomory Procedure
Cutting-Plane Algorithms, Separation problem , Gomory's
Fractional Cutting Plane Algorithm, Branch-and-Cut Algorithms
Polyhedral Theory, Facets and Convex Hull Proofs
Totally Unimodular
Computational Complexity
Largrangian Relaxations and Duality
(Column Generation*)
*Will be covered only if we find enough time.
Course objectives:

At the end of this class, it is expected that every single student to be able

To develop mixed integer programming formulations for practical problems


arising in transportation, scheduling, production planning,
telecommunication systems and so on.
To distinguish between good and bad formulations.
To understand and apply computational complexity, and distinguish
between easy and hard problems.
To improve mixed integer programming formulations by detecting valid
inequalities.
To prove whether a known family of valid inequalities is facet-defining.
To understand the idea of a separation problem, and use it to generate
valid inequalities wherever appropriate.
To compute good dual and primal bounds for a mixed integer program.
To implement mixed integer programming formulations and use
commercial solvers to solve them.
To develop and implement custom-built algorithms for solving mixed
integer programs.
3
Tuesday (9:30-10:45) Thursday (9:30-10:45) Homework/
Week
Date Topic Date Topic Research
23- 25- Classical problems I: AP, KP, Set Partitioning/Covering/Packing,
1 Overview; Introduction; Rounding
Aug Aug TSP, Fixed Costs

30- Classical problems II: Disjunctions, SOSI, Piecewise 01- Logic; Polyhedron; Convex Hull;
2
Aug Linear Costs, SOSII, UFL, ULS Sep Alternative Formulations (UFL)
Deadline-
06- 08- C++ Programming Session: Integrating CPLEX and C++,
3 Extended Formulations: ULS,TSP; Big M Research Topic
Sep Sep Generating and Solving a Model using Concert Technology
(08-Sep)
13- Primal Bound; Greedy Heuristic; Local Search 15- Dual Problem; Lagrangian Relaxation; Combinatorial HW1- out
4
Sep Heuristic; Dual Bound; LP relaxation Sep Relaxation (15-Sep)

20- 22- C++ Programming Session: How to Implement a Branch-and-


5 Branch and Bound (I)
Sep Sep Bound Algorithm in C++

27- Branch and Bound (II); Strong Branching; 29-


6 Reduced cost fixing; Valid Inequalities
Sep Preprocessing Sep

04- Chvtal-Gomory Procedure for Pure IPs; 06- Valid inequalities for MIPs (II); Deadline- Hw1
7
Oct Valid Inequalities for MIPs (I) Oct Valid Inequalities For Structured IPs/MIPs: Cover, lifting (Oct-2)

11- Separation, Cutting Plane Algorithms; Gomory's 13- Gomory's Fractional Cutting Plane Algorithm for MIPs; HW2- out
8
Oct Fractional Cutting Plane Algorithm for IPs Oct Branch-and-Cut Algorithms (13-Oct)

18- Strong Valid Inequalities; Dimension of a 20-


9 Facets and Convex Hull Proofs for IPs
Oct Polyhedron; Faces; Facets Oct

25- 27- Computational Complexity (I): Big O Notation,


10 Easy IPs: Totally Unimodular
Oct Oct Difficulty of an Instance, Difficulty of a Problem

01- Computational Complexity (II): Decision problems, 03- Computational Complexity (III): Class Co-NP, Class NP- Deadline- Hw2
11
Nov Class NP, Class P Nov Complete, Class NP-hard (Oct-30)

08- Lagrangian Relaxation, Lagrangian Dual, Kelley's 10- Kelley's Cutting Plane Algorithm (II), Subgradient Method, Cost HW3- out
12
Nov Cutting Plane Algorithm (I) Nov Splitting Dual (10-Nov)

4
Tuesday (9:30-10:45) Thursday (9:30-10:45)
Week Homework
Date Topic Date Topic
Column Generation
15-
13 No Class- INFORMS Annual Meeting 17-Nov (But Possibly No-Class - INFORMS annual meeting- I will
Nov
discuss about alternatives in the class.)
Deadline-
22-
14 Presentation - Research Projects 24-Nov No Class- Thanksgiving Holiday Projects:
Nov
(Nov-20)
29- Deadline-Hw3
15 Presentations - Research Projects (Last Class)
Nov (Nov-27)

You will have an access to your homework assignments from around 12:00 noon on the specified dates.

The deadlines are STRICT, and late submissions will NOT be accepted. The LAST time that you can submit
the requested materials is at 11:00 p.m on the specified dates. All submissions MUST be done
electronically by E-MAILING. Also, you should expect to receive a CONFIRMATION email from me within 24
hours of sending your email. So, it is your responsibility to follow up after that time.

I would like to label all the emails for this course to be able to efficiently respond them. Consequently, the
title of any email sent to me MUST have the following format:

IP 6448 Fall 2016: <The Title>

Instead of `<The Title> you should write whatever describes your email best. For example:

IP 6448 Fall 2016: Appointment request

5
Office hours, homework, exams and grades:

Help: Please feel free to ask for help during the class or office hours.
You can also send an email to make an appointment. Please note again
that the format of the title of your emails should be as follows:

IP 6448 Fall 2016: <The Title>

Final Grade: The final grade follows the below rules:

. = ; . = ; . = +
. = ; . = ; . = +
. = ; . = ; . = +
. = ; . = ; = +

If the weighted sum of your marks is close to some bound then


extra credits will be considered in the final grade.

Class participation (5%), Homework (30%), the final exam (25%),


the final project (40%).

Any complains about your marks related to the final project and
your homework assignments must be received by me within one
week after you receive your marks. For example, if I tell you your
mark about homework 1 on date X, and you want to talk to me
about it, you should do it by X+7 (days).

Class participation: You will find this course very practical and enjoyable
if you fully understand the underlying (deep) theoretical concepts of the
course. So, you are highly encouraged to NOT miss any session. I believe
that to get more out of this course, you should ASK questions as many
as you can in the class, PARTICIPATE in discussions, and BRAINSTORM
your ideas in the class.
6
Homework: There will be THREE regular homework assignments which
should be submitted by the specified deadline in the table. The
assignments are usually challenging. You should write up each
homework YOURSELF, but that does NOT mean that you cannot obtain
help from the others. The assignment should be e-mailed to me as a PDF
file. Please choose the name of your PDF file as follows:

<Student Number>-HW*.pdf

Please replace `<Student Number> with your student number, and `*


with the homework number.

Also, if you would like to scan your document (instead of typing it),
please make sure that the generated PDF file has a high quality before
sending it to me.

Final EXAM: There will be ONE final exam.

Research Projects: A significant proportion of your final grade is based


on a research project. You are highly encouraged to work in groups of
two members. The topic of your research project must be finalized and
confirmed (by me) by the deadline given in the table. So, one of the
members of your group should send an E-MAIL to me and cc the other
member (if there is any). In your email, you should introduce your group
members (please send your student numbers as well), the topic that you
would like to study, and also provide an abstract about the topic. In the
abstract, you should describe your (optimization) problem briefly, and
say why you think the problem is interesting, and what potential
questions do you want to answer for this problem. I will try to reply to
all emails within 24 hours.

In this project , you are expected to

Conduct a comprehensive literature review on the topic.


Start to ask new questions about the topic, and come up with some
new (theoretical or computational) results.

7
(Possibly) present your work in the class in 20 minutes*.
(Hopefully) write a journal publication**.

* All groups should prepare PowerPoint slides for their projects, and be
ready for an oral presentation. However, due to the time limit, I may
choose only some of the research projects for presenting. Note that if I
do not choose a research project for an oral presentation then it does
NOT mean that its quality was not good. It just means that unfortunately
we had no time for another presentation. The goal of your presentation
should be TEACHING your topic (and your obtained results) in the
SIMPLEST possible way to the audience with no background about your
topic (within the time limit). So, try to have simple examples, helpful
graphs/figures, and etc in your presentation, and AVOID unnecessary
technical materials. You should make sure that all students in the class
will fully understand most (if not all) materials.

** It is understandable that preparing a paper for publishing in highly-


ranked journals may be hard in just a few months. However, this is
definitely possible if you want it and work hard for that. So, I expect that
all groups AT LEAST do their best to achieve this goal. Your effort is what
matters most from my point of view. So, you are highly encouraged to
take this step seriously because it can have remarkable impacts on not
only understanding the materials of this course but also your future
career. Moreover, it helps me to have a better evaluation of your
research skills for future collaborations. Note that by publishing more
good papers, you make your CV stronger. So, that is definitely
something that can distinguish you from the others when applying for a
job. In fact those of you who would like to get research or academic
positions (in the future) should take this opportunity even more
seriously. I will be more than happy to have regular (possibly weekly)
meetings with motivated and hard-working groups about their research
projects for this course. If you are interested in having regular meetings
just simply send an email to me.
8
The topic of your research project is your own choice. You may want to
work on a general topic or study a specific problem. The latter would be
probably better and easier, and so it will be recommended. Try to AVOID
choosing very challenging and hard problems. The goal of your research
project is LEARNING, and I do not expect you to solve such a problem at
this stage. Try to choose small problems with nice and clear structure
that you can understand it well. Then start to ask new questions about it
that you would like to answer them during your research.

The following list is just some suggestions for the problem that you may
choose:

A variant of facility location problems


A variant of sequencing or scheduling problems
A variant of network flow problems
A variant of vehicle routing problems
A variant of transportation problems or generalized
assignment problems

The following is just a list of some interesting questions that you may
want to find an answer for one (or some) of them for your problem (if
they have not already been answered in the literature):

Can I develop a new (and better) mixed integer programming


formulation for my problem?
Can I develop a reasonably fast preprocessing technique that can
reduce the size of my problem?
What is the best way of implementing the ``Restrict-and-Relax
Search for my problem? How good would be the solutions
produced by this approach?
Can I come up with a new effective heuristic approach for my
problem?

9
How can I customize one of the existing Primal Heuristics such as
Feasibility Pumping, Relaxation Induced Neighborhood Search, Local
Branching for my specific problem? Can I prove anything about the
quality of the obtained solutions?
Can I develop a Meta-heuristic algorithm for my problem so that it
can produce high-quality solutions? Does it perform better than the
other existing approaches?
Can I find a new family of valid inequalities for my problem? Can I
prove that it is facet defining?
How can I find better dual bounds for my problem?
If I want to solve my problem using a branch-and-bound algorithm
which strategy is better for variable selection for branching:
most infeasible branching, strong branching, pseudocost branching,
hybrid branching, reliability branching, backdoor branching,
information-based branching, and ? Can I improve any of them
further?
If I want to solve my problem using a branch-and-bound algorithm
which strategy is better for node selection: static, estimated-based,
backtracking, and ? Can I improve any of them further?

You should E-MAIL your final projects by the specified deadline. Your
e-mail should contains two files:

(1) Your PowerPoint slides.


(2) A document with a comprehensive literature review, and
your new results.

Please choose the name of your files as follows:

<Student Number1>-<Student Number2>-Project.pdf

<Student Number1>-<Student Number2>-Slides.pptx

Please replace `<Student Number1> and `<Student Number2>


with the student numbers of your group members. If your group has

10
only one member simply replace <Student Number1>-<Student
Number2> with your student number.

General:

I highly recommend to all industrial engineering PhD students who


still use WORD for preparing their text files to switch to LATEX TODAY.
LATEX is FREE, easy to use, nicer, more professional, and (more
importantly) it is specifically designed for users that need to work with
mathematics a lot. There are two steps to install LATEX:

(1) Step 1 (Install a Tex distribution for instance TeXLive):


http://www.tug.org/texlive/acquire-netinstall.html

(2) Step 2 (Install an editor for instance TeXstudio):

http://texstudio.sourceforge.net/

A minimal working example can be found here:

http://www.electronics.oulu.fi/latex/examples/example_1/

It is very important that you frequently check your mails, massages and
calendars on CANVAS system. Important announcements, and dates will
be posted there.
If USF suspends normal operations due to an EMERGENCY event, it is
your responsibility to monitor your emails, CANVAS, all related websites
(main USF, college, department and etc), and in general any other
related tools for important information. Also, during this time, the
delivery of instruction may be done differently for instance through on-
line tools (SKYPE, ) , or even we may have to reschedule the class.

Academic Integrity

This class follows ``USF System Regulation 3.027: Academic Integrity of


Students. Academic dishonesty is a very serious matter, and will not be

11
tolerated. Plagiarism, cheating, or any form of academic dishonesty will
have serious consequences, and will be reported. The minimum penalty
would be a Zero grade in the assessment instrument, and also an F
in the class.

You must respect to all intellectual property rights of the others. If you
want to use materials from the Internet, libraries, and etc, you must
make sure that you have the right permission (or license) from the
owner(s) for the particular type of the work that you want to do.

Mandatory Reporter:

This class follows ``USF System Policy 0.004: an environment free from sex
discrimination, including sexual harassment and sexual violence. The USF
Center for Victim Advocacy and Violence Prevention is a confidential
resource where you can talk about incidents of sexual harassment and
gender-based crimes including sexual assault, stalking, and
domestic/relationship violence. However, based on the laws, if you
disclose any of these situations in class, in papers, or to me personally, I
MUST report it.

Teaching Improvement:

I would like to improve myself and my teaching style as much as


possible. Therefore, I highly appreciate all your comments and feedback,
regarding my teaching style or anything related to this class. You can
freely tell me what you think about the class in any way that you feel is
the best: face-to-face conversations, emails, notes, and etc. Your
comments and suggestions are very valuable for me, and will definitely
JUST have positive impacts. In addition to the formal survey that will be
carried by the department (at the end of the semester), some informal
teaching surveys will also be conducted by me to hopefully help me to
improve my teaching skills during the semester.

12

You might also like