Efficient neurofuzzy system and its Memristor Crossbarbased Hardware Implementation
Abstract
In this paper a novel neurofuzzy system is proposed where its learning is based on the creation of fuzzy relations by using new implication method without utilizing any exact mathematical techniques. Then, a simple memristor crossbarbased analog circuit is designed to implement this neurofuzzy system which offers very interesting properties. In addition to high connectivity between neurons and being faulttolerant, all synaptic weights in our proposed method are always nonnegative and there is no need to precisely adjust them. Finally, this structure is hierarchically expandable and can compute operations in real time since it is implemented through analog circuits. Simulation results show the efficiency and applicability of our neurofuzzy computing system. They also indicate that this system can be a good candidate to be used for creating artificial brain.
I introduction
In the field of artificial intelligence, neurofuzzy refers to combination of artificial neural networks and fuzzy logics trying to use benefits of these two fields. Perhaps the most important advantage of neural networks is their adaptivity. Adaptivity comes from learning capability of neural networks which allows these networks to perform well even when the environment varies over time like what human brain does. Another significant benefit of neural networks relates to their huge connectivity (again inspired from real brain) that offers high fault tolerance and parallel processing power which is also assumed to be the reason of high efficiency of biological systems. On the other hand, fuzzy logic performs an inference mechanism under cognitive uncertainty and provides an inference morphology that enables approximate human reasoning capabilities to be applied to knowledgebased systems. However, in fuzzy inference systems, it usually takes a lot of time to design and tune membership functions and rules. To overcome this problem, similar to what is done in neurofuzzy systems, learning techniques of neural networks can automated this tuning process to reduce development time.
Therefore, it can be said that current neurofuzzy systems like ANFIS [1], RuleNet [2] and GARIC [3] are fuzzy systems that use a learning algorithm derived from neural network theory to determine their parameters (fuzzy sets and fuzzy rules) by processing training data. However, eventually all of these neurofuzzy systems are trying to approach an ideal softcomputing tool where the nature of its computing or inference be as similar as possible to computation and inference in human brain. Although now we can see significant progresses in this area in the software domain, samples of successful hardware which could even approach computing capabilities of real brain are very rare. One of the main obstacle in front of this purpose relates to the ability of efficiently modeling and construction of synapses. Actually, highly parallel processing power of biological systems comes from large connectivity between neurons through synapses (each neuron in human brain is connected to about 10000 other neurons through these synapses) and it is widely believed that the adaptation of synaptic weights enables the biological systems to learn and function. Therefore, efficient construction of synaptic weights is a critical factor in the success of final system. After the first physical realization of memristor [4], it becomes clear that this passive element can be a perfect representative of synapse since similar to synapse, its conductance can be precisely modulated by passing charge and flux through it.
In the past few years and by the discovery of memristor and improvements achieved in the construction of powerful digital hardware, extensive works are in progress to build an artificial brain that can adaptively interact with the world in real time. Among then we can name projects like IFAT 4G at John Hopkins University, BrainScales in the European Union’s neuromorphic chip program, brain simulator C2 introduced by IBM, and Modular Neural Exploring Traveling Agent (MoNETA). The most recent one between these projects, i.e. MoNETA which is the part of the DARPA’s SyNAPSE program, is a software developed by the researchers at Boston University which will run on a braininspired microprocessor under development at HP labs in California [5]. In this still under construction system, in spite of internal structure of real brain, all units are implemented in digital with separate memory and computational units. However, it has been argued that by constructing memristive memories (to store synaptic weights) and putting them very close to computational circuits that read and write them, signalling losses and power consumption can be minimized [5].
In this paper, we introduce another approach to construct a simple neurofuzzy computing system which differs significantly from other systems in this category. In fact, we believe that structures similar to what is proposed in this paper merit more to be called neurofuzzy compared to currently available systems. This is because of the fact that as can be seen in the rest of the paper, in our proposed system neural network and fuzzy logic fields are completely involved with each other and it is hard to distinguish that which part belongs to fuzzy logic and which part relates to neural networks. Moreover, there is no use of exact mathematical techniques. As another advantage, in this system memristor crossbar is used to store synaptic weights but by this difference that memory is assimilated with computational units like what we have in human brain. In addition, because of large connectivity between input and output neurons, this proposed structure is completely faulttolerant. Actually we have shown that even if during the fabrication process or execution phase of the system near half of the memristors become faulty, system can still continue working satisfactory. On the other hand, learning in our structure is based on the creation of fuzzy relations which is shown to be equal to primary Hebbian learning rule and therefore all synaptic weights will be always nonnegative. However, in spite of almost all developed learning methods, there is no need to precisely adjust these weights which are represented by memristors. Finally, our neurofuzzy system is hierarchically expandable and since it is constructed with analog circuits, its computations are almost in realtime.
The paper is organized as follows. Inference method in our proposed neurofuzzy system is described in Section II. Section III is devoted to the explanation of the hardware implementation of proposed inference method based on memristor crossbar structure. The reason that we have considered our proposed system as a neurofuzzy one is presented in Section IV. Eventually, a few experimental results are presented in Section V, before conclusions in Section VI.
Ii construction of a new fuzzy neurofuzzy structure
In this paper we propose a new fuzzy structure with biological support which can do some inferential tasks in fuzzy form. In addition, this fuzzy structure has learning capability like human brain but in spite of neural networks, it performs any operation based on concepts of fuzzy logic. This means that in our proposed structure, inputs and outputs of the structure are fuzzy numbers and any calculation in the structure for doing inferential processes is done in fuzzy without using any precise and accurate mathematical techniques. Figure 1 shows such a typical Single Input Single Output (SISO) system where in this system, fuzzy input and output variables are considered to be discrete for simplicity. If this system was a nonfuzzy system, its input or output would be a single crisp number. However, since this system is a fuzzy one, its input and output should be fuzzy numbers or set of pairs like what is depicted in Fig. 1. Since the construction of this system with this kind of input and output terminals is impossible (from hardware aspect), we modify input and output terminals of the fuzzy system of Fig.1 such as the one presented in Fig. 1. In this figure, the ith input and the jth output of the system represent concepts and respectively. Note that resolution or domain of input or output variables can be increased by adding input or output terminals to the system where each of these newly added terminals will represent new values of input or output variables. Now, if in the system of Fig. 1, the input applied to the ith input terminal which represents concept be (: membership function of input fuzzy number) and the output at the jth output terminal which represents concept be (: membership function of output fuzzy number), the system of Fig. 1 will be equal to the fuzzy system of Fig. 1 but by this difference that the construction of the fuzzy system shown in Fig. 1 is much simpler. Consequently, input of the system of Fig. 1 is a vector of membership degrees, i.e. , and the output of this system is also a vector of membership degrees, i.e. where combination of these membership grades with those concepts which are assigned to input and output terminals creates input and output fuzzy numbers. As a result, we again have a totally fuzzy system with fuzzy input and fuzzy output variables. For example, consider a typical fuzzy system shown in Fig. 1. In this example, input of the system is a fuzzy number which can be roughly considered as a fuzzy representation of crisp number and the output of this system for this input is a fuzzy number where its deffuzzification may probably result in a crisp number .
Now, let’s see how the fuzzy inference system of Fig. 1 which relates the fuzzy input variable to fuzzy output variable can be constructed. It is well known that the compositional rule of inference describes a composition of a fuzzy set and a fuzzy relation. Any fuzzy rule in the form of
(1) 
is usually represented by a fuzzy relation [6]. Having given input linguistic value , we can infer an output fuzzy set by the composition of the fuzzy set and the relation . Therefore, doing any inference between fuzzy input and output variables requires a fuzzy relation between these variables. Each fuzzy relation can be represented by a surface which we call it Fuzzy Relation Surface or FRS. Value of this surface at any point is from a kind of membership degree and therefore will be always nonnegative. In literature, several implication methods have been proposed to construct a fuzzy relation based on given input and output fuzzy sets [7, 8, 9]. In this paper, we will show another method to construct fuzzy relation based on available training fuzzy data when input and output fuzzy sets are not known. As can be seen in the rest of this paper, our proposed method has the ability of learning as well.
Figure 1 shows one typical FRS for the fuzzy system of Fig. 1. Note that since input and output variables of the fuzzy system of Fig. 1 are discrete, this surface has became discrete as well. One reason that we have made input and output of this system and consequently its representing fuzzy relation discrete is that the hardware implementation of continues fuzzy system is very difficult if not impossible. As stated before, it is evident that based on the requirements of the application that this fuzzy system is intended for, resolution and range of its corresponding discrete fuzzy relation (surface) can be increased simply by increasing the number of input and(or) output terminals of the system.
In its simplest form, any fuzzy relation can be defined as follows [6]:
Definition II.1 (Fuzzy Relation).
Let and be two universes of discourse. Binary fuzzy relation, denoted by , are fuzzy sets which map each element in the product set to a membership grade , where and . So any fuzzy relation can be expressed as:
(2) 
Now the problem is to determine the membership function of the fuzzy relation based on given input and output fuzzy sets. In this section, two different situation will be considered: (i) input and output fuzzy sets are available and (ii) input and output fuzzy sets are not in hand but instead of them, some fuzzy inputoutput training data are available.
Iia construction of fuzzy relation based on available input and output fuzzy sets
Consider that input fuzzy set with membership function and output fuzzy set with membership function are available and the goal is to determine the membership function of the fuzzy relation described by:
(3) 
based on the knowledge of and where is a fuzzy implication scheme. Here, we consider a new and simple implication method defined as:
(4) 
where can be any monolithically increasing function. Note that since we are dealing with fuzzy systems, function does not need to be defined precisely. Equation 4 says that the membership value of the constructed fuzzy relation at any point should be directly proportional to the sum of the values of the input’s membership function at point and the output’s membership function at point . In other words, whatever both values of input and output membership functions at points and respectively be higher, the membership value of fuzzy relation at point should be higher as well. Although this implication method is not similar to other common methods, it has this benefit that as can be seen later, its hardware implementation is straightforward.
IiB construction of fuzzy relation based on available fuzzy training data
Now, consider the case in which input and output fuzzy sets are not available but we want to construct a fuzzy relation based on existing fuzzy inputoutput training data. Each fuzzy inputoutput training data for any SISO system consists of two fuzzy numbers: input fuzzy number denoted by and output fuzzy number denoted by . Therefore, the ith fuzzy training data can be considered as where:
(5) 
In above equations, and are universes of discourse and and are membership functions of fuzzy numbers and respectively. Similar to what is done in previous subsection, we propose to construct a fuzzy relation representing the relation between input and output fuzzy variables as:
(6) 
However, when all training data are not entirely available at the beginning or when they are entering one by one, fuzzy relation can be formed iteratively. In this case, entrance of any new data should update the current fuzzy relation which its updating rule can be written as:
(7) 
where is the newly observed fuzzy inputoutput training data. Here it is worth to discuss a bit more about our proposed method to construct fuzzy relation based on fuzzy training data. Actually, this implication method is inspired from the ink drop spreading concept in active learning method [10, 11] because of three reasons: (i) it has biological support, (ii) its hardware implementation is very simple and (iii) it does not obey from exact mathematical techniques. Figure 2 shows this process graphically. In this figure, fuzzy relation is interpreted as an image where in this image the intensity of the pixel at location is directly proportional to and pixels with higher intensity are depicted darker. When a new training data is being observed, the value of the fuzzy relation at any point like should be increased (should be made darker). However, increasing amount of fuzzy relation at point should be proportional to membership grades of observed input and output fuzzy numbers at points and respectively. Since most of naturally created fuzzy numbers have bell like shapes (gaussianlike membership functions), updating the fuzzy relation due to this new fuzzy inputoutput training data can be equated with the distillation of one ink drop and then spreading it on the image representing this fuzzy relation. This process is clearly demonstrated in Fig. 2 as well. In a similar way, updating the fuzzy relation with the next fuzzy inputoutput training data will be equal to dropping another ink drop on the fuzzy relation image. As individual ink drop patterns overlap, the overlapping area become increasingly darker. The effective radius of distilling ink drop on the image is to somehow related to the amount of uncertainty in measuring input and output numbers. For example, when we can measure input and output data with infinite precision, they will become simple crisp numbers and therefore the radius of distilling ink drop should approach zero.
Gradually by the entrance of more and more data (by progressing in the learning process and spreading more data), a pattern will be formed on this image. Finally, this pattern will represent the fuzzy relation which connects input and output fuzzy variables.
To conclude, any fuzzy inference needs a fuzzy relation which in its simplest form can be represented by a 2dimensional matrix (like the one shown in Fig. 2). Consequently, any fuzzy inference hardware that one would like to propose should at least have a structure for storing and manipulating matrixes.
IiC Doing inference
In this section, we explain how inference is done in our proposed method. For this purpose, assume that fuzzy relation is created and based on this relation and given input fuzzy number, we want to determine corresponding output fuzzy number. In literature, several different approaches have been proposed to design fuzzy inference systems having linguistic descriptions of inputs and outputs [12, 13]. However, most of these inference systems have this disadvantage that their hardware implementation is not simple. For example, consider min and max operators which are frequently in use in fuzzy inference systems. It is well known that their hardware implementation is not efficient compared to some other tnorm or tconorm operators. Therefore, it is evident that the construction of large scale systems like human brain based on these inference methods is very hard if not impossible. Actually, this is because of the fact that these operators are not inherently consistent with the physical behavior of circuit elements. To avoid this problem, we propose a new but unusual inference method as described below. Suppose that we have a fuzzy relation and input fuzzy number . Now, we propose to compute the membership function of output fuzzy number corresponds to the input fuzzy number as:
(8) 
where is the universe of discourse of output fuzzy number . If we refer back to our proposed structure shown in Fig. 1 and consider the input of the structure as a vector of membership grades like , in this case output of that structure can be written as:
(9) 
where is a transposition operator and . Therefore, our proposed inference method is nothing else than a simple vector to matrix multiplication. This process is depicted in Fig. 3 graphically in two cases: (i) input of the system is a crisp number and (ii) input of the system is a fuzzy number. Note that to have better understanding, fuzzy relation in this fuzzy system is considered to be continuous. Figure 3 shows that when the input of the fuzzy system is a crisp number, like ( is equal to 2 in Fig. 3), output of the system which is acquired by our proposed inference method will be the curve (representing output fuzzy number) of intersection of the fuzzy relation with the plane multiplied by . Figure 3 shows the other case in which the input of the system is a fuzzy number. However, without loos of generality and to better illustrate the concept behind our inference method, input fuzzy number is considered to be discrete with only two nonzero samples at points and with membership grades of and respectively. When this input is applied to the structure, output fuzzy number will be the weighted sum of two fuzzy numbers obtained by intersecting of the fuzzy relation with planes and which can be written as:
(10) 
where
(11) 
This equation means that each sample of input fuzzy number creates a distinct output fuzzy number which is the curve of intersection of the fuzzy relation with the specific plane. Then, these fuzzy numbers are aggregated (summed) with each other with different gains to create the output fuzzy number; as the membership grade of one sample in fuzzy input number be higher, contribution of its corresponding fuzzy number in the creation of final output fuzzy number will be more. Therefore, our proposed inference method (Eq. 8 or Eq. 9) which is only a simple vector to matrix multiplication is not so much irrelevant and illogical. Note that since multiplying the lefthand side of Eq. 11 by a constant will not change the output fuzzy number (its defuzzification before and after this multiplication will result in a same crisp number), the height of the output fuzzy number does not need to be equal to 1.
In the following sections, we will show how this proposed inference method can be simply implemented by using memristor crossbar structure. In addition, the reason that made us to consider this system as a neurofuzzy one will be explained as well.
Iii Hardware implementation of proposed neurofuzzy system
In this section, at first physical properties of the forth circuit element i.e. memristor will be discussed and then the working procedure of memristor crossbar and its application will be explained. Finally, we will show that how the fuzzy inference system that we developed in previous section can be implemented with this memristor crossbar structure.
Iiia Memristor
After the first experimental realization of the forth fundamental circuit element i.e. memristor [4] whose existence was previously predicted in 1971 by Leon Chua [14], extraordinary increased researches are in process in variety of fields like neuroscience, neural networks and artificial intelligence. It has become clear that this passive element can have many potential applications such as nonvolatile memory construction [15], creation of analog neural network and emulation of human learning [16], building programmable analog circuits [17, 18, 19], constructing hardware for soft computing tools [20], implementing digital circuits [21] and in the field of signal processing [22, 23].
Memristor, different from other electrical elements namely resistor, capacitor and inductor, denotes the relationship between flux() and electric charge () as [14]:
(12) 
By rewriting this equation, memristance of the memristor can be expressed as:
(13) 
which shows that the unit of memristance is ohm. In fact, A memristor can be thought of as a resistive device that its resistance varies in dependence of its current or flux.
Memristor is an electrically switchable semiconductor thin film sandwiched between two metal contact with a total length of and consists of doped and undoped regions which its physical structure with its equivalent circuit model is shown in Fig. 4 [4]. The internal state variable determines the length of doped region with low resistance against undoped region with high resistivity. This internal state variable and consequently the total resistivity of the device can be changed by applying external voltage bias [24]. If the doped region extends to the full length , the total resistance of the device will be at its lowest level denoted as and if the undoped region extends to the full length , the total resistance of the device will be at its highest level namely . For example, the mathematical model for the total resistance of the memristor reported by HP can be written as [4]:
(14) 
where is the initial state for state variable , is the average ion mobility and is the amount of electric charge (integral of current) that has passed through the device. Above equations show that passing current from memristor in one direction will increase the memristance of the memristor while changing the direction of the applied current will decrease its memristance. In addition, it is obvious that in this element, passing current in one direction for longer period of time (which means has higher absolute value) will change the memristance of the memristor more. Moreover, by setting the passing current into zero, the memristance of the memristor will not change anymore. Finally, note that determining the memristance of the memristor at any time can be done by passing a small current through the memristor and measuring the dropped voltage across it (see Eq. 13).
As a result, memristor is nothing else than the analog variable resistor where its resistance can be adjusted by changing the direction and the duration of the applied voltage. Therefore, memristor can be used as a storage device in which analog values can be stored as a memristance instead of voltage or charge. Here it should be emphasized that memristorbased storage devices have some advantages compared to those storage devices which use capacitors. At first, the former can be fabricated much denser than the later one through the nanocrossbar technology [25]. Second, memristor can hold the stored data unchanged theoretically for an infinite period of time without refreshing [26]. Finally, unlike capacitors, memristors can be used in the memristor crossbar structure which has so many potential applications (one of them is demonstrated in this paper).
A crossbar array basically consists of two sets of conductive parallel wires intersecting each other perpendicularly. The region where a wire in one set crosses over a wire in the other set is called a crosspoint (or junction). Crosspoints are usually separated by a thin film material which its properties such as its resistance can be changed by controlling the voltage applied to it. One of such materials is memristor which is used in our proposed crossbarbased circuits in this paper. Figure 5 shows a typical memristor crossbar. In this circuit, memristors which are formed at crosspoints are depicted explicitly to have better visibility. In this crossbar, memristance of any memristor can simply be changed by applying suitable voltages to those wires that memristor is fabricated between them. For example, consider the memristor located at coordinate (1, 1) (crossing point of the first horizontal and the first vertical wires) of the crossbar. Memristance of this memristor can be decreased by applying a positive voltage to the first vertical wire while grounding the first horizontal one (or connecting to negative voltage). Dropping a positive voltage across the memristor will cause the current to pass through it and consequently, the memristance of this passive element will be decreased. In a similar way, memristance of this memristor can be increased by reversing the polarity of applied voltage. As stated before, application of higher voltages for longer period of time will change the memristance of the memristor more. This means that the memristance of any memristor in the crossbar can be adjusted to any predetermined value by the application of suitable voltages to the specific row and column of the crossbar. However, here it should be emphasized that in this paper, there will be no need to adjust the memristance of the memristors accurately and only increasing or decreasing the memristance of the memristor will be sufficient.
To summarize, memristor crossbar is a 2dimensional grid that analog values can be stored in its crosspoints through the memristance of the memristors. Consequently, it seems that the memristor crossbar is a perfect structure to construct and store 2dimensional patterns like fuzzy relations. In this case, vertical and horizontal wires of the crossbar will represent different discrete values of input and output variables respectively and memristors in crosspoints will have the role of entries of 2dimensional matrixes representing fuzzy relations.
Against these mentioned advantages, memristor crossbar structure has some drawbacks. First of all, reading the memristance of the memristors at any point of the crossbar is partly difficult. But the second and the most important disadvantage of memristor crossbar structure relates to the inherent physical limitation of memristor. As stated before, memristance of the memristor can be between and . Therefore, it seems that storing analog values through the memristance of the memristors needs a linear mapping from input space to interval . In the next section, we show how these problems can be solved by slightly modifying the structure of Fig. 5 and how this structure can be used to construct and store fuzzy relations.
IiiB Using memristor crossbar to do fuzzy inference
Figure 6 shows the memristor crossbarbased analog circuit that we have proposed to construct fuzzy inference system introduced in previous section. As can be seen later, this structure has biological support and can be considered as a singlelayer fuzzy neural network which conforms with the Hebbian learning rule but with very new interesting properties compared to today’s conventional neural networks.
Figure 6 consists of a simple crossbar that each of its rows is connected to the negative input terminal of a simple opamp. Through these opampbased circuits added to rows of the crossbar we will be able to read the pattern stored in the crosspoints of the crossbar. Since these opamps have a fixed resistor with resistance (maximum memristance value of the memristors used in the crossbar) as a feedback, combination of each of these opamps and those memristors which are connected directly to the same horizontal wire that opamp is connected to it creates a simple opampbased summing circuit. Note that in the uppermost row of the crossbar, instead of memristor, a resistor with resistance is fabricated in each crosspoint. Since this row of the crossbar is connected to an opamp with a feedback resistor , it again forms a simple inverting summing circuit that adds inputs of the crossbar with the same gain i.e. 1. Therefore, at any time output of this summing circuit, i.e. , can be written as:
(15) 
where is the input signal (represented by voltage) connected to the jth vertical wire of the crossbar and is the number of columns of the crossbar. Note that the hat sign in Eq. 15 is used to distinguish inputs and outputs of the structure from those concepts which are assigned to rows and columns of the circuit. The reason of using this summing circuit will become clear in the rest of this section. Now, by applying standard opamp circuit analysis techniques, output voltage of the opamp connected to the ith row of the crossbar can be expressed as:
(16) 
where is the current memristance of the memristor at coordinate of memristor crossbar and is the number of rows of the crossbar. Note that to write this equation, memristor is treated like a simple resistor. This is true only when the memristance of the memristor be almost constant during the calculation of output voltages. This can be guaranteed by applying input voltages (for ) to columns of the crossbar for very short period of time during the execution phase. Another condition that this structure should satisfy is that the memristance of all memristors in the crosspoints of the crossbar should initially be equal to . In fact, in all of our proposed structures in this paper, storing any value at coordinate of the crossbar is done by decreasing the initial memristance of the memristor located at this coordinate by the given value. In other words, current stored value at coordinate denoted by can be written as:
(17) 
By this trick, there will be no need to use linear mapping as mentioned in previous section. By substituting 17 and 15 into 16 we will get:
(18) 
Now, by assuming that the stored value in every crosspoint is always much smaller than , i.e. , which can be satisfied by scaling data before storing, Eq. 18 can be simplified to:
(19)  
or equivalently can be expressed in matrix form as:
(20) 
where , , , and . It is evident that although we will use this structure for performing fuzzy operations, any matrix multiplication in the form of Eq. 20 can be done by this structure.
By comparing Eqs. 20 and 9 (or equivalently by comparing structures of Fig. 6 and Fig. 1) it becomes clear that if somehow we can store fuzzy relation in the crosspoints of the crossbar (as matrix ) our proposed structure will be a perfect analog circuit to perform our proposed inference method (note that in Eq. 9, was a column vector while in Eq. 20 is a row vector). For this purpose, it is sufficient to consider that the ith column and the jth row of the crossbar represent concepts and respectively similar to inputs and outputs of the system shown in Fig. 1 and then connect the membership grades of newly observed input fuzzy number to the inputs of this structure. In this case, the membership grades of the corresponding output fuzzy number will emerge at outputs of the structure instantaneously. As another example, consider the case in which the row vector with only one nonzero element at position is being applied as an input to the structure where fuzzy relation is programmed in its crosspoints. In this case, the output of the structure will be where is the kth column of matrix and is the value of the kth entry of vector . Note that this example is equivalent to the inferential process depicted in Fig. 3. As stated in that section, multiplication of output fuzzy number ( which is the intersection of stored 2dimensional fuzzy relation () with the plane ) with a constant, i.e. , will not degrade the generated output fuzzy number significantly or it can be easily compensated by using some auxiliary circuits.
As stated before, domain and resolution of input and output variables can be increased by adding more horizontal and vertical wires to the structure. Simplicity of the circuit and computing in realtime are some of the advantages of our proposed hardware.
To summarize, proposed hardware of Fig. 6 can do vector to matrix multiplication and therefore can do any of the inferential processes previously described in Sec. IIC. The only question that we should answer is how to program the memristors in the crossbar or how to create and store fuzzy relation in this memristor crossbarbased structure. This will be addressed in the next subsection.
IiiC creating and storing fuzzy relations on the proposed memristor crossbarbased structure
In this subsection, we will consider two cases to construct a fuzzy relation on the proposed structure of Fig. 6: (i) input and output fuzzy sets are available and (ii) instead of input and output fuzzy sets some inputoutput training data are in hand.
IiiC1 creating binary fuzzy relation based on given input and output fuzzy sets
In the first case, assume that we have input fuzzy set and output fuzzy set with membership functions and respectively and we want to construct a fuzzy relation between these two fuzzy sets based on fuzzy implication of Eq. 4. To create a fuzzy relation from and in the memristor crossbar structure of Fig. 6, it is sufficient to interpret membership degrees in each fuzzy set as a voltage and apply them to their corresponding rows and columns of the memristor crossbar for second(s). To be exact, each element of should be connected to its corresponding column in the crossbar and the negative of each element of should be connected to its corresponding row in the crossbar (remember that as depicted in Fig. 1, each input and output terminal of the structure corresponds to exclusive value or concept of input and output fuzzy variables respectively). For example, if sets and be defined as:
(21)  
(22) 
then to create a fuzzy relation which is connecting these input and output fuzzy sets on this structure, these following tasks should be done:

