# Working Backwards at Five Levels

**1. Child Level:**

Let’s say you want to build a tower of blocks. You can picture the tower in your mind, right? Now, think about the last block you would put on the tower. Then, think about the block you would place before that last block. If you keep doing this, soon you will have imagined every block in the tower from top to bottom! That’s what we call ‘working backwards’.

**2. Teenager Level:**

Imagine you have a big math problem to solve for homework. It looks really complicated and you’re not sure where to start. But then you see the answer in the back of the book. Even though you don’t know how to get there yet, you know where you need to end up. So, you start thinking about what you could do to the answer to make it look more like the problem. That’s ‘working backwards’.

**3. Undergrad Majoring in the Same Subject Level:**

In computer science, ‘working backwards’ is a problem-solving strategy where you start from the solution or the desired outcome, and then figure out the steps that led to it. This approach can be especially useful for designing algorithms, debugging programs, or solving complex problems where a forward approach might not be apparent.

**4. Grad Student Level:**

Working backwards can be a powerful technique in areas such as artificial intelligence, algorithm design, and even theoretical computer science. This method is often employed in search algorithms, game theory, and even in certain proofs. This kind of reasoning can simplify complex problems and offer novel insights by reframing the problem from the end state to the beginning state.

**5. Colleague Level:**

The concept of ‘working backwards’ underpins a wide range of computational and mathematical methodologies. From reverse engineering to backward induction in game theory, it’s a fundamental tool for recontextualizing complex problems. Furthermore, it’s at the heart of certain algorithmic paradigms, such as backtracking, and plays a crucial role in the development of efficient and effective computational solutions. It also poses interesting questions about the symmetry of information processes and the directionality of logical and mathematical reasoning.

## Explanation using Ladder of Abstraction

Sure, let’s apply the concept of Working Backwards using the Ladder of Abstraction.

At the bottom of the ladder, the most concrete level, imagine a specific problem - let’s say you have to solve a complex math equation. You start by identifying the solution you want (e.g., the value of x).

The next step up the ladder would be the process of working backwards from the solution. In the math problem example, you might start with the value of x in the equation and perform inverse operations to get to the initial values.

As we move up the ladder, we generalize the problem-solving method: we can say that Working Backwards is a strategy where you start with your goal and use it to figure out what to do next. It’s not only applicable to math problems but any situation where knowing the desired outcome can help guide the steps needed to reach it.

Higher on the ladder, we abstract even further: Working Backwards is a form of reverse engineering, which is a fundamental strategy used in many fields, such as software development, engineering, and even strategic planning in business.

At the top of the ladder, the most abstract level, Working Backwards is a fundamental cognitive tool used in problem-solving. It’s a universal approach to simplifying complex scenarios, employed in everything from daily life decision-making to high-level scientific research.

That’s the journey from the most concrete to the most abstract concepts of Working Backwards using the Ladder of Abstraction.

## Richard Feynman Explanation

Imagine you’re planning a trip from New York to Los Angeles. Usually, you’d start by leaving your house in New York, and then make a series of decisions on how to get to Los Angeles. You choose your transportation, your route, the places you’ll stop along the way.

Now, let’s flip that. Instead of starting at your house in New York, you start by imagining yourself already in Los Angeles. You’re standing on the beach, the Pacific Ocean in front of you. Now, you ask yourself: “How did I get here?”

Maybe you remember driving up the Pacific Coast Highway, seeing the ocean on your right. So, you know you must have been in San Francisco before that. And before San Francisco, maybe you were in Las Vegas. And so on, until you trace your steps all the way back to your house in New York.

This, essentially, is the strategy of working backwards. Instead of starting from the beginning and trying to figure out how to reach the end, you start at the end and figure out how you could have gotten there.

In the realm of problem-solving and computer science, working backwards can be an extremely powerful tool. For example, it’s often used in puzzles or in programming problems where you need to find a path or sequence of steps from a start to an end point. By starting at the end and working backwards, you may discover insights or solutions that might not be obvious if you started from the beginning.

Remember, as with any problem-solving strategy, working backwards is not always the best approach, but it’s a good one to have in your toolbox. It’s another way of looking at things, and sometimes, that shift in perspective is all you need to crack a tough problem.

## Robin Williams Explanation

Alright, picture this - you’re about to star in a grand, slapstick comedy sketch. It starts with you sitting calmly on a park bench, reading a newspaper. By the end of the sketch, you’re hanging from a chandelier, your pants are on fire, and there’s a goose involved, but we won’t get into that now.

Now, trying to plan this sketch from start to finish might feel like trying to juggle chainsaws while riding a unicycle - daunting, to say the least. You’re sitting there, wondering: “How in the world do I go from this calm scene to that wild finale?”

Here’s where the magic of “working backwards” comes into play. Instead of trying to figure out how you go from sitting on the park bench to the flaming chandelier, you start from the chandelier and work your way back.

So, you’re hanging from the chandelier, pants ablaze, honking goose in tow. Ask yourself: “What ridiculous chain of events could’ve possibly led me here?” Maybe the goose chased you up a staircase, which led to you swinging onto the chandelier. But how did you cross paths with the goose? Maybe you accidentally sat on its egg while it was hidden in your newspaper on the park bench.

See how it works? It’s a little like telling a joke in reverse. Instead of setting up the punchline, you start with the punchline and build the setup around it. It’s a madcap, topsy-turvy way to approach problem-solving, but hey, sometimes that’s exactly what you need to keep the audience – or in this case, life’s challenges – on their toes!

## When to Apply

Working backwards is one of the oldest problem-solving strategies. The ancient Greeks used the method in construction problems. They assumed that an object was already constructed and they worked backwards to the data, which were actually given.

