Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: A "New" Idea for Adaptive Programs

Author: Martin Giepmans

Date: 15:07:29 12/23/02

Go up one level in this thread


On December 23, 2002 at 15:47:01, Bob Durrett wrote:

>On December 23, 2002 at 15:25:06, Martin Giepmans wrote:
>
>>On December 23, 2002 at 14:57:02, Bob Durrett wrote:
>>
>>>
>>>Not being up-to-speed on reading programming journals in all languages, I am not
>>>sure that the following idea is original.  But I will "take my chances" in the
>>>hope of not being Zapped too badly if it is not original.  : )
>>>
>>>I am interested in adaptive programs, especially as the theory applies to chess
>>>engines.
>>>
>>>The basic concept is to produce a program that will change itself "in a big
>>>way," as the environment or problems being solved change.  This
>>>self-modification would take place several or many times in as short a time as
>>>an hour.
>>>
>>>Still trying to stay general: How to do this?
>>>
>>>One way, impractical for sure, would be to have a single overall program which
>>>was a package consisting of many specific programs.  As the environment or other
>>>factors changed, the program would be stimulated to jump from the current
>>>specific program to the more appropriate one, with the necessary data
>>>transferred to the new specific program.  This sort of jump could occur often
>>>and many times as the need dictated.
>>>
>>>Perhaps a more practical approach might be to have a single program with many
>>>parameters that could be set or reset quickly.  In this scenario, the stimuli
>>>would result in calling of a "reconfigure" program.  This program would then,
>>>very quickly, reset the parameters of the main program.  In this way, the main
>>>program would, in effect, be a new program.
>>>
>>>A more generalized version of the latter approach would be for the "reconfigure"
>>>program to VERY QUICKLY make extensive modifications to the main program.
>>>
>>>Are these ideas any good?
>>>
>>>If they are, are they currently in use in existing chess engines?
>>>
>>>If not, does this sound like a possible improvement for the future?
>>>
>>>What is your "gut feel" in this matter?
>>>
>>>Bob D.
>>
>>I wonder if there is a "real" difference between
>>
>>(a) a program that changes itself (even in a big way)
>>(b) a normal program that has code like "if a then x else if b then y .."
>>
>>Theorem: for every program of type a there is program of type b that behaves
>>exactly the same.
>>(ie no differences in output, although there may be differences in the "black
>>box")
>>
>>True?
>>
>>Martin
>
>(1) There is no way that I could say definitively whether or not that is true.
>
>(2) There is more than one way to configure a program.  It may be that (a) is
>easier to program and debug than (b), for example.
>
>There is something to be said for having different parts of a program do
>different things, even if the program is not as fast as a fully integrated
>seamless program.  Programming and debugging (b) might be a nightmare!!!
>
>Bob D.

I don't know, programming and debugging (a) might also be a nightmare.
Suppose we write a reconfigure program that (re)writes a chess program,
depending on the position, the opponent maybe, etc.
In version 74 of the chess program we discover a bug. Let's say it crashed
when the reportedly nonsmoking opponent for which it was made by Reconfigure
blew smoke at the screen. ;)
OK, now what? First we will have to find what was wrong with 74, than
we will have to retrace the bug back to Reconfigure. Suppose we find the
bug in Reconfigure. We restart that program, it creates 1 .. 23 without
any problem and they play well, but just when we start to relax and smile
program 24 does an illegal move because the opponent for which it was made, a
heavy smoker, _doesn't_ blow smoke at the screen ....

Martin




This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.