Discrete Mathsfor Engineers

Structures, proofs, and intuition

EN | PT

Branch & Bound

Part 1 — Problem Model & Search Space

Series: Branch & Bound Part 1 of 8

1. Problem Model & Search Space


Roadmap (what you will learn in this part):
  1. What kind of problems Branch & Bound solves
  2. How candidate solutions are modeled
  3. Why the search space forms a tree
  4. The role of feasibility and the objective function
  5. Why exponential growth requires intelligent pruning

Branch & Bound is often introduced informally as a method that explores possibilities and discards branches that cannot lead to the optimal solution.

That intuition is useful, but to understand the technique rigorously, we must first define the problem model and the search space it explores.

1.1 Why start with the model?

Branch & Bound is not tied to a single specific problem. It is a general strategy for solving combinatorial optimization problems.

Therefore, before discussing bounds, pruning, or implementation, we must answer:

  • What is a candidate solution?
  • How is a partial solution represented?
  • What does it mean for a solution to be feasible?
  • What exactly are we optimizing?
Main idea: Branch & Bound is a method for exploring a structured search space in optimization problems.

1.2 Candidate solutions

A candidate solution is typically constructed as a sequence of decisions:

x = (x₁, x₂, …, xₖ)

Each variable xᵢ represents a choice made at step i, usually selected from a domain of possible values.

A complete assignment may represent a final solution, while a prefix (x₁, …, xᵢ) represents a partial solution.

1.3 The search space

The set of all candidate solutions defines the search space.

This space is naturally modeled as a tree:

  • The root is the empty solution
  • Each level corresponds to one additional decision
  • Each edge represents a choice
  • Each node represents a partial assignment

In abstract terms, a node can be written as (x₁, …, xᵢ).

1.4 Feasibility

Not every partial solution should be explored further.

A Branch & Bound problem includes constraints that determine whether a partial solution can still be extended into a valid full solution.

C(x₁, x₂, …, xᵢ)

If the current assignment already violates the problem structure, that branch can be stopped immediately.

First pruning idea: reject infeasible branches as early as possible.

1.5 Objective function

Unlike classical backtracking, in Branch & Bound we are not satisfied with just any valid solution: we want the best feasible solution according to an objective function.

Formally, we want to find a solution x* such that:

x* ∈ S and f(x*) is optimal

where S is the set of feasible solutions and f(x) measures the value of a solution.

1.6 Maximization and minimization

Branch & Bound applies to two major types of problems:

  • Maximization: maximize profit, value, or score
  • Minimization: minimize cost, distance, or time

The structure of the search remains the same. What changes is how we compare solutions and interpret bounds.

1.7 Why this matters

The search space often grows exponentially with the size of the input. A brute-force method would examine all possibilities.

O(2^n)

In real problems, this quickly becomes infeasible. That is why we need a strategy that preserves correctness while drastically reducing the number of explored branches.

Core motivation: exploring everything guarantees correctness, but is too expensive. Branch & Bound aims to keep correctness with selective exploration.

1.8 Example problems

This model appears in many classical problems:

  • 0/1 Knapsack
  • Traveling Salesman Problem
  • Scheduling
  • Assignment problems
  • Integer programming

In all of them, the core idea is the same: build solutions incrementally, evaluate feasibility and quality, and avoid exploring regions that cannot contain the optimal solution.

Next: Part 2 — The Core Idea (Branch + Bound + Pruning)

Now that we have defined the structure of the problem and the search space, the next step is to understand the mechanism that decides which branches to explore and which to discard.

In Part 2, we will study how bounds are defined, how they guide pruning, and why this makes the search significantly more efficient.