Parallel virus machines

Within the branch of Natural Computing, several models or types of computation arise, some of them are well-established such as neural networks, evolutionary computing or membrane computing, while others have yet to be studied and developed. One such model is virus machines, which draws inspiration from the replication and transmission mechanisms of viruses. This model has been successfully applied to mathematical problems, supported by its robust formal structure and the verification of various parallel virus machines. Parallelism has been one of the milestones in several branches of Natural Computing. This paper presents a novel extension: parallel virus machines. Furthermore, several semantics are studied to fix possible ambiguities related to this new variant. Finally, a comparison with well-established neural-like systems, called spiking neural P systems, is discussed.

Natural Computing is a research field where different computing paradigms arise from the inspiration of processes occurring in Nature.DNA computing [1], Membrane computing [2], artificial neural networks [3], and evolutionary computing [4], among others, are widely studied while looking for alternative methods for solving real-life problems that demand a large amount of resources in more efficient ways.
In 2015, virus machines were introduced as a model of computation inspired by the way viruses spread between hosts and replicate their genetic code by "tricking" the host entities.
A basic virus machine of degree (, ), ,  ≥ 1, graphically depicted as in Fig. 1, is a tuple Π = (Γ, , ,  ,  ,  , 1, . . ., , 1, ℎ) where Γ = {} is the working alphabet, whose unique element is called a virus,  = {ℎ1, . . ., ℎ} is the set of labels of the hosts, that will contain the viruses,  = {1, . . ., } is the set of labels of the instructions, that will control the functioning of the system,  is the graph of the hosts, connecting them through channels, that will be opened by the instructions and will let viruses pass from one host to other one,  is the graph of the instructions, that will control the flow of the computation,  connects the instructions with the channels they will open, 1, . . .,  are the initial number of viruses in each host, 1 is the initial instruction and ℎ ∈  ∪ {ℎ0} is the output region, that can be either a host or the environment.If a virus passes through an open channel, then the next instruction will be the one connected to the current instruction by the edge with the higher weight; otherwise, the selected instruction will be connected by the edge with the lower weight.If no instructions are connected to the current instruction, the following instruction is denoted by # and the computation halts.
In previous works, it has been demonstrated that this model of computation is computationally complete; that is, its power is equivalent to the power of a Turing machine.Apart from that, it has been demonstrated to be a good model of computation for solving different types of CEUR Workshop Proceedings (CEUR-WS.org) Figure 1: Basic virus machine computational problems.The basic model is, by definition, a sequential model of computation.Thus, it is easy to see that from the computational complexity point of view, these devices will only be able to solve from the complexity class P.
Several bio-inspired models of computation have included different features to increase their computational efficiency, taking inspiration from some elements present in real-life processes.The most basic variant changes the initial instruction 1 of the tuple by a set of initial instructions 0, that will be executed at the same time.In this generalization, when two instructions open the same channel, both take the same decision concerning which path to take for selecting the next instruction.Since only one instruction can be selected from another instruction, the number of active instructions will decrease throughout the computation.The computation halts when the set of current active instructions is the empty set.
Another interesting approach is to let instructions control more than one channel; that is, in the graph  , one instruction can be connected to more than one channel.Different possibilities arise from this variant.Let us suppose that the instruction  is connected to  channels.When should  select the edge with the higher weight?When at least one virus goes through one channel?When all the channels transport a virus?When the majority of channels have moved a virus?The different choices will lead to different models that work in a very different way.
Even when these variants are not able to solve NPcomplete problems efficiently, these new ingredients are really interesting for some applications, improving the running time for previously designed solutions.When a real-life cell replicates its ADN, without realizing it, it replicates also the genetic code of the virus.This behavior can be abstracted as a division of the host entity, duplicating its entire genetic code (the connections and internal elements).Potentially, this type of instruction could lead to presumably efficient virus machines, as it happens in the framework of membrane computing [5].