Feynman Algorithm

The Feynman Algorithm:

  1. Write down the problem.
  2. Think real hard.
  3. Write down the solution.

The Feynman algorithm was facetiously suggested by Murray Gell-Mann, a colleague of Feynman, in a New York Times interview.


Another version:

"Haven't thought of anything, have you? No, neither have I. Think, think, think." -- WinnieThePooh from The Honey Tree by AaMilne


One interpretation is that Feynman had an unassailable talent, and few people had the ability to use this "algorithm." A counter-interpretation is that Feynman's skills weren't beyond any interested, thoughtful person; and that he himself believed, "What one fool can do, another can too."

Talent theory

Gell-Mann is a highly successful and highly trained problem solver (this is essentially what it means to be a theoretical physicist) and himself no slouch at this stuff (he has a Nobel prize for work in quantum physics), yet he was astounded by Feynman's ability. So he half-joking wrote down the algorithm.

Feynman was very good at solving tough problems. It is extremely unlikely that anyone reading this page is even remotely close to playing in the same league as Feynman. So Gell-Mann's point was that you can't do it, I can't do it, he can't do it, but somehow, Feynman often could.

This shouldn't depress you. Of course, with an easy enough problem you can do something similar (anyone can, if it is simple enough). Easy problems have lots and lots of successful solution strategies, after all. Part of Gell-Mann's point was that it is an annoying feature of people like Feynman. This is related to another comment about two types of genius. There are people who solve a problem the same way that you do, just much much faster. You can imagine doing the same work they had done, but rather than an hour or a day, you would have got to the same place after months of hard work and dead ends. These people are much like ourselves, only a lot quicker. Then there are the other people who show you a solution, and you have absolutely no idea how they even got started. Feynman fell into this latter group.

It is probably worth noting that Feynman, though having a healthy ego, attributed much of his success with difficult problems in having developed over the years a bit of an unusual 'toolkit' of methods.

[I'm fairly sure that at least parts of the above are direct quotes, or close approximations thereof, possibly from Gleick's book. Attribution would be a good thing.]

I'd be surprised if it were very close. I wrote the original version of the above, and I haven't read Gleick's book (or any other bio of Feynman, although I have read one of his own popular books), as far as I recall, so certainly there was no direct quoting. I am familiar with some of the work of both Gell-Mann and Feynman though, and the `Feynman Algorithm' quote and idea is one that floats around the community (hence my musings probably absorbed similar aspects). I don't have much to do with physics these days, though.


Skill theory

"Right. I don't believe in the idea that there are a few peculiar people capable of understanding math, and the rest of the world is normal. Math is a human discovery, and it's no more complicated than humans can understand. I had a calculus book once that said, 'What one fool can do, another can.' What we've been able to work out about nature may look abstract and threatening to someone who hasn't studied it, but it was fools who did it, and in the next generation, all the fools will understand it. There's a tendency to pomposity in all this, to make it deep and profound." -- Feynman, Omni 1979

"Winning a Nobel Prize is no big deal, but winning it with an IQ of 124 is really something." -- Feynman, referring to his tested IQ [I'm not sure the source of this quote]

GeraldSussman elaborates on this view of problem solving: "The most horrible thing that happens: give out a problem, student can't solve it. So you say, 'What's on your mind; how do you go about solving the problem?' So he says, 'Well, I make my mind a blank. And I'm hoping I'll get an idea.' They got this from some guru, some bad theory of mental activity."

To this end, Sussman explained "Problem Solving By Debugging Almost-Right Plans." He claims that currently, some smart people know how to solve problems in given fields. The important issue is to have every smart person know how to do it. http://www.archive.org/details/arsdigitacoll09 [38:00 into the talk]

Sussman gives an explanation, taken from EdgarAllenPoe, that we're not taught this because people want to maintain mysticism and job security. (Plus, it's hard to communicate these lessons without certain vocabulary from computing, which he considers its real legacy.) Further goes on to mention "talent theory" vs. "skill theory" of knowledge, which apparently comes from the historical class difference between natural scientists and engineers.


