I wrote a paper arguing that 'ancestor' simulations are effectively impossible. Part of that argument was that, in order for the simulations to be meaningful, the world had to work largely the same way as our own. (Otherwise, it's not an 'ancestor simulation'. Other types of simulations could work.) You could, for instance, just project a 'video' of the sky every night to save some energy costs. Until the simulated people gain the ability to, say, practice photometry. Then your have to spend a bit more energy simulating the actual physics. So, as time progresses in your simulation, energy costs rise.
Eventually, your simulated beings develop the ability to compute. There are some things you'll be better at optimizing, but over time the simulated beings will get closer and closer to the optimal way of doing an operation; at which point any operation they do is an operation you are doing.
Until they generate a simulation of their own. That's when it all falls apart. At the point they make their own simulations, now you're paying in energy for your simulations, plus all their simulations and their simulations' simulations in an infinite chain. Voila. Infinite energy requirement. (There's some caveats here... some simulations may result in a dead world, but presumably every successful simulation would run more than one successful simulation of its own.)
So, your options are:
1. End the simulation when the simulation becomes capable of running its own simulation.
Useful, perhaps, but not very for a very old civilization. It's not clear that humanity 1 million years will be that interested in simulating the first X00,000 years of humanity.
2. Dumb down the simulation.
However, this would have to be done "just so" so that the energy use limit converges as the depth of simulations approaches infinity. This also provides a mechanism for a simulation to detect that it is a simulation (I forget why, it's been awhile), making the entire exercise not useful as an ancestor simulation.
3. Prevent simulations from running their own simulations.
Like (2), this potentially allows the simulation to discover that it is a simulation. It also may make the results of that simulation less useful. If you, for instance, wanted to know what the world might be like if event X happened differently, you could change that event and let the simulation run, but as soon as you got to the point where they would have run their own simulations, you can't be sure of your results.
You don't add any energy from a simulation that is running a simulation. The higher-level simulation has to devote some portion of its own resources to running the lower-level simulation, and that cannot grow larger than all the resources available in the higher-sim universe. If the lower-level sim has more simulated resources, that just means a resource in the higher-level sim has to be multiplexed somehow.
In terms of simulations like our own universe, if we simulate a universe twice as large as our own, using half the resources in our universe for the sim, and reserving the other half for us to continue to live in, then barring any shortcuts or optimizations and assuming multiplexing by time, the sim will advance one simulated second for every four real seconds. All that simulated energy is already tied up in the simulation hardware we built in our universe.
If we are living in a simulation, then the parent universe won't ever have to spend more on our simulation than the maximums they set when starting it. Unless we break out of the simulation and hack our own simulator to allocate more resources, of course. We can't up the requirements from within, because the parent could just start multiplexing some resource without any simulated person ever noticing.
Also we have no way to know whether the resources of a simulator-parent are infinite or not, or the aleph numbers of any infinite resources they may have.
We think we might have an infinite universe, but the portion of it we can observe is finite (but very large, encompassing many galaxies), bounded by our light cone and the expansion of spacetime. If quantum effects are really just lazy evaluation in the simulator, the simulator should be able to prune everything we cannot observe.
That’s really no different than (2). I’m specifically talking about ancestor simulations in which the world of the sim is largely identical to the real world. Changing from infinite resources to finite is a big change. And having the simulation run more slowly than real time probably defeats the point. Imagine waiting for 600+ years for the simulation to complete to find out what would have happened if Abraham Lincoln hadn’t been assasssinated.
I argue that the distinction is effectively pointless, because human imagination can already simulate our reality. Have you ever had a particularly vivid dream? Ever daydreamed about punching that smug customer in the face, or launching a rocket at that ass in front of you in traffic?
What would happen if you had a dream about having a particularly vivid dream? If you dream in that dream that you're having another dream, does your real brain cook itself from using too much processing power? If you dream that someone else is having a dream, does that matter at all to your simulation? It's entirely possible that you never have to simulate that at all, because the dreamer forgets all about their dream when they wake up, and that branch just gets pruned.
By that standard, the (1) simulation would halt the instant some random animal ancestor fell asleep. The (3) simulation could not model anyone that made a decision based on a portentious dream--such as the dream about seven fat kine and seven lean kine found in a millennia-old book with some cultural significance. Only a (2) simulation has any chance of producing meaningful results.
And given the predictability of events, you would need to run that Lincoln simulation hundreds of times to learn anything from it, and many times more if you want any reasonable degree of precision. Nobody wants to wait 1000 years just to find out with 95% confidence what Lincoln might have eaten for breakfast a month after not being assassinated. You could prune more extensively if you had a specific question you wanted answered. Even if you just want to wander around in a simulated Lincoln-unassassinated Earth, the sim could still prune based on what you decide to look at. The sim would probably have to simulate Lincoln's impact on journalism regardless of whether you read a newspaper or not, but if you never stop to smell the flowers, it could probably prune Lincoln's impact on gardening.
An ancestor simulation has a great advantage over an alien simulation, because it can play back recordings of real observations rather than simulating or randomizing results from scratch.
I think we are talking about apples and oranges. The dream metaphor is inapt, because your brain is consciously experiencing only 'level' of that dream. There is only one "you". In the case of the simulations, each 'level' is independently conscious.
The idea behind ancestor simulations is that the simulated people are conscious. If we aren't talking about that, then of course there is no chance we are in such a simulation.
So, you can't really skip what Lincoln had for breakfast, because Lincoln has to experience it and because it can affect him. Maybe the chef poisons him. Maybe it gives him the runs and he cuts a speech short. Maybe he has an allergic reaction and misses an important meeting.
In any case, if you could prune it and we are in a simulation, then none of us would ever have the experience of having breakfast.
The solipsistic argument says that I can't ever really tell if you are really a conscious being or just a simulation of a conscious being. I can't tell if the real world actually exists, or if I am a brain in a jar being fed simulated sensory data.
And we don't need the experience of having breakfast if we have the memory of having breakfast. If you copied one memory of me having breakfast, randomized a few variables, and replayed it to me later, it would be unlikely to impact any of the impactful decisions I make later.
Since you're running a simulation, you can choose whether or not my breakfast needs to be simulated in detail or elided over after identifying a decision node that might be significantly impacted by my breakfast. I honestly probably wouldn't do anything differently if you swapped gravlax and bagels for eggs and toast. So you can usually replay a partially memoized breakfast sequence as it happens, and revise the simulation, overwriting my memory and that of all witnesses, if it turns out later that my breakfast might have an impact on something else.
So every day, I have memoized breakfast routine. At 3 PM one day, there is a potential for a hangry conversation at work that might get me fired. Now you can backtrack, copy all my variables from this morning into the breakfast simulator engine, and this time everything is simulated in detail. Then you patch the detail results over the rough results, and I can't tell the difference, other than the fact that I can now remember significant details of my breakfast, rather than a blur of things I usually eat in the morning.
You might not be able to skip Lincoln's breakfast, but you could skip a few million other breakfasts.
So that leads to the existential horror. Do I actually still exist if I'm not doing something meaningful to an external observer right now? Maybe most of me is just a slipshod model of a generic person, that exists solely to produce some initialization variables for a detailed simulation of some-guy-on-the-Internet replying to you, and then after I'm done, I'll just go back to being an NPC with no personality of my own.
Any shortcut you take you are no longer running an ancestor simulation. The reason you don't memoize breakfast is because the entire point of the simulation is the simulation of the conscious beings you are simulating. If you memoize away their decisions and actions, you take that away. And I strongly suspect retrofitting reality to match countless decisions is going to be more expensive than simply running it in the first place.
> I honestly probably wouldn't do anything differently if you swapped gravlax and bagels for eggs and toast.
That is unknowable. Maybe in making the eggs and toast, you leave the house a second later, and a driver that ran a stop sign that would have hit you passes in front of you instead.
You're not wrong that you can skip breakfast and take all these short cuts. You can do whatever you want in the simulation. But if you do, you're not running the type of simulation that is called an 'ancestor simulation'.
> Maybe in making the eggs and toast, you leave the house a second later, and a driver that ran a stop sign that would have hit you passes in front of you instead.
This is likely unimportant to answer the questions that the simulator is supposed to answer, which means that no one would ever bother running one ancestor simulation--as you define it--when they could instead run multiple trials of a different kind of simulation for the express purpose of eliminating such confounding "want of a nail" moments. "We ran this ancestor simulation for 10 million years to find out what logfromblammo would eat for lunch on 13 August, 2018, and the results were ruined when the simulated logfromblammo was killed in traffic that very morning, just before the entire simulator planet was demolished to make way for a hyperspace bypass. We'll check the budget to see if we can reset for another run."
Maybe the other driver also had a breakfast that delayed their departure by one second, and now they hit me again. In one ancestor simulation, you won't know all the various circumstances that contribute to the causation of an event. If you do cut corners, you can say that there is an X% chance on any given day that I get involved in a traffic collision.
So an ancestor simulation--as you define it--is functionally identical to walling off a piece of your own universe, rearranging matter inside it to conform to initial conditions, and then watching it to see what happens.
If your universe is itself a simulation, how does the parent universe detect the difference between someone running a simulation and Magrathean-scale engineering projects? If I commission a planet that is a perfect copy of Earth on the day before Lincoln was assassinated, and black-bag Booth an hour before he shows up at the theater, is that an ancestor simulation? Do I need to wrap it in a perfectly black shell and project sunlight and starlight through it from time-appropriate locations? That only requires that the star you use for energy is a bit more energetic than the sun. If you simulate a planet that predates astronomy, perhaps to see what would happen if dinosaur-like creatures hadn't been wiped out, you wouldn't even need to do that. Your total energy requirements for the lifetime of the simulation are the delta-v required to build an Earth-like planet with a Moon-like moon and move it into an Earth-like orbit around a Sol-like star.
We wouldn't be able to detect if our planet is a simulation by dinosaurs, to see what would have happened if their planet had suffered an extinction-level event before they launched themselves into space. How do you tell the difference between a naturally-formed and artificially-constructed planet? Likewise, how do you distinguish between someone trying to compute an ancestor simulation and someone just running an immersive MMORPG? If you did create a single ancestor simulation larger than a few interacting atoms, it rapidly loses its scientific power, due to all the variables you intentionally did not constrain. How is that not just an amusement park?
Eventually, your simulated beings develop the ability to compute. There are some things you'll be better at optimizing, but over time the simulated beings will get closer and closer to the optimal way of doing an operation; at which point any operation they do is an operation you are doing.
Until they generate a simulation of their own. That's when it all falls apart. At the point they make their own simulations, now you're paying in energy for your simulations, plus all their simulations and their simulations' simulations in an infinite chain. Voila. Infinite energy requirement. (There's some caveats here... some simulations may result in a dead world, but presumably every successful simulation would run more than one successful simulation of its own.)
So, your options are:
1. End the simulation when the simulation becomes capable of running its own simulation.
Useful, perhaps, but not very for a very old civilization. It's not clear that humanity 1 million years will be that interested in simulating the first X00,000 years of humanity.
2. Dumb down the simulation.
However, this would have to be done "just so" so that the energy use limit converges as the depth of simulations approaches infinity. This also provides a mechanism for a simulation to detect that it is a simulation (I forget why, it's been awhile), making the entire exercise not useful as an ancestor simulation.
3. Prevent simulations from running their own simulations.
Like (2), this potentially allows the simulation to discover that it is a simulation. It also may make the results of that simulation less useful. If you, for instance, wanted to know what the world might be like if event X happened differently, you could change that event and let the simulation run, but as soon as you got to the point where they would have run their own simulations, you can't be sure of your results.