# On Applications of Spiking Neural P Systems
## 1 Introduction  
In 1965, [PERSON] predicted that the components of integrated circuits will reach a physical limit [1]--i.e., miniaturization of silicon based circuits will eventually slow down. With this prediction, many computer scientists shifted their focus on constructing computing devices which can be an alternative to the silicon-based computer. Natural motivations to construct these models came from different biological phenomena and the area which investigates these computing mechanisms became well-known as unconventional computing. One of the biggest motivations of constructing bio-computers came from the experiment performed by [PERSON] in his laboratory where, with the use of DNA molecules, restriction enzymes and other chemicals, a well-known NP-complete problem--i.e., HPP (Hamilton path problem)--was solved [2]. It initiated a popular area of research known as DNA computing. Furthermore, following the experiment of [PERSON], many researchers used DNA molecules as computing units to solve many computationally hard problems. Along with the experimental branch of DNA computing, a theoretical branch of DNA computing was introduced by [PERSON] where the splicing of DNA molecules was mathematically modelled using the concepts of formal language theory [3]. This theoretical branch of DNA computing became very popular among formal language theorists [4]. Following the success of DNA computing, [PERSON] introduced another area inspired from the structure and functioning of biological cells/membranes and it became popularly known as Membrane computing. Since the introduction of Membrane computing in 1998, it has become a popular direction of research. The seminal paper by [PERSON] [5] was mentioned by the Institute for Scientific Information(ISI) in 2003 as a fast-breaking in computer science research. Membrane computing models are known as P systems and work as parallel and distributive computing models. Moreover,in P systems the objects present in the membranes are represented by a multiset of objects, strings, etc., and these objects can also evolve using the rules present in the membranes. One target is also attached to the rules so that the newly generated objects can be sent to the membranes mentioned by the target. The newly generated objects can be sent to upper or lower membranes or can be sent to any other connected cells/membranes. Depending on this criteria, membrane computing models are divided into three categories: cell-like, tissue-like and neural-like. In cell-like P systems, the objects can be sent only to upper and lower membranes of the membrane where the rule is applied. However, the inter-cellular communications are possible in tissue-like and neural-like systems. Neural-like P systems [6] were introduced in 2006, by [PERSON], [PERSON] and [PERSON]. These models are known as spiking neural P systems (SNPS). These models were inspired by the structure and functioning of the biological neurons. More specifically, they were inspired from the structure and workings of third generation neural networks which are well-known as SNNs (spiking neural networks). One of the fundamental features of SNNs is that they use time to encode the information and also uses the concept of individual spikes. These properties of SNNs make it a model which is much closer to the biological neurons. Moreover SNNs are hardware friendly and energy efficient [7]. The idea of encoding time as information and individual spikes has been incorporated in SNPS in the framework of formal language theory. In SNPS, the information is encoded in the form of time differences between the spiking of a particular neuron. Moreover, the time difference between the spikes by a specified neuron is collected and considered as the numbers generated by the SNPS. SNPS also work as accepting devices where some neurons are designated as input neurons an,d depending on the positive/negative output by the output neurons, the acceptance/rejection of the strings received in the input neurons are decided to be accepted or rejected.