Microscale and macroscale models

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
File:Coexistence-Phalaris-CA-ODE-1400619436.png
Microscale and related macroscale models of coexistence in Phalaris arundinacea, a globally distributed grass. Each color represents the spatial extent of a distinct genotype in a microscale model using stochastic cellular automata. Each curve on the graph represents the population level of a corresponding genotype in a macroscale differential equation model.[1]

Microscale models form a broad class of computational models that simulate fine-scale details, in contrast with macroscale models, which amalgamate details into select categories.[2][3] Microscale and macroscale models can be used together to understand different aspects of the same problem.

Applications

Macroscale models can include ordinary, partial, and integro-differential equations, where categories and flows between the categories determine the dynamics, or may involve only algebraic equations. An abstract macroscale model may be combined with more detailed microscale models. Connections between the two scales are related to multiscale modeling.

In contrast, microscale models can simulate a variety of details, such as individual bacteria in biofilms,[4] individual pedestrians in simulated neighborhoods,[5] individual light beams in ray-tracing imagery,[6] individual houses in cities,[7] fine-scale pores and fluid flow in batteries,[8] fine-scale compartments in meteorology,[9] fine-scale structures in particulate systems,[10] and other models where interactions among individuals and background conditions determine the dynamics.

Discrete-event models, individual-based models, and agent-based models are special cases of microscale models. However, microscale models do not require discrete individuals or discrete events. Fine details on topography, buildings, and trees can add microscale detail to meteorological simulations and can connect to what are called mesoscale models in that discipline.[9] Square-meter-sized landscape resolution available from lidar images allow waterflow across land surfaces to be modeled, for example rivulets and water pockets, using gigabyte-sized arrays of detail.[11] Models of neural networks may include individual neurons but may run in continuous time and thereby lack precise discrete events.[12]

History

Ideas for computational microscale models arose in the earliest days of computing and were applied to complex systems that could not accurately be described by standard mathematical forms.

Two themes emerged in the work of two founders of modern computation around the middle of the 20th century. First, pioneer Alan Turing used simplified macroscale models to understand the chemical basis of morphogenesis, but then proposed and used computational microscale models to understand the nonlinearities and other conditions that would arise in actual biological systems.[13] Second, pioneer John von Neumann created a cellular automaton to understand the possibilities for self-replication of arbitrarily complex entities,[14] which had a microscale representation in the cellular automaton but no simplified macroscale form. This second theme is taken to be part of agent-based models, where the entities ultimately can be artificially intelligent agents operating autonomously.

By the last quarter of the 20th century, computational capacity had grown so far[15][16] that up to tens of thousands of individuals or more could be included in microscale models, and that sparse arrays could be applied to also achieve high performance.[17] Continued increases in computing capacity allowed hundreds of millions of individuals to be simulated on ordinary computers with microscale models by the early 21st century.

The term "microscale model" arose later in the 20th century and now appears in the literature of many branches of physical and biological science.[5][7][8][9][18]

Example

Figure 1 represents a fundamental macroscale model: population growth in an unlimited environment. Its equation is relevant elsewhere, such as compounding growth of capital in economics or exponential decay in physics. It has one amalgamated variable, N(t), the number of individuals in the population at some time t. It has an amalgamated parameter r=\beta-\delta, the annual growth rate of the population, calculated as the difference between the annual birth rate \beta and the annual death rate \delta. Time t can measured in years, as shown here for illustration, or in any other suitable unit.

The macroscale model of Figure 1 amalgamates parameters and incorporates a number of simplifying approximations: (1) the birth and death rates are constant; (2) all individuals are identical, with no genetics or age structure; (3) fractions of individuals are meaningful; (4) parameters are constant and do not evolve; (5) habitat is perfectly uniform; (6) no immigration or emigration occurs; and (7) randomness does not enter. These approximations of the macroscale model can all be refined in analogous microscale models.

On the first approximation listed above—that birth and death rates are constant—the macroscale model of the Figure 1 is exactly the mean of a large number of stochastic trials with the growth rate fluctuating randomly in each instance of time.[19] Microscale stochastic details are subsumed into a partial differential diffusion equation and that equation is used to establish the equivalence.

To relax other assumptions, researchers have applied computational methods. Figure 2 is a sample computational microscale algorithm that corresponds to the macroscale model of Figure 1. When all individuals are identical and mutations in birth and death rates are disabled, the microscale dynamics closely parallel the macroscale dynamics (Figures 3A and 3B). The slight differences between the two models arise from stochastic variations in the microscale version not present in the deterministic macroscale model. These variations will be different each time the algorithm is carried out, arising from intentional variations in random number sequences.

