package vroom.optimization.online.jmsa.components;
import vroom.optimization.online.jmsa.IScenario;
/**
* <code>ScenarioOptimizerBase</code> is the base type for classes that will provide optimization procedures for scenarios<br/>
* The implementation of this method should consider the possible paralelization of scenario optimization
*
* @param S
* the type of scenario that will be optimized by instances of this class
* @param I
* the type of instance that will be used by instances of this class.
* @author Victor Pillac, <a href="http://uniandes.edu.co">Universidad de Los Andes</a> - <a href="http://copa.uniandes.edu.co">Copa</a>, <a
* href="http://www.emn.fr">Ecole des Mines de Nantes</a>-<a href="http://www.irccyn.ec-nantes.fr/irccyn/d/en/equipes/Slp">SLP</a>
* @version 1.0 #updated 16-Feb-2010 10:06:53 a.m.
*/
public abstract class ScenarioOptimizerBase<S extends IScenario> extends MSAComponentBase {
public ScenarioOptimizerBase(ComponentManager<S, ?> componentManager) {
super(componentManager);
}
/**
* Initialize a single scenario.
*
* @param scenario
* the scenario to be initialized
* @param params
* parameters for the scenario optimization
* @return <code>true</code> if the optimization procedure finished correctly, <code>false</code> otherwise
*/
public abstract boolean initialize(S scenario, ScenarioOptimizerParam params);
/**
* Optimize a single scenario.
*
* @param params
* an optional parameter for the optimization of scenarios
* @param scenario
* the scenario to be optimized
* @return <code>true</code> if the optimization procedure finished correctly, <code>false</code> otherwise
*/
public abstract boolean optimize(S scenario, ScenarioOptimizerParam params);
}