The idea works well if the problem does not branch too much in backstepping.

- What was the situation one step before?
- What was the situation two steps before?

There should be few possibilities before each backward step.

You must always invert! - Jacobi

Working backwards is a powerful problem-solving strategy used frequently in computer science, particularly in areas like algorithm design, debugging, and artificial intelligence. This approach is essentially about reversing the direction of your thinking or problem-solving steps.

Here’s how it works:

**Start from the goal state**: Rather than starting from the initial conditions or data, you begin by considering the desired outcome or end state.**Take one step back**: You then ask yourself, “What was the situation one step before this final state?”. The idea is to identify the previous state or conditions that would logically lead to the end state.**Continue stepping back**: Repeat this process, taking one step back at a time and identifying the previous conditions, until you reach a state that corresponds to your initial conditions or data.

Let’s consider an example in the realm of computer science: the problem of finding a path in a maze. A traditional approach would be to start from the entrance and try to find a way to the exit. But using the “working backwards” approach, you’d start from the exit and try to find a way back to the entrance. This could potentially simplify the problem and make the solution more apparent, particularly if the maze is designed in such a way that there are fewer choices or branches when moving backwards.

This approach is also useful in debugging. When an error occurs, you can start from the state of the program at the time of the error and work backwards to find the conditions or actions that caused the error.

The cautionary note by Jacobi, “You must always invert!”, underscores the necessity of always considering the inverse or ‘reverse’ direction when using this approach.

However, it’s important to note that the “working backwards” approach is not suitable for all problems. If a problem branches out significantly in the backwards direction (i.e., there are many potential previous states for each state), this approach may become complicated and less effective. It’s also potentially problematic in cases where it’s difficult or impossible to determine the previous state from a given state. So, as with any problem-solving strategy, it’s important to consider the specific nature of the problem before deciding which approach to use.

The concept of “working backwards” in problem-solving is a powerful tool often utilized in various fields, ranging from mathematics and computer science to logic and puzzle-solving. The idea is to start with the goal (the solution state), then step backwards, trying to figure out the step just before the solution, then the step before that one, and so forth, until you reach the given initial state.

The advantage of this method lies in its ability to simplify complex problems, especially ones where the initial state appears overwhelming or multifaceted, but the goal is clearly defined and simpler. This approach is especially effective when there are fewer options or possibilities as we step backwards from the goal state.

For example, consider a maze problem. Sometimes, starting at the end and working your way back to the beginning can simplify the pathfinding process, as it might present fewer branching possibilities.

This strategy also mirrors mathematical proofs by contradiction (also known as reductio ad absurdum), where we assume a proposition to be false and then derive an absurdity from this assumption, hence proving the proposition must be true.

Famed mathematician Carl Gustav Jacobi was known to stress the idea: “Man muss immer umkehren” or “You must always invert”. This underlines the importance of inversion in problem-solving, which is a form of working backwards. Instead of going from cause to effect, the inversion method encourages thinking from effect back to cause.

The concept of working backward is also closely tied to the principle of “Infinite Descent,” a method used primarily in number theory. This method involves assuming the existence of a solution and then deriving a contradiction from it, much like proof by contradiction.

In computer science, a similar method called “backward reasoning” is used in logic programming and automated theorem proving, allowing for efficient navigation through a search space. Recursive functions also often utilize a form of this methodology by breaking a problem down into smaller, simpler problems.

In essence, working backwards can be a practical method for overcoming a problem that seems complex or difficult to solve when approached from the beginning. By reversing the perspective, it often enables more straightforward reasoning and simplifies the problem-solving process.

## How to Apply

This is one of the oldest problem solving strategies. This works well if the problem does not branch too much in backward steps.

- What was the situation one step before?
- What was the situation two steps before?

There should be few possibilities before each backward step. The Tower of Hanoi problem is a good candidate for this problem solving strategy. Once you know the desired conclusion, ask yourself:

- What will yield the conclusion in a single step?

Sometimes a penultimate step is obvious, once you start looking for one. The steps become more obvious as you become more experienced. Always spend some time thinking very explicitly about possible penultimate steps. Sometimes, the search for a penultimate step fails.

Working backwards is a classic strategy in problem solving, particularly effective in situations where the problem does not exponentially branch out with each backward step. This approach asks you to reverse-engineer the problem by starting from the solution and asking:

- What was the situation one step before this?
- What was the situation two steps before this?

To apply this method, it is beneficial if there are limited possibilities preceding each backward step.

Let’s consider a classic example - the Tower of Hanoi puzzle. This problem involves moving an entire stack of disks from one peg to another, one disk at a time, with the rule that a larger disk can never be placed on top of a smaller one. This is an excellent problem for the ‘working backwards’ strategy.

Imagine you’ve already solved the puzzle and the whole stack is on the target peg. Now, think backwards. “What was the situation one step before?” The answer is: the largest disk was moved to the target peg, and the rest of the disks were stacked on one of the other pegs. Repeating this thought process helps break down the problem into manageable steps that lead to the solution.

Once you have identified the desired conclusion, another crucial question to ask is, “What will yield the conclusion in a single step?” Often, an immediate precursor to the solution (a penultimate step) becomes apparent once you start looking for it.

With experience, these steps become more intuitive. However, it’s always beneficial to spend some time consciously considering possible penultimate steps.

However, there’s a caveat. This method does not guarantee success every time. In some cases, the search for a penultimate step can lead to a dead end. When that happens, it’s important to reassess your approach and consider other problem-solving strategies. Despite occasional setbacks, working backwards remains a valuable tool in the problem solver’s arsenal.

## Burst Balloons

Instead of thinking of which one to burst first, we think of which one to burst last.