# Do not be too general There is a common problem as one reads and learns more of being *too general* in terms of formulating and solving problems. This is closely related to [Simplify the Problem](Simplify%20the%20Problem.md). The solution can be formulated as: > When formulating and solving a problem, start with the *specifics*. This likely will provide a nice set of [constraints](Constraints%20in%20Math%20and%20Science.md) to start with. Then, slowly widdle away any inessential features until you only have the essence of the problem. Note that this is somewhat different than simply applying "first principles thinking". The challenge is that, done incorrectly, first principles thinking can cause us to speak and reason so generally that we have lost touch with all constraints of our specific problem. That this point our generality is not helping us. We want to be operating in the *most optimally constrained* problem space possible. Too constrained (i.e. leaving in constraints that aren't essential) and we close ourselves off to discovering possible solutions. Removing useful constraints and our problem space explodes and grows almost without bound. As a concrete example, consider the usage of graph theory. At first it may seem as though you can reformulate *any problem* as a graph problem. And this isn't even incorrect! Any problem that has the concept of *entities/elements/objects* and *relations* of some kind between them can indeed for formulated as a graph problem. The question is, *what does that representation do for us? Does it help us compute? Solve problems?* A useful heuristic is: > As we formulate a problem more and more generally, we reduce the number of constraints that made it useful in the first place. --- Date: 20211120 Links to: Tags: References: * []()