INEN 420 Spring 2005: Operations Research I Instructor: Dr. Lewis Ntaimo Date: March 10, 2005. Team Semester Project PART A (100 points) The objective of the course is to give you (the student) experience in modeling, solving and analyzing problems using linear programming. As you have seen, I put strong emphasis on theory, applications, and computer usage. By the end of the course I expect you to have developed the skills to consider real-world problems and determine whether or not linear programming is an appropriate modeling framework; develop linear programming models that consider the key elements of the real world problem; solve the models for their optimal solutions; interpret the models' solutions and infer solutions to the real-world problems. You will model and solve three LP problems: Problem 1: Multi-Period Inventory Problem Textbook page 122, Problem 54. Problem 2: Production Process Model Textbook page 124, Problem 62. Problem 3: As a team, consider an interesting real-life problem where linear programming can be applied. Derive your assumptions and develop an LP formulation for your problem and then generate data (A, b, c) for the problem. You may use any available data from the literature, web, etc (need references), or you may randomly generate representative data. I need a one-page semester project proposal by March 31 (for approval). Minimum Requirements (90 points): Formulate the three problems and use one of the professional optimization software (CPLEX, LINDO, LINGO, or EXCEL Solver) to solve your problem and perform sensitivity analysis. Report your optimal solutions and sensitivity analysis. For Problem 3, your LP problem formulation should have at least 20 decision variables and at least 20 constraints. Extra points will be given for more realistic formulations and thorough interpretation of the model’s solution(s) and inference of solution(s) to the realworld problem. Project Report: The group must turn in a detailed report with a minimum of 10 pages (Font: 12pt Times New Roman or Arial; line spacing: 1.5). You must choose a “catchy” title for your project based on Problem 3. A sample of the first two pages of your report is given on the next page. The report must have the first page signed by all the team members. The report should cover at the least the material given on the sample 1 CONTENT page. Finally, email me a critique of your group member and their participation in the project. Optional – Extra Credit: This may substitute for your lowest score on an individual or group quiz PART B (50 points - Simplex Algorithm Implementation) Objective: Your objective is to implement a function in Matlab to solve LPs in standard form using the simplex method. You will use this function to solve a given number of LP problems in Part B of the project. You may start with a “naïve” implementation of the simplex algorithm (see posting) as described in class and later modify it into the Revised Simplex algorithm (see class textbook) to get extra points. (Implementations in C/C++ and Java are acceptable but not recommended). Minimum Requirements (90 points): The minimum requirement is to implement a Matlab function to solve an LP in standard form using the “naïve” implementation of the simplex algorithm. The function prototype should be the following: [os, ds, ov, info, cpu] = simplex(A, b, c) where os is the optimal solution, ov is the optimal value, ds is the corresponding dual solution, info is an integer (-1 for infeasible, 0 for optimal, and 1 for unbounded), and cpu is the CPU time for the function. The matrix A is the LP’s constraint matrix, b is an array of the RHS and c is an array of the objective function coefficients. The function should also use Bland’s rule to prevent cycling. The tolerance for the function should be 1.e-9. Note: A, b, c are the LP data: Max cTx s.t. Ax = b x >= 0 You can create your own test instances to test/debug your code or you may use the example(s) given in class. The codes should be written in .m files. You may look at Help and the Matlab Primer on some useful MATLAB functions like "\", size() and "./". Also you may consult your textbook for the revised simplex algorithm. Deliverables: The team must email me the Matlab by May 5. Include in your project research report your solutions to the LPs in Part A using your implemented code. WARNING: There is a lot of Matlab,C/C++ and Java code of the simplex method on the worldwide web. Please do not fall into the temptation of copying someone else’s code (it is plagiarism). Remember you are bound by the code of honor: “On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work.” 2 INEN 420 TEAM SEMESTER PROJECT REPORT Instructor: Dr. Lewis Ntaimo Date: March 10, 2005. Due: May 5, 2005. You cannot confer with any student who is not part of your group on this project. Please document all sources of information that you have included in your project report. Team Name:_______________________________ Project Title:__________________________________________________ __________________________________________________ __________________________________________________ Members: _________________________________ _________________________________ _________________________________ “On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work.” __________________________ __________________________ ___________________________ Signature of Each Group Member Note: Signatures are required in order for your project to be considered for grading. 3 CONTENTS 1.0 Executive Summary…………………………………………………………page # Give a summary of your major findings and conclusions. 2.0 Problem Description…………………………………………………………page # Give a description of the problem, assumptions, problem data, decision variables, objective function and then state the LP formulation. 2.1 Problem 1 (State the name of the problem) ……………………………page # 2.2 Problem 2 (State the name of the problem) ……………………………page # 2.3 Problem 3 (State the name of the problem) ……………………………page # 3.0 Computational Results………………………………………………………page # For each problem state the optimal solution obtained by your code as well as the running times. Then state the optimal solution obtained by your professional optimization software of choice (CPLEX, LINDO, etc), sensitivity report, and give a detailed interpretation of the results. 3.1 Problem 1 (State the name of the problem) ……………………………page # 3.2 Problem 2 (State the name of the problem) ……………………………page # 3.3 Problem 3 (State the name of the problem) ……………………………page # 4.0 Simplex Algorithm Implementation (Optional)………………………….…page # State the detailed steps of your algorithm and computational results. 5.0 Conclusions and Recommendations ………………………………………page # Give a summary/conclusion of your findings and recommendations. 6.0 References ………………………………………page # You MUST references all sources of information that is not your own! Each report must use the class textbook reference for Problems 1 and 2: Winston, W.L. and M. Venkataramanan, Introduction to Mathematical Programming, 4th Edition, Duxbury Press, Belmont, CA, 2003. 7.0 Appendix – Simplex Algorithm Code ………………………………………page # 4