Branch and Bound Overview
Branch and Bound is a problem-solving strategy used for optimization, particularly minimization problems. It is similar to backtracking in that it uses a state space tree to represent potential solutions.
Abdul Bari · YouTube · 9:39
This video segment introduces the Branch and Bound algorithm as a problem-solving strategy for optimization, specifically minimization problems. Using a job sequencing with deadlines example, the instructor explains two methods for representing solutions: a variable-size subset method and a fixed-size binary vector method. The segment concludes with the initial steps of drawing a state space tree based on the subset representation. This 120-second whiteboard segment introduces branch and bound through a job-sequencing state-space tree with four jobs , , , . The instructor contrasts it with backtracking, stating that backtracking is depth-first search while branch and bound here is breadth-first search. He then builds the tree live: first creating all one-job choices from the root, then expanding nodes level by level from left to right, and explaining that a path such as followed by represents doing job 1 and job 4 while not taking jobs 2 and 3 on that partial route. The clip focuses on tree construction and exploration order; the auxiliary board data P, d, S1, and S2 are visible but not explained or used. This video segment explains the concept of a state space tree for solving job sequencing problems using the Branch and Bound algorithm. The instructor first presents a pre-drawn tree representing all possible job permutations, explaining how individual nodes correspond to partial sequences. He then introduces a second method for generating and exploring this tree, utilizing a stack data structure. By dynamically drawing new nodes and simultaneously pushing and popping them from a visual stack, he demonstrates how this approach implements a depth-first search traversal, systematically exploring the solution space without recursion. This 120-second whiteboard lecture segment continues a job-sequencing branch-and-bound example. It first shows a LIFO step: node 9 is not expanded further, node 2 is taken from the stack, its children are generated as nodes 10, 11, and 12, and those nodes are pushed onto the stack. The instructor then contrasts queue-based FIFO-BB with stack-based LIFO-BB, writes the correspondences Queue -> FIFO and Stack -> LIFO, and stresses that the chosen node must still be expanded by generating all possible children before selecting the next node. He next introduces a third method, Least Cost Branch and Bound (LC-BB), erases the old tree, starts a fresh state-space tree, explains that each node gets a cost from a problem-dependent cost function, and initializes the root node with before beginning to consider the first job branch. This video introduces the Least Cost Branch and Bound algorithm for solving optimization problems, specifically applied to a job sequencing scenario. The instructor demonstrates how the algorithm builds a search tree by expanding nodes with the minimum cost, contrasting this approach with FIFO and LIFO methods. By prioritizing the most promising paths, Least Cost Branch and Bound efficiently finds a solution without needing to generate the entire tree, making it faster than traditional traversal strategies.
Use the learning inspector for key ideas and moments, or open the reading tabs for the complete notes.
Generated from the video's visuals and explanation; not verbatim speech.
The lecture begins by introducing Branch and Bound as a problem-solving strategy. The instructor notes its similarity to backtracking, as both utilize a state space tree to represent solutions.
A key distinction is made regarding its application: Branch and Bound is primarily used for optimization problems, specifically minimization. The instructor mentions that maximization problems can be converted into minimization problems to apply this method.
To illustrate, a job sequencing with deadlines problem is presented on the whiteboard, defining the set of jobs, their profits, and their deadlines. The instructor then explains two ways to represent a solution for this problem.
The first method is the subset approach, where a solution is a variable-size set of chosen jobs, such as selecting jobs 1 and 4, written as .
The second method uses a fixed-size binary vector, where each position corresponds to a job, and a 1 indicates the job is selected while a 0 means it is not. For the same selection, this is written as .
The instructor decides to proceed with the subset method to generate the state space tree. He draws a root node and begins the first branch, labeling it J1 to represent the consideration of the first job.
The segment opens on a whiteboard titled “Branch and Bound,” with a job-sequencing example already written on the right: Jobs = {, , , }, together with auxiliary lists P, d, S1, and S2 that are visible but not discussed in this clip. The instructor begins by contrasting two search styles on the same state-space tree.
He says that in backtracking one would go to the next level along a chosen branch, but in branch and bound he will also consider the second job, then the third job, then the fourth job. As he speaks, he completes the first level of the tree by drawing all four children of the root, labeled by the four possible first-job choices.
The key conceptual point is then stated explicitly: this is like breadth-first search. He emphasizes that the method does not go depth-wise and does not follow depth-first search; instead, it explores solutions breadth-first. He summarizes the distinction as backtracking being depth-first search and branch and bound being breadth-first search.
With the first level finished, he points out that all jobs have now been considered one by one at that level. He then selects the leftmost node, corresponding to having taken job 1 first, and asks what solutions follow from it. The answer is that job 2, job 3, or job 4 may be appended next, so he draws three children under that node.
To explain what a path means, he gives the example of following the route that takes job 1 and then job 4. He states that this route means doing first job and fourth job, while not taking second and third job along that partial path. This makes clear that nodes encode partial sequences, not necessarily complete schedules.
He then asks which node should be expanded next and proceeds across the frontier from left to right rather than diving deeper under the just-created children. The next node, corresponding to starting with job 2, is expanded by appending the remaining unused jobs. The board grows level by level, with new nodes numbered sequentially.
Continuing the same procedure, he discards jobs already used on each path and appends only the remaining ones. For the node reached by choosing job 3 first, the available continuations are the unused jobs; for the node reached by choosing job 4 first, only the remaining unused job can be appended. The visual pattern is consistent: finish one frontier node, then move to the next frontier node.
By the end of the clip, the tree has been expanded until all displayed branches reach depth 4, producing the full permutation-style state-space tree for four jobs. The final emphasis remains on the exploration order: the example demonstrates breadth-first generation of candidate sequences, which is the central lesson of this introductory branch-and-bound segment.
The instructor begins by pointing to a pre-drawn state space tree on the whiteboard, explaining that it represents all possible solutions for a job sequencing problem. He clarifies that each node in the tree corresponds to a specific partial sequence of jobs, such as considering the second and fourth jobs, or the third and fourth jobs.
Transitioning to a new approach, the instructor introduces a second method for generating and exploring the state space tree. He starts by drawing a root node and its immediate children, representing the selection of the first job. Crucially, he draws a vertical rectangle next to the tree to represent a stack.
As he generates each new node in the tree, he pushes its identifier onto the stack. He then explains the expansion rule: the node at the top of the stack is always the next one to be explored. He pops the fifth node, notes it's a leaf node (last job), and cannot be expanded. He then pops the fourth node, expands it to create a sixth node, and pushes the sixth node onto the stack.
Continuing the process, he pops the sixth node (another leaf), then pops the third node. Expanding the third node, he generates two new child nodes (seven and eight) and pushes both onto the stack. He then pops the eighth node (a leaf), followed by the seventh node, which he expands to create a ninth node, pushing it onto the stack. This step-by-step demonstration clearly illustrates a depth-first search traversal managed by an explicit stack.
The clip opens mid-example on a whiteboard titled Branch and Bound, with a job-sequencing data block on the right: Jobs = {, , , }, , , and Si = {, }. A partially built state-space tree is already on the left, and a vertical stack diagram sits below the data.
The instructor says node 9 cannot be explored further, so the search backtracks by taking node 2 out of the stack. This is the key move of the LIFO version: the next live node comes from the top of the stack rather than from a queue.
He expands node 2 by drawing three branches corresponding to the remaining job choices after the first job has been fixed. As he speaks, he identifies these as second job, third job, or fourth job options, and labels the new nodes 10, 11, and 12.
Those three new nodes are then pushed into the stack in the same order. Visually, this completes one full expansion cycle: remove a node, generate all of its children, and store the children for later selection.
Turning from the example to terminology, he writes Queue -> FIFO and Stack -> LIFO. The mathematical distinction is not in how many children are generated, but in which data structure determines the next node to explore.
He names the two methods explicitly: using a queue gives FIFO branch and bound, while using a stack gives LIFO branch and bound. The board also accumulates a numbered list of methods, preparing for a third entry.
He then adds an important qualification: whichever structure is used, the search must still follow breadth-first expansion at the level of a chosen node. In his wording, once you pick up a node for exploration, you should explore all the possible nodes before selecting the next node.
This clarifies a common confusion. The stack affects the order in which pending nodes are chosen overall, but it does not mean that only one child is generated and immediately pursued. All children of the selected node are created first.
Next he introduces a third method, writing Least cost -> LC-BB and adding it to the list as 3. LC-BB. The lecture is shifting from pure node-selection rules to cost-guided search.
He erases the old tree and starts a fresh state-space tree for the same job-sequencing problem. The new root node is labeled 1, signaling that the upcoming demonstration will rebuild the search from scratch under a different rule.
At this point he introduces the central new idea of Least Cost Branch and Bound: every node will have a cost. The cost is not arbitrary; it comes from a problem-dependent cost function.
He explains that depending on the problem, one defines a cost function and then uses that function to find the cost of each node. This is the mechanism that allows branch and bound to reason about minimization problems rather than merely enumerate possibilities.
He states that this cost calculation is relevant for all three methods—FIFO, LIFO, and LC—if the goal is to solve a minimization problem. The clip does not prove this claim; it presents it as part of the lecture framework.
Finally, he writes beside the root node and says to assume the cost of this one is infinity. The excerpt ends just as he begins considering the first job branch from the root, so the actual child-cost computation is not shown here.
The instructor begins by setting up a job sequencing problem on the whiteboard, listing the jobs, their profits, deadlines, and an initial subset. He then starts drawing a search tree, assigning arbitrary cost values to the first level of child nodes representing different job choices.
He explains the core principle of Least Cost Branch and Bound: at each step, the algorithm selects the node with the minimum cost to explore next. He briefly compares this strategy to FIFO (First-In-First-Out) and LIFO (Last-In-First-Out) traversal methods, highlighting how they differ in node selection.
Applying the rule, he identifies the node with the lowest cost from the first level and expands it, generating new child nodes with their respective costs. He then selects the new node with the minimum cost, noting that it represents a complete sequence and thus constitutes the solution to the problem.
The instructor concludes by emphasizing the efficiency of the Least Cost approach. By always choosing the most promising path based on cost, the algorithm avoids generating the entire search tree, allowing it to find a solution much faster than FIFO or LIFO methods.
Branch and Bound is a problem-solving strategy used for optimization, particularly minimization problems. It is similar to backtracking in that it uses a state space tree to represent potential solutions.
In problems like job sequencing, solutions can be represented in two main ways. The subset method uses a variable-size set of selected items (e.g., ). The binary vector method uses a fixed-size sequence of 0s and 1s corresponding to all items (e.g., ).
The instructor explicitly contrasts the two methods on the same job-sequencing tree. Backtracking is described as going to the next level along a branch, i.e. depth-first search. Branch and bound is described here as considering all immediate alternatives at the current level before moving deeper, i.e. breadth-first search.
The example uses four jobs, . The tree root represents the empty partial sequence, and each edge appends one job to the current sequence. Additional board data , , , and are visible but not explained or used in this segment.
A path from the root records the ordered partial sequence of chosen jobs. The instructor gives the example of following and then : that route means doing job 1 and job 4, while jobs 2 and 3 are not taken on that partial path.
After the root's children are created, the instructor treats that level as completed and then expands frontier nodes from left to right. At each node, only jobs not already used on the path are appended. This produces the tree level by level rather than pursuing one branch to full depth first.
The clip focuses only on constructing and interpreting the search tree and on the breadth-first versus depth-first distinction. It does not define the objective function, does not explain the numerical vectors on the board, and does not show bounding, pruning, or feasibility tests.
A tree structure where each node represents a partial solution (e.g., a sequence of jobs) and branches represent the addition of a new element to that sequence. It encompasses all possible solutions to a combinatorial problem.
In a job sequencing state space tree, a specific node indicates which jobs have been selected and in what order up to that point in the path from the root.
An iterative method to explore a state space tree. Newly generated nodes are pushed onto a stack. To continue exploration, a node is popped from the top of the stack and expanded. This ensures the most recently discovered path is explored first (LIFO).
In the opening example, node 9 is treated as not explorable further, so node 2 is removed from the stack and expanded. Its children are generated for the remaining job choices and labeled 10, 11, and 12, then pushed onto the stack in that order. This illustrates stack-based selection of the next live node.
The instructor distinguishes two branch-and-bound variants by the data structure used to choose the next node: a queue gives FIFO branch and bound, while a stack gives LIFO branch and bound. The board records this as Queue -> FIFO and Stack -> LIFO.
Even when using a stack, the lecture says you must first explore all possible children of the selected node before choosing the next node. Thus the stack controls which pending node is selected next, while the expansion of that node still generates all of its branches.
A third method is introduced as least cost branch and bound, abbreviated LC-BB. The clip resets the whiteboard to begin a new state-space tree under this method, indicating a shift from simple queue/stack selection to cost-guided search.
For LC-BB, every node is assigned a cost computed from a problem-dependent cost function. The instructor states that such cost information is what enables branch-and-bound methods to address minimization problems.
The new LC-BB tree starts with root node 1 and the annotation . The clip shows this initialization but ends before explaining why the root cost is set to infinity or computing any child costs.
In the Least Cost Branch and Bound algorithm, the next node to be explored is always the one with the minimum cost among all available nodes. This greedy-like approach prioritizes paths that appear most promising based on the current cost evaluation.
Different strategies dictate how nodes are selected for expansion in a search tree. FIFO expands the earliest generated node, LIFO expands the most recently generated node, and Least Cost expands the node with the minimum evaluated cost.
By focusing exploration on nodes with the lowest cost, the Least Cost Branch and Bound algorithm can often find an optimal solution without having to generate and evaluate the entire search tree. This makes it significantly faster and more efficient than blind search strategies like FIFO or LIFO.
Explore conditions, steps and evidence. Supplementary explanations are labeled separately from content shown in the video.
Jobs = {, , , }
Jobs
The set of all jobs in the job sequencing problem.
Set of four discrete jobs
P
The set of profits associated with each job.
Set of four numerical values
d
The set of deadlines associated with each job.
Set of four numerical values
S1
A variable-size solution represented as a subset of jobs.
Subset of Jobs
S2
A fixed-size solution represented as a binary vector indicating which jobs are done.
Binary vector of length 4
Right side of the whiteboard shows Jobs = {, , , }.
Jobs
The set of four jobs considered in the job-sequencing example.
Set of job labels
Right side of the whiteboard shows .
The video does not verbally define what the entries of P represent in this clip.
P
A listed vector associated with the four jobs; the clip does not explain its meaning.
Right side of the whiteboard shows .
The video does not verbally define what the entries of d represent in this clip.
d
A listed vector associated with the four jobs; the clip does not explain its meaning.
Right side of the whiteboard shows .
The video does not explain how S1 is obtained or used in this clip.
S1
A subset of jobs written on the board; its role is not explained in this clip.
Right side of the whiteboard shows .
The video does not explain the meaning of the pattern in S2 in this clip.
S2
vector written on the board; its interpretation is not explained in this clip.
Tree nodes are numbered 1 through 17 as the instructor expands the state-space tree.
1,2,...,17
Node identifiers used to track the order in which states are expanded in the drawn tree.
Positive integers labeling tree nodes
Jobs = {, , , }
Jobs
Set of jobs to be sequenced
Discrete set
The topic is branch and bound. This is one more problem solving strategy, a method by which we can solve a problem.
Branch and Bound is a problem-solving strategy used to solve optimization problems, specifically minimization problems.
Applicable to optimization problems
Primarily for minimization problems
Suppose I say that I am doing job one and job four, this is my solution. Then the solution can be represented as subset of that jobs.
A solution is represented as a subset of the available jobs, resulting in a variable size depending on how many jobs are selected.
Solution size varies based on the number of selected jobs
Second method of representing a solution is first job is done, second and third job is not done, fourth job is done. So this is variable size solution, this is fixed size solution.
A solution is represented as a binary vector where each position corresponds to a job, and the value indicates whether the job is done (1) or not done (0). The size is always equal to the total number of jobs.
Solution size is fixed and equals the number of jobs
In backtracking, we will consider the next level. But here in branch and bound, we will also consider second job. And then third job. And then fourth job.
So it is like breadth first search. We don't go depth wise. We don't follow depth first search. We follow breadth first search for exploring the solutions of a problem.
So the difference between backtracking and branch and bound is backtracking was depth first search and the branch and bound is breadth first search.
The clip contrasts two search strategies on the same job-sequencing state-space tree. Backtracking is described as going down one branch to the next level before considering siblings, whereas branch and bound is described as expanding all alternatives at the current level first. The instructor explicitly summarizes this as backtracking being depth-first search and branch and bound being breadth-first search.
Applied to a state-space tree for job sequencing.
The comparison is about exploration order, not about bounding rules or cost evaluation.
Title at top center reads Branch and Bound; right side lists Job sequencing with Jobs = {, , , }, , , , .
Once I take first job, then what are the solution? Job two I can take or job three I can take, then job four I can take.
If I follow one of the route, it says that I am doing first job and fourth job. I am not taking second and third job.
The clip does not define the objective function or explain the numerical vectors P and d.
The worked example is a job-sequencing problem with four jobs , , , . The instructor draws a rooted tree whose branches correspond to choosing the next job from the remaining jobs. A path from the root records an ordered partial sequence of selected jobs; for example, following the branch labeled and then represents doing job 1 and then job 4 while not yet taking jobs 2 and 3.
There are four distinct jobs.
Each edge label indicates appending one job to the current partial sequence.
The clip only constructs the tree structure and does not evaluate feasibility or optimality.
Now this one level is completed. See, I have considered all the jobs one by one.
Now, once I take first job, then what are the solution? Job two I can take or job three I can take, then job four I can take.
Now which node I should expand? Shall I expand this one or this one? So next is this one.
After finishing the children of node 1, the instructor expands node 2, then node 3, then node 4, then node 5, and continues across the frontier before moving deeper.
After the root's children are created, the instructor treats that whole level as completed and then expands nodes from left to right across the current frontier. The visible procedure is: finish all immediate choices from the root, then expand node 2, then node 3, then node 4, then node 5, and continue similarly. This demonstrates level-order generation of candidate sequences rather than pursuing one path to full depth first.
The tree is explored level by level.
At each node, only jobs not already used on the path from the root are appended.
The clip shows structural expansion only, not pruning by bounds.
So this is a state space tree for the solutions if you are looking like this.
Whiteboard shows a tree structure with nodes labeled 1 through 14 and edges labeled through .
A state space tree represents all possible solutions (permutations of job sequences) as nodes and branches in a tree structure. Each node corresponds to a partial sequence of jobs.
Applicable to combinatorial optimization problems like job sequencing.
And if I consider any node, this node says that I am considering second job and fourth job. This node says that I am considering third job and fourth job.
Instructor points to specific nodes in the tree.
Each node in the state space tree represents a specific partial sequence of jobs. For example, a node might represent the sequence containing the second and fourth jobs.
Nodes are generated by adding one job at a time to the sequence.
While generating this, I'll put these nodes in the stack... Now which node I should expand next? I should expand fifth node... pop out this one and expand...
Instructor draws a vertical rectangle representing a stack and writes numbers inside it as nodes are pushed and popped.
The second method uses a stack to manage the exploration of the state space tree. Nodes are pushed onto the stack when generated and popped from the top to be expanded, resulting in a depth-first search order.
Requires a Last-In-First-Out (LIFO) data structure.
Used to systematically explore the state space tree without recursion.
The instructor writes Queue -> FIFO on the whiteboard.
He says that if you are using queue then it is called as FIFO branch and bound.
In this lecture, FIFO branch and bound is defined by using a queue to choose the next node for exploration.
Applies to branch-and-bound search when the next node is selected from a queue.
The instructor writes Stack -> LIFO on the whiteboard.
He says that if you are using stack then it is called as LIFO branch and bound.
In this lecture, LIFO branch and bound is defined by using a stack to choose the next node for exploration.
Applies to branch-and-bound search when the next node is selected from a stack.
The instructor writes Least cost -> LC-BB and later adds Least Cost - BB under the main heading.
He introduces least cost branch and bound and abbreviates it as LC branch and bound.
This clip names LC-BB but does not yet give its full selection rule beyond introducing node costs.
The lecture introduces a third branch-and-bound method called Least Cost Branch and Bound, abbreviated LC-BB.
Presented as another method within branch and bound.
But it is useful for solving optimization problem and only minimization problem, not maximization problem. Anyway we can convert a maximization problem into minimization and we can solve it.
Branch and Bound is useful for solving optimization problems, specifically minimization problems. Maximization problems can be converted into minimization problems to be solved using this method.
The problem is an optimization problem
So the difference between backtracking and branch and bound is backtracking was depth first search and the branch and bound is breadth first search.
This is presented as the instructor's summary for the example, not as a fully general theorem with hypotheses.
In this lecture segment, the instructor states that backtracking explores the solution space by depth-first search, while branch and bound explores it by breadth-first search.
The discussion concerns searching a state-space tree for a combinatorial problem such as job sequencing.
For the methods compared in this clip.
So if I follow one of the route, it says that I am doing first job and fourth job. I am not taking second and third job. That is the meaning.
Following a route in the drawn tree corresponds to selecting the jobs along that route in order; for example, the route using then means doing job 1 and job 4 and not taking jobs 2 and 3 along that partial path.
The tree is the job-sequencing state-space tree drawn on the board.
For paths in the displayed tree.
The instructor contrasts the previous method with the current one and then names FIFO, LIFO, and least cost methods.
The board lists 1. FIFO-BB, 2. LIFO-BB, 3. LC-BB.
Within this lecture segment, branch and bound is presented in three variants: FIFO-BB, LIFO-BB, and LC-BB.
The discussion is about branch-and-bound search methods for the job-sequencing state-space tree.
For the methods introduced in this clip.
He says this we do for all three methods, whether you are using FIFO, LIFO, LC, then only we can solve a minimization problem.
The clip does not prove why node costs are necessary; it states this as part of the explanation.
According to the instructor, assigning node costs is required across FIFO, LIFO, and LC methods in order to solve a minimization problem.
The problem being solved is a minimization problem.
The search is organized as a branch-and-bound state-space tree.
For the three branch-and-bound methods named in this clip.
I will follow this method first, that is subset method, then that is a variable size solution. So for that, I can draw a state space tree and I'll say that I am considering first job.
Drawing a root node and a left branch labeled J1.
Select the subset method (variable-size solution) to represent the solution.
Stated preference for the subset method.
Draw a root node for the state space tree.
Standard initialization of a state space tree.
Draw a left branch from the root and label it J1.
Represents the decision to consider the first job.
The initial steps of constructing a state space tree for the job sequencing problem using the subset method are demonstrated.
But here in branch and bound, we will also consider second job. And then third job. And then fourth job.
From root node 1, the instructor draws four outgoing edges labeled , , , to nodes 2, 3, 4, 5.
Start from the root node representing the empty partial sequence.
The tree is being built for job sequencing with four available jobs.
Create one child for each possible first job choice: , , , .
The instructor says branch and bound considers the second, third, and fourth job at this stage, and the drawing shows all four first-level branches from the root.
Number the newly created nodes 2, 3, 4, 5 from left to right.
The board visibly labels these nodes after they are drawn.
The first level of the state-space tree contains all one-job partial sequences, illustrating breadth-first generation of alternatives.
Now this one level is completed. See, I have considered all the jobs one by one.
Now, once I take first job, then what are the solution? Job two I can take or job three I can take, then job four I can take.
From node 2, the instructor draws three children labeled , , and numbers them 6, 7, 8.
Take the node corresponding to the partial sequence ().
This is the leftmost child of the root, labeled by edge .
Append each remaining unused job, namely , , and , to form three children.
The instructor explicitly says that after taking the first job, job 2 or job 3 or job 4 can be taken.
Interpret a path such as root → as the partial sequence doing job 1 and then job 4, without jobs 2 and 3 on that path.
The instructor states that following one route means doing first job and fourth job and not taking second and third job.
Node 2 expands into all two-job partial sequences beginning with .
Now which node I should expand? Shall I expand this one or this one? So next is this one.
I am doing second job, considering second job. But what about the next one? I will be doing third job or fourth job.
See first job already we have discarded. We are not considering it. We are not taking it. Then third job and fourth job. Then here only fourth job.
The instructor expands node 3 into nodes 9, 10, 11; node 4 into node 12; node 5 into node 13; then proceeds to nodes 14, 15, 16, 17.
Some later node numbers are spoken quickly, but the visible numbering on the board supports the overall left-to-right frontier expansion.
After completing the children of node 2, move to the next unexpanded node on the same frontier, node 3.
The instructor asks which node to expand next and then proceeds to the neighboring node rather than descending further under node 2.
Expand node 3 by appending the jobs not already used on its path, producing children labeled , , .
The audio says that when considering the second job, the next possibilities are third job or fourth job, and the board shows three children under node 3.
Expand node 4 by appending only the remaining unused job , because and are already on that path.
The instructor says first job already we have discarded ... then third job and fourth job. Then here only fourth job, matching the single child under node 4.
Continue similarly across the rest of the frontier until all displayed nodes reach depth 4.
The final board shows a complete four-level permutation tree with nodes numbered through 17.
The tree is grown by expanding current-level nodes from left to right, confirming the breadth-first procedure described earlier.
Let us look at second method... first node is generated... put these nodes in the stack... pop out this one and expand...
Instructor sequentially draws nodes 1-9 and updates the stack diagram, showing push and pop operations.
Generate root node 1 and push its children (nodes 2, 3, 4, 5) onto the stack.
Initial expansion of the root node in the state space tree.
Pop node 5 from the stack. It represents the last job, so it cannot be expanded further.
Depth-first search explores the deepest node first; leaf nodes have no children.
Pop node 4 from the stack and expand it to generate node 6. Push node 6 onto the stack.
Node 4 represents a partial sequence that can be extended by adding the remaining job.
Pop node 6 from the stack. It represents a complete sequence, so it cannot be expanded.
All jobs have been considered in this branch.
Pop node 3 from the stack and expand it to generate nodes 7 and 8. Push both onto the stack.
Node 3 represents a partial sequence that can be extended by adding the remaining jobs.
Pop node 8 from the stack. It represents a complete sequence, so it cannot be expanded.
All jobs have been considered in this branch.
Pop node 7 from the stack and expand it to generate node 9. Push node 9 onto the stack.
Node 7 represents a partial sequence that can be extended by adding the remaining job.
The stack-based method successfully explores the state space tree in a depth-first manner, systematically generating and expanding nodes.
He says node 9 cannot be explored further, so take out 2 and explore it.
He draws children from node 2 labeled , , and numbers them 10, 11, 12.
He says the node numbers are 10, 11, and 12 and in the same order they are pushed into the stack.
The current live node 9 is terminal for further exploration in the shown tree.
Stated directly by the instructor.
The algorithm therefore removes node 2 from the stack and expands it.
Stated directly by the instructor.
Node 2 generates three children corresponding to choosing the second, third, or fourth job after the first job has already been fixed.
Stated by the instructor while drawing the branches.
These new nodes are numbered 10, 11, and 12 and pushed onto the stack in that same order.
Explicitly stated in the audio and shown on the board.
This demonstrates LIFO branch and bound by expanding one selected node fully and pushing all generated children onto a stack.
So let's expand this one. So job two is there. So this is job three and job four. Suppose here the cost is eight and here the cost is seven. Now which one we should explore? This one. But this is the last node second job fourth job. So this is the solution.
Node is expanded into Node and Node . Node 7 is underlined as the solution.
Identify the node with the minimum cost among the initial children of the root (Node 2 has ).
Least Cost selection rule
Expand Node 2 to generate its children, Node and Node .
Branching step in the algorithm
Compare the costs of the newly generated nodes and select the one with the minimum cost (Node 7 has ).
Least Cost selection rule
Recognize that Node 7 represents a complete sequence (J2, J4) and is therefore the solution.
Termination condition for a leaf node representing a full job sequence
The algorithm successfully finds a solution by exploring only the most promising paths based on cost.
See I have taken one simple example here, that is job sequencing with deadlines problem.
Jobs = {, , , }, ,
Represent a solution for a job sequencing problem with 4 jobs.
Jobs = {, , , }
Demonstrate two methods of representing a solution: subset and binary vector.
Represent the solution as a subset of selected jobs.
First method of representation.
Represent the solution as a binary vector where 1 means the job is done and 0 means it is not.
Second method of representation.
(variable-size), (fixed-size)
Both representations correctly identify that jobs 1 and 4 are selected, while jobs 2 and 3 are not.
Whiteboard title: Branch and Bound; right side: Job sequencing with Jobs = {, , , }, , , , .
Once I take first job, then what are the solution? Job two I can take or job three I can take, then job four I can take.
So if I follow one of the route, it says that I am doing first job and fourth job. I am not taking second and third job.
The clip does not compute any objective value, feasibility test, or bound; it only constructs the search tree.
Given four jobs , , , , draw the state-space tree used to explore job sequences by branch and bound.
Jobs = {, , , }.
The board also lists , , , , but these are not used in the clip.
The method being illustrated is breadth-first expansion of the tree.
Show how partial job sequences are generated level by level in the branch-and-bound tree.
Start at the root and create four children corresponding to choosing each job first.
All one-job partial sequences are placed on the first level.
From the node for (), create children for (,), (,), and (,).
After taking job 1, the remaining available jobs are 2, 3, and 4.
Then expand the next frontier nodes in left-to-right order rather than descending immediately under (,).
The instructor explicitly frames branch and bound as breadth-first search.
Continue until every displayed path reaches length 4, producing the full permutation tree shown on the board.
The final diagram contains nodes numbered up to 17 and all branches end at depth 4.
The example yields a four-level state-space tree whose nodes represent partial permutations of the four jobs, expanded breadth-first from the root.
The completed board visibly contains the root, four first-level children, and successive expansions ending with all paths of length 4, matching the spoken description of breadth-first exploration.
Whiteboard displays a complete state space tree for 4 jobs with nodes numbered 1 to 14.
Jobs = {, , , }, ,
Construct and interpret the state space tree for a job sequencing problem with 4 jobs.
Jobs = {, , , }
Profits
Deadlines
Understand how nodes represent partial job sequences.
Draw the root node representing the empty sequence.
Start of the state space tree.
Branch out to create child nodes for each possible first job (, , , ).
Generating the first level of the tree.
Continue branching to add subsequent jobs, creating nodes for all possible permutations.
Completing the state space tree.
The resulting tree has 14 nodes, where each path from the root to a leaf represents a unique permutation of the 4 jobs.
Visual inspection of the drawn tree confirms all permutations are represented.
The right side of the board is headed Job sequencing and lists Jobs, P, d, and Si.
A state-space tree is drawn with root 1 and existing nodes 2 through 9.
The instructor narrates taking out node 2 and exploring it, then pushing nodes 10, 11, 12 into the stack.
The clip does not compute an objective value for the job sequence in this interval.
Continue a branch-and-bound search on a job-sequencing state-space tree using a stack.
Jobs = {, , , }
Si = {, }
An existing tree already contains nodes 1 through 9.
Expand the next node selected from the stack and update the stack with its children.
Node 9 is treated as not explorable further.
Stated by the instructor.
Node 2 is taken out of the stack for exploration.
Stated by the instructor.
From node 2, branches are created for the remaining job choices , , and .
Shown by the drawn edges and stated verbally.
The new nodes are labeled 10, 11, and 12 and pushed into the stack in that order.
Explicitly stated and written on the board.
The stack receives nodes 10, 11, and 12 after expanding node 2.
The board shows the new children under node 2 and the stack entries 10, 11, 12.
He says now let us look at this method least cost branch and bound method.
He erases the old tree and starts a fresh state-space tree with root node 1.
He writes beside the root node.
He says for every node we will calculate the cost and assumes the cost of this one is infinity.
The clip ends before the first child cost is computed.
The reason for initializing the root cost to infinity is not explained in this excerpt.
Begin a new branch-and-bound search using the Least Cost method on the same job-sequencing instance.
Jobs = {, , , }
Si = {, }
Create a new state-space tree and assign node costs starting from the root.
The instructor clears the previous tree and announces that he will generate a tree again, specifically a state-space tree.
Stated in the audio and visible on the board.
He draws a new root node labeled 1.
Visible animation on the whiteboard.
He introduces the new idea that every node will have a calculated cost.
Stated directly by the instructor.
He assigns the root node cost as infinity.
Written on the board and spoken aloud.
He begins considering the jobs for branching from the root.
Stated in the final seconds of the clip.
The LC-BB example is initialized with root node 1 and cost .
The board shows the new root with before the clip ends.
Whiteboard shows a tree structure with nodes labeled J1, J2, J3, J4 and costs , , , , , .
Find an optimal job sequence using the Least Cost Branch and Bound method given a set of jobs with profits and deadlines.
Jobs = {J1, J2, J3, J4}
Si = {J1, J3}
Determine the sequence of jobs that minimizes the total cost or maximizes profit according to the problem constraints.
Initialize the root node with an infinite cost ().
Standard initialization for minimization problems in Branch and Bound
Generate the first level of child nodes representing the inclusion of each job (J1, J2, J3, J4) and assign arbitrary costs (, , , ).
Branching step to explore different job sequences
Select the node with the minimum cost (Node 2, ) for expansion.
Least Cost Branch and Bound selection rule
Expand Node 2 to generate its children (Node 6 for J3 with , Node 7 for J4 with ).
Branching step to continue exploring sequences starting with J2
Select the node with the minimum cost among the new children (Node 7, ).
Least Cost Branch and Bound selection rule
Identify Node 7 as a complete sequence (J2, J4) and declare it the solution.
Termination condition reached
The optimal sequence found is J2 followed by J4, with a final cost of 7.
The solution is verified by tracing the path from the root to the selected leaf node, ensuring all branching and selection rules were followed correctly.
Whiteboard displays 'Branch and Bound' title and 'Job sequencing' problem data.
Title 'Branch and Bound'
Problem heading 'Job sequencing'
Data sets Jobs, P, d
Problem data remains visible throughout the clip
Sets the context for the lecture on Branch and Bound applied to job sequencing.
Instructor draws a circle (root node) and a line extending down-left labeled 'J1'.
Root node (circle)
Left branch labeled 'J1'
A new tree structure is drawn on the left side of the board.
Existing problem data on the right side of the board remains unchanged.
Visualizes the beginning of the state space tree generation using the subset method.
At the start, the board already shows the title Branch and Bound, a small initial tree fragment with root node 1 and one edge labeled to node 2, and the right-side job-sequencing data.
Title Branch and Bound
Root node 1
Edge label
Node 2
Right-side list Jobs, P, d, S1, S2
The instructor stands beside the board and begins explaining the difference from backtracking.
The job data on the right remains visible throughout the clip.
The clip opens with a partially prepared example and then develops the full state-space tree live.
The instructor draws three more edges from node 1 labeled , , and adds nodes 3, 4, 5.
Node 1
Edges , , ,
Nodes 2, 3, 4, 5
Node 1 gains three additional children.
The first level becomes a full set of four one-job choices.
The root still represents the empty partial sequence.
The right-side job list is unchanged.
This visual step realizes the claim that branch and bound considers all immediate alternatives at the current level.
From node 2, the instructor draws three downward edges labeled , , and numbers the new nodes 6, 7, 8.
Node 2
Edges , ,
Nodes 6, 7, 8
Three second-level nodes are added beneath node 2.
The path to each new node begins with .
No pruning or bounding marks are added.
The board now shows all two-job partial sequences that start with job 1.
The instructor next expands node 3 into nodes 9, 10, 11, then node 4 into node 12, then node 5 into node 13, and continues adding deeper nodes until 17.
Exact spoken numbering of some late nodes is less clear than the visible board labels.
Nodes 3, 4, 5
Their children 9-13
Later descendants 14-17
Expansion proceeds across the current frontier from left to right.
The tree deepens level by level until all branches reach length 4.
Each edge appends one previously unused job.
The overall strategy remains breadth-first rather than depth-first.
The visual process demonstrates the operational meaning of the earlier verbal contrast between backtracking and branch and bound.
A pre-drawn state space tree is visible on the left side of the whiteboard.
State space tree with nodes 1-14
Edge labels
Instructor points to different nodes to explain their meaning.
The structure of the tree remains unchanged during this segment.
The tree visually represents the entire solution space for the job sequencing problem.
Instructor draws a vertical rectangle (stack) and writes/pops numbers inside it while drawing new tree nodes.
Stack diagram
Newly drawn tree nodes (1-9)
Numbers are written into the stack (push operation).
Numbers are erased from the top of the stack (pop operation).
New nodes are drawn below existing nodes in the tree.
The stack always operates on a Last-In-First-Out basis.
The visual synchronization of drawing tree nodes and updating the stack demonstrates the mechanics of depth-first traversal using an explicit stack.
A pre-drawn tree titled Branch and Bound occupies the left half of the board, with a Job sequencing data block on the right and a vertical stack below it.
The instructor points to node 9, then moves to node 2 and draws three outgoing branches.
Tree nodes 1 through 9
Node 2
Node 9
Vertical stack diagram
Job sequencing data block
Attention shifts from node 9 to node 2.
Three new child nodes are added beneath node 2.
The stack is updated with 10, 11, 12.
The underlying job-sequencing data on the right remains unchanged.
The earlier part of the tree remains visible while the new children are added.
The visual sequence demonstrates how a stack-based branch-and-bound search backtracks from a dead-end node and expands the next available node.
The instructor writes Queue -> FIFO, Stack -> LIFO, and Least cost -> LC-BB.
The numbered list 1. FIFO-BB, 2. LIFO-BB, 3. LC-BB appears on the board.
Queue -> FIFO
Stack -> LIFO
Least cost -> LC-BB
Numbered list of methods
New text is added under the tree.
The method list is completed with LC-BB.
The job-sequencing data block stays on the right.
The earlier tree remains visible until it is erased later.
This visual summary classifies the search strategies by the data structure used to select the next node.
The previous tree and stack are erased.
Least Cost - BB is written under the main heading.
A new root node 1 is drawn, followed by beside it.
Main heading Branch and Bound
Subtitle Least Cost - BB
New root node 1
Cost label
The old state-space tree and stack disappear.
A new heading for Least Cost - BB is added.
A fresh root node is created and assigned a cost.
The Job sequencing data on the right remains visible.
The numbered method list remains visible.
The reset signals a shift from explaining FIFO/LIFO node selection to demonstrating cost-based branch and bound from scratch.
The instructor draws a tree structure on the whiteboard, adding nodes and edges sequentially, labeling them with job identifiers and cost values.
Root node
Child nodes (J1, J2, J3, J4)
Grandchild nodes (J3, J4)
Edges connecting nodes
Cost labels (C=...)
Nodes are added to the tree as the algorithm branches.
Costs are assigned to each node.
The instructor points to specific nodes to explain the selection process.
The hierarchical structure of the tree remains consistent.
The right side of the board consistently displays the problem parameters (Jobs, P, d, Si) and the list of methods (FIFO, LIFO, LC).
The visual construction of the tree demonstrates how the Branch and Bound algorithm systematically explores the solution space by generating and evaluating partial sequences of jobs.
We don't go depth wise. We don't follow depth first search. We follow breadth first search for exploring the solutions of a problem.
One might assume branch and bound, like backtracking, immediately follows one branch down to the next level.
In this clip, the instructor explicitly says branch and bound does not go depth-wise here; it explores the tree breadth-first by considering all alternatives at the current level before moving deeper.
So if I follow one of the route, it says that I am doing first job and fourth job. I am not taking second and third job. That is the meaning.
A path such as then could be mistaken for implying that all jobs have been handled.
The instructor clarifies that following that route means doing job 1 and job 4 along that partial path, while jobs 2 and 3 are not taken on that route.
After saying stack gives LIFO branch and bound, the instructor immediately adds that you have to follow breadth first search only.
He defines that once a node is picked, all possible nodes from it should be explored before selecting the next node.
The clip uses the phrase breadth first search in a branch-and-bound context without contrasting it formally with depth-first search.
One might infer that LIFO branch and bound means going down a single child immediately after another.
In this lecture segment, the instructor explicitly says that even with a stack, you must first generate all possible children of the selected node before choosing the next node.
This is similar to backtracking in the sense that it also uses state space tree for solving the problem.
Branch and Bound is similar to backtracking as both use state space trees, but Branch and Bound is specifically for optimization (minimization) problems.
So the difference between backtracking and branch and bound is backtracking was depth first search and the branch and bound is breadth first search.
The clip uses the same job-sequencing tree to contrast backtracking's depth-first traversal with branch and bound's breadth-first traversal.
Now this one level is completed. See, I have considered all the jobs one by one.
The instructor expands nodes across the frontier from left to right.
The step-by-step construction of the tree is the concrete application of the stated breadth-first expansion rule.
So if I follow one of the route, it says that I am doing first job and fourth job. I am not taking second and third job.
The semantic rule that a path encodes a partial job sequence is part of the definition of the displayed state-space tree.
pop out this one and expand... pop out next node and explore it
Stack operations dictate the order in which tree nodes are expanded.
The stack-based method is applied to traverse the state space tree, implementing a depth-first search strategy.
The board writes Queue -> FIFO and Stack -> LIFO one below the other.
The instructor asks what is the difference between the previous one and this one and answers by contrasting queue and stack.
FIFO-BB and LIFO-BB are distinguished by whether the next node is taken from a queue or from a stack.
Least cost -> LC-BB is added as a third method after FIFO-BB and LIFO-BB.
The instructor says there is one more method and then explains that every node will have a cost.
The clip introduces LC-BB but does not fully develop its selection rule before ending.
LC-BB is presented as an additional branch-and-bound variant that augments the search with node costs, extending the discussion beyond pure FIFO/LIFO node selection.
The instructor introduces cost calculation while discussing least cost branch and bound.
He writes at the root of the new LC-BB tree.
The LC-BB demonstration depends on first defining a node cost and a problem-specific cost function.
The instructor says you can use any one and you have to follow breadth first search only.
The stated expansion rule applies to the FIFO method discussed in this clip.
The same breadth-first expansion statement follows directly after the LIFO definition.
The stated expansion rule also applies to the LIFO method discussed in this clip.
Now let us look back again. FIFO method which one we select for exploration this one will expand. LIFO we try to expand this one. Least cost out of this whichever is having least cost we'll try that one.
The Least Cost strategy contrasts with FIFO and LIFO by selecting nodes based on their evaluated cost rather than their generation order.
This is the idea of LC branch and bound and this is much faster than using FIFO and LIFO.
The Least Cost selection rule is applied to achieve the efficiency benefit of avoiding full tree generation and reaching solutions faster.
The topic is branch and bound... useful for solving optimization problem and only minimization problem
solution can be represented as subset... second method... fixed size solution
,
We don't follow depth first search. We follow breadth first search for exploring the solutions of a problem.
So the difference between backtracking and branch and bound is backtracking was depth first search and the branch and bound is breadth first search.
So if I follow one of the route, it says that I am doing first job and fourth job. I am not taking second and third job.
Now this one level is completed. See, I have considered all the jobs one by one.
Nodes are expanded left to right across the frontier.
The board lists P, d, S1, and S2, but the spoken explanation in this clip focuses only on tree construction.
The clip does not explain these quantities.
I'll put these nodes in the stack... pop out this one and expand
Queue -> FIFO is written on the board.
The instructor names FIFO branch and bound.
Stack -> LIFO is written on the board.
The instructor names LIFO branch and bound.
The instructor says once you pick up a node you should explore all the possible nodes, then only select the next node.
Least cost -> LC-BB and Least Cost - BB are written on the board.
The instructor introduces least cost branch and bound.
Covered · Introduction to Branch and Bound and its application to minimization problems.
Covered · Explanation of two methods for representing solutions in the job sequencing problem.
Covered · Beginning the construction of a state space tree using the subset method.
Covered · Opening explanation and construction of the first level of the job-sequencing tree.
Covered · Expansion of the branch and interpretation of paths as partial sequences.
Covered · Left-to-right breadth-first expansion across the frontier until the full four-level tree is drawn.
Covered · Introduction to the state space tree for job sequencing and interpretation of its nodes.
Covered · Demonstration of the second method using a stack for depth-first traversal of the state space tree.
Covered · The instructor finishes a LIFO branch-and-bound step by expanding node 2 and pushing nodes 10, 11, 12 onto the stack.
Covered · He contrasts queue-based and stack-based node selection and names FIFO-BB and LIFO-BB.
Covered · He states that regardless of queue or stack, all children of the selected node must be explored before choosing the next node.
Covered · He introduces a third method, Least Cost Branch and Bound, and writes LC-BB on the board.
Covered · He erases the old tree, starts a new state-space tree for LC-BB, explains node costs, and assigns to the root.
Covered · Initial setup of the problem and drawing the first level of the search tree with arbitrary costs.
Covered · Explanation of the Least Cost selection rule and comparison with FIFO and LIFO methods.
Covered · Expansion of the chosen node and identification of the final solution based on the least cost.
Covered · Summary of the advantages of Least Cost Branch and Bound over other traversal methods.
Reviewed English material v1: card/concept_card "Branch and Bound Overview" starting at 0:00 — Branch and Bound is a problem-solving strategy used for optimization, particularly minimization problems. It is similar to backtracking in that it uses a state space tree to represent potential solutions.
Least Cost Branch and Bound avoids generating the entire search tree by prioritizing nodes with the lowest cost, allowing it to reach a solution faster than FIFO or LIFO methods. It focuses exploration on the most promising paths based on the cost heuristic.
Conditions: Assumes that the cost function provides a good heuristic for finding the optimal solution quickly.; Used for comparing different node exploration strategies in search trees.
A solution can be represented in two main ways: as a variable-size subset of selected jobs (e.g., ), or as a fixed-size binary vector where each position corresponds to a job and the value indicates whether the job is done (1) or not (0) (e.g., ).
Conditions: The problem involves selecting a subset of jobs from a given set.; The representation must clearly indicate which jobs are included in the solution.
FIFO expands the first generated node (using a queue), LIFO expands the last generated node (using a stack), while Least Cost expands the node with the minimum cost (using a priority queue or similar structure based on cost).
Conditions: Used for comparing different node exploration strategies in search trees.; Applies to branch-and-bound search methods.
The tree is expanded breadth-first. After the root's children are created, the instructor treats that whole level as completed and then expands nodes from left to right across the current frontier.
Conditions: The tree is explored level by level.; At each node, only jobs not already used on the path from the root are appended.; The clip shows structural expansion only, not pruning by bounds.
In Least Cost Branch and Bound, the algorithm selects the node with the minimum cost from the available nodes to explore next. This prioritizes paths that appear most promising based on the current cost evaluation.
Conditions: Applicable when using the Least Cost strategy for Branch and Bound.; A cost function is defined for the problem.
Branch and Bound is primarily used for solving optimization problems, specifically minimization problems. Maximization problems can be converted into minimization problems to be solved using this method.
Conditions: The problem is an optimization problem.; The method is applied to find the optimal solution (minimum or maximum).
In this lecture segment, backtracking is described as depth-first search, while branch and bound is described as breadth-first search. Backtracking goes down one branch to the next level before considering siblings, whereas branch and bound considers all alternatives at the current level first.
Conditions: Applied to a state-space tree for job sequencing.; The comparison is about exploration order, not about bounding rules or cost evaluation.
A path from the root records the ordered partial sequence of chosen jobs. Following a route in the drawn tree corresponds to selecting the jobs along that route in order; for example, the route using then means doing job 1 and job 4 and not taking jobs 2 and 3 along that partial path.
Conditions: The tree is the job-sequencing state-space tree drawn on the board.; Each edge label indicates appending one job to the current partial sequence.