/*
* This file is part of JGAP.
*
* JGAP offers a dual license model containing the LGPL as well as the MPL.
*
* For licensing information please see the file license.txt included with JGAP
* or have a look at the top of class org.jgap.Chromosome which representatively
* includes the JGAP license policy applicable for any file delivered with JGAP.
*/
package org.jgap.distr.grid.gp;
import java.io.*;
import org.homedns.dade.jcgrid.client.*;
import org.jgap.distr.grid.common.*;
import org.jgap.gp.*;
import org.jgap.gp.impl.*;
/**
* Interface for a GP-related grid configuration. It provides all information
* necessary to define a problem and a strategy to distributedly solve the problem.
*
* @author Klaus Meffert
* @since 3.2
*/
public interface IGridConfigurationGP
extends Serializable {
/** String containing the CVS revision. Read out via reflection!*/
final static String CVS_REVISION = "$Revision: 1.6 $";
IClientFeedbackGP getClientFeedback();
IClientEvolveStrategyGP getClientEvolveStrategy();
IRequestSplitStrategyGP getRequestSplitStrategy();
GPConfiguration getConfiguration();
void setConfiguration(GPConfiguration a_config);
IWorkerEvolveStrategyGP getWorkerEvolveStrategy();
void setWorkerEvolveStrategy(IWorkerEvolveStrategyGP a_strategy);
void setClientEvolveStrategy(IClientEvolveStrategyGP a_strategy);
void setClientFeedback(IClientFeedbackGP a_clientFeedback);
void setRequestSplitStrategy(IRequestSplitStrategyGP a_splitStrategy);
IWorkerReturnStrategyGP getWorkerReturnStrategy();
void setWorkerReturnStrategy(IWorkerReturnStrategyGP a_strategy);
IGenotypeInitializerGP getGenotypeInitializer();
void setGenotypeInitializer(IGenotypeInitializerGP a_initializer);
void initialize(GridNodeClientConfig gridconfig)
throws Exception;
void validate()
throws Exception;
void setContext(BasicContext a_context);
BasicContext getContext();
/**@todo move the following to GPConfiguration, elegantly*/
void setTypes(Class[] a_types);
void setArgTypes(Class[][] a_argTypes);
void setNodeSets(CommandGene[][] a_nodeSets);
void setMinDepths(int[] a_minDepths);
void setMaxDepths(int[] a_maxDepths);
void setMaxNodes(int a_maxNodes);
Class[] getTypes();
Class[][] getArgTypes();
CommandGene[][] getNodeSets();
int[] getMinDepths();
int[] getMaxDepths();
int getMaxNodes();
// End of todo
double getMinFitnessToStore();
void setMinFitnessToStore(double a_minFitnessToStore);
}