PyBnB - 0.7.dev0¶
pybnb is a parallel branch-and-bound engine written in
Python. It designed to run on distributed computing
mpi4py for fast inter-process
This package is meant to serve as a back-end for problem-specific solution strategies that utilize a branch-and-bound algorithm. The following core functionality is included:
- work load distribution through a central dispatcher
- work task prioritization strategies (e.g., worst bound first, breadth first, custom)
- solver-like log output showing algorithm progress
To use this package, one must implement a branch-and-bound
problem by subclassing the
Problem interface and defining the methods
shown in the example below.
>>> import pybnb >>> # define a branch-and-bound problem >>> class MyProblem(pybnb.Problem): ... def sense(self): ... ... def objective(self): ... ... def bound(self): ... ... def save_state(self, node): ... ... def load_state(self, node): ... ... def branch(self): ... >>> # solve a problem instance >>> result = pybnb.solve(MyProblem()) >>> print(result.solution_status) 'optimal'
- Getting Started
- Advanced Usage