-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
121 lines (89 loc) · 6.56 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
This repository contains a number of test models and a library of shared code under
pkg/Cellibrium designed to illustrate the principles of virtual motion in Semantic Spacetime.
Because this uses parallelism of the computer, the results might depend on how many CPU cores
your computer has!
--------------------------------------------------------------------------------------
To run the code you need a Golang environment, and you need to incorporate the package Cellibrium
in your GOPATH. Some of the models that look at interference can be run in eiither
"single slit" or "double slit" mode, by using command line arguments. e.g.
go run PlaneSource_PhaseWaves.go ds
go run PlaneSource_PhaseWaves.go ss
use CTRL-C to stop the execution.
For slit experimemts, the programs save the screen image of the simulations as files
in the directory of execution, MODEL_NAME_DS, MODEL_NAME_SS, etc
To view the results, make a wide text/command window with a SMALL fixed width font.
--------------------------------------------------------------------------------------
Principle: all these models are "Promise Theoretic" agent models, effectively
cellular automata in which each agent has its own interior timeline running in
parallel threads. i.e. there is no synchronisation of updates. Any coherence has
to be arranged through the interactions.
a) Each agent affects only its own state in the way it chooses.
b) Each agent promises to share its state with its neighbours.
c) The consequence of (a) is no ballistic "push" models, only
local "voluntary cooperation".
--------------------------------------------------------------------------------------
There are different models of virtual propagation for waves and particles
1. PassTheParcel.go - this is conservation "money transfer" algorithm
that ensures conservation. It has no wave solutions,
only diffusion of ballistic random walk objects.
The number of counters is shown in each location.
This is the only way to ensure conservation of counters
formally in a discrete model. Even so, the actual
number of objects fluctuates since the observer cannot
guarantee to see what is between agents consistently.
2. Waves.go - a proof of concept showing unconstrained waves radiating
outward from a source. You can choose (by editing) whether
to use type I or type II waves, as well as selecting the
effective wavelength. All these things make a difference to
the results.
3. ExteriorRestoringForce.go - a classical wave equation model in which
an exterior field osciallates due to a restoring
force that makes the acceleration oppose the
direction of displacement via velocity of some
exterior medium.
4. PlaneSource_PhaseWaves.go - a linear Schrodinger type wave with single/double
slits in which the slits are effective symmetrical sources.
5. ShortSource_PhaseWaves.go - a linear Schrodinger type wave with single/double
slits in which the waves are generated before the slits and
have to find their way through (already biased direction)
6. WavyParcels.go - a parcel passing version of the 2d waves
7. OneDimensional_Gradient.go- a one dimensional wave spreading by gradient force.
8. PushMePullYou_Gradient.go - a purely numerical test of gradient force 2 agents,
to get the fine tuning stability number right
9. PushMePullYou_Payment.go - a purely numerical test of packet exchange 2 agents
10.SemanticTranslation.go - a finite state machine approach to unform motion in a
straight line. Now does a process remember its direction?
This model shows that a simple state machine treating X,Y
directions separately preserves these directions, but can't
describe combined X,Y motion
11. Replicator.go - cellular cloning of state, like reading DNA/RNA from strings as a basis
for molecular motors as finite state machines running on SST
12. DiagonalLargeBodyMotion.go - applying the cloning state machine mechanism to the motion of
directionally enoded body. Each new direction is a different state
machine. This seems buggy, not sure why (golang hash bug?).
13. DiagonalMinimalBodyMotion.go - using a minimal size body with sufficient structure to
enable virtual motion as several angles. Also seems buggy (golang hash bug?).
14. Mass_Diffusion.go - combination of a diffusion process with conservation for two bodies composed of tokens M
conditional on a psi wave being non-zero. The directions of momentum
is predecided and does not change. The momentum process is "serviced"
by energy from the psi wave. Each M moves independently. Geometry of double slit.
Even Though M is passed carefully, collisions can result in non-deterministic
non-conservation. There cannot be mutex locking between independent agents.
15. Mass_Diffusion.go2 - a large composite body, same algorithm, no double slit geometry to explore coherence.
Small/narrow focused psi source tends to explode the body.
16. Mass_Diffusion.go3 - same as 2 with wider psi source for greater coherence.
17. Mass_Diffusion.go4 - double slit geometry with wider source.
18. ProbableDirection.go - an interior state counter in the virtual process moves with the masses M. The bodies can
move with a momentum/direction determined by an internal "wave" pattern, somewhat like
the spin Aspect model. Each is independent, and they are unreliably passed on,
some may be blocked by existing M. The M tend to spread out over the wave front if they
are allowed to move along more than a single axis (angles are XY ratios).
19. ProbableDirection2.go - double slit geometry, two kinds of mass with different momentum
-----------------------
To plot the screen graphs, use gnuplot, e.g.
$ gnuplot
gnuplot> plot "LongSourceSlits_DS" with line
or as pdf
$ gnuplot
gnuplot> set output "alignment_spectrum.pdf"
gnuplot> plot "LongSourceSlits_DS" with line