package Controller;
import Model.Situation;



public interface Algorithm {
	
	
	/**
	 * This method is called by the processor, after it has instantiated an algorithm.
	 * This method performs the logic of the learning process.
	 */
	public void run();
	
	
	/**
	 * This method performs one iteration of the algorithm.
	 * Thus, it processes one situation which consists of an utterance and a scene.
	 * @param situation The situation to be processed.
	 * @param iteration The iteration number of the situation. Note that the first iteration has number 1.
	 */
	abstract void step(Situation situation, int iteration);

}
