Biomorphic Software
CowboyRobot writes "From the molecular structure of spiders' silk to the efficient use of energy by insects and fish, we can learn many things from Nature and apply them to our engineering tasks.
One thing that nature is particularly good at is the development of dynamic, self-organizing systems.
Ken Lodding is a software engineer at NASA and is currently developing 'swarm algorithms for groups of wind-driven, remote exploratory vehicles'.
He has a six-page article at Queue on 'biologically inspired computing', how to develop 'algorithmic design concepts distilled from biological systems, or processes.'"
Sounds an awful lot like Michael Crichton's novel Prey. The story's description (from the above link): cloud of nanoparticles -- micro-robots -- has escaped from the laboratory. This cloud is self-sustaining and self-reproducing. It is intelligent and learns from experience. For all practical purposes, it is alive. It has been programmed as a predator. It is evolving swiftly, becoming more deadly with each passing hour. Every attempt to destroy it has failed. And we are the prey.
I hoped that this was more fiction than reality. Perhaps Prey is going to become a movie and they are writing this up to get people interested?
Doesn't the thought of an intelligent swarm of nearly indestructible particles scare people? I know I am paranoid and all but I can't fathom the damage that could occur if these got out and were self-sustaining even for a short time.
...related, is the practice of having a program interrogate its environment. Some of the most successful programs are highly portable pieces of code that check to see what OS services are available, what APIs are available, what dependency software is available, etc. and then constructs the final object tree based on the results.
While this is very difficult to do in C/C++, it's a very successful way of writing Java code. For example, a gaming timer I wrote first checks the JVM version. If it's on 1.5 it uses the new NANOTimer. If that fails, it checks the OS. If it's on Windows, it then checks for the presence of a native timer DLL. (Timing on Windows sucks.) If it fails to find and/or load the DLL, it then falls back to a clever algorithm for making the most of default Windows timing. If it's on some other OS, it uses the default timer (all OSes except windows can provide millisecond resolution without complaint).
Javascript + Nintendo DSi = DSiCade
Mark Tilden has noticed that machines that mimic biology take a lot less computation resources than machines that are strictly programmed.
2 0T ilden
http://encyclopedia.thefreedictionary.com/Mark%
Trying to strictly control everything doesn't work well past a certain level of complexity. It's like capitalism vs communism or Cathedral vs Bazaar. I expect to see a lot more of this kind of project in the future.
The author refers to the Genotype/Phenotype analogue wrt to the cells in the mechanized system they built. But he keeps refering to the Genotype as being the DNA (or code) as well as the behavior of the units. While the Phenotype is the actual unit itself.
The genotype/phenotype analogue is a good one, but his terms are not quite correct. The genotype should refer to only the DNA and genetic information, which in his case is analygous to machine code. The phenotype should be analygous to the behavior of each unit.
A pedantic technicality, but he mentions this a few times, and it's not quite correct.
Neat stuff regarless!
Enjoy being a programmer while you can.
Why do I say this? Well look at the efficiencies of simple programs that are "written" or evolved by genetic algorythms. We are just beginning to scratch the surface. I suspect that even simple tasks, like controlling a toaster, will become an evolutionary process that will be given its initial operating parameters by larger AI systems.
I think that in the future the programmer as we know them will no longer exist, instead we will have people who "teach" a program to "behave". The art of programming will become an arcane thing, much like knowing Latin, where an isolated few will actually know how to bootstrap the process from machine code to "newborn" AI. Even now with the simple AI that exists, there are systems that are virtually undecipherable as to their workings. In the future the complexity will reach levels that are beyond comprehension.
-- The morphemes of your disquisition are ascertainable, but they have eschewed an ambit of transpicuous exposition.
10 Enter a new topic
20 Try a first post
30 POST "... ??? Profit!" joke
40 POST "In Soviet Russia..." joke
50 POST "... You insensitive clod!" Joke
60 POST "Netcraft says: $SOMEONE is dying..." joke
70 GOTO 10
This sentence in the article was rather creepy to me:
With minor exceptions, each cell contains the information to become any one of the 256 or so types.
That number coming up in biology is interesting.
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d Capitalization really works: i helped my uncle jack off a horse
Almost all software in container based. Indeed, all of our systems' designs are fundamentally based on the Five Normal Forms.
The world can't be modeled that way.
Instead of containing data object relationships, you need to design your software with relationship objects and connection instances that are in a separate object space.
You get reusability benefits because you don't have to alter the objects when its relationships change. Most of our system maintenance is due to relationship changes, not object changes.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
Well, there is a subtle difference between flying and running, in that, if you stop running, nothing happens, but if you stop flying, you plummet to the ground and go splat.
I should have been more specific. For a human being, our specialization is intelligence and tool use. We make tools, and we use them to compensate for what we don't have by nature. The rest of our natural skillset is pretty low-end; we don't run as fast as most animals, we can't lift as much, we aren't as coordinated.
The reason for this is because we sacrificed a lot of the instinct and motor skill in our evolutionary quest for more brain. Birds aren't dumb...for animals. But compared to us? One of the reasons for that is because a good bit of their brain is taken up by the instinctive knowledge of flight. They understand it in a way that no human pilot ever will. But it is a handicap as well as a strength.
ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
As with many evolving algorithms, one of the problems is the possibility of hitting a genetic dead-end. And unlike actual nature, the program menageries are typically all of the same type of beast, so it's not too unlikely for a particular design to become rabidly successful for a time and basically wipe out other variants before dying itself. But as long as you force there being some randomness and preservation of diversity, there are some interesting results.
This sig has absolutely no significance and serves only to take up screen space and waste the time of the reader.