Advertisement

Artificial life?

Started by April 30, 2000 02:52 PM
159 comments, last by Electron 24 years, 2 months ago
You''ve created just "another Robot". How does this AI learn?
The "Learning" thing comes with the mutation. Of course, a random modification will in 99.9% of the mutations make the creature more dumb, or even stall the creature completely. It''s the 0.1% that''s left that will do the actual evolving.
the others will simply die.

Also, Please don''t take my examples litteraly.
The "arm and tail" example hit me while i was thinking of an example to illustrate =)
The "Matrix" example hit me even faster. I doubt theese are the ways of making artificial life, it was just an example of my thinking.

In summon: Don''t try to create the creature, make a world for it, and let it create itself.


..And for the challenge question:
the challenge for the creatures is the "survival of the fittest" itself. It''s how to survive best.
THIS IS ANOTHER EXAMPLE: PLEASE DON''T TAKE IT LITTERALY!!
To make the challenge even harder, let the plants themselves have some ai. This ai we can write ourselves. let the plants grow and multiply. If a creature eats a plant, then the plant disappears. then the creature MUST figure out a way to move, or else it will starve to death.

Oh, one more thing. I''m not trying to win the Nobell price for this idea. i just think this is a intresting thought, thats all. =)



Electron

"Who need more than 640kb of RAM?" -Bill gates -89


--Electron"The truth can be changed simply by the way you accept it.""'General failure trying to read from file' - who is General Failure, and why is he reading my file??"
Advertisement
You''re missing something: if your only instinct is to get food, you won''t end up with much more than an efficient eating machine. Real lifeforms have had the genetic opportunity to obtain new instincts or desires through mutation that may work against the base level survival instincts (leading to death) or in tandem with them (leading to a more efficient being). They didn''t have to learn these things as such. They didn''t even really evolve in the sense of evolution being the survival of the most efficent genes from the parent: this is about new things being introduced. And without that extra level, I don''t see how you will get much you could consider intelligent. If that''s not what you want, then that''s ok
If you''re worried about random mutations setting back growth (which will happen, but over time it will correct itself) then you might look at reinforcement learning, its similar to a genetic algorithm but it improves itself based on success/failure of particular action. Theres alot more to it, check out Barto''s book (He''s the professor advising my team on Ai for a soccer game) at
http://www-anw.cs.umass.edu/~rich/book/the-book.html
for more information on reinforcement learning. Somewhere in there are some good C++ example programs, like one that learns to balance a pole.
Wow, good words there Kylotan. He will just become an efficient eating machine. Something like this will need to invent its own skills, such as trading in Sugerscape, but he will need to develop them by himself.
Are we not just sophisticated eating machines?

Instinct are the basic things that you need to know to survive, eg eat. If there is food, eat.
I, however, now agree with Electron: When the Mother Nature modifies the matrix, regarding the sequence of commands when he was most full of life (whatever), then eventually instinct will develop on its own, will it not?

So we scrap instinct, and now need to give them enough commands to be flexible, such as a ''Put'', but then the ability to specify what to put, if there is more than one thing, and where to put it.
I propose that each creature has an ID that can be parsed to mean "That creature". The matrix constuctor, ie Mother Nature, will then choose between all the places to put it, including other creatures. Thus he will accidently give it to another creature, resulting in the beginnings of trade.

Of course, this leads to things that are impossible, such as giving food to a creature to far away, so if he tries to do something he can''t, for whatever reason, he will add it to his ''want'' list and then, next timeframe, try to execute that command before the next in his matrix.

Then the creatures would need to have ''environmental awareness'', such as ''closest creature'', to give it to say the closest creature.

So a line in the matrix could look like this:

if closestcreature is creature56 then give closestcreature food

Now this line would take quite a while to evolve, especially since there is a repetition of closestcreature, but imagine what would happen if it did. The creature would give away its hard earned food to another creature he doesn''t know.

In order to work right, this other creature would need to be able to ''recieve'' the food from the owner, and then acknowledge that he now has gotten something from someone, and put that in a memory of some sort.
Now suppose he hits a line in the matrix that says:
if food is bigger than 50 then give nexttrader food
If he can''t at the moment, he will eventually be able to because he''s trying to every turn.

Now say that first creature is very low on food. He has a walking investment, doesn''t he? He has given away some food, to perhaps save another creature, and will soon be getting it back (hopefully).

This is amazingly primitive, but you can see where this can go to.

My God this is a long post .

The_Minister
1C3-D3M0N Interactive
[email=mwronen@mweb.co.za" onmouseOver="window.status='Mail The_Minister'; return true" onmouseOut="window.status=' '; return true]The_Minister[/email]1C3-D3M0N Interactive
Actually I think you missed the gist of what Kylotan was saying.

Basically, you are doing nothing more than prefixing the creatures habits. Now one might argue that DNA is a prefixed program for the most part, and they would be right, however over time it actually mutates. The point being that these "matricies" you talk about should actually be matricies of functions.