Anyone have any idea how you go about 'thinking real hard'? You get a problem, you write it at the top of a blank sheet of paper, you stare at the problem and the paper and... This doesn't work, of course.

Well, the algorithm is only guaranteed to work when performed by Prof. Feynman. Hence the name.

Non-Feynman Algorithm:

  1. Write down the problem.
  2. Ask Feynman.
  3. Copy down his solution.

Unfortunately, no longer executable :-(


The trick is not to think too hard. That way you think in parallel better :) -- JamesCrook


"Anyone any idea how you go about 'thinking real hard'?"

Yes, there is a book called HowToSolveIt that explores this very topic.


For me it usually requires a spark of some sort. That may be the problem itself, but often it's some aspect of the problem high-lighted by some notion or way of thinking about it . . . that springs to mind if I'm lucky after emptying my mind by trying to 'think real hard' about it.

In contrast, sometimes I desperately want to think hard and deeply on a problem, and my thoughts seem scattered, characterized by an unwillingness to commit to think about undertaking the effort . . . though why one should be held hostage by the notion that such a thing as 'thinking about undertaking the effort' is even necessary is beyond me but often not obvious to me at the time that this is even going on.


As someone who uses this problem solving algorithm far too often.

How to use the FeynmanAlgorithm:

  1. Write the problem down, in an unambiguous way.
    • Often this is just as hard as the next step. Indeed, really, really understanding the problem is sometimes the only hard bit: once you really, really understand the problem, the answer may be obvious. Of course, you don't have to wait until understanding the problem before moving on to the next step, that way lies AnalysisParalysis, just stick a StakeInTheQuicksand and go for it!

  2. Become convinced it's important, really important. Think about odd ways to solve it, things you wouldn't tell other people for fear of being laughed into the next century. Look at simple things, look at really complicated intricate solutions. Then talk to others. Talking to others will allow you to crystallize some of the ideas you have, and produce more ideas for you to think about. Repeat until you have an answer you can write down. If you do this right, immediately before you come up with the answer people will think you're almost obsessed with the problem, and the answer to it.

    • Note: If you don't have people to talk to, write down some intermediate results or something to make them become real.
    • Some problems don't have answers, only compromises, or proofs of impossibility. These are also valid answers if you can show that a real answer doesn't exist.

  3. Write the answer.

-- 'IraCooper'


The FeynmanAlgorithm is an extension of Classicism. Nowadays, people are most likely to write a "first try" down and iterate from there in the spirit of Modernism. This is the WorseIsBetter, ReleaseEasyReleaseOften (FreudianTypo) idea. It's potentially less efficient, but in practice it is more responsive. PostModernism would rather have us write down the solution, think real hard, and then write down the problem. -- SunirShah


Perhaps it is worth noting that even if this method did work reliably for Feynman, there is no reason to expect that it will work for everyone. Even adjusting for the hype surrounding him, RichardFeynman was significantly 'brighter' (for some value of bright) than probably everyone who will log on here. For the average plodder, some iterative method is almost always going to work better...


Actually, EdwardDeBono came up with lots of techniques for thinking similar to this. -- KeithNicholas


Feynman didn't really work like that. He enjoyed collecting tricks throughout his life that allowed him to give the impression of wizardry, both in arithmetic and safe cracking.

In fact, he practiced refactoring a lot. His famous Red Books are like a refactoring of the traditional undergraduate Physics course, particularly Volume III on quantum mechanics, which is entirely the other way around to the usual chronological presentation (which was still the mainstream approach 10 years ago when I was studying it.) That's because the refactoring made it clearer, but only if you were (at the intellectual level of) Richard Feynman. It was far too hard for an undergraduate course

I'd say the real FeynmanAlgorithm is to continually (iteratively) rebuild your entire understanding from the ground up on a regular basis, and see if anything new falls out. "What I cannot create, I cannot understand," as he put it. -- DanielEarwicker

The refactoring point is very important. Undergraduate physics is taught in a strict order, one that makes little sense in general - mechanics first (as the "easiest") thing to learn, then energy (which makes many difficult mechanics problems trivial!), then more advanced topics in what is called Modern Physics. The Feynman lectures turn this ordering on its head, starting with the deep secrets, and as a result the reader is left with less of a "Huh. Why didn't you teach me that before?" feeling, and less duplication of effort is needed. Classic refactoring. But with an associated FeynmanEffect.

