Minimal descriptions of cyclic memories

Many materials that are out of equilibrium can ‘learn’ one or more inputs that are repeatedly applied. Yet, a common framework for understanding such memories is lacking. Here, we construct minimal representations of cyclic memory behaviours as directed graphs, and we construct simple physically motivated models that produce the same graph structures. We show how a model of worn grass between park benches can produce multiple transient memories—a behaviour previously observed in dilute suspensions of particles and charge-density-wave conductors—and the Mullins effect. Isolating these behaviours in our simple model allows us to assess the necessary ingredients for these kinds of memory, and to quantify memory capacity. We contrast these behaviours with a simple Preisach model that produces return-point memory. Our analysis provides a unified method for comparing and diagnosing cyclic memory behaviours across different materials.


Introduction
Materials that are out of equilibrium can sometimes form memories of their past. Rubber and rocks may remember the largest loading applied to them [1][2][3]; glasses may remember aspects of their relaxation [4][5][6][7]; a sheet of plastic can remember how severely [8] or how long [9] it was crumpled. In each of these systems, information may be stored and then retrieved at a later time if there is some established protocol for doing so. of this idea and the many common features shared by diverse examples [10], there is presently no overarching framework for understanding memories in materials.
One promising place to start building such a framework is in systems where the driving may be divided into cycles. Examples include a repeatedly sheared granular material or amorphous solid [11][12][13][14], or a set of magnetic domains in an oscillating external field [15,16]. Here we distill the essential aspects of several cyclic memory behaviours into simple transition graphs, which represent the different memory-encoding macrostates and the transitions between them. We show that this is a succinct and powerful way to compare these various behaviours, and we highlight how this approach can help diagnose memory behaviours in experiments.
Some physical systems lend themselves naturally to a graph representation [17] because they are clearly discrete (e.g. spin systems), while others are just beginning to be described in this way (e.g. amorphous solids under quasi-static shear [17,18]). One question that arises in this effort is whether a behaviour called multiple transient memory (MTM) may be captured with a small set of discrete states. This behaviour is observed in charge-density wave conductors' memory of electrical pulse duration [19,20] and non-Brownian suspensions' memory of the amplitude of oscillatory shear [21][22][23][24]. When these systems are driven cyclically, they self-organize into steady states that store the repeated value (i.e. the pulse duration or the strain amplitude γ 0 ). Moreover, when driven with multiple amplitudes on successive cycles, they display the following properties: (1) during the transient, multiple γ i may be encoded; (2) the order in which the values are applied is not crucial-introducing a new γ i during the transient may degrade the memories of previous values but does not erase them; (3) when a steady state is reached, it can only retain memories of the smallest and largest γ i that were applied; and remarkably, (4) a small amount of noise allows all memories to be retained indefinitely [19][20][21][22][23].
Our approach is to consider small sets of discrete states that obey a given memory behaviour. Figure 1 shows five states and transitions that exhibit properties 1-3 of MTM, where the states are labelled with the memories they store. The system starts in a memoryless state, {}. During each cycle, an amplitude of either γ 0 = 1 or 2 is applied. Hence, there are two arrows emanating from each state, labelled with the driving amplitude for that transition. (An arrow may point to the state where it started if the driving does not change the state.) Consider first the driving sequence: γ 0 = 2, 1, 2, 1, 2, 1, . . .. Following the transitions shown in figure 1, this leads to a series of memory states: where the absorbing state is denoted with a * to indicate that it is incapable of having a memory of 1 written in it. The state {1, 2} is obtained once, demonstrating that multiple memories may be encoded in the transient (Property 1). To see that Property 2 holds, one may consider a different driving sequence: γ 0 = 1, 2, 1, 2, 1, 2, . . ., which also reaches the state {1, 2} during the transient. Any repeated sequence containing γ 0 = 1 and 2 eventually leads to the absorbing state {2} * , satisfying Property 3. (For simplicity, we do not denote the memory of the smallest input, which for a suspension driven cyclically between γ = 0 and γ i corresponds to a 'trivial' memory written at γ = 0 [23]; here this memory would be present in all but the featureless state, {}.) While this description is useful in demonstrating properties 1-3 of MTM in a minimal set of discrete states, it is somewhat artificial; we did not provide a physical reason for this arrangement of states or the transitions. Thus, in this paper we also describe a novel, simple, and physically motivated model proposed by Sidney Nagel called the 'park bench model', which captures the distinctive aspects of MTM. We then show how noise may be introduced into the model to prolong the transient period indefinitely. Our analysis of noise in this model allows us to define a memory capacity-the number of distinct memories that can be retained simultaneously-which has been elusive in other systems with MTM. We also demonstrate that this model's behaviour may reduce to a simpler type of memory (the Mullins effect) for some initial states. To show the versatility of our approach and highlight differences from MTM, we then construct minimal graphs of return-point memory (RPM) [16,[25][26][27], and we describe a simple physical model that produces this memory structure. Finally, we describe how this graph framework can help suggest specific hypotheses and tests for experiments and simulations, which should be useful in systems where the distinctions among the memory behaviours are not as clear [13,18,24,28,29]. These results are a concrete step towards developing a broad organizing framework for memories in matter.

