Biomorphic Software 133
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.'"
Predator or Prey? (Score:3, Interesting)
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.
Re:Predator or Prey? (Score:3, Interesting)
Re:Predator or Prey? (Score:2, Informative)
Ridiculous *and* physically impossible, as was mentioned on slashdot here:
Slashdot Article on Prey [slashdot.org]
Nanobots the size of Red Blood Cells (around 2-5 microns in length) would have a top speed of 2mm/sec in air by Dyson's calculation, or 7.2M/hour, hardly fodder for a high-speed chase!
By my quick calculation Dust Mites (about 200 microns in length), as I've mentioned in another post on this article, could travel up to 20cm/sec or 720M/hour, slow but still scary, especially if there's are trillons of them swa
Re:Predator or Prey? (Score:3, Informative)
If I remember correctly, the basic concept was that instead of trying to design algorithms for nanomachines, the programmers responsible for developing them just used a form of natural selection to 'evolve' an optimal algorithm. Of course, the problem was
Re:Predator or Prey? (Score:5, Insightful)
The secret weapon they use to kill the rogue swarms of psycho nano cameras is a gunk impurity that got into the STERILE nano-construction area. Like that woudl never occur naturally in non-sterile (i.e Everywhere) areas of the world.
The other thing which got to me was the amount of processing power these nano clouds were assumed to have. A sophisticated predator-prey model that would be CAPABLE of evolving into what those evolved into would need tremendous processing power.
So, lets see, what they would have to have? They'd need high bandwodth that couldn't be jammed (they'd be pretty worthless if you could just turn on a jammer and have them fall apart). They'd need non-volitile memory, because they're solar powered, and if they didn't have it, they'd be stupid again every morning. They'd need a sophisticated distributed processing alogrythm with massive failure tolerance and freakishly complex load balancing (this is more possible than most of it). And beyond all this, they'd need to be able to be microscopic flying cameras that could kill people.
In biological terms, most species have a "specialization". Which means that most species have ONE thing that they do really well. Birds aren't too smart because flying is hard to do. Same with cheetas, because running that fast requires really specific evolution.
Those little nano-bots would have to do the thing they're specialized by the design to do...And everything else as well. Christ, he's got them mimicing human behavior by the end! That is such an incredible stretch! I love sci-fi, but that book had me sneering almost from the very beginning.
Re:Predator or Prey? (Score:2)
I disagree about the amount of processing power/memory that these things would need, however. I find it very easy to believe that a simple set of behavioral patterns when applied to a group of organisms acting together can generate very complex behavior. After all, a human is just a collection of very simple cells, albeit with a complex rule set for behavio
Re:Predator or Prey? (Score:2, Insightful)
Re:Predator or Prey? (Score:2)
Those little nano-bots would have to do the thing they're specialized by the design to do...And everything else as well. Christ, he's got them mimicing human behavior by the end! That is such an incredible stretch! I love sci-fi, but that book had
Re:Predator or Prey? (Score:1)
I thought it was intelligence until I read your post.
Re:Predator or Prey? (Score:1)
Huh? (Score:3, Insightful)
This doesn't make any sense no matter how many times I read it.
First of, birds are the most intelligent animals after mamals. Flying for a bird is no more difficult then running for a human. Despite their small brains, birds learn to fly way faster then humans learn to walk. Insects also fly and they are definetly dumber then birds. I can make a paper airplane fly and it has no brain power at all. Basic auto pilot on a light aircraft have about as mu
Re:Huh? (Score:3, Interesting)
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 thi
Re:Huh? (Score:1)
Humans most prominent feature may be unusual intelligence, but I think you are greatly discounting the role our body shape plays in our accomplishments. Imagine if we had our brains trapped in the body of a snake or fish, how much of what we have today would be possible? How do we know for sure that some other animals aren't also very intelligent but don't have the means to
Re:Huh? (Score:1)
If this were true, nature would compensate by allowing bird brain's to grow large enough to, say, do their taxes.
But birds don't need to do taxes, and a larger brain is heavier and requires more bird to lift, more bird requires more brain to control, etc.
Re:Predator or Prey? (Score:2)
Vice. Our insane greed (in a general way, not individual) has made us strive to be more cunning and finding more ways to get "stuff" and call it our own. Note that I'm not saying this is necessarily a bad thing (I'm not throwing my computer away any time soon).
I don't really believe that, but it is one driving force of progress. Another HUGE specialization is curiosity, but to make truly innovative things (outside of software) thes
Re:Predator or Prey? (Score:2)
I thought it was more along the lines of a video game that was planned for release shortly after Duke Nukem Forever. I know I'm really waiting for those cool shadow effects they've been promising since '95!
(Does anyone know what happened to the prey engine?)
Prey (Score:1)
Re:Predator or Prey? (Score:2)
Re:Predator or Prey? (Score:1)
nope. what do you think human beings are? seen from a larger scale, we are the nanobots.
of course, that assumes we had a maker
Re:Predator or Prey? (Score:1)
Has writing novels been reduced to someting like: ?
-Peter
Re:Predator or Prey? (Score:2)
Unfortunately that doesn't seem to be the case in this instance. Self-sustaining, swarms, of tiny robots flying around and doing shit using their own AI is scary.
Re:Predator or Prey? (Score:5, Interesting)
Mild example: Did you know that a goldfish can see infrared radiation? That fish can see warm bodies through the walls in your house, and perhaps even the neighbor's house. But it takes some pretty sophisticated equipment for a human to achieve that end. Good thing that fish don't talk. ;-)
Re:Predator or Prey? (Score:2)
What I didn't understand about the book is how you can program a swarm to "hide" during the hunt, in that "I can see the prey but they can't see me." Programmers, can anyone enlighten me on how to make a computer know it's hidden from enemy view, yet able to see the enemy?
Re:Predator or Prey? (Score:2)
Re:Predator or Prey? (Score:2)
These things are nanobots, right? All they have to do is disperse to become "invisible." You don't have to make it "know" anything. You tell it that if they are all n millimeters away from each other, they are, for their purposes, invisible.
Great... (Score:3, Funny)
The Biomorphic Goldfish Algorithm (Score:5, Funny)
20 PRINT "LOOK A ROCK!"
30 GOTO 10
Re:The Biomorphic Goldfish Algorithm (Score:2)
40 FLOAT TO THE TOP
50 BELLY UP
60 DIE
Re:The Biomorphic Goldfish Algorithm (Score:5, Funny)
Public Sub Initialize
Dim GFish as Fish
Set GFish = Me
GFish.Type = FISH_TYPES_GOLDFISH
Tank.AddFish(GFish)
GFish.Action = FISH_ACTIONS_SWIM
GFish.InitTimedAction(FISH_ACTIONS_LOOK_ROCK,6000
GFish.Go()
End Sub
Public Sub Terminate
Dim GFish as Fish
Set GFish = Me
GFish.Rotate(0,1,0,180)
GFish.Float(FISH_BALLAST_UP)
GFish.Eyes = FISH_EYES_MILKY
GFish.Wait(60000)
Toilet.AddFish(GFish)
Toilet.Flush()
End Sub
Re:gc is a bit lacking... (Score:2)
Re:The Biomorphic Surrealist Goldfish Algorithm (Score:1)
10 SWIM AROUND TANK
20 PRINT "I'll DRIVE, YOU OPERATE THE GUN."
Not quite the same thing, but... (Score:5, Interesting)
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).
While this is very difficult to do in C/C++.. (Score:1)
Re:While this is very difficult to do in C/C++.. (Score:2)
three words: Dynamically Loaded Modules
C/C++ can do that just fine, but it's nowhere near as easy.
Re:Not quite the same thing, but... (Score:2)
Go look at QueryPerformanceCounter(). It'll give you a *very* high-res 64-bit timer (3579545 counts per second on my puter).
Re:Not quite the same thing, but... (Score:3, Informative)
That's what the DLL does. Sadly, Microsoft doesn't guarantee any sort of accuracy with that clock. Dual proc systems completely change the timing, too. My solution was to abstract out the timing into "ticks per second", then make the developer calculate for how long he wants between event. e.g.: frametime = timer.getTicksPerSecond()/60;
Re:Not quite the same thing, but... (Score:3, Informative)
Re:Not quite the same thing, but... (Score:2)
Nothing stops C/C++ doing it using DLLs...or even compiling its own code.
But it will be much easier if a persistent object oriented system [slashdot.org] would be around. Self organizing code would be very easy to write with such a system.
Why do you say Windows can't provide millisecond resolution ? All Windows timer-related functions are based on milliseconds. Furthermore, Windows is the only O/S I know that provides sub-millisecond timers. See High Resolution Multimedia Timers in MSDN.
Re:Not quite the same thing, but... (Score:2)
It's worth noting that I never said you couldn't. I said it was HARD. If you look farther up the thread, I reiterated this point.
But it will be much easier if a persistent object oriented system would be around. Self organizing code would be very easy to write with such a system.
I actually built an entire self-organizing system out of the Java SPI concept. On program startup, each module would decide if it should load itself in t
Re:Not quite the same thing, but... (Score:2, Offtopic)
It's worth noting that I never said you couldn't. I said it was HARD. If you look farther up the thread, I reiterated this point.
Why is it hard ? Open Visual Studio, make one or more DLL projects, then use these DLLs from the main project according to what you want to do. Making a DLL is nothing more than pressing a few buttons anyway.
10ms res on 2000/XP
Where did you read that? Windows NT provides 1 milisecond resolution. 10 milliseconds is the default timer interrupt granularity. By using the fun
Re:Not quite the same thing, but... (Score:2)
And I suppose you haven't heard of binary distributions. Geez, normal users don't want to compile their software. What's so difficult to understand about that?
Putting that aside for a moment, the GNU auto* system is a decent example of a self-adapting system. It isn't great (too easy to break most of the tim
Isn't all computing biologically inspired ? (Score:4, Insightful)
Re:Isn't all computing biologically inspired ? (Score:2, Insightful)
Artificial Life computing is an attempt to bring these closer, whereby a computer's thought process says, "Based on past experience, I think that solving this problem in that manner would suffice." Well, that's a pompous computer's thought process at least.
However, current computers think, "I was told that if x occurs then do y, so I'll go do y."
Re:Isn't all computing biologically inspired ? (Score:2)
Re:Isn't all computing biologically inspired ? (Score:5, Insightful)
The problem with the Turing Test is that it biases AI towards a human-style intelect, where that might not be the best way (or even a good way) to make an AI. For all we know, a good AI might have a thought-process which, to us, would seem completely crazy.
Re:Isn't all computing biologically inspired ? (Score:2)
Indeed, and I think I know why. As humans, most of our decisions are based on preference; and what is preference? What we like. And one cannot argue for or against a personal preference.
Therefore, I think AI should be designed to do what machines do best with simple tasks: being thorough. Start examining element 1, then 2, then 3, etc. until category has been exhausted of elements to examine, then produce an
Re:Isn't all computing biologically inspired ? (Score:2)
CAR!
Yes Dave?
Why are you turning left at every corner?? I need to get to work!
The umbrella in the rear seat needs to be triple rotated bluely because Calista Flockhart has been eating too much red food lately.
-
Re:Isn't all computing biologically inspired ? (Score:2)
Sounds crazy, but the computer knows that Calista's about to jump into your back seat (because she has realized her red food habit is getting out of control and has to "get away") as you turn the umbrella. If you had been doing that in a casual, perhaps yellow, manner she would have sat on it, breaking her hip (and she would have sued you). If you had done it four times,
Re:Isn't all computing biologically inspired ? (Score:1)
Re:Isn't all computing biologically inspired ? (Score:2)
> the mythical behavior of lemmings on which the crashing behavior of said products was modelled.
Hey, I played Lemmings on the Amiga, so there was no crashing, YIC!
Re:Isn't all computing biologically inspired ? (Score:1)
Alien Engineers (Score:5, Funny)
I read things like this and can't help but thing about some alien engineers coming to earth, deciding that they don't have time to explore it properly, and plop down some solar powered "robots" to gather some data on the planet. A few millenia pass and some more alien engineers come by, having the same idea but being jerks, deciding to make "robots" that eat the solar powered "robots".
Jerks.
Re:Alien Engineers (Score:5, Funny)
It's the robots that attempt to charge people a licensing fee for using Linux that really burn me up.
Re:Alien Engineers (Score:2)
lastest hope for nerds (Score:4, Funny)
Does this mean we can expect the whole dating-and-mating process to be reduced to an algorythm? Does the average slashdotter now have reason to have hope to apsire to procreation?
Re:lastest hope for nerds (Score:1)
Re:lastest hope for nerds (Score:1, Funny)
Re:lastest hope for nerds (Score:2)
Does this mean we can expect the whole dating-and-mating process to be reduced to an algorythm?
Nah, if there is an algorithm for that at all, you can bet your a** it's going to be of exponential complexity. Not only that, but if it is ever solved, the universe will implode or something equally nasty. There are some things man is not meant to tinker with. Stick with trying to reduce NP-complete problems to polynomial time, it's much safer and easier. Or you could try solving the good old Collatz Problem [wolfram.com].
Y
Re:lastest hope for nerds (Score:2)
No, because as soon as the average female enters the equation, all logic is tossed out the window, and computers must run on explicit instructions. There is no way to predict what a woman will do, except for the universal constant -- bitching.
Perceptrons? (Score:4, Funny)
Makes Sense (Score:2, Insightful)
Re:Makes Sense (Score:1)
Re:Makes Sense (Score:1)
It's deeper than just bugs and republicans... (Score:3, Insightful)
Re:It's deeper than just bugs and republicans... (Score:2)
No, computers don't have those properties, but Microsoft has been working for years to fill our computers with crap. And they're full of shit, themselves.
"Wind-driven exploratory vehicles" (Score:2, Funny)
This is the way forward (Score:5, Interesting)
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.
Re:Bye Bye mod points... (Score:2)
Re:Bye Bye mod points... (Score:1)
Neural nets
Re:This is the way forward (Score:3, Informative)
Re:This is the way forward (Score:1)
Genotype vs. Phenotype (Score:3, Interesting)
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!
The arcane art of programming (Score:2, Interesting)
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
Re:The arcane art of programming (Score:4, Informative)
The idea is not new, read the Turing's paper Intelligent Machinery [alanturing.net] about Pain & Pleasure machines. In short, machines behaves freely but are conditioned by two simple stimulus: 'pain' that forces behaviour to change, and 'pleasure' that stabilizes current behaviour.
Re:The arcane art of programming (Score:2)
A surprising and new concept only to those who have never had a girlfriend.
-
Re:The arcane art of programming (Score:2)
:)
I refused to mention that aspect, Turing's life has been already broadly commented!... but yes, there's a strong correlation between his ideas, and his education. What strikes me most is that the man was lucid enough to realize-it and work from there!
Re:The arcane art of programming (Score:1, Insightful)
Diversity / Natural Selection (Score:2, Interesting)
Re:The arcane art of programming (Score:1)
Re:The arcane art of programming (Score:2)
I for one welcome... (Score:1)
tried this... (Score:3, Funny)
The Biomorphic Slashdot User Algorithm (Score:1, Interesting)
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
Fun stuff (Score:1)
Thats funny (Score:1)
Seems to me that nature IS a dynamic, self-organizing system.
Anyone else creeped out by this? (Score:4, Interesting)
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.
Re:Anyone else creeped out by this? (Score:3, Funny)
-
Self Organizing (Score:2)
LS
The author's favorite thing: (Score:2)
8 bits! (Score:2, Funny)
256? Isn't that convenient!
Re:8 bits! (Score:2, Funny)
Yhea, but still, 640 types of cells ought to be enough for anyone...
Re:8 bits! (Score:2)
You don't have to take it that far... (Score:3, Interesting)
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.
Re:You don't have to take it that far... (Score:1, Redundant)
Nature knows most, not best (Score:2)
One thing that nature is particularly good at is the development of dynamic, self-organizing systems.
No, nature is particularly terrible at doing that, but it cranks out so many different attempts over such an enormous time span that it looks good to us lowly humans. The idea of "biomorphic" software generally fails because we don't want to merely operate as a "hand of god" and take a come-what-may attitude, we have specific problems we want our software to solve. If we have a solution in mind, then
OT: For Doc.. (Score:1, Offtopic)
So
Prey (Score:1)
First use of the term "Biomorphing" (Score:3, Informative)
Re:First use of the term "Biomorphing" (Score:3, Informative)
The program generated very simple tree-like drawings based on various parameters. A given "computer biomorph" could be selected and the computer would generate a number of 'children', whose shape (parameters) would be based on those of the parent with slight random changes (mutations). Dawkins later wrote variants to simulate spider-webs. These Mac-
Re:Also check out (Score:2, Informative)