Go to the Next or Previous section, the Detailed Contents, or the FS(E)L Home Page.


5.2.2.2 Diamond elimination

This procedure assumes that the relation of tau-reachibility is a partial order on nodes. If the input transition system is known to be divergence free then this is true, otherwise tau-loop elimination is required first (since this procedure guarantees to achieve the desired state).

Under this assumption, diamond reduction can be described as follows, where the input state-machine is S (in which nodes can be marked with information such as minimal acceptances), and we are creating a new state-machine T from all nodes explored in the search:

This creates a transition system where there are no tau-actions but where there can be ambiguous branching under visible actions, and where nodes might be labelled as divergent. The reason why this compresses is that we do not include in the search nodes where there is another node similarly reachable but demonstrably at least as nondeterministic: for if M<- tau-closure(N) then N is always at least as nondeterministic as M. The hope is that the completed search will tend to include only those nodes that are tau-minimal in T. Notice that the behaviours of the nodes not included from Na are nevertheless taken account of, since their divergences and minimal acceptances are included when some node of min(Na) is explored.

It seems counter-intuitive that we should work hard not to unwind tau's rather than doing so eagerly. The reason why we cannot simply unwind tau's as far as possible (i.e., collecting the tau-maximal points reachable under a given action) is that there will probably be visible actions possible from the unstable nodes we are trying to bypass. It is impossible to guarantee that these actions can be ignored.

The reason we have called this compression diamond elimination is because what it does is to (attempt to) remove nodes based on the diamond-shaped transition arrangement where we have four nodes P, P', Q, Q' and P does tau to P', Q does tau to Q', P does a to Q and P' does a to Q'. Starting from P, diamond elimination will seek to remove the nodes P' and Q'. The only way in which this might fail is if some further node in the search forces one or both to be considered.

A Lemma in [RosEtAl95] shows that the following two types of node are certain to be included in T:

Let us call S0  union {N0} the core of S. The obvious criteria for judging whether to try diamond reduction at all, and of how successful it has been once tried, will be based on the core. For since the only nodes we can hope to get rid of are the complement of the core, we might decide not to bother if there are not enough of these as a proportion of the whole. And after carrying out the reduction, we can give a success rating in terms of the percentage of non-core nodes eliminated.

Experimentation over a wide range of example CSP processes has demonstrated that diamond elimination is a highly effective compression technique, with success ratings usually at or close to 100% on most natural systems. To illustrate how diamond elimination works, consider one of the most hackneyed CSP networks: N one-place buffer processes chained together.

COPY  >> COPY  >> ... COPY  >> COPY

Here, COPY=left?x -> right!x -> COPY. If the underlying type of (the communications on) channel left (and right) has k members then COPY has k+1 states and the network has (k+1) N [k+1 to the power N]. Since all of the internal communications (the movement of data from one COPY to the next) become tau actions, this is an excellent target for diamond elimination. And in fact we get 100% success: the only nodes retained are those that are not tau-reachable from any other. These are the ones in which all of the data is as far to the left as it can be: there are no empty COPY's to the left of a full one. If k=1 this means there are now N+1 nodes rather than 2 N [2 to the power N], and if k=2 it gives 2 N+1 -1 [one less than 2 to the power N+1] rather than 3 N [3 to the power N].


Go to the Next or Previous section, the Detailed Contents, or the FS(E)L Home Page.