S
- the problem solution classpublic final class EmasStep<S extends Solution<?>> extends java.lang.Object implements Step<EmasAgent>
The class EmasStep implementing a default step for EMAS Agents based problems. The following operators are required:
The following operators are optional:
Modifier and Type | Field and Description |
---|---|
private AsexualReproduction |
asexualReproduction |
private AsexualEnergyTransfer |
asexualReproductionTransfer |
private java.util.function.Predicate<EmasAgent> |
deathPredicate |
private Fight |
fight |
private java.util.Comparator<EmasAgent> |
fightAgentComparator |
private FightEnergyTransfer |
fightEnergyTransfer |
private MigrationParameters |
migrationParameters |
private @Nullable Mutation<S> |
mutation |
private PopulationEvaluator<EmasAgent> |
populationEvaluator |
private Recombination<S> |
recombination |
private java.util.function.Predicate<EmasAgent> |
reproductionPredicate |
private SexualReproduction |
sexualReproduction |
private EnergyTransfer |
sexualReproductionTransfer |
Constructor and Description |
---|
EmasStep(java.util.Comparator<EmasAgent> fightAgentComparator,
FightEnergyTransfer fightEnergyTransfer,
Recombination<S> recombination,
@Nullable Mutation<S> mutation,
PopulationEvaluator<EmasAgent> populationEvaluator,
java.util.function.Predicate<EmasAgent> deathPredicate,
java.util.function.Predicate<EmasAgent> reproductionPredicate,
EnergyTransfer sexualReproductionTransfer,
AsexualEnergyTransfer asexualReproductionTransfer,
MigrationParameters migrationParameters) |
Modifier and Type | Method and Description |
---|---|
private Pipeline |
migrateIfNecessary(Pipeline population,
long stepNumber,
Environment environment) |
private AsexualReproduction |
resolveAsexualReproduction() |
private Fight |
resolveFight() |
private java.util.function.Predicate<EmasAgent> |
resolveMigrationPredicate(Pipeline population) |
private SexualReproduction |
resolveSexualReproduction() |
private boolean |
shouldMigrate(long currentStepNumber) |
io.vavr.collection.List<EmasAgent> |
stepOn(long stepNumber,
io.vavr.collection.List<EmasAgent> population,
Environment environment)
Method invoked during each iteration.
|
private final java.util.Comparator<EmasAgent> fightAgentComparator
private final FightEnergyTransfer fightEnergyTransfer
private final Fight fight
private final Recombination<S extends Solution<?>> recombination
private final PopulationEvaluator<EmasAgent> populationEvaluator
private final java.util.function.Predicate<EmasAgent> deathPredicate
private final java.util.function.Predicate<EmasAgent> reproductionPredicate
private final EnergyTransfer sexualReproductionTransfer
private final SexualReproduction sexualReproduction
private final AsexualEnergyTransfer asexualReproductionTransfer
private final AsexualReproduction asexualReproduction
private final MigrationParameters migrationParameters
public EmasStep(java.util.Comparator<EmasAgent> fightAgentComparator, FightEnergyTransfer fightEnergyTransfer, Recombination<S> recombination, @Nullable Mutation<S> mutation, PopulationEvaluator<EmasAgent> populationEvaluator, java.util.function.Predicate<EmasAgent> deathPredicate, java.util.function.Predicate<EmasAgent> reproductionPredicate, EnergyTransfer sexualReproductionTransfer, AsexualEnergyTransfer asexualReproductionTransfer, MigrationParameters migrationParameters)
public io.vavr.collection.List<EmasAgent> stepOn(long stepNumber, io.vavr.collection.List<EmasAgent> population, Environment environment)
Step
Method invoked during each iteration. Make sure that a minimum number of operations is executed here.
private Fight resolveFight()
private SexualReproduction resolveSexualReproduction()
private AsexualReproduction resolveAsexualReproduction()
private Pipeline migrateIfNecessary(Pipeline population, long stepNumber, Environment environment)
private boolean shouldMigrate(long currentStepNumber)