Expand To Contract says that sometimes you can simplify a problem by complicating it.
The class of problem
Improvisational comedy provides lots of examples. For example, in the Alphabet Game, the players must create a scene in a given location or about a given topic, but every sentence must start with the next letter of the alphabet. The scene must end with a sentence beginning with 'Z'. The scene must proceed coherently, and the final sentence must neatly tie up the events of the scene.
The basic type of problem to which Expand To Contract applies is one in which you have to find a connection between two disparate things. For example, in a geometry problem, you might need to relate the length of the side of a certain triangle to the diameter of a certain circle. The two quantities seem independent, but actually they're not. Hence the need to contract: you start with an infinity of possible relations between the side and the diameter, and somehow you have to find some cognitive path that will culminate in finding the one and only one true relation.
If you've ever tried to write fiction or poetry, you've run into this kind of problem. The plot is here, and you want to get there, and somehow you need to find a path. In a well-written poem, every word seems absolutely necessary, and any change would ruin the rhyme, the rhythm, the theme, the imagery, the flow, the magic. Somehow the poet found a way to solve all of those problems simultaneously, such that the solution to one of them was the solution to all of them. It seems impossible.
Common to all these problems is a mind-boggling number of possibilities. The number of possibilities is so great, you have no idea where or how to begin searching. More importantly, when you examine a possible next step to pursue, you have no idea how to evaluate it. For example, think of all the possible sentences your lead female character could say next. Two such sentences are "Alabama was a rough place back in the 1930's" and "We're going to have to throw out the cold cuts." This gives you an idea of the vastness of the set you're playing with.
What's more, you can't tell, for any given sentence, whether it will advance the plot toward the goal you're looking for, or whether it will steer away. If you've struggled with math problems, you know this state of confusion. "Will transforming this equation by this rule get me closer to a solution or further away?"
What "contract" and "expand" mean
The verb "contract", for purposes of this page, means to settle on a possibility that solves the problem at hand, such that you don't have any more uncertainty or confusion or chaos--or at least to reduce confusion. Sort of like what happens at the end of a Why Clublet:Game Of Go, when there are no more moves to make, and everything is perfectly solid and stable--quite the opposite of the beginning of the game, when everything is so open-ended that it's hard to see why any one move might be better than another. Also called "tying up all the threads", "getting all your ducks in a row", "making everything nice and pat".
The verb "expand", for purposes of this page, means the opposite: to throw more things onto the table, thus creating more confusion and instability than before.
How To Do It With Brainstorming
An incredibly useful technique in this type of heuristic is brainstorming. Write down anything related to the problem when you face a blank page. Add to the list for five minutes, free-associating with the subject or other terms that come up. Once you have a list (expansion) make marks or category names down the side to group, rank, reference or otherwise expand on the initial brainstorm. Cross out anything that doesn't sit well. Now for a little "work." Pick the aspects of your that have the right feel, and copy them onto a clean sheet. Seriously, just do it out, go through this motion. Five more minutes.
This works on the simple fact that human perception is more or less sequential, and deals with what is in sight better than what is one or two steps away, and judgement is automatic.
I use a simple wiki to brainstorm and link ideas together. Additionally, a month later I can Google site:search what I have and narrow into things that way.
The heuristic
Expand To Contract says that often you can find a solution by adding some new, arbitrary element to the problem. That is, make the problem more complicated, and it will often simplify itself.
To move the plot toward your goal, just throw something in from out of the blue. Plop Alabama down, and then see if you can invent a relation between the current situation and Alabama. Once you take Alabama (or whatever) as a given, that you must work with, suddenly you get lots of ideas. What's more, they're all pretty good. And as you work out how to weave Alabama into the story, the way to get to your intended plot destination, strangely enough, just falls out easily, in a way you could never have anticipated.
Alas, this description is poor, and Expand To Contract is the sort of thing that you need concrete experience with to really appreciate. Naturally, it works best when combined with Just Say Yes.
Here's another example (though maybe not a good example). The Rubik's Cube is a very difficult puzzle. Somehow you have to find a path of rotations that will move all the pieces back to their start positions. The Cube is hard because each possible rotation moves eight pieces at a time. That is, there are complicated side-effects to every possible move. Somehow you have to invent a sequence of rotations in which all the side-effects just happen to produce exactly what you want. Well, a simple exploration that gets a lot of people started is to start making rotations in simple, repetitive ways, just to see what happens. Most people who try this quickly stumble onto FFRRFFRRFFRR (do this three times: turn the front face 180 degree and turn the right face 180 degrees). This swaps two pairs of edge pieces on opposite faces, and leaves the rest of the cube unchanged. Aha, that could be very useful...
Why does this heuristic work so well?
Anyone have any ideas on why Expand To Contract works?
There seem to be two aspects operating simultaneously:
1. Plopping down an arbitrary element increases the number of possible connections. Think of your start point and your end point as little squids with tentacles writhing about, looking to latch onto something. They only have a certain number of tentacles, and there's a small chance they'll ever connect. So put another squid down in between them. Now there are a lot more tentacles flapping about, and consequently much greater probability of forging a link.
2. Plopping down an arbitrary element decreases the number of possibilities to consider. With that new arbitrary element plopped down, a good solution usually becomes obvious. That is, it stands out. The arbitrary element imposes a structure onto the original, mind-boggling space. This new structure rules out nearly everything and includes pathways that zip you around from one point to another. Sort of like installing a big transportation infrastructure of wormholes into the original space. Now you can get from here to there in only a step or two. Points that seemed far away in the original space, when your only heuristic was "try every possibility", are now close enough together that you can see a path.
So when you plop an arbitrary element down, you are really contracting. It just doesn't feel that way.
The above is my terribly clumsy first attempt at explaining this. Please, if you know what I'm talking about, or even if you don't, find some better way to get the idea across. (Hmm, you might have to plop something new down in order to find a better exposition.) --Ben Kovitz
I would say that the two things at work are:
1. The 'distance' between your constraining points is closer, so although you now have two sets of connections to consider the amount of work needed to consider each connection could be more than halved 2. You might decreasing the total number of options to look at .
Each may operate at the same time or not depending on the exact problem. i.e. I think its possible that you actually increase the number of connections to consider, but the overall work can still decrease if it is now much easier to consider each connection -- James Keogh
-I say Arbitrary insertion between two endpoints ends the mental/anxiety stalemate/standoff. (Random is often beautiful, btw) This then triggers the 2 natural human instincts of "Find Connections Between These Things" and the "Pruning Instinct". It's an "Archipelago Architecture" (or "String of Pearls") of thinking. Ex: It's really hard to get from Island A to Island C, and there's this fluid, ocean-y stuff inbetween. -If only I could plop down some kind of ...Island B! in the middle to help the transition... -Once the stalemate is ended, you're presented with a new element and some Instincts (and Context Galaxies about the inserted object) are triggered, your inspiration takes over and you're off and running again. Cheers! :) -William Lamson
Does Expand To Contract rub human nature the wrong way?
Humans naturally contract--eliminate combinations using their mighty brains--but don't naturally expand. Except in dreams--and it may be that the wild expansion of dreams is an essential mechanism of problem solving. How many times have you woken up knowing the solution to a problem that you couldn't solve in the daylight? Expand To Contract explains how. Applying this to a novel, you need merely pick a title that relates to your theme, and a first scene with dramatic appeal, and then start expanding until a climax that relates to your theme is obvious to you. Then winnow away the parts that are unnecessary, and sell it.
Alas, some of us expand and expand and expand, and would never get anything done if it weren't for pair programming. We need Contract To Expand, too, and we need the help of others to do it.
This reminds me of several things. (Well, it would.) There's the "nine-dots" puzzle (see http://www.period.com/puzzles/puzzle02/) in which you have to bring to the foreground an "extra" assumption about the problem in order to solve it.
More generally, I have the concept of "temperature" highly activated right now as a result of reading Hofstadter's (et al.) Fluid Concepts and Creative Analogies, and a lesser link to Wiki Wiki:Simulated Annealing.
This is reminiscent in the following way : "bringing in something new" temporarily increases the temperature of a given situation, but at the same time provides opportunities for new configurations that might well have a lower temperature than the original situation.
Yes. Expand To Contract is enlarging the game - adding players, rules, board-size, and so on. Doing so doesn't just increase the number of possible interactions, but the number of possible types of interaction. The game of Go, for example, can be played on a 9x9 board - but there are several game features, such as Senseis Library:Ko Fighting, that don't emerge until you play on a full-size board.
Etymology trivia
"Improvise" has an s, not a z, even in American spelling. This is because rather than deriving from the Greek suffix -ize, the last syllable derives from the same Latin root as "visual". Literally translated, the roots together mean "without looking ahead" or "without foresight".
Another attempt at defining the class of problem
Expand To Contract is a heuristic for problems in which you need to search an astronomically large space for a solution that simultaneously meets several constraints, each of which seems incompatible with the others.
To take another example from improvisational comedy, at a show the performers had to put on a U.S. Senate panel discussion about past lives, and incorporate lines of dialog written down by audience members during the intermission. (The ideas of the U.S. Senate and past lives were suggested by the audience a few seconds before the scene began.) One of the lines was, "Won't you bless my kohl-rabi?"
This is a fine example of seemingly incompatible constraints: Senators don't talk about past lives, blessing has nothing to do with kohl-rabi, and neither senators nor past lives has anything to do with asking someone to bless your kohl-rabi.
Expand To Contract says that often you make the problem easier by throwing in another constraint.
Actually, the above example sucks, because there were enough constraints that getting from past lives to blessing kohl-rabi was easy, and didn't require adding much. The performer waited until a few other "senators" had spoken, and then lamented that no one is discussing governmental support for the past lives of animals and plants, especially the root vegetables in his constituency. This soon led to responses acknowledging the importance of the kohl-rabi lobby, difficulties with separation of church and state, etc.
The problem would have been much harder had it been, "You're a bunch of senators at a panel discussion. Now say something funny."
Why Clublet:Improv Comedy is not the only type of problem of this class, but it illustrates the problem especially dramatically. Interestingly, the notion of Expand To Contract is not consciously understood by most improv performers, and many don't use it, relying instead on their ability to be clever--that is, to contract right now, without complicating the problem (which nearly always produces dull, droll results). All improv performers do consciously learn Just Say Yes, though.
No doubt the type of search space to which Expand To Contract applies requires certain properties. Any ideas?
In seemingly underconstrained problems, there are hidden constraints that account for the difficulty. The insertion of these hidden constraints is a human property that computers don't have, and the contrast is sometimes funny. Humans seem to make all problems difficult, or else just ignore them. In the example above, "You're a bunch of senators at a panel discussion. Now say something funny.", if this were a truly unconstrained problem, almost any utterance would suffice. It's a hard problem because of the insidious assumption that "funny" means something like "universally funny", guaranteed to make an arbitrary audience laugh in the majority. If you make that constraint explicit, then remove it, the problem becomes trivial again.
Interestingly enough, the "constrained" problem really was the problem, and it got solved easily. The panel-of-senators example was from a show given at a church, and the audience included an extremely wide cross-section of the United States: kids, middle-American WASP senior citizens, computer geeks, a woman with green hair, and lots more. And the majority laughed. That's the amazing thing about solving this sort of problem: there's no cheating. Perhaps one reason why idea-oriented humor is so joyful is that it points out that these problems are not nearly as hard as they seem, without scaling them down or redefining them or otherwise cheapening them. They really can be solved--easily, even. --Ben Kovitz
One way to make such a constraint conscious is to introduce an element in counterpoint, i.e., an element that seems like a non-contender. So, in response to the challenge above, I say "Mike Smith", and to my surprise, somebody in the audience "got it". Then I have to figure out why that worked.
My thesis is that hard problems that seem hard because of the vastness of possibility are actually hard because of unconscious constraints introduced by the problem solver. All difficulty has its roots in constraint.
Not according to Expand To Contract. Expand To Contract says that, strangely enough, some difficulty has its roots in lack of constraint.
You mean not according to you. Let's take an example, shall we? Perhaps the kind of difficulty you refer to is motivational difficulty. The examples should show the way. Lead on...
Tetris
Expand To Contract is beautifully illustrated by Tetris, a video game of refactoring. In Tetris, well-refactored "code" totally disappears. Pieces start out "expanded" as they begin their descent, with the mission of "contracting" themselves against the heap at the bottom. What happens during "expansion" is critical, as it's not possible to turn a piece once it's landed.
In Tetris, often you can't "contract"--that is, you can't turn the current piece in such a way that it forms a complete row that then disappears. So you've got no choice but to expand--to place the piece in such a way that it creates new potential for contractions of a sort that you can't fully anticipate just yet.
An artist's aphorism
"Form is liberating."
That is, a highly constrained sort of form within which to create, like sonnet form or sonata form, is actually much more conducive to creativity than a blank sheet of paper.
Commenting on this Fred Brooks (http://cseng.aw.com/book/related/0,3833,0201835959+12,00.html) says, "The worst buildings are those whose budget was too great for the purposes to be served."
See also Just Say Yes, Make A Mess And Clean Up, How Humor Works.
And then see Contract To Expand.
But see: Nature Of Order, Noo Has Nothing To Do With Software.
http://greenlightwiki.com/improv/Context explains in concentrated form how this principle applies to improvisational theater.
Fixed some link vandalism. -- Rick Schwall