| This is flawed thinking I've seen show up in a lot of arguments. I even had this argument with Kurzweil at some point. If we want to create a realistic simulation, we only need to simulate things with sufficient fidelity to convince observers. That basically means: - Only things that have been observed needs to gain some form of persistence - Each simulated entity should have error margins that account for their continued existence, or their allowable location and other factors. Once an error margin for an aspect of a simulated entity exceeds the factors of the pseudo-random instantiation of that entity or class of entities, you do not need to explicitly retain or simulate the state of that entity. E.g. you don't need to retain the state of an "NPC human" longer than ~120 years at most; most you can discard much sooner; most details you never need to generate in the first place because it is not known to the entity that observes it. - Over time, perturb the simulation back towards the outcome of a static generator function that takes time as a parameter, to wipe out state and simulation. That is, "undo" all changes the "players" in the simulation do in as plausible way as possible. Do that, and you only need to simulate the "players" you want to simulate and those entities closest in time and space to them most of the time. There'll be a "halo" of other entities that slowly reverts to the baseline simulation. I keep wanting to use this approach as a simulation basis for a game, in fact. E.g. consider Elite: When you leave a starsystem, all the ships in it despawns. If you go straight back, it breaks immersion. The approach above applied to it would instead record a cone from the last known position of each ship that grows over time by likely speeds and directions. As more and more of the larger end of the cone expands outside the starsystem, you increase the chance that they despawn. If you return rapidly, you find ships have moved a believable distance. Or Minecraft: Currently mobs despawn outside of a given area, and simulation only runs within a certain number of chunks from the player. But most things stay exactly as they were. As such all player modifications must be saved. But for many things you can create functions that makes the world more dynamic with less simulation. E.g. if trees slowly grow and age and fall down, and rot, and new trees grow, then that means that the longer since a player has been in a given chunk, the more of the players modifications can be discarded and replaced by a generator function with time as one of the parameter. We've pruned simulations since some of the earliest generative games. To address the quote: We don't need to simulate the weather in its full apparent complexity, as long as the observed aspects of the weather falls within parameters that makes them plausible but sufficiently unpredictable. For most detail of the weather, that just means it needs to conform to the overall parameters. E.g. you don't need to simulate raindrops that "player" sees; just the overall volume of rain in the overall area if it is near a "player". Even less detail if further away. |
What's the point of a simulation pretending to simulate a complex system when it could have just implemented a simpler system in the first place?
Also, What is "observable"? If you mean "what people [well, simulation subjects] might look at", recall that people do take past data of weather, including data that's not collected at the time (e.g. tree ring data).
Assuming that the simulation can't examine future actions of the simulated people (if you could, why bother with a simulation?), it would need to simulate pretty deeply too, to be "plausible" with everything they might collect in the future. It isn't clear at all that a good simplification exists that would do that more cheaply.