Advertisement

Somethings that's bothering me...

Started by December 23, 2001 07:57 AM
26 comments, last by Nurgle 23 years, 1 month ago
I don''t know how many of you do research into zoology and the like, but it''s basically the study of Universal Darwinism (biological and non-biological evolution)... A genetic algorihm is loosely defined as:

function GENETIC(problem, solutiona, solutionb)
	if FITNESS(problem, solutiona) is ACCEPTABLE
		return solutiona
	else if FITNESS(problem, solutionb) is ACCEPTABLE
		return solutionb
	else
		solutionc = MUTUTE(solutiona, solutionb)
		solutiond = MUTATE(solutiona, solutionb)
		GENETIC(problem, solutionc, solutiond)
end
 
If you went to any zoologist and called this "genetic" they would laugh in your face. The problem is that it''s deterministic, and deterministic evolution was debunked many, many moons ago. Contrary to what Star Trek tell us, we are not evolving into something, we are just evolving. However, Genetic Algorithms must have a predetermined result to compare the current state of things to. While that''s fine for the academic world, I think it sucks. The very use of a fitness function destroys any sense of natural selection (in the more natural sense). There. Rant over.

After careful deliberation, I have come to the conclusion that Nazrix is not cool. I am sorry for any inconvienience my previous mistake may have caused. We now return you to the original programming

Isnt natural selection a fitness function somewhat?

I do not know a big deal about biology and the stuff but to me natural selection seems like a function whos primary goal is to check if a genetic being fits into the world he lives.

Then natural selection eliminate all the genetic stuff who is not suitable for a giving environnement letting only the best and room open for new mutations who will then be "checked" by natural selection again.

I just think the "fitness function" for natural selection is just to complicated for the human to understand at this point of evolution though that does not mean it is not deterministic in the end for someone who can understand all the "variables" who actually make natural selection possible.

Well this is just my opinion on somewhat I dont really know so dont blame me and sorry for my bad english.
Advertisement
Its not completely deterministic since you have your mutate function along with a breeding function. You can also introduce additional randomness by choosing parents in a probabilistic manner. Either by chance based on rank of your fitness function or through some sort of tourney competition between solutions.

I don''t see how eliminating a fitness function will help you any. I mean you need someway of gauging the effectiveness of a solution. Yea, the fitness function can be completely arbitrary and bad, but thats the programmers responsibility. The algorithm uses genetic evolution as a model, it does not attempt to simulate evolution.

function GENETIC(problem, solutionList)
{
for every solution in solutionList
fitness = FITNESS(solution);
if fitness is ACCEPTABLE return solution;
else add solution to fitnessList sorted by fitness

select parentList from fitnessList using some algorithm
like probabilty, straight determinism, tourney, etc...

for pairs in parentList
child = BREED(parent1, parent2);
child = MUTATE(child);
add child to childList;

return GENETIC(problem, childList);
}
you left out the billions or more of rand(); statements that should accompany that code.
what he is saying is that there is no solution in real world evolution. Genetic Algorithms have a solution that they are aiming for.
Well in a way he is right but when you think about it, isn''t life the fitness function in nature? And technically we are evolving into something which is better adapted for our current enviroment. This is exactly what a GA does except it adapts a solution or better solution for the current problem.
Advertisement
It all is a question about what you want to do! Inteligense itselfe can not evolve by itselfe... humans for example need to be in a group, and there fore they need to be social... in nature you can also see that the most inteligent animals are social beings.. (gorila/dolphin) Why? Because flocking gives a sense of security to all the members of the group, and helps getting food!

Now lets look at the world... what is the driwing force of this planets life?

To reproduce!
How to reproduce?
Get Food / Find mate / Dont eat poison / Dont get killed
How to get food?
and so on....

You need to find out what you want your AI to do.... Then you need to have a simulation, witch tests if it can!
You can either create a full simulation of a world, where dna and physic forces are exact... (WARNING: NOT POSIBLE! :-))
or you can have a setup, like:

