ESI 6448 Integer Programming Fall, 2016 Department of Industrial

ESI 6448 Integer Programming
Fall, 2016
Department of Industrial and Management Systems Engineering
University of South Florida
Instructor:
Office:
Phone:
Email:
Class Meeting Times:
Office Hours:
Dr. Hadi Charkhgard
ENC 2509
813-974-2090
[email protected]
Tue and Thr 9:30 – 10:45 AM at ENB-228
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, Chvátal-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
Week
Date
Tuesday (9:30-10:45)
Topic
Thursday (9:30-10:45)
Topic
Date
Homework/
Research
1
23Aug
Overview; Introduction; Rounding
25Aug
Classical problems I: AP, KP, Set Partitioning/Covering/Packing,
TSP, Fixed Costs
2
30Aug
Classical problems II: Disjunctions, SOSI, Piecewise
Linear Costs, SOSII, UFL, ULS
01Sep
Logic; Polyhedron; Convex Hull;
Alternative Formulations (UFL)
3
06Sep
Extended Formulations: ULS,TSP; Big M
08Sep
C++ Programming Session: Integrating CPLEX and C++,
Generating and Solving a Model using Concert Technology
DeadlineResearch Topic
(08-Sep)
4
13Sep
Primal Bound; Greedy Heuristic; Local Search
Heuristic; Dual Bound; LP relaxation
15Sep
Dual Problem; Lagrangian Relaxation; Combinatorial
Relaxation
HW1- out
(15-Sep)
5
20Sep
Branch and Bound (I)
22Sep
C++ Programming Session: How to Implement a Branch-andBound Algorithm in C++
6
27Sep
Branch and Bound (II); Strong Branching;
Preprocessing
29Sep
Reduced cost fixing; Valid Inequalities
7
04Oct
Chvátal-Gomory Procedure for Pure IPs;
Valid Inequalities for MIPs (I)
06Oct
Valid inequalities for MIPs (II);
Valid Inequalities For Structured IPs/MIPs: Cover, lifting
Deadline- Hw1
(Oct-2)
8
11Oct
Separation, Cutting Plane Algorithms; Gomory's
Fractional Cutting Plane Algorithm for IPs
13Oct
Gomory's Fractional Cutting Plane Algorithm for MIPs;
Branch-and-Cut Algorithms
HW2- out
(13-Oct)
9
18Oct
Strong Valid Inequalities; Dimension of a
Polyhedron; Faces; Facets
20Oct
Facets and Convex Hull Proofs for IPs
10
25Oct
Easy IPs: Totally Unimodular
27Oct
Computational Complexity (I): Big O Notation,
Difficulty of an Instance, Difficulty of a Problem
11
01Nov
Computational Complexity (II): Decision problems,
Class NP, Class P
03Nov
Computational Complexity (III): Class Co-NP, Class NPComplete, Class NP-hard
Deadline- Hw2
(Oct-30)
12
08Nov
Lagrangian Relaxation, Lagrangian Dual, Kelley's
Cutting Plane Algorithm (I)
10Nov
Kelley's Cutting Plane Algorithm (II), Subgradient Method, Cost
Splitting Dual
HW3- out
(10-Nov)
4
Week
Date
Tuesday (9:30-10:45)
Topic
Thursday (9:30-10:45)
Topic
Column Generation
(But Possibly No-Class - INFORMS annual meeting- I will
discuss about alternatives in the class.)
Date
13
15Nov
14
22Nov
Presentation - Research Projects
15
29Nov
Presentations - Research Projects (Last Class)
No Class- INFORMS Annual Meeting
17-Nov
24-Nov
Homework
DeadlineProjects:
(Nov-20)
No Class- Thanksgiving Holiday
Deadline-Hw3
(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 highlyranked 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 online 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