Slashdot Mirror


"Evolved" Caches Could Speed the Net

SpaceDilbert writes "According to New Scientist, evolutionary algorithms could make many network caches twice as efficient. This article describes a study carried out by a US researcher and two German academics, who "evolved" algorithms to determine what data should be held at a cache and for how long."

195 comments

  1. Caching by Zorilla · · Score: 5, Funny

    According to New Scientist, evolutionary algorithms could make many network caches twice as efficient.

    That's easy, just cache 4 boobs at a time instead of two

    --

    It would be cool if it didn't suck.
    1. Re:Caching by Anonymous Coward · · Score: 1, Funny

      That's easy, just cache 4 boobs at a time instead of two

      Or two penises for that matter.

    2. Re:Caching by Anonymous Coward · · Score: 2, Funny

      Wouldn't it more efficient to cache 1 boob and display it x times? Sort of a boob pooling.

    3. Re:Caching by Anonymous Coward · · Score: 0

      I guess that makes gang banging a form a pipelining. Must keep those caches full! Push and pop the stack!

    4. Re:Caching by Anonymous Coward · · Score: 0

      but boobs arent completely symmetric, you'd need to cache at least one left boob and one right boob, unless you had some built in boob converting algorithm.

    5. Re:Caching by JamesKPolk · · Score: 1

      That's basically what the content producers are doing: so many girls get surgically altered to look the same.

  2. Algorithms by th1ckasabr1ck · · Score: 4, Interesting
    Pablo Funes of US company Icosystem and Jürgen Branke and Frederik Theil of the University of Karlsruhe in Germany used "genetic algorithms", which mimic Darwinian evolution, to develop strategies for internet servers to use when caching data.

    It would be interesting to see exactly which algorithms they are talking about here. I wouldn't be surprised if they drew some ideas from garbage collection algorithms also.

    1. Re:Algorithms by Osgyth · · Score: 1

      Good idea, but every five mins wouldn't be helpfull. We've sent severs to their death in under a min...

    2. Re:Algorithms by bunyip · · Score: 5, Funny

      I wonder if they evolved logic to counter the slashdot effect. 1. Scan slashdot.org for new stories every five minute. 2. Scan new story for links. 3. Cache those pages.

      That would be the "suicide algorithm". As the server goes up in flames from the Slashdot-effect it brought upon itself, it would become the first cyber recipient of a Darwin Award.

      Alan.

    3. Re:Algorithms by Short+Circuit · · Score: 1

      Just attach an automatic link downloader do my Firefox session...I frequently encounter articles before any comments are posted.

      Wait...that's not something I should be bragging about, is it?

    4. Re:Algorithms by spektr · · Score: 4, Funny

      I wouldn't be surprised if they drew some ideas from garbage collection algorithms also.

      I suppose you're the clever garbage man from the Dilbert cartoons. Because as an engineer I don't really get the connection between garbage collection and caching algorithms. Now that we have covered the first two frames of the cartoon - what's in the third frame where the garbage man makes me feel ashamed by explaining some complicated concept of engineering?

    5. Re:Algorithms by Hew · · Score: 1

      ...
      > 3. Cash those pages.

      4. Profit!

      --
      /cj
    6. Re:Algorithms by ahem · · Score: 4, Insightful
      ...as an engineer I don't really get the connection between garbage collection and caching algorithms. ...

      It seems to make sense to me, if only because the two are complimentary problems. Caching is figuring out what stuff is valuable so you keep it around. GC is figuring out what stuff is valuable so you can throw away the rest. Kind of like in probability where it's easier to figure out the likelihood of something not happening and then subtracting from 1 to figure out how likely it is to happen.

      --
      Not A Sig
    7. Re:Algorithms by Anonymous Coward · · Score: 0

      It would be interesting to see exactly which algorithms they are talking about here.

      The term "genetic algorithms" refers to algorithms that are evolved through "survival of the fittest". It's not a family of well-known algorithms.

    8. Re:Algorithms by ezzzD55J · · Score: 5, Insightful

      Humbug, the big difference is: in GC there's perfect knowledge about what you want to throw away (unreferenced or only circularly referenced objects), and the problem is how to find out efficiently.. In caching the whole problem is to figure out which objects to keep, and beyond that, efficiency is no problem.

    9. Re:Algorithms by arth1 · · Score: 1
      It would be interesting to see exactly which algorithms they are talking about here. I wouldn't be surprised if they drew some ideas from garbage collection algorithms also.

      I'm not sure how relevant that would be, as garbage collection in general is way more radical than what a cache needs -- a cache operates best when full.

      The best algorithm for improving a cache is, of course, to increase the size of the cache. :-)

      Regards,
      --
      *Art

    10. Re:Algorithms by gr8_phk · · Score: 1
      "GC is figuring out what stuff is valuable so you can throw away the rest."

      I thought Garbage Collection was shuffling stuff around with the goal of consolidating all the stuff you don't want into large blocks (collecting the garbage) so the space can be reallocated efficiently.

      The smart garbage man is on vacation.

    11. Re:Algorithms by Surt · · Score: 2

      Sometimes increasing the cache size without adjusting the algorithm reduces performance.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    12. Re:Algorithms by laudney · · Score: 4, Insightful

      Garbage collection problems are far easier than caching problems in networks. There are many reasons. The most important one is that in garbage collection, 'references' are basically 'pointers'. An object that's not pointed to by any other objects is considered garbage. And don't forget, in garbage collection, you can even 'stop the world'!

      By contrast, in caching, 'references' are 'client requests', which are unpredictable and highly variable. Furthermore, on busy networks, there is seldom a moment for you to 'stop the world' and 'evolve' for a while!

      In the story, people use network simulators and randomly generated requests. Since network simulators are notoriously simplistic and inaccurate, and caching is heavily influenced by real-life workloads, I'm interested to know whether their algorithm is applicable in reality.

    13. Re:Algorithms by autophile · · Score: 1
      It seems to make sense to me, if only because the two are complimentary problems.

      Yeah, but with caching, if you're wrong, you only get a performance hit. With GC, if you're wrong, your program crashes. Not quite complementary, or even complimentary to you if your GC fails!

      --Rob

      --
      Towards the Singularity.
    14. Re:Algorithms by spitzak · · Score: 1

      You seem to have the terms confused. GC refers to algorithims where you know for a fact that some data is not needed ever again. Caching refers to algorithims where you *might* need the data again, but you can also recreate it if it is thrown away. Many programs will do this with their own memory and data structures, and certainly the algorithims used there are relevant to this, but it is still called "caching", not GC.

    15. Re:Algorithms by Anonymous Coward · · Score: 0

      i think you're describing defragmentation (which applies to RAM as well as hard disks...).

    16. Re:Algorithms by aiyo · · Score: 2, Informative

      GC and caching are done very differently. In java memory has a counter associated with it. When you have two pointers to that memory then it has the value 2 stored somewhere with the memory. When you change the reference the counter is decremented. Every once in a while the GC will come along and free memory with a counter of 0. If you dereference that memory so that you have absolutely no pointers anywhere using the memory then you will have lost that memory although it is not freed until later.

  3. What makes a good cache? by YankeeInExile · · Score: 5, Insightful

    Well, I have found one flaw in the methodology:

    The starting population of algorithms was tested on the simulator using randomly generated requests.
    I would think this would breed out of the caching system any affinity to locality-of-reference.

    One of the things I did each morning when I was running a cybercafé was "prime" the Squid cache by running a little script that did a wget -p on all of the URLs in the portal page, and a few sites that were not. And it definitely did improve performance for most users.

    One of my unrealized dreams would be some sort of speculative-fetch algorithm for Squid that would basically do a breadth-first fetch on a page while the user was busy reading it.

    Of course in my not-so-humble opinion, the biggest problem with any caching system is the population of websites that, through either malice or incompetence develop content that is cache-hostile, and call it "experience enhanced".

    --
    How does the Slashdot Effect happen given that no slashdotters ever RTFA?
    1. Re:What makes a good cache? by Short+Circuit · · Score: 4, Insightful

      What you get out of the breeder shouldn't be what you put into production.

      Assuming you can still read the code, you're still going to want to put in common-sense improvements that the GA's didn't discover.

    2. Re:What makes a good cache? by YankeeInExile · · Score: 2, Interesting

      So, do you posit that the purpose of the GA is just to give human programmers insight into avenues they might not have otherwise considered?

      --
      How does the Slashdot Effect happen given that no slashdotters ever RTFA?
    3. Re:What makes a good cache? by Short+Circuit · · Score: 1

      I'd be careful to say it's not the only purpose, but it's the best use of it I can think of. :)

    4. Re:What makes a good cache? by AKAImBatman · · Score: 3, Interesting

      I'm actually a bit surprised that neural nets haven't yet entered common usage. In theory, such a net would be far more "intelligent" (sort of) in making decisions.

      e.g. This page looks a lot like a truly dynamic page, so let's not cache it. Over here, this is dynamic, but only slightly so. Let's cache it and index the most likely path the user will take.

      Have CS researchers given up on the neural net approach, or are the nets still far too unstable for real world use?

    5. Re:What makes a good cache? by kerrbear · · Score: 2, Insightful

      What you get out of the breeder shouldn't be what you put into production. Assuming you can still read the code, you're still going to want to put in common-sense improvements that the GA's didn't discover.

      Could this be the long awaited answer to harmonizing Creation and Evolution :-)

    6. Re:What makes a good cache? by Anonymous Coward · · Score: 0

      One of my unrealized dreams would be some sort of speculative-fetch algorithm for Squid that would basically do a breadth-first fetch on a page while the user was busy reading it.

      I misread that for "breast-first fetch". Which I think would be a pretty good speculation on what to fetch first.

    7. Re:What makes a good cache? by Short+Circuit · · Score: 3, Interesting

      I actually wrote a paper on those in middle school. The problem with them is that the larger ones are very difficult to tune.

      It turns out that if you have more than three layers (in other words, if you have any layers between the input and putput), you run into proplems in training when the network doesn't work as well as you want it to perform, but furthur cycles of your training algorithm don't seem to make it any better.

      The comp.ai.neural-nets FAQ was my primary source for that paper. Read that if you're interested. (I felt like my brain went numb after a while back when writing the paper.)

    8. Re:What makes a good cache? by Short+Circuit · · Score: 1

      LOL. Do you think He is still running the GA algorithm? Or was that done on Deep Thought?

    9. Re:What makes a good cache? by reyalsnogard · · Score: 1
      Well, I have found one flaw in the methodology:
      The starting population of algorithms was tested on the simulator using randomly generated requests.

      Not a flaw. When dealing w/ GAs, one needs to create the initial generation somehow, and using 'randomly generated' GAs provides a good start that is statistically unlikely to be biased or stuck in a local maxima/minima.

      The initial population is then subjected to crossover/mutation to create the second gen, which is used to create the third gen, ad nauseam for several thousand iterations. After a while, all randomness is virtually bred out in favour of GAs that have a 'better' rating when evaluated by the fitness function employed.
    10. Re:What makes a good cache? by a_ghostwheel · · Score: 3, Informative

      There are other types of neural networks than just standard back-propagating ones. Linear vector quantization is much better at solving classification problems (ART-based algorithm should be good too). Problem is that in many "on-the-surface" problems have better specialized solution than just a generic NN or GA brute-force approach. This situation led to drastic decrease in funding for NN research.

    11. Re:What makes a good cache? by autophile · · Score: 2, Informative
      Have CS researchers given up on the neural net approach, or are the nets still far too unstable for real world use?

      Well, no, it's just that neural nets have to use a carefully calculated and parameterized error-propagating algorithm, as well as an appropriate architecture and size of network, and if you choose the wrong one, you're basically hosed. Genetic algorithms (and genetic programming) have learning algorithms that are much simpler to understand and implement -- even though there's a lot of argument in the field as to exactly why they work. Even the classic "One-Armed Bandit" explanation is under attack.

      There has been some work done where a genetic algorithm/program evolves a neural network, and there has been nice success with that, as long as the problem is conducive to solution by a network. But in general, GA/GP can use any kind of solution architecture, and you choose one that makes the most sense for your problem. Google for +genetic +evolve +"neural network" for more info.

      --Rob

      --
      Towards the Singularity.
    12. Re:What makes a good cache? by PastaLover · · Score: 1

      That the requests were 'random' doesn't necessarily mean there was no sort of statistical connection between them. There are many kinds of 'random' to choose from...

    13. Re:What makes a good cache? by Anonymous Coward · · Score: 0

      Hello Skynet.

    14. Re:What makes a good cache? by Elwood+P+Dowd · · Score: 1

      Your existing responses are a little more complex than your question.

      The reason that neural nets are not in common usage is because they must be specifically designed for the problem they are going to solve. That design work is difficult & requires expertise. Neural nets are not suited to every type of problem. But no, CS researchers have not given up on neural nets.

      --

      There are no trails. There are no trees out here.
    15. Re:What makes a good cache? by Dachannien · · Score: 2, Interesting

      Not a flaw. When dealing w/ GAs, one needs to create the initial generation somehow, and using 'randomly generated' GAs provides a good start that is statistically unlikely to be biased or stuck in a local maxima/minima.

      Except that wasn't what the poster was getting at - he was noting that the trials provided to the GA were essentially random, and didn't necessarily reflect what the cache is likely to see IRL.

      I suspect, however, that this is an error in the NS article, and that the data sets *were* tuned to particular situations.

      On a side note, some of the research our group is doing suggests that random initial populations in GAs can hinder the search, and that the first portion of the search is relatively indistinguishable from random search, because the fitness in most problems is flat over large portions of the search space. If you do know something general about the solution to the problem, it might not be a bad idea to seed the initial population with that knowledge.

    16. Re:What makes a good cache? by Anonymous Coward · · Score: 0

      Unless they used a Weibull Distribution. Which
      accounts for locality.

  4. Ok.. by Killjoy_NL · · Score: 1

    "An important consideration is what incentives there are for caching information for other users."

    So the ISP's will have to upgrade their soft/hardware to make this work?
    Will that be worth it ?

    In my opinion the article was a bit light on details :(

    --
    This is the sig that says NI (again)
    1. Re:Ok.. by jarich · · Score: 1
      Wouldn't this lessen the bandwidth requirements for an ISP? By caching files locally, your local ISP could host more users with less bandwidth.

      Sounds like it could save an ISP a ~lot~ of money.

    2. Re:Ok.. by Uberdog · · Score: 1

      Would you be aware of it if they were already doing this?

  5. Algorithms by bchernicoff · · Score: 3, Funny

    I wonder if they evolved logic to counter the slashdot effect. 1. Scan slashdot.org for new stories every five minute. 2. Scan new story for links. 3. Cash those pages.

  6. what about worm traffic? by garcia · · Score: 3, Interesting

    From what I can tell a good majority of the traffic that my machine receives is worm traffic. Would these genetic routines be setup to disregard those as cache data? If that's the case would they be setup to just block that data?

    That alone would save me quite a bit of traffic as people on my subnet hit me constantly with their infected machines.

    66.41.161.120 hit my machine 57 different times (that isn't individual requests, that's total times).

    1. Re:what about worm traffic? by JJahn · · Score: 1

      66.41.161.120! Those bastards keep showing up on my logs too. I think I'm going to DoS them right no........CARRIER LOST%@&&!_!$_!

    2. Re:what about worm traffic? by Anonymous Coward · · Score: 0

      From what I can tell a good majority of the traffic that my machine receives is worm traffic. Would these genetic routines be setup to disregard those as cache data?
      [...]
      That alone would save me quite a bit of traffic

      Huh? If the majority of the traffic is useless worm traffic that never varies, then that is exactly what you do want cached.

    3. Re:what about worm traffic? by Anonymous Coward · · Score: 0

      Comcast is responsible for that IP address. What did you expect from them?

  7. LRU Rules by Mirk · · Score: 5, Informative
    There's a good reason why LRU caching (least recently used) is so widespread, and that is that it's very very hard to come up with a sophisticated algorithm that outperforms this very naive one.

    For the uninitiated, elements are added to an LRU cache until it fills up; thereafter, whenever a new element is added, space is made for it by throwing away the least-recently used one. Note, least recently used, not the least recently added, i.e. the oldest, since an element that was cached long ago may be used all the time, and so be well worth its place in the cache. For example, consider the company-logo image that your browser caches when you visit a new site and that is embedded in every page on that site. However old it gets, it's likely to continue to be used while you're on the site. As soon as you move to another site, it gradually shuffles its way down the deck until it falls off the bottom - which is precisely what you want.

    --

    --
    What short sigs we have -
    One hundred and twenty chars!
    Too short for haiku.
    1. Re:LRU Rules by rossjudson · · Score: 3, Informative

      ARC caches fairly handily outperform LRU. When LRU is appropriate they adapt towards it. When frequency is important they adapt towards that.

    2. Re:LRU Rules by arth1 · · Score: 2, Interesting
      There's a good reason why LRU caching (least recently used) is so widespread, and that is that it's very very hard to come up with a sophisticated algorithm that outperforms this very naive one.

      For small cache sizes with one or a few fairly similar users, this is true. For larger cache sizes with a large number of users, it's almost always better to expire based on both LRU (Least Recently Used) and LFR (Least Frequently Requested). You may want to cache all those sucky Christmas links until next year even though no-one is going to access them from mid-January until October. The number of requests for those objects will, with a combined LRU/LRF scheme ensure that they have a lesser chance to be harvested than an item that was accessed once, two months ago.
      It also means that a site that has been slashdotted once has a less chance of being slashdotted again.

      Regards,
      --
      *Art
    3. Re:LRU Rules by Fzz · · Score: 4, Informative
      ARC caches fairly handily outperform LRU.

      Thanks for the pointer. Here's a link to some background on ARC, and a paper describing the algorithm. Looks like an interesting algorithm.

  8. Not DNS by artlu · · Score: 3, Interesting

    It already takes forever for DNS changes to propagate through every network, which can be extremely frustrating when you have a high bandwidth domain. There definitely needs some optimization on the DNS front.

    GroupShares Inc.

    --
    -------
    artlu.net
    1. Re:Not DNS by Short+Circuit · · Score: 3, Informative

      If I'm not mistaken, the DNS RFC takes into account the fact that domain records will be cached. That's why the records have expiration and refresh times on them.

    2. Re:Not DNS by YankeeInExile · · Score: 1

      It already takes forever for DNS changes to propagate through every network, which can be extremely frustrating when you have a high bandwidth domain. There definitely needs some optimization on the DNS front.
      If your zones are taking too long to propogate, maybe you need to Read The Fine Manual ... especially the parts around Refresh and Time to Live
      --
      How does the Slashdot Effect happen given that no slashdotters ever RTFA?
    3. Re:Not DNS by Feyr · · Score: 1

      except when your zones get around to morons ISP that force your zones to have a higher TTL than you specified, which unfortunately here is being done by the big player

    4. Re:Not DNS by Short+Circuit · · Score: 1

      We had a similar problem, except it was a root server, and the DNS record was corrupted to never expire. Finally got it fixed, though.

  9. Great by CptChipJew · · Score: 1, Funny

    So now Slashdot is going to get cached for a long time and I'll never get first post again :(

    --
    Vonal Declosion
  10. bittorrent tie in? by Chuck+Bucket · · Score: 4, Interesting

    I"ve always wondered if something along the lines of cache complimented with a Bittorrent type of scheme couldn't help speed up the internet. that way bits would be mirrored all over, and a server could pull them in faster since more servers did less work each.

    just something I'm thinking about today, well, that and the Kerry/Edwards pairing.

    PCBRwer342$#

    1. Re:bittorrent tie in? by hackstraw · · Score: 1

      I've been wondering this as well. I think it would be cool for all of the internet/browsers to like a big p2p setup. Where the originial webserver is the canonical source for info, and it keeps history of its visitors with ways to figure out the best "route" or network neighbor.

      However, in practice, I'm not sure how useful somehting like this would be. Most websites today have so much dynamic info, that it simply would not work. For example, /. would only be able to cache its graphics.

      This would be cool for sourceforge downloads, so I wouldn't have to pick a mirror each time.

    2. Re:bittorrent tie in? by Chuck+Bucket · · Score: 1

      Yes, so there's be a dameon on servers that could be a beacon to others, and only have it catalog certain directories that contained 'static' content that didn't change very often. then the main server would only be required to generate the dynamic content, whilest the static would be provided by others.

      I'm thinking of almost a distcc way of handling this, where the server can dole out tasks to any/many other servers that it finds that are 'willing' to help out.

      PCB%$s

    3. Re:bittorrent tie in? by Kopretinka · · Score: 1
      I understand the parent suggestion as a dynamic list of current mirrors at every site (or page).

      IMO peer-to-peer caching/mirroring would work for big chunks of data where the overhead of finding a cache (guesstimate a few to a few tens of round-trips among peers and the original site) would be insignificant compared to the actual download time. For short pages it would be better just to return the page as opposed to the current list of mirrors.

      On the other hand if the page contained (in the HTTP metadata) the list(s) of mirrors for the subsequent (linked) pages and for the images, the browser could just contact the mirrors first for the images and/or clicked links and that could speed things up.

      This also raises a number of abuse issues, but I don't feel like investigating them at the moment.

      In any case, all this could be achieved with a very simple HTTP extension. Hmmm, remind me later to sketch it. 8-)

      --
      Yesterday was the time to do it right. Are we having a REVOLUTION yet?
    4. Re:bittorrent tie in? by ganhawk · · Score: 1

      Reg seperating static and dynamic content, there is already a provision for this in the form of Edge Side Includes. But not many pages are ESI complaint.

      And instead of the server telling others, I was thinking more along the lines of each node learns of its nearby node using the JXTA protocol. You can check out p2pbridge for more information.

      --
      Python script to convert photos into "artsy" portraits: http://p2pbridge.sf.net/pyPortrait/
    5. Re:bittorrent tie in? by ganhawk · · Score: 1

      You are right about the overhead of finding a cahe in BitTorrent type systems. But the idea you propose is for each site to have 4 or 5 dedicated mirrors. The sites are slashdotted in the first place because they cannot afford a cluster (or mirrors). p2pbridge.sf.net attempts to solve using a P2P Radio type of solution.

      --
      Python script to convert photos into "artsy" portraits: http://p2pbridge.sf.net/pyPortrait/
  11. Next Gen Networking? by arieswind · · Score: 5, Interesting

    From the article:
    He[Pablo Funes] suggests networks might in the future be designed to work out who deserves the most help for themselves. "Sophisticated network behaviours might implement rules for reciprocity and trust," he says. "And conversely, for not cooperating with other others who try to abuse our resources."

    The future of network security? Imagine the next computer virus outbreak: Every network in the world could recognize the virus type activity and allocate them lesser or zero resources, maybe sending them a "Virus detected, please run antivirus software or contact your IT Department" notice, and detecting outside attacks from viruses and automatically flagging them as unsafe, and not give much(or any) attention to traffic from or to that site

    1. Re:Next Gen Networking? by danharan · · Score: 1
      Every network in the world could recognize the virus type activity and allocate them lesser or zero resources, maybe sending them a "Virus detected, please run antivirus software or contact your IT Department" notice
      Could also work if it communicated "$IP being DDOSed, please trace back and isolate those who are doing this"?

      Basically, I think we really should be thinking about how to build an immune system for a network and what minimal behaviour from the nodes would achieve it.
      --
      Information: "I want to be anthropomorphized"
  12. Evolutionary Computing by snowlick · · Score: 1

    Stuff like this is what keeps computing interesting, I think. This technique can be used by almost every business in a situation in which optimization might be necessary. I assume that covers most tasks someone would want to accomplish. By utilizing these algorithms to explore search spaces previously thought to be too large I predict we'll experience some pretty explosive advances in the near future in areas from farming to software development. But that's kind of obvious.

    --
    Crystal Meth: Would you ingest somthing made from a poisonous gas and an explosive metal? You do it every day -- Salt!
  13. Even better... by Anonymous Coward · · Score: 0

    Just have the algorithym keep all fleshtone images in the cache...

  14. darwinism by loveisammovement · · Score: 1, Funny

    "One can even imagine each host evolving its own optimal rule."

    call me old-fashioned, but I find the mindset of a host evolving a little too "new fangled" for me. is there going to be a big stir-up now on whether or not CS profs can teach this kind of thing in the classroom? maybe it's the creationist in me...

    1. Re:darwinism by Anonymous Coward · · Score: 0

      What always perturbs me about these articles that compare technology changes to evolution is the idea that there is anything Darwinian about them. Darwinian evolution, as my gradeschool textbooks informed me, involves random, unguided change.

      The evolution that is described in this article is anything but unguided. Researchers took existing carefully developed code. They selectively combined parts of this code. They studied the resulting effects to produce better code. This looks much more like Intelligent Design than anything Chuck Darwin ever dreamed up.

      On the other hand, the development of the universe was probably a bit more complicated than tuning some routing algos, and we believe that it all arrived by chance... Hmm, maybe those pesky Creationists have a reasonable idea after all.

      Summary: Evolutionary, yes. Darwinian, no.

  15. Re:Sigh... by snowlick · · Score: 1

    The algorithm is just a standard ga, with the alleles being numeric values, not algorithms.

    --
    Crystal Meth: Would you ingest somthing made from a poisonous gas and an explosive metal? You do it every day -- Salt!
  16. the details of their method by Dezer · · Score: 5, Interesting

    Actually, I do genetic algorithm / genetic programming research at the university of michigan. It's unlikely that these guys are using genetic algorithms to develop a new algorithm, but are rather using an existing algorithm and *tuning* the associated parameters using a GA. Given a list of parameters, GA's work by finding the best combination of parameters. As a result, the settings could be constantly tweaked (say on a daily/hourly basis) and different servers could still have different regional settings. My only problem with the concept is that it still depends on the tuning of pre-existing algorithms... but still - the results they share (2x improvement) is encouraging.

    1. Re:the details of their method by NoOneInParticular · · Score: 1

      You seem to have missed out on Gecco in Seattle this year, where the guys in the article presented their paper. They nearly got the first prize in the GP track, but were beating by some researchers doing quantum programming using GP. What it boils down is that they evolved the priority function that was used in caching, i.e., the thing that makes the caching tick. So it was not a parameter optimization method they used, but a true induction of a priority function.

    2. Re:the details of their method by Anonymous Coward · · Score: 0

      You're probably right, but wouldn't it be neat if they actually were making up new algorithms this way? I suppose it would be possible to make up the set of functions a cacheing program would probably use, like
      -add to cache
      -remove from cache
      -check last-used date
      -check last-updated date
      -check file size, etc.
      and parse them into valid code and compile them. You'd probably spend most of your CPU time on things that end up crashing and burning, so I'm thinking that a language like Java with a virtual machine built in is a good thing. Failing to compile properly, or returning an exception when running, would be equivalent to that algorighm "dying". The other way to die would to not be as efficient as the competition.

      It would be a neat way to develop software. I wonder if it could actually be done.

    3. Re:the details of their method by Dezer · · Score: 1

      Thanks - sadly I *did* miss out on GECCO. I'll check out their paper on Springer's site.

    4. Re:the details of their method by Anonymous Coward · · Score: 0

      "Missing out" on Gecco is not really the way I would put it. The signal to noise ratio was a bit painful at times.

    5. Re:the details of their method by Eythian · · Score: 1

      You wouldn't have them producing 'real' code, like machine code or source code to a human programming language. You would have them produce something domain specific 'script-like' that can never have an error, other than bad performance, or at least minimises errors (it can be hard to avoid things like stack underflow). At the outside, you could produces something like LISP code if you need the expressiveness of a full language, however even this is unlikely, and producing something like Java would be way to difficult. Basically, allowing the system to generate output in complex languages means that a lot of it's effort goes to finding one that works at all, rather than one that does a bit better than the others.

      Once you have your output language designed, then you create your genetic operators so that all the potential solutions are generated valid. You wouldn't then convert them into another language, you would probably build your own caching system simulator that can accept each of the potential solutions, run the simulator over it, and measure the fitness. Lather, rinse, repeat.

      Eventually when you find a good one you reimpliment it in a real language, and build it into a live caching system.

  17. Al Gore is a great contributor by hugesmile · · Score: 4, Funny
    evolutionary algorithms could make many network caches twice as efficient

    Once again, Al Gore has his hand in the shaping of the internet.

    I'm sure everyone in the Slashdot community will miss him - even if you didn't enjoy his work, there's no denying his contributions to popular culture. Truly an American icon.

    1. Re:Al Gore is a great contributor by gekkotron · · Score: 0

      You've just said "Al Gore" and "rhythm" in the same sentence.

      DOES NOT COMPUTE...

    2. Re:Al Gore is a great contributor by DMUTPeregrine · · Score: 1

      I indirectly enjoyed his work: My father got some of the funding.

      --
      Not a sentence!
  18. Business model by dk.r*nger · · Score: 1

    1. Scan slashdot.org for new stories every five minute.
    2. Scan new story for links.
    3. Cash
    [sic] those pages.

    4. PROFIT!

    1. Re:Business model by bchernicoff · · Score: 0

      3. Cash[sic] those pages.

      That's what I get for posting before caffeine intake...

  19. Re:Sigh... by Short+Circuit · · Score: 1

    I didn't see any info on their implementation in the article...did I miss a link or something?

  20. A note on hill-climbing by Animats · · Score: 5, Informative
    Genetic algorithms are methods for optimization in bumpy spaces. The basic goal is "find x such that f(x) is maximized". As optimization algorithms, they should always be tested against the two simple optimization algorithms - basic hill climbing, and random search.

    If the search space is not dominated by local maxima, basic hill climbing (go for the best neighboring value) will work. And it will be fast. If the function is differentiable, it can be orders of magnitude faster than other methods, because you can use a variant of Newton's Method.

    If the search space is small, random search (just guessing) will work by exhaustively searching the space. This is obvious, but tends to be ignored in academic papers all too often.

    This discussion also applies to neural nets and simulated annealing.

    Now this article at least describes a problem for which a GA might actually be useful. Many such articles don't. But they haven't demonstrated that you need a bumpy hill-climbing algorithm.

    This is why, despite all the hype, GAs, neural nets, and such aren't used all that much. The search space has to have the right properties. Not too small, not too big, bumpy, but not too bumpy.

    1. Re:A note on hill-climbing by 55555 · · Score: 2, Informative

      Misses the point. GAs do not look at search spaces and ask 'is this function too bumpy'. GAs (as well as many other evolutionary algorithms, see GECCO) are more similar to stochastic greedy strategies. I'd suggest looking at Walsh coefficients instead of derivatives as a rule of thumb.

      A large part of the reason GAs aren't catching on more is that there aren't enough really good text books on them. All of the really useful information is still in the form of research papers, these things take time. Also, we're only starting (last 5 years) to know enough to be able to routinely apply them. Without that, they're too hard and too expensive to use.

      As for random search, good papers look at the scaling factor for their algorithms. The goal is to build GAs that are quadratic. Any paper which suggests an exponential time GA (like random search) is wasting your time. The idea is to have a range of algorithms, greedy search for logarithmic time (or gradient descent), GAs for quadratic, and enumerative search for NP-Hard problems.

      The parent is either ignorant, overly jaded, or being a jerk.

    2. Re:A note on hill-climbing by autophile · · Score: 1
      This is why, despite all the hype, GAs, neural nets, and such aren't used all that much. The search space has to have the right properties. Not too small, not too big, bumpy, but not too bumpy.

      Actually, I kind of liked Koza's technique of applying genetic programming to synthesizing analog transistor circuits. GP was able to evolve circuits that square-rooted, frequency discriminated, filtered, amplified with specific parameters, and so on -- and even develop novel circuits. To me, this was proof that GP could solve problems in a space that was immense (the universe of all circuits containing under, say, a few hundred transistors), and incredibly bumpy. Well, maybe not quite so bumpy -- perhaps the circuits evolved so that a small change didn't adversely affect the circuit.

      The interesting thing is that the genetic program evolved not a circuit, but a set of instructions on building that circuit. Then the circuit plan was built in RAM and simulated. So the GP was several steps removed from what was tested.

      More info on this is in Koza's Genetic Programming III: Automatic Programming and Automatic Circuit Synthesis

      --Rob

      --
      Towards the Singularity.
  21. Legos and Tron mentioned in his thesis by the+frizz · · Score: 3, Informative
    The article link is light on details of the evolution algorithm, but Pablo Funes's home page has the text of his thesis on Evolution of Complexity in Real-World Domains. It talks about his use of evolving algorithms on topics like designing the strongest lego brick structure and playing Tron. Very cool, but not its application to caching.

    The is even a link to an online Tron game where us humans can play versus his evolving algorithms. The win/loss stats for his algorithm is approaching even. Given that humans can also evolve in the Tron game play, I imagine that the algorithm will have a head start over the new influx of slashdot visitors and start to win more often than not over the next week. I never got to play though. The SQL db to mange the stats was already down then I tried.

  22. This can't be legal by TimCrider · · Score: 2, Funny


    What happens if someone caches Metallica, or the new super hot J-Lo movie? Then how is the guy who brings the director a warm towel ever going to make his money?

    You guys should really think before you go out and start making technology that blatently abuses copyrights

    </sarcasm>

    1. Re:This can't be legal by sharkey · · Score: 1
      What happens if someone caches Metallica, or the new super hot J-Lo movie?

      Damn big cache, to hold that much ass :}

      --

      --
      "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
  23. Re:*sigh* by NialScorva · · Score: 4, Informative

    Evolution is the change in allele frequencies over time. Pure and simple, that's all it is. Check any evolutionary biology book. The notion of giraffes sprouting gills is absurd and not even remotely what evolution is except in the creationist strawmen. What prevents a whole lot of small changes from adding up? No one has discovered a barrier or any reason that this wouldn't occur. It's like saying that water can move grains of sand, but there's no proof that a lot of water will eventually erode a beach.

    The evolutionary algorithm will have a range of all possible algorithms that can be developed, so in a sense it is limited to "test various algorithms", though it would be testing all possible algorithms. Similarly biological evolution is limitted to testing various imperfect self-replicators, meaning all possible imperfect self-replicators. It is further constrained by the current state, but then that's the problem with non-biological GAs as well, the King of the Hill effect.

  24. This seems a little...selfish by PhysicsGenius · · Score: 2, Insightful

    "Priming the cache" and "doing a breadth-first fetch on a page" are both things that create *more* network traffic on the off-chance that it might save some number of microseconds for the user. It's basically a Tragedy of the Commons situation. Everyone would be better off if no one pre-fetched links, but any given person is better off if they don't cooperate with that global model. So everyone just grabs what they can get and everyone is worse off.

    1. Re:This seems a little...selfish by droleary · · Score: 4, Interesting

      "Priming the cache" and "doing a breadth-first fetch on a page" are both things that create *more* network traffic on the off-chance that it might save some number of microseconds for the user.

      More traffic isn't necessarily bad. While what you say is true, you fail to note that user-initiated traffic is done in bursts. Just like your CPU is idle >95% of the time, so is your network connection. So all users benefit, both in real and perceived performance, when there is a steady 100% utilization.

      So everyone just grabs what they can get and everyone is worse off.

      Again true, but naive. What would be better is if there were a mechanism to prioritize the pre-fetch cache. Every page has one link that is pretty much the most likely next page. Then a secondary link, and so on. Ideally, a site owner should be able to put that priority list somewhere in the page such that a user agent can start getting it after the current page has loaded and is being read. Otherwise, maybe the user agent can favor new content (i.e., compare this load of Slashdot with the one done five minutes ago and grab the links in the diff). That's a far cry from a mad grab, and would probably benefit all parties involved.

    2. Re:This seems a little...selfish by qbwiz · · Score: 1

      There's the link tag for html headers, which specifies the next page, previous page, and things like that. It's not prioritized, but if it's used, it can give a good idea of what the user will do.

      --
      Ewige Blumenkraft.
    3. Re:This seems a little...selfish by droleary · · Score: 2, Interesting

      There's the link tag for html headers, which specifies the next page, previous page, and things like that.

      Ah, I knew it was too good an idea to be all my own! For those not aware of how to use the link element for that, I found this page as well as this one. I don't know how widely it is used by site designers, and I can't say I know of any web browsers that use it, but I would say it is definitely something a proxy server should be taking advantage of. It's use is even stated directly in the second document:

      User agents may choose to preload the "next" document, to reduce the perceived load time.
    4. Re:This seems a little...selfish by Anonymous Coward · · Score: 0

      Just like your CPU is idle >95% of the time, so is your network connection

      Maybe your connection is idle. But what about the server's? It only takes a few people making use of their idle connection to swamp the server's full bandwidth.

      This is known locally as the Slashdot effect. My connection isn't busy, but darned if I can read those linked sites.

    5. Re:This seems a little...selfish by droleary · · Score: 1

      Maybe your connection is idle. But what about the server's? It only takes a few people making use of their idle connection to swamp the server's full bandwidth.

      Well I did call for 100% utilization, not 200%. So, yeah, every chain has a weakest link, which is why I favored a solution that the server controlled. As noted elsewhere in this thread, the basic way to handle this is already in place with the link element. If a site is being overloaded due to unfollowed "next" links, it can feed up a page that doesn't have them.

      This is known locally as the Slashdot effect. My connection isn't busy, but darned if I can read those linked sites.

      That's not an interesting statement, though. What would be interesting is if you were to actually measure the differences between a Slashdotting using a pre-cache and not using it. I think you will find that a pre-cache allows the load to be better spread out over time. A normal Slashdotting is just the kind of burst traffic I was talking about. Doing a preload allows both the client and the server to respond to the request over the minute (or whatever) it takes to read to a page before moving on to the next one. Yes, the server will likely see more traffic than without caching due to misses, but just as with the CPU, you get much better performance with a cache that misses sometimes than without a cache at all.

    6. Re:This seems a little...selfish by Anonymous Coward · · Score: 0

      Slashdot itself uses link elements. If you use Mozilla, you will see the "Previous", "Next", etc., buttons on the toolbar become enabled, indicating the presence of link elemnts on the page.

  25. I've a question by IWantMyNickBack · · Score: 1

    Can we use this tech to fix DNS? It's a really obsolete system, IMHO.

    1. Re:I've a question by onash · · Score: 1

      yes, this technology can be used to fix every part of the Internet, it can even solve all of computer science problems!

      They just don't bother to use it on more than one problem a year, selected carefully at random from a really big hat.

    2. Re:I've a question by Fizzl · · Score: 1

      Or SMTP? That's obsolete too!

      Please people, before hitting submit, think atleast a second what you are saying.

      "I have this hammer here. It's really handy for hitting nails."
      "Oh cool, I have this piece of two-by-four here. Can I cut it in half with that?"

      (If you did have some kind of point, please elaborate.)

  26. Re:*sigh* by Conspiracy_Of_Doves · · Score: 3, Informative

    ANY environmental adaptation of genetic code over multiple generations is evolution. It does not have to be a major change. BTW, creationists are the only ones that make a distinction between macro-evolution and micro-evolution. If fact, creationists are the only ones that I have ever heard use the terms.

  27. Re:*sigh* by Threni · · Score: 1

    All it will do is automatically "test" various algorithm codes until it finds the one that works best for its current situation.

    Are you sure? The article says:

    The algorithms that reduced network traffic and improved download speeds best were then used to "breed" a new population of algorithms. Breeding involves combining different pieces of an algorithm and introducing some random mutations. The process can be repeated again and again to improve efficiency.

    Looks like what is happening can be described as evolution. You said:

    Breeding, OTOH, merely pushes various existing genetic codes to become dominate. e.g. A wolf might develop a thicker coat of fur in a colder climate, while his southern cousin continuously sheds. In both cases the code already exists, the most useful one for the environment merely bubbles to the surface.


    As I understand it - from my reading of Climbing Mount Improbable by Dawkins - you've just described evolution. Perhaps you're using a different, far more strict definition of the word?

  28. Re:*sigh* by pubjames · · Score: 1

    I know I'm going to get myself into trouble for saying this, but "breeding" is NOT evolution!

    That is a nonsensical statement. Breeding is fundamental to evolution, whether it be sexual reproduction or asexual splitting. Of course, breeding itself isn't evolution, but it is the process through which evolution occurs.

    You seem to assume that the genes are unitary, descrete entities - that evolution occurs when, (to use your example) a giraffe suddenly gets the correct genes to develop gills. Genetics is much more complex than this.

  29. Re:Sigh... by ScytheBlade1 · · Score: 1

    Actually, if you're in canada, your users should be just fine... However, I don't know how this ruling would affect caching services.

    In the states, there's already several states that have laws which prevent an ISP from setting up any kind of cache. So, I don't even know what good this would do a few states, since they can't legally impliment caching services.

  30. Re:*sigh* by GeckoUK · · Score: 2, Insightful

    Score:3 Insightful? when did creationist trolls become insightful?

    Nature makes no distinction between your so called macro and micro-evolution. Rather there are to separate processes at work that combine to produce evolution.

    1. Survival of the fittest (what you call environmental adaptation) starts with a population with a mixture of genes and states that those best able to reproduce in the current environment will probably make up a larger percentage of the next generation.

    2. Genetic crossover during reproduction and random mutation, happens to keep the gene pool mixed and introduces new adaptations. This provides the "raw material" for survival of the fittest to work on.

    Large changes are unlikely in nature because 99.999999% of major random changes to an organism will result in something that is less fit than its siblings (a giraffe with gills for instance will either suffocate in the savannah, or be unable to eat if by some miracle it also finds itself in the ocean), small changes however have better chance of being an incremental improvement that will become dominant in a population through natural selection. These small changes WILL compound over time to produce major changes in physiology (for example the way whales have adapted back to living in the oceans (actually for a really good example go read Richard Dawkins description of how eyes have evolved in many different creatures as it strikes down very effectively the old creationist chestnut of "the eye is far to complex to have ever evolved in stages")).

    ARRGGHHHHH why did I bother writing all this, I know you are a troll.

  31. Re:*sigh* by The+Cydonian · · Score: 3, Insightful
    I'm presuming you come from a biological background, but allow me to say this:- evolutionary programming is more about using evolution as a metaphor rather than modelling evolution per se. This I gathered after endless conversations with my (gastroenterologist) dad and (plant pathologist) mom on my research work in my final year of college.

    Most computer scientists loosely use the term "evolutionary programming" to talk about algos that have inherently unpredictable ("emergent") results rather than modelling actual evolutionary processes observed in nature, although that's also a fair part of it all. (Incidentally, I also believe the "Science" topic assigned to this story is wrong for this reason.)

    The meta-algo is evolutionary programming in that the algo fianlly "developed" by the meta-algo is apparently result that isn't immediately apparent, indeed, one that perhaps unpredictable by humans.

  32. why the hell is "evolved" in quotes??? by HelloKitty · · Score: 1

    why the hell is "evolved" in quotes???

    just because algorithms aren't alive doesn't mean they can't be evolved.
    (notice how nice this sentance still looks without the quotes)

    1. Re:why the hell is "evolved" in quotes??? by Anonymous Coward · · Score: 0

      I can imagine how the poster is making the bunny-ear quote signs with his fingers while he's writing.

  33. Re:*sigh* by Anonymous Coward · · Score: 0

    A search space of one kilobyte would have 2^1024 cases to mutate through. Despite any effecient evaluation of each case, this method is going to take forever. Genetic algorithms rarely work in such general cases (moving through the entire bit-space).

  34. No info by 12357bd · · Score: 1

    No info about the genetic algortihm used. I though New Scientist was a science paper...

    --
    What's in a sig?
  35. Re:Sigh... by snowlick · · Score: 1

    The team used a network simulator to test out different caching strategies. They created a simulation of a branch of internet network where data could be copied and stored at every major intersection. They used this simulation to test algorithms used to configure the caches.

    The algorithms take known variables, such as the number of times a piece of data is requested, the number of points it has to pass through and its overall size, and work out whether it should be stored and for how long.


    So they're evolving storage time and location. At least that's all it makes clear.

    --
    Crystal Meth: Would you ingest somthing made from a poisonous gas and an explosive metal? You do it every day -- Salt!
  36. Re:*sigh* by StrawberryFrog · · Score: 2, Insightful

    Evolution implies ... e.g. An ameba suddenly mutates into a multi-celled configuration. Or a giraffe suddenly develops gills (Emphasis added).

    Rubbish. There's nothing sudden implied.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  37. Re:*sigh* by Laxitive · · Score: 3, Interesting

    If you had studies GAs, you would know that GAs do "create" new information that doesn't exist in the original solution set (i.e. any given generation of potential solutions).

    GA systems both propogate "good" information, as well as generate and test new information incrementally across generations. Of course, this is done within whatever limitations you choose to impose on the solution set (i.e. if you're using a fixed N-bit string to represent entities in the solution space, then you'll search across all 2^N possible solutions in the N-bit string space).

    Fundamentally, GAs are just a way of searching a solution space for good solutions. They are slow, but can tackle a more diverse set of problems easier than the traditional backpropogation-based neural network. I would consider neural networks to be more in line with your description of an 'adapting' learning algorithm.

    The following analogy can only be taken so far, but you can compare backpropogation-based neural networks to be akin to hill-climbing algorithms - you start from one solution, move some limited distance towards what you think is a better solution. For a neural network with N vertices, you can think of neural network learning as hill-climbing in an N-dimensional space over whatever field used to specify edge weights.

    GAs, on the other hand, do a much more disparate search over any solution space. And it is surprising how well it finds near-optimal solutions even for problems where the relation between solutions is complex and non-intiuitive (e.g. minimums for seemingly chaotic functions).

    -Laxitive

  38. Re:*sigh* by Anonymous Coward · · Score: 0

    Back on topic, this means that this "evolved" cache won't do anything it wasn't programmed to do. All it will do is automatically "test" various algorithm codes until it finds the one that works best for its current situation.

    It's common for genetic algorithms to start out as random data. The structures of the algorithms arise over many generations. The major guiding force behind the algorithm development is how the "fitness" of the algorithms is measured, and that in no way defines the structures of the algorithms.

    It really sounds like you are completely unfamiliar with genetic algorithms. If so, your final statement is pretty damn hypocritical.

  39. Re:*sigh* by Anonymous Coward · · Score: 0

    Whoever modded this up should be slapped in the face.

  40. A new sorting algorithm also ... by ThomasCR · · Score: 2, Informative
  41. What makes a good cache?-It's alive. by Anonymous Coward · · Score: 0

    Slightly OT. How does one determine that their cache is working properly? I have a cache and it doesn't appear to make that much of a difference with content, or DNS.

  42. Genetic Algorithms for Freenet-Project? by Anonymous Coward · · Score: 0

    This should be interesting also for the Freenet Guys. Their Datastore currently uses something like LFU i think. Implementing a better algorithm could reduce Hop Times and Performance of the whole Network.

  43. Re:*sigh* by Anonymous Coward · · Score: 0

    One KB would be 8^1024 cases. Genetic algorithms have been done before on 1800 bit search spaces. Genetic algorithms don't move through the entire bit-space.

  44. not even close by Anonymous Coward · · Score: 5, Insightful

    Garbage collection is required to be correct, but is allowed to keep extra stuff around as memory permits. Everything that must be kept can be calculated deterministically without future knowledge, and the same holds true for everything that can be discarded. Approximation merely allows the what can be discarded calculation to progress faster. In garbage collection it is not correct to throw out something that will not be used in the future unless it is also unreachable.

    For cacheing there is no requirement of correctness. Performance is improved when things that will be used in the future are kept. There is no correctness requirement for keeping things around, and indeed best performance often requires discarding things that will be used in the future. In addition, there is no way of determining what will be used in the future without knowledge of the future. The correctness requirements of a cache are related to security (don't cache sensitive information) and staleness (don't cache stuff that is too old), but even those may be relaxed rather than strict requirements.

    Fundamentally the two problems are very different, and algorithms that deal are successful in the two different cases will likely be very different.

    1. Re:not even close by Alexis+de+Torquemada · · Score: 1

      In garbage collection it is not correct to throw out something that will not be used in the future unless it is also unreachable.

      It is correct to do so, but in practice, you cannot be certain that the data will not be used, unless it's unreachable.

  45. Twice as efficient by digitaltraveller · · Score: 0, Troll

    Are we impressed? A mere doubling in efficiency should be achievable by even the drunkest engineer in all but the most well studied problems.

    Let's talk an order of magnitude and then you will get my attention. Caching...Hah! I want fibre to my wetwire.

    +1 Insightful

  46. Hill-climbing may well be better by Anonymous Coward · · Score: 0
    It's pretty common for hill climbing to beat genetic algorithms, yet people often don't even bother to try hill climbing.

    This paper has a bunch of examples.

    1. Re:Hill-climbing may well be better by Anonymous Coward · · Score: 0

      GA's are just a mixture of hill climbing + random seeds. Nothing more. Therefore, they can be the best of both worlds. The unfortunate fact that, in practice, many GA's spend too much time randomizing when they should be hill climbing doesn't mean all GA's are bad. It just means some GA's are poorly implemented.

    2. Re:Hill-climbing may well be better by Anonymous Coward · · Score: 0
      GA's are just a mixture of hill climbing + random seeds. Nothing more.


      GAs with sexual reproduction are quite different from hillclimbing, since offspring are usually distant from either parent.


      Asexual reproduction could maybe be described as a form of parallel hill-climbing, but even that is more like simulated annealing since it allows temporary decreases in fitness.

    3. Re:Hill-climbing may well be better by 55555 · · Score: 1

      No, it is not. We have to pick our problems carefully to avoid running into No-Free-Lunch, but there are problems that hillclimbing is better on, and there are problems that GAs are better on.

      If you're interested in toy problems, consider the simple "deceptive" problems of David Goldberg. These tend to be difficult for hill climbers, as the derivatives for decomposable segments lead to local optima. With folded traps, for instance, there are many many local optima. Bad for hill climbers.

      Hill climbers are a great first thing to try with real world hard problems. But if they fail, GAs are a good tool to try. The only problem is that there are a lot of variants currently, and some research is not generally applicable. The field is immature.

      Simmulated annealing, on the other hand, is a much more mature tool. Also very respectable and very useful.

      If I am not being trolled, all I can recommend is reading more or, better yet, hire someone that actually, genuinely knows what they're talking about. Jürgen Branke is a perfect example, he has a very impressive track record.

    4. Re:Hill-climbing may well be better by 55555 · · Score: 1

      I missed a bit to respond to previously. You (the parent) cited a paper from 1994. This is too far back in GA history for GAs to be seen as robust searchers. That was aroung the time of the first truly usable population sizing algorithms which clearly showed that some algorithms being passed off as GAs were best-case exponential time algorithms for a class of simple problems (boundedly deceptive problems).

      Time marches on and GAs are significantly more useful now than they were in 1994. You can't rely on data from that far back as your sole guide. Even though GAs are definitely worse than hill climbing for some problems (minimize x^2).

  47. 50% of all bits by TMacPhail · · Score: 3, Funny

    50% of all bits sent over the internet are 0s. Just cache that and we have a 50% cache hit rate. :)

    1. Re:50% of all bits by ThomasCR · · Score: 1

      Then you have to know, which bits have been cached and which haven't. This costs 1 bit per bit.

    2. Re:50% of all bits by Anonymous Coward · · Score: 0

      Yeah, but if you read the paper, for many of their tests, they're getting 60% hit rate. You'll have to cache the 1's, as well, doubling your cache size to two bits to get a 100% hit rate. Then you'll be criticized because you've developed a rinky-dink two-bit algorithm.

  48. Re:*sigh* by operagost · · Score: 1

    Sometimes people call "microevolution" "natural selection".

    --

    Gamingmuseum.com: Give your 3D accelerator a rest.
  49. Security by Door-opening+Fascist · · Score: 1

    The problem with caches is whether you can trust them. Even assuming you can keep the caches properly up-to-date, how do you prevent cache poisoning from taking place?

  50. Re:*sigh* by AKAImBatman · · Score: 0, Troll

    Evolution is the change in allele frequencies over time. Pure and simple, that's all it is. Check any evolutionary biology book.

    No, it's not that simple. Evolution has been defined as changes adding up enough so that a single celled organism becomes a multi-celled organism, which develops RNA and DNA, which then grows in complexity to develop various "macro" level systems such as a cardio-pulminary system, a digestive tract, a nervous system, and a central control "brain" system. Each of these changes requires a macro change of which no predecessor exists in the current chain of organics.

    The notion of giraffes sprouting gills is absurd and not even remotely what evolution is except in the creationist strawmen.

    Actually, my first example was the very real issue of a single celled ameba becoming multi-celled. A giraffe sprouting gills would be an evolutionary change, but is highly unlikely. A more realistic example is a fish developing lungs. According to the current theories, most life originated in the ocean. I don't remember if the current thought is that lungs and gills developed simultaneously or if they developed in unison. Either way, the effect is much the same. A low order life form developed features not currently in its genetic makeup.

    It's like saying that water can move grains of sand, but there's no proof that a lot of water will eventually erode a beach.

    That's a perfectly valid assumption. How do you know that grains of sand don't get carried down to replace the ones that are eroded? Without proof that the grains are carried away without being replaced, you only have a supposition. You must have evidence to make it a workable theory, and absolute proof to call it a fact.

    The evolutionary algorithm will have a range of all possible algorithms that can be developed, so in a sense it is limited to "test various algorithms", though it would be testing all possible algorithms.

    Which is exactly my point. No new algorithm will be generated through the "genetic breeding". Only existing algorithms will rise to the top.

  51. Re:*sigh* by Conspiracy_Of_Doves · · Score: 2, Informative

    Natural selection is one of the methods (the other being sexual selection) by which all evolution (macro and micro) proceeds.

  52. Re:*sigh* by Eevee · · Score: 1

    I'd like to see an ameba gradually become multicelled. I just get this image of a far side cartoon of an ameba sitting around with a cup of coffee in the middle of meiosis, saying "I don't care if you haven't finished splitting off, I've got tickets to the ballgame so I'm dragging you along."

  53. Skips too far forward by Lulu+of+the+Lotus-Ea · · Score: 2, Informative

    Evolution is *not* the "change in allele frequencies over time." Or at least that's a secondary issue, historically, conceptually, and causitively. Well, on the last, allele frequency is pretty important (but still not exclusive). But evolution as a concept is firstly a question of PHENOTYPIC change, even before it's about GENOTYPIC change.

    Evolution was a well known phenomenon (e.g. from the geological record) long before the work of Mendel was known. Specifically, the rather well known Darwin had no concept of an allele when he came up with the Theory of Evolution by Natural Selection. In fact, Darwin's approach was most certainly not the only explanation of evolution floated in 19th century biology. For example, Lamarckian mechanisms had a plausibility at the time... in fact, Lamarckian mechanisms still represent an important underexamined area of evolutionary mechanisms, for historical reasons (Lysenko etc.)--see, for example, the work of Ruth Hubbard and the role of viral insertions into the genome. So the whole allele thing is only part of one (important) mechanism, only understood relatively late in the scientific study of evolution.

    Moreover, even in modern terms, mutation still exists; admittedly, the high-school text book focus on point mutations of genes is vastly overplayed. But just looking at allele frequencies misses also both the role of regulatory genes, and also ignores structural changes in chromosomes. Genes and smaller sequences migrate within and between chromosomes--this has nothing to do with alleles. Stephen Gould's work on phentotypic growth regulation in _Ontogeny and Phylogeny_ is good here, as is the tome _Structure of Evolutionary Theory_.

    1. Re:Skips too far forward by Dimensio · · Score: 1

      Evolution is *not* the "change in allele frequencies over time."

      "In fact, evolution can be precisely defined as any change in the frequency of alleles within a gene pool from one generation to the next."

      - Helena Curtis and N. Sue Barnes, Biology, 5th ed. 1989 Worth Publishers, p.974

  54. Re:*sigh* by AKAImBatman · · Score: 0, Troll

    ANY environmental adaptation of genetic code over multiple generations is evolution.

    No, it's been shoe-horned into the theory. Evolution is a concept that a new, higher level trait will develop when no prior concept exists. For example, a single celled organism will become multi-celled, multi-celled with develop "cell types", and "cell types" will organize to produce higher systems (circulatory, digestion, nervous, brain, etc.). That's the theory. It's a fine that it's being worked on, and I have no issue with that. But adaption to environment is a different concept. They can theorize that it's related in some way, shape, or form, but until someone can show that new genetics suddenly "appear" through the same process, you can't force the two concepts together.

    If fact, creationists are the only ones that I have ever heard use the terms.

    I don't know where you ever got that idea. I'd never heard of the terms until evolutionary texts started using them. As usual, Wikipedia has the info.

  55. Re:*sigh* by AKAImBatman · · Score: 1

    The article and my own words stated the same thing. Information on the previous "generation" is used to adapt to the current environment. No "new" algorithm is "evolved", merely a new combination of existing algorithms.

    As I understand it - from my reading of Climbing Mount Improbable by Dawkins - you've just described evolution. Perhaps you're using a different, far more strict definition of the word?

    My statement is that "macro-evolution" is the basic concept of evolution. i.e. A single celled organism can become multi-celled, develop DNA, separate into different cell types, etc., etc., etc. "Micro-evolution" is really just a shoe-horning of environmental adaption into evolutionary theory. While it adds the concept of "genetic mutations" to the DNA, it fails to consider the fact that DNA is a trait that had to "evolve" itself. A "simple" one celled organism would have lacked the concepts necessary to process and create complex DNA.

  56. Re:*sigh* by Anonymous Coward · · Score: 0

    I'd like to see an ameba gradually become multicelled. I just get this image of a far side cartoon of an ameba sitting around with a cup of coffee in the middle of meiosis, saying "I don't care if you haven't finished splitting off, I've got tickets to the ballgame so I'm dragging you along."

    That's like asking to see lead gradually become gold, then still calling it lead. Now there are many singled-celled animals that form colonies that live vary closely together. I also know that in the mid-depth water colum there is at least one creature that blurs the line between multi and single-celled animals. Genetically the cells are distinct enough to be concidered separate species. However, they are specialized to the point where they can't live without each-other. I am sorry I can't recall the name of this animal/colony of animals, it was only mentioned briefly in a deep-sea documentary.

  57. so far so good but.. by brunokummel · · Score: 3, Insightful

    Caching information can also be used as a backup of data in case the server crashes or has its data compromised by a virus , hacker, whatever you feel like ..
    so what happens if you, for instance, have a security hole in one of your "smart" servers?? or even a breach in the protocol structure (DoS)?

    you could get the server to "breed" algorithms that would stop all servers by either corrupting the data in all servers that are providing the service or just DoS-ing them.

    I guess i'm not yet convinced that this solution is of any good for real world network which the whole structure is based on insecure protocols.
    maybe after IPV6, IPV9, who knows?

    --
    What is best in life? To crush your enemies, to see them driven before you and to hear the lamentations of their women.
  58. Re:*sigh* by AKAImBatman · · Score: 1

    Breeding is fundamental to evolution, whether it be sexual reproduction or asexual splitting.

    Breeding is fundamental to life. Life is fundamental to evolution. Evolution tries to describe how organic soup could form simple organisms that become progressively more complex.

    You seem to assume that the genes are unitary, descrete entities - that evolution occurs when, (to use your example) a giraffe suddenly gets the correct genes to develop gills. Genetics is much more complex than this.

    Genetics is certainly more complex than that. But as for a sudden change of no gills->gills, it depends on who you talk to. Some theorists have suggested that changes did indeed happen rapidly. This would explain how the fossil record shows changes happening at a rapid pace, with very little in the way of "in-between" states. Other theorists suggest that things were more gradual, but at a level that is more difficult to notice. Either way, they agree on one point: a "simple" organism went through large degrees of change to develop biological processes that didn't exist when the the organism was first formed. Thus in some way, shape, or form, the organism was able to "create" new concepts.

    The genetic algorithm we're discussing doesn't do that. It simply creates a new "mix" of algos that work best for the current environment. While there's nothing wrong with that, the algo isn't going to cause the computer to eventually develop an intelligent neural net. (Unless a human added neural net code, that is.)

  59. Re:*sigh* by AKAImBatman · · Score: 1

    They create new "information", not new "algorithms". Evolution supposes that organisms create new "biological processes", analogous to "algorithms".

  60. Re:*sigh* by AKAImBatman · · Score: 1

    I wish the mods had given you a +5. My peeve is exactly what you describe: that "evolution" is being used as an analogy rather than a realistic description of what it does. "Genetic Algorithms" is a fine name, and "breeding" is an accurate concept. But "evolving" is misleading to a very extreme degree. There's no need to describe the process as "evolution", yet CS researchers persist in doing so.

    That being said, it can be a great tool for auto-adjusting software to its environment. If it works out, it may even be applicable to robotics where the concept can help the robots act more "intelligently". (e.g. Stop trying to drive over rocks and "learn" to drive around them.)

  61. Re:*sigh* by Conspiracy_Of_Doves · · Score: 1

    The two processes you are describing are the same thing. One simply takes a lot longer. Someone else in this thread made a great analogy about how saying that microevolution is possible while macroevolution is impossible is like saying that water can wash away individual grains of sand, but can't erode away a beach.

    One of the problems with creationists is that they have a hard time conceiving of the incredibly vast amount of time that has passed which makes macroevolution possible.

    I don't know where you ever got that idea.

    What idea? That creationists are the only people I have heard use the terms? From the fact that they are the only ones I have heard use the terms. Read it carefully. No where did I say that they aren't scientific terms. I am well aware that they are. Creationists have latched onto them and gotten it into their heads that they are two different things.

  62. not intelligent design by CausticPuppy · · Score: 1

    The evolution that is described in this article is anything but unguided. Researchers took existing carefully developed code. They selectively combined parts of this code. They studied the resulting effects to produce better code. This looks much more like Intelligent Design [discovery.org] than anything Chuck Darwin ever dreamed up.

    No, if it were truly following the "intelligent design" theory, there wouldn't be any trial and error to begin with. The code would be written once, from the ground up, and it would work just as well as any code possibly could, without ever needing to selectively combine anything.

    Also, your textbooks had Evolution wrongly defined. It is not random, unguided change. The mutations themselves may be random, but the environment (including predators) is what guides the changes, by causing favorable mutations to progress through the gene pool while unfavorable mutations die out quickly.

    --
    -CausticPuppy "Of all the people I know, you're certainly one of them." -Somebody I don't know
  63. Re:*sigh* by AKAImBatman · · Score: 1

    Sir, I requested intelligent discussion, but you yourself have taken to trolling. First you make an accusation ("creationist troll") which neither has any bearing on the subject, nor is in any way true. You will note that I never suggested that evolution is a "made up" process. That is outside the realm of this discussion. All I claimed is that the "Macro/Micro" division is an as-of-yet-unsupportable position that causes a great deal of confusion. The algorithm described in the article will not "evolve" in the "macro-evolutionary" sense, but will instead adapt in the "micro-evolutionary" sense.

    1. Survival of the fittest (what you call environmental adaptation) starts with a population with a mixture of genes and states that those best able to reproduce in the current environment will probably make up a larger percentage of the next generation.


    Exactly. It allows the organism to best meet its current environment. However, it cannot be the vehicle for the creation of new, nonexistent biological processes. The mechanism for that must be much different as organisms must have evolved from a "simple" organism, to a "complex" one.

    2. Genetic crossover during reproduction and random mutation, happens to keep the gene pool mixed and introduces new adaptations. This provides the "raw material" for survival of the fittest to work on.

    Random mutations only gain you so much, and in all cases are also harmful in the same way they are helpful. Sickle-cell anemia is an example of a mutation that is used to adapt to the environment (resistance to malaria), but has negative side effects on the gene pool (causes early death in nearly all who contract it). The process that took a "simple" organism to a "complex" organism must therefore be far more sophisticated.

    ARRGGHHHHH why did I bother writing all this, I know you are a troll.

    Insult number 2. Why can't people discuss this topic without throwing around insults? I'm not sitting here trying to convince people that evolution is an incorrect theory. I'm merely complaining about the confusion caused by mixing the ability of an organism to adapt using its existing genome as opposed to the concept of a more complex organism forming from a simpler one. I suppose I knew what I was getting into when I posted.

  64. What makes a good cache?-Fuzzy thinking. by Anonymous Coward · · Score: 0

    For a simple method to solving complex problems. There's also Fuzzy logic.

  65. Why?... by theneb · · Score: 1

    Why?....Why?....Why?....AHHHH...

  66. Re:*sigh* by AKAImBatman · · Score: 1

    The two processes you are describing are the same thing. One simply takes a lot longer.

    No, they are theorized to be related. Macro level changes require a mechanism more sophisticated than that of "micro-evolution". "Micro-evolution" requires an existing genome from which to pull, and only allows for a small degree of genetic mutation. As I replied to another poster, Sickle-cell anemia is a perfect example of a mutation that "helps" by resisting malaria, but it has the side effect of an early death for the organism.

    In fact, SCA makes the perfect point that genetics is a zero-sum game. To gain certain advantages, some must be given up. This always confused me when I was working in the livestock genetics field. All the charts of the cows' features always appeared to sum to the exact center. i.e. The perfect cow was a perfectly average cow. Well, I spoke with my colleagues and learned I was correct. All we were doing was breeding for some "desirable" features (often fads) at the expense of other features of the cow.

    One of the problems with creationists is that they have a hard time conceiving of the incredibly vast amount of time that has passed which makes macroevolution possible.

    No, I have no problem with the amount of time. I have a problem that "micro-evolution" is not a sufficient process for "macro-evolution". Theorists divide the two because they are not provably related. From Wikipedia:

    There are two proposed mechanisms for macroevolution. The first way is through the extrapolation of microevolutionary processes. Tiny microevolutions, over sufficient time, add up and accumulate in isolated populations and eventually result in new species. The second way in which "macroevolution" is believed to occur is through sudden and rapid changes. This theory, punctuated equilibrium, put forth by Stephen Jay Gould, is based on the fact that there are critical genes (such as the homeobox) in all living organisms, and a small change in them could cause drastic changes in the organism, resulting in a new species quite rapidly.

    [snip]

    The additional information needed for these structures did not arise from the mutation, of course, but existed elsewhere in the animal's DNA and was replicated at the novel location.


    No provable link yet exists between micro and macro evolution. Until such a link is proven, the term "micro-evolution" continues to be misleading.

    What idea? That creationists are the only people I have heard use the terms? From the fact that they are the only ones I have heard use the terms. Read it carefully. No where did I say that they aren't scientific terms. I am well aware that they are. Creationists have latched onto them and gotten it into their heads that they are two different things.

    Then I believe, sir, you are trolling. If they are scientific concepts, then claiming that creationists are the only ones who vocalize them is an underhanded way of insulting anyone who discusses the topic.

  67. Re:*sigh* by NialScorva · · Score: 2, Informative

    No, it's not that simple. Evolution has been defined as changes adding up enough so that a single celled organism becomes a multi-celled organism, which develops RNA and DNA, which then grows in complexity to develop various "macro" level systems such as a cardio-pulminary system, a digestive tract, a nervous system, and a central control "brain" system. Each of these changes requires a macro change of which no predecessor exists in the current chain of organics.

    That is one of the facts that it explains, not the definition. You're doing the equivalent of saying that a ball falling is the definition of gravity. Evolution is the collection of mechanisms by which these occur, which under the modern synthesis is by various alleles changing over time in a population.

    Actually, my first example was the very real issue of a single celled ameba becoming multi-celled.
    And oddly, stages between single cell and multicell still exist. The Volvox are single cell creatures that only function in colonies. A colony is a sphere that can grow a daughter colony inside it, then give birth to a new colony. Yet all of the cells involved are generic, not specialized into tissues. Sponge and jellyfish are on the other end of the gap. They both show tissue level specialization without organs.


    A giraffe sprouting gills would be an evolutionary change, but is highly unlikely.

    A giraffe sprouting gills would be a challenge to modern evolutionary theory, not an example. Modern evolution relies on the existing material being gradually changed or coopted.

    A more realistic example is a fish developing lungs. According to the current theories, most life originated in the ocean. I don't remember if the current thought is that lungs and gills developed simultaneously or if they developed in unison. Either way, the effect is much the same. A low order life form developed features not currently in its genetic makeup.

    Such as a mud skippers and lung fish? They both occupy niches and use mechanism similar to the first air-breathers using modified gills and air bladders, respectively. Not only are the transition species possible, but they're descendants still exist.

    Which is exactly my point. No new algorithm will be generated through the "genetic breeding". Only existing algorithms will rise to the top.

    That's interesting. I can write a program that contains the Axioms and rules from ZF Set theory, then randomly applies them to create new theorems. But that would be pointless since only theorems that existed in the orginal data and algorithms "will rise to the top". The whole of mathematics is pointless since all theorems are tautologies from the axioms and rules of manipulation.

  68. Overly simplistic by Jonathan · · Score: 1

    "In fact, evolution can be precisely defined as any change in the frequency of alleles within a gene pool from one generation to the next."

    Yes, you *can* define evolution that way (to be precise, one group of biologists, the population geneticists, do define evolution that way). However, that's an entirely different statement than saying that's the *only* valid definition of evolution, which seems to be what you're implying.

    As a molecular evolutionist, I find alleles to be too high level -- I deal with the evolution of sequences themselves. And a zoologist would probably claim that alleles are too low level as zoologists mostly deal in phenotypes.

    1. Re:Overly simplistic by NialScorva · · Score: 1

      Yeah, there are certainly other definitions. I didn't mean to state that as the only possible definition, only that it was the best description of modern evolutionary theory as applied to the current topic of conversation. I find the allele level interpretation much more useful as a parallel to GAs than a molecular, codon, or population level.

      In the end, though, you can show that the molecular evolutionist and the zoologist's definitions are equivalent to the population geneticist definition, and vice versa. There's also 1001 ways of "defining" the Second Law of Thermodynamics, but that doesn't invalidate telling a creationist using the old "entropy means order never spontaneously appears" that the 2nd law doesn't say that at all, even though some of them really do for precise definitions of "order" and "spontaneously".

  69. You forgot two. by Alexis+de+Torquemada · · Score: 1

    Natural selection is one of the methods (the other being sexual selection) by which all evolution (macro and micro) proceeds.

    Mutation and genetic drift. Also, the term natural selection as Darwin used it included sexual selection (besides ecological selection). The term is used to distinguish these kinds of naturally occuring selection from intentional breeding, which is called artificial selection.

    1. Re:You forgot two. by Conspiracy_Of_Doves · · Score: 1

      Mutation is what all selection is based on, but you are right in that I forgot genetic drift.

  70. Re:*sigh* by AKAImBatman · · Score: 1

    That is one of the facts that it explains, not the definition. You're doing the equivalent of saying that a ball falling is the definition of gravity. Evolution is the collection of mechanisms by which these occur, which under the modern synthesis is by various alleles changing over time in a population.

    My argument is that "micro-evolution" has not been shown to be the mechanism by which "macro-evolution" can occur. The results of environmental adaption and genetic mutations are well known, but no one has yet shown how a new biological process can derive from one that currently does not exist inside the genome. For example, if humans lack the genome for an exoskeleton, and exoskeletons are "nature's selection" for space survivability, then the "micro-evolutionary theory" says that humans who live in space should eventually experience genetic mutations from which exoskeleton code will appear. The only mechanism that has been provably demonstrated is that existing codes can be reorganized to produce oddities such as legs growing from eye sockets, or extra thoraxes. (Source) Thus evolution is still described as a process, but the mechanism is still a topic of debate.

    And oddly, stages between single cell and multicell still exist. The Volvox are single cell creatures that only function in colonies. A colony is a sphere that can grow a daughter colony inside it, then give birth to a new colony. Yet all of the cells involved are generic, not specialized into tissues. Sponge and jellyfish are on the other end of the gap. They both show tissue level specialization without organs.
    [snip]
    Such as a mud skippers and lung fish? They both occupy niches and use mechanism similar to the first air-breathers using modified gills and air bladders, respectively.


    I'm not arguing the concept of evolution. I'm merely arguing that "micro-evolution" is not a proven method for such macro change. Until evidence exists to show that these sorts of biological changes can occur via genetic adaption and mutations, the name "micro-evolution" will continue to confuse things. In terms of "Genetic Algorithms", things have become particularly confused. The system will never develop a "new" algorithm, it will simply decided which combinations best meet the current environment. Nothing "evolves" through the process, merely "adapts".

    But that would be pointless since only theorems that existed in the orginal data and algorithms "will rise to the top".

    I hardly stated that GA's were "pointless". The idea is fine. However, it doesn't produce "evolution". A GA "caching" algorithm, for example, will never be able to "evolve" a P2P network to leverage existing caches like itself. It can't do that because the code doesn't exist.

    Similarly, no code existed in nature for "micro-evolution" to "mutate" lungs, electrical impulse handling, circulatory systems, etc. Either there are properties to "micro-evolution" that have not yet been revealed, or some other (possibly related) mechanism must be responsible.

  71. Re:*sigh* by Alexis+de+Torquemada · · Score: 1

    For example, if humans lack the genome for an exoskeleton, and exoskeletons are "nature's selection" for space survivability, then the "micro-evolutionary theory" says that humans who live in space should eventually experience genetic mutations from which exoskeleton code will appear.

    "All too often creationists spend their time arguing with a straw-man caricature of evolution."

    Well put.

  72. Re:*sigh* by NialScorva · · Score: 1

    My argument is that "micro-evolution" has not been shown to be the mechanism by which "macro-evolution" can occur.

    Define micro-evolution and macro-evolution and a set of criteria that a person could use to determine which of the two an adaptive event falls into.

    For example, if humans lack the genome for an exoskeleton, and exoskeletons are "nature's selection" for space survivability, then the "micro-evolutionary theory" says that humans who live in space should eventually experience genetic mutations from which exoskeleton code will appear.

    Selection is far more likely to make the species go extinct altogether, if I'm reading you correctly. Extinction by far the more common result of selection than success. Since the creation of nylon in the 30s, species of bacteria have evolved to eat it. If suddenly the entire planet had to survive off of eating nylon, you wouldn't see most species evolving that ability, you'd see most species going extinct. Evolutionary success usually occurs as a result of something moving from a niche that it already successfully occupies into an unoccupied niche.

    . For example, if humans lack the genome for an exoskeleton, and exoskeletons are "nature's selection" for space survivability, then the "micro-evolutionary theory" says that humans who live in space should eventually experience genetic mutations from which exoskeleton code will appear.
    [...]
    I hardly stated that GA's were "pointless". The idea is fine. However, it doesn't produce "evolution". A GA "caching" algorithm, for example, will never be able to "evolve" a P2P network to leverage existing caches like itself. It can't do that because the code doesn't exist.


    I don't believe you understand the word "evolution". Evolution is not a huge jump that rapidly redefines something, it's an almost unnoticable change over time. Evolution can be understood as a search through a problem space. The caching algorithm sets up a problem space of "all possible caching algorithms". A P2P server would be completely outside of the problem space and thus irrelavent. However, an explicit view of the problem space is far larger than the algorithm and seeding data. The GA is just a way to walk through a subset of the problem space in a way that lets you ignore large areas of useless algorithms. You certainly could create a GA capable of creating a caching algorithm or a P2P network, you'd just have to have a huge population size and millions of generations to do it. It wouldn't be worth the time.

  73. Freenet by zoeblade · · Score: 2, Interesting

    Doesn't Freenet already do this within its own network?

    1. Re:Freenet by Anonymous Coward · · Score: 0

      They should do so within the client as well since Freenet & LRU doesn't mix.

      Imagine a mesh of nodes that are connected to each other somehow. Everyone keeps track of data they are specialized in with an LRU cache. Now, something evil happens with the net and the nodes have to resort connecting entirely different nodes. This goes on for some time and the nodes lose quickly their specialization. When the situation normalizes, the data is lost and we are back in square 1.

  74. Prior art by ScaredSilly · · Score: 1
    Some folks at Santa Cruz have been working on this type of thing for a while now, except that the techniques the guys at UCSC are using are adaptive: as the workload changes, so does the algorithm. I doubt these guys could do better with an offline algorithm.

    Another related item is the ARC algorithm from IBM, which is an adaptive cache for block buffers.

  75. Re:*sigh* by Laxitive · · Score: 1

    Algorithms are just a certain kind of information.

    Consider a GA system that operated on bitstrings that are considered inputs to a universal turing machine. Then, the information created is an alrogithm.

    True, when designing a GA system to do that, you might have problems in creating test cases for evaluating solution fitness, but that doesn't detract from the point.

    There has been research done on using GAs on lisp-style expressions, using subexpression substitution instead of crossovers, to generate useful algorithms. GAs aren't just for parameter optimization, although they are particularly suited to parameter optimization problems.

    -Laxitive

  76. Re:*sigh* by Alexis+de+Torquemada · · Score: 1

    Nothing "evolves" through the process, merely "adapts".

    Nope. This is one and the same thing. E.g. there is plenty of molecular evidence that the blood clotting proteins forked off of pancreatic digestive enzymes by means of gene duplication and mutation. In embryonic development, some muscle cells are chemically activated to turn into bone cells. Archaeopteryx is still a tell-tale example of a gradual transition between bipedal dinosaurs and birds.

    Similarly, no code existed in nature for "micro-evolution" to "mutate" lungs, electrical impulse handling, circulatory systems, etc. Either there are properties to "micro-evolution" that have not yet been revealed, or some other (possibly related) mechanism must be responsible.

    The first fossil traces of lungs consist of a pair of small pharyngeal sacs in Actinopterygii. They may have populated oxygen-depleted pools and supplemented their oxygen supply by "gulping" air like some extant fish species do. Any slight increase in pharyngeal skin surface area and volume would have been of value to them, even if it just consisted of two tiny sacs at first. Tissue sensitive to electricity is found even in the lowliest of critters. Vertebrate circulatory systems serve to speed up diffusion of oxygen and nutrients, and likely started out as a simple linear transport in chordates (the link between invertebrates and vertebrates).

  77. Re:*sigh* by NoOneInParticular · · Score: 1

    Easy: consider an amoeba sitting in a soup with millions of its cousins. Now consider an amoeba starting to huddle closer and closer to these cousins. Now it starts to cuddle with its children. Finally consider an amoeba that makes identical copies to cuddle up to. Cousins, children, self. Gradual evolution from a lot of related single cellular organisms to a single multi-cellular one.

  78. Re:Sigh... by NoOneInParticular · · Score: 2, Informative
    Actually, I have the real article here (not the New Scientist rubbish), the one they published at a conference, and what they do is evolve a function that takes the input data and computes a priority for that page. Pages with low priority are flushed, pages with high priority stay cached. One of the interesting expressions they found was:

    priority = lastTimeAccessed * (distance - accessCount)

    \ This was on data where the distance the document had travelled was taken into account. So, given some available input data they evolved a priority function (using GP) that servers as the center for a caching strategy. This with apparent great success.

  79. Not such a great idea by logicnazi · · Score: 1

    I'm afraid this doesn't seem like a particularly appropriate use of genetic algorithims. In fact the entire piece seems to suggest a poor research project (someone who did genetic algorithms needed a thesis) which got picked up on a slow news day.

    First of all I would point out that genetic algorithms are most appropriate for pure optimization problems with minimal mandatory constraints. While loading speed is important for internet caching it must be optimized inside certain constraints. A good cache system would have guarantees about how frequently web pages were refreshed/verified. For instance one might evolve a very efficent cache algorithm which only refreshes slashdot once per day.

    Of course one could tack refresh guarantees on top of your evolved algorithm but the more constraints you place on top of the algorithm the less likely it is that this algorithm is more efficent than a more traditional solution. Most likely one would like to make the refresh minimum dependent on the frequency the website updates and placing a complex condition like this on top of a genetic algorithm evolved simply to maximize cache hits is likely to destroy any speed benefit it might provide.

    To be fair one could amalgamate all these concerns into the evolution process. Instead of just measuring cache hits/download speed one could also check how frequently the cache page matches the current page and optimize some combination of these scores. However, this doesn't appear to be what was done in the article. Moreover, for web page cacheing some absolute gaurantee of freshness is desierable. The winning genetic algorithm might have very good performance on average but almost never update one person's report on the stock market.

    In general it seems like a dangerous idea to use genetic algorithms in situations open to abuse. Handwritten code can be analyzed and it's behavior in exceptional situations relatively easily determined (as opposed to a genetic algorithm). With a genetic algorithm not only is it not clear how it will behave in exceptional circumstances but we aren't even sure what kind of situations are most likely to break the algorithm.

    A web cache should robustly handle attempts to misdirect or corrupt it. If someone forges a great deal of web page requests we don't want the cache to dump truly popular pages to load the falsely requested pages. A flaw like this could quite possibly be used to mount a DNS attack using the large bandwidth of the web cache. More worrying is the possibility that a clever hacker might be able to trick the cache into replacing a valid website with a page of his choosing. Handwriting the code allows one to deal with all these potential problems and also ensures that the cache files/records are in a manageable form so sysadmins can manually flush some pages out of the cache or otherwise address errors.

    Finally, it is not clear that a genetic caching algorithm would continue to work as the internet changes. If you sort through a wide swath of algorithms it is quite possible that certain features/tricks will end up being hardcoded, for instance the algorithm might refuse to cace anything starting with google.com which will then become inefficent if the internet changes. It would be good to remember the story about the army using a neural net to diffrentiate russian and american tanks and discovering it had just learned to distinguish the time of day as the american tanks had all been photographed at noon.

    In short it seems that genetic algorithms have major drawbacks as cache algorithms. Since we have barely broken the surface of handwritten cache systems the effort hardly seems warranted. Before moving to genetic algorithms there are tons of good ideas which should be explored first. For instance making browsers cache aware (so the online cache can cooperate with the browsers cache like I suppose earthlink does), predictively requesting pages linked from downloaded pages, generating user profiles to better predict which pages wil

    --

    If you liked this thought maybe you would find my blog nice too:

  80. something else is more of a bottleneck by Anonymous Coward · · Score: 0

    In IE, when you hit 'back' or 'forward', it takes time to load the page!! Why?? If you tell it to work offline, then everything is instantaneous. There's no reason that it should check to see if a page has been updated after you click back if you were just there 5 seconds ago. Changing this would speed up my websurfing experience a lot more than this caching algorithm.

    -grankk

  81. Yes but, by Anonymous Coward · · Score: 0

    Of course with systems like internet caches, where the cache is not a part of system it caches, it needs to have other measures as well. Not just obeying the expire headers on the things it caches but also trying to see when it has changed even if the expire info are missing or wrong.
    And then perhaps trying to predict the update rate of the page and then prefetch pages high in the LRU tables to have fresh versions ready for the user.

  82. Re:*sigh* by Anonymous Coward · · Score: 0

    So does that make you a creationist? I just read you using those terms.

    (-1, not very Funny)

  83. Just another location for traffic to tracked. by BYte69 · · Score: 1

    To me its building in more capablity to track what and where you go in the internet. Most ISP's already have these servers. I don't see how they really have helped much. Plus being another layer of crap tends to make it also another layer that won't be managed securely and lend it self to the next compromised system.

    BYte69

  84. Re:*sigh* by ZigMonty · · Score: 1
    Random mutations only gain you so much, and in all cases are also harmful in the same way they are helpful.

    Why? Just because you give an example of where this is true (Sickle-cell anaemia), doesn't mean it is generally true. Why can't a random mutation be beneficial without bad side-effects? A random mutation can surely be harmful without good side-effects. Why not the reverse? It isn't a zero-sum game. Sure, the kind of mutation that is solely beneficial may be exceedingly rare, but that isn't proof that it can't happen.

    Also, this isn't even necessary. So long as the good outweighs the bad, the mutation will be selected for. This is exactly what happens with SCA. The carriers are resistant to malaria. If this helps them (or siblings with only one copy of the gene) to survive to child-rearing age, then it will be selected for.

  85. Re:*sigh* by AKAImBatman · · Score: 1

    Why? Just because you give an example of where this is true (Sickle-cell anaemia), doesn't mean it is generally true.

    Correct.

    Why can't a random mutation be beneficial without bad side-effects?

    Because no positive mutation has ever been shown. Every mutation ever observed results in a delterous effect on the organism. SCA is the best example anyone has ever given of a "positive" mutation.

    It isn't a zero-sum game.

    Funny you should mention that. I made that exact point earlier:

    In fact, SCA makes the perfect point that genetics is a zero-sum game. To gain certain advantages, some must be given up. This always confused me when I was working in the livestock genetics field. All the charts of the cows' features always appeared to sum to the exact center. i.e. The perfect cow was a perfectly average cow. Well, I spoke with my colleagues and learned I was correct. All we were doing was breeding for some "desirable" features (often fads) at the expense of other features of the cow.

    Granted, I am not an evolutionary geneticist, but all evidence I've seen tends to suggest that genetics *is* a zero-sum game. You simply can't give to Peter without taking from Paul.

    Sure, the kind of mutation that is solely beneficial may be exceedingly rare, but that isn't proof that it can't happen.

    Proving the negative in this case is uselss as the only way to prove the negative is to prove the positive. No mutation has ever been shown to be helpful to an organism without introducing serious negative effects. If you know of a mutation that is only positive, then I would make a most captive audience to your presentation.

    So long as the good outweighs the bad, the mutation will be selected for. This is exactly what happens with SCA. The carriers are resistant to malaria. If this helps them (or siblings with only one copy of the gene) to survive to child-rearing age, then it will be selected for.

    Creating a 1 in 4 chance of a very early death is not a "good" result. It can help in the short term, but only if a sufficient genetic pool is maintained to later breed out the negative condition. In this example, the African population is huge, but 1 in 13 African Americans still carry this mutation. And how useful is the mutation if it must later be bred out of the genetic stock?

  86. Re:*sigh* by AKAImBatman · · Score: 2, Interesting

    I don't believe you understand the word "evolution". Evolution is not a huge jump that rapidly redefines something, it's an almost unnoticable change over time.

    No, the current theories state that it is a unnoticable change over a long period of time. On a higher level, evolution simply states that major changes occurred over a long period of time. It also states that those changes occurred in an "organic vacuum". e.g. Lungs developed where no lungs had ever existed before.

    Evolution can be understood as a search through a problem space. The caching algorithm sets up a problem space of "all possible caching algorithms". A P2P server would be completely outside of the problem space and thus irrelavent.

    If that was really the case, then higher organisms should never have developed. The problem space for the "simple" organism was to survive in its wet environment. I believe you named colonies of amebas as an example of "vestigal organisms" at one point. Without arguing that point, what forced these successful organisms to then develop different cell types? How did different cell types improve their success rate? From there, how did developing complex DNA improve their success rate? From there, how did specialized macro-organs improve their success rate?

    In evolutionary theory, the "simple" life form was striving to become a better adapted life form. It obviously exceeded its problem space by a wide margin, or you and I would not be having this discussion today. Thus if GAs are really indicitive of "real" evolution, then why can't they eventually evolve into "higher algorithms"? A P2P network could very well improve the GA's success rate for its problem domain. It can start by accidentally reusing its network connections, then accidentally making contact with other cache hosts with the same mutation, then it can evolve a protocol by accidentally learning each communication packet through a torrent of random spam packets, etc.

    While that sounds somewhat silly, that's not my point. My point is that evolution states exactly that sort of behavior over a long enough period of time. If a GA is a good emulation of micro-evolution, and macro-evolution is based on micro-evolution, then shouldn't we be able to compute a set of mutations that take the program out of its pre-programmed algorithms? Shouldn't it be able to leverage parameters that we didn't program it to leverage?

  87. Re:*sigh* by Eythian · · Score: 1
    Thus if GAs are really indicitive of "real" evolution, then why can't they eventually evolve into "higher algorithms"? A P2P network could very well improve the GA's success rate for its problem domain. It can start by accidentally reusing its network connections, then accidentally making contact with other cache hosts with the same mutation, then it can evolve a protocol by accidentally learning each communication packet through a torrent of random spam packets, etc.

    That wouldn't happen because it is outside the bounds of the system. Say, for the sake of argument, that it is impossible for carbon-based life forms to have telepathy. There is now no way for any carbon-based life form to evolve telepathy, yet it [the organism] is still evolving. Telepathy is outside the bounds of the system. Same with a GA system. It is evolving in the same way (very minor changes from one organism to the next that add up to be a significant change). It can come up with genetic material that was never introduced into the system (that's what the mutation operator does), it can combine genetic material in ways never before considered (crossover), and each of these possible solutions is checked to see how good it is. The better it is, the greater the odds of it's survival. I have seen GAs find solutions in areas that people hadn't even considered, just by starting from a few random points and slowly moving to where things are a bit better.

    If a GA is a good emulation of micro-evolution, and macro-evolution is based on micro-evolution, then shouldn't we be able to compute a set of mutations that take the program out of its pre-programmed algorithms?

    There are no pre-programmed algorithms (unless the programmers seeded it with a few known-good ones as a start). In either case, it is going to be moving away from it's starting situation as soon as it starts evolving. A bit here, and a bit there will change, and look at it a few hundred generations later, and what it has is totally different to what it started with. There is no macro- or micro-evolution, there is only evolution. The more time you look at it over, the bigger the changes. If you start with 1, and add 1 you have 2, which is close to one. Take it 100 time steps later and you have 102, which is very different from 1 or 2, but is the result of many small changes.

  88. Re:*sigh* by StrawberryFrog · · Score: 1

    Do a google search on "single-celled colony". There's your intermediate stage.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  89. Re:*sigh* by Eythian · · Score: 1
    Because no positive mutation has ever been shown.

    I think that this is largely because we have been evolving for so long that we are at the point where if a single mutation was going to have a totally beneficial effect, it would already be in the population. However, take someone with colour blindness: a disadvantagius condition (slightly so, anyway). Now, if he has a child, and in the process of reproduction the colour blindness causing gene mutated so that the child wasn't affected, wouldn't that be a beneficial mutation? (ignoring the whole diploid thing for simplicitys sake). I suspect the reason we don't see that happen is because it is much less obvious. Nowadays we are at the point where mutations come with tradeoffs, because if they didn't, then they would have already happened.

  90. Re:*sigh* by GeckoUK · · Score: 1

    Will you make up your mind, first you agree with the grandparent poster that one particular example doesn't prove the general case, and then you make the claim that the SCA example does suggest the general case is zero sum.

    Come on man, make up your mind! which side of the fence are you on?

    It is worth noting that there is a natural bias towards observing negative mutations, not only are they probably far more common but also they stand out against the background, i.e. when people start dieing, or are born with gills, or no legs then people are going to notice pretty damn quick and start saying "ohhhh, mutation==bad!" however a beneficial mutation (for example a resistance to the common cold) is much more likely to go unnoticed at first, as it is a lot harder to notice or prove that something hasn't happened during a persons lifetime. Chances are by the time the mutation is noticed it will be wide spread enough in the population that it will be impossible to identify as a single mutation to a specific person sometime in the past, and it will thus look as though it is simply part of the general mix of genes in the population.

    I apologise if you took offence at being called a troll earlier, I meant it in the original sense of someone who deliberately posts inflammatory content in the hopes of sparking a debate. (anti-evolution posts certainly qualify on Slashdot)

    As for calling you a creationist.... well are you are aren't you, you claim to not believe in evolution, so how do you think we got here?

  91. Interesting that this story was posted today... by beuges · · Score: 1

    I just took the morning off to register at university for my masters in computer science. My research topic is a distributed caching proxy network. Obviously since i haven't started researching yet, i don't have all the details, but the basic idea, is to have a network of caching servers, each serving a group of users, but interconnected, so that if a user of a particular caching server requests a file that isn't in that server's cache, but is in the cache of another server on the network, then that server gets the file from its neighbouring cache instead of the origin server. Eventually, each of the caching servers end up with a copy of the file and the remote site is only hit once. There are obviously issues that I'll have to deal with, but thats the basic idea... kinda like squid crossed with bittorrent :)

  92. Re:*sigh* by ZigMonty · · Score: 1
    Because no positive mutation has ever been shown. Every mutation ever observed results in a delterous effect on the organism.

    That logic just doesn't make sense. If I type a random bunch of characters, I *could* produce the works of Shakespeare. If I change a random gene, it *could* be beneficial. How can you possibly argue that a random change can't be beneficial ever? A random change can produce anything, including stuff that is good.

    Granted, I am not an evolutionary geneticist, but all evidence I've seen tends to suggest that genetics *is* a zero-sum game. You simply can't give to Peter without taking from Paul.

    Again, why? One example from agriculture doesn't prove anything. All it proves is that we don't know how to do it properly. That *may* be because it isn't possible but not necessarily.

    Mutations that are positive are also far less obvious. If your child is slightly stronger than normal, would you notice? If they have a crippling disability, on the other hand, you sure will.

    Creating a 1 in 4 chance of a very early death is not a "good" result.

    Ah, but i believe 2 in 4 are protected from malaria? Evolution has selected for the sickle-cell property because it provides an overall benefit for the group. African Americans still have the mutation but it is fading out (hence the lower prevalence). Evolution takes time, especially now that modern medical practices mean that many more sufferers survive.

  93. Re:*sigh* by AKAImBatman · · Score: 2, Interesting

    Will you make up your mind, first you agree with the grandparent poster that one particular example doesn't prove the general case, and then you make the claim that the SCA example does suggest the general case is zero sum.

    I have made up my mind. The parent of my post made a statement that was factually correct: SCA does not "prove" that positive mutations can't happen. I then go on to show that everything from SCA to genetic manipulation has so far shown us that genetics is a zero sum game. It's perfectly possible that it's not, but we haven't yet proved it either way. All we have is a mountain of data that suggests genetics is a zero-sum game.

    Come on man, make up your mind! which side of the fence are you on?

    How is that scientific? If you always approach a problem from the angle that "X must be right", then you'll never make any new discoveries. If something can be observed then proven to be true, then we must adjust our world-view and move on.

    It is worth noting that there is a natural bias towards observing negative mutations, not only are they probably far more common but also they stand out against the background, i.e. when people start dieing, or are born with gills, or no legs then people are going to notice pretty damn quick and start saying "ohhhh, mutation==bad!"

    This is quite true.

    however a beneficial mutation (for example a resistance to the common cold) is much more likely to go unnoticed at first,

    The difficulty here is that until we can isolate and identify "positive" mutations, they are nothing but speculation. It's possible that it's just a matter of time before such mutations are discovered, but we can't say they exist until we can demonstrate them. It's a bit like Tachyons in physics. Theory said they should exist, therefore they existed, right? (If it's on Star Trek, it must be true!) Turns out that Tachyons are now considered to have been a "glitch" in string theory that has now been worked out. No time-traveling phantom particle, sorry.

    as it is a lot harder to notice or prove that something hasn't happened during a persons lifetime.

    It's very difficult to prove a lot of things in science. That's what we have laboratories for. By direct manipulation of creatures with short life spans, scientists can observe how genetics work and test theories on how a positive mutation might be induced. With more and more computing power at their disposal, it should only be a short time before we're able to begin very fast computer modeling of entire genomes.

    The first surprise has already come in the form of shorter gene sequences than predicted. It wouldn't surprise me if biologists find themselves completely rewriting the books on genetics in the near future. If there's anything that physics has taught me, it's that the Universe is not one to easily give up its secrets.

    I apologise if you took offence at being called a troll earlier, I meant it in the original sense of someone who deliberately posts inflammatory content in the hopes of sparking a debate. (anti-evolution posts certainly qualify on Slashdot)

    Apology accepted, but with one caveat. I never claimed that evolution was false. It's not very nice to stomp all over the theories of others just because you don't like it. My specific complaint was the outright confusion caused by the "micro-evolution" renaming of environmental adaption. I don't like it, because no link has been demonstrated. This gives people the mistaken impression that they can write software using genetic adaption type algorithms, and actually produce software that "evolves" in the macro-evolutionary sense. The truth is that the software doesn't go anywhere. It merely "adapts" to the situation at hand until the most powerful solution can be found.

    As for calling you a creationist.... well are you are aren't you, you claim to not believe in evolution, so how do you think we got here?

    Ac

  94. Re:*sigh* by Anonymous Coward · · Score: 0

    No new algorithm will be generated through the "genetic breeding". Only existing algorithms will rise to the top.

    For the last time, please educate yourself about genetic algorithms. Take a textbook example:

    Let's evolve an algorithm to follow a trail of markers on a 2D grid.

    The population is made up of randomly generated finite state machines, whose input is whether there is a marker in front of it and output is whether to move forward or turn left or turn right.

    The fitness of each finite state machine is measured by how many markers it passes over during the course of 200 moves. Each marker only counts once.

    During each new generation, the usual crossover and mutations occur.

    Now, we start off with randomly generated algorithms. We end up with new algorithms that actually follow the markers. At no point did the programmer input an algorithm to follow the trail. How can you argue that no new algorithms are created with genetic algorithms?

  95. Re:*sigh* by AKAImBatman · · Score: 1

    That logic just doesn't make sense. If I type a random bunch of characters, I *could* produce the works of Shakespeare.

    Yes, you could. By attempting random combinations, you could achieve the proper result in about 3 times the amount of time it will take for the universe to reach its heat death. You can test the theory with this simulation. A quick search on Google also presents this math for the traditional Million Monkeys problem.

    If I change a random gene, it *could* be beneficial.

    It could be beneficial. Not because we know that it could be beneficial, but because we don't know enough about genetics to positively state that it absolutely would not be beneficial. This is similar to saying that it could be possible to time travel and violate causality. It could be true, but we don't know enough to make the statement one way or another.

    How can you possibly argue that a random change can't be beneficial ever?

    Actually, I argued that existing evidence suggests that random changes are never positive. While a heap of data doesn't qualify as proof, there is current zero evidence of an absolutely beneficial mutation. Until such a mutation can be isolated and identified, evolution by mutation is pure speculation. If evidence actually existed, then it could graduate to a theory.

    Mutations that are positive are also far less obvious. If your child is slightly stronger than normal, would you notice?

    Most people do notice. In fact my first child was born rather strong. It took four people to hold him when he was getting his shots. The question is, was it a mutation, or was it existing genetics? By sequencing samplings of the population, we are starting to isolate enough genes that we may soon be able to answer that. We've already identified genes for color, strength, obesity, etc. With any luck, we'll soon be able to know if positive mutations are a real phenomenon, or just wishful thinking.

    If they have a crippling disability, on the other hand, you sure will.

    Of course. "Bad" mutations are almost always obvious. The problem is that if positive mutations exist, then negative mutations must outweigh them by an overwhelming margin. We can induce mutations, but they always turn out either negative or settle as dormant genes.

    Again, why? One example from agriculture doesn't prove anything. All it proves is that we don't know how to do it properly. That *may* be because it isn't possible but not necessarily.

    It's hardly "one example". My colleagues of which I speak are PHDs in the field of genetics. They were not only educated in the field, but they dealt with genetics on a daily basis. All genetics data to date suggests that genetic manipulation is a zero sum game. That's why Eugenics can't work. You'll never get a race of "super-men", you'll only create a race of people who have traits you desire. How shallow are you willing to make your "super-men"? If you breed for intelligence, then strength may suffer. If you breed for strength, then intelligence may suffer. If you breed for height, then your people will have less lifting power. If you breed for shortness, then leverage will suffer. So on and so forth.

    Ah, but i believe 2 in 4 are protected from malaria? Evolution has selected for the sickle-cell property because it provides an overall benefit for the group. African Americans still have the mutation but it is fading out (hence the lower prevalence). Evolution takes time, especially now that modern medical practices mean that many more sufferers survive.

    Yet again, if this is a "good" mutation, why does it need to be bread out of the gene pool? "Micro-evolution" speculates that positive mutations crucial to the development of an organism must have occurred and remained. You didn't acquire lungs just so they could be bread out in six generations down the line, did you? No! The mutation must have become a standard part of the genome.

  96. Re:*sigh* by AKAImBatman · · Score: 1

    BTW, you may be interested in knowing that the Monkey Simulator has reached an all time record of 17 letters of "Troilus and Cressida"!

    After 9,151,670 billion billion monkey-years, that is.

  97. Browsers often don't recheck DNS by billstewart · · Score: 1

    Browsers don't always bother checking DNS expiration times and rechecking the address when they time out. This used to be less of an issue on IE because Windows used to bluescreen several times a day (:-) but these days it can be a problem.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks