/*
* 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;
import org.jgap.*;
/**
* Sample implementation of IRequestSplitStrategy. Here, a request is
* transformed into 20 single requests, each to be computed by a worker.
*
* @author Klaus Meffert
* @since 3.2
*/
public class SampleSplitStrategy
implements IRequestSplitStrategy {
/** String containing the CVS revision. Read out via reflection!*/
private final static String CVS_REVISION = "$Revision: 1.2 $";
private Configuration m_config;
public SampleSplitStrategy(Configuration a_config) {
m_config = a_config;
}
public Configuration getConfiguration() {
return m_config;
}
/**
* Creates 20 single requests out of one. The single requests are each
* processed by one worker at a time.
*
* @param a_request the request to split
* @return single requests to be computed by workers
* @throws Exception
*
* @author Klaus Meffert
* @since 3.2
*/
public JGAPRequest[] split(JGAPRequest a_request)
throws Exception {
final int runs = 20;
JGAPRequest[] result = new JGAPRequest[runs];
for (int i = 0; i < runs; i++) {
// Setup JGAP configuration for worker.
// ------------------------------------
Configuration config = getConfiguration().newInstance(i + "",
"config " + i);
// Configuration config = new DefaultConfiguration(i+"","chromosome " + i);
// config.setEventManager(new EventManager());
// config.setPopulationSize(1);
// config.setFitnessFunction(getConfiguration().getFitnessFunction());
// IChromosome sample = (IChromosome) getConfiguration().getSampleChromosome().
// clone();
// config.setSampleChromosome(sample);
result[i] = (JGAPRequest) a_request.newInstance("JGAP-Grid Request " + i,
i);
}
return result;
}
}