Advertisement

Artificial life?

Started by April 30, 2000 02:52 PM
159 comments, last by Electron 24 years, 2 months ago
Ok, this is not a question that needs a concreet answer. I just want to show my theory and listen to others oppinion about it. At present, many ppl work with developing artificial life. They try to create a program that can learn itself from it''s own mistakes, break the border of logic, and so on. Yet, they only succeded creating a robot (as i know of =) that has the intelligence compared to a child with the age of 3. Of course, you cannot make a program with the same capacity as the human brain - not with present hardware, anyway. For instance, the human brain parts works simultaniously with eachother. the common computer can only work with one part of the time. Thus, i don''t know the number of cells in the human brain, but it''s in the count of bilions. if you wanna write a program that can be compared with the human brain, the program must contain billions of procedures! Good luck, i''ll visit you in about thousand years. However, it''s not impossible! the human brain itself is the evidence of that! So how did the human brain come to this almost-impossible-state? the answer is the only law of nature: Survival of the fittest. let me give you a demonstration. Let''s say you have a creature, that only has one arm and a mouth. He lives in the water. He also have the capability of dividing himself. (like a bacteria). this creature can only reach for the food around him and multiply, until he food drain and he dies. the only way his kind can survive is of multiplying and spread. O -> OO -> OO -> O ->OO ->O ->O -> O O OO OO O ..And so on. notice how the creature''s kind move. the creature itself cannot move, but the kind does. What if one of this creatures born with a ''malfunction''. instead of an arm, he got himself a tail. now he can move around by waving the tail! if the food around him drain, so what? let''s move somewhere else! With this new ability, he will live longer than the others and multiply more times, carrying his new genes to the new ones. Soon the kind will have a new face, and the old will evantually die, or create another speacy. At the next "mutation", a creature will born with both tail and arm. now they both can move for food, and reach the food around him without making energy-draining movements with the tail. now THIS kind is the best kind, and it will push the older away. Now, at the next mutation,the creature had both one arm and one tail, but he had no mouth! this creature didn''t multiply at all. he just died. get the point? the creature with the best capability will push away the less good. and so we have the developing on a new spiecy. Gosh, this is turning out to be a LOONG post, but hang on! i''m at the finish line. My point is: Instead of making billions of procedures, why don''t we just let the computer do it? For example: Make a program that simulates a simple world. Say a 2d world with the dimensions 100x100. One square can contain only one unit at the time. Now, make a food unit, and random some out in the world. Next, make a creature. ABSOLUTELY NO AI!! only the body itself, containing the position of the creature, and a vaule that indicates life. the life value will decrease with one each cycle, but if the creature eats the food, it will gain, say, 3 life. Summon: if the creature doesn''t eat, it will die. Now, make the AI. Make some simple functions, like go left, got up, eat, look down (is there a creature/food on the square velow?) , etc. Now, make the real AI - a matrix containing bytes - that''s all. got you, didn''t i? =) ok, let me explain. say that the matrix look like this: 1, 5, 56, 34, 9, 7, 12, 87, 45, 12 the ai look at the matrix[0] - and recieves ''1''. the ai knows that 1 means "go". go needs parameters, therefore it reads the next byte also. 5 means "left". aha! let''s go left! after he had done this, he reads 56. 56 means "if". need parameters. 34 means "hungry. (life below 10) ok, lets read what i shall do. (he''s not hungry, he will forward the matrix until he finds 12, which means "else".) 9 means "go to matrix number..". parameter indicates ''8'', and so it jumps to matrix[8], and continues reading from there. Now, this example cannot work in practical - it needs MUCH more advanced deconding and some sensing attributes, but the theory is the same. Now, if the creature succeed to eat, and gain some high value in the life attribute, another creaure will born beside him, with a copy of the father''s matrix, but with some randomed adjustements. Now it''s only to lie back and see if some kind of AI is born of theese randomed numbers. *Phew* if you''ve come all the way down here, i congratulate you. Now, i want YOUR oppinion about it! is this a way of facing the mystery of intelligence? 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??"
this sounds like Artificial Life alright. i think most people have abanonded expert system/AI in the pursuit of "emergent intelligence" (granted they still have their roles in certain system) in favor of AL, Genetic Programming.

