Re: Crossover in Scheduling GA



Goal: Keep it simple.

However, if the goal is to have crossover produce legal offspring then a
little work encoding and decoding the chromosome will avoid illegal
children. Also just let the GA pick the crossover points on the bit boundary
not the activity boundary.

Here is a quick sketch:

Chromosome:

Have a chromosome of x slots, for example 24*4 or 96 slots, 15 minute time
frames.

Encoding/Decoding:

For each activity maintain an array[96] indicating permissible activity in
that time slot. This can be static or dynamic. You indicated a daily limit
so a dynamic array would be required. As the chromosme is decoded update the
array.

The 96 chromosome slots are random numbers.

These numbers, modula the number of activities, map to the activity array.
If the activity is not permitted then proceed to "another" slot until a
permitted entry is found. The method to proceed could use a hash to avoid
just picking the next slot, which might bias the slot assignment. Of course
this bias might help convergence.

This approach will produce legal children and use up the available
resources.

If there are changeover costs then the fitness function would favor AAAABBB
versus ABBABAA. Then bunched occurrences should emerge.

I'd try this to see how it converged.

If need be, you could add an additional chromosome for the time chuck size
of the activity and augment the encode/decode to use this but I'd first try
the "simple" approach first.



Regards,

Jim Moore


.



Relevant Pages

  • Re: VHDL for problem
    ... I have to build a unit to do a crossover of two chromosome ... >and a crossover point, I did use fixed values in the declarations but I ... for i in son'range loop ... one arithmetic comparator for each bit of the "chromosome" word. ...
    (comp.lang.vhdl)
  • Re: Python Genetic Algorithm
    ... and Individuals have what's called a chromosome - a specification of ... On the other hand, something like a string chromosome Is A chromosome, ... x = "Parrot" # x is the NAME of the class ... Where xover is a parameter defining the type of crossover to be used. ...
    (comp.lang.python)
  • Re: Python Genetic Algorithm
    ... and Individuals have what's called a chromosome - a specification of ... On the other hand, something like a string chromosome Is A chromosome, ... x = "Parrot" # x is the NAME of the class ... Suppose you read the crossover type from a text config file, ...
    (comp.lang.python)
  • Re: Crossover in Scheduling GA
    ... if the goal is to have crossover produce legal offspring then a ... little work encoding and decoding the chromosome will avoid illegal ... Also just let the GA pick the crossover points on the bit boundary ...
    (comp.ai.genetic)
  • Re: recombination question
    ... A crossover in the middle of such a gene is simply equivalent ... to inheriting the allele containing the copied difference. ... is different on each chromosome so that a whole ...
    (sci.bio.evolution)