09.09.2014 Views

13th International Conference on Membrane Computing - MTA Sztaki

13th International Conference on Membrane Computing - MTA Sztaki

13th International Conference on Membrane Computing - MTA Sztaki

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

S. Verlan, J. Quiros<br />

We c<strong>on</strong>sider a chain of rules evolving in smax mode and computati<strong>on</strong> based <strong>on</strong><br />

algorithms detailed in Secti<strong>on</strong> 3. According to these assumpti<strong>on</strong>s, the block has<br />

to perform following steps:<br />

Algorithm 2<br />

1. Split the chain into k parts as it is described in secti<strong>on</strong> 4.1.<br />

2. For each part.<br />

(a) Compute NBV ariants(Π, C, smax). For this purpose algorithm detailed<br />

in 3 and 4.1 is used.<br />

(b) Obtain the value of n indicating which combinati<strong>on</strong> will be chosen (n - th<br />

element). Hence his domain is from 0 to NBV ariants(Π, C, smax) − 1.<br />

i. Generate a random number rn, where<br />

0 ≤ rn ≤ ⌈lg 2 (NBV ariants(Π, C, smax))⌉<br />

ii. If rn < NBV ariants(Π, C, smax) then n = rn. Otherwise, n =<br />

rn + NBV ariants(Π, C, smax).<br />

(c) Compute V ariant(n, Π, smax), according to algorithm 1.<br />

The computati<strong>on</strong> of NBV ariants(Π, C, smax) uses a subset of operati<strong>on</strong>s<br />

needed to compute V ariant(n, Π, smax), moreover these operati<strong>on</strong>s can be d<strong>on</strong>e<br />

in parallel with the generati<strong>on</strong> of the random number n, necessary to compute<br />

V ariant(n, Π, smax). Hence, this stage can be performed in 2 clock cycles by<br />

dividing operati<strong>on</strong>s in two sets, called right and left propagati<strong>on</strong> respectively.<br />

This block c<strong>on</strong>tains <strong>on</strong>e sub-block per rule, which implements operati<strong>on</strong>s<br />

required in order to obtain number of applicati<strong>on</strong>s of its rule associated. Interc<strong>on</strong>necti<strong>on</strong>s<br />

between comp<strong>on</strong>ents are based <strong>on</strong> design keys and propagati<strong>on</strong><br />

c<strong>on</strong>cepts: a sub-block is <strong>on</strong>ly c<strong>on</strong>nected to blocks located <strong>on</strong> its right and left.<br />

As it is showed by Fig. 2, left propagati<strong>on</strong> is the first to be executed. In this<br />

sub-stage, steps 2.a and 2.b.i of algorithm 2 are computed from the last rule to<br />

the first <strong>on</strong>e. Right propagati<strong>on</strong>, which is compound by steps 2.b.ii and 2.c, is<br />

executed in opposite way in the next clock cycle. One advantage of this approach<br />

is that it is not necessary to divide, implicitly, the chain of rules in k parts, deleting<br />

a step of the algorithm which let us reduce the number of required cycles<br />

from three to two. This logic is implemented, explicitly, by signals prevIsDep and<br />

chainStateSignal. After this stage, all rules have a random multiplicity assigned.<br />

Applicati<strong>on</strong> Stage<br />

Once system has chosen which rules will be applied (and how many times),<br />

appLogic block computes how many objects will be generated and c<strong>on</strong>sumed by<br />

rules applicati<strong>on</strong>. Like calcNx, it is an arithmetical block.<br />

444

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!