1 10 package examples.grid.evolutionDistributed; 11 12 import org.jgap.distr.grid.*; 13 import org.jgap.*; 14 import examples.grid.fitnessDistributed.*; 15 16 27 public class LocalEvolutionDemo { 28 29 private final static String CVS_REVISION = "$Revision: 1.1 $"; 30 31 private GridConfiguration m_localconfig; 32 33 private IClientEvolveStrategy m_clientEvolver; 34 35 private MyRequest m_req; 36 37 public LocalEvolutionDemo() 38 throws Exception { 39 m_localconfig = new GridConfiguration(); 40 m_localconfig.initialize(null); 41 m_clientEvolver = m_localconfig.getClientEvolveStrategy(); 42 if (m_clientEvolver != null) { 43 m_clientEvolver.initialize(null, m_localconfig.getConfiguration(), 44 m_localconfig.getClientFeedback()); 45 } 46 m_req = assembleWorkRequest(); 47 evolve(); 48 } 49 50 protected MyRequest assembleWorkRequest() { 51 MyRequest req = new MyRequest("Local session", 0, 52 m_localconfig.getConfiguration()); 53 req.setWorkerReturnStrategy(m_localconfig.getWorkerReturnStrategy()); 54 req.setGenotypeInitializer(m_localconfig.getGenotypeInitializer()); 55 req.setEvolveStrategy(m_localconfig.getWorkerEvolveStrategy()); 56 req.setConfiguration(m_localconfig.getConfiguration()); 57 req.setEvolveStrategy(null); 60 return req; 61 } 62 63 protected void evolve() 64 throws Exception { 65 m_clientEvolver.generateWorkRequests(m_req, 69 m_localconfig.getRequestSplitStrategy(), null); 70 m_clientEvolver.evolve(); 71 Genotype genotype = m_localconfig.getGenotypeInitializer(). 73 setupGenotype(m_req, null); 74 if (m_localconfig.getWorkerEvolveStrategy() != null) { 75 m_localconfig.getWorkerEvolveStrategy().evolve(genotype); 76 } 77 if (m_localconfig.getWorkerReturnStrategy() == null) { 78 throw new IllegalStateException ( 79 "Worker return strategy expected, but was null!"); 80 } 81 JGAPResult res = m_localconfig.getWorkerReturnStrategy().assembleResult( 82 m_req, genotype); 83 System.out.println(res.getPopulation().determineFittestChromosome()); 84 } 85 86 public static void main(String [] args) { 87 try { 88 new LocalEvolutionDemo(); 89 } catch (Throwable t) { 90 t.printStackTrace(); 91 System.exit(1); 92 } 93 } 94 } 95 | Popular Tags |