Membrane Computing
Membrane computing (MC), a branch of Natural computing, acquires mathematical and computational constructs and abstractions from the functioning, dynamics, and structure of the living cell. The compartmentalized cell structure as well as its inner compartments or membranes are enclosed inside the cell's outermost membrane or skin membrane. The hierarchical cell structure can be thought of as a tree, with the skin as the root node and its inner membranes and the membranes within those as child nodes or even leaves/terminals for those membranes without an inner membrane. Inside a biological cell are multitudes of ions and molecules which are often represented in MC as a multiset of objects, the data structure common to MC. Within the membranes or regions of the abstracted cell are rules which govern the rewriting, creation, dissolution, and transport of these objects and even membranes. These rules are applied in a non-deterministic and maximally parallel manner, so that all rules or computations that can be applied will be applied.
The theoretical model used in MC is known as a P System introduced by Gheorghe Paun in 1998. Many P system variants are available in literature, varying from the way cells are created and dissolved, how rules are applied , even the distribution of the cells themselves, and so on. MC can be seen as an extension of DNA/molecular computing, zooming out of the molecular level and focusing on other parts of the cell as well, as in a distributed system. Although biologically inspired, P systems are also being applied to problems beyond biology, including modeling, economics, databases, networks, and so on. One common goal of P systems is to be able to solve computationally hard problems, usually in polynomial or even linear time. P systems often trade execution time for a large amount of space to solve these hard problems. Although computationally powerful, due to their maximally parallel and non-deterministic workings and space trade off over time, P systems at the moment are run in simulations (often in parallel devices) since they are yet to be fully realized in vivo, in vitro, or in silico.