Class AlgorithmPredictor

java.lang.Object
eu.qualimaster.easy.extension.internal.AlgorithmPredictor
Direct Known Subclasses:
AlgorithmPredictorImpl

public class AlgorithmPredictor extends Object
Encapsulates the algorithm (profile) predictor. This indirection is necessary, because when testing / running layers independently of each other, the Monitoring Layer may not be available. However, the VIL interface shall still be available.
Author:
Holger Eichelberger
  • Constructor Details

    • AlgorithmPredictor

      public AlgorithmPredictor()
  • Method Details

    • algorithmPrediction

      public Double algorithmPrediction(String pipeline, String pipelineElement, String algorithm, eu.qualimaster.observables.IObservable observable)
      Creates a request for predicting the characteristics for a given algorithm in the current target setting.
      Parameters:
      pipeline - the pipeline to predict for
      pipelineElement - the pipeline element
      algorithm - the algorithm (may be null for the actual one)
      observable - the observable to predict for
      Returns:
      the predicted value or null if there is no prediction
    • algorithmPrediction

      public Double algorithmPrediction(String pipeline, String pipelineElement, String algorithm, eu.qualimaster.observables.IObservable observable, Map<Object,Serializable> targetValues)
      Creates a request for predicting the characteristics for a given algorithm in a target setting.
      Parameters:
      pipeline - the pipeline to predict for
      pipelineElement - the pipeline element
      algorithm - the algorithm (may be null for the actual one)
      observable - the observable to predict for
      targetValues - the target values for a modified situation (may be null if just the algorithm may change based on the current situation)
      Returns:
      the predicted value or null if there is no prediction
    • algorithmPrediction

      public Map<String,Map<eu.qualimaster.observables.IObservable,Double>> algorithmPrediction(String pipeline, String pipelineElement, Set<String> algorithms, Set<eu.qualimaster.observables.IObservable> observables, Map<Object,Serializable> targetValues)
      Creates a mass-request to obtain the predictions for multiple algorithms/observables.
      Parameters:
      pipeline - the pipeline to predict for
      pipelineElement - the pipeline element
      algorithms - the algorithms to take into account
      observables - weighting the weighting
      targetValues - the target values for a modified situation (may be null if just the algorithm may change based on the current situation)
      Returns:
      the best algorithm or null if there is no prediction
    • parameterPrediction

      public Map<String,Map<eu.qualimaster.observables.IObservable,Double>> parameterPrediction(String pipeline, String pipelineElement, String parameter, Set<eu.qualimaster.observables.IObservable> observables, Map<Object,Serializable> targetValues)
      Creates a request to obtain the best algorithm in this situation.
      Parameters:
      pipeline - the pipeline to predict for
      pipelineElement - the pipeline element
      parameter - the parameter to predict for
      observables - the observables
      targetValues - the target values for a modified situation (may be null if just the algorithm may change based on the current situation)
      Returns:
      the predictions per algorithm/observables, if not possible individual predictions may be null or the entire result may be null if there is no prediction at all
    • algorithmPredictionEx

      public AlgorithmPredictionResult algorithmPredictionEx(String pipeline, String pipelineElement, Set<String> algorithms, Set<eu.qualimaster.observables.IObservable> observables)
      Creates a request to obtain the prediction for multiple algorithms applicable in this in this situation (including varying parameters).
      Parameters:
      pipeline - the pipeline to predict for
      pipelineElement - the pipeline element
      algorithms - the algorithms to take into account
      observables - the observables
      Returns:
      the predictions per algorithm/observables, if not possible individual predictions may be null or the entire result may be null if there is no prediction at all