pybnb.solver_results

Branch-and-bound solver results object.

Copyright by Gabriel A. Hackebeil (gabe.hackebeil@gmail.com).

class pybnb.solver_results.SolverResults[source]

Stores the results of a branch-and-bound solve.

solution_status

The solution status will be set to one of the strings documented by the SolutionStatus enum.

Type:string
termination_condition

The solve termination condition, as determined by the dispatcher, will be set to one of the strings documented by the TerminationCondition enum.

Type:string
objective

The best objective found.

Type:float
bound

The global optimality bound.

Type:float
absolute_gap

The absolute gap between the objective and bound. This will only be set when the solution status sf “optimal” or “feasible”; otherwise, it will be None.

Type:float or None
relative_gap

The relative gap between the objective and bound. This will only be set when the solution status sf “optimal” or “feasible”; otherwise, it will be None.

Type:float or None
nodes

The total number of nodes processes by all workers.

Type:int
wall_time

The process-local wall time (seconds). This is the only value on the results object that varies between processes.

Type:float
best_node

The node with the best objective obtained during the solve. Note that if the best_objective solver option was used, the best_node on the results object may have an objective that is worse than the objective stored on the results (or may be None).

Type:Node
pprint(stream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>)[source]

Prints a nicely formatted representation of the results.

Parameters:stream (file-like object or string, optional) – A file-like object or a filename where results should be written to. (default: sys.stdout)
write(stream, prefix='', pretty=False)[source]

Writes results in YAML format to a stream or file. Changing the parameter values from their defaults may result in the output becoming non-compatible with the YAML format.

Parameters:
  • stream (file-like object or string) – A file-like object or a filename where results should be written to.
  • prefix (string, optional) – A string to use as a prefix for each line that is written. (default: ‘’)
  • pretty (bool, optional) – Indicates whether or not certain recognized attributes should be formatted for more human-readable output. (default: False)

Example

>>> import six
>>> import pybnb
>>> results = pybnb.SolverResults()
>>> results.best_node = pybnb.Node()
>>> results.best_node.objective = 123
>>> out = six.StringIO()
>>> # the best_node is serialized
>>> results.write(out)
>>> del results
>>> import yaml
>>> results_dict = yaml.safe_load(out.getvalue())
>>> # de-serialize the best_node
>>> best_node = pybnb.node.loads(results_dict['best_node'])
>>> assert best_node.objective == 123