Using DNA to Solve NP-Complete Problems (1995) [pdf]
pdfs.semanticscholar.org
pdfs.semanticscholar.org
«If we had a computer based on chemistry working a million times faster, then we could add twenty more variables to the SAT problem (the dual logarithm of a million is roughly 20). This is better, but not much better. If we want to add 100 more variables, we would run into problems. Suppose we need 2^100 water molecules with a molecular weight of around 18, then they would weigh 18·2^100/NA ≈ 38·10^6 grams or around 38 tons (NA being Avogadro’s number). With a few more variables we would need more water than there is available on the earth. This is the limitation of the memory for time tradeoff.»
You need 2^100 water molecules to do what?
DNA has 4 bases, so any strand of 100 pairs can be encoded 4^100 ways. Granted DNA weighs a lot more than water.
I'm having a hard time understanding how a calculation can be encoded and performed. Can anyone provide an example of how this works?
So it's ultimately hopeless without even going into detail how to use water as a computing medium.
However, for SAT there are practical solutions with heuristics back-tracking for many instances. So don't get worked up too much.
And nowadays ASiCs for accelerating deep learning is the best we have for massively parallel computation, I think.
It's more about thinking what we could do if we had gazillions of little things swimming in a solution or sitting on a die that could do computation for us. For me one important result is that it doesn't scale for huge NP complete problems. Add a few hundred more variables to a SAT problem and you don't have enough water in our whole world.
This reminds me of the old story of doubling the amount of rice for each square on a checker board.
Aside from this, imagine taking a "smart" medication that uses biological computation to determine exactly where/when in your body to optimally release the medicine.
An unanswered (although touched upon; unanswered I suspect because it is in the source paper) question in the paper is: why does this not mean P=NP if we only require O(m) test tubes and "mixing" operations on a formula of size m? The answer I suspect (I haven't read Adleman's paper) has to do with the amount of time it takes for the "mixing" operation to work. I would imagine that as the number of clauses increase, the number of DNA strands in the test tube increases, and the time it takes chemically finding your complement would increase exponentially. I'd be interested in the real answer though.
It also gives us insights into one of the other interesting questions of our day: Is simulating a physical system of polynomial size in P, or not in P? If you find that polynomial-size physical systems can solve problems in NP but believe that P≠NP, then you would also believe simulation is not in P.
Also, with respect to your physical system argument, I'm not sure I agree. Any computer that actually exists has some probability of making a computation error. With that in mind, simulating a physical system with a step that involves becoming a physical system is likely not a valid argument from an algorothmic reduction point of view.
1) Start with DNA in a primordial soup
2) Wait ~4 billion years
3) An intelligent lifeform will create an A.I. that can solve it
1) Convert the graph representation to a biological encoding that leverages DNA's complement binding.
2) Shake
3) Read unique newly bound sequences that contain your desired properties (e.g. start at X, end at Y), which will by chemical properties include all possible answers with high probability
The encoding seemed the tricky / novel part.
How is the DNA encoding the computation? I understand base complementing but how exactly does this result in an answer. If it were possible why didn't they do an experiment?
Most alternative techniques I've seen try to use some analog technique to solve a difficult problem. The problem is that scaling the size of the problem requires ever less noise and more accuracy of these techniques and we quickly hit a wall in every case. Memcomputing, for example, can't practically encode more integers than we can test using silicon processors. There's no version of the fault tolerant threshold theorem for analog computers to fix this deficiency.
So really, of all the alternative technologies I've read about, it's only DNA based methods that I'd really be interested in seeing more of.
Why is DNA better than silicon? Is it magic?
EDIT: Seeing as I got a downvote I thought I'd expand on my question. You asked:
> Why is DNA better than silicon?
> Is it magic?
The article says clearly what the advantage is of DNA over silicon - it's at the very top of the second page where it says: > ... biological computations could potentially
> have vastly more parallelism than conventional
> ones.
Secondly, the article isn't "fake" in any sense of the term - it's written and published by an eminent researcher in the field of computational complexity. It's a very clear exposition of the techniques used to solve NP problems with physical systems, including an analysis of why this doesn't really work, and why it's unlikely ever to work.Yes, it's "old", although for some of us it's not that old, and given comparatively recent excitement about using slime-molds to plan "optimal" transportation networks, clearly it's still relevant, and not well enough known.
So my question still stands - you seem to have dismissed this quickly, and I wonder if you've actually read and understood it, or are you simply reacting to the headline/title?
I think it's all the same. There is no magic to biological?
> you seem to have dismissed this quickly, and I wonder if you've actually read and understood it
I think I did read it first time quite well, my problem is it's tiring to re-talk about old articles , but to be honest rereading things that logically don't make sense I don't do, so maybe I'm lazy.
But the thing is that this idea keeps getting re-discovered, with people getting excited all over again. This article is a clear debunking of the hype, and has value in being able to point people at it and say "Look, it's been done, it doesn't work, and here's the explanation. If you've done something really new, then you need to make it clear why it's different from this 20 year old work."
Having said all that, I'm not sure what it is you're claiming doesn't make logical sense.
> However, it does _not_ mean that all instances of NP problems can be solved in a _feasible_ sense.
Basically, this says nothing about the P vs. NP problem (as I'm sure many are thinking of when NP is mentioned). This is more about a non-trivial utilization of the massively parallel properties of DNA computers in order to speed up brute force computation.