--- David Clark <[EMAIL PROTECTED]> wrote:
> >  A computer with finite memory can
> > only model (predict) a computer with less memory.  No computer can
> simulate
> > itself.  When we introspect on our own brains, we must simplify the model
> to a
> > probabilistic one, whether or not it is actually deterministic.
> 
> This is NOT true.  How many answers can be had by the formula for a single
> straight line?  The answer is infinite.  A computer CAN model/simulate
> anything including itself (whatever that means) given enough time.  If the
> model has understanding (formulas or algorithms) then any amount of
> simulated detail can be realized.

By simulate, I mean in the formal sense, as a universal Turing machine can
simulate any other Turing machine, for example, you can write a program in C
that runs programs written in Pascal (e.g. a compiler or interpreter).  Thus,
you can predict what the Pascal program will do. 

Languages like Pascal and C define Turing machines.  They have unlimited
memory.  Real machines have finite memory, so you do the simulation properly
you need to also define the hardware limits of the target machine.  So if the
real program reports an out of memory error, the simulation should too, at
precisely the same point.  Now if the target machine (running Pascal) has 2 MB
memory, and your machine (running C) has 1 MB, then you can't do it.  Your
simulator will run out of memory first.

Likewise, you can't simulate your own machine, because you need additional
memory to run the simulator.

When we lack the memory for an exact simulation, we can use an approximation,
one that usually but not always gives the right answer.  For example, we
forecast the weather using an approximation of the state of the Earth's
atmosphere and get an approximate answer.  We can do the same with programs. 
For example, if a program outputs a string of bits according to some
algorithm, then you can often predict most of the bits by looking up the last
few bits of context in a table and predicting whatever bit was last output in
this context.  The cache and branch prediction logic in your CPU do something
like this.  This is an example of your computer simulating itself using a
simplified, probabilistic model.  A more accurate model would analyze the
entire program and make exact predictions, but this is not only impractical
but also impossible.  So we must have some cache misses and branch
mispredictions.

In the same way, the brain cannot predict itself.  The brain has finite
memory.  Even if the brain were deterministic (no neuron noise), this would
still be the case.  If a powerful enough computer knew the exact state of your
brain, it could predict what you would think next, but you could not predict
what that computer would output.  I know in theory you could follow the
computer's algorithm on pencil and paper, but even then you would still not
know the result of that manual computation until you did it.  No matter what
you do, you cannot predict your own thoughts with 100% accuracy.  Your mental
model must be probabilistic, whether the hardware is deterministic or not.




-- Matt Mahoney, [EMAIL PROTECTED]

-----
This list is sponsored by AGIRI: http://www.agiri.org/email
To unsubscribe or change your options, please go to:
http://v2.listbox.com/member/?member_id=231415&user_secret=fabd7936

Reply via email to