Supposing you are in a labyrinth, but you have a map and know where you are, there are many algorithms that will find a way out, if there is one.
Now, imagine you are allowed to wreck walls and make holes in them, so as to pass through. If you wreck enough walls, you are certain to be able to leave the labyrinth!
The problem: find an algorithm that determines the MINIMUM number of walls that should be broken in order to escape. Of course, it should also determine WHICH walls to break!
Start a double-headed search (from start and from finish)
- If they meet then 0 walls need to be broken
- If not, search (might be able come up with a heuristic for A*, for example) over possible walls to break and extend either start or finish side of the solution until they meet