Nonlinearity, Convexity and Concavity

Many of the problems we encounter when trying to design systems that are maintainable long term are complications of combinatorial explosions. Combinatorial problems are a subset of the problems associated with Nonlinearity, which are the subject of Nassim Taleb’s outstanding book, Antifragile.

If I throw at someone’s head a ten-pound stone, it will cause more than twice the harm of a five-pound stone, more than five times the harm of a two-pound stone, etc.

Your car is fragile. If you drive it into the wall at 50 miles per hour, it will cause more damage than if you drive it into the same wall ten times at 5 mph.

Drinking seven bottles of wine in one sitting, then purified water with lemon twist for the remaining six days is more harmful than drinking one bottle of wine a day for seven days (spread out in two glasses per meal). Every additional glass of wine harms you more than the preceding one.

Letting a porcelain cup drop on the floor from a height of one foot is worse than twelve times the damage from a drop of a height of one inch.

Jumping from a height of thirty feet brings more than ten times the harm of jumping from a height of three feet—actually, thirty feet seems to be the cutoff point for death from free fall.

Fragility is generally non-linear, that was the intuition from the porcelain cup.

Nassim Taleb, Antifragile [268-269]

With Linear effects, if you double the input you get exactly double the output. Non-linear effects you get either a lot less or a lot more than twice the output.

Taleb describes non-linear behavior as either convex or concave.

Convexity: twice the input gets you way more than twice the output

Concavity: twice the input gets you way less than twice the output.

Exponentials and factorials are convex, they go up faster and faster. The output of 100! is not ten times greater than the output of 10!, its an absolutely insane 10^151times greater.

Square-root and logarithms are concave, they go up slower and slower.

Using Taleb’s jumping analogy: does height have linear or non-linear effects on the harm from jumping? If the harm is the same, height has a linear effect. If the harm from the high fall is greater, height has a convex effect. If the harm from many short falls is greater, height has a concave effect.

Does jumping one time from a height of thirty feet will do the same damage as jumping thirty times from a height of one foot? The answer is intuitively, no. The first one kills you and the second one does no damage at all—convexity at its finest.

But how can that be since mathematically you will have experienced the same cumulative dosage of “feet fallen”? Thirty “feet fallen” delivered in a single fall delivers the effects combined, where as the same thirty “feet fallen” spread across thirty falls sees those effects isolated.

The most important thing to understand about convexity is that it means that each additional input causes a greater increase in the output. Hockey stick curves are deceiving like that because the beginning of the curve is so flat that it’s easy to mistake the behavior for linear. It seems like adding more of something harmful isn’t doing much damage. Once you hit the knee of the curve, the growth in harm shoots up so fast that you go from “no problem” to “dead in the water” faster than you realize what’s going on.

This makes convexity effects very tricky because it means you can get away with doing the wrong thing for a very long time and by the time the harm increases enough for you to notice it’s usually too late to do anything about it. Even after 400 pages, Taleb’s only proposed remedy for the problems of convexity are to avoid getting on the wrong side of it, and try to use it to your advantage if you can.

Published by David Zuidema

Master Software Craftsman