Unfortunately, not a very good refactoring for the purpose of teaching undergraduate physics. There is a reason these books are beloved by many a graduate student and professor (excepting the third, perhaps), but hardly used at all in undergraduate lecture. This was even evident when Feynman was teaching out of them! Many places have tried, and it just doesn't work as a syllabus for average physics students.

[True. But they are valuable for some people, anyway, including some above average undergrads, which is no small thing. BTW don't forget that Feynman didn't literally write those books (nor any books at all); he lectured, and others took notes and eventually edited their notes into the books.]

True, although the texts are quite faithful to his lecture notes, and others have tried to lecture from the notes themselves (without much success, having the same problems that Feynman did [note Feynman was undoubitably a great lecturer]). Of course it is always valuable to look at things from different directions, and this is probably the primary gain of the lectures, really. I wouldn't be surprised if there were better pedagogical sources for everything in them, but Feynman did present a nice way of approaching these areas. So, as noted, they are a good thing, they just failed at their original purpose. Nothing wrong with trying!


Some significant portion of very hard problems are solved without conscious awareness. The literature is full of scientists recounting their discovery happening while doing something else, like sitting in a bath tub or riding on a train, without focusing on the problem at all. The pattern seems to be:

  1. Own a very smart brain.
  2. Acquire an understanding of the problem.
  3. Think real hard.
  4. Ride a train, take a bath, run a long distance, etc.
  5. Repeat steps 3 through 4 as necessary.
  6. Receive an unexpected insight from some non-conscious part of your brain.
  7. Write down the solution.

Steps 4 and 5 remind me of DouglasAdams working toward a deadline.


Most of this discussion reminds me of a scientific cartoon I saw. A professor is writing a proof on a blackboard. The last line is "Ergo, this is true", and the second to last line is "suddenly a miracle occurs." It appears that "Think real hard" is the equivalent of that miracle.

What does someone do when he thinks about a problem?

  1. Build a mental model of the environment
  2. Create mental scenarios to test the model
  3. Mentally do the tests and validate the results
  4. Mentally correct the model when incorrect test results occur
  5. Mentally repeat the previous two steps until all tests results are correct
  6. Mentally add additional tests to cover a larger range of possibilities and repeat the previous three steps.

"Thinking real hard" is really no different than any other problem solving approach, it merely uses a different environment. When done thinking real hard, though, one does not have a solution, only a proposed solution. This proposal still needs to be validated within the real world before it is accepted as a solution (see FermatsLastTheorem).

Contrary to what seems to be proposed on this page, few proposed solutions come from merely mental modeling. A quick visit to the home or office of the thinker will quickly reveal blackboards and notepads full of written equations modeling the problem and testing the proposed solution. Few are capable of keeping this level and quantity of details within their heads; they need to create a more persistent model.

Don't buy into the belief that a solution will appear out of no where by just thinking real hard. One needs to do work outside of his skull.

This utterly misses the point. It's not that you, or people in general, can effectively implement the FeynmanAlgorithm, it's that Feynman could.


Then there is Friedrich Kekule's algorithm:

  1. Write down the problem.
  2. Think real hard.
  3. Have a nap.
  4. Dream the solution.

