JavaGenes, NASA Ames. Written largely by Al Globus

gov.nasa.javaGenes.EOSscheduling
Class EOSschedulingEvolvable

java.lang.Object
  extended bygov.nasa.javaGenes.core.Evolvable
      extended bygov.nasa.javaGenes.permutation.PermutationEvolvable
          extended bygov.nasa.javaGenes.EOSscheduling.EOSschedulingEvolvable
All Implemented Interfaces:
java.lang.Cloneable, java.io.Serializable

public class EOSschedulingEvolvable
extends PermutationEvolvable

See Also:
Serialized Form

Field Summary
protected  boolean hasBeenScheduledAlready
           
static int NO_SENSOR
           
static int NOT_SCHEDULED
           
protected  TaskPlacementData[] taskPlacements
           
 
Fields inherited from class gov.nasa.javaGenes.permutation.PermutationEvolvable
permutation
 
Fields inherited from class gov.nasa.javaGenes.core.Evolvable
childMakersUsed
 
Constructor Summary
EOSschedulingEvolvable(int size)
           
EOSschedulingEvolvable(int size, java.lang.String order)
           
 
Method Summary
 java.lang.Object clone()
          deep copy the permutation, but set up as if never scheduled
 PermutationEvolvable deepCopyPermutationEvolvable()
           
 double getScheduledPrioritySum(EOSModel model)
           
 int getScheduledTaskCount()
           
 int getSensorNumber(int index)
           
 SlewRequirement getSlewRequirement(int index)
           
 int getStartTime(int index)
           
 TaskPlacementData getTaskPlacement(int index)
           
 boolean hasBeenScheduled()
           
 void indexOnUnschedulable(int index)
          used by HBSS.Scheduler to fill in tasks that contention found to be unschedulable
 boolean isSame(PermutationEvolvable other)
           
 boolean isTaskScheduled(int index)
           
 void prepareForEvaluator(Parameters parameters)
          Used when special setup is needed to calculate the evaluation fitness Reporter.java does when each generation is complete.
 void setHasBeenScheduled(boolean value)
           
 void setSensorNumber(int index, int sensor)
           
 void setSlewRequirement(int index, SlewRequirement inSlewRequirement)
           
 void setStartTime(int index, int time)
           
 void setTaskPlacement(int myIndex, EOSschedulingEvolvable from, int fromIndex)
           
 void setTaskPlacement(int index, TaskPlacementData data)
           
 java.lang.String toString()
           
 
Methods inherited from class gov.nasa.javaGenes.permutation.PermutationEvolvable
distanceFrom, equals, getIndexAt, getSize, isInAscendingOrder, isPermutation, setIndexAt, setToAscending
 
Methods inherited from class gov.nasa.javaGenes.core.Evolvable
addChildMakers, copyForEvolution, getChildMakersUsed, getSmallest, stateSave
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

hasBeenScheduledAlready

protected boolean hasBeenScheduledAlready

NOT_SCHEDULED

public static final int NOT_SCHEDULED
See Also:
Constant Field Values

NO_SENSOR

public static final int NO_SENSOR
See Also:
Constant Field Values

taskPlacements

protected TaskPlacementData[] taskPlacements
Constructor Detail

EOSschedulingEvolvable

public EOSschedulingEvolvable(int size)

EOSschedulingEvolvable

public EOSschedulingEvolvable(int size,
                              java.lang.String order)
Method Detail

prepareForEvaluator

public void prepareForEvaluator(Parameters parameters)
Description copied from class: Evolvable
Used when special setup is needed to calculate the evaluation fitness Reporter.java does when each generation is complete. Originally implemented for EOSscheduling.HBSS since any rescheduling will generate a new permutation.

Overrides:
prepareForEvaluator in class Evolvable

indexOnUnschedulable

public void indexOnUnschedulable(int index)
used by HBSS.Scheduler to fill in tasks that contention found to be unschedulable


getScheduledTaskCount

public int getScheduledTaskCount()

getScheduledPrioritySum

public double getScheduledPrioritySum(EOSModel model)

setTaskPlacement

public void setTaskPlacement(int index,
                             TaskPlacementData data)

getTaskPlacement

public TaskPlacementData getTaskPlacement(int index)

getStartTime

public int getStartTime(int index)

setStartTime

public void setStartTime(int index,
                         int time)

getSensorNumber

public int getSensorNumber(int index)

setSensorNumber

public void setSensorNumber(int index,
                            int sensor)

getSlewRequirement

public SlewRequirement getSlewRequirement(int index)

setSlewRequirement

public void setSlewRequirement(int index,
                               SlewRequirement inSlewRequirement)

hasBeenScheduled

public boolean hasBeenScheduled()

setHasBeenScheduled

public void setHasBeenScheduled(boolean value)

isTaskScheduled

public boolean isTaskScheduled(int index)

setTaskPlacement

public void setTaskPlacement(int myIndex,
                             EOSschedulingEvolvable from,
                             int fromIndex)

deepCopyPermutationEvolvable

public PermutationEvolvable deepCopyPermutationEvolvable()
Overrides:
deepCopyPermutationEvolvable in class PermutationEvolvable

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
deep copy the permutation, but set up as if never scheduled

Overrides:
clone in class PermutationEvolvable
Throws:
java.lang.CloneNotSupportedException

isSame

public boolean isSame(PermutationEvolvable other)
Overrides:
isSame in class PermutationEvolvable

toString

public java.lang.String toString()
Overrides:
toString in class PermutationEvolvable

JavaGenes, NASA Ames. Written largely by Al Globus