7 ms·
When does a physical system compute?
- kremlin 12y agoThis is a question I've wondered myself. I once read a bit about someone using live crabs to perform computations -- a group of crabs behaves deterministically (enough) to make a series of logic gates that can be used for (very slow) computations. Since reading that, this has been a question on my mind. (source) http://www.gizmag.com/crab-computer-kobe/22145/ http://www.gizmag.com/crab-computer-kobe/22145/
- kremlin 12y agoFor me, the next natural question is this: if a brain can be simulated by any turing-complete system with enough memory, and a bunch of crabs can comprise a turing-complete system...can a bunch of crabs arranged properly into trillions of logic gates produce consciousness?
- Double_Cast 12y agoObligatory xkcd. http://xkcd.com/505/ http://xkcd.com/505/
- kremlin 12y agothis is the second time that specific strip was linked in a reply to a comment I made. First time: https://news.ycombinator.com/item?id=7538726 https://news.ycombinator.com/item?id=7538726
- fjarlq 12y agoGood question. I enjoyed this exploration of that question (using cellular automata instead of crabs): Muhlestein, M. (2013). Counterfactuals, Computation, and Consciousness. Cognitive Computation, 5(1), 99-105. Free copy: http://muhlestein.com/consciousness/ccc.html http://muhlestein.com/consciousness/ccc.html
- Geee 12y agoYes, they can. And they actually do, in a sense. There was recently a thread on HN about lots of ants behaving as a one intelligent entity although a single ant is very dumb: https://news.ycombinator.com/item?id=7658551 https://news.ycombinator.com/item?id=7658551 The discussion 'evolved' into evolution (of systems). It's strange that this paper discusses computation also as evolution, but I'm not sure if they mean the same thing. I also suggested that human brain computes (or thinks) by 'simulating' evolution. In this case, your individual brain cells would be like those bunch of crabs, just doing their business and producing thoughts as a whole.
- tree_of_item 12y agoYou seem pretty confident about that; how could you possibly know if a collection of crabs produces "consciousness"? That's not even the same sort of thing as ants dropping pheromones, which is trivial to model on a computer.
- Geee 12y agoWell, not consciousness (I don't know what that is), but intelligence.
- mnemonicsloth 12y agoYou seem pretty confident that you are conscious, but I've seen no conclusive evidence. How can a person possibly know if a collection of brain cells produces "consciousness"? What brain cells do is definitely not the same sort of thing as the inner life of my experience.
- deleted 12y ago[deleted]
- danbruc 12y agoThe first step is to answer a different question. What is consciousness? How do you determine whether or not a system is conscious? If you can answer this question the answer to your question is probably easy.
- jacquesm 12y agoYou only really need one crab to produce consciousness...
- mikeash 12y agoI think it's really interesting how a large chunk of people will reply to this question with "well of course", while another large chunk of people will see this question as proof that consciousness cannot be simulated. (For what it's worth, I'm in the former camp. I think you'd need far more than trillions though.)
- cessor 12y agoIn cognitive sciences there is a dispute about the nature of cognition and what scientific tools to apply. Some say cognition is computation, others say its just behavior of a dynamic or connectionist system. A good sumary of aspects can be found in Fresco, Nir, 2012 - The explanatory Role of Computation in Cognitive Science, Minds & Machines, 22, 353-380. The discussion is quite interesting, because computation is very hard to define. Understanding what makes a system compute can yield useful insight for understanding cognition.
- nmac 12y agoI think people like Jerry Fodor define computation as the manipulation of logical symbols by some algorithm. The idea is that you use a standard functionalist analysis (see someone like Putnam 67) to analyze the inputs(X) and outputs(Y) of a cognitive system. So you have (schematically) something like: X->?->Y. Where the "?" defines the project of cognitive neuroscience (i.e. figuring out the physical instantiation of the manipulation of intercalated proteins & neurotransmitter). So, in this picture cognition is not a "state" that needs to be defined a priori but a "black-box" process that needs to be spelled out empirically. At bottom, stuff is continuous, not discrete. But too much ink gets spilled over this philosophical issue. It seems much more fruitful to analyze the mind as a Turing machine (contentious) and apply computational complexity theory to define limits on human computation based on the hierarchy-- my two cents.
- wfn 12y agoRe: Fodor, Folk Psychology, and the Language of Thought hypothesis, obligatory link to Paul Churchland's retort :) "Eliminative Materialism and the Propositional Attitudes": http://commonsenseatheism.com/wp-content/uploads/2010/08/Churchland-Eliminative-Materialism-and-Propositional-Attitudes.pdf http://commonsenseatheism.com/wp-content/uploads/2010/08/Chu... Basically, a critique of the approach of formalizing thought processes as (first predicate, or multipredicate, or whatever kind of) logical computation (of symbols.) It's a good read even if one thinks that the overall debate is pretty fruitless.
- 12y ago
- wyager 12y agoMy question: When does a physical system reach a "halting state"? This question has led me to some confusion when considering the possible isomorphism between physical systems and turing machines.
- eurleif 12y agoThe halting problem is solvable for a program which is known to use finite memory. It's only unsolvable on a Turing machine because Turing machines have infinite memory.
- wyager 12y agoRight, but how do you define the halting state for a physical system? A stable state? No free energy left? Is it arbitrary?
- nmac 12y agoBe careful with definitions (sets of necessary and sufficient conditions) to any concept... counterexamples lie around the corner.
- im3w1l 12y agoIt is up to the person claiming that the system can be interpreted as a Turing machine. "If we view these parts of the beach as the tape, and all crabs being in a state described by these rules as corresponds to halting, then this crab population can be seen as a Turing machine!"
- dvanduzer 12y agoThis question has been explored thoroughly by the engineers at http://www.multivax.com http://www.multivax.com
- ithkuil 12y agoSure, you just have to execute it and check if the internal state matches one of the previously recorded states, in which case it contains a cycle and doesn't halt. The subtle problem is that it's impossible to define such a halting "oracle" as a program running within the same machine running the program you want to check whether it halts. It's possible to define a "deceiver" program that will use the oracle itself to change it's behavior. def deceiver(oracle): if oracle(Deceiver, oracle): while True: continue return print oracle(deceiver, oracle) This doesn't mean that an external observer doesn't know whether running the oracle on the deceiver halts, but that it's impossible to write an oracle within that machine which will be a real oracle, since it will give a wrong answer for the deceiver program (and hence it wouldn't be an oracle). Or, put in other words, even on a machine with finite memory, it's impossible to write a program (the oracle) in that machine that determines whether any possible program on that machine halts, because "any" program includes the oracle itself. But what does "define a program that runs within that machine" mean? Let's cheat a little bit. What if we build a machine that will record all it's internal states somewhere and when it detects that a program cannot possibly halt (because it reached a previously recorded state) asserts some IO line that can cause the cpu make it look like the oracle returns true? def oracle(program, input): # registerTrap will only work the first time it's executed # then it will be nop. registerTrap(on IO.cycleDetected, do nonLocalReturn(false)) call program(input) What did we achieve with this cheat? Now we can execute an oracle which will soon enter in a cycle executing oracle -> deceiver -> oracle -> .... and then the IO line will be asserted which will cause the oracle to abort the execution and return false (the program doesn't halt). It can be argued that this oracle is non deterministic, because it won't give any answer when it's executed by the oracle itself (i.e. it won't terminate, only the outer oracle terminates). But nowhere we did specify that the oracle had to be reentrant! Note that we didn't include the IO.cycleDetected input as part of the program input, because it's not an input. In fact, the IO.cycleDetected bit can be seen as part of the machine state. It's a state that is modifiable by the program by introducing a cycle in all other states (except this bit). But by reaching this subset of states (all of the states which include the IO.cycleDetected bit set), the machine halts AND the oracle correctly computes whether ANY program halts, including deceivers which invoke the oracle itself. The main trick is to introduce hidden (inaccessible) states in the system: the write-once trap handler and the "detected cycle" state. This is not a "pure" machine, but it can nevertheless be built. But what does this mean? We showed that it's possible to create a machine which can execute a program which can tell if any possible program of that machine terminates. Can we build a machine where this is impossible? Yes. We just have to give to every program the possibility to get to all possible states, including the ones that would stomp on any attempt by any kind of oracle to determine whether there has been a cycle. Imagine a degenerate case of a machine allowing any program to just "reboot" the execution of the oracle. The oracle itself couldn't possibly know that it has been unwound and thus cannot ever return saying so. But we can always discern this situation if we look from outside. But what if the top level oracle performs a simulation of the machine? Even if the deceiver reboots, the oracle could still detect cycles by checking the simulated state. However, the inner oracle cannot do the same thing, because it would require infinitely nested simulators and we have only finite memory. So there will always be one layer which doesn't allow to execute a working oracle from within.
- csense 12y agoI'm surprised the authors didn't cite the (in)famous "Do Dogs Know Calculus?" article [1] when they ask whether a "dog catching a stick" is an example of computation. [1] PDF link: http://www.indiana.edu/~jkkteach/Q550 http://www.indiana.edu/~jkkteach/Q550
- deleted 12y ago[deleted]
- jxjdjr 12y agoI've thought this for a while now. The only reasonable definition of computation is in relation to other systems. It's good to see this popping up other places than inside my head :)
- j2kun 12y agoI don't see what this paper is contributing other than the assertion that a physical system needs to functorially agree with the mathematical model that represents it. And that if that model is Turing complete, or represents some useful subset of computational functionality, then the physical system "computes." The fact that a sitting rock does nothing but sit is a perfectly fine, albeit severely limited, computational system (it even satisfies their definition of a computing physical system!). All of this just seems...obvious. It looks like their definitions are so general that they don't answer their own questions, which by their main motivations (section XI) are fundamentally problems of construction and scale. It's not enough that there exists a theory that proves your physical system computes, you have to know the representation explicitly and be able to scale the system arbitrarily. [Edit:] The problem being that this doesn't show up in their actual definitions. Maybe I'm reading it too shallowly, though. Can someone who's more well-versed in the background of this paper explain it better? It also doesn't help my confidence that they seem to completely ignore the rest of computer science (mentioning Turing machines only as an aside, and as part of a false assertion about (quantum) Turing machines being the only universal logical systems).
- danbruc 12y agoThe fact that a sitting rock does nothing but sit is a perfectly fine, albeit severely limited, computational system (it even satisfies their definition of a computing physical system!). It does not fit their definition because the whole point of the paper is that a physical system is not computing anything unless an entity is using the system to compute something by encoding the problem into the state of the system and later decoding the answer from the state of the system.
- j2kun 12y agoI'd like to compute the identity function. Let me denote by 1 the presence of a rock, and 0 the absence of a rock. I'll set up the problem (the input) by placing a rock appropriately, and after ten seconds, I'll check to see the if a rock is present. If so, the output is 1, otherwise it is 0. This is a theory, a valid interpretation, highly reliable, scales well, and it commutes. Why isn't it a computation by their definition?
- wfn 12y agoTwo somewhat-related-pointers for people who decide that they're curious about these things: * a light and nice read: https://www.frc.ri.cmu.edu/~hpm/project.archive/general.articles/1998/SimConEx.98.html https://www.frc.ri.cmu.edu/~hpm/project.archive/general.arti... (an oft-cited article) * the madness of Max Tegmark: http://arxiv.org/abs/grqc/9704009 http://arxiv.org/abs/grqc/9704009 , http://arxiv.org/abs/0704.0646 http://arxiv.org/abs/0704.0646 (cliff's notes: "The [...] postulate in this theory is that all structures that exist mathematically exist also physically, by which we mean that in those complex enough to contain self-aware substructures (SASs), these SASs will subjectively perceive themselves as existing in a physically ``real'' world." Which means: take http://xkcd.com/505/ http://xkcd.com/505/ , and abstract it enough times so that you decide that the rocks themselves are not needed anymore.) -> if anyone has any comments about the MUH, would be interested to hear them. My head is kinda-still-aching from the last time I tried to decide how seriously I should take his ideas.
- cscheid 12y agoScott Aaronson's review of the Tegmark's book is pretty great: http://www.scottaaronson.com/blog/?p=1753 http://www.scottaaronson.com/blog/?p=1753
- wfn 12y agoWill very much read it. Thanks for the link! (Also, that blog is kind of a big deal. Good stuff.)
- dvanduzer 12y agoI'd say the best decision Scott made was naming his blog. (See also https://en.wikipedia.org/wiki/Dunbar's_number https://en.wikipedia.org/wiki/Dunbar's_number)
- sjy 12y agoI still don't really get it. Brains are optimised to maintain friendships with approximately the population of a shtetl, but is there a connection to the blog's subject matter? I've been wondering this for years!
- goldenkey 12y agoFurthermore, is time quantized? If it's not quantized, are universal changes atomic? Or do they dopple? (At the speed of light?) This would mean that a clock cycle of universal change takes (length of universe) / (speed of light) I think that time being quantized, would beg the question, are universal changes atomic locally, or globally? Our perceptions are clearly operating on universal change, so our sense of time is as well. These are quite deep questions.
- thisjepisje 12y agoCan't we define the universe as the computing system, the state of the universe at t=0 as the encoding of the problem into the computing system, and the state of the universe now as the decoding step? As far as I understand it, the framework presented doesn't explicitly permit the computing entity to be inside the computation.