Friday, November 20, 2009

Lecture 4: Project Management Notes and files





I've uploaded notes for lecture 4 along with a polished up version of the GMPL model for doing the Critical Path Method (CPM) calculations.  Hopefully the notation is more consistent throughout the notes, and translates directly to the GMPL file.
We're becoming somewhat more sophisticated users of GMPL, so you'll note that the model and data files are now separate.  For the assignment you should be able to create a new data file describing the problem and obtain needed results with few (if any) changes to the model.
Project management is an industry of its own, and you'll find a wide variety of software tools to support project management.  Software ranges from simple charting all the way to tools for planning, scheduling, and controlling mission-critical corporate-scale endeavors.  If you're interested in this topic, you might try to try your hand at GanntProject, which is a cross-platform, GPL licensed tool for small scale desktop project management.  One option is to run it right from the web, so you can try it without having to fiddle with software installations.

Wednesday, November 18, 2009

Lecture 3 Notes, Assignment, and Examples

I've posted the notes for Lecture 3 and the GMPL file for the Network/Transportation example we developed in class.  I polished up the class example with comments, attributions, cleaned up variable names and so forth so that it is a good example of GMPL programming practice. Be sure to understand and master the basic techniques demonstrated in this example.

Assignment 2 is due Friday, and Assignment 3 -- the "Custom Vans, Inc." case study will be due next Tuesday.  Assignments 4 and 5 can wait until after the Thanksgiving holiday. We're moving pretty rapidly, so we're trying to maintain an appropriate balance between workload and staying current with lecture topics.

Finally, I've added some additional GMPL examples for Lecture 2.  These are mainly demonstrations of techniques in GMPL including some rather exotic computations one can do with sets.  You may find these useful if you find yourself trying to do complicated manipulations with sets.

For what it's worth, I'm finding the Greenhouse to be a good room for teaching.  Unless there are objections, let's try to meet there for upcoming class sessions.

Tuesday, November 17, 2009

Using GLPK/GMPL with GUSEK ...

In class I demonstrated a minimalistic, bare-bones installation of GLPK. The tools I used were a text editor (such as notepad on Windows machine, or textedit on a Mac) and the GLPK command glpsol.  These simple (and free) tools can handle a wide variety of optimization problems, but are definitely 'old school'. The good news is that integrated user interfaces are available which you may find more convenient for general development work in GMPL.

For Windows you have several choices, including the recently developed GUSEK.  My first reaction is that GUSEK appears to be a very useful tool for the development of GMPL models as used in this course. It's easy to download and install.  Go to http://sourceforge.net/projects/gusek/ and push the download button. Unzip the download file to any folder.  In that folder open the gusek.exe file and you should be good to go. Type your GMPL model in the first tab, save the file, then run the file using the 'Tools>Go' menu item.  If you select the 'Tools>Generate Output File on Go' option, then the optimization results are shown in a separate tab which can also be saved and printed.

For the Mac  I was able to get GUSEK working under the WINE system that allows one to use Windows software in a Mac OS X or Linux environment.  Here's a two step process that should you get you up and running (i.e., it worked for me):
  1. Download and install WINE.  The easiest way is to get a precompiled version from the web site http://winebottler.kronenberg.org/ (The download button is the little text item with the downward pointing arrow labeled 'download').  The file should download and unzip automatically then open a window for installation.  Drag the 'Wine' icon to the application folder (you may need to provide your Mac password). 
  2. Next download GUSEK from  http://sourceforge.net/projects/gusek/.  It should download and unzip automatically.  Put the gusek folder somewhere convenient (on your desktop, for example).  Go to that folder and double-click gusek.exe.  It's a little slow the first time as WINE configures itself to run the file. There may also be several windows that open up as WINE goes through the startup - this is part of it's configuration process for the first time you use GUSEK. A little wine glass icon will appear in the upper left status bar of your Mac - that's your interface to the WINE software.
  3. At this point you're in business.  You can either open an existing GMPL model or create one from scratch.  Use the Tools menu to run and display the results of the optimization.
Hopefully these instructions are enough to get both PC and Mac users going with GMPL and GUSEK. Let me know if there are problems.  Feel free to add comments to this post if you have any advice or experiences to share regarding the installation of GUSEK.

Sunday, November 15, 2009

Diet Problems

As we will discuss in Lecture 2, diet problems have a long history in the development and teaching of linear programming. Diet problems are examples of a broad class of 'blending problems' which find an optimal mixture of raw materials subject to linear constraints. For those interested, there have been some recent reviews of the history of diet problems.
  • Susan Garner Garille and Saul J. Gass. "Stigler's Diet Problem Revisited"  Operations Research, Vol. 49, No. 1 (Jan. - Feb. 2001), pp. 1-13.  http://www.jstor.org/stable/222950

Regarding Assignment 1 ....

I've received a few questions regarding the first assignment and thought I should share my comments with the class.
  1. The Merton Truck case study illustrates the use of linear programming in support of business decisions. The vernacular may be unfamiliar to those without business experience. In particular, the term 'contribution' refers to difference between selling price and the 'variable cost' necessary to produce an item. It's a measure of how much the production and sale of an additional item contributes to overall profit.  To compute total profit, sum contributions from all products sold then subtract Fixed Costs/Overhead. 
  2. The syllabus asks you to do your calculations with a linear programming tool of your choice.  In class I suggested doing this in both Excel and GMPL, which would provide an excellent introduction to those tools.  I meant that only as a suggestion, and apologize if there was any confusion. What's required is a solution using one tool of your choice.
  3. I encourage you to submit your work electronically via Concourse.  PDF files work well for me, but use formats that make sense to you.  If you submit multiple files, label one of them "README" so that I know where to start. 

Thursday, November 5, 2009

Lecture 1

I've posted the presentation notes and a folder of examples that I will use in the first lecture. The notes are rather long (over 100 pages) in order to include supplemental material on the theory and implementation of linear programming.

To use the examples you'll to download and install Matlab and it's toolboxes from the Notre Dame software download site, and download an appropriate version of GLPK.   Use the links in the navigation  bar to locate these sites.