Thursday, April 5, 2012

Peak eggs: Hubbert and the Easter Bunny

Here is a little Easter post where I try to model the Easter Egg hunt as if it were the production of a mineral resource. A simple model based on system dynamics turns out to be equivalent to the Hubbert model of oil production. We can have "peak eggs" and the curve may also take the asymmetric shape of the "Seneca Peak." So, even this simple model confirms what the Roman Philosopher told us long ago: that ruin is much faster than fortune. (Image from uptownupdate)

For those of you who may not be familiar with the Easter Bunny tradition, let me say that, in the US, bunnies lay eggs and not just that: for Easter, they lay brightly colored eggs. Tradition is that the Easter Bunny spreads a number of these eggs in the garden and then it is up to children to find them. It is a game that children usually love and that can last quite some time if the garden is big and the bunny has been a little mean in hiding the eggs in difficult places.

A curious facet of the Easter Egg hunt is that it looks a little like mineral prospecting. With minerals, just as for eggs, you need to search for hidden treasures and, once you have discovered the easy minerals (or eggs), finding the well hidden ones may take a lot of work. So much that some eggs usually remain undiscovered; just as some minerals will never be extracted.

Now, if searching for minerals is similar to searching for Easter Eggs, perhaps we could learn something very general if we try a little exercise in model building. We can use system dynamics to make a model that turns out to be able to describe both the Easter Eggs search and the common "Hubbert" behavior of mineral production. The exercise can also tell us something on how system dynamics can be used to make "mind sized" models (to use an expression coined by Seymour Papert). So, let's try.

System dynamics models are based on "stocks"; that is amounts of the things you are interested in (in this case, eggs). Stocks will not stay fixed (otherwise it would be a very uninteresting model) but will change with time. We say that stocks (eggs) "flow" from one to another. In this case, eggs start all in the stock that we call "hidden eggs" and flow into the stock that we call "found eggs". Then, we also need to consider another stock: the number of children engaged in the search.

To make a model, we need to make some assumptions. We could say that the number of eggs found per unit time is proportional to the number of children, which we might take as constant. Then, we could also say that it becomes more difficult to find eggs as there are less of them left. That's about all we need for a very basic version of the model.

Those are all conditions that we could write in the form of equations, but here we can use a well known method in system dynamics which builds the equations starting from a graphical version of the model. Traditionally, stocks are shown as boxes and flows as double edged arrows. Single edged arrows relate stocks and flows to each other. In this case, I used a program called "Vensim" by Ventana systems (free for personal and academic use). So, here is the simplest possible version of the Easter Egg Hunt model:



As you see, there are three "boxes," all labeled with what they contain. The two-sided arrow shows how the same kind of stock (eggs) flows from one box to the other. The little butterfly-like thing is the "valve" that regulates the flow. Production depends on three parameters: 1) the ability of the children to find eggs, 2) the number of children (here taken as constant) and 3) the number of remaining hidden eggs.

The model produces an output that depends on the values of the parameters. Below, there are the results for the production flow for a run that has 50 starting eggs, 10 children and an ability parameter of 0.006. Note that the number of eggs is assumed to be a continuous function. There are other methods of modeling that assume discrete numbers, but this is the way that system dynamics works.





Here, production goes down to nearly zero, as the children deplete their egg reservoir. In this version of the model, we have robot-children who continue searching forever and, eventually, they'll always find all the eggs. In practice, at some moment real children will stop searching when they become tired. But this model may still be an approximate description of an actual egg hunt when there is a fixed number of children - as it is often the case when the number of children is small.

But can we make a more general model? Suppose that there are many children and that not all of them get tired at the same time. We may assume that they drop out of the hunt simply at random. Then, can we assume that the game becomes so interesting that more children will be drawn in as more eggs are found? That, too can be simulated. A simple way of doing it is to assume that the number of children joining the search is proportional to the number of eggs found (egg production). Here is a model with these assumptions. (note the little clouds: they mean that we don't care about the size of the stocks where the children go or come from)



This model is a little more complex but not so much. Note that there are two new constants "k1" and "k2" used to "tune" the sensitivity of the children stock to the rest of the model. The results for egg production are the following:



Now egg production shows a very nice, bell shaped peak. This shape is a robust feature of the model. You can play with the constants as you like, but what you get, normally, is this kind of symmetric peak. As you probably know, this is the basic characteristic of the Hubbert model of oil production, where the peak is normally called "Hubbert  peak". Actually, this simple egg hunt model is equivalent to the one that I used, together with my coworker Alessandro Lavacchi, to describe real historical cases of the production of non renewable resources. (see this article published in "Energies" and here for a summary)

We can play a little more with the model. How about supposing that the children can learn how to find eggs faster, as the search goes on? That can be simulated by assuming that the "ability" parameter increases with time. We could say that it ramps up of a notch for every egg found. The results? Well, here is an example:


We still have a peak, but now it has become asymmetric. It is not any more the Hubbert peak but something that I have termed the "Seneca peak" from the words of the Roman philosopher Seneca who noted that ruin is usually much faster than fortune. In this example, ruin comes so fast precisely because people try to do their best to avoid it! It is a classic case of "pulling the levers in the wrong direction", as Donella Meadows told us some time ago. It is counter-intuitive but, when exploiting a non renewable resource, becoming more efficient is not a good idea.


There are many ways to skin a rabbit, so to say. So, this model can be modified in many ways, but let's stop here. I think this is a good illustration of how to play with "mind sized" models based on system dynamics and how even very simple models may give us some hint of how the real world works. This said, happy Easter, everyone!





(BTW, the model shown here is rather abstract and not thought to describe an actual Easter Egg hunt. But, who knows? It would be nice to compare the results of the model with some real world data. My children are grown-ups by now, but maybe someone would be able to collect actual data this Easter!)


Who

Ugo Bardi is a member of the Club of Rome, faculty member of the University of Florence, and the author of "Extracted" (Chelsea Green 2014), "The Seneca Effect" (Springer 2017), and Before the Collapse (Springer 2019)