look on the web for "John Koza", the godfather of genetic programming.
Advertisement
That sounds pretty cool, but the future for the most part is random, isn't it, excluding the survival of the fittest.

Suppose there's a 'bad' generation? That could stint the growth of the world, couldn't it?

Also the numbers in the byte stream couldn't be completely random, because the syntax would be wrong.
If move eat nine jump square? See what I mean? Imagine if that's what your dad told you before you sent you out on a six month hunting expedition to prove your manhood.

Also suppose if the matrix had no, or very few, eat commands. He would die because the thought of eating never entered his mind? This goes against instinct, which would need to be modelled outside of the matrix.

Lastly, when was the last time human evolution stopped because of a bad breed? There can't be a mass devolution, that would go against some law or other.
To combat this, the creatures would need to know what they wanted to do, but never could. Here is where you would have to model Mother Nature, find out the week spots in the species and evolve them to the point of excellence.

Additionally, the creatures should inherit only a slightly modified model of their parent's matrix, preventing evolution from occuring to quickly, or random isolated cases of devolution from becoming widespread.

In summary:

No mass devolution should take place.
Basic instinct would need to be modelled, and placed in every creature. They would do everything in their power to stick to those basic rules, depending on their matrix.
A mother nature AI would need to be modelled, which would 'write' the AI of all the other creatures upon 'birth'.
A simple command parser and matrix reader would need to be written for the creatures, enabling them to 'think'.

Once that is done, you can kick back back and watch them evolve. Leave it for long enough, and you will end up with variations on the best creatures given the position of the food.

This could be done, and it could be done well. I would love to work on a project like this, mail me if you're interested.


The_Minister

Edited by - The_Minister on 4/30/00 3:52:29 PM
[email=mwronen@mweb.co.za" onmouseOver="window.status='Mail The_Minister'; return true" onmouseOut="window.status=' '; return true]The_Minister[/email]1C3-D3M0N Interactive
I point you to the most magnificent work I have read on emergent intelligence and artifical AI...

"Godel, Escher, Bach: A Golden Triad" by Douglas Hoffstradler (not sure I got the spell exactly right).

Other than that, the system you are describing is a hybrid of direct DNA/RNA sequences and genetic algorithms, both have common ground in simple "byte" code procedures.





To the Minister:
Thank you for the response. i'm glad that ppl are intrested in my idea. However, i cannot agree with your oppinion.
At first, the talk about pre-made instincts is the grand think i want to avoid.
If you build pre-made instincts, your creatures becomes robots.
the thing is to let the creatures make their own instincts.
Yes, the first creatures (with the matrix built by a random generator) will have the greatest spasmer you can ever see.
But if you let the mutations go on, some creature will eventually have an unique string in the matrix that may sound like: "if square here contains food: EAT"
Then we have a beginning of life!
And of course, each mutation shall only have one or two changes in the matrix. If the change occurs in the EAT sequence, the creature probably will die before it multiplies, and the "bad creature's kind" is gone.

