/** *
* IInitializer is the interface for routines to create * initial configurations of robotic networks. *
* @author Michael Schuresko * @version %I%, %G% * @since 1.0 */ public interface IInitializer { /** * Default initial logic var state (implementation may ignore) */ public void setDefaultIniVars(ILogicVarBundle copyMe); /** * Default initial control func (implementation may ignore) */ public void setDefaultIniControlFunc(IControlFunc copyMe); /* * Some initializers may return variable numbers of itmes. * This function helps wrapper code handle these initializers. * @since 1.1 */ public int getNumAgents(); /* * In case initializer needs a signal to rerandomize -- for instance * if the number of agents changes from one initialization to the next */ public void resetState(); /** * Initial continuous state vector */ public double [] getInitContState(); public IEnvironment getEnv(); public boolean isAgentCompatible(IAgent agent); /** * convenient to have this... */ public StateBundle [] getInitDiscreteState(); }