The memory model concentrates on the objects. There are two different classes of objects in the soccer domain that must be handled differently. There are stationary objects whose global position do not change, and there are mobile objects whose global position do change. Both of these classes of objects need to be handled differently. Mobile objects can move unpredictably when not in view, so it is not always possible to accurately determine where they are if they are not in view. However, with the proper memory model, stationary objects can be located even when not in view.
With velocity estimations, a crude estimate of mobile objects' positions can be maintained. Since they have their own motion, changes in their relative position could be caused by either the client's motion or the motion of the object. These two causes will need to be separated in order to keep an accurate estimate of a mobile object's velocity.
For each object, an estimation of its position is stored and updated. The position consists of its relative polar coordinates, the same information that the simulator sends to the client for visible objects. Since this stored position is an estimate and we want it to apply to objects that aren't visible, we need to store something that describes the accuracy of the estimation. We do this by storing a probability, which is the confidence in the estimate. When the memory receives position information from the simulator, we assign it a confidence of one. If the object is not currently visible then it will have a confidence of less than one.
Audio sensory information complicates this slightly. Since audio information gives us information on an object's direction but not its distance, it is possible to have a different confidence in the object's direction than its distance. So we must store separate probabilities for direction and distance.