(a) Park bench model
Consider a lawn with several benches arranged in a straight line. As visitors walk from the end of the park to any one of the benches, they gradually wear a path into the grass. As an observer, what can you deduce about previous visitors by looking at the grass? If the worn path ends at one of the benches, you may infer that many people stopped at that particular bench. On a finer scale, if the grass is somewhat worn leading up to the second bench but more worn up to the first bench, you might infer that some visitors walked to only the first bench and others continued on to the second bench. Thus, any spatial variation in the wear provides information about the past.
Perhaps counterintuitively, information may also be lost through wear. Suppose the interval from the entrance to the second bench is so thoroughly travelled that the grass is completely worn down to the soil. In that case, you lose any clue that the first bench was visited at all; there can be no change in the state of the grass along an interval if it is worn to its roots. Even more behaviours are possible if the grass is gradually growing back at all times; we consider this possibility in § §2b.
To make these notions precise, we consider a one-dimensional model with N benches separating N + 1 patches of grass on a line, as drawn in figure 2a. Each patch of grass has initial height h init . During a cycle, a visitor starts at the park entrance, walks to the nth bench (thus passing all the benches before it) and then returns to the park entrance. As a result, the grass height decreases by one unit on patches 1 through n. We consider cyclic driving where patrons visit any sequence of benches in this manner. We denote the state of the system by a string of N + 1 integers that record the grass height on each patch, including the last, inaccessible patch. (The benches may be visualized as sitting between the integers in the string.) A valid state is thus given by a non-decreasing string of length N + 1, of any values 0 through h init , ending with h init for the last patch.

(i) Graph representation and behaviour
To show all the possible ways a system may evolve, we enumerate the accessible states and draw a directed graph of the transitions between them, as shown in figure 2b for the system N = 2, h init = 2. Each state has N arrows coming out of it (here N = 2), representing the N possible amplitudes of a park-goer's stroll to any of the N benches and back. The state with N zeros and a single pristine patch of height h init represents a completely worn path up to the last bench. This is a fixed point of the driving; all arrows from this state point back to it.  Except for the initial state 222, all the states store some amount of memory. States 002 and 112 are uniformly worn up to the second bench, so they store a memory of only the second bench. (Although it is possible that trips to the first bench were also involved in reaching state 002, there is no way to know that from these grass heights.) The state 012 stores two memories: it implies that both the first and second benches were visited. By considering these states in terms of their memory content, one may readily verify that this graph has the same structure as the minimal graph for MTM shown in figure 1 (plus the additional state 022). Likewise, by considering the driving sequences γ = 2, 1, 2, 1, . . . and γ = 1, 2, 1, 2, . . ., one can check properties 1-3 of MTM. 1 Figure 3 shows the transition graph for the system with N = 3, h init = 2. Here, three states contain multiple memories: 0122 stores memories of 1 and 2; 0112 stores memories of 1 and 3 and 0012 stores memories of 2 and 3. The values of N and h init set the memory capacity of the system: in the example of figure 3, the initial grass height is not tall enough to store memories of 1, 2 and 3 simultaneously. In general, the model can store at most min(N, h init ) memories at one time.
(ii) Cyclic memory behaviours as properties of transition graphs in any order. Property 3 says that the fixed point of any repeated driving sequence should store just one memory. Importantly, these properties may be checked by examining the graph structure without any reference to the physics that produced the graph.

