On Tue, 2011-07-26 at 19:28 -0700, Casey Ransberger wrote:
> Please forgive - not a physicist. 
> 
> Ian mentioned something about a Bose-Einstein Condensate for computer 
> programming once, and this really jumped out at me. 
> 
> I've seen math and I've seen biology applied, at least in metaphor, to our 
> problems. I can't think of a lot of stories about applying physics to these 
> troubles, and I wonder why. 
> 
> I keep hearing about purely mathematical type systems. I will admit that 
> being focused on "type" seems to have been a bit of an intellectual 
> digression for me, perhaps because the Air Force base really wanted me to 
> take classes centered on Ada, and when I eventually found Smalltalk, I felt 
> almost a sense of relief. 
> 
> I don't think I've ever seen a set of types that looked anything like 
> #(strong weak electro slipperyGraviton) asSet. Maybe it's because this is too 
> much like a type system for an assembly language?
> 
> I probably don't have sufficient command of these fields to even ask smart 
> questions. I'm asking anyway. 
> 
> With the discussion of "particles and fields" it seems at least topical. 
> 
> Any takers?

Physics is certainly useful in various computing contexts, especially
statistical physics. Useful concepts include:

Statistical mechanics: Time-evolution of averaged quantities (such as
entropy) in a system with bounded energy. This is useful for random
models such as neural networks (eg. restricted Boltzmann machines). The
concept of entropy (information) is fundamental to computing, and the
concept of reversibility can often be useful.

Mass-and-spring simulations: These can be useful to turn a topological
model into a geometric one (eg. finding a compact layout for a graph of
nodes and edges
http://en.wikipedia.org/wiki/Force-based_algorithms_(graph_drawing) )

Relativity/causality: Relativity builds coherent models of space and
time (spacetime) out of partial orders on discrete events, as long as
they obey causality (an event cannot precede its cause in any partial
ordering). This is useful for studying parallel programs (eg.
http://wiki.cs.pdx.edu/rp/ ). Relativity can also be seen as the
ultimate case of locality and modularity, since it says information
cannot travel faster than the speed of light.

Spontaneous symmetry breaking: Almost all fundamental Physics is the
study of symmetry and spontaneous symmetry breaking. Spontaneous
symmetry breaking is also important for self-organisation and emergent
behaviour, for example in distributed systems (eg. emergent networks
http://groups.csail.mit.edu/mac/projects/amorphous/Network/ )

Space: (Mostly Maths I know, but space is an important concept in
Physics) Geometric analogies like distance are useful for various
algorithms (eg. Kademlia uses the XOR of 2 bit strings as the distance
between them in space http://en.wikipedia.org/wiki/Kademlia )

Phase changes: Phase changes are useful for describing the behaviour of
a variety of systems. As well as simple phase changes like
solid<->liquid<->gas, there can be some interesting phase changes found
in derived quantities too (glass is an example of this).

Chaos theory: Chaos theory has been studied by Physicists, but in my
opinion the neglect of chaos theory is a major problem with Physics
today and is an area where Physicists could learn from Computer
Scientists.

Chaotic systems are those which are arbitrarily sensitive to their
initial conditions; in other words, you may be able to describe the
rules a system will obey, but you can never know the starting conditions
precisely enough to predict how it will behave. Chaotic systems are
usually avoided in Physics, unless they're being studied because of
their chaotic properties, since they're hard to model.

Off-topic: IMHO computers are the ultimate chaotic systems, as a
universal system (eg. a universal Turing machine) can behave like
anything else, depending on its initial conditions. Seemingly every area
of Physics can be proved to allow universal systems (eg. Newtonian
mechanics http://en.wikipedia.org/wiki/Billiard-ball_computer ,
thermodynamics http://lambda-the-ultimate.org/node/4120 , quantum
mechanics http://en.wikipedia.org/wiki/Quantum_computer , etc.) yet
chaos is all too often hand-waved away by such things as the Ergodic
approximation, which the universality results above prove is flawed (the
Ergodic approximation implies a solution to the halting problem).

Locality: Mentioned in passing for relativity, but locality is a very
useful property that holds for most Physics: stuff happens because of
stuff nearby. In computing this would be the equivalent of "globals
considered harmful". The particles and fields you mentioned are an
example of this. In the STEPS example of self-organising characters in a
text editor, the interactions are all local, which makes them very easy
to reason about. In a, dare I say theological, alternative, the
all-powerful text editor seeks to position each and every character
using its ineffable algorithms, and is thus impossible to reason about
because one cannot know the mind of the text editor.

As far as something like a type system based on Physics goes, I think
that would be a bit messy. Physics is usually a very conservative
discipline; most of its results show what definitely isn't possible
(energy cannot come from nothing, entropy cannot decrease, there is a
maximum speed, etc.), however equivalent results in a computer system
would still give such a broad envelope that it would be of little
practical value. For example, if we take the analogy of the Physical law
"information cannot be transferred faster than the speed of light", what
this translates to is that you cannot access a result before you know
the computation of it has finished. Very true, but quite useless (since
it's an obvious statement). As another example, the increase of entropy
says that your data can get corrupted, but data cannot be found in
noise. Once again true, but useless for practical purposes.

Another reason I would argue against something like types based on
Physics is that Physics tries to work out the inconceivable ways that
the Universe actually behaves by systematically throwing away all of our
intuitions that turn out to be wrong. With a computer system, we want
the opposite; we want a system that requires as little study as
possible, and for which our intuitions are accurate.

There is the well known saying among Computer Scientists that "nobody
wants to program a Turing Machine", since it's too tedious and
unfathomable. I would say that the equivalent for Physics is that
"nobody wants to study the Universe", because it's too tedious and
unfathomable ;)

Cheers,
Chris Warburton

PS: My degree was in Physics and Computer Science :)


_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to