/* * 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 examples.grid.fitnessDistributed; import org.homedns.dade.jcgrid.*; import org.jgap.*; import org.jgap.distr.grid.*; /** * Receives work, computes a solution and returns the solution to the requester. * * @author Klaus Meffert * @since 3.01 */ public class MyGAWorker extends JGAPWorker { /** String containing the CVS revision. Read out via reflection!*/ private final static String CVS_REVISION = "$Revision: 1.5 $"; /** * Executes the evolution and returns the result. * * @param work WorkRequest * @param workDir String * @return WorkResult * @throws Exception * * @author Klaus Meffert * @since 3.01 */ public WorkResult doWork(WorkRequest work, String workDir) throws Exception { // Here we could use our own class descended from JGAPRequest // MyRequest req = ( (MyRequest) work); // For the result we could also use an individual class such as MyResult // It would be also possible to do different computations than in // super.doWork(...) // MyResult res = (MyResult)super.doWork(work, workDir); // Doing the evolution as always just means: // return super.doWork(work, workDir); // But we want to only calculate the fitness value of the chromosomes // passed. In our case this is only one chromosome. // ------------------------------------------------------------------ JGAPRequest req = ( (JGAPRequest) work); IChromosome chrom = req.getPopulation().getChromosome(0); // Do the actual fitness computation here. // --------------------------------------- chrom.getFitnessValue(); Population pop = new Population(req.getConfiguration(), chrom); MyResult result = new MyResult(req.getSessionName(), req.getRID(), pop, 1); return result; } }