diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedDoubleChromosome.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedDoubleChromosome.java index 57ec17d31e6e86b3a9b340251550736bfa90c2e1..2b85fc688b952118d4a63e333924c2b64b1b6e95 100644 --- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedDoubleChromosome.java +++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedDoubleChromosome.java @@ -1,13 +1,19 @@ package de.evoal.core.main.ea.codec.chromosome; +import de.evoal.core.api.properties.PropertySpecification; +import de.evoal.core.api.properties.info.PropertiesBoundaries; import de.evoal.languages.model.ddl.DataDescription; import de.evoal.languages.model.instance.Instance; import io.jenetics.util.DoubleRange; +import javax.inject.Inject; import java.util.List; import java.util.stream.Collectors; public abstract class DynamicBoundedDoubleChromosome extends DynamicChromosome { + @Inject + private PropertiesBoundaries boundaries; + protected List<DoubleRange> ranges; @Override @@ -20,7 +26,8 @@ public abstract class DynamicBoundedDoubleChromosome extends DynamicChromosome { } protected DoubleRange toRange(final DataDescription dataDescription) { - // TODO Find actual ranges from DDL - return DoubleRange.of(-(Double.MAX_VALUE/2), (Double.MAX_VALUE/2)); + PropertiesBoundaries.Boundaries bounds = boundaries.get(new PropertySpecification(dataDescription.getName(), dataDescription)); + + return DoubleRange.of(bounds.lower().doubleValue(), bounds.upper().doubleValue()); } } diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedIntegerChromosome.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedIntegerChromosome.java index 998a885c7dbf09e53c67b64b972c54d930e2288a..70d8330cc5a798453e69031e55f6f1e258c1c42d 100644 --- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedIntegerChromosome.java +++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedIntegerChromosome.java @@ -1,13 +1,20 @@ package de.evoal.core.main.ea.codec.chromosome; +import de.evoal.core.api.properties.PropertySpecification; +import de.evoal.core.api.properties.info.PropertiesBoundaries; import de.evoal.languages.model.ddl.DataDescription; import de.evoal.languages.model.instance.Instance; +import io.jenetics.util.DoubleRange; import io.jenetics.util.IntRange; +import javax.inject.Inject; import java.util.List; import java.util.stream.Collectors; public abstract class DynamicBoundedIntegerChromosome extends DynamicChromosome { + @Inject + private PropertiesBoundaries boundaries; + protected List<IntRange> ranges; @Override @@ -20,7 +27,8 @@ public abstract class DynamicBoundedIntegerChromosome extends DynamicChromosome } protected IntRange toRange(final DataDescription dataDescription) { - // TODO Find actual ranges from DDL - return IntRange.of(-(Integer.MAX_VALUE/2), (Integer.MAX_VALUE/2)); + PropertiesBoundaries.Boundaries bounds = boundaries.get(new PropertySpecification(dataDescription.getName(), dataDescription)); + + return IntRange.of(bounds.lower().intValue(), bounds.upper().intValue()); } } diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicIntegerChromosome.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicIntegerChromosome.java index 83433be67806731e9dad09edcf10ccacda28e025..44481abd0aa38d7577ea04334e4cce4a1e56d071 100644 --- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicIntegerChromosome.java +++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicIntegerChromosome.java @@ -2,6 +2,7 @@ package de.evoal.core.main.ea.codec.chromosome; import de.evoal.core.api.properties.Properties; import de.evoal.core.api.properties.PropertySpecification; +import de.evoal.core.api.properties.info.PropertiesBoundaries; import de.evoal.core.main.jenetics.BoundedDoubleChromosome; import de.evoal.core.main.jenetics.BoundedDoubleGene; import de.evoal.core.main.jenetics.BoundedIntegerChromosome; @@ -10,6 +11,7 @@ import io.jenetics.Chromosome; import io.jenetics.util.IntRange; import javax.enterprise.context.Dependent; +import javax.inject.Inject; import javax.inject.Named; import java.util.ArrayList; import java.util.List;