wiki:AnnualReport2010

COIN-OR 2010 Annual Report

This wiki page will be used to create a hard-copy 2010 Annual Report to be distributed at the INFORMS Austin Meeting in November 2010, and will remain available here as soft-copy. The annual report serves a couple of purposes. It provides much needed documentation of our progress, a prerequisite for pursuing financial stability (those chocolate coins aren't free, you know ;-) It also provides a snapshot of what's happening for potential contributors and users. So please, add any information you'd like the world to know regarding your involvement in COIN-OR.

Introduction

This year marks the 10th anniversary of the COIN-OR project. COIN-OR (COmputational INfrastructure for Operations Research) was first announced at ISMP 2000 as an IBM initiative, hosted by IBM and seeded with seven projects produced by a handful of developers at IBM and collaborating academic institutions. In 2004 we became an independent organisation, managed by the non-profit educational COIN-OR Foundation and hosted by INFORMS. Today COIN-OR is the premier web site devoted to open-source software for the operations research community, home to 42 projects produced by 67 full members assisted by many more contributors, with a burgeoning community of users and developers comprised of more than 2,000 subscriptions from more than 1,000 unique e-mail addresses. We're celebrating. Events to celebrate our 10th anniversary are planned at the 2010 INFORMS Annual Meeting. We're proud of what we have become. More, we're proud of what we have produced as a community.

We're not resting on our laurels (except maybe John, just a little bit :-). COIN-OR encourages new project contributions by providing an extensive set of tools and infrastructure support for collaborative project development. COIN-OR will continue to work with manufacturers of commercial software to develop interfaces to their products. With the help of a worldwide community of developers, we will continue to offer open-source software that meets the highest standards for state-of-the-art algorithms and industrial strength robustness and efficiency.

Reports from the SLB & TLC

  • Strategic Leadership Board (SLB): Robert Fourer, Kevin Furman, Lou Hafer (Secretary), David Jensen, Randy Kiefer (Treasurer), Ted Ralphs (TLC Rep), Matthew Saltzman (President), Mike Trick.

Report from the President It has been my pleasure to be involved in COIN-OR beginning with its inception in 2000 and to have been in on the creation of the Foundation. Seeing the impact that open source and COIN-OR have had and how they've grown over the past decade has been most rewarding. One salient measure of our progress: the number of projects has grown over the decade by an order of magnitude. We began with four, and now we are home to over forty.

This year, we have concluded the long process of laying out the framework for establishing the legal status of projects. There will probably be some adjustments down the road, as the framework is reviewed by experts and as we gain experience, but I believe we have a strong foundation that provides a good balance of flexibility for developers and clarity for users. On a related front, IBM has retired the CPL, which most COIN-OR projects use. The CPL has been superseded by the Eclipse Public License, but there are some questions about how existing projects currently under the CPL are affected. We are currently investigating how this change affects COIN-OR projects.

Also for next year, we are looking at various opportunities to improve the technology infrastructure, including improving Web server performance, content management, and new tools for developers.

I want to extend my personal appreciation and the appreciation of the Board to Robin Lougee and Alan King for their hard work putting together the ForrestFest activities at INFORMS this year and to IBM for their financial support of ForrestFest.

  • Reports from each SLB standing committee, which would be:

Corporate Relations: The committee is considering ways to develop a corporate sponsorship program that allows for the underwriting of specific activities such as web-hosting and conference exhibits.

Finance: The checkbook balance at the end of September stood at $26,274.85. There is an expected outflow of funds for the INFORMS Conference booth and Forrest-Fest of approximately $8,300, which would leave the balance at $18,000. Possible additional expenditures would include approximately $7,000 for legal advice on licensing.

Legal Affairs: The revised policy for the legal documentation required for COIN-OR projects and contributors was adopted by the SLB at its meeting of November 2, 2010. This represents the end of well over a year of research and debate. We hope it will serve the Foundation well for some time to come, because (like Quebec independence) none of us want to have this debate again any time soon.

Membership: The membership committee was more organised this year and as a result we're welcoming 14 new full members into the COIN-OR community. But don't wait for the Membership Committee to send an invite! Anyone can nominate an individual for full membership. Check the Full Members list for instructions.

  • Technical Leadership Council (TLC):
    • New build system
      • Goal is to decouple project development to smooth upgrades possible; RPMs; installers
      • Better support for third party
      • Source builds can be linked against installed libraries
      • Libtool library versioning
      • Pkg-config support
      • CoinAll 1.5 with Application Templates
    • Hudson installed for distributed build and test
    • Submissions
      • Six new projects since last meeting
      • Six more currently in pipeline
    • CoinBazaar
    • CoinEasy

Elections

  • Nominated for 2010-2013 terms on SLB:
    • Randy Kiefer
    • Alan King
    • Paul Rubin
    • Matt Saltzman
  • Nominated for 2010-2013 terms on TLC:
    • Matthew Galati
    • Ted Ralphs
  • Results to be announced at COIN-OR Users Meeting, INFORMS Austin. Members present at the meeting who wish to vote and have not done so by email may vote at the start of the meeting (Monday November 8, 12:15, Convention Centre 19B Level 4).

New Members

COIN-OR is proud to welcome 14 new full members this year:

  • Pietro Belotti, project manager and contributor for Couenne.
  • Balazs Dezso, for contributions to LEMON.
  • Gus Gassman, for contributions to OS.
  • Chris Groer, project manager and contributor of VRPH.
  • Julian Hall, taking over from John Forrest as project manager for Clp.
  • David Haws, project manager and contributor of MOCHA.
  • Marcel Hunting, project manager and contributor of AIMMSLinks.
  • Michael Juenger, for contributions to ABACUS.
  • Alpar Juttner, project manager and contributor of LEMON.
  • Prabhanjan Kambadur, project manager and contributor of PFuncs.
  • Peter Kovacs, for contributions to LEMON.
  • Mirko Maischberger, project manager and contributor of METSLib.
  • Stuart Mitchell, project manager and contributor of PuLP.
  • Andrea Walther, project manager and contributor of ADOL-C.

New Projects

The following projects have been published at http://www.coin-or.org/projects/ in the past year.

  • The AIMMSLinks project is dedicated to the development of links between the modeling language AIMMS and solvers that are hosted at COIN-OR. It is written in C++. The links use the AIMMS Open Solver Interface API.
  • The Coin Bazaar project facilitates community involvement in the COIN-OR repositories. This project allows OR researchers to contribute code examples, application examples, and code extensions and plug-ins, without directly contributing to a regular COIN-OR project. Thus, this project helps bridge the gap between core package development and package extensions. Specific goals of this project are (1) to manage extensions to COIN-OR packages that have limited subversion access, (2) allow developers and COIN-OR users to share code and application examples, and (3) provide a home for auxiliary software tools that facilitate the use of COIN-OR tools.
  • Coopr is a collection of Python optimization-related packages. Coopr supports a diverse set of optimization capabilities that can be used to formulate and analyze optimization applications. In particular, it include Pyomo, a Python-based modeling tool that can model abstract linear and integer programs. Coopr strongly leverages a Python component architecture to support extensibility in a modular manner, and plug-ins for optimization solvers can be added without editing any Coopr software. This allows Coopr to directly leverage the COIN-OR Coin Bazaar project to host plug-in packages for Coopr (e.g., see the coopr.neos package in Coin Bazaar).
  • DIP (Decomposition for Integer Programming) is an open-source extensible software framework for implementing decomposition-based bounding algorithms for use in solving large-scale discrete optimization problems. The framework provides a simple API for experimenting with various decomposition-based algorithms, such as Dantzig-Wolfe decomposition, Lagrangian relaxation, and various cutting plane methods. Given a compact formulation and a relaxation, the framework takes care of all algorithmic details associated with implementing any of a wide range of decomposition-based algorithms, such as branch and cut, branch and price, branch and cut and price, subgradient-based Lagrangian relaxation, branch and relax and cut, and decompose and cut. The user can specify customizations, such as methods for generating valid inequalities and branching, in terms of the variables of the compact formulation, without having to worry about the details of any required reformulations. DIP is used in combination with CHiPPS, which provides the underlying tree search methodology.
  • METSLib is an object oriented metaheuristics optimization framework and toolkit in C++. Hill Climbing, Steepest Descent, Random Restart Local Search, Variable Neighborhood Search, Iterated Local Search, Simulated Annealing, and Tabu Search algorithms are applicable within one unified modelling framework.
  • PFunc, short for Parallel Functions, is a lightweight and portable library that provides C and C++ APIs to express task parallelism. The features offered by PFunc are a strict superset of the features offered by current solutions for task parallelism such as Cilk and Intel's Threading Building Blocks. Specifically, PFunc extends the feature set of current solutions with custom task scheduling, task priorities and task affinities. Furthermore, PFunc offers task groups for SPMD-style programming and multiple task completion notifications for parallel execution of DAGs. PFunc's extended feature set is geared towards helping knowledgeable users optimize their application performance.
  • PuLP is an LP modeler written in python. PuLP can generate MPS or LP files and call GLPK, COIN CLP/CBC, CPLEX, and GUROBI to solve linear problems.
  • VRPH is an open source library of heuristics for the capacitated Vehicle Routing Problem (VRP). Features include:
    • Many well-known heuristics for generating and improving feasible solutions to VRP instances (Clarke-Wright, two-opt, three-opt, etc.).
    • Two metaheuristics that can usually generate good solutions to large instances containing hundreds of customer locations in a matter of seconds. On well-studied benchmark problems, the solutions are typically within a percent or two of the best-known solution.
    • An algorithm that combines a metaheuristic with a set partitioning problem for even better solutions. This implementation currently uses the COIN Open Solver Interface (OSI) and the GLPK solver.
    • A modular design that can be extended to handle additional constraints.

VRPH includes several example applications that can be used to quickly generate good solutions to VRP instances containing thousands of customer locations. A large set of well-studied benchmark instances is available from the project homepage.

At any given time, there are typically a few projects in the process of being approved for publication on COIN-OR. The Foundation doesn't publicise these; we don't want to steal the publicity from the contributor. (If you're the contributor, and you want to get the news out now, feel free to edit!)

John Forrest-Fest | COIN-OR 10th

This year marks the 10th anniversary of COIN-OR, and coincidentally, the "retirement" of John Forrest - the founding COIN-OR member, and the one who holds the record of the most bug contributions! These duo-events are being celebrated with a special invited cluster, co-sponsored by our strategic partner the INFORMS Computing Society, and with a party at the 2010 INFORMS Annual Meeting.

John J. H. Forrest has been an invaluable member of COIN-OR from before the beginning. He's the author of Clp and Cbc and has contributed to many other COIN projects, in addition to serving as COIN-OR's original (and only!) Benevolent Dictator. As you can see in the news below, it will take many people to begin to replace him.

A whopping 61 authors from academia, industry, and government have contributed to the special John Forrest-Fest | COIN-OR 10th anniversary cluster -- the first cluster in INFORMS history that uses the "bitwise inclusive or" operator in its title!

A reception sponsored by IBM and others will be held Sunday, November 7th, 8:00 to 10:00 pm, at the Iron Cactus, in conjunction with the Austin 2010 INFORMS Annual Meeting; the 2010 COIN-OR Cup will also be awarded. The Forrest-Fest | COIN-OR 10th was organized by Robin Lougee and Alan King.

News and Announcements

Add your item in the list below (sorted in something vaguely approximating the order of the Projects list. Shameless self-promotion is strongly encouraged, whether you're a user of COIN software or a developer of COIN software.

  • News about COIN-OR:
    • COIN-OR Interfaces Tutorial -- A tutorial, "COIN-OR: Software for the OR Community", is due to be published in the November-December 2010 issue, Vol. 40, No. 6 of Interfaces. This tutorial is designed to be an introduction to COIN-OR for the general OR Community.
  • News about BuildTools:
    • BuildTools has undergone radical changes as COIN moves towards a more independent packaging model. It is now possible to check out exactly one copy of each COIN project, install to a single central location, and link as needed from that central location. Support for doxygen documentation also follows this model.
    • Support for building in Windows with Visual Studio has received a major upgrade. As with Linux, it is now possible to build and install to a single location and link from that location. Building DLLs and assemblies is also supported (requires PowerShell).

At time of writing, this support is only available in the BuildTools trunk and in the per-project MSVisualStudio/v9alt solutions, also in trunk. It is expected that these will move to stable and release branches shortly, perhaps prior to the INFORMS meeting.

  • News about Cbc:
    • Ted Ralphs has taken over from John Forrest as project manager for Cbc. He'll be backed up by John, Dan Fylstra, Lou Hafer, Bill Hart, Bjarni Kristjannson, Cindy Phillips, Matthew Saltzman, Edwin Straver, and Jean-Paul Watson.
  • News about Clp:
    • Julian Hall has taken over from John Forrest as project manager for Clp. He'll be backed up by John, Lou Hafer, and Matt Saltzman while he gets his feet under him.
    • An initial implementation of an interface layer to allow Clp to be used as a solver for Microsoft Solver Foundation will shortly be available from the COIN repository as a new project, MSFLinks. It is expected that this will expand to support any solver with an Osi interface layer, pending a few additions (in particular, support for callbacks) to the Osi API.
  • News about Coopr:
    • We are pleased to announce the release of Coopr 2.4 (2.4.3199). Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models. The following are highlights of this release:
      Modeling
      • Concrete models are now supported
      • Nonlinear modeling extensions using the AMPL NL problem format
      • Add support for immutable versus mutable parameters.
      • Support for SOS1 and SOS2 constraints
      Data Integration
      • Can now import data from relational databases
      Solvers
      • Better support for Gurobi solver
      • Direct CPLEX solver interface
      • Interface to ipopt and nonlinear solvers via asl
      • ASL solver interface can now be specified with the form --solver=asl:ipopt
      Usability enchancements
      • Numerous bug fixes.
      • Updated messages to provide clearer indication of modeling errors
    • Coopr is being used by the TEMOA (Tools for Energy Model Optimization and Analysis) at North Carolina State University.
  • News about Dip:
    • OSDip -- A generic block-angular decomposition algorithm is now available as part of the Optimization Services (OS) project. It is based on the Decomposition in Integer Programming (Dip) project jointly with the Optimization Services (OS) project. We call this the OS Dip solver. Users can easily add their own block solver (oracle) without altering the OS Dip Solver code. The user simply creates a separate file containing the oracle class. The user-provided oracle class inherits from the generic OSDipBlockSolver class. The OS Dip solver is part of the ApplicationTemplates subproject of CoinBazaar.
    • Dippy -- In the Department of Engineering Science (The University of Auckland, New Zealand) we have combined DIP with PuLP (a Python-based mathematical programming language) to create Dippy. Using Dippy we can easily create mathematical models and send them to DIP, but we can also implement user functions for advanced branching, solving subproblems, generating cuts, using heuristics, etc directly within PuLP. Thus, Dippy provides the advanced MILP methods of DIP with the ease of use of PuLP. We have used Dippy as a teaching tool to get students "playing" with advanced branching, cut generation and column generation. We have prototyped formulation and solution methods for building financial portfolios, cutting steel to order and planning tours for health and disability advocates. We have also been researching approaches for mitigating antisymmetry in MILPs and are using Dippy as our test environment.
    • IBM -- At IBM Global Technology Services, Business Process Reengineering Department, DIP is utilized as the optimization framework for the extremely large-scale National Workforce Management, Cross-Training and Scheduling Project. Ongoing performance improvements are being carried out by experimenting on initial dual vector estimation to prevent bad starting lower bounds; intermediary dual vector manipulation to avoid parallel columns, degeneracy and to bring smarter columns; and finally, subproblem selection for acceleration purposes. DIP is planned to be used in the Workcell Determination and Back-up Strategies Project, too. Contact Person: Alper Uygur <alperuygur@…>
  • News about DyLP:
    • Building on the tableau API described at last year's INFORMS conference, OsiDylp now provides a complete implementation of the Osi simplex API, level 1 (tableau accessors).
  • News about FlopC++:
    • Christian Wolf from University of Paderborn has implemented Stochastic Extensions to FlopC++. These extensions are already available in branches/stochastic, which also includes fixes of memory leaks and is expected to move to the trunk and then releases later this year. The stochastic extensions extend FlopC++ to model mixed-integer multistage stochastic programs with recourse in conjunction with SMI. FlopC++ now supports scenario-based and distribution-based problems, the latter only for independent random variables at the moment. We added a sampling and discretization mechanism to generate random variates for the defined random variables. The scenario tree is then based on the generated random variates. It is possible to solve the problems with stochastic solvers that are based on SMI or with the deterministic equivalent which is generated by Smi by default. We added SMPS write support to enable the use of stochastic solvers using that input format.
  • News about LEMON:
    • A new major version, LEMON-1.2 (and then a maintenance release, 1.2.1) was released in 2010. It features a vast amount of new algorithms for shortest path, minimum cost flow, planar embedding and optimal matching calculations; new graph implementations and auxiliary datastructures (e.g., all the well-known priority queue implementations); and various bug fixes. For more details on the changes please visit http://lemon.cs.elte.hu/trac/lemon/browser/NEWS?rev=3ed8f7c8bed8.
  • News about Osi:
    • An updated Osi/Soplex link has been contributed by Ambros Gleixner and Wei Huang.
    • The Osi/Gurobi link is now stable and included in the latest releases.

Project List

All projects can be reached from the COIN-OR projects page.

  • ABACUS: A Branch-And-CUt System, an LP-based branch-and-cut framework
    • Michael Juenger
  • ADOL-C, Automatic Differentiation by OverLoading in C++, facilitates the evaluation of first and higher derivatives of vector functions that are defined by computer programs written in C or C++.
    • Andrea Walther, andrea dot walther at uni-paderborn dot de
  • AIMMSlinks: AIMMS/COIN-OR Links, links between the modeling language AIMMS and solvers that are hosted at COIN-OR
    • Marcel Hunting, marcel dot hunting at aimms dot com
  • BCP, Branch-Cut-Price Framework, is a parallel branch-cut-price framework.
    • Laszlo Ladanyi, ladanyi at us dot ibm dot com
  • Bonmin, Basic Open-source Nonlinear Mixed INteger programming, is an experimental C++ code for solving general mixed-integer nonlinear programming problems.
    • Pierre Bonami, pierre.bonami at lif dot univ-mrs dot fr
  • BuildTools, build and documentation support for COIN-OR projects.
    • Andreas Waechter, andreasw at watson dot ibm dot com
  • Cbc, COIN-OR Branch and Cut, a library for creating branch and cut algorithms; includes a standalone branch-and-cut executable.
    • Ted Ralphs, ted at lehigh dot edu
  • Cgc, COIN-OR Graph Classes, a collection of network representations and algorithms.
    • Phillip Walton, hpwalton at comcast.net
  • Cgl, Cut Generation Library, a collection of algorithms to generate cutting planes.
    • Robin Lougee, rlougee at us dot ibm dot com
  • CHiPPS, COIN-OR Open Parallel Search Framework.
    • Ted Ralphs, tkralphs at lehigh dot edu
  • Clp, COIN-OR LP, a linear program solver.
    • Julian Hall, jajhall at ed dot ac dot uk
  • CoinBazaar: The COIN-OR Bazaar, small examples and extensions of COIN-OR projects.
    • William Hart, wehart at sandia dot gov
  • CoinBinary, pre-compiled binary distributions of COIN-OR projects.
    • Ted Ralphs, ted at lehigh dot edu
    • The repository for CoinAll, an interoperable set of many of the COIN libraries conveniently collected in one place, is housed in the CoinBinary project.
  • CoinMP, a Windows DLL solver with a C-API interface to COIN-OR LP, COIN-OR Branch and Cut, and the Cut Generation Library.
    • Bjarni Kristjansson, bjarni at maximalsoftware dot com
  • CoinUtils, COIN-OR utilities library.
    • Laszlo Ladanyi, ladanyi at us dot ibm dot com
  • Coopr, COmmon Optimization Python Repository, integrates a variety of Python optimization-related packages.
    • William Hart, wehart at sandia dot gov
  • Couenne, an exact solver for non-convex MINLP problems.
    • Pietro Belotti, pbelott at clemson dot edu
  • CppAD, a tool that computes derivatives of C++ algorithms.
    • Brad Bell, bradbell at seanet dot com
  • CSDP, library for semidefinite programming.
    • Brian Borchers borchers at nmt dot edu
  • DIP, Decomposition in Integer Programming, a framework for implementing a variety of decomposition-based branch-and-bound algorithms for solving mixed-integer linear programs.
    • Ted Ralphs, ted at lehigh dot edu
  • DFO, Derivative-Free Optimization, a package for solving general nonlinear optimization problems when derivatives are unavailable.
    • Katya Scheinberg
  • DyLP, an implementation of the dynamic simplex algorithm.
    • Lou Hafer, lou at cs dot sfu dot ca
  • FLOPC++, an algebraic modeling language embedded in C++.
    • Tim Hultberg, tim dot hultberg at eumetsat dot int
  • GAMSlinks, links between GAMS and open source solvers.
    • Stefan Vigerske
  • IPOPT, an interior point algorithm for general large-scale nonlinear optimization,
    • Andreas Waechter, andreasw at watson dot ibm dot com
  • LaGO, Lagrangian Global Optimizer, global optimization of nonconvex mixed-integer programs
    • Stefan Vigerske
  • LEMON, Library of Efficient Models and Optimization in Networks, a C++ template library aimed at combinatorial optimization tasks, especially those working with graphs and networks.
    • Alpar Juttner, alpar at cs dot elte dot hu
  • METSlib, an object oriented metaheuristics optimization framework and toolkit in C++.
    • Mirko Maischberger, mirko dot maischberger at gmail dot com
  • MOCHA, Matroid Optimization: Combinatorial Heuristics and Algorithms, heuristics and algorithms for multicriteria matroid optimization.
    • David Haws, dchaws+MOCHA at gmail dot com
  • NLPAPI, Non-Linear Program Application Programming Interface, subroutine interface for defining and solving non-linear programming problems.
    • Michael Henderson
  • OBOE, Oracle Based Optimization Engine, optimization of convex problems with user-supplied methods delivering key first order information
    • Nidhi Sawhney, nsawhney at gmail dot com
  • OptiML: Optimization for Machine Learning, interior point, active set method and parametric solvers for support vector machines, solver for the sparse inverse covariance problem
    • Katya Scheinberg
  • OS, Optimization Services, standards for representing optimization instances, results, solver options, and communication between clients and solvers in a distributed environment using Web Services
    • Kipp Martin, kipp.martin at chicagogsb dot edu and Jun Ma
  • OSI, Open Solver Interface, a uniform subroutine interface for callable solver libraries,
    • Matthew Saltzman, mjs at clemson dot edu and Lou Hafer, lou at cs dot sfu dot ca
  • OTS, Open Tabu Search, a Java framework for creating tabu search algorithms,
    • Rob Harder
  • PFunc, Parallel Functions, a lightweight and portable library that provides C and C++ APIs to express task parallelism
    • Prabhanjan Kambadur, pkambadu at osl dot iu dot edu
  • PuLP, Python library for modeling linear and integer programs
    • Stuart Mitchell, s.mitchell at auckland dot ac dot nz
  • SMI, Stochastic Modeling Interface, an interface for optimization under uncertainty,
    • Alan King, kingaj at us dot ibm dot com
  • SYMPHONY, a callable library for solving mixed-integer linear programs,
    • Ted Ralphs, tkralphs at lehigh dot edu
  • TestTools, Python scripts to automatically download, configure, build, test, install, build binaries, and distribute binaries.
    • JP Fasano
  • Volume Algorithm, a generalization of the subgradient method which produces approximate primal solutions as well as dual solutions.
    • Francisco Barahona, barahon at us dot ibm dot com
  • VRPH: VRP Heuristics, a library of heuristics for generating solutions to variants of the vehicle routing problem
    • Chris Groer, cgroer at gmail dot com

The projects above reflect the interests of the individuals who have contributed to date. The volunteers running COIN-OR and its projects continually strive to improve overall quality, documentation, ease of use, and robustness. The level of success in achieving these goals depends on the support received from the community. New projects that reflect the broad interests and needs of the OR community, such as resources for visualization, data mining, simulation, constraint programming, statistics, forecasting, spreadsheets, and more, are welcome.

Last modified 9 years ago Last modified on Nov 5, 2010 11:12:25 PM