1. Definition:The branch-and-bound algorithm searches the solution space tree (state space tree) according to the breadth-first method, and obtains the algorithm of the optimal solution. In the search process, the use of
Gauge Function(bound function) estimates the possible values of the target function for all child nodes, thus choosing the node that makes the target function take the extremum (maximum or minimum) as the expansion junction (or pruning if the limit value does not exceed the current optimal solution) for the next search (repeatBFS--- compute all sub-nodes---Select optimal sub-nodes as extension nodesProcess), which constantly adjusts the direction of the search to find the optimal solution for the problem as quickly as possible. (PS: The backtracking algorithm is used to find all feasible solutions to satisfy the constraints, and the branch bounds to find the optimal solution to achieve the extremum of the objective function in the solution satisfying the constraint.The idea of branching the gauge is similar to: the breadth-first search of graphs, the sequence traversal of trees.
2. Differences between the branching and clearance algorithms and backtracking algorithms:(1) Branch clearance algorithm and backtracking algorithmHow to extend a child nodeOn the other: backtracking generally takes the form of traversing subnodes in turn to expand the node. The branch gauge uses the method of Slipknot point to extend all feasible sub-nodes at once, estimate the possible value of the sub-node target function, discard if the target function value of the sub-node is worse than the current optimal solution; otherwise, it is added to the live leaf table, and then the node of the target function takes the extremum as the current expanding node. Repeat the process until the optimal solution is found. (2) Branch clearance algorithm and backtracking algorithmSearch method of solving spatial treeOn the different: backtracking usingDepth-First searchWay to search the solution space tree. In the search process, all the sub-nodes take turns in depth-first search, once the child nodes that do not meet the constraints are found, the child node is the root of the subtree pruning; otherwise, from the sub-node depth-first search, until a search to meet the constraints of the leaf node, a feasible solution is obtained. The branch gauge usesBreadth First SearchWay to search the solution space tree. During the search process, the husband becomes all the sub-nodes (branches), then calculates a function value (gauge) for all branches, and according to these function values (calculated upper bound or lower bound), choose a sub-node that makes the optimal (gauge optimal) of the objective function as the expansion node, so that the search moves rapidly in the direction of the optimal solution An optimal solution can be obtained quickly. (
PS: My understanding is that every time I find one of the most potential from all the child nodes, the next BFS as an extension node .)
3. The general steps of the branch-and-gauge algorithm:(1) The solution space of the problem is transformed into a structure representation of a graph or a tree, maintaining a live leaf table (which can be a priority queue). (2) The root node is initially calculated with a gauge and added to the live leaf table. (3) When the live leaf table is not empty,
take a well-bound node from the live leaf table as an extension node and remove the node from the table .。 When the Slipknot point table is empty, the algorithm ends. (4) Determine whether the current expansion node can satisfy all constraints, and obtain a feasible solution (the extension node is a leaf nodes). If it is, the judgment is superior to the current optimal solution, and the optimal solution is recorded and updated, then the current optimal solution is compared with the gauge of all live leaf nodes,
removal of caller leaf table for live leaf nodes with a limit difference to the optimal solution, and returns (3). If not, enter (5). (5) To calculate whether all child nodes of the extended node satisfy the constraints, and for child nodes that do not meet the constraints, prune (discard) The subtree that is the root of the node. (6) According to the limit function, calculates the bounds of all the child nodes that the node satisfies the constraint.
for a sub-node (PS: Obsolete, no potential)with a limit difference to the current optimal solution, discard the subtree that
is the root of the child node ;
for sub-nodes where the clearance is better than the current optimal solution(PS: There is also potential),
add these potential nodes as live leaf nodes to the live leaf table., and Returns (3) (PS: For the above step deduction, reference "algorithm analysis and Design basis" 12.2 Branch bound Method)
4. The difficulty of application of branch-limit algorithm:(1) The structure of the solution space, that is, the construction method of the State space tree (node Generation order) (2) The pruning function determination, namely the constraint rule Determination (3) The determination of the limit function, the boundary evaluation method
On the algorithm of branch and gauge