p.3 A great reward awaits those who can effectively solve problems, and you can develop this talent.
It begins with the proper understanding of the purpose to be achieved. All too often, in an attempt to utilize a familiar
algorithm, we change the purpose to be achieved simply to fit the algorithm. It's as if, armed with only a hammer, we
needed to screw a screw into a board: we pound the screw into the board even though we know we'll never be able to unscrew
it again. Armed with a hammer, everything looks like a nail... Having made a judgment as to the degree of fidelity
required in modeling the decision maker's purpose, the next step is to choose a tactic that will find an optimal allocation
of the available resources... Effective problem solving requires more than a knowledge of algorithms;
it requires a devotion to determining the best combination of approaches that address the purpose to be achieved within
the available time and in light of the expected reactions of others who are playing the same game. Recognizing
the complexity of real-world problems is prerequisite to their effective solution.
p.9 One of the reasons that problem solving is often difficult is that we don't know where to begin.
Once we have some sort of course charted out in front of us, we can follow that path and hopefully arrive at a solution. But
conjuring up that course to follow is a significant challenge.
p.16 Every time we solve a problem we must realize that we are in reality only finding the solution
to a model of the problem. All models are a simplification of the real world... The process of problem solving
consists of two separate general steps: (1) creating a model of the problem, and (2) using that model
to generate a solution... The "solution" is only a solution in terms of the model. If our model has a high degree
of fidelity, we can have more confidence that our solution will be meaningful.
p.18 Let's rephrase this discussion. There are two possible approaches [to the problem being discussed].
The first uses an approximate model of a problem, and then finds the precise solution. The second approach uses a precise
model of the problem, and then finds an approximate solution.
p.31 Whenever you solve a real-world problem, you have to create a model of that problem first.
It is critical to make the distinction that the model that you work with isn't the same as the problem. Every model leaves
something out. It has to - otherwise it would be as complicated and unwieldy as the real-world itself. We always work with
simplifications of how things really are. We have to accept that. Every solution we create is, to be precise, a solution only
to the model that we postulate as being a useful representation of some real-world setting that we want to capture. The trouble
with models is that every one of them has an associated set of assumptions. The most common mistake when dealing with a model
is to forget the assumptions.
p.35 If we can really understand the problem, the answer will come out of it, because the answer is not
separate from the problem.
p.35 Three basic concepts are common to every algorithmic approach to problem solving. Regardless
of the technique that you employ, you'll need to specify: (1) the representation, (2) the objective, and (3) the evaluation
function. The representation encodes alternative candidate solutions for manipulation, the objective describes the
purpose to be fulfilled, and the evaluation function returns a specific value that indicates the quality of any particular
solution given the representation (or minimally, it allows for a comparison of the quality of two alternative solution).
p.37 The evaluation function: The objective, however, is not the same thing as the evaluation function.
The latter is most typically a mapping from the space of possible candidate solutions under the chosen representation to a
set of numbers (e.g., the reals), where each element from the space of possible solutions is assigned a numeric value that
indicates its quality. The evaluation function allows you to compare the worth of alternate solutions to your problem as you've
modeled it. Some evaluation functions allow for discerning a ranking of all possible solutions. This is called an ordinal
evaluation function. Alternatively, other evaluation functions are numeric and tell you not only the order of the solutions
in terms of their perceived quality, but also the degree of that quality.
p.271 Sometimes it's difficult to apply a general problem-solving strategy to a particular
problem, as the problem at hand is simply unique in some sense. When this happens, you have to analyze the problem
and develop a method that's just right for the particular instance you face... What can we do? It seems that we
have to discover something special about this problem, something that would help us move forward. This is probably
the most difficult part of problem solving and there are no rules for how to do it. The only hint we can give here is that
such discoveries usually come from experimentation and experience.
p.310 Clearly, problem solving is more than finding the one best solution. It is at once (1) defining
the problem, (2) representing the possible candidate solutions, (3) anticipating how the problem may change over time, (4)
estimating the probabilities of the possible changes, and (5) searching for solutions that are robust to those changes.
Moreover, it is the action of re-solving the problem as it changes based on the most recent available information. Problem
solving is a never-ending process.
p.484 Problem solving is an art. As with all artistic endeavors, it requires practice. One way to
become really good at problem solving is to continually challenge yourself with puzzles... We recommend that
you always find some new book of puzzles and brain teasers to keep your problem-solving abilities honed.. Here are
ten heuristics for problem solving that we'd like you to keep in mind as you face real-world problems.
1.Any problem worth solving is worth thinking about. Think about different way to manipulate the
information that you've got at hand. Spend the time you need to think about how to best conceive and develop a useful
approach.
2.Concentrate on the essentials and don't worry about the noise.
3. Sometimes finding a solution can be really easy. Don't make it harder on yourself than you have to.
4. Beware of obvious solutions. They might be wrong.
5. Don't be misled by previous experience.
6. Start solving. Don't say "I don't know how." Try something. If it doesn't work... try
something else... Another essential aspect is to "play" with the problem.
7. Don't limit yourself to the search space that's "defined" by the problem. Expand your horizon.
8. Constraints can be helpful.
9. Don't be satisfied with finding a solution. Is the solution unique? Are there other
possibilities?
10. Be patient. Be persistent.
If you keep these ten "commandments" in mind, your problem-solving prowess will become formidable, but don't
forget about the danger of making easy generalizations.
p.515 The best way to learn about problem solving is hands on. You have to experiment with different
ideas, apply them to problems, and assess the results.