Solving the Hamiltonian Path Problem using viral DNA and bacteria
Available from www.macs.hw.ac.uk
Page 1
Solving the Hamiltonian Path Problem using viral DNA and bacteria
Solving the Hamiltonian Path Problem using
viral DNA and bacteria
Pierluigi Frisco1, Peter Cook2 and Paul A. Hoskisson3
1 School of Mathematical and Computer Sciences,
Heriot-Watt University, Edinburgh, EH14 4AS, U.K.
P.Frisco@macs.hw.ac.uk
2 The Sir William Dunn School of Pathology,
The University of Oxford, South Parks Rd, Oxford OX1 3RE, U.K.
peter.cook@path.ox.ac.uk
3 Strathclyde Institute of Pharmacy and Biomedical Science, Royal College,
University of Strathclyde, Glasgow, G1 1XW, U.K.
paul.hoskisson@strath.ac.uk
Abstract. We describe an algorithm that can be implemented at a
molecular and cell level for solving the Hamiltonian path problem. This
algorithm, using viral DNA and bacteria, improves a previously pub-
lished similar algorithm because:
no false positive can be generated;
once the experiment is set up, no human intervention is needed for its
completion;
the detection of the solution is an elementary operation, independent
from the size of the considered instance.
1 Introduction
A problem is said to be hard if it cannot be solved by a deterministic Turing
machine with a polynomial time algorithm [10, 17]. For many of this kind of
problem the number of possible solutions increases exponentially. In 1994 L.
Adleman [1] described an algorithm implemented at a molecular level for the
solution of the Hamiltonian path problem, a hard problem.
Even if this algorithm does not overcome the exponential increase of possible
solutions, the algorithm described in [1] attracted a lot of interest because of
the novelty of the approach. This approach uses DNA molecules to encode and
manipulate information. There are several advantages in using DNA to solve
problems [2]: the massive parallelism present at a molecular level, the very com-
pact information storage, the energy efficiency of biochemical operations, etc.
Adleman’s seminal paper started a new research field aiming, in between
others, to create molecular devices solving problems. Some examples of such
devices are [5, 8, 9, 14, 18]. A few publications dealt with the possibility of using
living organism to solve problems [16, 3, 4].
The results of the present paper have been inspired by the solution of the
Hamiltonian path problem with Escherichia coli described in [4]. The Hamilto-
nian path problem (HPP) can be formulated as: given a directed graph with two
viral DNA and bacteria
Pierluigi Frisco1, Peter Cook2 and Paul A. Hoskisson3
1 School of Mathematical and Computer Sciences,
Heriot-Watt University, Edinburgh, EH14 4AS, U.K.
P.Frisco@macs.hw.ac.uk
2 The Sir William Dunn School of Pathology,
The University of Oxford, South Parks Rd, Oxford OX1 3RE, U.K.
peter.cook@path.ox.ac.uk
3 Strathclyde Institute of Pharmacy and Biomedical Science, Royal College,
University of Strathclyde, Glasgow, G1 1XW, U.K.
paul.hoskisson@strath.ac.uk
Abstract. We describe an algorithm that can be implemented at a
molecular and cell level for solving the Hamiltonian path problem. This
algorithm, using viral DNA and bacteria, improves a previously pub-
lished similar algorithm because:
no false positive can be generated;
once the experiment is set up, no human intervention is needed for its
completion;
the detection of the solution is an elementary operation, independent
from the size of the considered instance.
1 Introduction
A problem is said to be hard if it cannot be solved by a deterministic Turing
machine with a polynomial time algorithm [10, 17]. For many of this kind of
problem the number of possible solutions increases exponentially. In 1994 L.
Adleman [1] described an algorithm implemented at a molecular level for the
solution of the Hamiltonian path problem, a hard problem.
Even if this algorithm does not overcome the exponential increase of possible
solutions, the algorithm described in [1] attracted a lot of interest because of
the novelty of the approach. This approach uses DNA molecules to encode and
manipulate information. There are several advantages in using DNA to solve
problems [2]: the massive parallelism present at a molecular level, the very com-
pact information storage, the energy efficiency of biochemical operations, etc.
Adleman’s seminal paper started a new research field aiming, in between
others, to create molecular devices solving problems. Some examples of such
devices are [5, 8, 9, 14, 18]. A few publications dealt with the possibility of using
living organism to solve problems [16, 3, 4].
The results of the present paper have been inspired by the solution of the
Hamiltonian path problem with Escherichia coli described in [4]. The Hamilto-
nian path problem (HPP) can be formulated as: given a directed graph with two
Page 2
distinct nodes in and out, is there a path starting from in and ending at out
visiting all the nodes in the graph once?
In [4] it is described how E. coli can be modified using molecular genetics to
explore all the possible paths in a given graph. The bacteria that succeed finding
a Hamiltonian path report their success by fluorescing in yellow.
The algorithm described in the present paper solves instances of the HPP
using viral DNA (bacteriophage) and bacteria. This algorithm can be regarded
as an improved version of the algorithm described in [4] where the improvements
are:
- no false positive can be generated;
- the gene rearrangement is performed by the cells (that is, it does not require
human intervention);
- the detection of the solution is an elementary operation, independent from the
size of the considered instance.
The previous items are further discussed in Section 4.
In the following sections we describe our algorithm, we give one example of
it and we provide the details of a possible implementation.
2 The algorithm
In a nutshell, the algorithm consists in encoding the considered instance of the
HPP in the bacteriophage genome which is then transfected (inserted) in a bac-
teria host. The host’s DNA is modified so it is able to rearrange the viral DNA
in a way that a Hamiltonian path in the given problem is detected by the devel-
opment of the virus.
Here we first describe how an instance of the HPP can be encoded in a viral
DNA and then we describe the algorithm.
Encoding. Similarly as in [4] we use the Salmonella typhimurium Hin/hixC
recombinase systems to allow reordering of transgenes. It has been experimen-
tally proven [12, 13] that DNA fragments flanked by a pair of hixC sites can be
inverted in a single operation by Hin recombinase either as a single DNA frag-
ment or as multiple adjacent fragments. In the following the hixC site is depicted
by a black triangle ( ). Rearrangement by Hin recombinase results in inversion
of DNA sequences flanked by a pair of hixC sites.
An instance of the HPP on a graph with n nodes is encoded into a bacte-
riophage genome, specifically using the g ≥ n genes present in an operon within
the genome of the bacteriophage. For instance, one could consider the operon
for the production of the bacteriophage λ capsid and tail proteins, which are
essential for the release of viable progeny bacteriophage following a lytic cycle
of replication. This operon contains 18 genes, so our algorithm could be imple-
mented to solve an instance of the HPP on a graph with at most 18 nodes. Of
course, in theory, this algorithm works for any number of nodes but, realistically,
visiting all the nodes in the graph once?
In [4] it is described how E. coli can be modified using molecular genetics to
explore all the possible paths in a given graph. The bacteria that succeed finding
a Hamiltonian path report their success by fluorescing in yellow.
The algorithm described in the present paper solves instances of the HPP
using viral DNA (bacteriophage) and bacteria. This algorithm can be regarded
as an improved version of the algorithm described in [4] where the improvements
are:
- no false positive can be generated;
- the gene rearrangement is performed by the cells (that is, it does not require
human intervention);
- the detection of the solution is an elementary operation, independent from the
size of the considered instance.
The previous items are further discussed in Section 4.
In the following sections we describe our algorithm, we give one example of
it and we provide the details of a possible implementation.
2 The algorithm
In a nutshell, the algorithm consists in encoding the considered instance of the
HPP in the bacteriophage genome which is then transfected (inserted) in a bac-
teria host. The host’s DNA is modified so it is able to rearrange the viral DNA
in a way that a Hamiltonian path in the given problem is detected by the devel-
opment of the virus.
Here we first describe how an instance of the HPP can be encoded in a viral
DNA and then we describe the algorithm.
Encoding. Similarly as in [4] we use the Salmonella typhimurium Hin/hixC
recombinase systems to allow reordering of transgenes. It has been experimen-
tally proven [12, 13] that DNA fragments flanked by a pair of hixC sites can be
inverted in a single operation by Hin recombinase either as a single DNA frag-
ment or as multiple adjacent fragments. In the following the hixC site is depicted
by a black triangle ( ). Rearrangement by Hin recombinase results in inversion
of DNA sequences flanked by a pair of hixC sites.
An instance of the HPP on a graph with n nodes is encoded into a bacte-
riophage genome, specifically using the g ≥ n genes present in an operon within
the genome of the bacteriophage. For instance, one could consider the operon
for the production of the bacteriophage λ capsid and tail proteins, which are
essential for the release of viable progeny bacteriophage following a lytic cycle
of replication. This operon contains 18 genes, so our algorithm could be imple-
mented to solve an instance of the HPP on a graph with at most 18 nodes. Of
course, in theory, this algorithm works for any number of nodes but, realistically,
Sign up today - FREE
Mendeley saves you time finding and organizing research. Learn more
- All your research in one place
- Add and import papers easily
- Access it anywhere, anytime
Start using Mendeley in seconds!
Readership Statistics
2 Readers on Mendeley
by Discipline
50% Engineering
by Academic Status
50% Student (Bachelor)
50% Ph.D. Student
by Country
50% United Kingdom
50% Chile


