Package org.encog.ml.prg

Examples of org.encog.ml.prg.ProgramNode


   * @return The rewritten node, if it was rewritten.
   */
  private ProgramNode tryOnePower(final ProgramNode parent) {
    if (parent.getTemplate() == StandardExtensions.EXTENSION_POWER
        || parent.getTemplate() == StandardExtensions.EXTENSION_POWFN) {
      final ProgramNode child = parent.getChildNode(0);
      if (child.getTemplate() == StandardExtensions.EXTENSION_CONST_SUPPORT) {
        if (Math.abs(child.getData()[0].toFloatValue() - 1) < Encog.DEFAULT_DOUBLE_EQUAL) {
          this.rewritten = true;
          return createNumericConst(parent.getOwner(), 1);
        }
      }
    }
View Full Code Here


   * @param parent The parent node to attempt to rewrite.
   * @return The rewritten node, if it was rewritten.
   */
  private ProgramNode tryPlusNeg(ProgramNode parent) {
    if (parent.getName().equals("+") && parent.getChildNodes().size() == 2) {
      final ProgramNode child1 = parent.getChildNode(0);
      final ProgramNode child2 = parent.getChildNode(1);

      if (child2.getName().equals("-")
          && child2.getChildNodes().size() == 1) {
        parent = parent
            .getOwner()
            .getContext()
            .getFunctions()
            .factorProgramNode(
                "-",
                parent.getOwner(),
                new ProgramNode[] { child1,
                    child2.getChildNode(0) });
      } else if (child2.getName().equals("#const")) {
        final ExpressionValue v = child2.getData()[0];
        if (v.isFloat()) {
          final double v2 = v.toFloatValue();
          if (v2 < 0) {
            child2.getData()[0] = new ExpressionValue(-v2);
            parent = parent
                .getOwner()
                .getContext()
                .getFunctions()
                .factorProgramNode("-", parent.getOwner(),
                    new ProgramNode[] { child1, child2 });
          }
        } else if (v.isInt()) {
          final long v2 = v.toIntValue();
          if (v2 < 0) {
            child2.getData()[0] = new ExpressionValue(-v2);
            parent = parent
                .getOwner()
                .getContext()
                .getFunctions()
                .factorProgramNode("-", parent.getOwner(),
View Full Code Here

   * @return The rewritten node, if it was rewritten.
   */
  private ProgramNode tryPowerZero(final ProgramNode parent) {
    if (parent.getTemplate() == StandardExtensions.EXTENSION_POWER
        || parent.getTemplate() == StandardExtensions.EXTENSION_POWFN) {
      final ProgramNode child0 = parent.getChildNode(0);
      final ProgramNode child1 = parent.getChildNode(1);
      if (isConstValue(child1, 0)) {
        return createNumericConst(parent.getOwner(), 1);
      }
      if (isConstValue(child0, 0)) {
        return createNumericConst(parent.getOwner(), 0);
View Full Code Here

   */
  private ProgramNode tryVarOpVar(ProgramNode parent) {
    if (parent.getChildNodes().size() == 2
        && parent.getName().length() == 1
        && "+-*/".indexOf(parent.getName().charAt(0)) != -1) {
      final ProgramNode child1 = parent.getChildNode(0);
      final ProgramNode child2 = parent.getChildNode(1);

      if (child1.getName().equals("#var")
          && child2.getName().equals("#var")) {
        if (child1.getData()[0].toIntValue() == child2.getData()[0]
            .toIntValue()) {
          switch (parent.getName().charAt(0)) {
          case '-':
            parent = createNumericConst(parent.getOwner(), 0);
            break;
View Full Code Here

            childTypes);
      }
    }

    // now actually create the node
    final ProgramNode result = new ProgramNode(program, temp, children);
    temp.randomize(rnd, types, result, getMinConst(), getMaxConst());
    return result;
  }
View Full Code Here

            true, false));
    if (temp == null) {
      throw new EACompileError("No opcodes exist for the type: "
          + types.toString());
    }
    final ProgramNode result = new ProgramNode(program, temp,
        new ProgramNode[] {});

    temp.randomize(rnd, types, result, this.minConst, this.maxConst);
    return result;
  }
View Full Code Here

        }
      }
    }

    for (final TreeNode n : node.getChildNodes()) {
      final ProgramNode childNode = (ProgramNode) n;
      mutateNode(rnd, childNode);
    }
  }
View Full Code Here

   * @param parent The parent node to attempt to rewrite.
   * @return The rewritten node, if it was rewritten.
   */
  private ProgramNode tryZeroDiv(final ProgramNode parent) {
    if (parent.getTemplate() == StandardExtensions.EXTENSION_DIV) {
      final ProgramNode child1 = parent.getChildNode(0);
      final ProgramNode child2 = parent.getChildNode(1);

      if (!isConstValue(child2, 0)) {
        if (isConstValue(child1, 0)) {
          this.rewritten = true;
          return this.createNumericConst(parent.getOwner(), 0);
View Full Code Here

   * @param parent The parent node to attempt to rewrite.
   * @return The rewritten node, if it was rewritten.
   */
  private ProgramNode tryZeroMul(final ProgramNode parent) {
    if (parent.getTemplate() == StandardExtensions.EXTENSION_MUL) {
      final ProgramNode child1 = parent.getChildNode(0);
      final ProgramNode child2 = parent.getChildNode(1);

      if (isConstValue(child1, 0) || isConstValue(child2, 0)) {
        this.rewritten = true;
        return this.createNumericConst(parent.getOwner(), 0);
      }
View Full Code Here

   * @param parent The parent node to attempt to rewrite.
   * @return The rewritten node, if it was rewritten.
   */
  private ProgramNode tryZeroPlus(final ProgramNode parent) {
    if (parent.getTemplate() == StandardExtensions.EXTENSION_ADD) {
      final ProgramNode child1 = parent.getChildNode(0);
      final ProgramNode child2 = parent.getChildNode(1);

      if (isConstValue(child1, 0)) {
        this.rewritten = true;
        return child2;
      }
View Full Code Here

TOP

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

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.