Decomposition Strategies: Breaking Hard Problems Into Solvable Pieces
The instinct to attack a problem whole is often the wrong one.
Most researchers encounter this tension early: a problem arrives as a monolith. The specification is dense. The state space is vast. The dependencies are tangled. The natural response is to build frameworks that handle everything at once—unified solvers, end-to-end systems, comprehensive formalisms. This approach fails more often than it succeeds, not because the frameworks are poorly engineered, but because they attempt to solve the wrong problem first.
Decomposition—the systematic breaking of hard problems into smaller, tractable subproblems—is not a tactic. It is a fundamental shift in how you define solvability itself. When you decompose, you are not simplifying a problem; you are restructuring it so that progress becomes measurable at intermediate stages. Each subproblem has its own closure conditions. Each can be verified independently. Each can fail without collapsing the entire enterprise.
The thing everyone gets wrong about decomposition is treating it as a preprocessing step. Researchers often decompose once, at the beginning, then treat the resulting pieces as fixed. They assume the decomposition is correct because it seems logically sound. But decomposition is not a one-time act of analysis. It is iterative. As you solve subproblems, you learn which decompositions were artificial and which were natural. You discover that some boundaries you drew were arbitrary, while others were load-bearing. The decomposition itself evolves.
Consider how this plays out in formal verification. A monolithic proof of a complex system's correctness is theoretically elegant but practically impossible. The state explosion problem is not incidental—it is structural. But if you decompose the system into modules with clear interfaces, you can verify each module against its specification independently. You do not need to hold the entire system in your reasoning at once. The verification effort scales with the complexity of individual modules, not the product of all complexities. This is not a marginal improvement. It is the difference between tractable and intractable.
Why this matters more than people realize is that decomposition changes what counts as progress. In a monolithic approach, you are either solving the problem or you are not. There is no meaningful intermediate state. You can spend months building infrastructure, refining algorithms, tuning parameters, and still have nothing to show for it if the final system does not work. Decomposition inverts this. You can solve the first subproblem completely. You can verify it. You can move on. The cost of failure is bounded. The cost of learning is distributed across multiple, smaller failures rather than concentrated in one catastrophic one.
This distribution of cost is not merely psychological comfort. It is economically rational. When you break a problem into ten subproblems of equal difficulty, you can allocate resources differently to each. Some may yield to existing techniques. Others may require novel approaches. Some may be parallelizable; others sequential. Some may have high-value intermediate results even if the final subproblem remains unsolved. A monolithic approach forces you to treat all difficulty uniformly.
What actually changes when you see decomposition clearly is your relationship to uncertainty. A hard problem is hard partly because you do not know which parts are hard. Decomposition forces you to make that distinction explicit. You must ask: which subproblems are well-understood? Which require research? Which are dependencies? Which are independent? This interrogation is not optional—it is the work itself. The decomposition is not a diagram you draw before solving; it is the map you build while solving.
The practical consequence is that decomposition strategies should be designed with revision in mind. Build in seams. Make interfaces explicit. Document assumptions about what each piece must do, not how it does it. Treat the decomposition as a hypothesis about the problem structure, not as truth. When a subproblem proves harder than expected, or when two supposedly independent pieces turn out to be coupled, you have learned something about the problem itself. That learning should feed back into the decomposition.
The researchers who solve hard problems consistently are not those who find the right monolithic approach. They are those who find the right way to break the problem apart, and then have the discipline to revise that breaking as evidence accumulates.