RESTRICTION: the dutyCylce constraint assumes that the task duration is equal to the access window -- i.e, there is
no point in trying to move the task around in time.
NOTE: it doesn't really matter what childmaker is used because the HBSS algorithm
will rearrange the permutation to reflect the order tasks were chosen by the
TaskList (a RouletteWheel of one sort or another
RESTRICTION: the dutyCylce constraint assumes that the task duration is equal to the access window -- i.e, there is no point in trying to move the task around in time.
Implement the molecule specific part of the crossover operator described in
"JavaGenes: Evolving Graphs with Crossover," Al Globus, Sean Atsatt,
John Lawton, Todd Wipke.
Mutates all alleles with a random number chosen
from a Gaussian distribution with the standard deviation
taken by the difference in two of the children
Mutates selected doubles with a random number chosen
from a Gaussian distribution with the standard deviation
taken by the difference in two of the children
Make a number that, when used as a filename, will print
out sequential with others (i.e., is in ASCII order as
well as numerical order) by inserting leading zeros.
NOTE: requires that there are no tasks with 0 accessWindows
BUG: in the evaluation function used by JavaGenes.Reporter.java the best schedule cannot
be regenerated, so some of the objective values (e.g., MinimizeSlewingFitness and SmallSlewsFitness)
will have values form a new HBSS run, not the actual best run! Need to figure out how to fix this.
Same as SqueakyWheelTournamentSwapMutation except that moveForwardIndex is
forced to be near the end of the permutation and moveBackIndex is forced to be
closer to the front of the permutation.
implements a version of the Hierarchical Fair Competition Model (HFC, see http://www.egr.msu.edu/~hujianju/HFC.htm)
with steady state breeding in discrete sub-popuations.
removes existing vertices
removes "this" from edge list of existing vertices
sets the vertices
forces itself to be compatible (subclass responsibility)
if a period of 'duration' length starting at startTime became UnAvailable, would the timeline
be consistant with the dutycycle constraint?
Algorithm:
- subtract duration to maxOnTime to get the maximum ontime acceptable
- check from the beginning of the duration forward
- check from the end of the duration backward
- for UnAvailable nodes before the duration, check from it's beginning forward
- for UnAvailable nodes after the duration, check from it's end backward
min = f({-5.12,-5],...,[-5.12,-5]) == 0
originally for list.getSize() = 5
Again the references disagree, but this time I use the second one since the min is always 0 regarless of dimensionality
implements the crossover operator described in "JavaGenes: Evolving Graphs with Crossover,"
Al Globus, Sean Atsatt, John Lawton, and Todd Wipke and found at
http://www.nas.nasa.gov/~globus/papers/JavaGenes/paper.html