Darwinbots Forum
General => Off Topic => Topic started by: kenstauffer on January 26, 2007, 12:44:07 AM
-
I just enjoyed watching Daniel Dennett from 1998. Its a good speech (video), which discusses alife mostly. If you haven't already seen it, you may be in for a treat.
http://www.qoolsqool.com/story/1366/ (http://www.qoolsqool.com/story/1366/)
or direct link to video,
http://www.researchchannel.org/asx/uw_danz_algo_mult.asx (http://www.researchchannel.org/asx/uw_danz_algo_mult.asx)
-
I have seen this lecture several times. The first time, years ago, had a defining impact on my personal interests and played a direct role in my gravitating towards ALife and DB. Everybody associated with DB has to watch this at least once.
The points he makes regarding collision detection (as a proxy for unpredictable messy interations) limiting the potential of ALife simualtors are very germaine to DB. It is one of the pitfalls of a closed simulated environment, particularly a high-level environment like DB which attempts to simulate real world physics. In such simulators, all the physics, all the potential interactions have to be delibertly coded into the simulator and there is a computational cost for every added degree of freedom, limiting the potential complexity that can possibly evolve. It is why bots can't see shots, why shots can't hit ties, why ties arn't subject to friction or fluid resistance, why there is no collision detection between bots and ties, etc.
I've mused on possible ways to address this limitation in ALife sims ever since I first saw this lecture years ago. About the only usefull conclusion I've reached is that I think the evolution of truly open-ended virtual organisms (which I define as having no inherent limt on the potential compexity they can evolve) will ultimatly require that they evolve outside a closed system. DB is a closed system I.e. the bot's universe is constrained to that of the simulator and to only those things the programmer enables. True open-ended virtual organisms will need to escape the confines of a close system and exist as naked processes (or viruses infecting host processes) and be exposed to the full potential of messy interations with everything running in the largest virtual world possible I.e. the set of connected computers which make up the Internet. (This theme of an evolving computer 'virus' is core to the SF book I am working on.)
Simulator-less Alife organisms must carry with them their own reproduction and mutation mechanisms as well as code for their own morphology. That is, there is no simulator to provide them with eye values. While in DB we are focused on evolving behaviour, simulator-less organisms will need to evolve not only behaviour but senses, mobility mechanisms and everything else. But it would allow for the potential at least to address another limitation Dennett mentions, which is the ability (or in simulator-bases systems, the inability) to evolve new morpholgical senses (he uses the example of photo-sensitivty in Carl Sim's evolved organisms in his lecture.)
The last thing I'll comment on are the comments he makes regarding hand-authored DNA towards the end of the lecture when describing the attempted bootstrapping of evolution by the researchers in the real-world shape-seeking robots. He speaks to the fragility of hand-authored organisms and how quickly evolution dispenses with a human-coded approach. This goes to the heart of comments I have made on the forum regarding the use of hand-authorred DNA in zerobot evolution sims. I look forward to the day in the not too distant future where hand-authored bots in DB simply cannot compete effectivly with evolved ones.
-
Yeah, you are right about the limits of computer based environment to emulate the complex richness of reality. However, there is one man-made, computer-based, artifact that comes remotely close to the richness of reality. That envirnment is The Internet.
What if an ALIFE project used the Internet as it virtual world?
-
What if an ALIFE project used the Internet as it virtual world?
That is exactly what I propose above.
-
I'm an idiot! Sorry. I need to read more carefully.
-
Actually, I think the bot article selection thing you mention in your blog is a cool idea and much more useful than my Terminator Skynet style free for all where they are let loose on the internet and use it for their own private playground.
-
Somehow the organism would need to deliberatly slightly mutate it's children's code. (natural levels of mutation on the net being largely non-existant) One problem is that there's currently no good language to code the creature in, most languages being too brittle/complex to allow sensible mutation outside of a compiler.
Perhaps a sort of Compiler/Interpreter shell surrounding the evolvable code. The outer shell would be standard code, but the inner code would be mutatable. The outer code could then "reproduce" offspring with the mutated code.
Somehow you'd also have to let it loose too... The feds may or may not show up the next day.
I *think* that standard Anti-viral programs would be able to catch it. It would always need the same basic outer shell so it should be trackable.
Alright, gotta get going.
Endy
-
Yes, I think combining the virtual machine with the organism is the ticket. The naked OSes of modern operating system are not fault tolerant enough for a naked evolvable creature. If the creatures tote around their own environment, then you have a shot at something real.
-
Somehow the organism would need to deliberatly slightly mutate it's children's code. (natural levels of mutation on the net being largely non-existant)
Delibertly inducing random mutations when copying itself would be easy. It turns out that most biological mutations arn't "natural" (I.e. external). They are infact internal or "intentional" meaning that the vast majority of mutations occur as a side effect of DNA copying or repair. One can take the position (I do) that selection has favored imperfect copying mechanisms which exhibit certain rates of mutation. Said another way, perfect copying/repair is possible but it has been selected against (or never selected for). Never mutating is bad since there would be no diversity to respond to changing environments. Thus my use of the term "intentional".
One problem is that there's currently no good language to code the creature in, most languages being too brittle/complex to allow sensible mutation outside of a compiler.
It's not clear to me that naked assembly would not be suitable. Yes, the vast majority of mutations would result in faults, but that might simply result in strong directional selection towards programs which did not fault and which created offspring that did not fault. It would be bloody at first, but given the right bootstrapping and scale, I think it's possible for nothing more than a "zerobot" naked exe that does nothign but make random imprefect copies of itself to evolve.
Perhaps a sort of Compiler/Interpreter shell surrounding the evolvable code. The outer shell would be standard code, but the inner code would be mutatable. The outer code could then "reproduce" offspring with the mutated code.
This is essentially how I would do it though I would make the entire thing including the "shell" mutable. It woudl happen anyway I.e. at some point, mutations would evovle which started mutating the shell. As above, this would lead to many non-viable offspring, but it is the most flexable and open ended.
Somehow you'd also have to let it loose too... The feds may or may not show up the next day.
Ah yes. Small sacrifice for creating an entirely new branch of life. (Honest, I'm kidding. To any future jury which may be reading this let me say: I didn't do it!)
I *think* that standard Anti-viral programs would be able to catch it. It would always need the same basic outer shell so it should be trackable.
Individuals which got caught or which called too much attention to themselves, say by crashing or eating up too many resources, would be selected against. The survivors would be the ones that kept a low profile, that learned to avoid AV programs, that perhaps even started doing something useful. Hell, they could be living amoungst us already! Someone shoudl write a SF novel with this plot. Oh wait, that someone is me!
-
Individuals which got caught or which called too much attention to themselves, say by crashing or eating up too many resources, would be selected against. The survivors would be the ones that kept a low profile, that learned to avoid AV programs, that perhaps even started doing something useful. Hell, they could be living amoungst us already! Someone shoudl write a SF novel with this plot. Oh wait, that someone is me!
Iain Banks' Feersum Endjinn describes the end result of such a process (though obviously not the "amongst us already" part). And the theme is also present in Ken MacLeod's The Star Fraction.
-
Mmm, Iain M Banks, (rather than Ian Banks) Feersum Endjinn was a good book, I would have a full collection of his books if I wasn't so good at lending them out and forgetting to whom...
First grabbed by 'Consider Phlebas' or 'The Bridge' he remains one of my favourite SF authors after Asimov; I don't think I have read Ken Macleod before, is he worth a read?
-
I'm going to disagree that naked assembly can possibly give rise to something viably alive. The problem is that in nature, when you "fault", you die. But in a computer when you "fault" you kill yourself and everyone around you (restart), and decrease the viability of your environment for future generations (user gets wary and stops downloading programs/heightens anti viral).
Beyond that, OSes are specifically designed to be not fault tolerant, since you don't want your printer randomly spewing out pages when a program writes to protected memory. Programs that do not work perfectly die. Real life is far more forgiving for protolife than naked computers.
However, if organisms strap on their own virtual machines, then it becomes a easier.
-
By naked, I mean user mode code running as it's own process on top of a kernal mode OS such as Windows or Linix. I did not mean to imply there was no host OS.
User mode program A faulting will not impact user mode program B on any modern OS While your point regarding crashes alerting the user or the system via windows crash reporting or similar is well taken, in general, user mode code cannot fault another user mode program or the OS. If it could, that would be considered a bug in the OS.
Any such alerts would simply provide directional selection favoring those 'organisms" which do not crash or do not crash in ways that alert the user. One can imagine sucessful programs evolving and passing on to their decendents their own evolved structured execption handling for example.
In the end, a process is a process as far as the kernal is concerned, whether it uses some host VM or not. Opened ended evolution, the subject which began this discussion, would by definition be limited by the capabilites of any host VM and thus the only way to remove such limitations is to make the VM itself mutable and thus essentially part of the organism.
I do not claim it easy or probable or even realistic. Only that it is conceivable.
-
I'm sure it's a bug, but I've managed to crash XP to the point of restarting at least a dozen times in the last few months, when I program various projects. I would be very surprised if a computer that decided to allow randomly mutating naked apps didn't need to be restarted, or even reformatted, quite often. Computers are carefully oiled machines that do not like things bumping where they should have bopped, so to speak.
A "virtual machine" does not necessarily need to be limiting. It just needs to provide a conversion from a mutation friendly environment to real world of your computer hardware. Think Java's virtual machine. It lets you do anything pretty much that your computer can do, but the hardware details (and OS details) are abstracted from the programmer.
Think of something like that, but to the next level. And lock out the very, very, bad things like reformatting the hard drive . You could in fact control the access to various hardware through the virtual machine (which mostly doesn't change).
The problem is that even a program like this, which is relatively well behaved, is going to piss off alot of people on the net before it ever manages to get downloaded to someone else's computer. Randomly posting "asd;lfkljasiewkasdfj;O(iasdfjlk;" to different forums, for instance, isn't going to be making it any friends. The net is quite hostile to things that are stupid. The program would need to become reasonably advanced on the origin computer before it could ever get any clock time on anyone else's computer.
There's just too many hurdles to overcome all at once for a naked alife app to become distributed on the net. It's possible that a designed app might be able to make inroads, though, and mutate from there.
I would also point out that there are far more mutations in computers than you might think. I can't count the number of times I downloaded something with a bad checksum.
-
Mmm, Iain M Banks, (rather than Ian Banks)
IMHO, this Iain M. Banks/ Iain Banks distinction is rather arbitrary. There's no doubt in my mind that books under both names were written by the same author.
I don't think I have read Ken Macleod before, is he worth a read?
If you like Iain Banks, certainly! His style is quite similar. The most striking difference is that where Banks evokes philosophical and sociological themes, MacLeod is more into politics and technology, but Learning the world could almost pass for a Banks novel.
-
I'm sure it's a bug, but I've managed to crash XP to the point of restarting at least a dozen times in the last few months, when I program various projects. I would be very surprised if a computer that decided to allow randomly mutating naked apps didn't need to be restarted, or even reformatted, quite often. Computers are carefully oiled machines that do not like things bumping where they should have bopped, so to speak.
I can't disagree. XP has may serious architectural problems (not fixed in Vista) not the least of which is that it deviated significantly (against Dave Cutler's objections and for reasons like RAM prices which are no longer relavant!) from it's NT micro kernal ancestory in that a whole bunch of stuff that should run in user mode actually runs in kernal mode (like User and GDI). This means there are millions of lines of code running in ring 0 that can take out the OS. Lots of surface area for OS bugs.
Even ignoring bugs, user mode apps can still muck things up by doing such things as allocating excesive kernal mode resources (which require the allocation of non-swappable kernal mode memory) like semaphores or file handles. While the kernal won't crash, a user mode app that does these kinds of things can cause the machine to become unusable for the human, requiring the OS be restarted.
Most problems though are with drivers or other thrid party kernal mode code like AV file filters that are either buggy or introduce API incompatabilites so that other programs have problems. Then there are the compatability switches... XP recognises hundreds of specific programs and actually changes the behaviour of system APIs to preserve behaviour they expected from previous versions in an effort to run as many things as possible even if they are technically incorrect.... Soemtimes these do the wrong thigns for the wrong programs.... In short, its a mess.
That said, there are many many millions of computers in the internet. I used to be heavily invovled with anti-virus stuff. Just like biological viruses, software viruses and worms that get released to the wild can take many years to go away completely, if ever. There are always unpatched machines, machines not running AV, machines for the which the user jsut lives with tehe problem, back-up tapes, infected machines that get turned on again after years, etc. The population gets knocked down when a patch or an AV signature comes out for them, but they are all still out there running somewhere, for many years. My point is that while yes, the vast majority of self-propagating, self-mutating viral organisms would crash, or get caught, or destroy their environement, or piss off the user, etc. , this just means that selection would favor the ones that were well behaved. Eventually, symbioisis could develop. Of course, were someone really interzxsted in doign this, the design of the bootstrap first organism would be critical.
-
Carl Sagan called his book, Darwin's Dangerous Idea, a "...breath of fresh air". I couldn't have put it better myself. I am so glad you posted this lecture. To see him actually speak and have a face and voice behind the writer is wonderful. He is such a good thinker, and has a delightful sense of humour. Thanks for the post.
-
What players do you use to play the file? I can't get it to play in any of my players, Windows Media Player, Winamp or Quicktime. What the heck is .asx anyway? Why don't people just make movies with normal media formats??
-
You just listed the 3 worst media players I know of
In my not so humble opinion, if something can't be played with VLC or media player classic and no more than one codec pack.... then it's not worth playing anyways
I hate Quicktime like the plague... probably a lot more than the plague since I've never had the plague but Quicktime still tryes to sneak in through automatic updates.
I'm toying with the idea of making a Quicktime blocker, with the soul purpose of keeping Quicktime and iTunes far far away from me.
-
Ha, ironic, I just downloaded VLC to watch a DVD after MediaPlayer said it didn't know how. Must say I rather enjoy the different visual options it gives you, especially play as desktop.
-
I hate Quicktime too, but I was forced to install it for some things I needed to see. I bet it has spyware functions inbedded into it, so I've made sure it's only set to play Quicktime formats, and I try to block any kind of access to it other then when I need it to see something that requires it.
But how you can say Winamp is the worst player I don't get. It's perfect for playing music. The best feature is the equalizer which you can set to have special settings for songs which automatically loads for that song, so you don't have to keep change it for every new song that loads.
-
The file played in my windows media player. I think that the Vista WMP is equipped with the neccessary tools to run that format...?