Wednesday, October 21, 2009

MINLP Test Problems

Ignacio Grossmann and Jon Lee recently announced the CMU-IBM Cyberinfrastructure Collaborative site for MINLP.  The goal of this web site is to create a library of optimization problems in different application areas in which one or several alternative models are presented with their derivation. In addition, each model has one or several instances that can serve to test various algorithms. This effort is different from other test problem collections by requiring a description of the problem, and encouraging the contribution of alternate modeling formulations.  Thus, the actual models in this collection may be MILP or NLP formulations that simplify a nonlinear problem, including simplifications of other MINLP formulations.

As it happens, Cindy Phillips, Regan Murray and I are working on a paper that describes our work on sensor placement for water security, where we describe various MILP formulations for this nonlinear application.  I guess we should try to add our models to this repository!

Tuesday, October 20, 2009

Using easy_install to download source files

Python's setuptools package includes the easy_install script, which provides a convenient mechanism for installing a Python package from the PyPi repository.  Normally, easy_install installs a Python package in the Python site packages directory.  However, I recently discovered that easy_install can download the source for Python package.  For example, the following command downloads the Coopr optimization package into the coopr directory:

easy_install -q --editable --build-directory . Coopr

I had to browse a variety of web pages before I figured this syntax out.  Enjoy!

Wednesday, October 14, 2009

Book Recommendation: Software IP

I have been working with software-related intellectual property issues for several years now.  I finally broke down and bought a book to help me get the big picture.  The following book has been remarkably helpful:
Intellectual Property and Open Source: A practical guide to protecting code
Van Lindberg
O'Reilly, 2008
I have been quite surprised how well Lindberg describes the complex legal issues related to intellectual property law.  Lindberg is a lawyer and software developer, and he uses computer science analogies that are quite straightforward.

Monday, October 5, 2009

Applying the CBC Presolver

Here's a fun fact that I wanted to archive...  In a recent COIN-OR email exchange on coin-discuss, John Forrest suggested the following command-line for applying the CBC preprocessor to an MPS file:

     cbc xxxxx.mps -preprocess save -heuristic off -maxnode -1 -solve

This command will save the cbc-presolved model in the file presolved.mps. The -heuristic off and -maxnode -1 options make cbc stop as quickly as possible.