pybnb.futures¶
- class pybnb.futures.NestedSolver(problem, node_limit=None, time_limit=5, queue_limit=None, track_bound=True, queue_strategy='depth')[source]¶
A class for creating a nested branch-and-bound solve strategy. An instance of this class (wrapped around a standard problem) can be passed to the solver as the problem argument.
- Parameters
problem (
pybnb.Problem
) – An object defining a branch-and-bound problem.node_limit (int, optional) – The same as the standard solver option, but applied to the nested solver to limit the number of nodes to explore when processing a work item. (default: None)
time_limit (float, optional) – The same as the standard solver option, but applied to the nested solver to limit the amount of time spent processing a work item. (default: 5)
queue_limit (int, optional) – The same as the standard solver option, but applied to the nested solver to limit the size of the queue. (default: None)
track_bound (bool, optional) – The same as the standard solver option, but applied to the nested solver control bound tracking. (default: True)
queue_strategy (
QueueStrategy
or tuple) – The same as the standard solver option, but applied to the nested solver to control the queue strategy used when processing a work item. (default: ‘depth’)
- objective()[source]¶
The solver does not call this method when it sees the problem implements a nested solve.
- bound()[source]¶
The solver does not call this method when it sees the problem implements a nested solve.
- branch()[source]¶
The solver does not call this method when it sees the problem implements a nested solve.
- load_state(node)[source]¶
Calls the load_state() method on the user-provided problem and prepares for a nested solve.
- notify_solve_begins(comm, worker_comm, convergence_checker)[source]¶
Calls the notify_solve_begins() method on the user-provided problem and prepares for a solve.