Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/21/10 15:21:34 (14 years ago)
Author:
gkronber
Message:

Refactored symbolic expression tree encoding and problem classes for symbolic regression. #937 , #938

Location:
trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3
Files:
1 added
35 edited
7 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureAlteringOperators/ArgumentCreater.cs

    r3376 r3462  
    2929using HeuristicLab.Parameters;
    3030using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    31 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3232using System.Collections.Generic;
    3333using System.Text;
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureAlteringOperators/ArgumentDeleter.cs

    r3376 r3462  
    2929using HeuristicLab.Parameters;
    3030using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    31 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3232using System.Collections.Generic;
    3333using System.Text;
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureAlteringOperators/ArgumentDuplicater.cs

    r3376 r3462  
    2929using HeuristicLab.Parameters;
    3030using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    31 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3232using System.Collections.Generic;
    3333using System.Text;
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureAlteringOperators/GrammarModifier.cs

    r3376 r3462  
    2929using HeuristicLab.Parameters;
    3030using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    31 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3232using System.Collections.Generic;
    3333using System.Text;
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureAlteringOperators/RandomArchitectureAlteringOperator.cs

    r3376 r3462  
    2929using HeuristicLab.Parameters;
    3030using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    31 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3232using System.Collections.Generic;
    3333using System.Text;
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureAlteringOperators/SubroutineCreater.cs

    r3376 r3462  
    2929using HeuristicLab.Parameters;
    3030using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    31 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3232using System.Collections.Generic;
    3333using System.Text;
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureAlteringOperators/SubroutineDeleter.cs

    r3376 r3462  
    2929using HeuristicLab.Parameters;
    3030using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    31 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3232using System.Collections.Generic;
    3333using System.Text;
    3434using System.Diagnostics;
     35using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
    3536
    3637namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureAlteringOperators {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureAlteringOperators/SubroutineDuplicater.cs

    r3376 r3462  
    2929using HeuristicLab.Parameters;
    3030using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    31 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3232using System.Collections.Generic;
    3333using System.Text;
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureAlteringOperators/SymbolicExpressionTreeArchitectureAlteringOperator.cs

    r3456 r3462  
    2929using HeuristicLab.Parameters;
    3030using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    31 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3232using System.Collections.Generic;
    3333using System.Text;
     34using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Manipulators;
    3435
    35 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
     36namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureAlteringOperators {
    3637  /// <summary>
    3738  /// Base class for architecture altering operators for symbolic expression trees.
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Compiler/Instruction.cs

    r3456 r3462  
    2626using System.Collections.Generic;
    2727using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    28 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     28using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    2929
    30 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
    31   public enum CodeSymbol : byte {
    32     Add,
    33     Sub,
    34     Mul,
    35     Div,
    36     Call,
    37     Arg,
    38     Values,
    39     Dynamic
    40   };
     30namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler {
     31  // total size of this struct should be small to improve cache access while executing the code
     32  // should be aligned to 8/16/32 byte
     33  // size = 4(8) + 1 + 1 + 2 = 8 (12)
    4134  public struct Instruction {
     35    // the tree node can hold additional data that is necessary for the execution of this instruction
     36    public SymbolicExpressionTreeNode dynamicNode;
     37    // op code of the function that determines what operation should be executed
     38    public byte opCode;
     39    // number of arguments of the current instruction
    4240    public byte nArguments;
    43     public CodeSymbol symbol;
    44     public short iArg0;
    45     public SymbolicExpressionTreeNode dynamicNode;
     41    // an optional short value (addresses for calls, argument index for arguments)
     42    public ushort iArg0;
    4643  }
    4744}
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Compiler/SymbolicExpressionTreeCompiler.cs

    r3456 r3462  
    2727using System.Collections.Generic;
    2828using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    29 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     29using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3030
    31 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
     31namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler {
    3232  public class SymbolicExpressionTreeCompiler {
    33     private Dictionary<Type, CodeSymbol> codeSymbol = new Dictionary<Type, CodeSymbol>() {
    34       {typeof(Addition), CodeSymbol.Add},
    35       {typeof(Subtraction), CodeSymbol.Sub},
    36       {typeof(Multiplication), CodeSymbol.Mul},
    37       {typeof(Division), CodeSymbol.Div},
    38       {typeof(InvokeFunction), CodeSymbol.Call},
    39       {typeof(Argument), CodeSymbol.Arg},
    40       //{typeof(Values), CodeSymbol.Values}
    41     };
    42     private Dictionary<string, short> entryPoint = new Dictionary<string, short>();
     33    private Dictionary<string, ushort> entryPoint = new Dictionary<string, ushort>();
     34    private List<Func<Instruction, Instruction>> postInstructionCompiledHooks = new List<Func<Instruction, Instruction>>();
    4335
    44     public Instruction[] Compile(SymbolicExpressionTree tree) {
     36    public Instruction[] Compile(SymbolicExpressionTree tree, Func<SymbolicExpressionTreeNode, byte> opCodeMapper) {
    4537      List<Instruction> code = new List<Instruction>();
    4638      entryPoint.Clear();
    4739      // compile main body
    48       code.AddRange(Compile(tree.Root.SubTrees[0].SubTrees[0]));
     40      code.AddRange(Compile(tree.Root.SubTrees[0].SubTrees[0], opCodeMapper));
    4941      // compile branches
    5042      var functionBranches = from node in tree.IterateNodesPrefix()
     
    5244                             select node;
    5345      foreach (DefunTreeNode branch in functionBranches) {
    54         entryPoint[branch.FunctionName] = (short)code.Count;
    55         code.AddRange(Compile(branch.SubTrees[0]));
     46        if (code.Count > ushort.MaxValue) throw new ArgumentException("Code for the tree is too long (> ushort.MaxValue).");
     47        entryPoint[branch.FunctionName] = (ushort)code.Count;
     48        code.AddRange(Compile(branch.SubTrees[0], opCodeMapper));
    5649      }
    5750      // address of all functions is fixed now
     
    5952      for (int i = 0; i < code.Count; i++) {
    6053        Instruction instr = code[i];
    61         if (instr.symbol == CodeSymbol.Call) {
     54        if (instr.dynamicNode.Symbol is InvokeFunction) {
    6255          var invokeNode = (InvokeFunctionTreeNode)instr.dynamicNode;
    6356          instr.iArg0 = entryPoint[invokeNode.Symbol.FunctionName];
    64           instr.dynamicNode = null;
    6557          code[i] = instr;
    6658        }
     
    7062    }
    7163
    72     private IEnumerable<Instruction> Compile(SymbolicExpressionTreeNode branch) {
    73       foreach (var node in IteratePrefix(branch)) {
     64    private IEnumerable<Instruction> Compile(SymbolicExpressionTreeNode branch, Func<SymbolicExpressionTreeNode, byte> opCodeMapper) {
     65      foreach (var node in branch.IterateNodesPrefix()) {
    7466        Instruction instr = new Instruction();
    75         if (node.SubTrees.Count > 255) throw new ArgumentException();
     67        if (node.SubTrees.Count > 255) throw new ArgumentException("Number of subtrees is too big (>255)");
    7668        instr.nArguments = (byte)node.SubTrees.Count;
    77         if (codeSymbol.ContainsKey(node.Symbol.GetType())) {
    78           instr.symbol = codeSymbol[node.Symbol.GetType()];
    79           if (instr.symbol == CodeSymbol.Arg) {
    80             var argNode = (ArgumentTreeNode)node;
    81             instr.iArg0 = (short)argNode.Symbol.ArgumentIndex;
    82           } else if (instr.symbol == CodeSymbol.Call) {
    83             instr.dynamicNode = node; // save node for fixup of jump addresses in second iteration
    84           }
    85         } else {
    86           instr.symbol = CodeSymbol.Dynamic;
    87           instr.dynamicNode = node;
     69        instr.opCode = opCodeMapper(node);
     70        if (branch.Symbol is Argument) {
     71          var argNode = (ArgumentTreeNode)node;
     72          instr.iArg0 = (ushort)argNode.Symbol.ArgumentIndex;
     73        }
     74        instr.dynamicNode = node;
     75        foreach (var hook in postInstructionCompiledHooks) {
     76          instr = hook(instr);
    8877        }
    8978        yield return instr;
     
    9180    }
    9281
    93     private IEnumerable<SymbolicExpressionTreeNode> IteratePrefix(SymbolicExpressionTreeNode branch) {
    94       yield return branch;
    95       foreach (var subtree in branch.SubTrees) {
    96         foreach (var node in IteratePrefix(subtree))
    97           yield return node;
    98       }
     82    /// <summary>
     83    /// Adds a function that will be called every time an instruction is compiled.
     84    /// The compiled will insert the instruction returned by the hook into the code.
     85    /// </summary>
     86    /// <param name="hook">The hook that should be called for each compiled instruction.</param>
     87    public void AddInstructionPostProcessingHook(Func<Instruction, Instruction> hook) {
     88      postInstructionCompiledHooks.Add(hook);
    9989    }
    10090  }
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Creators/ProbabilisticTreeCreator.cs

    r3442 r3462  
    2020#endregion
    2121
     22using System;
     23using System.Linq;
     24using System.Collections.Generic;
     25using System.Text;
    2226using HeuristicLab.Common;
    2327using HeuristicLab.Core;
    2428using HeuristicLab.Data;
    2529using HeuristicLab.Random;
    26 using System;
    27 using System.Linq;
    2830using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    29 using System.Collections.Generic;
    30 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
    31 using System.Text;
    3231using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureAlteringOperators;
    33 
    34 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
     32using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
     33
     34namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators {
    3535  [StorableClass]
    3636  [Item("ProbabilisticTreeCreator", "An operator that creates new symbolic expression trees with uniformly distributed size")]
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Creators/SymbolicExpressionTreeCreator.cs

    r3456 r3462  
    2929using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    3030
    31 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
     31namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators {
    3232  /// <summary>
    3333  /// A base class for operators creating symbolic expression trees.
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Crossovers/SubtreeCrossover.cs

    r3376 r3462  
    2828using System;
    2929using HeuristicLab.Parameters;
    30 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
    31 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
     30using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3231
    33 
     32namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Crossovers {
    3433  /// <summary>
    3534  /// Takes two parent individuals P0 and P1 each. Selects a random node N0 of P0 and a random node N1 of P1.
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Crossovers/SymbolicExpressionTreeCrossover.cs

    r3456 r3462  
    3030using System.Diagnostics;
    3131
    32 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
     32namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Crossovers {
    3333  /// <summary>
    3434  /// A base class for operators that perform a crossover of symbolic expression trees.
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/DefaultSymbolicExpressionGrammar.cs

    r3376 r3462  
    2828using System.Xml;
    2929using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    30 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     30using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3131
    3232namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/GlobalSymbolicExpressionGrammar.cs

    r3376 r3462  
    2828using System.Xml;
    2929using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    30 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     30using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3131
    3232namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.csproj

    r3384 r3462  
    9393    <Compile Include="ArchitectureAlteringOperators\SubroutineDeleter.cs" />
    9494    <Compile Include="ArchitectureAlteringOperators\SubroutineDuplicater.cs" />
     95    <Compile Include="ArchitectureAlteringOperators\SymbolicExpressionTreeArchitectureAlteringOperator.cs" />
     96    <Compile Include="Compiler\Instruction.cs" />
     97    <Compile Include="Compiler\SymbolicExpressionTreeCompiler.cs" />
     98    <Compile Include="Creators\SymbolicExpressionTreeCreator.cs" />
     99    <Compile Include="Crossovers\SymbolicExpressionTreeCrossover.cs" />
     100    <Compile Include="Manipulators\SymbolicExpressionTreeManipulator.cs" />
    95101    <Compile Include="SymbolicExpressionTreeTopLevelNode.cs" />
    96102    <Compile Include="Crossovers\SubtreeCrossover.cs">
     
    102108      <SubType>Code</SubType>
    103109    </Compile>
    104     <Compile Include="SymbolicExpressionTreeArchitectureAlteringOperator.cs" />
    105110    <Compile Include="SymbolicExpressionTreeOperator.cs" />
    106     <Compile Include="Instruction.cs" />
    107     <Compile Include="SymbolicExpressionTreeCompiler.cs" />
    108     <Compile Include="SymbolicExpressionTreeManipulator.cs" />
    109111    <Compile Include="SymbolicExpressionTreeTerminalNode.cs" />
    110112    <Compile Include="Interfaces\ISymbolicExpressionGrammar.cs" />
     
    112114    <Compile Include="HeuristicLabEncodingsSymbolicExpressionTreeEncodingPlugin.cs" />
    113115    <Compile Include="Interfaces\ISymbolicExpressionTreeOperator.cs" />
    114     <Compile Include="SymbolicExpressionTreeCreator.cs" />
    115116    <Compile Include="SymbolicExpressionTree.cs" />
    116117    <Compile Include="Properties\AssemblyInfo.cs" />
    117     <Compile Include="Symbol.cs" />
    118     <Compile Include="SymbolicExpressionTreeCrossover.cs" />
    119118    <Compile Include="SymbolicExpressionTreeNode.cs" />
    120     <Compile Include="Symbols\Addition.cs" />
    121119    <Compile Include="Symbols\Argument.cs" />
    122120    <Compile Include="Symbols\ArgumentTreeNode.cs" />
     
    127125    <Compile Include="Symbols\Defun.cs" />
    128126    <Compile Include="Symbols\ProgramRootSymbol.cs" />
    129     <Compile Include="Symbols\Division.cs" />
    130     <Compile Include="Symbols\Multiplication.cs" />
    131     <Compile Include="Symbols\Subtraction.cs" />
     127    <Compile Include="Symbols\Symbol.cs" />
    132128  </ItemGroup>
    133129  <ItemGroup>
     
    178174    </ProjectReference>
    179175  </ItemGroup>
    180   <ItemGroup>
    181     <Folder Include="Manipulators\" />
    182   </ItemGroup>
    183176  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    184177  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Interfaces/ISymbolicExpressionGrammar.cs

    r3376 r3462  
    2828using System.Xml;
    2929using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     30using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3031
    3132namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Manipulators/SymbolicExpressionTreeManipulator.cs

    r3456 r3462  
    2828using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2929
    30 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
     30namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Manipulators {
    3131  /// <summary>
    3232  /// A base class for operators that manipulate real-valued vectors.
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/SymbolicExpressionTreeNode.cs

    r3442 r3462  
    3030using HeuristicLab.Data;
    3131using System.Diagnostics;
     32using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3233
    3334namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
     
    3839    [Storable]
    3940    private Symbol symbol;
    40     //[Storable]
     41
     42    // parent relation is not persisted or cloned (will be set on AddSubtree or RemoveSubtree)
    4143    private SymbolicExpressionTreeNode parent;
    4244
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/SymbolicExpressionTreeTerminalNode.cs

    r3376 r3462  
    2828using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2929using HeuristicLab.Data;
     30using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3031
    3132namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/SymbolicExpressionTreeTopLevelNode.cs

    r3376 r3462  
    3030using HeuristicLab.Data;
    3131using System.Diagnostics;
     32using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3233
    3334namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
     
    4445
    4546    private ISymbolicExpressionGrammar grammar;
    46     //internal virtual ISymbolicExpressionGrammar Grammar {
    47     //  get { return grammar; }
    48     //  set {
    49     //    grammar = value;
    50     //    //foreach (var subtree in subTrees)
    51     //    //  subtree.Grammar = value;
    52     //  }
    53     //}
     47
    5448    internal override ISymbolicExpressionGrammar Grammar {
    5549      get {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Symbols/Argument.cs

    r3376 r3462  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
    25 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols {
     25namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols {
    2626  /// <summary>
    2727  /// Symbol for function arguments
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Symbols/ArgumentTreeNode.cs

    r3369 r3462  
    2222using System;
    2323using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    24 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols {
     24namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols {
    2525  [StorableClass]
    2626  public sealed class ArgumentTreeNode : SymbolicExpressionTreeNode {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Symbols/Defun.cs

    r3376 r3462  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
    25 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols {
     25namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols {
    2626  /// <summary>
    2727  /// Symbol for function defining branches
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Symbols/DefunTreeNode.cs

    r3442 r3462  
    2424using HeuristicLab.Common;
    2525using HeuristicLab.Core;
    26 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols {
     26namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols {
    2727  [StorableClass]
    2828  public sealed class DefunTreeNode : SymbolicExpressionTreeTopLevelNode {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Symbols/InvokeFunction.cs

    r3376 r3462  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
    25 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols {
     25namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols {
    2626  /// <summary>
    2727  /// Symbol for invoking automatically defined functions
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Symbols/InvokeFunctionTreeNode.cs

    r3369 r3462  
    2222using System;
    2323using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    24 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols {
     24namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols {
    2525  [StorableClass]
    2626  public sealed class InvokeFunctionTreeNode : SymbolicExpressionTreeNode {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Symbols/ProgramRootSymbol.cs

    r3376 r3462  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
    25 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols {
     25namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols {
    2626  [StorableClass]
    2727  [Item("ProgramRootSymbol", "Special symbol that represents the program root node of a symbolic expression tree.")]
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Symbols/StartSymbol.cs

    r3376 r3462  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
    25 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols {
     25namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols {
    2626  [StorableClass]
    2727  [Item("StartSymbol", "Special symbol that represents the starting node of the result producing branch of a symbolic expression tree.")]
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Symbols/Symbol.cs

    r3456 r3462  
    3030using HeuristicLab.Parameters;
    3131
    32 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
     32namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols {
    3333  [StorableClass]
    3434  [Item("Symbol", "Represents a symbol in a symbolic function tree.")]
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/AllArchitectureAlteringOperatorsTest.cs

    r3369 r3462  
    3030using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureAlteringOperators;
    3131using HeuristicLab.Data;
     32using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
     33using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Crossovers;
    3234
    3335namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding_3._3.Tests {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/ArgumentCreaterTest.cs

    r3360 r3462  
    2929using System.Diagnostics;
    3030using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureAlteringOperators;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
    3132
    3233namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding_3._3.Tests {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/ArgumentDeleterTest.cs

    r3360 r3462  
    2929using System.Diagnostics;
    3030using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureAlteringOperators;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
    3132
    3233namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding_3._3.Tests {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/ArgumentDuplicaterTest.cs

    r3360 r3462  
    2929using System.Diagnostics;
    3030using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureAlteringOperators;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
    3132
    3233namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding_3._3.Tests {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/Grammars.cs

    r3369 r3462  
    2828using HeuristicLab.Random;
    2929using System.Diagnostics;
    30 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;
     30using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    3131
    3232namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding_3._3.Tests {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/ProbabilisticTreeCreaterTest.cs

    r3369 r3462  
    2828using HeuristicLab.Random;
    2929using System.Diagnostics;
     30using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
    3031
    3132namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding_3._3.Tests {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/SubroutineCreaterTest.cs

    r3360 r3462  
    2929using System.Diagnostics;
    3030using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureAlteringOperators;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
    3132
    3233namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding_3._3.Tests {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/SubroutineDeleterTest.cs

    r3360 r3462  
    2929using System.Diagnostics;
    3030using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureAlteringOperators;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
    3132
    3233namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding_3._3.Tests {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/SubroutineDuplicaterTest.cs

    r3360 r3462  
    2929using System.Diagnostics;
    3030using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureAlteringOperators;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
    3132
    3233namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding_3._3.Tests {
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/SubtreeCrossoverTest.cs

    r3360 r3462  
    2828using HeuristicLab.Random;
    2929using System.Diagnostics;
     30using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Crossovers;
     31using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
    3032
    3133namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding_3._3.Tests {
Note: See TracChangeset for help on using the changeset viewer.