By Eric Bonabeau
On August 29, 2000, I had three babies. One girl named Capucine, one boy named Hippolyte and one company named Icosystem (well, technically, I hired the company's CEO on August 30, but you get the idea). Given that together the three have consumed all of my time and energy over the last ten and a half years, I do not feel qualified to write about anything else. And although I would love to write about my delightful parenting experience (and how amazing my kids are), this blog's readers will probably be more interested in the things I have discovered on my journey with Icosystem. Luckily, Icosystem's interests cover a lot of different domains, albeit through a common lens: how to make decisions in a complex world.
The ominous panda generator and the addictive baby-naming site Nymbler are two examples of what we, at Icosystem, call the "hunch engine." When searching for a baby name (or an ominous-looking panda), you don't really know what you are looking for. Hopefully you'll know it when you see it. But random walking through the vast universe of baby names (and panda faces) can become rapidly boring, and unlikely to produce a real breakthrough. Have you noticed, for example, that most baby-naming books list names in alphabetical order? By the time you have reached the letter C, you no longer want to have a baby. Instead, Nymbler follows your hunches: I kind of like Ivy and Lily, but not enough to name my baby girl Ivy or Lily. On the other hand I do hate Amanda -- reminds me of a pest back when I was in second grade. These are feelings and hunches. How can we leverage them?
The hunch engine uses a computational technique known as "interactive genetic algorithms" (the idea for which was first mentioned in Richard Dawkins's The Blind Watchmaker). Genetic algorithms mimic the process of evolution by mutating and recombining the best members of a generation (Ivy and Lily) and making sure the worst has not offspring (sorry Amanda!). With interactive genetic algorithms, the user tells the machine what's good and what's not. For example, by picking Ivy and Lily, you are implicitly driving the hunch engine toward flower names -- even though you may not have realized it before. And within a few clicks, you will have found Rosemary, the name you really wanted without knowing it. The secret, however, is that the hunch engine is constantly adding "noise" to your choices, trying to expand your horizon while at the same time offering variations on your selections. The whole becomes a source of serendipitous encounters.
Situations where we don't know what we are looking for abound. Beyond baby names, you may be looking for a name for your pet, your company, your product or your website. You just want to escape for a few days but don't know where, and you don't know what might be available at a reasonable price. Or you're in the mood to go out tonight and would like to explore options. Or you'd like to design your own wallpaper but don't know how to explore all possibilities. More generally, product configurators (for cellphones, computers or jeans) are usually limited or daunting. Or you're looking for a tie to go with your new shirt: here again, have you ever tried shopping for ties online? Spend ten minutes and you're left feeling dizzy. Yes, we even have a hunch engine for shopping for ties!These are all examples where you would like to explore the space of the possible but it's a really, really big space.
The solution consists of outsourcing your left brain to the algorithm and maintaining right-brain control over what's interesting -- and what's not. This division of labor between human and machine combines what machines are best at (sifting through lots and lots of stuff) with what humans are best at (finding patterns and using our experience and feelings). The hunch engine covers a continuum of situations, ranging from search (for example, finding a baby name) to design (for example, create your own wallpaper or a name for your company). As such, it is a form of intelligent design by means of evolution.