PICO - Parallel Integer and Combinatorial Optimization

This work funded in part by US Dept of Energy, MICS Division, and by the Sandia National Laboratories Laboratory-Directed Research and Development program.


Project Members

Overview

PICO, currently under development will be a state-of-the-art massively-parallel combinatorial optimization engine. The phase of PICO is the development of the first fully-general mixed-integer programming (MIP) code scalable to thousands of processors. Initially, the code will use branch and bound, but future versions will incorporate branch-and-cut and branch-and-price search strategies. We currently use two commerically-available linear-programming solvers: CPLEX and XPRESS-MP by DASH. The branch-and-bound framework (for example), is not limited to mixed-integer programming. Future versions of the code will solve more general math programming problems.

PICO will be able to adaptively incorporate application-specific methods (combinatorial approximation algorithms and genetic algorithms), for both lower and upper bounds, to limit the search space explored.

Background and New Features

To see an overview of mixed-integer programming, and brief descriptions of the branch-and-bound, branch-and-cut, and branch-and-price search strategies (and more), click here.

State-of-the-art MIP codes provide performance-enhancing features that are specific to MIP, but not application-specific. For example, default branching strategies must allow user-defined priorities, and branching based on global ``derivatives'' (pseudocosts), locking of variables, and preprocessing. We will add a novel feature: a genetic algorithm that attempts to round a generic fractional linear-programming solution to a feasible solution. If the procedure is effective, then new solutions can enable faster pruning of suboptimal regions.

If one requires highest performance on a class of instances, some application-specific tuning may be required. Users can supply combinatorial approximation algorithms or genetic algorithms which exploit structure unique to the problem class. These can be run in conjunction with the system defaults or in place of them. Similarly, the user can supply lower-bounding procedures, which can increase pruning by increasing lower bounds. Though the system will provide default cutting planes, particularly for binary integer variables, user-supplied cutting plane methods are likely to provide vastly superior performance.

Parallelization Issues

FY98 Application Focus

Mixed-integer programming (MIP) is a core optimization technology, and this capability can be applied in other areas consistent with Sandia's mission: nonproliferation, transportation, infrastructure analysis and design, manufacturing, energy, environment, and tools for massively parallel computation such as meshing.

Related Sandia Projects

PICO is a core piece of the MICS Discrete Optimization Project. We will closely collaborate with the MICS Global Optimization Project, especially for the development of stochastic methods to integrate into PICO.
See also, the Sandia Optimization Web Page.

External Collaborators


Cindy Phillips' Home Page
Sandia National Laboratories

This page maintained by caphill@cs.sandia.gov
Last modified: October 27, 1997