/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package hh.hyperheuristics;
import hh.history.CreditHistory;
import hh.history.OperatorQualityHistory;
import hh.history.OperatorSelectionHistory;
import hh.nextheuristic.INextHeuristic;
import hh.creditassigment.ICreditAssignment;
import org.moeaframework.core.Algorithm;
/**
* Hyperheuristic is the framework using a credit assignment and heuristic selection strategy
* @author nozomihitomi
*/
public interface IHyperHeuristic extends Algorithm{
/**
* Returns the selection history stored in the hyper-heuristic
* @return
*/
public OperatorSelectionHistory getSelectionHistory();
/**
* Resets the hyperheuristic so that it can run again for another seed.
*/
public void reset();
/**
* gets the quality history stored for each heuristic in the hyper-heuristic
* @return
*/
public OperatorQualityHistory getQualityHistory();
/**
* gets the credit history stored for each operator in the hyper-heuristic
*
* @return
*/
public CreditHistory getCreditHistory();
/**
* Gets the credit definition being used.
* @return
*/
public ICreditAssignment getCreditDefinition();
/**
* Gets the strategy that is used to generate or select the next heuristic
* @return
*/
public INextHeuristic getNextHeuristicSupplier();
/**
* Sets the hyper-heuristic's name
* @param name
*/
public void setName(String name);
/**
* Gets the hyper-heuristic's name
* @return
*/
public String getName();
}