Enhanced Membrane Computing Algorithm for SAT Problems Based on the Splitting Rule
Abstract
:1. Introduction
2. Preliminaries
2.1. Membrane Computing System (P System)
2.2. Tradtional Membrane Computing Algorithm of SAT Problems
2.3. Simplification Rules
3. Proposed New Algorithm
3.1. Definition
 (1)
 O: {${\mathrm{x}}_{\mathrm{i}},{\mathrm{y}}_{\mathrm{i}}$, denote the literals of given clause set;$\mathrm{h}$, denotes the number of literals in a clause;${\mathrm{t}}_{\mathrm{i}},{\mathrm{f}}_{\mathrm{i}}$, are the literal symbols of ${\mathrm{x}}_{\mathrm{i}}$ and ${\mathrm{y}}_{\mathrm{i}}$;$\mathrm{g}$, denotes the number of literals’ symbols;${\mathrm{a}}_{\mathrm{i}}$, denote the atoms of the given formulae;${\mathrm{T}}_{\mathrm{i}},{\mathrm{F}}_{\mathrm{i}}$, are objects in the literal list of 2nd membrane;${\mathrm{c}}_{\mathrm{i}},{\mathrm{e}}_{\mathrm{i}},$ are the transitive symbols of ${\mathrm{t}}_{\mathrm{i}}$ and ${\mathrm{f}}_{\mathrm{i}}$;${\mathrm{p}}_{\mathrm{i}}$, denote the transport sign of membrane ${\mathrm{M}}_{\mathrm{i}}$;$\mathrm{z}$, denotes the number of membranes ${\mathrm{M}}_{\mathrm{i}}\left(\mathrm{i}=1,\dots ,\mathrm{m}\right)$;${\mathrm{t}}_{\mathrm{i}},{\mathrm{f}}_{\mathrm{i}}$, denote the assignments of literals ${\mathrm{x}}_{\mathrm{i}}$ and ${\mathrm{y}}_{\mathrm{i}}$;$\mathsf{\lambda},\mathsf{\delta}$, are the melting symbol of objects and membrane;$\mathrm{Y},\mathrm{N},\mathrm{a},\mathrm{b},\mathrm{c},\mathrm{d},\mathrm{p},\mathrm{q},\mathrm{s}$, are aided symbols}.
 (2)
 $\mathsf{\mu}:$the initial membrane structure is as Figure 2:$\mathrm{where}{C}_{j}$ denote the jth clause in the given clause set, $\left{C}_{j}\right$ represents the number of literals in ${C}_{j}\left(j=1,\dots ,m\right)$.
 (3)
 ${\mathrm{w}}_{1}=\mathsf{\lambda}$;${\mathrm{w}}_{2}=\mathrm{p},{\mathrm{a}}_{\mathrm{i}}\left(\mathrm{i}=1,\dots ,\mathrm{n}\right)$;${\mathrm{w}}_{{\mathrm{M}}_{\mathrm{j}}}=\mathrm{z},{\mathrm{p}}_{\mathrm{j}},\mathrm{h},{\mathrm{x}}_{\mathrm{i}},{\mathrm{y}}_{\mathrm{i}}\left(\mathrm{i}=1,\dots ,\mathrm{n},\mathrm{j}=1,\dots ,\mathrm{m}\right)$.
 (4)
 ${\mathrm{R}}_{\mathrm{i}}(\mathrm{i}=1,2,{\mathrm{M}}_{\mathrm{j}}$) specific as described in the part of algorithm, and they are made up by three types of evolutionary rules:
 (a)
 ${\left[a\right]}_{i}\to {\left[b\right]}_{i}{\left[c\right]}_{i}$, copy the membrane i into two copies when it or them contains object a, turn a in two copies into b and c respectively;
 (b)
 $\mathrm{a}\to \mathrm{b}\mathrm{c}\mathrm{or}\neg \mathrm{c}$, turn a into b when c is existent or inexistent;
 (c)
 $\mathrm{a}\to \mathrm{b}\left(\mathrm{c},{\mathrm{in}}_{\mathrm{j}}\mathrm{or}\mathrm{out}\right)$, turn a into b and c, meanwhile, send c into the membrane i or out the membrane which a was inside.
 (5)
 ${i}_{0}$ = 1.
