I've often heard that a population, human or otherwise, will continue to grow as long as there is food available (assuming nothing else is killing them off). It makes sense: if you have food you can live, and if nothing is hunting you you'll survive to reproduce.
I recently designed a piece of software to simulate an ecosystem, with groups of creatures of different species eating and hunting and reproducing alongside each other. It was very simplified (each animal had simple attack/defense/speed/stealth values, etc), but something became rapidly apparent: in every simulation the predators overwhelmed the prey, reproducing until their numbers could not be sustained by the herbivores, and leading to an inevitable die-off of both groups. I could delay the die-off by adjusting different values and initial population counts, but it would always happen eventually. The predators would eat and breed and eat and breed until the entire system collapsed.
At first I thought it was just the product of my over-simplified system, but it got me thinking: what prevents predators from overpopulating in real life?
It seems like the natural tendency would be for (for example) the sharks to continue breeding and eating until all the fish are gone, or the wolves to eat all the deer, etc. Obviously some predators have predators of their own, but that's just putting off the question: if the hyenas don't overpopulate because the lions eat them, then what's keeping the lions from overpopulating? I can't come up with anything that would prevent the apex predators from growing too numerous, then fighting each other over a dwindling prey population, then dying off entirely when there was no more food to find.
Do predator populations self-regulate to prevent putting undo stress on their prey populations? Or is there some other mechanism to keep the predator hierarchy from becoming top-heavy?