⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 theory.txt

📁 模拟2维沙堆效果
💻 TXT
📖 第 1 页 / 共 2 页
字号:
1. INTRODUCTION

This is additional documentation for the sandpile simulation program. 
This document describes the theory behind how the sandpile works. 
You don't need it to run the program, but you might find it interesting, 
never the less. For information on how the program works, see the 
file manual.doc.

The background story is that in '95 a fellow student and I wrote a 
report about self-organized criticality (SOC). SOC systems are 
systems that reorganize themselves depending on what their 
environment is like. If you are familiar with Conway's "Game of Life" 
you already know a simple SOC system. (SOC systems are also 
known under many other names, like "dynamic", "self-organizing", or 
"complex adaptive" systems).

We found SOC systems to be rather fascinating, so I've decided to 
publish a resume of our report, which is the document you are 
currently reading. As an example of a SOC system we made a 
sandpile simulation for DOS. Now I've modified it for Win95, and 
the source code is published as freeware for your convenience.

Please note that although I believe what this document says about 
SOC theory and sandpiles is valid, I don't guarantee it 100%. Our 
sandpile project was, after all, merely chosen as a subject for a 
report in a single-semester course in programming. Besides, I'm not 
studying mathematics or physics, but economy. Also, please don't 
blame me if the simulation program messes up your computer 
(although I would like to hear about it). You carry any risks yourself 
when using the program.

The rest of this document will explain SOC systems and sandpile 
models in more detail. Also, the close relation between SOC and 
chaos will be explained.

2. THEORETICAL BACKGROUND

I'm not quite sure of it, but I think Per Bak et. al. should have the 
credits for publishing the first article on sandpile models in 1987. 
Whether it's true or not, this article made sandpile models very 
popular.

The term "sandpile model" refers to a relatively simple model, that 
loosely resembles how a real-life sandpile behaves when you add 
grains onto it. The pile will grow higher, but at the same time the 
grains you add will fall down the sides of the pile, causing more grains 
to fall down, etc. The idea is that you can't tell exactly when a grain 
will fall down and when it will remain where it was dropped. 
However, you can derive some general rules that will apply to the 
pile as a whole (an average view, if you prefer).

The growing sandpile behaves in a certain way, based on rules from 
SOC theory. Our purpose of simulating a sandpile was not to make a 
realistic model of a real sandpile, but to make a model that can be 
used to illustrate this theory.

2.1 Informal explanation of a sandpile model

Think of an ordinary pile of sand. You start with an empty surface, 
and by dropping 1 sand grain at a time (in the same point or in 
random points) the pile will grow steadily. The interesting thing is how 
the pile behaves when it grows. Every time a new grain is added in a 
point the pile may grow unstable in that point. The higher the point is 
situated relative to the neighboring points, the more unstable the point 
will become.

If the point becomes sufficiently unstable a number of grains will fall 
off the point and onto the neighboring points. This will increase the 
neighbors' unstability, and it is possible that more grains will fall 
down. It is also possible that the grains will just stop falling.
Sometimes, the one grain that was added from the start will cause 
entire avalanches, at other times, the pile will not change at all except 
in that one point. The theory that explains why the pile behaves like it 
does, is explained below.

2.2 A theoretical explanation

As mentioned earlier, our sandpile model is a SOC system. For that 
reason I will first explain the theory of SOC systems, before 
explaining the theory of sandpile models.

2.2.1 SOC systems

SOC systems have close relations to chaotic systems, but they differ 
in that SOC systems are less chaotic.

Let's first look at chaotic systems. A chaotic system is defined in 
physics science as a dynamic system (a system that develops). 
Furthermore, the system's future state cannot be predicted with 
certainty, because the starting conditions and the rules of the 
dynamics cannot be determined with sufficient accuracy.

Allthough the starting conditions can't be determined accurately they 
will still influence how the system develops. This means that a small 
initial uncertainty grows exponentially as the system changes (for 
example over time). This in turn means that the more accurate you 
want the predictions on the system to be, the more information about 
the starting conditions and rules you need. The amount of information 
needed grows exponentially, and this often makes long-term 
predictions virtually impossible, as you just can't collect enough 
information.

In SOC systems, on the other hand, the inaccuracy of the predictions 
does not grow by an exponential law, but much slower, by a power 
law. SOC systems, as opposed to chaotic systems, have the ability 
to adjust themselves, which means that they develop on the border of 
chaos. Per Bak et. al calls this "weak chaos".

Simply spoken, the special attribute of a SOC system is that as it 
develops it organizes itself around a critical factor. If the state of an 
element in the system reaches a critical value the element will change 
its state, which in turn often will influence the state of other elements. 
One or more elements may trigger a chain reaction. After the 
elements have settled in their new state, the system is organized in a 
new way.

This is illustrated by the sandpile model. A sandpile is a dynamic 
system where many elements interact with each other. The system 
(sandpile) will at some time in its development reach and exceed a 
critical value (it will become too high or steep). A change in a system 
with a critical value (in the form of an added sand grain) may at this 
time trigger chain reactions (avalanches) which will influence the state 
of the system (the height of the various points).

2.2.2 Types of sandpile models

There are 3 main groups of sandpile models:
  Critical height model
  Critical slope model
  Critical Laplacian model

Each group of models builds on different interpretations of the local 
height function h(x,y).

The critical height model is the one we used in our project, and we 
based it on a 2D-matrix. Each point (x,y) in the matrix has a value 
h(x,y) which represents the height. If this height at any time exceeds 4 
the point will topple. This is done in the way that the height in the 
neighbor points to the north (x, y-1), south (x, y+1), east (x+1, y), 
and west (x-1, y) each are increased by 1, while the heght in (x,y) is 
decreased by 4.

The advantage of changing only these four neighbors is that it won't 
matter in which sequence you change them. This is not the case if you 
change all eight neighbors. Sandpile models in which you change only 
the four neighbors are called abelian (or commutative (?) ), and they 
make the simulation a lot easier. The abelian method is not limited to 
the critical height model, it can also be used in the two other kinds of 
models. There are other methods for updating the neighbors than the 
abelian method. However, it is often the preferred choice, for 
reasons of simplicity.

The sandgrains in this simple model can actually fall uphill. This is not 
realistic, of course, if you want the model to behave like a real 
sandpile, but that was not our purpose. Besides, the SOC principles 
are still valid.

The critical slope model more realistically resembles a real-life 
sandpile. In this model you consider the local slopes (a slope is the 
height of a point compared to its neighbor points). If a local slope 
exceeds the critical slope value in any direction, the point topples. 
Avalanches based on this model don't seem to follow a power law.

The critical Laplacian model is based on a third way of calculating 
the height. This is called the local Laplacian L(x,y), and it's calculated 
as the average difference in height to all neighbor points. The formula 
is: L(x,y) = 4h(x,y)-h(x+1,y)-h(x,y+1)-h(x-1,y)-h(x,y-1). Like 
critical height model sandpiles, avalanches in Laplacian model 
sandpiles follow a power law, but with other exponents.

2.3 A word on cellular automata

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -