Bounding Problution.

Problutions (noun, pl.): the problems that are an inherent part of solution to a very difficult and complex problem. These problems arise from within the solution itself, and are extrinsic to the original problem.

Lately, I’ve been feeling a bit of ennui, despite preparing for a move to UCI. I’ve also bits from Minksy‘s Society of Mind, Kauffman‘s At Home in the Universe which got me thinking:

Some of the problems in life are complicated, sure. But, that doesn’t mean a large brain is worth developing. Bacteria are enormously successful, by volume, mass, sheer number, range of environments, pretty much any way you measure evolutionary success, they’ve outdone us humans by several orders of magnitude. Yet, they have no brains, no language, no society, no bureaucracy, no wars, etc. When faced with the problem of finding and exploiting an evolutionary strategy, simple solutions are very effective. And it really gets no simpler than a bacterium, and no more effective than horizontal gene exchange. Furthermore brains come at a very high cost: cranium is needed for protection, it consumes an immense amount of resources (in humans it accounts for about 1/3 of the basal metabolic rate), and cognition brings with it a host of other psychiatric problems. So I’m wonder if we aren’t over-optimized in some way. If we might be some evolutionary dead-end (requiring a genetic scientist to take over), that our history is one of evolution trying out bigger and bigger brains in a race with the Red Queen.

So, accursed with my big brain, I kept thinking:
There must be a general principle going on here. Life presents insoluble problems, evolution attempts solution by expanding computational hardware. I get the feeling that there must be a relationship between the computational complexity1 of a problem and that of it’s solution. In general given a problem, we should be able to at least bound the computational resources that would be needed to solve it, a bound on the complexity of solution. I figure that this has got to be formalizable in a manner akin to the Minimum Description Length or Kolmogorov complexity. At any rate, it ought to be useful to compute these bounds, because then we can have both an estimate of how difficult it will be to engineer a solution, and an indicator of when we’ve over-invested down a dead-end.

1. I don’t mean to mention the official computational hierarchy here. I mean something more practical, complexity in the engineering sense.