(b) Addition of noise
We now consider Property 4 of MTM in the park bench model. Charge-density wave conductors [20] and non-Brownian suspensions [21,22] have the remarkable property that noise enhances memory retention by preventing the system from reaching the final absorbing state. In the charge-density wave model, this is accomplished by resetting a few randomly chosen elastic bonds on each cycle; in the suspension, by small random displacements of every particle. To perturb the grass, we assign each patch a small probability of increasing its height by 1 unit. Under sustained driving, we want the system to reach a fluctuating equilibrium state, so shorter grass should grow faster. A simple and suitable form for the probability of a patch to grow in each cycle is where h i is the present height of the ith patch of grass and α controls the amount of noise. We apply the noise at the beginning of each cycle, before driving. Because the grass may grow anywhere, adding noise to the model leads to newly accessible states where grass heights do not necessarily increase from left to right. The proliferation of new states and transitions leads us to distinguish this memory behaviour as MTM with noise (MTMN).
Focusing on a single patch of grass, we can predict its steady-state height, h i (t), in the case where there is almost always some grass to remove (h i (t) > 0 at long times). Such a steady state is reached when the average growth rate matches the time-averaged driving: where D i has value 1 if the ith patch is visited on each cycle, (1/2) if it is visited on alternate cycles, etc. 2 This is a stable fixed point; a positive (or negative) fluctuation leads to a slight decrease (or increase) in the growth rate, because of the sign of h i (t) in equation (2.2). The existence of an equilibrium height that depends on the local driving at each patch is what allows the system to store multiple memories in the steady state. Namely, when driving with multiple amplitudes, D i will vary from patch to patch, and the h i observed at each patch will encode that variation. Memories of the reversal points (i.e. the amplitudes of the driving cycles) are thus stored as the locations of jumps in the steady-state height h i (t) as a function of patch number, i.
To demonstrate these behaviours, we simulate a system with N = 20 and h init = 30. Figure 4a shows the average steady-state grass heights over 10 6 cycles and their fluctuations, for three memories at different values of α. (We begin the simulation with a transient of 10 6 cycles that is not recorded.) As in other systems with MTM [20,22], the noise does not require fine-tuning; we find that for a wide range of 1 α h init , all memories will be preserved on average. Notably, the memory at γ = 5 is even retained when α = 0.5, despite the maximum growth rate being smaller than the average driving rate D i at each patch i ≤ 10. Nevertheless, the patches in the interval 6 ≤ i ≤ 10 can fluctuate up to h i = 1 or higher at times, since they have a finite probability of gaining height on cycles with γ = 5. This stochastic case leads to h i (t) > 0, which allows the memory to persist.  importance for retrieving multiple memories, since noise may mask a memory or create a spurious one. One approach to reduce such errors when reading out the memories is to perform many measurements and average them together. Nonetheless, in the absence of such averaging, one wants to know the inherent limitations on storing and retrieving multiple memories. Intuitively, the plateaus in figure 4a must be separated by vertical steps that are larger than the characteristic size of the fluctuations. This consideration puts a sharp limit on the memory capacity of the system, since it tells how many discernible jumps in grass height may occur in a system with maximum height h init .
To investigate these behaviours, we consider a single patch of grass in the steady state. We measure the probability distribution of its height, P(h), in simulations as shown in figure 4b. Each simulation for P(h) runs for 1.1 × 10 7 cycles, and we discard the initial 10 6 cycles as a transient. The distribution is peaked about h i (t) and approaches a smooth Gaussian as h init increases. These distributions indicate how well the steady-state height between two neighbouring patches may be distinguished with a single observation of their instantaneous state; clearly this becomes easier with increasing h init . Notably, the width of the distribution (characterized by its standard deviation, σ ) does not change significantly when we vary the driving to D i = 1/3 or 2/3. Moreover, changing the driving pattern while keeping D i fixed does not have a large effect on σ : The training patterns γ = 2, 1, 2, 1, . . . and γ = 2, 2, 1, 1, 2, 2, 1, 1, . . . both give σ = 11.16 for h init = 1000, α = 1, whereas training with a 100-cycle pattern of 50 2's followed by 50 1's gives a slightly larger σ = 13.30.

