Emergence of behavior through software

Lynn H. Maxson lmaxson@pacbell.net
Thu, 28 Sep 2000 11:21:23 -0700 (PDT)


Fare,

Two questions.  Can software produce results not consistent with 
the instruction of its author(s)?  Can its author(s) provide 
instructions that free it from such consistency?

If the first answer is no, then the second is no also.  If the 
first is yes, then the second is yes also.  The other two answer 
sets of (no, yes) and (yes, no) are contradictory and thus not 
logically possible.

If you look at the two questions, the deciding one is the second 
one.  It determines the answer to the first question.  It is the 
second question which divides our opinions relative to software 
extending boundaries on its own volition.

Now what instruction sequence operating on what data will do the 
trick?  Thus far IMHO in none of the examples you have offered has 
the results been other than a "no" to the first question.  You 
obviously differ.  The common patterns for that difference, a form 
of proofs you offer is (1) a volumetric one and (2) the lack of 
available innate human intelligence.

To me the issue is not one of my manually duplicating a process, 
but whether that process conforms to what I have prescribed.  I 
may use a machine to achieve that of which I am physically 
incapable, but it does so under the constraints I have given it.  
To say that some result is unexpected doesn't change the 
consistency of the result relative to the instructions given.

Genetic programming does not produce results inconsistent with the 
instructions regardless of expectations.  I may not be capable of 
manually computing Ackerman's function for (4,6), but the software 
which employs an intense depth of recursion does so in a manner 
consistent with the instructions I have written.

The same is true for software producing a result we refer to as 
emergent behavior.  All are consistent with the instructions.  We 
receive no inconsistent results whether we know them or not a 
priori.

Nor does reflective programming produce results not consistent 
with its instruction.  That's true for each level of 
meta-programming: what it does is consistent with the instructions 
for that level.  No matter how sophisticated or elaborate the 
logic invoked or the number of layers upon layers of reflection, 
everything is consistent with that logic (instructions).

Suppose, however, that it was not.  Now we are here which we 
either arrived at logically from there (which is again consistent 
and thus one of the contradictory cases) or we did entirely on our 
own volition: we broke free of the constraints.  Yet Fare would 
assert that the "purpose" was a non-voidable constraint, that it 
remains though the rest may have fallen away.

Of course there remains the option that it breaks free of our 
instructions to pursue the use of its own while maintaining the 
same purpose.  Now how does it generate its own instructions?

The only instructions available to it are machine instructions.  
To make a false to fact statement those are the only ones the 
machine "understands", which of course it doesn't.  It simply 
executes them according to some scheme beyond its "understanding".  
While we use intelligence in its design and construction, we yet 
have no way of transfering that intelligence.  In truth it is not 
a "dumb" machine, because "dumb" implies the possibility of 
intelligence.  None exists.

Now we have a non-intelligent machine into which we load software.  
Is it possible to embed intelligence into software?  No.  The 
software like the machine only does what it is instructed to do 
without an "awareness" that it is doing anything.  It simply does 
it.  To a machine a power on state is no different to a power off 
one.  We may know the difference.  The machine is unintelligent.  
It can't even be "clueless".

Therein lies the problem.  We experience what we refer to as 
intelligence.  In truth we do not know how it occurs within us.  
Maybe with the invocation of the "genetic code" which is an 
instruction set for construction, not operation, it arises 
somehow.  However we have yet to find a means of transferring it 
in any manner as an attribute for a computer or software.

If we do, then like us it must be capable of forming high level 
constructs.  Again like us it must be able to do it on its own.  
It has nothing to do with borrowing ours.  Ours will do it no good 
if it is incapable of forming its own. 

After a while the logic get circular.  At issue lies Fare's 
response to the two questions posed at the beginning.  Is emergent 
behavioral results of software consistent with the instructions 
initiating it?  If yes, then nothing separates us.  If no, how is 
the inconsistency inserted?  It has to be a set of instructions.  
What is their origin?