DNA Solves Million-Answer NP-Complete Problem
cybrpnk writes: "A 'DNA computer' has been used for the first time to find the only correct answer from over a million possible solutions to a computational problem. Leonard Adleman of the University of Southern California in the US and colleagues used different strands of DNA to represent the 20 variables in their problem, which could be the most complex task ever solved without a conventional computer. Details to be published in Science."
now, one needs to ask - "can this same technology be used to break codes/algorithms used within security?" the article is a bit lacking in details of how they achieved this exactly, but, koas theory is in action here.
The article is a bit garbled (exponential time != NP-complete!) so it's a bit hard to work out what problem they were looking at.
I'm guessing 2-SAT; can anyone confirm/deny this?
Tarsnap: Online backups for the truly paranoid
Adleman and co-workers expressed their problem as a string of 24 'clauses', each of which specified a certain combination of 'true' and 'false' for three of the 20 variables.
looks like 3SAT to me.
According to Adleman and co-workers, their demonstration represents a watershed in DNA computation comparable with the first time that electronic computers solved a complex problem in the 1960s. They are optimistic that such 'molecular computing' could ultimately allow scientists to control biological and chemical systems in the way that electronic computers control mechanical and electrical systems now.
Huh? What they did here is use the self-construction property of DNA whereby only the respective nucleotides A, T, C, and G only form a bond with their compliment.
That means you can have millions of solutions and the whole thing will solve itself because only the correct solutions 'fit' into the problem which you have represented in the ATCG language. You can do the same thing when you add more variables, and it's just as easy. That is something very hard to do with electronic computers, because they deal with information on the quantity level whereas DNA is able to solve a problem on the problem "abstraction" level itself.
However, conventional *serial* problems are something very hard to do with DNA, because it involves the manipulation of a single strand whereas you would be working in parallel with millions, even billions of strands for NP complete problems. A DNA strand is infismal compared to today's current Si processes, where we measure things in micrometers. DNA is in the single nanometer range. That's several 100 times smaller than a single wavelength of light.
I don't think DNA will be viable for most standard computational tasks, or for a practial turing machine. Biological systems don't use DNA to do logical operations (that I know of), and the only thing they use it for is for data storage (instructions for building proteins). The only operations (under normal circumstances) an organism does with DNA is copy. Mutations (reversals, transpositions, etc.) occur because of chemical errors. That is the only operation it does really.
This all seems very interesting albeit limited to the lab.
"I'll just chip in a bit for RedHat: I actually have that installed on my university machine." - Linus, '95
I don't think DNA will be viable for most standard computational tasks, or for a practial turing machine. Biological systems don't use DNA to do logical operations (that I know of), and the only thing they use it for is for data storage (instructions for building proteins). The only operations (under normal circumstances) an organism does with DNA is copy. Mutations (reversals, transpositions, etc.) occur because of chemical errors. That is the only operation it does really.
this is not entirely true. nucleic acids are responsible for quite a few things in the cell. yes, DNA is not very reactive, designed to be a stable archival form of genetic material, but RNA (ribonucleic acid) is a different story. derived from DNA, it has a 2' hydroxyl (-OH) group on its sugar (hence the name ribo- instead of deoxyribo- which has a 2' hydryl (-H) group) and is much more reactive, causing cleavage, ligation, and other enzymatic modifications. there are programmed errors and very regular processes in the cells, things like SOS DNA repair, nonhomologous end-joining, and crossing over, that can result in modification. there is so much here to study it can make your head spin! so don't count any of it out =)
Actually, I disagree. Quantum computers are non-deterministic. These DNA computers, while being massively parallel, as you say, are still deterministic. If you can test a million solutions at once in parallel, that's great, but all it does is speed things up by a constant factor over trying them one at a time. It doesn't turn a super-polynomial time algorithm into a polynomial time one, because there's a limit to how many computations you can do in parallel.
On a quantum computer or some other non-deterministic machine, the idea is that you can essentially perform all computations (with no limitation on how many) in parallel.
There is one serious flaw in DNA computing that people are sweeping under the rug, and that's that although the amount of time needed to solve the problem does not increase exponentially, the amount of DNA does. Off the top of my head, I don't know the amount of DNA needed to perform a given calculation, but one of my professors who works on this sort of thing showed us once that a calculation that could be done in a reasonable amount of time on a standard desktop computer would require more DNA than there is on earth. I'm sure there are ways to increase the efficiency of the process, but this is still a fundamental limitation of this type of computing.
These DNA computers, while being massively parallel, as you say, are still deterministic.
Yes. To put it in perspective, though, the average DNA base pair has a molecular weight of 610. So one mole of the substance (ie. 610 g) contains 6.022 x 10 e+23 base pairs.
So, assuming that it takes you 10 days to set up a computation - approximately 10 e+6 seconds, you have 6 * 10 e+17 computational units per second. This assumes the computation time is trivial (which it is, compared to the set up time of 10 days do make all the DNA).
Lets say that again. 600 000 000 000 000 000 computations per second. In a large beaker containing a few litres of solute.
Of course, each unit only holds a quaternery bit of information (ie., one of four states for the four kinds of nucleotide).
At the moment we have computers that can run in the GHz range, ie., 2 * 10 e+9 computations per second.
A DNA computer will be able to operate at at least 8 orders of magnitude faster than any current conventional computer, and potentially at 10 e+12 times faster with increased amounts of DNA and faster setup times.
It may be deterministic, but it will take us another 25+ years to get to this point on the intel roadmap - which of course should derail before then. In other words, this technology is faster than anything that can be or is likely to be done on silicon.
My 2c worth.
Michael
There is no cryptographic solution to the problem where the intended receiver and the attacker are the same entity.