[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
<3.0.1.32.19980821120959.0069adbc@xxxxxxxxxxxxxxxxx>
X-Sender: bouzy@xxxxxxxxxxxxxxxxx
X-Mailer: Windows Eudora Pro Version 3.0.1 (32) [F]
Date: Fri, 21 Aug 1998 12:09:59 +0200
To: David Fotland <fotland@xxxxxxxxxxxxxxxxx>, David Mechner
<mechner@xxxxxxxxxxxxxxxxx>, BOISSE_Serge@xxxxxxxxxxxxxxxxx, Computer Go
Mailing List <computer-go@xxxxxxxxxxxxxxxxx>
From: Bruno Bouzy <bouzy@xxxxxxxxxxxxxxxxx>
Subject: Re: Incremental Data Structures
In-Reply-To: <3.0.5.32.19980817202856.00865c20@xxxxxxxxxxxxxxxxx>
References: <35D886DB.68B577C5@xxxxxxxxxxxxxxxxx>
<7AA36E067958D111B78700A0C98999B21D1B3C@SAN_JACINTO>
<35D5AE7F.F58E8BF6@xxxxxxxxxxxxxxxxx> <35D83099.49518A8B@xxxxxxxxxxxxxxxxx>
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Mime-Autoconverted: from quoted-printable to 8bit by itesec.hsc.fr id
MAA26102
X-Sequence: 289
Precedence: list
A 20:28 17/08/98 -0700, David Fotland a écrit :
>At 03:39 PM 8/17/98 -0400, David Mechner wrote:
>>Serge Boisse STNA 7P (33) 562 14 5731 wrote:
>>> David Mechner wrote:
>>> >
>>> > Incremental update done by storing changes adds substantial complexity
>>> > to the program, and requires a great deal of effort to design and
>>> > implement. It has the advantage that, if done well, is nearly
>>> > transparent and puts no pressure on you to steer clear of complex or
>>> > expensive algorithms, allowing you to concentrate on generating the
>>> > information that you think best allows you to solve problems in go.
>>>
>>> Wrong. it is not transparent at all if the structure is complex :
>>> [objects' addresses change as a result of reading and/or backtracking]
>>
>>We also made this mistake when we first implemented the system. What we
>>do now to avoid this problem is copy the value of the saved version back
>>to the original location in memory when we revert so all preexisting
>>references to objects remain valid. It's quite transparent.
>
>I've also run into this problem. After some reading I might revert to the
>same position, but the group numbers are different. If I had an old group
>number and I use it, I get stale data. I solve this by using some
>canonical property of each data structure to identify it. For groups, it
>is the first stone played in the group for example. I can get the group
>number from the location of any stone in the group, so I can find the new
>group number.
>
>David
>
>>
>>Tim and I will post the source code for our revertable object system
>>shortly.
>>
>>-David
>>
>>--
>>David A. Mechner Center for Neural Science
>>mechner@xxxxxxxxxxxxxxxxx 4 Washington Place, New York, NY 10003
>>212.998.3580 http://cns.nyu.edu/~mechner/
>>
>>
>
>
In Indigo, most of objects inherits the Relying_object class (Objet_pose
in french). This class has the slot 'intersections' which is the set
of intersections on which the objet relies.
The slot 'intersections' of a relying object is a reference to the relying
object that is very useful in Indigo.
For incremental data structure, the Relying_object class has the 'track' slot
that is the set of intersections from which the existence of the object
depends. When a move is played ouside the track of an object, the object
remains and, conversely, when a move is played inside the track then the
object
is deleted (or saved in a cache).
Bruno