On 08/07/06, Russell Wallace <[EMAIL PROTECTED]> wrote:
On 7/8/06, William Pearson <[EMAIL PROTECTED]> wrote:

> Agreed, but I think looking at it in terms of a single language is a
> mistake.  Humans  use body language and mimicry to acquire spoken
> language and spoken/body to acquire written and then onto maths etc.
> So a starting general problem solver may have a simple
> language/representation that is uses to bootstrap to other
> languages/representations suited to the tasks that it is attempting to
> do.


 Well indeed that is the situation we have: we start with some programming
language, and use it to build stuff. But note that it won't be a general
problem solver until we've built a lot more stuff than we currently have;
until then it's just a _generic_ tool that we hope to use to build a
_general_ kit.

Okay.

<snip>

> If you agree with this then hopefully you will also see that there
> needs to be someway of constraining the tools built so that bugs are
> not introduced into the system or that if they are they can be
> corrected. This I think needs a low level approach as well as the high
> level tools that we have been talking about. This is what I am
> interested in.


 Clearly when (not if) bugs are introduced into any system they need to be
corrected. But I'm not sure what you mean by low level approach - low level
tools by their very nature can only catch low level bugs, null pointer
references or array bounds or the like; that's handy as far as it goes but
the interesting bugs are at higher levels. Can you explain what you're
getting at here?


I am not relying on one singular apporach to dealing with bugs as I
expect new methods to deal with bugs to be introduced (what we call
rational thought being one of them). When process X wishes to correct
process Y, it basically starts a conflict. X might be correct and Y is
malfunctioning or X might be malfunctioning in trying to alter Y and
may cause further harm.

Note that malfunction can also mean functioning poorly and X may be
trying to improve Y as well as correct and error.

To resolve this conflict requires us to have some form of knowledge of
how well the processes have been performing. If X has been performing
better than Y we can hope that X is functioning correctly and allow X
to correct Y. How can we know whether a process is performing well?
Well it has to be up to each process to monitor the others it
interacts with. As no one process has the knowledge (as one process
interacts with many others) then it has to be scored by many other
processes on how useful it is being. They each give it a quantity
called usefulness, utility, happiness points or fitness (as it sets up
a form of evolution). To minimise errors in this usefulness system,
usefulness has to be conserved, a process can only give out some of
the usefulness it has. Also to correct an error or create an
improvement the usefulness of the process being corrected has to be
paid and used up, to indicate the amount of potential damage the
correction tool has done. So if a process is not being given any
usefulness it will be very easy to get rid of.

So how is usefulness introduced into the system? A fixed system that
monitors  feedback from the world and then gives usefulness to the
processes that are outputting to the world at that time. They then
have to pass it back to the processes that have been useful to them,
such as the ones that give them useful information or the tools that
have created them and then those recipients pass it back &c.

I am currently thinking of connecting this to a big button users can
smash when the system malfunctions.

The reason why I called this approach to error correction low-level is
that it requires that the passing of usefulness to be conserved and to
be done in hardware (or at least unalterable in the language used to
construct tools) else it can be subverted by aberrant processes.
Although the actual error correction can happen at any level, it is
the low-level method that allows it to happen or not.

 Will Pearson

-------
To unsubscribe, change your address, or temporarily deactivate your subscription, please go to http://v2.listbox.com/member/[EMAIL PROTECTED]

Reply via email to