(ii) Markov chain analysis
We can quantitatively capture the above behaviours using discrete-time Markov chains. We focus on the evolution of h i (t) over a repeated training pattern, which may consist of multiple cycles of driving. We denote the probability of transitioning from height a to height b by a transition matrix P ab . Each element of this matrix may be constructed by applying equation (2.1) to a unit probability starting in state a and following its evolution over the entire training pattern. We consider the steady-state probability distribution P(h) reached at long times, which we denote by a row vector π , with π a the probability of the grass having height a. This distribution is intimately related to the transition matrix: π is an eigenvector of P ab with eigenvalue 1. For h init = 10, α = 1, we find exactly one such eigenvector. We show this distribution in figure 5a, which is in excellent agreement with the steady-state probabilities observed in simulations.
To gain insight into how the width of the distribution, σ , depends on h init and α, we consider the behaviour near the most probable state, a = a * . Balancing the probability flow out of and into a * , we have We then model the entries of π as a Gaussian, so that π a = C exp(−(1/2)(a * − a) 2 /σ 2 ). This reduces the number of degrees of freedom in modelling the vector π from O(h init ) to 1 (i.e. the value of σ ). Plugging this form into equation (2.3) and supplying the values for the P ab yields an equation for σ . For the simplest case of a two-cycle training pattern with D i = 1/2, this equation may be solved exactly to give gives a good estimate for the peak width for other training patterns, such as the three-cycle patterns with D i = 1/3 and 2/3, where the Markov chain analysis involves significantly more terms. Thus, we obtain a rudimentary estimate of the memory capacity of min(N, √ h init ) for α = 1 (as compared with min(N, h init ) for the case without noise, although in that case, multiple memories are impossible in the steady state). We note that a different scaling for σ should arise when D i is close to 0 or 1, which would add corrections to this estimate. These results show how to understand the memory capacity of this system in a concrete way. Because the fluctuations are so nearly Gaussian, there is a viable basis for predicting the error rates of readout protocols involving multiple sites or averaging over time. This kind of precise understanding of memory capacity has been elusive in other systems that can store multiple memories under cyclic driving [18][19][20][21][22][23][24].

(c) Recovering the Mullins effect
We now return to the case without noise to show that the park bench model can capture another distinct memory behaviour. In particular, we note that a simpler form of memory occurs for h init = 1. Here there is no transient because a single cycle removes all the grass up to the visited bench; one might call this the 'scorched earth' version of the model. Thus, the system remembers only the largest amplitude in its entire driving history. This is the same general behaviour as the Mullins effect [1,3,30], which occurs in polymer networks such as rubber under cyclic loading. There, the memory is indicated by a kink in the stress-strain curve at the largest stress that was previously applied to the sample. Figure 6a shows the minimal transition graph for the Mullins effect, which is equivalent to the park bench model with N = 2, h init = 1, shown in figure 6b. One can easily construct the corresponding park bench graph for any N, which will have the same memory behaviour.

(d) Return-point memory
To further demonstrate the generality of our approach of describing memory behaviours as properties of graphs of memory-encoding macrostates, we now develop a simple description of return-point memory (RPM). For cyclic driving, the key property of return-point memory can be described as follows. Suppose a system is driven with an amplitude γ 0 , thereby putting it in a state s. The system is then subjected to further driving cycles, all having amplitude less than or equal to γ 0 . The system has return-point memory if a single cycle of amplitude γ 0 will then return the system to the exact same state, s; it remembers this previous state. This generic behaviour is observed in ferromagnets [15,16] and many other non-equilibrium systems [25][26][27]31]. Because returning to s is equivalent to wiping out all hysteresis since s was last visited, the system's behaviour can also change noticeably as γ 0 is surpassed, allowing the memory to be read out via a macroscopic observable such as magnetization. In general, graphs with RPM have the following distinct properties: (1) the 'maximal' state (e.g. {2} in figure 7a) can be reached from any other state by applying the maximum allowed amplitude; (2) of all possible paths from the maximal state to any reachable state (here just {1, 2}) there is a unique path that does not involve erasure of a memory; and (3) there is no attractor with reduced memory, such as the {2} * state in MTM. Property 2 is a consequence of 'no-passing' [32] and expresses the importance of the order in which memories are added. Property 3 indicates that noise is not required to maintain the system's long-term capacity for memories.   Each transition represents a cycle with driving amplitude H 0 < N in which the first H − 1 digits are set to '0', and digit H is set to '1'. We restrict the amplitudes H 0 to odd integers less than N. A memory is indicated wherever the substring '10' appears. These rules reproduce the graph structure in figure 7a.

