08.01.2013 Views

LNCS 2950 - Aspects of Molecular Computing (Frontmatter Pages)

LNCS 2950 - Aspects of Molecular Computing (Frontmatter Pages)

LNCS 2950 - Aspects of Molecular Computing (Frontmatter Pages)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

256 Lila Kari, Carlos Martín-Vide, and Andrei Păun<br />

Recently, a rather unexpected result was reported in [2]: in order to get<br />

the universality, minimal symport and antiport rules, that is <strong>of</strong> the forms<br />

(a, in), (a, out), (a, out; b, in), where a, b are objects, are sufficient. The price was<br />

to use nine membranes, much more than in the results from [3] and [4], for example.<br />

The problem whether or not the number <strong>of</strong> membranes can be decreased<br />

was formulated as an open problem in [2]. We contribute here to this question,<br />

by improving the result from [2]: six membranes suffice. The pro<strong>of</strong> uses the same<br />

techniques as the pro<strong>of</strong>s from [2], [4]: simulating a counter automaton by a P<br />

system with minimal symport/antiport rules.<br />

It is highly probable that our result is not optimal, but we conjecture that<br />

it cannot be significantly improved; we believe that at most one membrane can<br />

be saved.<br />

2 Counter Automata<br />

In this section we briefly recall the concept <strong>of</strong> counter automata, useful in the<br />

pro<strong>of</strong> <strong>of</strong> our main theorem. We follow here the style <strong>of</strong> [2] and [4]. Informally<br />

speaking, a counter automaton is a finite state machine that has a finite number<br />

<strong>of</strong> counters able to store values represented by natural numbers; the machine<br />

runs a program consisting <strong>of</strong> instructions which can increase or decrease by one<br />

the contents <strong>of</strong> registers, changing at the same time the state <strong>of</strong> the automaton;<br />

starting with each counter empty, the machine performs a computation; if it<br />

reaches a terminal state, then the number stored in a specified counter is said<br />

to be generated during this computation. It is known (see, e.g., [5]) that counter<br />

automata (<strong>of</strong> various types) are computationally universal, they can generate<br />

exactly all Turing computable sets <strong>of</strong> natural numbers.<br />

More formally, a counter automaton is a construct M =(Q, F, p0,C,cout,S),<br />

where:<br />

– Q is the set <strong>of</strong> the possible states,<br />

– F ⊆ Q is the set <strong>of</strong> the final states,<br />

– p0 ∈ Q is the start state,<br />

– C is the set <strong>of</strong> the counters,<br />

– cout ∈ C is the output counter,<br />

– S is a finite set <strong>of</strong> instructions <strong>of</strong> the following forms:<br />

(p → q, +c), with p, q ∈ Q, c ∈ C: add 1 to the value <strong>of</strong> the counter c<br />

and move from state p into state q;<br />

(p → q, −c), with p, q ∈ Q, c ∈ C: if the current value <strong>of</strong> the counter c is<br />

not zero, then subtract 1 from the value <strong>of</strong> the counter c and move from<br />

state p into state q; otherwise the computation is blocked in state p;<br />

(p → q, c = 0), with p, q ∈ Q, c ∈ C: if the current value <strong>of</strong> the counter c<br />

is zero, then move from state p into state q; otherwise the computation<br />

isblockedinstatep.

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

Saved successfully!

Ooh no, something went wrong!