IOW, DNA is cut up into small functions (4 to be exact T,A,G,C) which when grouped into larger strands (TAAGCTAGC) become more complex operations. Here you would create a reference matrix for two base pairs, so that, maybe a TT means move, maybe TA means eat, GG sleep, etc...

obviously the human genome (or any for that matter) have much more complex strands to show their meaning (instead of 2 base pairs maybe it takes 1000000 to defne sleep).

Of course this is all very basic evolutionary programming/genetic algorithms and has been covered in much more detail then I have it here.

Needless to say, the mutations would happen on the strands of "DNA/RNA" code instead of the creatures mental states, thus altering the behavior of the creature.

A system like this, coupled with a system like you propse (genetic algorithms/survival of the fittest), would prolly get the effect you want.







Advertisement
If you wanted to truly allow a creature to evolve on it''s own you would only need one thing. A set of world rules. i.e. physics, which in our world defines, in the macro, chemistry and hence biology.
If you start to constrain the direction evolution can go by thinking "I want the creature to eventually be able to perform these actions...." then you''re really constraining how far you can go with the project.

Think about it, our universe is primarily made up of the interactions between 100 elements and a few different forms of field (electro-magnetic, gravitational etc.). These elements are made of fewer, smaller particles (protons, neutrons, electrons etc.) which are, in turn made up of fewer smaller particles (quarks).
If you want a more computational example, how many instructions does a RISC processor have? 120(ish) and look what it can do.

Don''t get complex, just allow a free reign of control mechanism that can grow in any direction evolution takes it. Remember the life game (8x8 board with each cell potentially containing a creature), the rules to that numbered about three and yet it created patterns very much like single celled life (hence the name :-)).

I like electron''s idea because it has few constraints which means evolution can find any potential answers. And, face it, evolution would do a much better job than we would.

Mike
Now we're getting somewhere!
I'm sorry if i was confusing in the beggining, but this is EXACLY what i ment!
Absolutely NO pre-made goal, just let the creatures go forward themselves. Let's give them food so they have a CHANCE to live, then, if they for example find a bug in the program that make their life points go to astronomical, then let's let them! the thing is that "life finds a way" (*G* anyone seen "Jurasic Park"? =)


Electron

"Who need more than 640kb of RAM?" -Bill gates -89




Edited by - Electron on 5/2/00 3:27:54 PM

--Electron"The truth can be changed simply by the way you accept it.""'General failure trying to read from file' - who is General Failure, and why is he reading my file??"
Ok, ive just discovered your topic and am quite interested in the project.
One thing i feel is worth pointing out is that in my opinion software cannot evolve (at least not at the moment, maybe so in 10 years or so).
A program written to print "Hello world" is always gonna do this, and will never suddenly say "Hello there". Programs will only do what you tell them to do, and this is not artificial life. You can come close by having a rnadom generator, such as if 1 then eat food, if 2 sleep, if 3 go exploring. The program will not learn how to do anything else, but will do what you have allowed it to. Once again, this is not artificial life.

The other thing that needs highlighting is viruses.People researched for years how to make replicating code, and when they cracked the problem, it turned into the worsed discovery ever made, causing havoc to millions of computers every year. Suppose we develope AL, and the program suddenly realises how to transmit itself over the network, and then a month later realises how to reformat your hard disk. You have a serious problem then. It may also discover how to hide from a virus checker.

Basically what im saying is at the moment it is just not possible, and if it ever becomes possible, it could turn out to be a bad thing. Maybe im getting carried away here, but if AL is possible, so is this problem i mentioned.
Well done, Minister, you''ve stumbled upon one of the main themes of my recent Game Theory & Cooperation class. As it turns out vampire bats do the exact thing you''re describing; after a blood feast, they regurgitate some of their hard-won sustenance into one of their neighbor''s mouths, expecting the favor to be returned at a later date. This is called reciprocal altruism and is common to a number of social species; indeed, it is considered to be one of the foundations of social interaction.
Graylien: well said.
Joviex: It''s actually Godel, Escher, Bach: An Eternal Golden Braid by Douglas R. Hofstadter, and I absolutely agree with you; heady stuff, but well worth the time!
In regards to the general discussion, it was put forth in our class that human intellect may have evolved to its current state through an "arms race" of social interaction. That is, everyone is better off if each individual cooperates, but if you''re smart enough to be the one cheater, you make a killing. But then others evolve means of detecting cheaters, and your progeny evolve means of evading their detection...this may be a little beyond the scope of Electron''s original programming idea, but still, just a thought hey?
btw, my class included a lot of interesting reading material on the general subject of Games ond the development of intelligence; here''s some of my favorites:
The Origins of Virtue, Matt Ridley
Game Theory and Strategy, Philip Straffin
Evolution of Cooperation, Robert Axelrod (highly germane to the subject of evolving models; definitely worth a look)
Prisoner''s Dilemma, William Poundstone
oh yes, all credit is do to my Prof. Dr. Kraines for putting this reading material together. ''Twas a good class!
Cheers. -D
-david

This topic is closed to new replies.

Advertisement