(i) Minimal graph of return-point memory
These rules for strings are motivated by a physical system: they arise from a simplified version of the Preisach model of a ferromagnet [15,33], which is a well-studied model for RPM. We use N uncoupled spins (also called hysterons), indexed by j = 1, 2, . . . N, which are driven by an external field, H. Each spin may be 'on' with state 1 or 'off' with state 0. In our model, the jth spin turns on at H ≥ H on = j and off at H ≤ H off = −(j + 1). We restrict ourselves to driving cycles following the sequence H = 0 → H 0 → −H 0 → 0. (Note that H plays the role of γ , but we use the symbol H for familiarity.) States are denoted by a binary string of length N, indicating the state of each spin. As the field is ramped up from 0 to H 0 it writes '1' on the string from left to right; as it is ramped down to −H 0 it writes '0' on the string from left to right. Thus, a cycle of amplitude H 0 overwrites the first H 0 − 1 characters in the string with '0' and writes a single '1' at position H 0 .
In a real ferromagnet, memories are read out by observing a discontinuity in the slope of a graph of magnetization (the average state of the spins) versus H. Here this occurs wherever the substring '10' appears in the string-a gap in the sequence of spin flips as H is ramped up from 0. This method of readout requires that memories be separated, which is ensured by our restricting the driving to odd amplitudes that are less than N, so that all accessible states are sequences of the substrings '00' and '10'. Figure 7b shows the smallest such model with RPM, N = 4. Starting at the state 00 00, driving with amplitude H 0 = 1 leads to 10 00, which is a fixed point under repeated driving with H 0 = 1. Driving with H 0 = 3 leads to 00 10. From this state, H 0 = 1 adds a memory to the first position. In contrast to MTM, the two memories cannot be written in any order; H 0 = 1 must be written last. Figure 8 shows the transition graph for N = 6. As in the smaller system, there is a unique path without erasure to any multiple-memory state. The graph also shows quite clearly that from any state, a single application of H 0 = 5 brings the system to the maximal state, 00 00 10, immediately erasing any smaller memories.
To establish return-point memory for arbitrary N, consider a cycle of amplitude H 0 that puts the system in state s. Suppose a sequence of {H i } with all H i < H 0 is then applied. We must show that applying H 0 again returns the system to the state s. This may be seen by noting that the state s starts with H 0 zeros. Each of the cycles of amplitude H i alters only the hysterons with indices j < H 0 (since H i < H 0 ). A cycle of amplitude H 0 thus resets the first H 0 hysterons back to 0.

(e) Diagnosing memory behaviour in experiments
Although we have illustrated our approach using simple models, we expect it should be useful for experiments and dynamical simulations, by forming hypotheses and excluding possible memory   behaviours. Dividing driving into cycles and reading out memories is a structured way to do this, and it lets us focus on memory-encoding macrostates, rather than the many microstates of a large system that occur within one cycle of driving, as in the work of Mungan & Terzi [17]. For example, the minimal graph for MTM in figure 1 possesses a state {2} * , which has a memory of 2 but with no capacity for writing a memory of 1. By contrast, RPM does not have such a state; a smaller memory may always be written. A series of experiments on dilute suspensions recently established memory behaviour consistent with MTM, which is represented in figure 9a [23]. We point out that a small subset of those experiments-i.e. those establishing the existence of a state {2} * -is enough to demonstrate that the memory behaviour is distinct from RPM. Likewise, in experiments and simulations with amorphous solids, summarized in figure 9b, we can identify an analog of each state in figure 7a, show the absence of an absorbing state, and demonstrate that memory content depends on which amplitude was applied last, suggesting a behaviour similar to RPM [24,34]. In systems with significant transients, our general approach becomes more cumbersome due to a possibly large number of states. In this case, we may consider the effective transitions that result from either driving the system with a large number of cycles much greater than the known transient length, denoted as '1111 . . .' or '2222 . . .' in figure 9, or from driving with an intermediate number of cycles less than the transient length, denoted as '11 . . .' and '22 . . .'.
We note that developing a reliable readout is essential for these applications. An example of a readout protocol is to drive the system with a series of increasing amplitudes and monitor its response as a function of amplitude [13,23,34]. In this case, one must be careful to ensure that the readout process does not introduce or erase memories before they are observed. One way to test this property is to compare the results of a 'sequential' readout involving a series of cycles at different amplitudes, with a 'parallel' readout that takes many identically prepared systems (or copies of a single simulated system) and then drives each with a different amplitude for one cycle [24,35]. Once a method for readout is established, mapping some or all of the states reached by cyclic driving can be a straightforward yet powerful diagnostic test.
One may also construct even simpler tests that do not require a careful memory readout. For instance, if one can compare states of the system observed after each cycle of driving, e.g. by simple image subtraction, one can identify distinct states and map their transitions without knowing their memory content. In dilute suspensions, when many cycles of a given amplitude are applied, further driving at a smaller amplitude does not change the state (away from {2} * ) [23]. This by itself rules out RPM. The same test in amorphous solids does change the state (to {1, 2}) [34].