When not all individuals are identical, the microscale dynamics can differ significantly from the macroscale dynamics, simulating more realistic situations than can be modeled at the macroscale (Figures 3C and 3D). The microscale model does not explicitly incorporate the differential equation, though for large populations it simulates it closely. When individuals differ from one another, the system has a well defined behavior but the differential equations governing that behavior are difficult to codify. The algorithm of Figure 2 is a basic example of what is called an equation-free model.[20]

When mutations are enabled in the microscale model (\sigma>0), the population grows more rapidly than in the macroscale model (Figures 3C and 3D). Mutations in parameters allow some individuals to have higher birth rates and others to have lower death rates, and those individuals contribute proportionally more to the population. All else being equal, the average birth rate drifts to higher values and the average death rate drifts to lower values as the simulation progresses. This drift is tracked in the data structures named beta and delta of the microscale algorithm of Figure 2.

The algorithm of Figure 2 is a simplified a microscale model using the Euler method. Other algorithms such as the Gillespie method[21] and the discrete event method[17] are also used in practice. Versions of the algorithm in practical use include efficiencies such as removing individuals from consideration once they die (to reduce memory requirements and increase speed), and scheduling stochastic events into the future (to provide a continuous time scale and to further improve speed).[17] Such approaches can be orders of magnitude faster.

Complexity

The complexity of systems addressed by microscale models leads to complexity in the models themselves, and the specification of a microscale model can be tens or hundreds of times larger than its corresponding macroscale model. (The simplified example of Figure 2 has 25 times as many lines in its specification as does Figure 1.) Since bugs occur in computer software and cannot completely be removed by standard methods such as testing,[22] and since complex models often are neither published in detail nor peer-reviewed, their validity has been called into question.[23] Guidelines on best practices for microscale models exist[24] but no papers on the topic claim a full resolution of the problem of validating complex models.

Future

Computing capacity is reaching levels where populations of entire countries or even the entire world is within the reach of microscale models, and improvements in census and travel data allow further improvements in parameterizing such models. Remote sensors from Earth-observing satellites and from ground-based observatories such as the National Ecological Observatory Network (NEON) provide large amounts of data for calibration. Potential applications range from predicting and reducing the spread of disease to helping understand the dynamics of the earth.

Figures

Figure 1. One of the simplest of macroscale models: an ordinary differential equation describing continuous exponential growth. N(t) is the size of the population at time t, dN(t)/dt is the rate of change through time in the single dimension N. N(0) is the initial population at t=0, \beta is a birth rate per time unit, and \delta is a death rate per time unit. At the left is the differential form; at the right is the explicit solution in terms of standard mathematical functions, which follows in this case from the differential form. Almost all macroscale models are more complex than this example, in that they have multiple dimensions, lack explicit solutions in terms of standard mathematical functions, and must be understood from their differential forms.


File:Microscale Algorithm, Exponential Growth, 1396584021.png
Figure 2. Microscale algorithm corresponding to equations of Figure 1.

Figure 2. A basic algorithm applying the Euler method to an individual-based model. See text for discussion. The algorithm, represented in pseudocode, begins with invocation of procedure \operatorname{Microscale}(), which uses the data structures to carry out the simulation according to the numbered steps described at the right. It repeatedly invokes function \operatorname{Mutation}(v), which returns its parameter perturbed by a random number drawn from a uniform distribution with standard deviation defined by the variable sigma. (The square root of 12 appears because the standard deviation of a uniform distribution includes that factor.) Function \operatorname{Rand}() in the algorithm is assumed to return a uniformly distributed random number 0\le Rand()<1. The data are assumed to be reset to their initial values on each invocation of \operatorname{Microscale}().


Figure 3. Graphical comparison of the dynamics of macroscale and microscale simulations of Figures 1 and 2, respectively. (A) The black curve plots the exact solution to the macroscale model of Figure 1 with \beta=1/5 per year, \delta=1/10 per year, and N_0=1000 individuals. (B) Red dots show the dynamics of the microscale model of Figure 2, shown at intervals of one year, using the same values of \alpha, \beta, and N_0, and with no mutations (\sigma=0). (C) Blue dots show the dynamics of the microscale model with mutations having a standard deviation of \sigma=0.006. (D) Green dots show results with larger mutations, \sigma=0.010.

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. 5.0 5.1 Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. 7.0 7.1 Lua error in package.lua at line 80: module 'strict' not found.
  8. 8.0 8.1 Lua error in package.lua at line 80: module 'strict' not found.
  9. 9.0 9.1 9.2 Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. 17.0 17.1 17.2 Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.