blob: 17089f6a8accec91dfb66779b388db60efc7f8ad [file] [log] [blame]
<h1>Henshin Example: Probabilistic Broadcast</h1>
<p>
<small><i>contributed by Christian Krause</i></small>
</p>
<p>
This is an example for state space analysis of so-called <i>probabilistic graph transformation systems</i> modeled in Henshin.
We model here a probabilistic broadcast protocol for wireless sensor networks. A detailed description of the approach and the
example can be found in this paper:
<ul>
<li>Christian Krause, Holger Giese:
<i>Probabilistic Graph Transformation Systems</i>.
Proc. of <a href="http://www.informatik.uni-bremen.de/icgt2012/">ICGT'12</a>,
Lecture Notes in Computer Science 7562, Springer-Verlag.
</li>
</ul>
</p>
<p>
The slides for this paper are available <a href="http://www.hpi.uni-potsdam.de/fileadmin/hpi/FG_Giese/Personen/pgts-slides.pdf">here</a>.
The transformation rules, topology models and the source code can be found
<a href="http://git.eclipse.org/c/henshin/org.eclipse.emft.henshin.git/tree/plugins/org.eclipse.emf.henshin.examples/src/org/eclipse/emf/henshin/examples/probbroadcast">here</a>.
To run the Java executable you need Henshin 0.9.3 or higher and <a href="http://www.prismmodelchecker.org/">PRISM 4.0</a> or higher.
</p>
<h3>Modeling</h3>
<p>
The figure below depicts the metamodel (type graph) and an example of an instance model. The metamodel consists
of two classes: Node and Message. A node can be connected to an unbounded number of nodes (its neighbors) and
can contain an unbounded number of messages. The example instance model on the right-hand side consists of three
connected nodes (all connections are bidirectional). One of these nodes has a message, the others not. All of the
nodes are active.
</p>
<p>
<a href="examples/probbroadcast/tg-init.png"><img src="examples/probbroadcast/tg-init.png" /></a>
</p>
<p>
The goal of the probabilistic broadcasting is to send the message to all nodes in the network. The sending of messages
is possible only to direct neighbors of a node. Moreover, if a node receives a message from more than one neighbor,
it is interpreted as a collision and the node considers the message as corrupt. The idea of <i>probabilistic</i>
broadcasting is that every node decides with a certain probability whether to forward its message or not. This
lowers the chance of message collisions and reduces the general communication costs. We model the probabilistic
broadcasting using three rules in Henshin shown below.
</p>
<p>
<a href="examples/probbroadcast/rules.png"><img src="examples/probbroadcast/rules.png" /></a>
</p>
<p>
There are two rules called <i>send</i>. The one on the left adds messages to all neighbors of a node that has
exactly one message (remember that more than one message per node are considered as collisions). The second
<i>send</i> rule also matches a node with exactly one message, but it does not forward the message to its
neighbors. Note that in both <i>send</i> rules, the active-status of the node <i>x</i> changes from
<i>true</i> to <i>false</i>. The rationale for having these two rules with the same name is that the sending
of the message is decided probabilistically. That means, the two rules are formally considered as one
<i>probabilistic rule</i> which consists of one LHS and two RHSs (modeled in the two send <i>rules</i>).
If matched, the left <i>send</i> rule is executed with a probability <i>pSend</i> and the right <i>send</i>
rule with a probability of 1-<i>pSend</i>. The third rule allows a node to reset itself by deleting all its
messages whenever a collision occurred (it has more than one message).
</p>
<h3>Evaluation</h3>
<p>
Based on the theory presented in the ICGT paper, we evaluated the modeled system to determine the probabilities
of the reception of a message by the nodes in a network. We analyzed the protocol for 4 different network topologies
shown in the image below. In each of these networks, node 1 is the one that initiates the broadcasting. Network
(a) is the one shown in abstract syntax in the previous section.
</p>
<p>
<a href="examples/probbroadcast/topos.png"><img src="examples/probbroadcast/topos.png" /></a>
</p>
<p>
The figure below shows the minimum and the maximum probabilities for each node in network (b) correctly receiving
the message and for send probabilities of <i>pSend</i>=0.6, 0.7 and 0.8. The minimum probabilities represent
worst-case, the maximum probabilities best-case message sending orders for each node. Note that the minimum
(and the maximum) probabilities for the different nodes vary more or less depending on the chosen send
probability and the location of the node in the grid.
</p>
<p>
<a href="examples/probbroadcast/results-1.png"><img src="examples/probbroadcast/results-1.png" /></a>
</p>
<p>
To show the impact of the send probability, we have plotted the minimum and the maximum reception
probabilities for node 9 with changing values for the send probability. The results are shown in
the left-hand side of the figure below. Note that for send probabilities greater than approx. 0.7,
the minimum reception probability decreases again. The diagram on the right-hand side shows
how the reception probability increases for a node 9 in network (b) after 1..10 execution steps.
</p>
<p>
<a href="examples/probbroadcast/results-2.png"><img src="examples/probbroadcast/results-2.png" /></a>
</p>
<p>
In our last experiment, we compared the reception probabilities for the different network topologies
(see figure below). The reception probabilities drop more for the nodes in network (c) with high indizes
than in network (b) which is caused by the higher distance and the fewer number of connections.
For network (d), the differences between the minimum and maximum probabilities are higher than in the
other networks. This is caused by the higher connectivity of the network which increases the chance
for collisions. It is also evident that node 6 is a bottleneck in the network causing the probabilities
to drop abruptly for nodes 7-11.
</p>
<p>
<a href="examples/probbroadcast/results-3.png"><img src="examples/probbroadcast/results-3.png" /></a>
</p>
<p>
All conducted analysis is based on the state space generation support in Henshin. The figure below
shows a visualization of the state space for network (b) (state space visualized using the
<a href="http://wiki.eclipse.org/Henshin_Statespace_Explorer">Henshin state space explorer</a>).
</p>
<p>
<a href="examples/probbroadcast/statespace2.png"><img width="500" src="examples/probbroadcast/statespace2.png" /></a>
</p>