Discussion
This work establishes a simple graph structure as a common language for comparing memories across multiple systems. This may help to sort through the growing body of work on cyclic memory formation and self-organization. This includes the recent findings that MTM may occur in seemingly disparate models and physical systems [19][20][21]23,24], but also some lessunderstood examples, such as the evolution of bandgaps in a one-dimensional array of particles driven by acoustic waves [28], and cyclic memories observed in glassy systems like amorphous solids [13,18,24,34]. Moreover, this approach could help to identify memory in subgraphs that are embedded in a larger set of states, similar to the more detailed description of return-point memory developed by Mungan & Terzi [17]. Finally, it lets us imagine new, as-yet undiscovered cyclic memory behaviours and consider how they might be identified.
We also demonstrated the minimal set of states required for MTM, and we described a simple physically motivated model that produces this behaviour. The park bench model of MTM can store multiple pieces of information (i.e. locations of jumps in the grass height) in transient states, but it forgets all but the largest repeated excursion in the steady state. This is somewhat remarkable as the system has a dearth of complexity: there is only a small, enumerable set of states, no disorder and the evolution is determined by the sequence of inputs with no stochastic element.
When noise is added to the park bench model, all memories are stabilized at long times, consistent with other systems with MTM and noise (MTMN) [19][20][21][22][23]. By considering the size of noise-induced fluctuations in a steady state under repeated driving, we demonstrated a route to assessing the memory capacity of MTMN. This led to an analytic estimate for the memory capacity of the noisy park bench model, and a way to model the results of arbitrary readout protocols. Memory capacity has received considerably more attention in models of associative memory [36,37], and in more realistic models of biological neural networks [38,39]. Similar to these more-complex neural networks, the noisy park bench model also displays plasticity: we find that after reaching a steady state with one driving amplitude, we can switch to another amplitude and form a new memory of that value instead. (This outcome of MTMN was previously found in a model of cyclically sheared suspensions with noise [22].) The park bench model also demonstrates that criticality is not required for MTM. In some other forms of memory such as aging and rejuvenation in glasses [4,7,40], multiple memories may exist simultaneously because the system has many relaxation processes across a range of length-and timescales. Proximity to a critical point is a natural way to get this wide range of scales, suggesting a link between multiple memory formation and criticality. Indeed, sheared non-Brownian suspensions and charge-density wave conductors both feature critical transitions in their dynamics-a depinning transition of the charge-density wave [41,42], and an irreversibility transition of the sheared suspension with diverging time-and length-scales [21,22,43]. But this is just one strategy for avoiding interference of multiple memories; a simpler strategy is for the driving to select a unique scale directly, as occurs in the park bench model and our simple ferromagnet model.
Recent studies of memory formation in sheared non-Brownian suspensions [21][22][23], amorphous solids [13,18,24,34], frustrated spin systems [18] and charge-density waves [19,20], have raised the tantalizing possibility that systems with the same memory behaviour may share deeper aspects of their physics, such as a critical transition. The existence of a physically motivated model of multiple transient memory that has neither criticality nor nonlinear diffusion suggests that this idea should be pursued with caution. On the other hand, it shows that an extremely simple model can elucidate underlying mechanisms for memory behaviours. A similar approach has been illuminating in the study of aging and rejuvenation in glasses, where a simple algorithm that sorts a short list of numbers was found to capture a non-trivial set of memory behaviours [5].