## Simulation ExplainedThere are many flavors of simulation. Two of the most common are discrete event simulation and differential equations. A differential equation (or system of differential equations) usually describes a deterministic simulation. It is usually not possible to solve a differential equation analytically. But we can (usually) solve differential equations numerically, which means that we use the differential equations as a description of how the system evolves moment-to-moment, and then use that description to nudge the system along in short time steps. This makes it possible to use the differential equations for making decisions, but it is far from being a "turn the crank" kind of process. For instance, most numerical solution techniques are sensitive to noise, and amplify it over time. This is an example of a stability issue. The numerics are also subject to parasitic modes like ringing, where the numerical solution will overshoot the real solution, and mistaking these artifacts for the real phenomenon is costly. Needless to say, like any tools, numerical tools need a good craftsmanship to pick the right tools and use them effectively. Discrete event simulations have similar issues in that bad things can live in small places. In a discrete event simulation, events occur at a distinct moment in time, and this causes other events to occur at some later moments in time: a person gets sick. That causes the person to get treated. That treatment leads to a response, and so on. Each event leads to a change in the state of the system and the state of the system determines which events occur. These systems could be modeled as formal Markov chains, and the mathematics for doing this is well known, but often unfeasible because the computation is too much. So as with the differential equations we have a "numerical" way to nudge the system along a little bit at a time, and using dice rolls to guide us along. This is known as Monte Carlo simulation because Monte Carlo casinos and Monte Carlo simulations are both games of chance. But often the events we are interested in don't show up unless we roll the dice trillions and trillions of times, and computers still aren't really capable of that. For instance, we may be looking at a chemical system where when one kind of molecule comes in contact with another kind of molecule they react to form a third kind of molecule, and that third kind may be the one we are really interested in. But the reaction may only occur once in every 10,000,000,000 collisions. In a garden variety Monte Carlo simulation, this will probably never happen. It is just too unlikely. But in a real chemical system there may be 100,000,000,000,000,000,000 molecules with trillions upon trillions of collisions occurring per second. In other words, in the real world the molecule we are interested in is being produced all the time. So how do we get the Monte Carlo simulation to force that reaction to occur, but then balance it with everything else so that this molecule is not over represented? These are just a few of the issues that arise in simulation. And all of the problems mentioned on this page are problems we actually worked on. For instance, we published sintering results in the Journal of Applied Physics in 1992, and we simulated molecular collisions with extremely small cross sections in atmospheric reactions from 1992 through 1995. We revisited a similar problem in cell metabolisms in the last few years. We've simulated games and conflicts throughout that entire period, and simulated the impacts of point failures in communications networks along the way. |