There is a poorly understood restriction at the heart of the way we design today: virtually all our plans are mathematically doomed to be “incomplete.” But in a seeming paradox, if we can understand this restriction better, we can learn to make much better designs. One good way to do that is to learn from new scientific insights in the mathematics of computer processes, or “computations”.
Here’s a guided tour through this fascinating and most important subject.
Let’s start by noting that, as designers, we rely on mental models to understand, change, and evaluate what we do — even if we do it unconsciously. We need these “pictures in our heads” to guide our actions around various alternatives, not unlike the way we choose routes with driving maps. Even our language is a kind of model of what we are doing, giving us a sense of the issues and problems, and what we can expect of various alternatives.
Such mental models, or maps, allow us to respond to real conditions, and act intelligently. As designers, we can choose one or more models that help us to solve the problems we face, and meet the goals we have for the design.
There is a fundamental problem with all models, however, as the logician and mathematician Kurt Gdel implied in a famous 1931 paper. They are “incomplete” — they always leave something out. This is a key requirement for all models to even be useful. After all, a map that is just as detailed as the region it represents will leave us just as lost as being in the region! . So maps are useful because they are simpler — because they are abstract.
Looking at it another way, the reality we are trying to understand is “computationally irreducible.” We can never reduce it to a formula, or a perfect blueprint. No matter what we do, we will always have to leave something out. It’s just the way language works, and the way human ideas work — it’s how they help us to be more intelligent.
But in practice this limitation can, and often does, cause two big problems. One, our models might leave out something really important. Say, a map might not show that a bridge is out — and we try to drive over it! Two, more subtly, we might forget the difference between the model and reality, and fail to take any precautions. Then the model may not only not help us to behave more intelligently, it might make us “dumber” — we could make serious and even catastrophic errors in negotiating the real world.
It seems that we lapse into just these kinds of mistake all the time. We reduce our design ideas to abstractions, but then we re-impose them upon the world — and often, essential elements have gotten lost along the way, hence our design feels “dead.” For example, we plan cities that are organized neatly into top-down hierarchical categories — and then we find that they lack the interaction and the vitality of “natural” cities, with their characteristic complex network structures .
A way around this problem utilizes what mathematicians call “adaptive iteration.” We will apply the model, check the result, modify the model if needed, apply it again — and continue in this stepwise process. Gradually, the form of the result evolves and emerges as a coherent whole, well adapted to its environment, but also expressing the history of its own model-based evolution. There is never a perfect “final” result. But there are degrees of adaptation, and frequently they fall above critical thresholds of functionality.
No comments:
Post a Comment