Abacus - coin-or-foundation/tlc GitHub Wiki

Contribution Review Checklist

Next step

  • Announced March 29, 2010.

General

ABACUS is a software system written in C++ that provides a framework for the implementation of branch-and-bound algorithms using linear programming relaxations. Cutting planes or columns can be generated dynamically (branch-and-cut, branch-and-price, branch-and-cut-and-price).

ABACUS allows the software developer to concentrate merely on the problem specific parts, i.e., the separation of cutting planes, column generation, and primal heuristics. ABACUS supports the Open Solver Interface (Osi) developed by the COIN-OR (COmputational INfrastructure for Operations Research) project which means that every solver supported by OSI can be used to solve the relaxations.

Moreover, ABACUS provides a variety of general algorithmic concepts, e.g., a list of different enumeration and branching strategies from which the best alternative for the user's application can be chosen.

Finally, ABACUS provides many basic data structures and useful tools for the implementation of such algorithms. It is designed both for general mixed integer optimization problems and for combinatorial optimization problems. It unifies cutting plane and column generation within one algorithm framework. Simple reuse of code and the design of abstract data structures and algorithms are met by object oriented programming modules.

Legal

  • Received CSRO: 08/28/2007 added to ip_documents on 02/27/2010
  • Received DOO: 08/28/2007 added to ip_documents on 02/27/2010
  • OSI-approved license: LGPL

Classification

  • Classified (Level 1-5): 4

Code and Documentation

(Checked by Oktay Gunluk in November, 2007, re-checked by Laszlo Ladanyi on 02/28/2010)

  • README/LICENSE files: (exists and reasonable) yes
  • Project Roadmap (Level 1): (exists and reasonable) yes
  • AUTHORS/INSTALL files (Level 2 and above): (exists and reasonable) yes
  • Code builds (Level 2 and above): yes
  • Documentation (Level 3 and above): (exists and reasonable) yes
  • Unit test (Level 4 and above): (has one and passed) yes (example programs compile and run)
  • Project binaries (Level 5): (exist and function properly) no (only source is distributed)

Accepted

  • (Yes/No): Yes, January, 2008

Establishing Project

  • PM named: Mark Sprenger, 09/2007
  • PM educated: yes
    • Legal issues
    • Tracking contributions
    • Responding to bugs
    • Using SVN
    • Using Trac
    • Setting up a static Web page
    • Standard practices (versioning and release, build procedures)
  • PM subscribed to mailing list: 01/11/2008
  • Code imported: 01/11/2008
  • PM given write access: 01/11/2008
  • Trac page set up: 01/11/2008
  • Project announced: (date)
  • Moved this page to ArchivedChecklists: (date)