org.qcri.rheem.profiler.log.GeneticOptimizer Maven / Gradle / Ivy
The newest version!
package org.qcri.rheem.profiler.log;
import gnu.trove.map.TObjectIntMap;
import gnu.trove.map.hash.TObjectIntHashMap;
import org.qcri.rheem.core.api.Configuration;
import org.qcri.rheem.core.optimizer.costs.LoadProfileEstimator;
import org.qcri.rheem.core.platform.AtomicExecution;
import org.qcri.rheem.core.platform.AtomicExecutionGroup;
import org.qcri.rheem.core.platform.PartialExecution;
import org.qcri.rheem.core.platform.Platform;
import org.qcri.rheem.core.util.Bitmask;
import org.qcri.rheem.profiler.log.sampling.Sampler;
import org.qcri.rheem.profiler.log.sampling.TournamentSampler;
import java.util.*;
import java.util.function.ToDoubleFunction;
/**
* Implementation of the genetic optimization technique for finding good {@link LoadProfileEstimator}s.
*/
public class GeneticOptimizer {
/**
* {@link Configuration} to be used in the estimation process.
*/
private final Configuration configuration;
/**
* Represents the {@link Variable}s to be optimized.
*/
private final OptimizationSpace optimizationSpace;
/**
* Observations to assess the fitness of the to-be-learnt function.
*/
private final Collection observations;
/**
* Counts observation instances, such as an operator or a platform initialization, in the training data.
*/
private final TObjectIntMap
© 2015 - 2025 Weber Informatics LLC | Privacy Policy