Depth Limited Search - we provide a depth limit, l, so time complexity is reduced to O(b^l). This is tricky to optimise as, if l is too small, we might not include the actual depth of the goal node, making it incomplete. If l is too large, we don't have an optimal solution and are still carrying out more steps than is necessary.