
www.Usenet.com
| <-- __Chronological__ --> | <-- __Thread__ --> |
On Sat, 22 Nov 2003 14:02:57 +0100, "José Gomila Fàbregues"
<[EMAIL PROTECTED]> wrote:
>"Steve McGrew" <[EMAIL PROTECTED]> escribió en el mensaje
>news:[EMAIL PROTECTED]
>>...snip...
>> One of the sample problems given with the Generator download
>> http://www.nli-ltd.com/products/genetic_algorithms/demos.htm, "Wasps",
>> looks for the optimum way to distribute several "bug bombs" in order
>> to kill the largest number of wasps whose nests are distributed over a
>> region. A trial solution is the set of coordinates of all the "bug
>> bombs". As it turns out, in that particular problem a very simple
>> two-point crossover operator works fine.
>> However, the best crossover and mutation operators for any
>> particular problem depend strongly on the internal structure of the
>> problem.
>>
>> SPM
>
>Thank you very much Steve,
>
> I will try 2-point crossover operator.
> The problem is that 1-point crossover operator cant guarantee that the
>good part of the individual will be mixed with the good part of the others
>individuals.
> individual A: xa1 ya1 za1 va1
> xa2 ya2 za2 va2
> xa3 ya3 za3 va3
> individual B: xb1 yb1 zb1 vb1
> xb2 yb2 zb2 vb2
> xb3 yb3 zb3 vb3
> children: xa1 ya1 za1 va1 (by 1-point xover)
> xa2 yb2 zb2 vb2
> xb3 yb3 zb3 vb3
>Because the subsets of the indivual are not puted in order, is too difficult
>belive that the children has the best parts of each parent. In the subset
>formet by both parent individuals (xa2 yb2 zb2 vb2), is xa2 with the others
>parameters yb2 zb2 vb2 a good combination?
>Well, I have to study with 2-points crossover. I will explain my experience
>with it.
>Thanks.
>Pepe.
Pepe,
Another crossover operator you might find useful is one that
treats the "vectors" (e.g., [xa3, ya3,za3,va3] would be a vector Va1)
as crossover elements. In that case your individuals above would be
individual A : Va1
Va2
Va3
individual B: Vb1
Vb2
Vb3
and a child might be :
Va1
Vb2
Va3
If you are using only three vectors per individual, then a one-point
crossover of this type would work fine. Note that this is equivalent
to your current one-point crossover operator *if* the crossover points
are restricted to the points between vectors.
Your mutation operator should still work on the level of the
components of the vectors, of course.
Steve
| <-- __Chronological__ --> | <-- __Thread__ --> |