Stay organized with collections
Save and categorize content based on your preferences.
C++ Reference: class LbTreeSearch
Note: This documentation is automatically generated.
Implement a "classic" MIP tree search by having an exhaustive list of open
nodes.
The goal of this subsolver is to improve the objective lower bound. It is
meant to be used in a multi-thread portfolio, and as such it really do not
care about finding solution. It is all about improving the lower bound.
TODO(user): What this is doing is really similar to asking a SAT solver if
the current objective lower bound is reachable by solving a SAT problem.
However, this code handle on the side all the "conflict" of the form
objective > current_lb. As a result, when it is UNSAT, we can bump the lower
bound by a bigger amount than one. We also do not completely loose everything
learned so far for the next iteration.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-06 UTC."],[[["LbTreeSearch is a subsolver in OR-Tools designed to improve the objective lower bound in Mixed Integer Programming (MIP) problems."],["It functions by exhaustively exploring open nodes in the search tree, similar to a SAT solver, but focuses solely on lower bound improvement."],["Upon determining unsatisfiability, it can increase the lower bound by more than one unit and retains learned information for subsequent iterations."],["It is intended for multi-thread portfolio use and does not prioritize finding solutions."],["Key methods include LbTreeSearch for initialization and Search for exploration of the search space."]]],["The `LbTreeSearch` class in C++ implements a MIP tree search focused on improving the objective lower bound. It maintains an exhaustive list of open nodes and operates within a multi-threaded portfolio. The core functionality is in the `Search` method, which explores the search space, and it also handles conflicts related to the objective lower bound, potentially allowing for larger increments to the bound than just one. It does not care about finding solution. The constructor takes a pointer to the `Model` as argument.\n"]]