/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package edu.hawaii.jmotif.sampler;
/**
* A method for finding a function optimum based on certain stop conditions.
*
* @author ytoh
*/
public interface OptimizationMethod<T extends Telemetry> extends Producer<T> {
/**
* Initialization of the optimization method. Called before the main
* optimization method.
*
* @param function
*/
void init(ObjectiveFunction function);
/**
* Return stop conditions used by the solver.
*
* @return an array of preconfigured stop conditions
*/
StopCondition[] getStopConditions();
/**
* Main cycle of the optimization method. This method is called repeatedly
* by the solver until atleast one of the specified stop conditions is met.
* There fore this method should contain an optimization step.
*
* @throws OptimizationException if the optimization process encountered
* a problem
*/
void optimize();
}