3.2. Compiling
 (1)
 Tautology rule:This rule is executed on the only 2nd membrane at the beginning of the calculation.Pick tautologies from the clauses inside membrane ${M}_{i}$s, and mark the membrane ${M}_{i}$s which contain tautologies with a delete symbol, $\begin{array}{c}{\mathrm{r}}_{1}=({\mathrm{zp}}_{\mathrm{j}}{\mathrm{h}}^{2}{\mathrm{x}}_{\mathrm{i}}{\mathrm{y}}_{\mathrm{i}}\to \mathrm{s},1)\end{array}$;Delete all contents inside the membrane ${M}_{i}$s which are marked with a delete symbol: $\begin{array}{c}{\mathrm{r}}_{2}=({\mathrm{hx}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{s},1)\\ {\mathrm{r}}_{3}=({\mathrm{hy}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{s},1)\end{array};$Delete the membrane ${M}_{i}$s which are marked with a delete symbol, ${\mathrm{r}}_{4}=(\mathrm{s}\to \mathsf{\delta},1).$
 (2)
 Oneliteral rule:This rule is executed on each 2nd membrane.
 (3)
 Pureliteral rule:This rule is executed on each 2nd membrane as follows:Send all literals in the inside clause set outside from their original membranes: $\begin{array}{l}\begin{array}{l}{\mathrm{r}}_{1}=({\left[{\mathrm{zp}}_{\mathrm{j}}\right]}_{{M}_{i}}\to {[]}_{{M}_{i}}{\left[c\right]}_{{M}_{i}}\left({\mathrm{zp}}_{\mathrm{j}},out\right),1)\hfill \\ {\mathrm{r}}_{2}=(h\to \mathsf{\lambda}\mathrm{c},1)\hfill \end{array}\hfill \\ {r}_{3}=\left(\mathrm{c}\to \mathsf{\delta},1\right)\hfill \end{array}$, then delete the repetitive literals: $\begin{array}{l}{\mathrm{r}}_{4}=({\mathrm{x}}_{\mathrm{i}}^{2}\to {\mathrm{x}}_{\mathrm{i}},1)\hfill \\ {\mathrm{r}}_{5}=({\mathrm{y}}_{\mathrm{i}}^{2}\to {\mathrm{y}}_{\mathrm{i}},1)\hfill \end{array}$, finally delete the complemental pairs of literals: $\begin{array}{l}{\mathrm{r}}_{6}=\left({\mathrm{x}}_{\mathrm{i}}\to {\mathrm{gt}}_{\mathrm{i}}\neg {\mathrm{x}}_{\mathrm{i}}^{2},1\right)\hfill \\ {\mathrm{r}}_{7}=\left({\mathrm{y}}_{\mathrm{i}}\to {\mathrm{gf}}_{\mathrm{i}}\neg {\mathrm{y}}_{\mathrm{i}}^{2},1\right)\hfill \\ {\mathrm{r}}_{8}=\left({\mathrm{g}}^{2}{\mathrm{t}}_{\mathrm{i}}{\mathrm{f}}_{\mathrm{i}}\to \mathsf{\lambda},1\right)\hfill \end{array}$
 (4)
 Splitting rule:
$$\begin{array}{cc}{R}_{{M}_{i}}:\hfill & {\mathrm{r}}_{1}=({\mathrm{zp}}_{\mathrm{j}}{\mathrm{h}}^{2}{\mathrm{x}}_{\mathrm{i}}{\mathrm{y}}_{\mathrm{i}}\to \mathrm{s},1)\hfill \\ & {\mathrm{r}}_{2}=({\mathrm{t}}_{\mathrm{i}}{\mathrm{zp}}_{\mathrm{j}}{\mathrm{hx}}_{\mathrm{i}}\to \mathrm{s},1)\hfill \\ & {\mathrm{r}}_{3}=({\mathrm{f}}_{\mathrm{i}}{\mathrm{zp}}_{\mathrm{j}}{\mathrm{hy}}_{\mathrm{i}}\to \mathrm{s},1)\hfill \\ & {\mathrm{r}}_{4}=({\mathrm{hx}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{s},1)\hfill \\ & {\mathrm{r}}_{5}=({\mathrm{hy}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{s},1)\hfill \\ & {\mathrm{r}}_{6}=({\mathrm{t}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{s},1)\hfill \\ & {\mathrm{r}}_{7}=({\mathrm{f}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{s},1)\\ & {r}_{8}=\left(\mathrm{c}\to \mathsf{\lambda}\mathrm{s},1\right)\hfill \\ & {\mathrm{r}}_{9}=(\mathrm{s}\to \mathsf{\delta},1)\hfill \\ & {\mathrm{r}}_{10}=({\mathrm{t}}_{\mathrm{i}}{\mathrm{hy}}_{\mathrm{i}}\to \mathsf{\lambda},2)\hfill \\ & {\mathrm{r}}_{11}=({\mathrm{f}}_{\mathrm{i}}{\mathrm{hx}}_{\mathrm{i}}\to \mathsf{\lambda},2)\\ & {\mathrm{r}}_{12}=({\mathrm{t}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{h},3)\\ & {\mathrm{r}}_{13}=({\mathrm{f}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{h},3)\\ & {\mathrm{r}}_{14}=({\mathrm{zp}}_{\mathrm{j}}\to \mathsf{\delta}\left(\mathrm{N},\mathrm{out}\right)\neg h,3)\hfill \\ & {\mathrm{r}}_{15}=(h\to \mathsf{\lambda}\mathrm{c},4)\hfill \\ & {r}_{16}=\left(\mathrm{c}\to \mathsf{\delta}\neg \mathrm{s},4\right)\hfill \\ & {\mathrm{r}}_{17}=({\mathrm{x}}_{\mathrm{i}}\to {\mathrm{x}}_{\mathrm{i}}\left({\mathrm{gt}}_{\mathrm{i}},\mathrm{out}\right)\neg {\mathrm{h}}^{2},5)\hfill \\ & {\mathrm{r}}_{18}=({\mathrm{y}}_{\mathrm{i}}\to {y}_{\mathrm{i}}\left({\mathrm{gf}}_{\mathrm{i}},\mathrm{out}\right)\neg {\mathrm{h}}^{2},5)\hfill \end{array}$$

$$\begin{array}{cc}\hfill {R}_{2}:& {\mathrm{r}}_{19}=\left({\mathrm{g}}^{2}{\mathrm{t}}_{\mathrm{i}}{\mathrm{f}}_{\mathrm{i}}\to \mathrm{N}\neg \mathrm{N},1\right)\hfill \\ & {\mathrm{r}}_{20}=({\mathrm{t}}_{\mathrm{i}}{\mathrm{p}}_{\mathrm{j}}\to \left({\mathrm{t}}_{\mathrm{i}}z{\mathrm{p}}_{\mathrm{j}},{\mathrm{inM}}_{\mathrm{j}}\right)\neg \mathrm{z},1)\hfill \\ & {\mathrm{r}}_{21}=({\mathrm{f}}_{\mathrm{i}}{\mathrm{p}}_{\mathrm{j}}\to \left({\mathrm{f}}_{\mathrm{i}}z{\mathrm{p}}_{\mathrm{j}},{\mathrm{inM}}_{\mathrm{j}}\right)\neg \mathrm{z},1)\hfill \\ & {\mathrm{r}}_{22}=\left(\mathrm{bp}\to \mathrm{bq}{[]}_{3}\neg \mathrm{g},1\right)\hfill \\ & {\mathrm{r}}_{23}=\left({\mathrm{bt}}_{\mathrm{i}}\to \left({\mathrm{t}}_{\mathrm{i}},{\mathrm{in}}_{3}\right),1\right)\hfill \\ & {\mathrm{r}}_{24}=\left({\mathrm{bf}}_{\mathrm{i}}\to \left({\mathrm{f}}_{\mathrm{i}},{\mathrm{in}}_{3}\right),1\right)\hfill \\ & {\mathrm{r}}_{25}=\left({[]}_{3}{\mathrm{zp}}_{\mathrm{j}}\to {[]}_{3}{\left([\mathsf{\delta}\right]}_{3}{\mathrm{zp}}_{\mathrm{j}},{\mathrm{inM}}_{\mathrm{j}})\neg \mathrm{b},1\right)\hfill \\ & {\mathrm{r}}_{26}=\left(\mathrm{q}\to \mathrm{p}\left(\mathrm{s},{\mathrm{in}}_{3}\right)\neg \mathrm{z},1\right)\hfill \\ & {\mathrm{r}}_{27}=\left({\mathrm{x}}_{\mathrm{i}}\to {\mathrm{c}}_{\mathrm{i}}\neg {\mathrm{c}}_{\mathrm{i}},1\right)\hfill \\ & {\mathrm{r}}_{28}=\left({\mathrm{y}}_{\mathrm{i}}\to {\mathrm{e}}_{\mathrm{i}}\neg {\mathrm{e}}_{\mathrm{i}},1\right)\hfill \\ & {\mathrm{r}}_{29}=({\mathrm{x}}_{\mathrm{i}}\to \mathsf{\lambda}{\mathrm{c}}_{\mathrm{i}},1)\hfill \\ & {\mathrm{r}}_{30}=({\mathrm{y}}_{\mathrm{i}}\to \mathsf{\lambda}{\mathrm{e}}_{\mathrm{i}},1)\hfill \\ & {\mathrm{r}}_{31}=\left({\mathrm{c}}_{\mathrm{i}}{\mathrm{e}}_{\mathrm{i}}\to \mathsf{\lambda},1\right)\hfill \\ & {\mathrm{r}}_{32}=({\mathrm{c}}_{\mathrm{i}}\to {\mathrm{gt}}_{\mathrm{i}}\neg {\mathrm{e}}_{\mathrm{i}},1)\hfill \\ & {\mathrm{r}}_{33}=({\mathrm{e}}_{\mathrm{i}}\to {\mathrm{gf}}_{\mathrm{i}}\neg {\mathrm{c}}_{\mathrm{i}},1)\hfill \\ & {\mathrm{r}}_{34}=({\mathrm{zp}}_{\mathrm{j}}\to ({\mathrm{szp}}_{\mathrm{j}},{\mathrm{inM}}_{\mathrm{j}})\mathrm{N},1)\hfill \\ & {\mathrm{r}}_{35}=({\mathrm{a}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{N},1)\hfill \\ & {\mathrm{r}}_{36}=({\mathrm{gt}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{N},1)\hfill \\ & {\mathrm{r}}_{37}=({\mathrm{gf}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{N},1)\hfill \\ & {\mathrm{r}}_{38}=(\mathrm{p}\to \mathsf{\lambda}\mathrm{N},1)\hfill \\ & {\mathrm{r}}_{39}=({\mathrm{T}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{N},1)\hfill \\ & {\mathrm{r}}_{40}=({F}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{N},1)\hfill \\ & {\mathrm{r}}_{41}=(\mathrm{N}\to \mathsf{\delta},1)\hfill \\ & {\mathrm{r}}_{42}=({\mathrm{a}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{Y},1)\hfill \\ & {\mathrm{r}}_{43}=(\mathrm{Y}\to \mathsf{\delta},1)\hfill \\ & {\mathrm{r}}_{44}=({\mathrm{gt}}_{\mathrm{i}}\to \mathsf{\lambda}{T}_{\mathrm{i}},1)\hfill \\ & {\mathrm{r}}_{45}=({\mathrm{gf}}_{\mathrm{i}}\to \mathsf{\lambda}{F}_{\mathrm{i}},1)\hfill \\ & {\mathrm{r}}_{46}=({\mathrm{ga}}_{\mathrm{i}}{\mathrm{t}}_{\mathrm{i}}\to {\mathrm{bt}}_{\mathrm{i}}{T}_{\mathrm{i}}\neg {T}_{\mathrm{i}},2)\hfill \\ & {\mathrm{r}}_{47}=({\mathrm{ga}}_{\mathrm{i}}{\mathrm{f}}_{\mathrm{i}}\to {\mathrm{bf}}_{\mathrm{i}}{F}_{\mathrm{i}}\neg {F}_{\mathrm{i}},2)\hfill \\ & {\mathrm{r}}_{48}=({\left[{\mathrm{zp}}_{\mathrm{j}}\right]}_{{M}_{i}}\to {[]}_{{M}_{i}}{\left[c\right]}_{{M}_{i}}\left({\mathrm{zp}}_{\mathrm{j}},out\right),2)\hfill \\ & {\mathrm{r}}_{49}=\left({\left[{a}_{\mathrm{i}}{\mathrm{z}}^{\mathrm{j}}\right]}_{2}\to {\left[{\mathrm{t}}_{\mathrm{i}}^{\mathrm{j}}{\mathrm{T}}_{\mathrm{i}}\right]}_{2}{\left[{\mathrm{f}}_{\mathrm{i}}^{\mathrm{j}}{\mathrm{F}}_{\mathrm{i}}\right]}_{2}j\in {Q}^{+},3\right)\hfill \\ & {\mathrm{r}}_{50}=\left(\mathrm{p}\to \mathrm{q}\left(\mathrm{d},out\right),4\right)\hfill \end{array}$$

$$\begin{array}{cc}\hfill {R}_{1}:& {r}_{51}=\left(d\to a\neg a,1\right)\hfill \\ & {r}_{52}=\left(d\to \lambda a,1\right)\hfill \\ & {r}_{53}=\left({\left[p\right]}_{2}\to {\left[N\right]}_{2}Y,1\right)\hfill \\ & {r}_{54}=\left({\left[q\right]}_{2}\to {\left[N\right]}_{2}Y,1\right)\\ & {r}_{55}=\left(a{\left[q\right]}_{2}\to Y{\left[Y\right]}_{2},2\right)\\ & {r}_{56}=\left(Y\to \lambda ,3\right)\hfill \end{array}$$

 (a)
 For the 2nd membrane whose inside clause set has no single literals and pure literals, pick one of the atoms of the inside clause set which the splitting rules of it hasn’t been executed in the calculation process, and copy this 2nd membrane and its contents into two copies, allocate the picked literal and its negation to two copies, then add the picked atom and its negation into the literal list of two copies respectively, ${\mathrm{r}}_{49}=\left({\left[{a}_{\mathrm{i}}{\mathrm{z}}^{\mathrm{j}}\right]}_{2}\to {\left[{\mathrm{t}}_{\mathrm{i}}^{\mathrm{j}}{\mathrm{T}}_{\mathrm{i}}\right]}_{2}{\left[{\mathrm{f}}_{\mathrm{i}}^{\mathrm{j}}{\mathrm{F}}_{\mathrm{i}}\right]}_{2}j\in {Q}^{+},3\right)$, then for each membrane ${M}_{i}$ inside these two copies, judge the type of its inside clause: $\begin{array}{l}{\mathrm{r}}_{20}=({\mathrm{t}}_{\mathrm{i}}{\mathrm{p}}_{\mathrm{j}}\to \left({\mathrm{t}}_{\mathrm{i}}z{\mathrm{p}}_{\mathrm{j}},{\mathrm{inM}}_{\mathrm{j}}\right)\neg z,1)\hfill \\ {\mathrm{r}}_{21}=({\mathrm{f}}_{\mathrm{i}}{\mathrm{p}}_{\mathrm{j}}\to \left({\mathrm{f}}_{\mathrm{i}}z{\mathrm{p}}_{\mathrm{j}},{\mathrm{inM}}_{\mathrm{j}}\right)\neg z,1)\hfill \end{array}$, if its inside clause contains the allocated literal of the 2nd membrane which contains it, delete the membrane ${M}_{i}$ and its contents, if its inside clauses exclude the allocated literal of the 2nd membrane which contains this membranes ${M}_{i}$, but contain its negation, delete this negation: $\begin{array}{l}\begin{array}{l}{\mathrm{r}}_{2}=({\mathrm{t}}_{\mathrm{i}}{\mathrm{zp}}_{\mathrm{j}}{\mathrm{hx}}_{\mathrm{i}}\to \mathrm{s},1)\hfill \\ {\mathrm{r}}_{3}=({\mathrm{f}}_{\mathrm{i}}{\mathrm{zp}}_{\mathrm{j}}{\mathrm{hy}}_{\mathrm{i}}\to \mathrm{s},1)\hfill \end{array}\hfill \\ \begin{array}{l}{\mathrm{r}}_{10}=({\mathrm{t}}_{\mathrm{i}}{\mathrm{hy}}_{\mathrm{i}}\to \mathsf{\lambda},2)\hfill \\ \begin{array}{c}{\mathrm{r}}_{11}=({\mathrm{f}}_{\mathrm{i}}{\mathrm{hx}}_{\mathrm{i}}\to \mathsf{\lambda},2)\end{array}\hfill \end{array}\hfill \\ \begin{array}{c}\begin{array}{c}{\mathrm{r}}_{12}=({\mathrm{t}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{h},3)\\ {\mathrm{r}}_{13}=({\mathrm{f}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{h},3)\end{array}\end{array}\hfill \end{array}$;
 (b)
 For the 2nd membrane whose inside clause set contains a complemental pair of single literals, delete this 2nd membrane and its contents with a unsatisfiable symbol N: ${\mathrm{r}}_{19}=\left({\mathrm{g}}^{2}{\mathrm{t}}_{\mathrm{i}}{\mathrm{f}}_{\mathrm{i}}\to \mathrm{N}\neg \mathrm{N},1\right)$, this is how unsatisfiable symbol N works in this algorithm: $\begin{array}{l}{\mathrm{r}}_{34}=\left({\mathrm{zp}}_{\mathrm{j}}\to \left({\mathrm{szp}}_{\mathrm{j}},{\mathrm{inM}}_{\mathrm{j}}\right)\mathrm{N},1\right)\hfill \\ \begin{array}{l}{\mathrm{r}}_{35}=\left({\mathrm{a}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{N},1\right)\hfill \\ {\mathrm{r}}_{36}=\left({\mathrm{gt}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{N},1\right)\hfill \end{array}\hfill \\ \begin{array}{l}{\mathrm{r}}_{37}=\left({\mathrm{gf}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{N},1\right)\hfill \\ \begin{array}{l}\begin{array}{c}{\mathrm{r}}_{38}=\left(\mathrm{p}\to \mathsf{\lambda}\mathrm{N},1\right)\end{array}\hfill \\ \begin{array}{l}{\mathrm{r}}_{39}=\left({\mathrm{T}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{N},1\right)\hfill \\ {\mathrm{r}}_{40}=\left({F}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{N},1\right)\hfill \end{array}\hfill \end{array}\hfill \\ {\mathrm{r}}_{41}=\left(\mathrm{N}\to \mathsf{\delta},1\right)\hfill \end{array}\hfill \end{array}$, if all 2nd membranes have been deleted, there’s no rule can be executed, the membrane structure has only the membrane which stores the final result left and this membrane is empty at this point, it means that S is unsatisfiable;
 (c)
 For the 2nd membrane whose inside clause set has single literals or pure literals and excludes any complemental pair of single literals, first add these single literals and pure literals into the literal list of this 2nd membrane: $\begin{array}{l}\begin{array}{c}{\mathrm{r}}_{44}=({\mathrm{gt}}_{\mathrm{i}}\to \mathsf{\lambda}{T}_{\mathrm{i}},1)\\ {\mathrm{r}}_{45}=({\mathrm{gf}}_{\mathrm{i}}\to \mathsf{\lambda}{F}_{\mathrm{i}},1)\end{array}\hfill \\ \begin{array}{c}{\mathrm{r}}_{46}=({\mathrm{ga}}_{\mathrm{i}}{\mathrm{t}}_{\mathrm{i}}\to {\mathrm{bt}}_{\mathrm{i}}{T}_{\mathrm{i}}\neg {T}_{\mathrm{i}},2)\\ {\mathrm{r}}_{47}=({\mathrm{ga}}_{\mathrm{i}}{\mathrm{f}}_{\mathrm{i}}\to {\mathrm{bf}}_{\mathrm{i}}{F}_{\mathrm{i}}\neg {F}_{\mathrm{i}},2)\end{array}\hfill \end{array}$, then for each membrane ${M}_{i}$ inside this 2nd membrane, judge the type of its inside clause: $\begin{array}{l}\begin{array}{l}{\mathrm{r}}_{22}=\left(\mathrm{bp}\to \mathrm{bq}{[]}_{3}\neg \mathrm{g},1\right)\hfill \\ {\mathrm{r}}_{23}=\left({\mathrm{bt}}_{\mathrm{i}}\to \left({\mathrm{t}}_{\mathrm{i}},{\mathrm{in}}_{3}\right),1\right)\hfill \\ \begin{array}{l}{\mathrm{r}}_{24}=\left({\mathrm{bf}}_{\mathrm{i}}\to \left({\mathrm{f}}_{\mathrm{i}},{\mathrm{in}}_{3}\right),1\right)\hfill \\ {\mathrm{r}}_{25}=\left({[]}_{3}{\mathrm{zp}}_{\mathrm{j}}\to {[]}_{3}{\left([\mathsf{\delta}\right]}_{3}{\mathrm{zp}}_{\mathrm{j}},{\mathrm{inM}}_{\mathrm{j}})\neg \mathrm{b},1\right)\hfill \end{array}\hfill \end{array}\hfill \\ {\mathrm{r}}_{26}=\left(\mathrm{q}\to \mathrm{p}\left(\mathrm{s},{\mathrm{in}}_{3}\right)\neg \mathrm{z},1\right)\hfill \end{array}$, if its inside clause contains one of these single literals and pure literals, delete the membrane ${M}_{\mathrm{i}}$ and its contents: $\begin{array}{c}\begin{array}{l}{r}_{2}=({t}_{i}z{p}_{j}h{x}_{i}\to s,1)\hfill \\ {r}_{3}=({f}_{i}z{p}_{j}h{y}_{i}\to s,1)\hfill \end{array}\end{array}$, or else delete the negations of single literals from the clauses inside the left membrane ${M}_{i}$s: $\begin{array}{l}\begin{array}{l}{\mathrm{r}}_{10}=({\mathrm{t}}_{\mathrm{i}}{\mathrm{hy}}_{\mathrm{i}}\to \mathsf{\lambda},2)\hfill \\ \begin{array}{c}{\mathrm{r}}_{11}=({\mathrm{f}}_{\mathrm{i}}{\mathrm{hx}}_{\mathrm{i}}\to \mathsf{\lambda},2)\end{array}\hfill \end{array}\hfill \\ \begin{array}{c}{\mathrm{r}}_{12}=({\mathrm{t}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{h},3)\\ {\mathrm{r}}_{13}=({\mathrm{f}}_{\mathrm{i}}\to \mathsf{\lambda}\mathrm{h},3)\end{array}\hfill \end{array}$, if there’s a membrane ${M}_{i}$ whose inside clause is empty at this point, delete this 2nd membrane and its contents: ${\mathrm{r}}_{14}=({\mathrm{zp}}_{\mathrm{j}}\to \mathsf{\delta}\left(\mathrm{N},\mathrm{out}\right)\neg h,3)$.
4. Example Illustration
 Copy each membrane ${M}_{i}$ and its contents into two copies $\left({\mathrm{r}}_{48}\right)$, Figure 5 shows the membrane structure of this time.
 Then for copy with mark c, release all literals of its inside clause to the 2nd membrane which contains it and generate literal symbols of all pure literals of this 2nd membrane’s inside clause set with these released literals $\left({\mathrm{r}}_{\left(15,16,27\u201333\right)}\right)$, and for the copy without mark c, if its inside clause is a oneliteral clause, mark the literal of this inside clause with oneliteral symbol and send the oneliteral symbol outside $\left({\mathrm{r}}_{\left(17,18\right)}\right)$, Figure 6 shows the membrane structure of this time.
 Add these single literals and pure literals into the literal list of this 2nd membrane $\left({\mathrm{r}}_{\left(44\u201347\right)}\right)$, Figure 7 shows the membrane structure of this time.
 Then for each membrane ${M}_{i}$ inside this 2nd membrane, judge the type of its inside clause $\left({\mathrm{r}}_{\left(22\u201326\right)}\right)$, Figure 8 shows the membrane structure of this time.
 3.
 Next execute following three operations respectively on the membrane ${M}_{i}$s which contain different types of clauses $\left({\mathrm{r}}_{\left(2,3,10\u201313\right)}\right)$, Figure 10 shows the membrane structure of this time.
 Copy each membrane ${M}_{i}$ and its contents into two copies $\left({\mathrm{r}}_{48}\right)$, Figure 11 shows the membrane structure of this time.
 Then for the copy with mark c, release all literals of its inside clause to the 2nd membrane which contains it and generate literal symbols of all pure literals of this 2nd membrane’s inside clause set with these released literals $\left({\mathrm{r}}_{\left(15,16,27\u201333\right)}\right)$, and for the copy without mark c, if its inside clause is a oneliteral clause, mark the literal of this inside clause with oneliteral symbol and send the oneliteral symbol outside $\left({\mathrm{r}}_{\left(17,18\right)}\right)$, Figure 12 shows the membrane structure of this time.
 Pick one of the atoms of the inside clause set which the splitting rules of it hasn’t been executed in the calculation process, and copy this 2nd membrane and its contents into two copies, allocate the picked literal and its negation to two copies, then add the picked atom and its negation into the literal list of two copies respectively $\left({\mathrm{r}}_{49}\right)$, Figure 13 shows the membrane structure of this time.
 2.
 Then for each membrane ${M}_{i}$ inside these two copies, judge the type of its inside clause $\left({\mathrm{r}}_{\left(20,21\right)}\right)$, Figure 15 shows the membrane structure of this time.
 3.
 Next execute following three operations respectively on the membrane ${M}_{i}$s which contain different types of clauses $\left({\mathrm{r}}_{\left(2,3,10\u201313\right)}\right)$, Figure 16 shows the membrane structure of this time.
 Copy each membrane ${M}_{i}$ and its contents into two copies $\left({\mathrm{r}}_{48}\right)$, Figure 17 shows the membrane structure of this time.
 Then for the copy with mark c, release all literals of its inside clause to the 2nd membrane which contains it and generate literal symbols of all pure literals of this 2nd membrane’s inside clause set with these released literals $\left({\mathrm{r}}_{\left(15,16,27\u201333\right)}\right)$, and for the copy without mark c, if its inside clause is a oneliteral clause, mark the literal of this inside clause with oneliteral symbol and send the oneliteral symbol outside $\left({\mathrm{r}}_{\left(17,18\right)}\right)$, Figure 18 shows the membrane structure of this time.
 Add these single literals and pure literals into the literal list of this 2nd membrane $\left({\mathrm{r}}_{\left(44\u201347\right)}\right)$, then for each membrane ${M}_{i}$ inside this 2nd membrane, judge the type of its inside clause $\left({\mathrm{r}}_{\left(22\u201326\right)}\right)$, Figure 19 shows the membrane structure of this time.
 2.
 Next execute following three operations respectively on the membrane ${M}_{i}$s which contain different types of clauses $\left({\mathrm{r}}_{\left(2,3,10\u201313\right)}\right)$, Figure 21 shows the membrane structure of this time.
 3.
 Pick a 2nd membrane like this, and delete all 2nd membrane and their contents except the literal list of the picked 2nd membrane $\left({\mathrm{r}}_{\left(50\u201356,42,43\right)}\right)$, Figure 22 shows the membrane structure of this time.
5. Conclusions
Author Contributions
Funding
Conflicts of Interest
References
 Kautz, H.; Selman, B. The State of SAT. Discrete Appl. Math. 2007, 155, 1514–1524. [Google Scholar] [CrossRef]
 MarquesSilva, J.; Lynce, I.; Malik, S. Conflictdriven clause learning SAT solvers. In Handbook of Satisfiability; Biere, A., Heule, M., Van Maaren, H., Walsh, T., Eds.; IOS Press: Amsterdam, The Netherlands, 2009; Volume 185, pp. 131–153. [Google Scholar]
 Davis, M.; Putnam, H. A Computing Procedure for Quantification Theory. J. ACM 1960, 7, 201–215. [Google Scholar] [CrossRef]
 Sorensson, N.; Een, N. MiniSat—A SAT solver with conflictclause minimization. In Proceedings of the SAT05 8th International Conference on Theory and Applications of Satisfiability Testing, St Andrews, UK, 19–23 June 2005. [Google Scholar]
 Biere, A. MiniSat, cadical, lingeling, plingeling, treengeling and yalsat Entering the SAT Competition 2018. In Proceedings of the SAT Competition 2018: Solver and Benchmark Descriptions; 2018. [Google Scholar]
 Moskewicz, M.W.; Madigan, C.F.; Zhao, Y.; Zhang, L.; Malik, S. Chaff: Engineering an efficient SAT solver. In Proceedings of the 38th annual Design Automation Conference, Las Vegas, NV, USA, 22 June 2001. [Google Scholar]
 Simon, L.; Audemard, G. Predicting Learnt Clauses Quality in Modern SAT Solver. In Proceedings of the 21th International Joint Conference on Artificial Intelligence, Pasadena, CA, USA, 11–17 July 2009. [Google Scholar]
 Juretus, K.; Savidis, I. Importance of Multiparameter SAT Attack Exploration for Integrated Circuit Security. In Proceedings of the 2018 IEEE Asia Pacific Conference on Circuits and Systems, Chengdu, China, 26–30 October 2018. [Google Scholar]
 Liu, C.; Zhang, L.; He, X.; Guo, Y. Analysis of SET Reconvergence and Hardening in the Combinational Circuit Using a SATBased Method. IEEE Access 2018, 6, 48740–48746. [Google Scholar] [CrossRef]
 Efficient Methods for Conversion and Solution of Sparse Systems of LowDegree Multivariate Polynomials over GF(2) Via SatSolvers. Available online: http://eprint.iacr.org/2007/024 (accessed on 25 January 2007).
 Cook, S.A. The complexity of theoremproving procedures. In Proceedings of the Third ACM Symposium on Theory of Computing, Shaker Heights, OH, USA, 3–5 May 1971. [Google Scholar]
 Martins, R.; Manquinho, V.; Lynce, I. An overview of parallel SAT solving. Constraints 2012, 17, 304–347. [Google Scholar] [CrossRef]
 Păun, G. Computing with Membranes. J. Comput. Syst. Sci. 2000, 61, 108–143. [Google Scholar] [CrossRef]
 GutiérrezNaranjo, M.A.; PérezJiménez, M.J.; RiscosNúñez, A.; RomeroCampero, F.J. On the efficiency of celllike and tissuelike recognizing membrane systems. Int. J. Intell. Syst. 2009, 24, 747–765. [Google Scholar] [CrossRef]
 GutiérrezNaranjo, M.A.; PérezJiménez, M.J.; RiscosNúñez, A.; RomeroCampero, F.J. On the power of dissolution in P systems with active membranes. In Proceedings of the International Workshop on Membrane Computing, Vienna, Austria, 18–21 July 2005; pp. 224–240. [Google Scholar]
 MacíasRamos, L.F.; PérezJiménez, M.J.; RiscosNúñez, A.; RiusFont, M. The efficiency of tissue P systems with cell separation relies on the environment. In Proceedings of the International Conference on Membrane Computing, Budapest, Hungary, 28–31 August 2012; pp. 243–256. [Google Scholar]
 Pan, L.; PérezJiménez, M.J. Computational complexity of tissue–like P systems. J. Complex. 2010, 26, 296–315. [Google Scholar] [CrossRef]
 PérezJiménez, M.J.; RiscosNúñez, A.; RiusFont, M.; ValenciaCabrera, L. The relevance of the environment on the efficiency of tissue P systems. In Proceedings of the International Conference on Membrane Computing Chisinau, Chisinau, Moldova, 20–23 August 2013; pp. 308–321. [Google Scholar]
 Manca, V. DNA and membrane algorithms for SAT. Fund. Inform. 2002, 49, 205–221. [Google Scholar]
 Ciobanu, G.; Păun, G.; PérezJiménez, M.J. Applications of Membrane Computing; Springer: Berlin, Germany, 2006. [Google Scholar]
 Ishii, K.; Fujiwara, A.; Tagawa, H. Asynchronous P systems for SAT and Hamiltonian cycle problem. In Proceedings of the 2010 Second World Congress on Nature and Biologically Inspired Computing, Fukuoka, Japan, 15–17 December 2010. [Google Scholar]
 Song, T.; MacíasRamosb, L.F.; Pan, L.; PérezJiménez, M.J. Timefree solution to SAT problem using P systems with active membranes. Theor. Comput. Sci. 2014, 529, 61–68. [Google Scholar] [CrossRef]
 Adorna, H.N.; Pan, L.; Song, B. On Distributed Solution to SAT by Membrane Computing. Int. J. Comp. Commun. 2018, 13, 303–322. [Google Scholar] [CrossRef]
 Păun, G. Membrane Computing: An Introduction; Springer: Berlin, Germany, 2002. [Google Scholar]
 Liu, X.H. Automatic Reasoning Based on The Resolution Method; Science Press: Beijing, Chinese, 1994. [Google Scholar]
© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Hao, L.; Liu, J. Enhanced Membrane Computing Algorithm for SAT Problems Based on the Splitting Rule. Symmetry 2019, 11, 1412. https://doi.org/10.3390/sym11111412
Hao L, Liu J. Enhanced Membrane Computing Algorithm for SAT Problems Based on the Splitting Rule. Symmetry. 2019; 11(11):1412. https://doi.org/10.3390/sym11111412
Chicago/Turabian StyleHao, Le, and Jun Liu. 2019. "Enhanced Membrane Computing Algorithm for SAT Problems Based on the Splitting Rule" Symmetry 11, no. 11: 1412. https://doi.org/10.3390/sym11111412