Useful Links
Computer Science
Algorithms and Data Structures
Algorithm Design and Analysis
1. Introduction to Algorithms
2. Algorithm Analysis
3. Brute-Force and Exhaustive Search
4. Divide and Conquer
5. Greedy Algorithms
6. Dynamic Programming
7. Backtracking and Branch-and-Bound
8. Graph Algorithms
9. String Matching Algorithms
10. Computational Complexity Theory
11. Advanced Topics in Algorithm Design
Backtracking and Branch-and-Bound
Backtracking
The General Method
Recursive Search Framework
Solution Space Exploration
State-Space Trees
Representation
Traversal Strategies
Pruning the Search Space
Feasibility Pruning
Optimality Pruning
Constraint Propagation
Classic Backtracking Problems
N-Queens Problem
Problem Statement
Board Representation
Constraint Checking
Pruning Strategies
Implementation
Sudoku Solver
Problem Representation
Constraint Propagation
Search Strategy
Subset Sum Problem
Problem Statement
Recursive Search
Pruning Conditions
Graph Coloring
Problem Statement
Backtracking Solution
Hamiltonian Path
Problem Statement
Backtracking Approach
Branch-and-Bound
The General Method
Bounding and Pruning
Search Tree Representation
Best-First Search Strategy
Bounding Functions
Upper Bounds
Lower Bounds
Relaxation Techniques
Comparison with Backtracking
Classic Branch-and-Bound Problems
Traveling Salesperson Problem
Problem Statement
Lower Bound Computation
Branching Strategy
Pruning Conditions
0/1 Knapsack Problem
Fractional Bound
Branching Strategy
Implementation
Job Assignment Problem
Problem Statement
Bounding Function
Search Strategy
Previous
6. Dynamic Programming
Go to top
Next
8. Graph Algorithms