The then procent of the population who have an answer closest to 5 gets to reproduce.... Then ultimatly aweryone will answer 5!
The problem with this is that its only one solution, and therefore no good, but if you think, all of the animals on this planets folows my simple rule set, why? Because if you dont, you will die, and your "dna" will disapear forewer!

How to reproduce?
Get Food / Find mate / Dont eat poison / Dont get killed
How to get food?


So you have to deside if you replace "Get food" with:
If (animal->get_food_walue > 90) { func_get_food(&animal);}
or a full blow nature simulation!

So you can say that the nature is deterministic in a natural way!




-Anders-Oredsson-Norway-
Nurgle is correct.

The fitness function imposed on a GA does not echo evolution. Look at humans. Our fitness function is defined by the life of a human. It is nowhere near the fitness function of what we evolved from. A GA fitness function moves towards an optimal set, but evolution merely proceeds.

The fitness function (if there ever was one) evolves with that which is evolving, and not just the environment. The fitness function is never predetermined.
_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
Isn't it just a case of the fitness function in a genetic algorithm being more specific than 'fitness functions' in real life? For example, in real life something is 'fit enough' if it can stay alive long enough to reproduce, whereas with a genetic algorithm, something is 'fit enough' if it produces a solution close enough to the one sought. The only real difference is the complexity of the fitness function.

As a (really bad) example, what if we had a genetic algorithm to find a good compression algorithm? If we imagined these algorithms as creatures, any algorithm that failed to compress data sufficiently would 'starve' and not reproduce, as the algorithms improved, they would be better adapted to their environment and would flourish. How is this any different to the evolution of the neck of a giraffe (I told you this was a bad example)? Giraffes with short necks will not be able to find sufficient food and will starve, giraffes with longer necks will be able to get at more food and will flourish - to a point (there gets a point when a neck is too long)!

Any comments?

Enigma
------
...Every time I hoard my resources for...

Edited by - Enigma on December 24, 2001 4:00:40 PM


Nurgle,

You''re comparing apples and oranges here. For starters, no one would deny that biological evolution is far more complex than a genetic algorithm. And, anyone who has studied GAs will tell you that the field was inspired by biological evolution, but does not claim to be equivalent.

First, if you went to any biologist and presented them with an algorithm of any sort, they would likely scratch their head first and then turn away in disinterest. The reason it is called "genetic" is that the problem is encoded into a representation. Small modifications of this representation lead to small changes in your organism or candidate solution. Just like DNA transcribed to RNA translated to protein - small changes in DNA or the processes of transcription and translation lead to a slightly modified protein. That new protein may be better or worse at performing some function within the cell; i.e., it may be a better candidate solution to perform a particular funciton.

Next, it is not deterministic because the selection of parents is random, the selection of crossover methodology is random, the application of mutation is random. The only constraint is the you must produce a candidate solution that makes sense. In biology you have the same situation, if you get a frame shift mutation it is likely detrimental as it does not necessarily code for a viable protein and definitely nothing related to the original.

Fitness functions are essential and present in both systems. Obviously, in GAs you need some way to measure the goodness of your candidate solution. I won''t belabor that issue. Now consider Darwin''s finches. Suppose the geographics of the situation present the finches with flowers having very long necks. Finches with very short beaks will have a hard time getting food wheras those with long beaks will be better fed. Better fed means better able to reproduce and pass on their traits. Let this situation exist for 10,000 years and now your finches have long beaks. Where is the fitness function? It is in the ability to get food and prove themselves viable mates.

Last of all, don''t knock GAs or evolutionary computation in general. Any computer scientist worth his salt will admit that this type of algorithm is not guaranteed to give you an optimal solution. But, when applied properly, you may get darn close. hmmmm...just like biology, eh?

-Kirk

This topic is closed to new replies.

Advertisement