Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Fun result. It reminds me of the stories Dr. Feynman would tell about what he learned by watching ants.


Could you please elaborate? Were you referring to the stories told in his book, or were you actually one of Feynman's students?

Here's the written story of Feynman's experimentation with ants if anyone is interested: http://books.google.com/books?id=7papZR4oVssC&pg=PA94...


Those are the ones. He came to USC and as a guest lecturer for my quantum mechanics class and recounted this story. I really like it because it crystallized in me the understanding that this is how you figure out systems for which there is no manual or documentation. Observe the working system, inject change in various ways, measure the effects of that change. Rinse and repeat and learn.

Once at NetApp there was a question about whether or not we were wasting all of our time randomly seeking the drives (drive seeks being of course the worst if you're looking to improve performance). But the code paths were very complex, asynchronous, and difficult to model. We figured it out by injecting random seeks which was pretty easy to do. You could flood the disk driver with random seeks and get the 'floor' of performance, then you could back off on the random seek injection to see where performance started to pick up. That told us that counter to our thinking we weren't actually being plagued by seeks, the performance issue was elsewhere in the system.

That the ants had, through natural selection, derived a congestion control system that is very close to the TCP one is a fun result because it suggests that the TCP one is probably close to optimal. (Ants have been working on it a lot longer)


Does a long period of evolution actually imply it is "probably close to optimal"? I don't know a huge amount about evolution, but my two lines of logic would be:

First, given the huge diversity of life on Earth, how can we argue that any species is "optimal".

Secondly, the same argument could be made of life 500 million years ago, that it had been evolving for so long that it must be optimal, no?


It's actually a common misunderstanding of evolution to assume that it is optimising anything other than suitability to a particular environment (see http://en.wikipedia.org/wiki/Objections_to_evolution#Definin...). So no, it doesn't make sense to use evolution as evidence that suitability in one domain implies suitability in another domain, especially when the domains have almost nothing in common except a shared requirement for management of scarce resources in a very abstract sense.


I don't think you are seeing the parallels here. When you look closer you'll see that the domains are different but the problems are very similar and not so abstract, which explains the high degree of simularity and effectiveness of the congestion control algorithm.

I would also take issue with what you see as a common misunderstanding. Evolution is, by it's very definition a process which adapts to a specific environment. Nothing more, no design, but optimal for any given environmental condition. When the environment changes rapidly, the pace of evolution increases, and vice versa. I don't think this is commonly misunderstood at all. Some people will always have no clue and of course there are those that think the fossils were planted by god, but aside from the out of band idiots, evolution is commonly correctly understood.


I reason about it this way, I observe that natural systems seek the lowest possible energy state. Selection forces on systems like these select for the most gain with the smallest investment in energy, which is an analog for lowest possible energy state. The rationale for this force on selection is that an organism is more successful the more food it gets vs the energy it expends to get the food. So any small change that increases net food energy returned contributes to the success of the organism, and an organism that is fed, reproduces to the next generation.

Is it optimal for all possible cases? We can't say, just like a rock rolling into a gully has achieved the lowest potential energy it can when considered as a section of terrain it sits in, may not have the lowest energy possible when you consider the whole planet. So for the carpenter ants, which have a worst case generation length of roughly 15 years [1] over a million years you have at least 67 thousand generations in which to find the lowest energy solution. So for the food gathering problem I would expect its pretty close to optimal.

[1] http://www.orkin.com/ants/carpenter-ant/carpenter-ant-queens...


For any living system that has had sufficient time to adapt to its environment, it can generally be assumed that the system has reached (or nearly reached) a local optimum for that environment, for the same reason that if you let a marble roll around on a surface for a long enough time, you can generally assume that it will come to rest at a local minimum. Of course, just as the local minimum of the marble is defined by the surface, the local optimum in the evolution of a trait is defined relative to the current environment. If the environment is rapidly changing, then you cannot assume near-optimality, just like you cannot assume the marble will come to rest on a constantly undulating surface.


> For any living system that has had sufficient time to adapt to its environment, it can generally be assumed that the system has reached a local optimum for that environment

Really? Think about humans, in our current environment, can you not think of any adaptations to our bodies that would improve us as a species? If in 100 million years our environment doesn't change at all (hypothetical) will we not evolve any more?


Humans have not been in an unchanging environment for the past several thousands years at least, and by their nature (constant technological development, etc.) are unlikely to be so ever again.


Hence I said hypothetical, I wasn't predicting the future, just the fact that were we to be in an unchained environment the chances are we would evolve to become improved, rather than stay the same.


You might find this study fun too: Slime Mold Grows Network Just Like Tokyo Rail System

http://www.wired.com/wiredscience/2010/01/slime-mold-grows-n...

Original article: http://www.sciencemag.org/content/327/5964/439.abstract


I wouldn't say 'just like'. There were some differences. The slime mold has to worry about its connections getting severed, so there were some extra edges which are redundant.

This is because the Tokyo Rail System engineers didn't have the same concerns, that tunnels would suddenly get cut off and blocked.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: