This page provides an overview of my current research and
links to descriptions of related projects. Most of them
involve programming and would be suitable for a PILOT or MS thesis.
PhD research projects are, of course, of larger scope and more open ended, but
could address similar issues. If you are interested in these or related
topics, please get
in touch.
If you have your own idea for a project in one of my areas of expertise (artificial intelligence, artificial life, complex adaptive systems, natural computation, nanocomputation, etc.), please get in touch.
Modern computing technology is based on the electronic
implementation of abstract Boolean logic. Although this
technology is very effective and well understood, there are compelling
reasons for investigating alternative computing technologies. For
example, the NSF program in Emerging Models and Technologies for Computation“seeks
to advance the fundamental capabilities of computer and
information sciences and engineering by capitalizing on advances and
insights from areas such as biological systems, quantum phenomena,
nanoscale science and engineering, and other novel computing
concepts.” As this quotation suggests, there are a variety
of natural processes that are potentially useful for computation,
including optical, quantum, spin, molecular (e.g., DNA) processes.
In some cases we can use these technologies to implement Boolean
logic, and thereby leverage our expertise in digital circuit and
computer design. In
other cases, observation of computational processes in nature (e.g., in
the brain, immune system, and social insect colonies) shows now natural
processes can be exploited to implement alternative models of
computation not based on Boolean logic. In many cases new
computing technologies can be exploited better by these alternative
models than by traditional digital logic and computer organization.
From one perspective, the electrical processes within an ordinary computer are determined by the way the logic gates and memory devices are interconnected, and by the electrical states of those devices. From a different perspective, however, the specific electrical processes taking place in the computer are determined by the program running on it. For example, the actual motion of electrons within the computer is controlled by the running program (subject, of course, to the circuits and the laws of physics). This shows us that, under the appropriate circumstances, matter and energy can be moved around under programmatic control; that is, we can program the rearrangement of matter and energy. This is a useful perspective because it allows us to see new ways that computational processes can have physical effects, for example using molecular computation or biocomputation for the assembly of nanostructures or for the control of nanorobots.
In general terms my research focuses on the interaction of computation and natural processes, especially processes that have not been used for computation in the past, but that provide significant advantages over electronic logic. This research involves a number of supporting projects, some of which are suitable for a PILOT or MS thesis and are listed below (divided into two broad categories). Click on the project’s name for more information.
We have much to learn from computation in nature, in particular from adaptive self-organizing systems,
such as the brain, colonies of microorganisms, and social insect
colonies. For example, some ant colonies solve complex
optimization and control problems, such as the allocation of workers to
various tasks (including foraging, waste removal, nest construction,
defense, fungus cultivation), the construction of complex nests, and
large scale organized movement (e.g., army ants). The colony is adaptive in that it promotes the continuing survival of the colony, and it is self-organizing
in that it is neither externally nor centrally controlled (there is no
ant or small group of ants in charge). Similarly, when food is
scarce, slime mold amoebas gather together and organize themselves into
a “slug,” with differentiated parts, which can detect minute
differences of temperature and light, and migrate to a more hospitable
location. The biological processes involved are similar to those
that take place in a developing embryo, in which cells differentiate
and migrate to form the multiple tissues, organs, and other structures
of a complex organism. These are all examples of adaptive self-organization
(ASO), which has applications in massively parallel distributed
computer systems and networks, in distributed robotics, and in
nanotechnology (for the number of components may be too large, and
their size too small, to be assembled in detail from outside). A
further advantage of adaptive self-organizing systems is that they are
robust in the face of error, uncertainty, failure, and damage (because
they are self-organizing), and they respond well to change and
unforeseen circumstances (because they are adaptive). These are
valuable characteristics for many applications.
ASO is an active research area because its principles are only
imperfectly understood. My own research focuses on ASO in the
brain, which is being applied in artificial intelligence and robotics,
and on ASO in the embryo and in colonies of insects and microorganisms,
which can be applied to nanotechnology and distributed robotics.
Whereas in electronic computing, computation involves moving electrons between electronic devices, in molecular computation
it involves the making and breaking of chemical bonds (generally, weak
hydrogen bonds, like those involved in DNA/RNA replication). One
reason molecular computation is interesting is the potential for
enormous parallelism, with degrees of parallelism on the order of
Avogadro’s number (~6×1023).
Another application of molecular computation is in the assembly of
nanostructures, including computational devices (both electronic and
non-electronic). Since these structures are built from enormous
numbers of nanoscale components, traditional manufacturing methods are
often ineffective, inefficient, and unreliable. However, the enormous
parallelism and small size of molecular computation makes it attractive
as one possible means of large scale nano-assembly (some of these
approaches mimicking, in fact, molecular nano-assembly in nature).
Therefore, there are a number of research projects investigating
molecular computation and its applications in nano-assembly. For
example, the Duke University Computer Science Department has an active program in DNA-based molecular computation, and Caltech has a large research effort in algorithmic self-assembly, also based on DNA.
My own research focuses on simulation studies of molecular
computation processes that can be used in nanotechnology and other
applications. Here are some current projects in this area:
Other active research projects, with good opportunities for student participation, that do not fit under the topics above, are listed here: