Ludwig-Maximilians-Universität München, Institut für Informatik
Lehr- und Forschungseinheit für Programmierung und Softwaretechnik
Model Checker State Space Visualization
VMSSG exports
The following state spaces have been exported from the promela virtual
machine VMSSG,
written by Schürmans and Weber. The color of the node denotes the
SCC membership: A red node does not belong to an SCC (or, in terms of
Tarjan's algorithm, is a trivial SCC), whereas yellow and orange nodes
belong to an (alternatingly colored) SCC. The green transitions mark
the spanning tree explored in the DFS, red transitions mark forward
transitions to previously explored nodes, blue transitions mark back
transition (with respect to the position of the target node on the SCC
stack). The images have been traced with the POVRay raytracer, after being
layouted by an algorithm employed in the Walrus
graph visualization tool.
Download
A very premature version of the converter can be found here (276kB). It has a lot of
dependencies, uses Java 1.5, has a JNI lib included and is "very
beta", so be prepared. A short manual can be found here.
Gallery
The following example shows Peterson's mutual exclusion algorithm. The
model is provided within the SPIN distribution. Path reduction,
a completely statical analysis conducted prior to model checking by an
analyzer provided with VMSSG, reduces the state space to approximately
850 states, whereas the full model is yields 35000 states. The
following example has been generated for three processes. See the state explosion example gallery for
other sizes:
The next image shows a state space of the famous "two trains share one
bridge" model (c.f.
this skript, p. 125), here extracted from UML activity diagrams by the
HUGO
model checker. Again, static path reduction reduced the number of
states from 55000 to about 7000:
The next example illustrates the vast improvements of path
reduction. Both state spaces illustrate the second version of the
leader election protocol for three concurrent processes, as supplied
with SPIN. The left version was modified by the path reduction
provided with the VMSSG virtual machine, the right version shows the
unchanged model. The original model has 4571 states, the reduced model
just 677 states. No SCCs are found - the model terminates on every
run:

Conclusion: Path reduction works very well, but produces boring
results ;-)
The next example reaches the limits of displayability, and actually
took a full night to render on a pretty fast machine. It shows the
state space of the mobile1 model provided with SPIN, reduced by path
reduction. It yields 26663 states and 79197 edges. 51 SCCs are found,
and 7295 nodes do not belong to an SCC.
As a final example, this is the state space of a binary semaphore
example with three processes, where a strong fairness never claim is
used. This is a running example in my diploma thesis and the
developement of LWAASpin. In
discussing the (rather promising) results, a crucial question concerns
the presence of numerous SCCs of not too large size, so that Tarjan's
algorithm can be employed efficiently. I do hope that this image
illustrates that this hope is not entirely unfounded (althought I yet
fail to give a credible reason why the size and number of SCCs are
distributed in such a convenient fashion):
Further work
Despite the interesting shape of the state spaces, the usefulness of
those pictures is limited by the complete lack of state information
for the nodes. It is therefore desireable to have a specialized graph
viewer that can be used to navigate such a graph and investigate the
properties of interesting nodes - for example, "landmark nodes" that
have a lot of incoming edges.
Legacy
An old attempt at illustrating the state space of an ATM machine:
Contact
Back to my homepage.
Contact me at hammer "at"
pst.ifi.lmu.de.