We discuss how understanding the nature of chaotic dynamics allows us to control these systems. A controlled chaotic system can then serve as a versatile pattern generator that can be used for a range of application. Specifically, we will discuss the application of controlled chaos to the design of novel computational paradigms. Thus, we present an illustrative research arc, starting with ideas of control, based on the general understanding of chaos, moving over to applications that influence the course of building better devices.

Developments in nonlinear science exploded after the advent of faster computing machines. We attempt to look at the reverse question, namely, has our understanding of chaotic systems done anything to advance technology? So we focus on recent research initiatives in the potentially important sub discipline of “applied chaos,” driven by experiments verifying and “simulating” theoretical ideas. Specifically, we discuss how a chaotic system can work as a powerful pattern generator, and we go on to show how this feature can be used to design a reconfigurable dynamic computing device. We also indicate the still open challenge of taking such concepts and pushing them all the way to transfer of technology and commercialization, namely, “selling chaos.” In this direction, we discuss our current efforts in developing a VLSI implementation of chaotic computing in a demonstration integrated circuit chip.

## I. INTRODUCTION

The study of nonlinear systems has a long history. However, as well known, the pace of developments accelerated, and the field exploded as a research initiative, after the advent of faster computing machines. It is interesting now to look at this research boom backwards, namely, we can ask the pertinent question “what has chaos given back to technology?” In short, has the field progressed enough to warrant a “payback” to applications.

So we focus on the efforts over the last couple of decades towards the potentially important, and quite open, sub discipline of “applied chaos.” Feeding this endeavor, naturally, are experiments verifying concepts in chaos theory, as well as, loosely speaking, analog simulations of theoretically broad ideas in laboratories. So experimental chaos and applied chaos have progressed riding on developments in one another's domains, with research objectives that can be paraphrased as: “ask not what you can do for chaos, but what chaos can do for you!”

Before any phenomenon can be harvested for applications, one needs to have control over the phenomenon. So preceding applications are methods of control.^{1–5} In fact, control and later synchronization were extremely surprising things in the context of chaotic systems, given their extreme sensitivity to initial conditions. Thus, the engineering literature left the control of strongly nonlinear systems well out of the realm of their methods. Physicists, on the other hand, used the understanding of the underlying dynamics to design control strategies to master chaos. Even more importantly, they used this understanding to manipulate the complex patterns embedded in a chaotic time series to work as versatile and powerful pattern generators.

Given that the control methods now allow the harnessing of the richness of chaos, the next question naturally follows: to what end? A couple of important applications have addressed this, such as dynamics-based computation and synchronization based secure communications, two important applications whose far reaching consequences need not be belabored. Briefly, we indicate an illustrative research thread, which took controlled chaos to computing devices.

## II. CONTROLLING CHAOTIC DYNAMICS TO CYCLIC PATTERNS BY CLIPPING

Many chaos control techniques have been developed over the last couple of decades, such as control of unstable periodic orbits (UPO) and adaptive feedback control schemes. For a good review of a majority of chaos control techniques, one should consult in Ref. 1. Here, we will focus on the clipping control method, as it has recently been shown to have significant promise for applications. This control strategy uses a threshold mechanism to control a chaotic system onto cycles of wide ranging periodicities, and hinges on the idea that thresholding limits the dynamic range of a system. We will first outline the basic principle of the method, and then go on to use it to obtain consistent logic-gate responses from the chaotic system.

A single appropriate variable *x*_{c} is chosen for threshold control in a generic N-dimensional dynamical system, with state variables (*x*_{1}*, x*_{2}*,… x _{N}*). This variable x

_{c}is then monitored and control is triggered whenever its value exceeds a prescribed threshold

*x*

*∗*, namely, whenever

*x*

_{c }>

*x*

*∗*, at which point x

_{c}is re-set to

*x*

*∗*.

^{2,3}So the dynamics continues uncontrolled, unless

*x*

_{c}exceeds the threshold. In this method, a variable is reset from time to time, while no parameters are adjusted.

The principle underlying this method involves limiting the available phase space, and this imposes a periodicity on the temporal evolution. The advantage of chaos here is that chaotic dynamics contains a very large range of temporal patterns. Subsets of these patterns can be selected out, yielding a wide variety of behaviors from a single chaotic element.

