Sunday, March 2, 2008

Ancestor Arithmetic

Here's an interesting question: How many ancestors did I have at various points in history? As we all know, each human has two biological parents, at least so far. This means we can approximate the number of ancestors we had num_generations ago like this:

num_ancestors = 2 ^ num_generations
If we make the simplifying assumption that a generation is about 20 years, then this means 200 years ago (about 10 generations) I had 1024 ancestors running around when the Unites States of America was just a startup. Huh, I wonder what they were all up to? My home town of Irvington, Illinois only had around half as many people in it when I was growing up there.

OK, so what about 2,000 years ago, back when the Romans were masters of their domain? That would be 100 generations ago. Using the formula above, we see that:
num_ancestors = 2 ^ 100 = 1,267,650,600,228,229,401,496,703,205,376
Hmm, something's not right here. How can I have had 1.2676506 × 1030 ancestors? There are only around 6 × 109, 6 billion, people on the planet today, let alone a couple thousand years ago. The problem is with our model. It doesn't take into account common ancestors, ancestors that are counted more than once.

Let's say, for the sake of argument, that I married a cousin. My wife and I would then have one set of grandparents in common, assuming it's that kind of cousin. Using the formula above, my children should have 8 great-grandparents. However, since my wife (cousin) and I share a pair of grandparents, our children will only have 6 great-grandparents instead of the normal 8.

The point here is that there will be overlap, a lot of overlap, in the old ancestral tree. The higher up the overlap, the larger number of branches will be eliminated.

I wonder if there is some way to get a reasonable estimate of the number of ancestors one actually had running around the planet at some point in the past.