interpret membership grades as a voltage signal and connect to the vertical wire of the crossbar representing concept , to the vertical wire of the crossbar representing concept and so on.

at the same time, connect to the horizontal wire of the crossbar representing concept , to the horizontal wire of the crossbar representing concept and so on.

only wait for second(s) and then remove applied voltages from the crossbar.
This process is depicted in Fig. 7 for two typical fuzzy sets. Simultaneous application of positive and negative voltages to rows and columns of the crossbar respectively will cause the current to pass through the memristors in crosspoints. Amount of current passing through the memristor located at the intersection point of jth column and ith row of the crossbar corresponding to concepts and respectively (or equivalently through the memristor at coordinate of the crossbar) is directly proportional to the dropped voltage over this passive element or equivalently to . As this term increases, memristance of the memristor at coordinate will decrease more during this second(s). Assuming the HP model for the memristors of the crossbar, memristance of this memristor after this second(s) can be written as [27]:
(23) 
where is a constant defined as:
(24) 
Note that to obtain Eq. 23, initial memristance of the memristors, , as expected is assumed to be . Using Eq. 23 and Eq. 17, amount of change of during this second(s) which is equal to the stored value at coordinate of the crossbar will become:
(25)  
Comparing Eqs. 25 and 4 shows that the implication function considered in Eq. 4 for this specific memristor crossbar structure is:
(26) 
Figure 8 shows a plot of function for different values of which shows that as expected it is a monolithically increasing function. For plotting this figure, values of other parameters are set as following: , m, and . Although here we tried to obtain mathematical expression for the implication method of our proposed hardware, it is clear that while working with this structure, there is no need to be involved with these exact mathematics. The only thing that we should do is to connect voltages to rows and columns of the crossbar and wait for second(s) and then fuzzy relation will automatically be created and stored on the crossbar. Finally note that to satisfy the mentioned condition for properly working of the memristor crossbar structure, i.e. , it is necessary to choose a small value for (for example, in the above test, will be a good choice).
IiiC2 creating 2dimensional fuzzy relation based on available training data
It is well known that one of the major applications of memristor is in the construction of nonvolatile memories. This is because of the fact that memristance of the memristor will remain fixed theoretically for an infinite period of time when there is no applied voltage or current. This can be seen in Eq. IIIA by setting to zero. This means that the created fuzzy relation on the crossbar will remain unchanged without refreshing (which is required for most of currently available capacitorbased memories). This property of memristor says that final memristance of the memristor after the application of specific voltage (or current) will act as a initial memristance of the memristor during the application of next voltage (or current). This means that effects of these sequentially applied voltages on the memristance of the memristor will be added to each other. By this explanation, it would be logical to think that one simple way for the construction of fuzzy relation on the proposed hardware based on available inputoutput fuzzy training data can be the repetition of the process described in previous subsection for each of these training data. To illustrate this process a bit more, consider that inputoutput fuzzy training data like for are available and we want to construct a pattern on our memristor crossbar circuit corresponding to the fuzzy relation between input and output fuzzy variables based on these training data. For this purpose, it is sufficient to behave as follows:
For repeat these steps:

