/*
* 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.event.*;
import org.jgap.*;
import org.jgap.impl.*;
/**
* Implementation of IRequestSplitStrategy to split a single request
* into multiple requests for workers.
*
* @author Klaus Meffert
* @since 3.2
*/
public class RequestSplitStrategy {
/** String containing the CVS revision. Read out via reflection!*/
private final static String CVS_REVISION = "$Revision: 1.4 $";
private Configuration m_config;
public RequestSplitStrategy(Configuration a_config) {
m_config = a_config;
}
public Configuration getConfiguration() {
return m_config;
}
/**
* Creates single requests to be sent to workers.
*
* @return single requests to be computed by workers
* @throws Exception
*
* @author Klaus Meffert
* @since 3.01
*/
public JGAPRequest[] split(JGAPRequest a_request)
throws Exception {
final int runs = 20;
JGAPRequest[] result = new JGAPRequest[runs];
for (int i = 0; i < runs; i++) {
/**@todo support cloning of m_config*/
Configuration config = new DefaultConfiguration("config " + i, i + "");
config.setEventManager(new EventManager());
config.setPopulationSize(getConfiguration().getPopulationSize());
config.setFitnessFunction(getConfiguration().getFitnessFunction());
IChromosome sample = (IChromosome)getConfiguration().getSampleChromosome().clone();
config.setSampleChromosome(sample);
result[i] = (JGAPRequest)a_request.newInstance("JGAP-Grid Request " + i,i);
// new MyRequest("JGAP-Grid Request " + i, i, config);
}
return result;
}
}