
RNA Computer 119
TBM writes "Here is an article on the use of RNA to do some computational tasks. It was given the problem of placing knights on a 3x3 board such that no knight could kill another and found 43 correct solutions and one incorrect one out of a possible 512. They say it works in parallel and so trillions of parallel computations are possible... So when can I start using my RNA for RC-5?"
Re:What am I missing? (Score:1)
Re:slight correction (Score:1)
You are correct that you could miss an important sequence. I said that here [slashdot.org] but nobody picked it up. Moderators should browse everything...
This DNA computing is basically enumeration of all solutions in parallel. If I remember correctly, the solution time scales linearly with the number of variables. The resulting problem is, each step can take a long time (hours?). So even though it scales nicely, it takes forever.
I think the article said it solved a problem in a week for a problem with 512 possible answers. That is 2^9, 9 variables. About day/variable, assuming linear scaling.
I think people are working on ways to extend DNA computing so that larger problems can be handled, and steps can be accomplished more quickly. But I have no good refs...
How it works (I think...) (Score:1)
DNA helix- two strands. We can use the 4 base pairs GATC (remember GATTACA the movie...) to make a single strand. There should exist a mate to the single strand, like a photo negative.
You pose the problem by making a strand that only a valid solution can pair with. Then you expose the solution DNA strand to a mixture of random solutions. Only the correct solutions can attach to the single strand solution. Then you examine your mix and figure out what a solution to the problem is.
Becaue you are relying on chemical steps, you sometimes get the wrong answer. You also cannot verify that you really have a random set of potential solutions (the single answer may not actually be in your flask..) And each chemical step takes time to process, and there are multiple steps.
So basically it is brute force, but a fairly good attempt at brute force, much better than using computers we have today. The molecules are moderate size, bigger than atoms but smaller than polymers or cells. basically a protien. Each base pair is made up of a few atoms, I think. The molecules don't move fast like gas molecules cause they are in solution, but they are still move a lot.
Quantum computing seems like a much cooler way to do these problems.
Re:Scaling and physical limits (Score:1)
Well, computer scientists have a particular definition of "hard". CS people measure how hard a problem is by counting the number of steps the best algorithm for the problem takes to process some number of data n.
An practical algorithm runs in n steps. Even n^5 steps isn't all that bad. But there exist problems where the n ends up in the exponent -- like 2^n steps. For large values of n, the time required to solve such problems just isn't reasonable, and while parallel computers can help a bit, for large values of n, the amount of help they can provide is insignificant compared to the number of steps needed. In practice this means that parallel computers can make easy problems solvable faster, but they really aren't a solution to hard problems.
Re:Scaling and physical limits (Score:1)
In C (Score:1)
static int count;
int placeknights(int board, int mask, int start)
{
int i;
printf("%02d: %c%c%c\n %c%c%c\n %c%c%c\n\n", ++count,
  (board & 1) ? '*' : '.', (board & 2) ? '*' : '.',
  (board & 4) ? '*' : '.', (board & 8) ? '*' : '.',
  (board & 16) ? '*' : '.', (board & 32) ? '*' : '.',
  (board & 64) ? '*' : '.', (board & 128) ? '*' : '.',
  (board & 256) ? '*' : '.');
for(i = start; i < 9; i++)
 if(!(mask & (1 << i)))
  placeknights(board | (1 << i), mask | masks[i], i + 1);
}
int main(void)
{
placeknights(0, 0, 0);
}
logan
Not All Solutions (Score:1)
logan
More C (Score:1)
#include <stdio.h>
int main(void)
{
int i, j;
for(i = j = 0; i < 0x200; i++)
if(((!(i & 0x080) && !(i & 0x020)) || !(i & 0x001)) &&
((!(i & 0x040) && !(i & 0x100)) || !(i & 0x002)) &&
((!(i & 0x008) && !(i & 0x080)) || !(i & 0x004)) &&
((!(i & 0x004) && !(i & 0x100)) || !(i & 0x008)) &&
((!(i & 0x001) && !(i & 0x040)) || !(i & 0x020)))
printf("%02d: %c%c%c\n%c%c%c\n %c%c%c\n\n", ++j,
(i & 0x001) ? '*' : '.', (i & 0x002) ? '*' : '.',
(i & 0x004) ? '*' : '.', (i & 0x008) ? '*' : '.',
(i & 0x010) ? '*' : '.', (i & 0x020) ? '*' : '.',
(i & 0x040) ? '*' : '.', (i & 0x080) ? '*' : '.',
(i & 0x100) ? '*' : '.');
}
logan
Re:MOD THE PARENT POST UP! (Score:1)
Time flies like an arrow;
But how well would it compete with Kaspirov? (Score:1)
Time flies like an arrow;
Re:Not All Solutions (Score:1)
------- \
|K|O|O| )
------- /
|O|O|X| > 6 solutions * 4 corners = 24
------- \
|O|X|O| )
------- /
------- \
|O|K|O| )
------- /
|O|O|O| > 6 solutions * 4 sides = 24
------- \
|X|O|X| )
------- /
------- \
|O|O|O| )
------- /
|O|K|O| > 8 solutions = 8
------- \
|O|O|O| )
------- /
And the last time I checked 24 + 24 + 8 = 56
What am I missing?
Time flies like an arrow;
Re:answer provided ?? (Score:1)
I wonder what the speed would be in MIPS?
It's funny.. (Score:1)
Nothing personal, this is meant for everybody.
this isn't that cool. (Score:1)
Because many are commenting about its use in d.net's computing effort, I'll tell you a major flaw in this. Although the RNA and a d.net's client both are trying all possible combinations, d.net can expand its list of possible combinations on the fly.
Example: d.net's RC5 client started without internet access will assemble a list of possible keys(1*2^32 keys) and then test them.
I will think this is really cool when a cell given basic information about a problem(the rules of knights & the size of the board) and then determines what the possible placements are, then decides which ones are valid.
Then, it will be ready for real computing.
Re:This could get really complicated... (Score:1)
Then there's the question of scalability - what would be the volumes and masses of reactants that you would need to solve particular problems? The great promise of the approaches being tried by Adleman et al is that they offer massive parallelism, but exactly because of that the scaling problem comes in as several posters have pointed out.
Dreaming is cool.
Re:Scaling and physical limits (Score:1)
Some Real Numbers...Here they are (Score:1)
We have 4 bases (A,C,G and U (this is RNA not DNA right?)) - so we have 4 posibilities for a string of 1 bases, and 16 for a string of 2 bases (4x4=16 or written out AA,AC,AG,AU, CA,CC,CG,CU,etc). So for a string of 10 bnucleotide bases we have 4^10 possibilities or 1048576 (1x10^6). Thats alot for just such a short chain.
How much would that weigh?
An average nucleotide (the base (ACGT or U) plus the binding sugar) has an atomic weight of approximately 500 Daltons. So if we multiply out the atomic weight times the number of strands divided by Avrogadros number (6.023x10^23) we can figure out the weight of those million different strings of RNA
So we get
500 x (1x10^6)/(6.023x10^23)= approx 1x10^-15 grams. THAT's 10to the MINUS 15 grams of material. That's a freakin TINY amount of stuff.
So how many solution could be in a gram(that's actually a fair amt of RNA,but anyway)
1x10^6 times 1x10^15 or 1x10^21 HUGE BRUTE numbers eh?
This isn't exactly right because you would have to make the RNA chain slightly longer (23 or 24 bases long) to get all of these solutions, but you get the point.
Of course an RNA or DNA computer won't be exactly correct. Binding mismatches can occur, you won't get truely random sequences or not all of them will form, but it will probably be MORE accurate than an electrical computer.
slight correction (Score:1)
And I suppose that it is important to note that as long as you've got a pot of 'random' DNA, there's always the chance that no matter how much you have you may be missing one important sequence. Nevertheless, I like the idea - but how much faster <I>could</I> this solve P-NP problems? Is there any way to estimate that?
Re:slight correction (Score:1)
Then again, I suppose that the whole purpose of this RNA computing experiment was to show that it can be done.
One important point - it selected a WRONG answer? Lotta good it'll do if it's running fast and in parallel if it's WRONG =)
Re:Key Cracking (Score:1)
-ElJefe
Re:You're in the wrong forum (Score:1)
am wondering about recursion, too (feed the answer of one test tube in as the input of another...)
Re:Not All Solutions (Score:1)
are we sure the answer space is 94? reads as though all 43 were found...
Re:What am I missing? (Score:1)
On a regular computer, if you had a pre-generated list of solutions, all prepared beforehand for processing, wouldn't a standard PC be able to evaluate this same problem in a week?
Does anyone know how long it takes to synthisize trillions of DNA or RNA strands?
Re:Key Cracking (Score:1)
Won't the MPAA try to ban it? (Score:1)
RNA RC5 (Score:1)
Re:How it works (I think...) (Score:1)
quantum computing not faster for this problem. why? because you have to get all possible solutions. if all you demand is a single solution, then possibly quantum computing is faster.
while it's true that a quantum computer could check all 512 possibilities at the same time, you can never ever get more than one answer in the end of the computation.
cheers,
sh_
Re:Brute force (Score:1)
No, but that's not saying we can't up the limit. Conventional digital computers can't handle umlimited numbers- we're limited by the amount of memory we have. This seems like a similar problem (as much as the two computational systems can be similar), and I've no doubt this limit will change.
Re:Obligatory... (Score:1)
Is this what people are talking about when they say "the viral nature of the GPL"?
-Jordan Henderson
The question is, (Score:1)
--
Demon Seed (Score:1)
Theoretically (Score:1)
A pre-post note: OK, as I have been reading through these postings, a few thoughts have occured to me. You can berate me for being a foolish dreamer, or a lengthy poster as you like. It's a long post with a lot of ideas. I enjoy everything, flame as you will ;)
This algorithm that has been created is destructive, neh? And from what I've read, it can't select the correct answer and present it in any way. Also, it has the potential to be incorrect. The RNA also has to be pre-encoded with all possible answers, which gives it a finite number of answers. The RNA solver has to be pre-coded as well. These are all limitations that will stop RNA computing from going computational.
But putting the RNA inside of a container, would solve these problems. Call this container a cell for ease, if you would, although it really wouldn't be. The cell would basically 'regulate' the RNA, so the actions it took would not be so uncontrolled. Enzymes are great, mind you, but we don't have all that solid a hold on them. The cell would also replicate, given correct proteins. So we create one cell and drop it in a vat of metaphorical peanut butter, and watch it multiply. If the multiplication process was automated and modified properly, we could end up with cells with 'identification numbers'.
The identification numbers would serve as an organization process to allow the cells to all refer to their 'parent cells' on which process to execute. The parent cells would refer to their parent cells, etc. If all these cells were placed in a non-moving communicative network, this would actually work. Then you could stimulate the parent of all cells electronically, as humans and all other organisms do. This could be the user's job - tell the cell what to do. It will refer to the 'memory' cells (containing RNA sets with memory pairs which respond to queries about their setting) for programming instructions, then send that out to all the 'child' cells. You get the idea - massively parallel, heirarchal(sp?), nondestructive (reproducing cells don't destroy themselves) processing. The heirarchal process leaves us with an EXTREMELY rare chance of error (check an answer 50 times?). The parallel process gives us extreme power. The RNA factor gives us extreme speed. And the cell network idea gives us the power to modify RNA (through proteins inside the cells themselves, reacting to electric stimuli).
Anyone see any problems with this? I don't, but I have nil background in biochemistry or biocomputing. So someone else answer the comments ;)
Realities of the world to come (Score:1)
Is this technology the birth of real living neural networks? I ask this because this is how the brain is thought to work, millions of processors (neurons) working in parallel. And if so would it mean that creations like Data from Star Trek:TNG isn't so far off.
Secondly,
What would happen with cryptology. The government or some agency could in theory use this technology to break encryption schemes. Not because of power behind one processor but because of hundreds of thousands of processors solely dedicated on cracking something.
thelopez
Re:DNA Replication = mass production of software? (Score:1)
Seriously, this could give you some nice, fast software if you could select the right mutants- I remember seeing an article somewhere that a similar system reduced the transistor count in a chip from ~200 to ~50.
I wonder if it would be possible to evolve a stable Windows? A stress test, so to speak.
What about the idea of DNA as a language? (Score:1)
RNA computers (Score:1)
Re:RC5 .... (Score:1)
I think the algorithms basically do the same thing you described. Adleman et al's approach would require about 1 gram of DNA. To do the "hard part", it builds up from a set of primitive operations (merge, separate, set, and clear). These can be controlled robotically, but will still take a bit of time since it takes a while before all the molecules settle into place after each operation. IIRC, bottom line a year or two ago was several months in theory. I'm not sure where current technology stands.
(this overview of DES cracking as well as more information about D/RNA computing in general can be found in DNA Computing by Paun, Rozenberg, Salomaa)
-----------------------------------------------
That was DNA, not RNA (Score:1)
Esperandi
Re:this isn't that cool. (Score:1)
Esperandi
Re:What am I missing? (Score:1)
Esperandi
Re:MOD THE PARENT POST UP! (Score:1)
BTW, it would take several centuries or so to evaluate all of the answers on your compaq.
Esperandi
Serial vs parallel actually DOES make a difference, and it takes virtually no time at all to generate all those RNA combinations. It's nice that you can't imagine how reality works so you assume that it is limited to your feeble mind, but it takes much less time to generate "a strand of RNA containing all possible solutions"... it doesn't do that, it generates a few trillion AT THE EXACT SAME TIME.
Take everything the RNA does and multiply it by a few trillion and you'll get an idea on how long it'd take to do it serially on a PC
Re:Key Cracking (Score:1)
It can't scale time-wise the same as normal computational machines, just look at what they've done... they've been solving NP-complete problems of degrees never even imagined within the realm of possibility. So maybe it can't solve a 10 trillion city travelling salesman problem without 100,000 gallons of RNA.... so what? It can solve a 10 city one that no one thouhgt would be possible in as much time as it takes a normal computer to solve a 5 or 6 city one.
Esperandi
Re:Scaling and physical limits (Score:1)
Esperandi
(it was a travelling salesman hamiltonian path problem of some really high number of cities... something like 5 or 10 more than they said was impossible)
Re:One word: SHIT! (Score:1)
The chess thing was probably Marvin Minsky or one of his friends in Tech Square in the AI labs near MIT... read the book "Hackers" by Stephen Levy if you really dig those kinds of guys, its all about the great stuff the guys just beginning in the field did.
Esperandi
Sure, this is impressive, but just wait 50 years and check out how good the microwaveable food will be!
Can't use you're own RNA (Score:1)
Esperandi
To the paranoiacs: its not the big corporations that stop me from being able to extract DNA from my cells, so don't scream about trademarks or patents or any of that crap.
Re:Key Cracking (Score:1)
Ah, but doesn't it take time to produce all that RNA? They have to be encoded with specific patterns for each problem. And they can only be used once, and then you need a fresh batch.
- Isaac =)
Re:Brute force (Score:1)
Mmmm, 2^(3*10^9) different solutions sounds pretty decent to me.
Re:Key Cracking (Score:1)
No it doesnt take much time. It takes about 30 minutes per cycle to add a new base on a dna strand in a commercial DNA synthesizer. Add equal amounts of the four possible bases each round of the synthesis and you can make 4^n sequences in n*30 minutes. ie overnight you can make 10^15 DNA sequences. You then use the parallel nature of enzymatic solution phase reactions to convert all of those into RNA sequences (~1 hour)
Re:DNA/RNA computing still limited... (Score:1)
"Thus, as 2^50 = ~10^15 is approximately the number of RNA molecules that in vitro selection protocols can currently search, this projects an upper bound for the size of DNA or RNA computing experiments that could use exhaustive search algorithms. Fortunately, this is on the same order as many interesting problems in computer science, such as DES."
I think that this approach could be streamlined to solve a problem of this magnitude in the course of a couple days. How does this compare with current computer based methods?
answer provided, of course. (Score:1)
Re:What am I missing? (Score:1)
How long does it take to generate the solutions?
What happens if you change the data?
Currently, the only known way to guarantee the best solution is to generate all possible solutions, which is why it's so hard. Your suggestion doesn't improve the performance of the algorithm.
yep... rna crypto (Score:1)
that what im talking about...
my measly d.net stats would go through the roof with an rna box (err... cell cluster) ;-)
theres actually a very interesting discussion on this in applied cryptography (by the guy whose name i forget. it discusses algae used for computing (checking) keys to crack crypto... i think a cubic meter of seawater could mop up all those nasty super computers and uber-parallel monsters that lead in the stats race on d.net ;-) hehe thats my plan
bigger (Score:1)
Re:Infinite loop (Score:1)
Infinite loop (Score:1)
My mom can render 200million triangles per second...what can your mom do?
-FluX
All flame will be summarily flamed! thank you for calling america on-crack.
Re:This could get really complicated... (Score:1)
This could get really complicated... (Score:1)
Wow... (Score:1)
On the other hand since supposedly my cells are in quantum multiverses this could be dangerous...
Re:Brute force (Score:1)
The human genome contains about 3,000,000,000 bases (see here [dcmsonline.org]). That's in every single cell, and an RNA computer may be able to do more than that, but it's definitely not unlimited numbers.
Re:But how well ... Kaspirov? - Another Article (Score:1)
RNA Harnessed As Molecular Computer Tests Well [unisci.com]
From the same people (UniSci) that brought you Quantum Evolution [unisci.com].
Why the answers were fed from outside... (Score:1)
Re:What am I missing? (Score:1)
Great, until some corporation decides to copyright (Score:1)
Re:Brute force (Score:1)
what will really happen... (Score:1)
Could Someone Please Explain? (Score:2)
What I mean is: modern computing relies on the fact that electrical signals (voltages and currents) can be controlled to mean something.
What is the basic assumption in genetic computing? That compounds will deterministically combine and react with another substance? How does a trillion DNA strands get reduced to one by just sitting there?
I haven't seen any good explanations about genetic computing in terms regular programmers can understand...
Re:answer provided ?? (Score:2)
Wouldn't a valid test of data crunching be more along the lines of actually solving the problem, not just figuring out which answer from those provided were correct?
There is a whole class of problems which can only be solved (as far as we know) by trying all possable solutions until one works. That's what was done in the test tube.
Imagine the possabilities for database systems! A vat contains all of the records happily replicating. Pull out a sample, add the query strands and react away. Soon, the sample will contain all records matching the query.
One word: SHIT! (Score:2)
That's what I said to myself while reading this article. Science is going FAST! I would'nt have believed to have this made possible in at least 10 years, and here we have it!
The implications are enormous. On top of that, mechanized DNA analysis tool are becoming almost mainstream, and it's not too far before they will cost less than a big computer.
What next? That's probably the biggest question. What about having a slasdot interview of the guys who did this? That's HACKING dudes; think about it, it's comparable to the first dude who ever solved a chess problem on an electronic computer. Was that, what, 50 years ago? Think about the application we will have in that time frame.
Shit!!!
Re:Scaling and physical limits (Score:2)
Additionally, one should remember that even ignoring the practical limits on the technology these molecular "computers" really offer no theoretical benefits over any other Turing-equivilent computer besides being massively parallel. They still wouldn't be able to solve NP-hard problems.
Re:Wow... (Score:2)
I would say that you could win one game.
Too bad you wouldn't be around to enjoy your victory.
ebw
Give it some time, (Score:2)
Dooms day is on the way baby.
Seriously though, this is pretty spiffy stuff. Seems like they are going about it the wrong way, however. Making strands with all of the possible solutions, then eliminating the incorrect doesn't seem like it would ever lend itself to general purpose computing. Seems like it would be better to find a way to produce only correct solutions.
Anybody have any more info on this stuff?
Scaling and physical limits (Score:2)
Crossover Problems (Score:2)
You see, we have in cognitive science the idea of 'pigeonholeing'; that if I build houses all day, I see everything in terms of building houses (which is not entirely true, when was the last time you used duct tape on a duct).
So if this application was thought up by MOLECULAR BIOLOGISTS AND CHEMISTS, what happens when some good hardcore Computer Scientists and Hackers get their minds into the functions of the system?
I think the technology is much further in capability along than we realize, but we dont fully understand how to apply it, so we are maybe not as impressed as we should be.
Mutation (Score:2)
Moderators, please note this is a slightly funny look at a possible problem. I know that *puppy is fiction, but then, the idea just sounds good.
Re:Could Someone Please Explain? (Score:2)
The second property is what gives it the capability of computing things.
Adleman's original solution to the Hamiltonian path problem worked in the following way:
I'd love to draw diagrams, but it's kinda hard using lynx... One shortcoming of Adleman's experiment was that the method only works on this particular problem (kind of a DNA hack). But since then, several more general models have been created. One developed by Richard Lipton encodes binary numbers by representing them as graphs, and then using Adleman's method. Specifically, he has a vertex v_i for each bit position, and connects it to v_i+1 by way of "zero" and "one" vertices 0_i and 1_i (so there are edges from (v_i,0_i), (v_i, 1_i), (0_i, v_i+1), (1_i, v_i+1)). A particular number is just a path along this graph. So, you can dump all the the dna into a test tube, perform the operations needed your problem, and see if any of the remaining double strands are paths (not hamiltonian) from the first "bit" to the last, and thus solutions to your problem...
But as some people have noted, DNA computing is slow...and while speed*parallelism makes up for some of it, it's still slower than a pc, and much much slower than distributed computing. There are different ways it could compete, though:
-----------------------------------------------
Error and Computers (Score:2)
Regarding the 1 incorrect answer:
"We just had a bit of bad luck -- or more literally two bits, since it was two single-point errors in a row that foiled our algorithm," Landweber said. "Two errors in a row are exceedingly rare and shouldn't become a problem when we scale up."
Better catch those "exceedingly rare" errors now else we'll have a DNA Y2K before you know it.
Seriously though, it solved the traveling salesman problem in a week? If this stuff is already in action, we should be testing the limits of computability, like finding the most approximate value of pi, calculating patterns in the stock market, and not losing any more damn Mars Polar Landers.
This DNA computing business is also a good way to teach people about how computers actually work. Most, I'm sure, think of a computer as just boxes of binary, not why 1 and 0 are used (you could use 52 and zebra instead) and why silicon was used (better than rubber bands, I'll tell you that) and why DNA is a much better solution.
Can't wait until this stuff is desktop able, and if you predict it will take 50 years, just remember what Gates thought about HD space in '83...
------------
A book recommendation on this subject (Score:2)
Creating life (Score:2)
Re:Obligatory... (Score:2)
Hmm, you could use a virus as a loader. Talk about world domination!
Brute force (Score:2)
DNA Replication = mass production of software? (Score:2)
But then there is the issue of replication. Mass replication of the RNA would involve enzymes that are quite messy; 1 error per 20000 base-pairs. The term of burning software would evolve into replicating strands! Oh, what fun!
This is probably quite premature, but the possiblities of a molecular computer running on genetic code could also be the makings of a half-machine/half-genetic semi-artificial intelligence. Neat! What do you think?
Cell growth IS data processing anyway (Score:2)
All this is very delicately self-regulated. It's digital data processing, though not quite as we know it.
I think the best way of understanding the genome is as a computer program that has been continuously maintained and enhanced for 4,000,000,000 years. Each baby is a new beta.
Key Cracking (Score:3)
The question is - does the time to compute the RNA solution scale with the size of the problem the same way a traditional computational solution does?
-josh
time, space and the scalability of wet chemistry (Score:3)
Not to detract from Adelman's work---it was a very pretty algorithm, and it did prove the principle that this COULD be done---but it didn't really give a practicle way of solving the problem. All it did was spread the computations out over a large number of processors.
Think about it this way: Of course I can solve an NP hard algorithm in polynomial time---just give me an exponential number of processors.
What Adelman's algorithm did, and what it looks like these Princeton researchers did, was create every possible solution as a nucleotide (RNA or DNA) strand, and then select out the correct ones. Although I haven't thought about the problem that the Princeton researchers have tackled, with the Ham-path problem, there are potentially n^n possible sequences *of the right length* that have to be searched. When the sequences are made, however, many others will be made as well. That's quite a few if the problem gets to be of any size at all.
As the size gets up to anything "reasonably hard" the amount a fluid required to simply keep the DNA/RNA in solution will get prohibitively large, and now we have to be able to do chemistry on them. These basic operations that are typically done on DNA/RNA, like PCR, gel electrophoresis, and probing, are usually done on *microliters* of solution, not megaliters. This is why the only things researchers have been able to do so far is these "toy" examples.
My feeling is that the problem with all of this work is that all of the algorithms (that I've seen) rely on the same basic scheme: encode all the solutions and then in a massively parallel way fish out the correct one. What's probably going to be needed to yield anything practicle is for someone to figure out a way for the nucleotide to be an active part of the computation, rather than a passive encoding device. This is most likely going to take a while, since the only operations we can do to these molecules are the ones we can FIND proteins to do for us. Once protein engineering gets better, we may be able to do more.
A question I have: Since this model of computation is not super-Turing, why are all of these researchers trying to tackle NP-complete problems? They'll run into the same exponential blowups that conventional machines do. It seems that it might be more productive to look into ways to harness the vast potential parallelism to handle large instances of P-time algorithms in a more efficient manner. Just a thought.
What am I missing? (Score:3)
According to the article "Strands of RNA containing 1,024 base pairs were encoded with every possible solution to a specific chess problem" and "Molecules can store more information than silicon chips, and this was the largest problem ever solved by a molecular computer"
It sounds like it was given the answers, so wouldn't this be more useful as a storage medium?
The article seems to indicate it being as a computer. Am I missing something about computing here?
RC5 .... (Score:4)
Well as I see it you need to do this:
DNA/RNA computing still limited... (Score:5)
If you talk about searching a space of n binary variables, there will be 2^n potential solutions. Say n=1000, 2^n~=1e300. If I remember the number of molecules in a mole of something is around 3e23. You can get a bigger pot of random DNA (more moles) but this is still a limitation for DNA computing as far as I know right now.
For big traveling salesman (Non-Polynomial) problems, the size can easily reach n=1,000,000. DNA computing is cool, but only useful in some specific applications.
And while we are at it, extending the current solution algorthms to parallel computing versions doesn't always help. Doubling the number of processors (or doubling the speed of each processor) in the best case only helps you solve one more binary variable.. 2^n=>2^(n+1)
More info (Score:5)
More info about bio-computing in general here. [mitre.org]
more info (Score:5)
First, the principle researcher's lab page. FRS 120 looks particularly interesting. The course outline has lots of neat links.
http://www.princeton.edu/~lfl/
Then her homepage, with information on her work, in this area and others:
http://www.santafe.edu/sfi/research/fellowatlar
and a page with links to a LOT of papers, in this area and others:
http://www.princeton.edu/~lfl/research.html
Finally, here is the particular paper which the eetimes article is based on (I think):
ftp://rnaworld.princeton.edu/pub/export/Knights
I don't do html, so just cut'em and paste'em.
Nels
Scalability (Score:5)
All of these RNA computational studies (there have been several to date) highlight the fact that individual RNA "computers" are extremely tiny and cheap, so that massively parallelizable operations can be accomplished quickly.
It's important to remember that, while RNA computation can accomplish amazing things through humongously parallel arrays of specialized molecules, the computation is still subject to the limits of (for example) NP-completeness. In this case, the "hard part" appears (you have to read between the lines) to have been the enumeration of all 9-bit numbers in coded RNA. This part of the problem scales exponentially, even if the actual final step is so massively parallel that it runs in constant time.
When I was knee-high to a lisp interpreter, I remember hearing about different sort algorithms that ran faster than quicksort. My favorite was the spaghetti sort, which runs in linear time for moderately sized numbers and involves slamming a bundle of raw spaghetti into a table (the linear part comes from cutting the strands to lengths proportional to your numbers). The problem is that, by the time you scale the spaghetti sort up enough to beat quicksort running on a Cray, you find that you have to slam 10^23 strands of spaghetti into the face of the Moon -- and then you end up having to spend something like at least root(n) time figuring out which one is the longest, so quicksort wins in the end (if you break the sort up into many spag sorts you end up with a hybrid solution that runs in n log(n) time).
I think that the RNA sort is like this: for small numbers it scales OK, but there are hidden costs to each operation that spoil the scalability later.