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