Analysis of the threshold control method allows one to find the precise periodic orbit that will emerge for a certain given threshold level.^{2} For instance, in a chaotic logistic map, ƒ(*x*) = 4(1 − *x*), we get fixed points when threshold levels are lower than 0.75, period 2 when threshold levels are between 0.75 and 0.905, period 3 when the threshold is around 0.965, etc. This kind of exact association of a threshold level to a periodic pattern, which has also been verified in circuit realizations,^{6} makes it possible to set up a look-up table, forming the basis of a module that can generate a large set of temporal patterns. Interestingly, even in hyper-chaotic systems, which possess more than one positive Lyapunov exponent, thresholding just a single variable manages to control the chaotic dynamics onto periodic orbits, as has been demonstrated both numerically and via laboratory experiments.^{5,6}

The transient period before control becomes effective is very short, as it is not necessary for the system to be near any specific state for the control to be activated. The moment the monitored variable exceeds the prescribed threshold; it is captured onto a stable periodic orbit. No run-time computation costs are necessitated, and the control is very robust to noise in the system dynamics and in the threshold setting.

So clipping is particularly useful where one aims to design robust elements that have the ability to morph between different behaviors in a flexible manner. Namely, it yields a look-up table that directly gives the threshold level necessary to get a particular temporal pattern. In Sec. III, we will outline one exciting application of this kind of versatile pattern generator.^{7}

## III. COMPUTING WITH CHAOTIC ELEMENTS

Chaos computation all started with a question—“What if chaotic systems were performing calculations and we were all too blind to notice?” The saner question seems to be—Could we manipulate chaotic systems to perform calculations? That simpler question was one that we have investigated over the last few years and that has led to a new type of computing—chaotic computing. Chaotic systems are common in nature and they have been observed, analyzed, controlled, and synchronized. However, it has been very hard to find out why chaotic systems exist. It could be that Nature is lazy and prefers to manipulate simple nonlinear systems to produce complexity. Even the simplest chaotic system produces large numbers of simple and complex patterns that subsequently can be manipulated to produce an almost infinite variety of behaviors. We are lazier still and decided to do most simplistic thing possible with a chaotic system—produce a logic gate. No high concept initially, we just decided to see if we could do it at all.

Now we review how our ideas using different clipped temporal patterns to obtain a dynamic logic gate, which we call a “chaogate.” The objective will be to use a single dynamical element to realize different logic operations. Additionally, we will show how such an element has the ability to switch between fundamental logic functions, thereby yielding a “reconfigurable logic unit.”^{7,8} Such a computing device then has the potential to form dynamic computer architectures that are more flexible than static hardware. Unlike existing scenarios that reconfigure by flexible wiring, we envisage the flexibility arising from the constituent computational modules. So such morphing logic modules can serve as the foundation of a programmable general-purpose computer.

A universal computer can be constructed by combining and cascading the fundamental NOR (or NAND) logic gates, from which we can obtain all other operations like bit-by-bit addition and memory,^{9} as is the case in conventional computer architectures. However, we will show the implementation of *all* the basic logic operations by controlled chaos in a *single* dynamical^{7,8} element. Clearly, such a direct and flexible implementation of all gates has the potential to enhance the efficiency and power of computing devices.

Here is a simple illustrative example of the broad principle: Consider a single one-dimensional chaotic system, whose state is represented by *x*. Different logic operations are given by the different input-to-output associations displayed in the truth tables (Table I). Our aim was to design a method such that the chaotic system will yield the appropriate output for all possible sets of inputs. We give below one representative method to obtain all logic gate operations.

The first thing to consider is the inputs

*I*_{1}and*I*_{2}. Here, the inputs are simply additive, namely,*x**→**x*+*X*_{1 }+*X*_{2}for 2 input logic operations with*X*= 0 when binary input*I*= 0 and*X*=*δ*when*I*= 1.The next step is the chaotic update of the state of the system:

*x**→**f*(*x*), where*f*(*x*) is a suitable nonlinear function.The last step involves threshold control, which also yields the output. Namely, we obtain output

*O*= 0 if*f(x*)*≤**x**∗*(i.e., the updated state is below threshold) and output*O*= 1 if*f*(*x*)*> x**∗*(i.e., the updated state exceeds threshold).

I_{1}
. | I_{2}
. | AND . | NAND . | OR . | NOR . | XOR . | XNOR . |
---|---|---|---|---|---|---|---|

