Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Branch and bound (RobotLocomotion#7717)
* Start to work on bnb for MathematicalProgram. * Add the test for the node constructor. * Make MixedIntegerBranchAndBoundNode constructor private. * Use unique_ptr instead of shared_ptr. Add remaining_binary_variables to the node. * Check if optimal solution is integral. * Add Branch method to the node. * Add test on branching a node. * Work on the MixedIntegerBranchAndBound class. * Add the branching method. * Work on IsNodeFathomed. * When constructing a node, solve the optimization program in the node. * Remove IsOptimalSolutionIntegral, replace it with a constant getter. Add the test for IsLeafNodeFathomed. * Pick the deepest node. * Add BranchAndUpdate function to update the best solutions and the lower/upper bounds. * If a node has all binary variables fixed to either 0 or 1, the node is also fathomed. * Add the test to pick a branching variable. * Add Solve function, together with its tests. * Forgot to use while loop in branch and bound solve. * Add another example for bnb test. * Specify the solver at the bnb construction. * Add another test with multiple integral solutions. * Modify the test slightly, so that it does not obtain the optimal integral solution at the root. * Fix the gcc compiler issue. * Add one more example on MIQP, with multiple integral solutions. * lint. * Address Andres' comments. * Add setter and getter for the child nodes. * Change GetOptimalCost and add GetSubOptimalCost() * Add a setter for root(). * Add setter and getter for the gap tolerance. * Address Andres' comments. * change the wording. * Address Andres' comments. * Address Andres' comments. * rename pick_variable_ to variable_selection_method_ * Address Russ's comments. * Address reviewers' comments. * lint * documentation improvement. * typo. * typo.
- Loading branch information