Kekule used this algorithm to discover the cyclic structure of the benzene molecule (see http://www.uh.edu/engines/epi265.htm).


DanielHillis offered one (perhaps sentimentalized) perspective on Feynman's motivations:

"For Richard, figuring out these problems was a kind of a game. He always started by asking very basic questions like, 'What is the simplest example?' or 'How can you tell if the answer is right?' He asked questions until he reduced the problem to some essential puzzle that he thought he would be able to solve. Then he would set to work, scribbling on a pad of paper and staring at the results. While he was in the middle of this kind of puzzle solving he was impossible to interrupt. 'Don't bug me. I'm busy,' he would say without even looking up. Eventually he would either decide the problem was too hard (in which case he lost interest), or he would find a solution (in which case he spent the next day or two explaining it to anyone who listened). In this way he worked on problems in database searches, geophysical modeling, protein folding, analyzing images, and reading insurance forms."

"He was always searching for patterns, for connections, for a new way of looking at something, but I suspect his motivation was not so much to understand the world as it was to find new ideas to explain. The act of discovery was not complete for him until he had taught it to someone else."


Feynman is so smart, he knew you would read this page today. He faked his own death and is living in Monaco. My tin-foil hat only amplifies the strength of Feynman's devices.

Feynman is so smart, when people exclaimed, "Who do you think you are, some kinda Einstein!?" he'd reply, "Why yes, I am feeling sluggish today."

Feynman is so smart, his brain warps numbers, truth and his own words. If you score higher on an IQ test, he'll still beat you. He may only score 124 points, but each point is bigger than normal.

[Very nice. Still (not that I.Q. is the end-all and be-all; it is problematic; but skip that for argument's sake), the average college grad has an I.Q. of 120. Feynman was genius-plus, somewhere apparently between 160 and 200. A highly motivated average college grad will not be able to duplicate any of Feynman's results using any of Feynman's techniques in the same order of magnitude of time, if ever. Raw brainpower is, indeed, overly-mysticized sometimes, and there's every reason to think that Feynman added to his own hype, but he was in fact brilliant - stand-out-brilliant amongst other brilliant people - and you can't discount it any more than you can discount horsepower in an internal combustion engine.]

[He also had certain unusual talents and certain unusual learned/discovered skills, so anyone drifting through the wiki who has an I.Q. of 200 will still not necessarily be able to match particular Feynman achievements (which is getting into the area of why I.Q. is problematic, so I'll stop there).]

[It should be obvious that, if IQ means anything, then his IQ was way higher than 124. Gleick's bio on Feynman was called "Genius" because there was nearly universal agreement from everyone except Feynman himself that Feynman was in fact a genius. In terms of IQ, "genius" means 150/160 on up, depending on the particular IQ test.]

[But IQ was a side issue. The point could be rephrased as: if you're not a supergenius, don't expect to be able to use Feynman's methods.]

I don't understand the point of this section. Pointing out that Feynman was unusually bright is sort of like pointing out that Carl Lewis was an unusually fast runner. That doesn't make either of them `better people', but it notes that they were unusually good at something. You aren't as bright as he was, you aren't as fast as Carl was, and you can't play like John Coltrane. So what?

The point is that there is a fairly widespread controversy about to what extent Feynman's unusual abilities were the result of intelligence versus skills he developed (in part because of Feynman's many self-deprecating comments), and I think it should be obvious (although apparently it is not, to everyone), that Feynman was both a supergenius and he had developed a large number of unusual skills (such as techniques for mental arithmetic, solving integrals, etc). ....And yet his tested IQ was only 124: if you're testing for intelligence that's a major false negative.

To not understand the point of this section in particular appears to mean that you are in the camp (with me) that agrees that he was in fact a genius, despite his disclaimers to the contrary.

Elsewhere on this page, some people apparently deny that even Feynman ever used the FeynmanAlgorithm. I believe there is strong evidence that Feynman did use it -- in addition to many, many other algorithms as well -- and that although many of his other techniques are usable by many other people, the Feynman algorithm itself is available only to a rare few.

This may be a matter of degree; some of us may be able to do the FeynmanAlgorithm at, say, 1% of the intensity that Feynman did, so really I mean "as successfully as Feynman, on problems of equal difficulty", or some such qualification.

There is no widespread controversy amongst those competent to assess his work, so I don't see the problem (notwithstanding vociferous punters). Certainly he himself employed a large number of different problem solving techniques, as would anyone skilled in his field. He also was amongst the brightest of his generation. People take this `algorithm' far, far too literally, and as a result some fairly inane things have been said on this page.


Discussion on skill theory

Sussman is obviously both right and wrong. He's right that there are teachable, workable approaches other than the mystic-blank-mind approach. But he is completely incorrect in basically saying that the latter is a bunch of nonsense; on the contrary, the blank-mind approach actually does work for some people - but not for everyone.

It works for me in particular, which means that the onus is on Sussman to prove that it's nonsense. The null hypothesis is not knowing whether it's nonsense or not. He's taking a strong stand.

He is declaring himself to be in the category for whom it does not work, and that's fine - he's a brilliant guy who has his own obviously workable approaches to problem solving - but it's not fine for to dismiss out of hand approaches that are, in fact, well-known to work for some people, just because they don't work for him.

The blank mind approach is a way of paying attention to one's own intuitions, which basically is about the highly parallel pre-conscious processing that can create insights as a gestalt rather than as the result of a long sequence of logical steps. Such intuitions still need to be tested by logic, of course.

-- DougMerritt

Fortunately you can probably have your cake and eat it too! It appears that Sussman was only talking about gurus who tell their students that the OneTrueWay that everyone solves problems was to blank their minds. If you look at the context, he's talking about students who weren't offered by their earlier educators different ways to solve problems, and come to his MIT classes unable to solve problems any other way. (Now, I don't have a moment to watch the recording repeatedly, so I'm open to corrections on what Sussman claimed.)

In particular, he presents cute algorithms describing how people might solve problems; these are specified at high levels, which means any sort of mystical technique could certainly work, if it works for you. A trivial case is when you get the right answer immediately.

Ramanujan may be a case study here -- I believe he once explained that the goddess Namagiri game him problem-solving insights. But IIRC Hardy and Hofstadter mentioned that Ramanujan also erred, and that one good thing in his favor was that he was able to modify wrong assumptions he made. [note: when refactoring, need to cite]

-- TayssirJohnGabbour

I have no problem with that. I like the notion of multiple tools in the toolbox, and I applaud Sussman for teaching new ones. (P.S. I greatly admire Ramanujan, too, but I understand very little of his work except in broad outline.) -- DougMerritt


In his book "Indiscrete Thoughts", the mathematician Gian-Carlo Rota describes another "Feynman method":

"Richard Feynman was fond of giving the following advice on how to be a genius. You have to keep a dozen of your favorite problems constantly present in your mind, although by and large they will lay in a dormant state. Every time you hear or read a new trick or a new result, test it against each of your twelve problems to see whether it helps. Every once in a while there will be a hit, and people will say: 'How did he do it? He must be a genius!'"

This advice is also given by RichardWesleyHamming in YouAndYourResearch, about halfway through. Hamming and Feynman did work together, so it's unclear who should get the credit.


Don't just write the problem, write the problem in an email to Feynman, including everything that you know and tried so that He is up to speed with where you are. This forces you to organize your idea and slashes through any imaginary loops you may think you have.

When staring at the paper in zen-like meditation doesn't work, the engineer in me will sometimes resolve to brute force approaches just to get an answer and work backwards. This means busting out the protractor for geometrical problems, excel spreadsheets for those who don't code and need an answer to an iterative problem. Brute force approaches can take a lot of time and end up being dead-ends if you give up or start with the wrong assumptions, but you'll get better acquainted with the problem, that's for sure.


I have used the FeynmanAlgorithm a few times to great effect. Sometimes it is in fact possible to reason out an odd bug. It is impressive to take a bug report for seemingly impossible behavior from apparently straightforward code, think really hard, come up with the problem, and fix the bug and know your fix is right before you even test it.

From my indications, it seems to require massively parallel thinking more than anything else. Remember Feynman and the bongo drums? It was said he could play 10 beats with his right hand to 11 with his left. I'm guessing this is a different application of the same basic skill. I have learned massively parallel thinking to the point of often being to run a nondeterministic FSA in my head to solve a tricky problem. See TruckNumber for a problem that if this is understood the original definition works, otherwise it doesn't and trying to fix it results in worse definitions. --JoshuaHudson


Contrast: ExtremeAlgorithm

See Also: RichardFeynman, MysticalProgramming, UngarMethod, HeisenBug, SolveForSpecialCaseThenSolveForGeneralCase, TheoryOfInventiveProblemSolving YouAndYourResearch


DecemberZeroFive

CategoryProblemSolvingStrategy


EditText of this page (last edited December 9, 2014) or FindPage with title or text search