0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |

0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |

1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |

1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |

I_{1}
. | I_{2}
. | AND . | NAND . | OR . | NOR . | XOR . | XNOR . |
---|---|---|---|---|---|---|---|

0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |

0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |

1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |

1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |

In order to obtain the desired input-output response, we need to satisfy the conditions enumerated in Table II for the different gates (with the second and third rows of Table I leading to the second condition in Table II). So given a dynamics *f*(*x*), corresponding to the dynamical system in the specific physical implementation, one must find values of *x**∗* and initial *x* that robustly satisfy all the conditions in Table I simultaneously. When *ƒ*(*x*) is the prototypical logistic map: *f*(*x*) = 4*x*(1 − *x*), representative values of initial state *x* and threshold *x**∗* that satisfy the conditions in Table II, are *x* = 0, *x** = 3/4 for AND, *x* = 1/8, *x** = 11/16 for OR, *x* = 1/4, x* = 3/4 for XOR, and *x* = 1/3, *x** for NOT. Different methods of using nonlinear dynamics, control, and synchronization have emerged since, and these research efforts have further advanced the dynamics based computing concept.^{10–22} The above-mentioned method of implementing logic gates via controlled chaos, including its extensions to continuous time systems, has been verified in proof-of-principle electronic circuit experiments.^{10–12} Demonstration of three of the fundamental gates associated with orbits in a continuous time system is shown in Figure 1.

Operation . | AND . | OR . | XOR . |
---|---|---|---|

Condition 1 | f (x) ≤ x∗ | f (x) ≤ x∗ | f (x) ≤ x∗ |

Condition 2 | f (x + δ) ≤ x∗ | f (x) > x∗ | f (x + δ) > x∗ |

Condition 3 | f (x + 2δ) > x∗ | f (x + 2δ) > x∗ | f (x + 2δ) ≤ x∗ |

Operation . | AND . | OR . | XOR . |
---|---|---|---|

Condition 1 | f (x) ≤ x∗ | f (x) ≤ x∗ | f (x) ≤ x∗ |

Condition 2 | f (x + δ) ≤ x∗ | f (x) > x∗ | f (x + δ) > x∗ |

Condition 3 | f (x + 2δ) > x∗ | f (x + 2δ) > x∗ | f (x + 2δ) ≤ x∗ |

Further, robust cascading of these dynamic logic units allows the construction of basic computation modules such as adders, which is an important step towards implementing bit-by-bit arithmetic operations and computer memory. In contrast to conventional static architectures, these re-configurable chaogates can yield an architecture that can dynamically switch between logic functions without necessitating rewiring of the circuit. Additionally, efficient packing in Chaos Computing Orbits copy analog programmable gate implementations should be possible as all logic gates are obtainable from identical units, leading to efficient design. Further, such architectures should potentially be able to endure damage and faults. So this universal programmable chaos based logic cell may provide the starting point for a new dynamic computing paradigm.

## IV. QUO VADIS

The big challenge is to take such concepts and push them all the way to transfer of technology and commercialization. “Selling chaos” is still an open venture. Along this direction, we are currently developing a VLSI implementations of chaotic computing in a demonstration integrated circuit chips (Figs. 2 and 3).

While the design of the ChaoGates and ChaoGate Arrays in current generations of VLSI chip designs is not optimized for performance (except to reduce the numbers of transistors utilized), it clearly demonstrates that ChaoGates can be constructed and organized into reconfigurable chaotic logic gate arrays capable of morphing between higher order computational building blocks. Current efforts are focused upon optimizing the design of a single ChaoGate to levels where they are comparable or smaller to a single NAND gate in terms of power and size yet are capable of morphing between all gate functions in under a single computer clock cycle. Preliminary designs indicate that this goal is achievable and that all gates currently used to design computers may be replaced with ChaoGates to provide added flexibility and performance.^{23}

In conclusion, through the discussion of a specific research thread, we have attempted to show how the understanding of chaotic dynamics allows us to control chaotic systems, and this controlled chaotic system can then serve as a versatile pattern generator that can be used for an important application. In particular, we have shown the application of controlled chaos to the design of novel computational paradigms. This we believe is an important future direction of this field of research, namely, starting with general ideas of chaos theory and moving over to applications that influence the course of building better computational devices.