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
© Copyright 2026 Paperzz