Author: Bob Durrett
Date: 15:43:12 12/23/02
Go up one level in this thread
On December 23, 2002 at 18:07:29, Martin Giepmans wrote: >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 Well, I am not a "bugologist" and wouldn't recognize a C language bug if it bit me on the "censored." [You fill in the censored part.] But I used to debug my Fortran programs more than most since I made so many programming errors. : ) There are millions of computer programming books about modular programs. I'm sure debugging methods have already been perfected for such programs. Bob D.
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.