A guide to membrane computing

Gheorghe Păun, Grzegorz Rozenberg
2002 Theoretical Computer Science  
This is a comprehensive (and -supposed -friendly) introduction to membrane computing, meant to offer both to computer scientists and to non-computer scientists an up-dated overview of the domain. That is why the panoply of notions which are introduced here is rather large, but the presentation is informal, without any proof and with rigorous definitions given only for the basic types of P systems -symbol-object P systems with multiset rewriting rules, systems with symport/antiport rules,
more » ... with string-objects, tissue-like P systems, and neurallike P systems. Besides a list of (biologically inspired or mathematically motivated) ingredients/features which can be used in systems of these types, we also mention a series of results -as well as a series of research trends and topics. Then, both some applications are briefly mentioned and a discussion is made about the attractiveness of this framework for (possible) applications, especially in biology. notion of a membr ane is that from biology, of a three-dimensional vesicle, but the concept itself is generalized/idealized to interpreting a membrane as a separator of two regions (of the Euclidean space), a finite "inside" an d an infinite "outside", also providing the possibility of a selective communication among the two regions. The variety of suggestions from biology and the range of possibilities to define the architecture and the functioning of a membrane-based-multiset-processing device are practically endless -and already the literature of membrane computing contains a very large number of models. Thus, membrane computing is not a theory related to a specific model, it is a framework for devising compart mentalized models. Both because the domain is rather young (the trigger paper is [77], circulated first on web, but related ideas were considered before, in various contexts), but also as a genuine feature, bas ed both on the biological background and the mathematical formalism used, not only there are already proposed many types of P systems, but the flexibility and the versatility of P systems seem to be, in p rinciple, unlimited. This last observation, as well as the rapid development and enlargement of the research in this area, make impossible a short and faithful presentation of membrane computing, with any good level of completeness. However, there are a series of notions, notation, models which are already "standard", which have stabilized and can be considered as basic elements of membrane computing. This paper is devoted to presenting mainly such notions and models, together with the associated notation. The presentation will be both historically and didactically organized, introducing first either notions which were investigated from the beginning in this area, or simpler notions, able to quickly offer an image of membrane computing to the reader who is not familiar with the domain. The reader has surely noticed that all the previous discussion refers mainly to computer science (goals), and much less to biology. Membrane computing was not initiated as an area aiming to provide models to biology, in particular, models of the cell. Still in this moment, after a considerable development at the theoretical level, the domain is not fully prepared to offer such models to biology -but this is a strong tendency of the recent research and considerable advances towards such achievements were reported (the topic will be discussed later in more details). Membrane Computing as Part of Natural Computing Before entering into more specific elements of membrane computing, let us spend some time with the relationship of this area with, let us say, using the "local" terminology, the "outside". We have said above that membrane computing is part of computer science. However, the genus proximus is natural computing, the general attempt to learn computer science useful ideas, models, paradigms from the way nature -life especially -"computes", in various circumstances where substance and information processing can be interpreted as computations. Classic bioinspired branches of natural computing are genetic algorithms (more generally, evolutionary computing, with well individualized sub-branches such as evolutionary programming) and neural computing. Both of them have a long history, which can be traced until unpublish ed works of Turing (see, e.g., [97]), many applications, and a huge bibliography. Both of them are a proof that "it is worth learning fr om biology", supporting the optimistic observation that many billions of year nature/life has adjusted certa in tools and processes which, correctly (luckily?) 2 abstracted and implemented in computer science terms, can p rove to be surprisingly useful in many applications. A more recent branch of natural computing, with an enthusiastic beginning and unconfirmed yet computational applicability (we do not discuss here the by-products, such as the nanotechnology related developments), is DNA computing, whose birth certificate is related to Adleman experiment [1] of solving a (small) instance of the Hamiltonian path problem by handling DNA molecules in a laboratory. According to Hartmanis [50], [51] , it was a demo that we can compute with bio-molecules, a big event for computability. However, after one decade of research, the domain is still preparing its tools for a possible future practical application and looking for a new breakthrough idea, similar to Adleman's one from 1994. However, at the theoretical level, DNA computing is beautifully developed (see, e.g., [85] and the proceedings of the yearly DNA Based Computers series of conferences). This is both due to the fact that DNA structure and processing suggest a series of new data structures (e.g., the double stranded sequence, with the pairs of corresponding symbols from the two strands being related through a complementarity relation) and operations (e.g., recombination, denaturation, hybridization), but also to the fact that the massive parallelism made possible by the efficiency of DNA as a support of information promises to be useful in solving computationally hard problems in a feasible time. Actually, at the theoretical level one can say that DNA computing started already in 1987, when T. Head [49] has proposed a language theoretic model of what he called the splicing operation (the recombination of DNA molecules, cut by restriction enzymes in fragments pasted together when the sticky ends match). Both evolutionary computing and DNA computing are inspired from and related to handling DNA molecules. Neural computing considers the neurons are simple finite automata linked in networks of specific types. Thu s, these "neurons" are not interpreted as cells, with an internal structure and life, but as "dots on a grid", with a simple input-output function. (The same observation holds true for cellular automata, where again the "cells" are "dots on a grid", only interacting among them, in a rigid structure.) None of these domains considers the cell itself as its main object of research, in particular, none of these domains pays any attention to membranes and compartmentalization -and this is the poin t where membrane computing enters the stage. Thus, membrane computing can be seen as an extension of DNA (m ore generally, molecular) computing, from the "one-processor" level to a distributed computing model. Laudation to the Cell (and Its Membranes) Life (as we know it on Earth, in the traditional meaning of the term, that investigated by biology) is directly related to cells, everything alive consists of cells or has to do in a direct way with cells. The cell is the smallest "thing" unanimously considered as alive. It is very small and very intricate in its structure and functioning, has an elaborate internal activity and an exquisite interaction with the neighboring cells, and with the environment in general. It is fragile and robust at the same time, with a way to organize (control) the bio-chemical (and informational) processes which was polished during billions of years of evolution. Any cell means membranes. The cell itself is defined -separated from its environment -by a membrane, the external one. Inside the cell, several membranes enclose "protected reactors", compartments where specific biochemical processes take place. In particular, a membrane encloses the nucleus (of eukaryotic cells), where the genetic material is placed. Through vesicles
doi:10.1016/s0304-3975(02)00136-6 fatcat:u5gj4rfjr5guva3aggjsfjozi4