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
-