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.

B. Nagy<br />

Propositi<strong>on</strong> 1. Every CNF formula is of the following regular form:<br />

[(a + ¬a)(∨(a + ¬a)) ∗ ] (∧ [(a + ¬a)(∨(a + ¬a)) ∗ ]) ∗ .<br />

Every n-ary CNF formula (for the n-SAT languages) is of the form:<br />

[<br />

(a + ¬a)(∨(a + ¬a))<br />

n−1 ] ( ∧ [ (a + ¬a)(∨(a + ¬a)) n−1]) ∗<br />

.<br />

Using finite set of variables: {a 1 , a 2 , ..., a k }, we should substitute each occurrence<br />

of the symbol a above (in each expressi<strong>on</strong>) with the regular expressi<strong>on</strong> (a 1 + a 2 +<br />

... + a k ).<br />

3.2 Deterministic Finite Automat<strong>on</strong> for the SAT Languages<br />

In this secti<strong>on</strong>, we c<strong>on</strong>struct the following automata: an automat<strong>on</strong> which accepts<br />

exactly the SAT-language and automata accepting the n-SAT languages (for any<br />

fixed n).<br />

Let C be the set of subsets of powerset 2 k , where k is the number of the<br />

variables in the language. We will interpret the elements of C as the sets of the<br />

values of the variables when the given logical expressi<strong>on</strong> is false. We use this<br />

part in this c<strong>on</strong>structi<strong>on</strong> to know when the l<strong>on</strong>gest prefix of the formula which<br />

is syntactically correct CNF expressi<strong>on</strong> is not satisfied.<br />

Let Y be the set of the possible states of a DFA A = (Y, T, M A , y 0 , {y f })<br />

which accepts the syntactically correct CNF expressi<strong>on</strong>s.<br />

Let D be the set of k + 1 dimensi<strong>on</strong>al vectors over {0, 1, 2}. This vector will<br />

count which variables are in the new clause. 0 <strong>on</strong> the i-th place of a vector d ∈ D<br />

means that the i-th variable is not (yet) in the clause currently being read. 1 and<br />

2 <strong>on</strong> the i-th place mean the occurrence of the i-th variable without negati<strong>on</strong> and<br />

with negati<strong>on</strong>, respectively. The value 1 <strong>on</strong> the (k + 1)-th element denotes that<br />

there is a variable in the actual clause with both types of occurrences (positive<br />

and negative).<br />

The states of the automat<strong>on</strong> are given by the Cartesian product of the sets<br />

C, Y and D, where Y refers to the CNF syntax; and the sets C and D hold the<br />

semantical c<strong>on</strong>tent, i.e., for which values of the variables the formula is false.<br />

Let the initial state σ 0 = ({}, y 0 , 0), where {} is a value from C, y 0 is the<br />

initial state of A, and 0 is the k + 1 dimensi<strong>on</strong>al nullvector c<strong>on</strong>taining <strong>on</strong>ly 0’s.<br />

For the input alphabet T of the automat<strong>on</strong>, we use the same alphabet as at<br />

the CNF expressi<strong>on</strong>s: {a 1 , a 2 , ..., a k , [, ] , ¬, ∧, ∨}.<br />

Let the transiti<strong>on</strong> functi<strong>on</strong> be the following: ((c, y, d), t) → (c ′ , y ′ , d ′ )<br />

– if t ∈ {∧, ∨, ¬, [}, then <strong>on</strong>ly the syntactical part will change: c ′ = c, d ′ = d<br />

and y ′ is the corresp<strong>on</strong>ding state of A, i.e. y ′ = M A (y, t).<br />

– if t is a variable, then c ′ = c, y ′ = M A (y, t) and we have the following cases<br />

for calculating the value of d ′ :<br />

332

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

Saved successfully!

Ooh no, something went wrong!