connect membership grades of fuzzy number and the negative of membership grades of fuzzy number to their corresponding columns and rows of the crossbar respectively.

wait for .
presentation of each of these training data will decrease the memristance of the memristors in some areas of the crossbar. Therefore, the effect of observing any new training data will be added to the currently stored pattern in the crossbar. In other words, entrance of any new training data simply updates the stored pattern. Hence, by presenting more training data to the structure, gradually a pattern (fuzzy relation) will begin to form on the crossbar.
Here, three important aspects of this described procedure should be emphasized. First, should be decreased by the increase of to satisfy the condition . Second, since a crisp number is a special case of fuzzy number, it is evident that the described procedure will be also applicable to crisp training data. Creating fuzzy relation based on crisp data is possible either by using large number of training data to form a pattern or by converting crisp training data to their corresponding fuzzy numbers before applying them to the structure (for example by using gaussian membership function). The third and the most important note pertains to how to create voltages corresponding to membership grades of input and output fuzzy numbers and how to apply(remove) them to(from) inputs and outputs of the structure. As will be demonstrated in the section of simulation results as well, there is no need to have any other auxiliary circuit to perform these tasks. This is because of the fact that our proposed circuit has this capability that it can be directly connected to other similar circuits. In this case, output of one circuit will be the input of the next structure and by this way, signals will propagate easily in the entire system. At the same time, based on the current values of input and output of each of these proposed memristor crossbarbased circuits in the whole system, stored pattern in their crossbar will automatically be updated.
Iv why our proposed structure is a neurofuzzy system
The neuromorphic paradigm is attractive for nanoscale computation because of its massive parallelism, potential scalability, and inherent defect and faulttolerance [28, 29]. In biological systems, the synaptic weights between neurons can be precisely adjusted by the ionic flow through them and it is widely believed that the adaptation of synaptic weights enables biological systems to learn and function. However, before the first physical realization of memristor, experimental construction of these neuromorphic systems which consist of neurons and synapses, especially in the electronic domain, has remained somewhat difficult. The primary problem was the lack of a small and efficient circuit that can emulate essential properties of synapses namely: having low power consumption, ability to be fabricated in high density (human brain has about synapses) and plasticity.
After the first experimental realization of memristor [4], it became widely accepted that memristor is a good candidate to emulate synapse. This is because of the fact that memristors can be fabricated in high density through the crossbar technology. In addition, similar to biological synapse, the conductance of the memristor can be changed by passing current from it or applying voltage to it [28, 30]. Based of these evidences, several authors have tried to use memristor as a synapse and showed that this passive element can facilitate hardware implementation of artificial neural networks and their corresponding learning rules such as Spike Time Dependent Plasticity (STDP) [31, 32, 33]. Figure 9 shows the memristor crossbarbased structure that has been proposed in almost all of these works. In this figure, each fabricated memristor at each crosspoint represents one synapse which connects one presynaptic to one postsynaptic neuron. In this case, every neuron (shown by a triangle) in the input layer is directly connected to every neuron in output layer with unique synaptic weights. If in Fig. 9, we denote output voltages of presynaptic neurons by a row vector , output voltages at postsynaptic neurons by a column vector and weights of synapses by matrix , the structure of Fig. 9 implements the following mathematical operation:
(27) 
where to obtain this equation, we have assumed identity activation function for neurons. Note that Eq. 27 is a very familiar equation we have in conventional neural networks like the typical one depicted in Fig. 9 [34]. Therefore, Fig. 9 does not present anything new but only shows how memristor crossbar can be used as an electrical representation of synapses weights. Learning can be accomplished in this structure based on learning methods mostly inspired from Hebbian learning rule (or equivalently STDP in spiky neural networks) which in its simplest form says: neurons that fire together, wire together [35]. This means that when one input and one output neuron fire simultaneously, the weight of that synapse which is connecting these neurons should be increased (strengthened). For this purpose, in Fig. 9 memristance of the memristor connecting these neurons should be modified (actually it should be decreased). However, unfortunately it is well known that Hebbian learning rule (although is very simple) is not enough to train neural networks and other complex methods like backpropagation learning algorithm are needed [34]. Moreover, hardware implementation of currently in use learning methods like STDP on this structure is difficult and needs some auxiliary circuits [36]. In addition, in these kinds of learning rules synaptic weights may be either increased or decreased. These mentioned drawbacks have caused the efficient hardware implementation of neural networks very difficult.
Now, compare the structure of Fig. 9 and Eq. 27 with Fig. 6 and Eq. 20 respectively. In addition to their structural similarities, both of these structures perform the same task (vector to matrix multiplication) during the execution phase. However, in learning phase, we can see some differences. In the structure representing hardware implementation of artificial neural networks such as the one depicted in Fig. 9, learning is usually carried out based on methods like back propagation or STDP. On the other hand, learning in our proposed method is based on the creation of fuzzy relation between input and output variables or concepts. However, here we will show that learning based on the creation of fuzzy relation is the same as fuzzy learning in artificial neural networks but. To illustrate this theorem better, consider the creation of fuzzy relation on the circuit of Fig. 1 based on available fuzzy training data described in Section IIIC2. In this process, simultaneous application of input and output fuzzy numbers to inputs and outputs of the structure is equivalent with the simultaneous firing of input and output neurons and the value of applied membership grades to each of input or output terminals actually determines the firing strength of each neuron. By this statement we mean that each simultaneous firing of input and output neurons generates one fuzzy inputoutput training data. Therefore, in our belief, all of neurons are active at the same time during learning phase but with different confidence degrees where output of each neuron determines the confidence degree of its activation. In fact, when we connect to the column of the crossbar representing concept it means that the neuron in input layer which represents concept is firing with the confidence degree of . By interpreting applied membership grades as a firing strength of neurons, the concept of ink drop spread introduced in Section IIB to create fuzzy relation on the crossbar (see Fig. 2) becomes equal to primary Hebbian learning rule in neural networks. For example, Fig. 2 from another point of view says that weights of those connections which are connecting simultaneously firing input and output neurons should be strengthened. However, the amount of increase of the weight of each connection should be proportional to the firing strength of those input and output neurons. When confidence degrees of firing of both input and output neurons are high, the weight of the connection connecting these input and output neurons should be increased more (see Eq. 4 or Eq. 7). Note that if we have crisp inputoutput training data instead of fuzzy one, ink drop spread method in Fig. 2 will become completely the same as Hebbian learning rule in conventional neural networks. Therefore, it seems that our proposed fuzzy inference system implements the same function as neural networks and also learns in a similar way. In this case, a simple question may arise: what is the benefit of our proposed structure and inference method compared to conventional neural networks?. To answer this question, the reader should note that in reality, by these explanations we tried to show that neural networks and fuzzy are not two disjoint fields. In fact, we strongly believe that the reason which causes Hebbian learning not to be able to learn neural networks properly is the misinterpretation of the nature of input and output signals in neural networks.
Let’s look at neural networks from another point of view for a short time. Suppose that each neuron represents one and only one concept like where can be a numerical or linguistic variable. Note that in this situation, spatial location of each neuron in the entire system determines its corresponding concept. In addition, assume that output (firing strength) of each neuron in the network specifies the confidence degree of the activation of that neuron or its corresponding concept. In this case, combination of those neurons (or concepts) lied in one layer and their corresponding confidence degrees (outputs) simply creates a fuzzy number. Now, application of primary Hebbian learning method to this described neural network with this kind of input and output signals will result in a creation of fuzzy relation on the matrix representing connection weights. Note that changing the functionality of neural networks to work with confidence or membership degrees is not in contrast with biological findings but in return it offers some interesting properties. First of all, as we will illustrate in the section of simulation result, in spite of conventional neural networks a simple primary Hebbian learning method (or equivalently creating fuzzy relation) is completely enough to learn these kinds of networks. Consequently, as we showed in this paper their hardware implementation becomes more simple than other learning methods in artificial neural networks such as STDP or backpropagation. Second, since in Hebbian learning the connection weights are only strengthened, they will always be nonnegative. Note that we have the same case in our proposed fuzzy inference system since the created fuzzy relation on the crossbar is always nonnegative. It is clear that working with nonnegative weights is much simpler than working with weights which can have both positive and negative values. Third, if after the training of the conventional neural networks, we plot the matrix which is holding connection weights as a surface it will have no meaningful shape and no information can be obtained from it. However, corresponding surface in a neural network which works with confidence or membership degrees is a fuzzy relation where its shape describes the overall behavior of input and output variables versus each other. Remember that human brain remembers most concepts and relations through the images (surfaces). Fourth, in the field of artificial neural networks and based on biological findings, it is common to put a threshold on the outputs of neurons. However, putting threshold on confidence or membership degrees (output of our proposed structure) seems to be more logical than putting threshold on meaningless output values in conventional neural networks. Finally, it is interesting to note that that in Sec. IIIC2 we told that by increasing the number of training data, should approach zero. In this case, signals that propagate in the network will become similar to spike and therefore we would have spiking neural networks.
To summarize, in this section we tried to show that it is possible to look at the working procedure of neural networks from another aspect. If we accept that biological neurons transmit information in the form of confidence degrees, then the computational task which is done in conventional neural network will become equal to our proposed fuzzy inference method with extra advantages.
V simulation results
In this section, we want to verify the efficiency of our proposed hardware and fuzzy inference method by conducting several simulations. In the first simulation, we show how mathematical functions can be constructed in an unprecise manner and how function composition can be done in our proposed structure. For this purpose, consider the creation of two fuzzy relations representing two different functions and on two distinct samples of the circuit shown in Fig. 6. To construct each of these functions on the circuit of Fig. 6 near 500 inputoutput fuzzy training data are used. These training data are created artificially by firstly generating 500 crisp inputoutput training data uniformly distributed on input domain and then converting them to their corresponding fuzzy numbers by using gaussian membership function. Although in this paper we have used gaussian membership function for the fuzzification of crisp training data, repeating this test showed that any other membership function can also be used without degrading output results significantly. Figures 10 and 10 show the constructed fuzzy relations on the memristor crossbar of the circuit of Fig. 6 based on these training data by following the procedure described in Section IIIC2. Note that these figures indicate final stored values (or created fuzzy relations) on the crossbars, i.e. matrix , after the accomplishment of training process where they are plotted as a continues surface to have better visibility. In this test, it is assumed that input variable of both functions and , i.e. , is bounded between 0 and 1 and memristor crossbar of the circuit of Fig. 6 has 100 rows and 100 columns (100 vertical and 100 horizontal wires). Other parameters are set as follows: , m, , and . These crossbars are simulated in HSPICE software by utilizing the SPICE model proposed in [37] for memristors. Figure 10 and 10 demonstrate that application of Hebbian learning to our proposed structure which we showed that it is equal to the creation of fuzzy relation creates a meaningful surface on the memristor crossbar since it is easy to recognize shapes of functions and in these figures. Therefore, it is clear that in our structure, relations between input and output variables are stored in the system based on their shapes and not through their exact mathematical formulas.
Now, let’s see how these two programmed circuits where each of them is a representative of one function can be combined with each other to create new functions. Without loss of generality, consider the creation of function . To build this function, it is only sufficient to directly connect outputs of the circuit on which function is constructed to their corresponding inputs in the circuit which represents function . This process is depicted schematically in Fig. 11. Note that since the resolution of output variable in function may not be the same as the resolution of input variable in function , in Fig. 11 output terminals of the first circuit is not connected sequentially to input terminals of the second circuit. Connecting two circuits representing functions and with fuzzy relations of Figs. 10 and 10 respectively in this way will create a new function . Since is a identity function its input and output should always be the same. Figure 11 shows the result of testing this circuit which is obtained by applying randomly generated crisp number to the input of the system and then plotting the result of the defuzzification of the output fuzzy number versus original input. This figure shows that the newly constructed function by merging two functions and is a good approximation of function . From the results of this simulation, it can be concluded that by sequentially connecting several circuits of Fig. 6 where each of them represents different but simple function, any complex function can be reproduced. Here it is worth to mention that since in combinational circuits like the one shown in Fig. 11 output of one circuit directly connects to inputs of other circuit, input signals of one circuit will come from previous circuits. Actually, these are fuzzy numbers that propagate in the structure from one block to others and therefore no defuzzification process will be required in the entire system. Moreover, In this case there will be no need to any other auxiliary circuits to generate these signals since they are coming from other blocks.
Functions with more than one input variable play an important roles in the construction of complex systems and inference methods. Note that functions like , , and belong to this category. Until now, we have deal only with 1input functions in the form of and our proposed structure in Fig. 6 seems to be able to implement only these kinds of functions (because each binary fuzzy relation has one input and one output variable). In this part, we want to show how efficiently our proposed method and circuit can model multiinput functions. To use the structure of Fig. 6 for modeling multiinput functions, there is no need to apply any changes to it. This is because of the fact that actually this structure in its current form is inherently implementing multiinput functions. To demonstrate this concept, note that if we assume that the concepts which are assigned to different input terminals of the circuit of Fig. 6 (its vertical wires) be completely independent from each other, then each of these inputs can be considered as a distinct input variable. For example, assume that we want to implement a 2input function on the structure of Fig. 6. For this purpose, we can split the vertical wires of this circuit into two sections; wires in one section represent different values of one input variable and wires in other section represent different values of other input variable. This process is depicted in Fig. 12 for better illustration. Note that by adding more vertical wire to the structure of Fig. 6, resolution and domain of each of these input variables can be simply increased. It is obvious that generalization of this method for the implementation of multiinput functions with any number of input variables is straightforward. Since we have not changed the circuit of Fig. 6, learning of this circuit (creation of fuzzy relation) can be done the same as before. For this purpose, it is sufficient to apply fuzzy numbers of independent input variables to their corresponding columns of the crossbar and the fuzzy number of output variable to rows of the crossbar for second(s). Repeating this process for other fuzzy inputoutput training data will cause the fuzzy relation to be formed on the memristor crossbar of the circuit. However, in spite of previous tests, when implementing multiinput functions in this way instead of single fuzzy relation, several fuzzy relations will be formed on the crossbar. Actually, in this case one fuzzy relation per each input variable will be created on the crossbar as shown in Fig. 12 as well. Each of these fuzzy relations specifies the overall behavior of output variable versus one of input variables. In this situation, structure’s output fuzzy number for one given input sample will be computed from several intermediate output fuzzy numbers where each of them is obtained through one of these fuzzy relations based on the same method described in Section IIC. To be precise, in fact as shown in Fig. 3 as well, these fuzzy numbers are summed to each other to generate final output fuzzy number corresponding to given input. To illustrate this procedure better, we do several simulations. In the first simulation, ability of our proposed structure in modeling 2input functions is investigated. The following nonlinear function is considered for this purpose:
(28) 
where its graph is shown in Fig. 13. This modeling test is conducted on the structure similar to the circuit depicted in Fig. 12 with 180 vertical wires (90 wires for each of input variables) and 100 horizontal wires (for output variable). Since input variables are bounded between 1 and 10 and there are 90 wires to cover this interval, minimum achievable resolution for input variables by assuming that these wires are spread uniformly over this interval will be:
(29)  
In a similar way, minimum achievable resolution for output variable can be computed which becomes equal to . To create fuzzy relations on the structure of Fig. 12, 800 fuzzy inputoutput training data are used. Since no fuzzy inputoutput data are available, we have to create them artificially. For this purpose, at first 800 crisp inputoutput training data which are uniformly distributed over input space are generated and then they are converted to their corresponding fuzzy inputoutput training data by using gaussian membership function. Application of these training data to rows and columns of the crossbar of Fig. 12 will cause fuzzy relations to be created on the crossbar. Figures 14 and 14 show these formed fuzzy relations on the crossbar separately after this training process. Now, similar to what is done in previous simulation, i.e. by application of randomly generated crisp data and defuzzification of produced output fuzzy number, the model of function defined in Eq. 28 can be reconstructed. The result of this modeling test is presented in Fig. 13. The Mean Square Error (MSE) between the target function and constructed model is 0.021. This simulation clearly demonstrates the efficiency of our proposed inference method in modeling multiinput functions.
Nowadays, nanoscale devices and molecular electronics promise to overcome the fundamental physical limitation of lithographybased silicon VLSI technology [38]. Furthermore, it has been demonstrated that nano devices such as nanoscale crossbars can be fabricated efficiently by using bottomup selfassembly techniques without relying on lithography to define the smallest feature size [38, 39]. However, nondeterminism in bottomup selfassembly chemical processes at molecular scale results in more defects compared to highly controlled lithographybased manufacturing processes currently used in CMOS technologies [39]. Therefore, defect tolerance is necessary for circuits which are realized through the usage of nanoscale devices [40, 41]. In the next simulation, we will illustrate the excellent fault tolerance capability of our proposed hardware.
Figure 13 shows the result of modeling test obtained by repeating the above simulation but this time with the hardware which has some defects. In this test, we have assumed that approximately half of the memristors in the memristor crossbar of the circuit of Fig. 12 is not working. This means that these randomly chosen memristors have the memristance and their memristance cannot be changed during the training process. In other words, we have assumed that these faulty memristors behave completely the same as a simple resistor with the resistance of and nothing can be stored at these points. The training set and the value of other parameters in this simulation are the same as the previous test. The Mean Square Error (MSE) between the target function and constructed model is 0.0281. Figure 13 indicates that although 50 percent of all of the memristors in the crossbar are working incorrectly, our proposed hardware still can model functions with acceptable accuracy.
Vi conclusion
In this paper we proposed a new fuzzy inference system and a simple method to create fuzzy relation based on input and output fuzzy sets. In addition our proposed scheme has this benefit that fuzzy relation can be formed in it based on fuzzy training data and therefore offering learning capability. Since one of the main problems of fuzzy systems relates to their efficient hardware implementation, we have also designed simple memristor crossbarbased circuit as a hardware implementation of our proposed inference method. Simulation results show that this structure can effectively be used to construct multiinput functions. Moreover, we illustrated that samples of this memristor crossbarbased analog circuit can be sequentially connected to each other to create a cellular structure on which complex functions can be constructed. Finally, according to the similarities between our proposed fuzzy inference method and recently suggested memristor crossbarbased circuits for constructing artificial neural networks, we showed that if input and output signals of neural networks be of a kind of confidence degree, then the computational task which is done in conventional neural network will become equal to our proposed fuzzy inference method with extra advantages.
References
 [1] J.S.R. Jang, “AdaptiveNetworkbased Fuzzy Inference Systems,” IEEE Transactions on Systems, Man ans Cybernetics, Vol. 23, pp. 665–685, 1993.
 [2] N. N. TschicholdGurman, “The Neural Network Model RuleNet and its Application to Mobile Robot Navigation,” Fuzzy Sets and Systems, Vol. 85, pp. 287–303, 1997.
 [3] H. R. Berenji, and P. Khedkar, “Learning and Tuning Fuzzy Logic Controllers through Reinforcements,” IEEE Transactions on Neural Networks, Vol. 3, pp. 724–740, 1992.
 [4] D.B. Strukov, G.S. Snider, D.R. Stewart and R.S. Williams, “The missing memristor found,” Nature, vol. 453, pp. 80–83, 1 May 2008.
 [5] M. Versace, and B. Chandler, “The Brain of a New Machine,” IEEE Spectrum, vol. 47, No. 12, pp. 30–37, 2010.
 [6] L. Rutkowski, “Flexible NeuroFuzzy Systems: Structures, Learning and Performance Evaluation,” Kluwer Academic Publishers, 2004.
 [7] L. A. Zadeh, “The concept of a linguistic variable and its application to approximate reasoning,” Information Sciences, Vol. 8, No. 3, pp. 199–249, 1975.
 [8] J. C. Fodor, “On fuzzy implication operators,” Fuzzy sets and systems, Vol. 24, pp. 293–300, 1991.
 [9] D. Dubois, J. Lang, and H. Prade, “Fuzzy sets in approximate reasoning,” Fuzzy sets and systems, Vol. 40, No. 1, pp. 143–244, 5 March 1991.
 [10] S.B. Shouraki, “A Novel Fuzzy Approach to Modeling and Control and its Hardware Implementation Based on Brain Functionality and Specifications,” Ph.D. dissertation, The Univ. of ElectroCommunications, Chofu, Japan, March 2000.
 [11] M. Murakami and N. Honda, “A study on the modeling ability of the IDS method: A soft computing technique using patternbased information processing,” International Journal of Approximate Reasoning, vol. 45, pp. 470–487, 2007.
 [12] E. H. Mamdani, and S. Assilian, “An Experiment in Linguistic Synthesis with a Fuzzy Logic Controller,” International Journal of HumanComputer Studies, vol. 51, No. 2, pp. 135–147, 1999.
 [13] T. Takagi, and M. Sugeno, “Fuzzy Identification of Systems and its Application to Modeling and Control,” IEEE Transaction on Systems, Man and Cybernetics, vol. 15, pp. 116–132, 1985.
 [14] L.O. Chua, “Memristor  the missing circuit element,” IEEE Trans. on Circuit Theory, vol. CT18, no. 5, pp. 507–519, 1971.
 [15] R. Waser, and M. Aono, “Nanoionicsbased resitive switching memories,” Nature Materials 6, vol. pp. 833–840, 2007.
 [16] Y.V. Pershin, S.L. Fontaine, and M.D. Ventra, “Memristive model of amoeba’s learning,” Phys. Rev. E, vol. 80, p. 021926, 2009.
 [17] S. Shin, K. Kim, and S.M. Kang, “Memristorbased fine resolution resistance and its applications,” ICCCAS 2009, July 2009.
 [18] Y. V. pershin, and M.D. Ventra, “Practical Approach to Programmable Analog Circuits With Memristors,” IEEE Transactions on Circuits and Systems I: Regular Paper, Vol. 57, No. 8, pp. 1857–1864, Aug. 2010.
 [19] F. Merrikhbayat, and S. B. Shouraki, “Memristorbased circuits for performing basic arithmetic operations,” ProcediaComputer Science Journal, Vol. 3, pp. 128–132, 2011.
 [20] F. Merrikhbayat, and S. B. Shouraki, “Memristor Crossbarbased Hardware Implementation of IDS Method,” Submitted to IEEE Transaction on Fuzzy Systems.
 [21] P. Kuekes, “Material Implication: digital logic with memristors,” Memristor and Memristive Systems Syymposium, 21 November 2008.
 [22] B.L. Mouttet, “Proposal for Memristors in Signal Processing,” NanoNet Conference, Vol. 3, pp. 11–13, Sept. 2008.
 [23] F. MerrikhBayat, and S. B. Shouraki, “Memristor Crossbarbased Hardware Implementation of SignSign LMS Adaptive Filter,” Analog Integrated Circuits and Signal Processing, DOI: 10.1007/s1047001095233.
 [24] J.J. Yang, M.D. Pickett, X. Li, D.A. Ohlberg, D.R. Steward, and R.S. Williams, “Memristive switching mechanism for metal/oxide/metal nanodevices,” Nature Nanotechnology 3, pp. 429433, 2008.
 [25] P. J. Kuekes, D. R. Stewart, and R. S. Williams, “The crossbar latch: Logic value storage, restoration, and inversion in crossbar circuits,” Journal of Applied Physics, Vol. 97, No. 3, 2005.
 [26] N. GergelHackett, B. Hamadani, B. Dunlap, J. Suehle, C. Richter, C. Hacker, and D. Gundlach, “A Flexible SolutionProcessed Memristor,” IEEE ELECTRON DEVICE LETTERS, VOL. 30, NO. 7, pp. 706–708, JULY 2009.
 [27] W. Wang, Q. Yu, C. Xu, and Y. Cui, “Study of Filter Characteristics Based on PWL Model,” International Conference on Communications, Circuits and Systems, pp. 969–973, 2009.
 [28] S. H. Jo, T. Chang, I. Ebong, B. Bhavitavya, P. Mazumder and W. Lu, “Nanoscale Memristor Device as Synapse in Neuromorphic Systems,” Nano Letter, 10, pp. 1297–1301, 2010.
 [29] D. Chabi, and J.O. Klein, “Hight Fault Tolerance in Neural Crossbar,” International Conference on Design and Technology of Integrated Systems in Nanoscale Era, pp. 1–6, 2010.
 [30] K. Cantley, A. Subramaniam, H. Stiegler, R. Chapman and E. Vogel, “Hebbian Learning in Spiking Neural Networks with NanoCrystalline Silicon TFTs and Memristive Synapses,” Accepted in IEEE Transactions on Nanotechnology, 2011.
 [31] A. Afifi, A. Ayatollahi and F. Raissi, “Implementation of Biologically Plausible Spiking Neural Network Models on the Memristor Crossbarbased CMOS/Nano Circuits,” European Conference on Circuit Theory and Design, pp. 563–566, 2009.
 [32] J. A. Carrasco, C. ZamarrenoRamos, T. SerranoGotarredona, and B. LinaresBarranco, “On Neuromorphic Spiking Architectures for Asynchronous STDP Memristive Systems,” IEEE International Symposium on Circuits and Systems, pp. 1659–1662, 2010.
 [33] G. Snider, “SpikeTimingDependent Learning in Memristive Nanodevices,” IEEE/ACM International Symposium on Nanoscale Architectures, pp. 85–92, Anaheim, CA, 2008.
 [34] L. V. Fausett, “Fundamentals of Neural Networks: Architectures, Algorithms and Applications,” Prentice Hall, 1993.
 [35] D. O. Hebb, “The Organization of Behavior; A Neuropsychological Theory,” WileyInterscience,New York, 1949.
 [36] F. Merrikhbayat, and S. B. Shouraki, “Battleneck of using single memristor as a synapse and its solution,” Submitted to Neural Processing Letters, Springer.
 [37] D. Biolek, Z. Biolek and V. Biolkova, “SPICE Modeling of Memristive, Memcapacitative and Meminductive Systems,” European Conference on Circuit Theory and Design (ECCTD2009), pp. 249–252, Antalya, 23–27 Augost 2009.
 [38] M. Butts, A. DeHon, and S. C. Goldstein, “Molecular Eletronics: Devices, Systems and Tools for Gigagate, Gigabit Chips,” Proc. International Conference on ComputerAided Design, pp. 443–440, 2002.
 [39] J. Huang, M. B. Tahoori, and F. Lombardi, “On the defect tolerance of nanoscale twodimensional crossbars,” 19th IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems, pp. 96–104, Oct. 2004.
 [40] C. P. Collier, E. W. Wong, M. Belohradsky, F. M. Raymo, J. F. Stoddart, P. J. Kuekes, R. S. Williams, and J. R. Heath, “Electronically Configurable MolecularBased Logic Gates,” IEEE Trans. on Nanotechnology, Science, vol. 285, pp. 391–394, 1999.
 [41] A. DeHon, “ArrayBased Architecture for FETBased, Nanoscale Electronics,” IEEE Trans. on Nanotechnology, vol. 2, No. 1, pp. 23–32, 2003.