See? the "survival of the fittest" will sort out the bad ones and keep the best.
Eventually we will have a matrix that is so unique, that all the crap-sentences has been randomed away! (sounds cool, doesn't it? =)

Our only job as programmers is to act nature. Give the creatures a CHANCE to live, and let the creature figure out how to live themselves.

Anyway, The Minister. A project like this is very attractive, however, i'm just about to finish school, with all the last-time heavy work. Also, i'm currently working alone with a game, and i want to finish it first.
But I'll keep your email in case of more time free in the future.

Electron

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




Edited by - Electron on 5/1/00 11:47:50 AM

--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??"
i tend to agree with the minister''s idea of just slightly modifying the matrix with each new generation. if it''s totally random every time, there will be no connection to the previous generation, therefore no evolution. it''d be like one generation evolving a tail, and the next going back to the arm, and then maybe one with a leg..
but say the creature keeps track of when it''s in a good state (i.e. not hungry, or happy, or whatever), and remember which command or sequence of commands brought it to that state, and then those commands are weighted when generating the offspring.
what do you think?
Advertisement
Yeah that''s a good idea.

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
By the wording and ordering of ideas in the original post, I would say that for the most part, Electron, you have been doing quite a bit of thinking. This is something everyone likes to see. Good job.

There is, however, something I feel compelled to say, for completeness. Your plan is interesting, but it scratches the surface of a much larger discipline, that of evolutionary computing. Evolutionary computing encompases fields such as Genetic Algorithms (including Genetic Programming) and Evolutionary Programming.

Your project would no doubt be an interesting endeavour (and a great learning experience if you take it far enough), but it''s all been done before. The reason I feel necessary to warn you is not because I like to be the asswipe to burst your bubble, but simply because one day a phrase like "I just want to show my theory" or "I''m glad people are interested in my idea" will get you flamed...or much worse.

I only decided to speak up because your original post lacked any reference to (at the very least) Genetic Algorithms, and I assumed that this was because you were unaware that the idea has been pursued by many others before you. That having been said, you might be interested in a paper written by Karl Sims (Thinking Machines Corporation, 1994) called Evolving Virtual Creatures. Good luck.
------When thirsty for life, drink whisky. When thirsty for water, add ice.
No doubt this has all been done before. Still a very cool subject to work with tho.
I would probably consentrate on the instincs and forget the physical appearance of the creatures for a while. Mostly because i think the development of instincs would be the most interesting part.
If u think about it most of the physical attributes like arms, tails etc. are all part of the world as we know it. The problem really is that it would be hella difficult to make some sort of genetic algorithme that would come up with these attributes without any outside interference. A whole new subject by itself (has also been done btw). The other option is to define arms, legs, tails, eyes etc. as possible features of a creature. Eventually the creatures would end up as perfect physical beings and then the "mental" evolution would start. The intincs at first would be about finding the best combinations (move to food, eat) and after that finding the right balance of combinations (like 80% eating, 20% dating other creatures ).

AArrghh im rambling.

Anyways, a combination of physical and "mental" evolution would be the ultimate solution, just be careful u dont take ur mouth too full.
I worked on a similar project ones and i failed by trying excatly that.

Good luck
I''m not sure if what I''m saying is relevant to any of you concerning this topic, but from what I''ve read here and my admittedly limited understanding of Genetic Programming (practically nil, heheheh), I feel that I have a comment to make. Feel free to ignore it if you wish.

When trying to create Artificial Life, and you talk about instincts and how the creature evolves (growing an arm for extended reach, growing a tail for movement, etc.), either you''ve seemed to overlook something. Perhaps you haven''t overlooked it, maybe you''ve all reasoned it into your ''equations'' already. Anyways, my point (finally) is that in order for a creature to evolve in any way (mentally, physically, emotionally, etc.), there must be a challenge to the creature''s existence.

The environment is invariably the challenge which brings around physical evolution in any creature. In AL, should there not be an external force (ie. Mother Nature, as previously mentioned by The_Minister) to govern challenges for the creature(s), in order to:

1. create intellectual challenges to stimulate thought processes and enhance instincts?

2. create physical challenges to REQUIRE physical evolutionary change?

In the AL model that you folks are talking about, I can only assume that you''re focussing on the physical aspect primarily. But, how can physical change be brought about with these challenges?

Survival is of the fittest, you say. Ok, taking that one step further, let''s say that our creature(s) are happily eating away via their ''matrix''. If the challenge of getting this food remains the same, then what inspires physical evolution? You mention introducing minor discrepancies into each creature''s matrix to inspire these changes. Is this what your Mother Nature will do? (This is actually a question, not rhetorical at all. hehehe)

Evolutionary changes occur naturally, and out of necessity, right? If we can agree on that point, then why not put in challenges. Some creatures will die off, but the stronger - errr, I mean the best suited - will survive.

I hope that what I''ve typed has made some sort of sense. Feel free to ignore, comment, etc.

What I REALLY hope is that this was of some use.

Nitz

This topic is closed to new replies.

Advertisement