@manlius @PessoaBrain @tiago @thilo @kordinglab @NicoleCRust @hirokisayama @WiringtheBrain
Formally, I think of machine as a (cybernetic) mechanism. That is, when before is state-determined, with (relatively small) finite time memory dependency---in other words, behavior depends on a few time steps. Forest fires, hurricanes and the like can be modeled by mechanisms.
In this view, a Turing machine is not a machine, as it has infinite memory and its (complex) behavior depends on an arbitrary code between memory and instructions, with conditional branching and unpredictable changes/mutations to tape. To see this difference it is useful for me to compare Babbage's difference engine (a machine) with Babbage/Lovelace 's analytical engine (a general-purpose computer). As Babbage said, the "snake eating its own tail" is a completely different device :)
I struggle with words… I fully agree that TM cannot be machines in the sense you mentioned, since they rely on infinite resources.
But, UTM are machines in the sense you mentioned: from Conway’s game of life to my laptop, they work by transforming finite states into other finite states while acting on inputs and blueprints.
So, should we name them universal Turing engines? Should we distinguish between computation and non-computation driven mechanisms/objectives?
@manlius Anything that can be expressed programmatically can be considered a machine. The problem is that many believe that a living organism can be expressed programmatically. When one develops a formal way of expressing that is not programming, then one finally comprehends that a living organism cannot be expressed programmatically. It can be done!
@ocrampal nicely summarized!
Would you say that living organisms cannot be programmed at all or that they can be programmed in alternative ways, such as nondeterministic TM?
After all, navigating an evolutionary landscape could be seen in terms of an NDUTM flavor where the "machine" changes behavior without changing its structure, while following a "survival program"?
@manlius Non deterministic Turing machines are just a generalisation of what I call programming broadly. They are part of the traditional paradigm, or in other words the natural tendency we have of understanding and consequently expressing our understanding. What I'm talking about is a new paradigm that allows one to comprehend and express that comprehension, which does not use programming. I know it sounds esoteric, but it can be done!
@ocrampal Can you point to some operational/formal starting point? Otherwise yes, it sounds a bit esoteric...
@manlius You can find some very high level posts here: www.geneosophy.com
They are more of a teaser than anything else.
It is not only a theoretical framework, but the formal system has been developed and we are using it.
We are not in academia, so we do not publish, but should you be interested we can talk about it. Btw I'm Italian as well.
@manlius I agree words are difficult here. But a UTM is not just about converting finite states to other finite states. That is the machine (the head) part of the UTM. The magic is the addition of the external tape, which depends on an arbitrary code (agreed upon by users). It can be written onto or mutated independently, thus you cannot predict its future states, unless you'd know the states of everything that can alter it. Tape is also as large as you can make it, or infinite in the formal version.
I agree with Von Neumann, Pattee, Sydney Brenner that this separate tape is what makes living systems a form of general purpose computers (a.k.a. open ended evolution.) The code is pretty much the same for all life as we know it.
Regarding game of life and the like. Per se, it models the mechanistic finite state transitions of matter. One can implement a UTM on it, but that requires establishing an external arbitrary code (consensually agreed by all readers) between finite states of its artificial "matter" (stable dynamical patterns like gliders) and logical truth values (a minimum of true and false and basic logic gates). In other words, specific patterns of the game of life "matter" are used to encode logical expressions---that are modular in the sense that can be arranged as building blocks for infinite logic trees . But this is precisely what we do with physical computers since Babbage&Lovelace: encode modular logic in bistable metal cog wheels, vacuum tubes, or semi-conductors, etc.
The genetic code does not encode mathematical logic, like all our computers do, but rather the "logic" of aminoacid sequences. These are highly modular too and can be used to build molecular switches and much more. But not really (rate-independent) logic, rather rate-dependent biochemistry. Still, the code itself is just an arbitrary (we believe) translation of 64 possible codons to 20 aminoacids, a simple machine. It is the separate, effectively infinite tape that gives life its open-endedness since new machines can always be encoded, varied, and selected.
I suppose all this just to say that Turing machines are not (just) machines but we can make them from machines :) as Von Neumann said, machines that can increase in complexity (which simple machines can't.)
@manlius @PessoaBrain @tiago @thilo @kordinglab @NicoleCRust @hirokisayama @WiringtheBrain *before->behavior