Backtracking Algorithms (OCR A-Level Computer Science): Flashcards
📚Flashcards
Practise the cards
15 cards from this deck
ShowHide
Practise the cards
15 cards from this deck
Backtracking definition
Backtracking definition
Technique to systematically search solutions; abandons invalid paths to try alternatives
Main use cases of backtracking
Main use cases of backtracking
Decision trees, combinatorial optimisation, constraint satisfaction
What happens when constraint violated in backtracking
What happens when constraint violated in backtracking
Abandons path and tries different one
First step in backtracking
First step in backtracking
Choose a path/start with initial partial solution
Action after checking constraints
Action after checking constraints
Expand if valid, backtrack if invalid
N-Queens problem
N-Queens problem
Place queens on board, none threaten each other
Benefit: systematic search
Benefit: systematic search
Explores all possibilities in organised manner
Benefit: pruning invalid paths
Benefit: pruning invalid paths
Quickly eliminates paths not meeting constraints
Benefit: implementation
Benefit: implementation
Simple to implement using recursion
Drawback for large problems
Drawback for large problems
Inefficient, may explore many possibilities
Worst case time complexity
Worst case time complexity
for certain problems
Mistake: not restoring state
Mistake: not restoring state
Leads to incorrect solutions
Mistake: incorrect base case
Mistake: incorrect base case
Causes infinite recursion
Problems suited for backtracking
Problems suited for backtracking
Combinatorial and constraint satisfaction problems
Drawback: recursive overhead
Drawback: recursive overhead
Can lead to stack overflow for deep recursive calls
