Package org.encog.ml.prg

Examples of org.encog.ml.prg.EncogProgram


   * {@inheritDoc}
   */
  @Override
  public boolean rewrite(final Genome g) {
    this.rewritten = false;
    final EncogProgram program = (EncogProgram) g;
    final ProgramNode node = program.getRootNode();
    final ProgramNode rewrittenRoot = internalRewrite(node);
    if (rewrittenRoot != null) {
      program.setRootNode(rewrittenRoot);
    }
    return this.rewritten;
  }
View Full Code Here


   * {@inheritDoc}
   */
  @Override
  public boolean rewrite(final Genome g) {
    this.rewritten = false;
    final EncogProgram program = (EncogProgram) g;
    final ProgramNode node = program.getRootNode();
    final ProgramNode rewrittenRoot = internalRewrite(node);
    if (rewrittenRoot != null) {
      program.setRootNode(rewrittenRoot);
    }
    return this.rewritten;
  }
View Full Code Here

  /**
   * {@inheritDoc}
   */
  @Override
  public void run() {
    final EncogProgram prg = this.owner.attemptCreateGenome(this.rnd,
        this.population);
    this.owner.addPopulationMember(this.population, prg);
  }
View Full Code Here

   * @return The generated genome.
   */
  public EncogProgram attemptCreateGenome(final Random rnd,
      final Population pop) {
    boolean done = false;
    EncogProgram result = null;
    int tries = this.maxGenerationErrors;

    while (!done) {
      result = generate(rnd);
      result.setPopulation(pop);

      double s;
      try {
        tries--;
        s = this.score.calculateScore(result);
      } catch (final EARuntimeError e) {
        s = Double.NaN;
      }

      if (tries < 0) {
        throw new EncogError("Could not generate a valid genome after "
            + this.maxGenerationErrors + " tries.");
      } else if (!Double.isNaN(s) && !Double.isInfinite(s)
          && !this.contents.contains(result.dumpAsCommonExpression())) {
        done = true;
      }
    }

    return result;
View Full Code Here

  /**
   * {@inheritDoc}
   */
  @Override
  public EncogProgram generate(final Random rnd) {
    final EncogProgram program = new EncogProgram(this.context);
    final List<ValueType> types = new ArrayList<ValueType>();
    types.add(this.context.getResult().getVariableType());
    program.setRootNode(createNode(rnd, program, determineMaxDepth(rnd),
        types));
    return program;
  }
View Full Code Here

  /**
   * {@inheritDoc}
   */
  @Override
  public double calculateScore(final MLMethod genome) {
    final EncogProgram prg = (EncogProgram) genome;
    final PrgPopulation pop = (PrgPopulation) prg.getPopulation();
    final MLData inputData = new BasicMLData(pop.getContext()
        .getDefinedVariables().size());
    prg.compute(inputData);
    return 0;
  }
View Full Code Here

  /**
   * {@inheritDoc}
   */
  @Override
  public boolean rewrite(Genome g) {
    EncogProgram program = ((EncogProgram)g);
    this.rewritten = false;
    ProgramNode rootNode = program.getRootNode();
    ProgramNode rewrite = rewriteNode(rootNode);
    if (rewrite != null) {
      program.setRootNode(rewrite);
    }
    return this.rewritten;
  }
View Full Code Here

    this.expressionFields.clear();
    this.extension = new ProcessExtension(this.getFormat());
    this.extension.register(this.programContext.getFunctions());
   
    for(ProcessField field : this.analyst.getScript().getProcess().getFields() ) {
      EncogProgram prg = new EncogProgram(this.programContext,this.programVariables);
      prg.setExtraData(ProcessExtension.EXTENSION_DATA_NAME, this.extension);
      prg.compileExpression(field.getCommand());
      this.expressionFields.add(prg);
    }
  }
View Full Code Here

   */
  @Override
  public void performOperation(final Random rnd, final Genome[] parents,
      final int parentIndex, final Genome[] offspring,
      final int offspringIndex) {
    final EncogProgram parent1 = (EncogProgram) parents[0];
    final EncogProgram parent2 = (EncogProgram) parents[1];
    offspring[0] = null;

    final EncogProgramContext context = parent1.getContext();
    final int size1 = parent1.getRootNode().size();
    final int size2 = parent2.getRootNode().size();

    boolean done = false;
    int tries = 100;

    while (!done) {
      final int p1Index = rnd.nextInt(size1);
      final int p2Index = rnd.nextInt(size2);

      final LevelHolder holder1 = new LevelHolder(p1Index);
      final LevelHolder holder2 = new LevelHolder(p2Index);

      final List<ValueType> types = new ArrayList<ValueType>();
      types.add(context.getResult().getVariableType());

      findNode(rnd, parent1.getRootNode(), types, holder1);
      findNode(rnd, parent2.getRootNode(), types, holder2);

      if (LevelHolder.compatibleTypes(holder1.getTypes(),
          holder2.getTypes())) {
        final EncogProgram result = context.cloneProgram(parent1);
        final ProgramNode resultNode = parent1.findNode(p1Index);
        final ProgramNode p2Node = parent2.findNode(p2Index);
        final ProgramNode newInsert = context.cloneBranch(result,
            p2Node);
        result.replaceNode(resultNode, newInsert);
        offspring[0] = result;
        done = true;
      } else {
        tries--;
        if (tries < 0) {
View Full Code Here

   * @param input
   *            The input to the
   */
  @Override
  public MLData compute(final MLData input) {
    final EncogProgram best = (EncogProgram) getBestGenome();
    return best.compute(input);
  }
View Full Code Here

TOP

Related Classes of org.encog.ml.prg.EncogProgram

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.