CS635: Tools and Environments for Optimization

Spring 2006



Lecture: 11:00-11:50 MWF, 1221 CS&S
Mailing List: compsci635-1-s06@lists.wisc.edu (here's the archive)
Course URL: http://www.cs.wisc.edu/~swright/cs635.html

Instructor: Stephen Wright

Office: 4379 CS&S
Phone: 262-4838
Office Hours: Wednesday 2:30-3:30, Thursday 4:00-5:00

Teaching Assistant: Kelly Sorensen

Office Hours: Tuesday 12:00-1:00, Friday morning

Ms Sorensen will conduct office hours in the weeks in which she is grading the assignments, which will be most of the weeks early in the semester.

Teaching Assistant: Arinbjorn Olafsson

Office Hours: TBA

Mr Olafsson will conduct office hours in the weeks in which he is grading the assignments, which will be three weeks toward thd end of semester.

General Course Information

Many companies and research programs are integrating optimization technology into their day-to-day operations. Manipulating models and optimization software and applying general operations research methodology in various contexts is becoming an increasingly sought-after skill.

This course is designed to teach students about "optimization in practice". The course involves learning about, using, and analysing the results of state-of-the-art optimization software. The student will learn how to design good models for realistic applications in engineering and the sciences. In a final class project, each student will develop a "commercial strength" application of optimization technology.


Course Outline

  • Introduction: Development cycle, interacting with clients, presenting results.
  • Fundamentals: Basic model classes, linking them together and tricks to help solve them.
  • Modeling Language Concepts: Using GAMS to build practical models.
  • Data Management: Obtaining and manipulating data.
  • Validation: Analysis and visualizion of results.
  • Tools: Matlab, Spreadsheets, IDE, Embedded optimization
  • Other Environments: Callable libraries, automatic differentiation, web-based optimization.


  • Approximately 12 Homework Assigments, approximately one per week, 75% of grade.
    • Most assignments will involve programming in GAMS. For further details on setting up your GAMS environment, see below.
    • Electronic submission required by 5:00pm on due date.
    • All homeworks will be handed in using the CSL handin program (details here)
    • Grades will be available through the Learn@UW system. Use the "Grades" tab at the top of the page.
    • You may discuss the assignments with your classmates. However, you may not share any code, or write code together. Discussion should only involve verbal communication. The written parts of the assignments need to be done entirely separately. Submitting someone else's work as your own is academic misconduct. Such cheating and plagiarism will be dealt with in accordance with University procedures (see the Academic Conduct Guide for Students)
  • Class Project, 25% of grade
    • Due May 11, 2006, at 5:00pm
    • By April 7, 2006, write a one-page outline of project and get it approved by the instructor.
    • By April 21, 2006, answer any questions of the instructor about your outline.
    • Implement an optimization model and describe the results in a form reasonable for the application.
    • For each project I need a hard copy of a (short) project report. The report should make clear what you have done, and detail your contribution to the question at hand. If you ran into significant problems with certain aspects of the project, you should detail what the changes you made were, and why they were necessary/time consuming.
    • Many projects will result in models or extra (electronic) information that may be useful when I assess the work. If so, all the relevant files should be assembled into a single compressed file called "project.zip" or "project.gz" and submitted using the standard homework handin program (-a "project"). You can refer to these files within your project report.
    • An oral defense of the project may be required.
  • No midterm or final exam.


Homework Assignments


Computing Information

Use the CS Unix Labs on the first floor of CS&S: Locations here.

For new users of Unix and the CS Unix facilities, orientation sessions will be held in CS&S 1325 according to the following schedule.

CS Unix Environment: You can develop models for any homework assignment or project on your Windows PC (see below) or some other non-unix environment. Ultimately, however, your programs must be runnable on the CS Unix systems and must be submitted through these systems.

You need to set up your unix paths properly in order to run GAMS and the handin utility for homework submission. We have created a .cshrc file that does this for you. To obtain and run it, login to your CS Unix account and type

cp ~cs635-1/public/.cshrc.local  ~/.cshrc.local
source ~/.cshrc 

GAMS for the PC: Limited versions of GAMS can be downloaded for many platforms. The Windows version is particularly nice, as it includes an Integrated Development Environment. We cannot give support for installation on your own personal computers.

Thanks to GAMS, I have obtained a license for the full version of GAMS for Windows PCs for the duration of the class. When you download and install GAMS on your PCs, it will ask you for the license file during installation. Please save this file somewhere on your PC, and tell GAMS its whereabouts during installation.



GAMS - A User's Guide is electronically available.

The following should be on 2-hour reserve at the Wendt Library.

  • Model Building in Mathematical Programming, H.P. Williams, Wiley, (4th Edition) 1999.
  • Introduction to Mathematical Programming, W. Winston and M. Ventataraman, Duxbury, (4th Edition) 2003.
  • Optimization in Operations Research, R. Rardin, Prentice Hall, 1998.
  • Practical Management Science, Winston and Albright, Duxbury Press, 1997.
Other Useful Texts:

Examples (some will be used in class)