OP: you're right about the water bit. :) I still hold that most life forms are asexual. Complex lifeforms are a different matter....
Quote:
The cool thing about crossover is that you can select the good attributes from an already successful member. The data didn't "happen to exist" (except for the first generation), it has been slowly changing and storing up the good genes while filtering out the bad ones.
You can chose only the good sequences in their entirety, sure. Anything is possible. But you likely wont.
The term 'gene' is deceptive as it implies discreet blocks of self-contained function. It says nothing about 'gene' dependancy, etc... I think in the case of an algorithm, code, or lego structure, we do not have knowledge of dependancy. If we did then we would probably have designed it in to the operators being used.
i.e.
j = 1k = 10for i = j to k a = a + 1; b = b * 2 if a > 5 c = b / a;next j
How would you know which parts of the above code are required to keep the others working?
DNA isn't random, and neither is biological cross-over. Both are complex structures.
Maybe Kylotan has an answer. :)
Quote:
Original post by Timkin
I think you're missing the point of what I'm saying. Of course the outcome of mutation and crossover are both random, because they are stochastic operators, however they are both selected from a countably finite set of possibilities.
The possibile outcomes of mutation are found within a small hypershpere of the
state space, centered on the current chromosome.
I agree with you.
Quote:
Original post by Timkin
The radius of this sphere is a function of the encoding scheme. Mutation can only generate local perturbations to the solution hypothesis represent by the chromosome. The outcomes of crossover are not so constrained, since solutions will lie within a hypersphere that encompasses both parents.
Two things:
There is no law that states that the actual solution space will encompass the area between both points. It may be that each solution is so drastically different, or sufficiently complex, that combining the two can only result in no solution. I realize this is an extreme, but saying that the combination of the two covers such a broad area is also extreme. I am not arguing that it is possible, because I believe it is, rather that it's the exception and not the rule.
That said, you don't have to restrict mutation to only one change per run. This way you have method by which the spheres radius is variable.
Quote:
Original post by Timkin
If these parents are distant within the state space, then the set of possible offspring spans more of the objective function than those of mutation alone. The possibility of finding new optima of the objective function within this offspring set is far higher than for the outcome set of mutation.
It's hard to argue with words like 'possible'. :) While it is possible you will get a perfect solution, by chance, it's is unlikely. I also find it unlikely that taking a chunk of 'code' from one member and pasting it in to another is likeley to have much of an advantagous affect.
If I took half of kernerl32.dll and mixed it with half of netapi32.dll, I'd get a crashing computer. :)
Quote:
Original post by Timkin
Quote:
Just because the sequence of data happened to exist somewhere else within the population is of little consequence.
I'm not sure what you're trying to say here...could you explain it please.
If I get a=b from random mutation, or randomly extract it from the 'code' of another member is of little consequence. It got there randomly. a=b, via crossover, could just have easily been a=c from a different member, or a=d from mutation.
I think I'm repeating myself here, but, just because a pattern works well in one member, it is no gaurantee that the same pattern will work well in a different member. In most cases (sorry I cant be more specific) 'crossover' will have the highest chance of working when crossing two nearly identical members. If this is the case then it's really not much different than mutation. The spheres that you talk about start taking on a much different shape..
i.e. Mixing a human with a bananna gives us mush. Mixing a human with a human gives us (usually) a human, though slightly different from either parent.
Quote:
Original post by Timkin
Quote:
It doesn't take much to flood a population. I guess this is the crux of what I'm saying. As soon as the odds swing in one particular direction then they are likely to stay that way.
To a certain extent that is true, however I can say (based on research analysis and experience) that this is very much problem and encoding dependent.
Can you think of a way where you could get the same (or similar) results using only mutation?
I have no problems with seeing early convergence (I kind of encourage it), and have no problem with a temporarily stagnant population. I have methods which keep things moving.
Quote:
Original post by Timkin
Quote:
Why wasted? Why can't pure duplication be just as advantageous? As you mentioned earlier we cannot know the outcome until we try it.
Clones are a waste of an algorithmic iteration. The solutions already existed in the population so producing the clone offspring did nothing to change the state of the population. Hence, that iteration of reproduction was a waste for the search of the state space.
I do not agree.
i.e.
Member A: i++;i--;crossed with itself:i++;i++;
Something new made from something old.. Maybe +2 is better than +0, maybe not.
When you say 'solution' I get the impression that you feel each 'chunk' of data in a member is 'solution'. I dont feel that way. Each 'chunk' may be part of a solution, but on it's own may be (and likely is) nothing.
Quote:
Original post by Kylotan
Quote:Cross-over is an evolved operation, not something that happens willy-nilly. Willy-nilly is how GA/EP applies it.
No it's not...
How do you enforce cross-over so that it always makes sense? I assume this must be very specific to a certain applications.
Quote:
Original post by Kylotan
Because then you may as well just have a population size of 1. The principal value of genetic algorithms over other similar techniques is that the population shares information among itself. If you have no crossover, this information is not getting shared on any significant level. And if you have duplicate solutions, then there is no information to share anyway.
Without cross-over you can still have variety, and the shareing of information. Cloning with mutation ensures sharing.
I can have 50 members, each 1 or two operations away from each other. 99% identical. If I prefer 'new over old', and I get in to a flat spot, it is conceivable that I could have 50 members, all derived from the same ancestor, but 50 operations apart. By operation I mean a mutation (or cross-over). We can also increase the rate of mutation and modify the selection process if stagnation becomes a factor; this elminates the need to reset the system.
Quote:
Original post by Kylotan
If both solutions are on the global maximum then any combination of their traits will be.
Maybe I misunderstand you.. Are you saying 'if two hands of poker are equally strong, any combination of the cards contained in those hands must be as strong'? I could have two flushes, but with different suits. Two full-houses with different cards, etc..
Tim, some of what you've been saying doesn't match up with some of what Kylotan has been saying. I understand neither of you agree about my final view with regards to crossover, but you seem to be disagreeing for exlusivley different reasons.
Will