I’ve gotten the Java problems under control (not fixed, just under control, and I still haven’t figured out how to embed HTML inside Java.) But today’s problems are straight-up simulation issues. I’ve been marching down the causal network, coming up with the equations and coefficients for each factor, tuning them, and checking to make sure that they produce results that don’t veer too far from the initial conditions.
However, I’m stumbling over two tough ones: population and malnutrition. What should their equations look like? At first, I thought that I should use a Malthusian approach: population expands with food production. I don’t know what caused me to think such an idiotic thought; I know perfectly well that every population expert will tell you that population growth is driven by poverty and lack of education. Turning it around, the two best weapons against population growth are education and pulling people out of poverty.
This might surprise you; after all, more money should give a parent greater resources with which to raise more children. However, the driving force behind large families is fear of future poverty. The parents ask themselves, “Who will take care of us when we’re too old to work?” and their only answer is “our children”. Therefore, more children mean a brighter old age. However, as wealth increases, people are able to accumulate wealth and provide for their own old age, reducing the need for children. Over and over it has been shown that population growth rates fall once a country’s economy starts expanding.
An even stronger effect is education. Many poor women have no knowledge of contraceptive options available to them. But if they learn to read, those materials on contraception always seem to find their way into the women’s hands. Moreover, literacy gives them some marketable skills, reducing their dependence upon their husbands and making it easier for them to resist demands for more children. Accordingly, I am setting the initial (2011) population growth rate at 1.05% and I shall have it scale down as education and global GDP per capita increase. I measure educational progress as a percentage of the level of 2011, and global GDP in terabucks. So here’s a first idea for a formula for population growth:
Population growth = 1.05% - ((educational progress)**a) * (global GDP/cap**b)
where a and b are controlling coefficients between 0 and 1. I multiply the two factors (education and GDP/cap) because they are BOTH necessary to reduce population; either one by itself, I claim, is insufficient. I’m sure you already know that boolean AND transforms to arithmetic multiplication, while boolean OR transforms to arithmetic addition. That’s why I’m using multiplication: BOTH education AND GDP/cap are necessary for an effect. If EITHER one OR the other could produce results, I’d use addition, in which case the controlling coefficients a and b would be multipliers. Because we’re using multiplication, we require exponentiation to differentially scale the two factors. It truly is intuitively obvious to the most casual observer (that phrase translates to “I don’t know how else to explain it.”)
Since we want population growth to slowly drop to 1.00, not going beneath this value, we can calculate the values of a and b by setting some boundary conditions, namely the beginning and ending values. For 2061, when the game ends, I posit that population growth will have stabilized at 1.000 (no growth). I’ll also declare that educational progress will be 10 and global GDP per capita will have increased to about $20,000 per capita. Hence, we have two equations covering the beginning and ending of the game:
Year 2011: ((1)**a) * (10,000**b) = 0.0
Year 2061: ((10)**a) * (20,000**b) = 0.05
This gives us two equations in two unknowns, which should be a piece o’ cake to solve, except for the fact that the first equation is indeterminate (multiplying two numbers together to get zero means that one of them must be zero. Oops, my basic formulation is just plain wrong, so I’ll have to modify it. I’m going to revert to a direct equation, which is a little more difficult to handle:
Population growth = ((educational progress)**a) * (global GDP/cap**b)
This will of course require considerably different boundary conditions:
Year 2011: ((1)**a) * (10,000**b) = 1.05
Year 2061: ((10)**a) * (20,000**b) = 1.00
Fortunately, these boundary conditions are so simple that we can solve the equations with a snap of the fingers. Since 1**x = 1, the coefficient a drops right out of the first boundary condition, so that we get the simple result that b = log 1.05 / 4, or 0.005297. Plugging that value of b into the second boundary condition gives us a = 0.0022784. Are you befuddled by how I got that number? Good! ;-)
So now I have my general equation for population growth:
Population growth = ((educational progress)**0.0022784) * (global GDP/cap**0.005297)
That was easy! Let’s move on to malnutrition. Right now, the world is producing roughly 2,700 calories per person per day of food. That should be plenty for everybody, except for the fact that food is not uniformly distributed. Some people get lots, some people get little. How to model that? The answer lies in the Gini Index, also known as the Gini Coefficient, which measures the equality of income distribution. The Gini Index runs from 0.00 to 1.00. A value of 0.00 means that everybody has exactly the same amount of wealth; 1.00 means that one person (presumably Bill Gates) has all the wealth and nobody else has any wealth. The Scandinavian countries have Gini Indexes around 0.20; the USA comes in around 0.42; some of the worst countries in the world come in at 0.60. For the world as a whole, the Gini Index is 0.892. Yep, that’s how unequally income is distributed. The poorest 50% of humanity has about 1% of the wealth; the richest 1% own 40% of the wealth.
We can use the Gini Index to approximate the distribution of food in the world, although we can’t use it directly; if we used it directly, we’d end up with the richest 1% of the population getting something like 110,000 calories per day, and the poorest 50% getting about 27 calories per day. No, the distribution of food is much more equitable than the distribution of wealth. But the underlying formula for the Gini Index is impossibly complicated. Since I am concerned only with the tail end of the curve, I can get away with a simplification. I shall start with the old slogan “A rising tide lifts all boats.” In the case of income distribution, this really isn’t true: the largest boats get lifted the highest (as in, “The rich get richer”). But I’m going to assume that the poor do enjoy a portion of the benefits of increased food production. Currently, we permit some 3.7 million people to die of malnutrition each year (even though there’s plenty of food for everybody). As our food production increases, some of that increase should go to the malnourished, which in turn will reduce malnutrition deaths. How much? Again, we can do it as above, differentially or absolutely. Here’s the absolute formula:
Malnutrition deaths = a / (food production / population)
Our boundary conditions are:
Year 2011: Malnutrition deaths = a / (7 petacalories / 7 billion people) = 3,700,000
which yields a value for a of 3.7 * 10**15. Note that this formula goes down only slowly as food production increases. If we DOUBLE food production per capita, we only HALVE malnutrition deaths. This is clearly not right, so I need something better. So let’s try the differential formula along with its boundary conditions:
Malnutrition deaths = 3,700,000 - (food production / population) / a
Year 2011: Malnutrition deaths = 3,7000,000 - (7 petacalories / 7 billion people) / a = 3,700,000
which yields a value for a of infinity. We’re not getting anywhere, are we? The solution is to add another coefficient, b. The whole trick here lies in the fact that people don’t stay alive if they get 1 calorie per day. There’s a threshold value at which they die of malnutrition. That threshold value depends on a lot of factors, but I’m going to use 2,000 calories per day as the threshold. So if the global average is 2,700 calories per day and anything below 2,000 calories per day is lethal, then I need a formula that determines the percentage of people who get less than 2,000 calories per day given some number for the global average. BUT that formula cannot be linear! We need something that will reduce malnutrition to zero at some value of food / capita. Nobody knows what that value is, so I get to make it up. I close my eyes and dream of distant vistas. Numbers float through my mind, and... and... the magic number is 3,000 calories per capita per day. Why do I pick that number? I don’t know, it just seems right. After all, rich people can’t eat all the food, and increasing the food supply by 10% should leave enough for the starving to get enough to live on.
So I now have two boundary conditions for an equation with two coefficients:
3,7000,000 = a + b * (7 petacalories / 7 billion people)
0 = a + b * (7.8 petacalories / 7 billion people)
And of course you can see in an instant that the solutions to these equations are a = 3.60 * 10**7 and b = -3.23 * 10**-2.
There, that was easy, wasn’t it?