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.

M.A. Martínez-del-Amor, I. Pérez-Hurtado, M. García-Quism<strong>on</strong>do,<br />

L.F. Macías-Ramos, L. Valencia-Cabrera, A. Romero-Jiménez, C. Graciani,<br />

A. Riscos-Núñez, M.A. Colomer, M.J. Pérez-Jiménez<br />

end procedure<br />

procedure Filter 3(table T , c<strong>on</strong>figurati<strong>on</strong> C) ⊲ (By rows and multiplicity)<br />

Discard rows from T labelled by (o, i) and (x, e) when the corresp<strong>on</strong>ding objects<br />

are not present in the multisets of C.<br />

end procedure<br />

Recall that the static table T collects all c<strong>on</strong>sistent blocks within the columns.<br />

The set of all c<strong>on</strong>sistent blocks is unlikely to be mutually c<strong>on</strong>sistent. However,<br />

two n<strong>on</strong>-mutually c<strong>on</strong>sistent blocks, B i,α,α ′<br />

1 ,u 1,v 1<br />

and B i,α,α ′<br />

2 ,u 2,v 2<br />

(assigning a<br />

different charge to the same membrane), can be filtered as follows:<br />

– If u 1 ≠ u 2 or v 1 ≠ v 2 , and if <strong>on</strong>e of these blocks is not applicable, therefore<br />

it will be filtered by Filter 2. This situati<strong>on</strong> is comm<strong>on</strong>ly handled by the<br />

model designers, in order to take c<strong>on</strong>trol of the model evoluti<strong>on</strong>.<br />

It is very important to have a set of mutually c<strong>on</strong>sistent blocks before<br />

distributing objects to the blocks. For this reas<strong>on</strong>, after applying Filters 1 and<br />

2, the mutually c<strong>on</strong>sistency is checked. If it fails, meaning that an inc<strong>on</strong>sistency<br />

was encountered, the simulati<strong>on</strong> process is halted, providing a warning message<br />

to the user. Nevertheless, it can be interesting to find a way to c<strong>on</strong>tinue the<br />

executi<strong>on</strong> by n<strong>on</strong>-deterministically c<strong>on</strong>structing a subset of mutually c<strong>on</strong>sistent<br />

blocks. Since this method can be exp<strong>on</strong>entially expensive in time, it is opti<strong>on</strong>al<br />

for the user to whether activate it or not.<br />

Once the columns of the dynamic table represent a set of mutually c<strong>on</strong>sistent<br />

blocks, the distributi<strong>on</strong> process starts. This is carried out by updating the values<br />

in the table by the following products:<br />

– The normalized value with respect to the row; that is, the value divided<br />

by the total sum of the row. This calculates a way to proporti<strong>on</strong>ally<br />

distribute the corresp<strong>on</strong>ding object al<strong>on</strong>g the blocks. Since it depends <strong>on</strong><br />

the multiplicities in the LHS of the blocks, the distributi<strong>on</strong>, in fact, penalize<br />

the blocks requiring more copies of the same object, which is inspired in the<br />

amount of energy required to join individuals from the same species.<br />

– The value in the original dynamic table (i.e. 1 k<br />

). This indicates the number<br />

of possible applicati<strong>on</strong>s of the block with the corresp<strong>on</strong>ding object.<br />

– The corresp<strong>on</strong>ding multiplicity of the object in the current c<strong>on</strong>figurati<strong>on</strong> C t.<br />

′<br />

This performs the distributi<strong>on</strong> of the copies of the object al<strong>on</strong>g the blocks.<br />

After the object distributi<strong>on</strong> process, the number of applicati<strong>on</strong>s for each<br />

block is computed by selecting the minimum value in each column. This number<br />

is then used for c<strong>on</strong>suming the LHS from the c<strong>on</strong>figurati<strong>on</strong>. However, this<br />

applicati<strong>on</strong> could be not maximal. The distributi<strong>on</strong> process can eventually<br />

deliver objects to blocks that are restricted by other objects. As this situati<strong>on</strong><br />

may occur frequently, the distributi<strong>on</strong> and the c<strong>on</strong>figurati<strong>on</strong> update process is<br />

performed A times, where A is an input parameter referring to accuracy. The<br />

more the process is repeated, the more accurate is the distributi<strong>on</strong>, but the less<br />

could be the performance of the simulati<strong>on</strong>. We have experimentally checked<br />

that A = 2 gives the best accuracy/performance ratio.<br />

298

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

Saved successfully!

Ooh no, something went wrong!