Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/19/10 06:19:16 (14 years ago)
Author:
swagner
Message:

Operator architecture refactoring (#95)

  • worked on operators, engines, and optimization
Location:
trunk/sources/HeuristicLab.Operators/3.3
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Operators/3.3/AlgorithmOperator.cs

    r2830 r2834  
    5050    }
    5151
    52     public override IExecutionSequence Apply() {
    53       ExecutionContextCollection next = new ExecutionContextCollection(base.Apply());
     52    public override IOperation Apply() {
     53      OperationCollection next = new OperationCollection(base.Apply());
    5454      if (operatorGraph.InitialOperator != null)
    55         next.Insert(0, ExecutionContext.CreateChildContext(operatorGraph.InitialOperator));
     55        next.Insert(0, ExecutionContext.CreateChildOperation(operatorGraph.InitialOperator));
    5656      return next;
    5757    }
  • trunk/sources/HeuristicLab.Operators/3.3/Assigner.cs

    r2794 r2834  
    4545    }
    4646
    47     public override IExecutionSequence Apply() {
     47    public override IOperation Apply() {
    4848      LeftSideParameter.ActualValue = (IItem)RightSideParameter.ActualValue.Clone();
    4949      return base.Apply();
  • trunk/sources/HeuristicLab.Operators/3.3/CombinedOperator.cs

    r2830 r2834  
    2020#endregion
    2121
    22 using System.Drawing;
    2322using HeuristicLab.Collections;
    2423using HeuristicLab.Core;
    25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2624
    2725namespace HeuristicLab.Operators {
     
    3129  [Item("CombinedOperator", "An operator which contains an operator graph.")]
    3230  [Creatable("Test")]
    33   public sealed class CombinedOperator : AlgorithmOperator, IOperator {
     31  public sealed class CombinedOperator : AlgorithmOperator, IParameterizedItem {
    3432    public new ParameterCollection Parameters {
    3533      get {
     
    3735      }
    3836    }
    39     IObservableKeyedCollection<string, IParameter> IOperator.Parameters {
     37    IObservableKeyedCollection<string, IParameter> IParameterizedItem.Parameters {
    4038      get { return Parameters; }
    4139    }
  • trunk/sources/HeuristicLab.Operators/3.3/Comparator.cs

    r2831 r2834  
    5959    }
    6060
    61     public override IExecutionSequence Apply() {
     61    public override IOperation Apply() {
    6262      IItem left = LeftSideParameter.ActualValue;
    6363      IItem right = RightSideParameter.ActualValue;
  • trunk/sources/HeuristicLab.Operators/3.3/ConditionalBranch.cs

    r2796 r2834  
    5858    }
    5959
    60     public override IExecutionSequence Apply() {
    61       ExecutionContextCollection next = new ExecutionContextCollection(base.Apply());
     60    public override IOperation Apply() {
     61      OperationCollection next = new OperationCollection(base.Apply());
    6262      if (ConditionParameter.ActualValue.Value) {
    63         if (TrueBranch != null) next.Insert(0, ExecutionContext.CreateContext(TrueBranch));
     63        if (TrueBranch != null) next.Insert(0, ExecutionContext.CreateOperation(TrueBranch));
    6464      } else {
    65         if (FalseBranch != null) next.Insert(0, ExecutionContext.CreateContext(FalseBranch));
     65        if (FalseBranch != null) next.Insert(0, ExecutionContext.CreateOperation(FalseBranch));
    6666      }
    6767      return next;
  • trunk/sources/HeuristicLab.Operators/3.3/DoubleCounter.cs

    r2794 r2834  
    5050    }
    5151
    52     public override IExecutionSequence Apply() {
     52    public override IOperation Apply() {
    5353      if (ValueParameter.ActualValue == null) ValueParameter.ActualValue = new DoubleData();
    5454      ValueParameter.ActualValue.Value += IncrementParameter.ActualValue.Value;
  • trunk/sources/HeuristicLab.Operators/3.3/IntCounter.cs

    r2794 r2834  
    5050    }
    5151
    52     public override IExecutionSequence Apply() {
     52    public override IOperation Apply() {
    5353      if (ValueParameter.ActualValue == null) ValueParameter.ActualValue = new IntData();
    5454      ValueParameter.ActualValue.Value += IncrementParameter.ActualValue.Value;
  • trunk/sources/HeuristicLab.Operators/3.3/Operator.cs

    r2805 r2834  
    5151    }
    5252    private ReadOnlyObservableKeyedCollection<string, IParameter> readOnlyParameters;
    53     IObservableKeyedCollection<string, IParameter> IOperator.Parameters {
     53    IObservableKeyedCollection<string, IParameter> IParameterizedItem.Parameters {
    5454      get {
    5555        if (readOnlyParameters == null) readOnlyParameters = parameters.AsReadOnly();
     
    5959
    6060    [Storable]
    61     private ExecutionContext executionContext;
    62     protected ExecutionContext ExecutionContext {
     61    private IExecutionContext executionContext;
     62    protected IExecutionContext ExecutionContext {
    6363      get { return executionContext; }
    6464      private set {
     
    122122      clone.canceled = canceled;
    123123      clone.breakpoint = breakpoint;
    124       clone.executionContext = (ExecutionContext)cloner.Clone(executionContext);
     124      clone.executionContext = (IExecutionContext)cloner.Clone(executionContext);
    125125      return clone;
    126126    }
    127127
    128128    /// <inheritdoc/>
    129     public virtual IExecutionSequence Execute(ExecutionContext context) {
     129    public virtual IOperation Execute(IExecutionContext context) {
    130130      try {
    131131        Canceled = false;
     
    133133        foreach (IParameter param in Parameters)
    134134          param.ExecutionContext = context;
    135         IExecutionSequence next = Apply();
     135        IOperation next = Apply();
    136136        OnExecuted();
    137137        return next;
     
    153153    /// <param name="scope">The scope where to execute the operator</param>
    154154    /// <returns><c>null</c>.</returns>
    155     public abstract IExecutionSequence Apply();
     155    public abstract IOperation Apply();
    156156
    157157    protected virtual void OnExecutionContextChanged() { }
  • trunk/sources/HeuristicLab.Operators/3.3/ParallelSubScopesProcessor.cs

    r2830 r2834  
    3333    }
    3434
    35     public override IExecutionSequence Apply() {
    36       ExecutionContextCollection next = new ExecutionContextCollection(base.Apply());
     35    public override IOperation Apply() {
     36      OperationCollection next = new OperationCollection(base.Apply());
    3737      if (Operators.Count > 0) {
    38         ExecutionContextCollection inner = new ExecutionContextCollection();
     38        OperationCollection inner = new OperationCollection();
    3939        inner.Parallel = true;
    4040        for (int i = 0; (i < ExecutionContext.Scope.SubScopes.Count) && (i < Operators.Count); i++)
    41           if (Operators[i] != null) inner.Add(ExecutionContext.CreateContext(Operators[i], ExecutionContext.Scope.SubScopes[i]));
     41          if (Operators[i] != null) inner.Add(ExecutionContext.CreateOperation(Operators[i], ExecutionContext.Scope.SubScopes[i]));
    4242        next.Insert(0, inner);
    4343      }
  • trunk/sources/HeuristicLab.Operators/3.3/Placeholder.cs

    r2796 r2834  
    4141    }
    4242
    43     public override IExecutionSequence Apply() {
    44       ExecutionContextCollection next = new ExecutionContextCollection(base.Apply());
     43    public override IOperation Apply() {
     44      OperationCollection next = new OperationCollection(base.Apply());
    4545      IOperator op = OperatorParameter.ActualValue;
    4646      if (op != null)
    47         next.Insert(0, ExecutionContext.CreateContext(op));
     47        next.Insert(0, ExecutionContext.CreateOperation(op));
    4848      return next;
    4949    }
  • trunk/sources/HeuristicLab.Operators/3.3/ScopeCleaner.cs

    r2794 r2834  
    4444    }
    4545
    46     public override IExecutionSequence Apply() {
     46    public override IOperation Apply() {
    4747      CurrentScope.Variables.Clear();
    4848      CurrentScope.SubScopes.Clear();
  • trunk/sources/HeuristicLab.Operators/3.3/SequentialSubScopesProcessor.cs

    r2830 r2834  
    3333    }
    3434
    35     public override IExecutionSequence Apply() {
    36       ExecutionContextCollection next = new ExecutionContextCollection(base.Apply());
     35    public override IOperation Apply() {
     36      OperationCollection next = new OperationCollection(base.Apply());
    3737      if (Operators.Count > 0) {
    38         ExecutionContextCollection inner = new ExecutionContextCollection();
     38        OperationCollection inner = new OperationCollection();
    3939        for (int i = 0; (i < ExecutionContext.Scope.SubScopes.Count) && (i < Operators.Count); i++)
    40           if (Operators[i] != null) inner.Add(ExecutionContext.CreateContext(Operators[i], ExecutionContext.Scope.SubScopes[i]));
     40          if (Operators[i] != null) inner.Add(ExecutionContext.CreateOperation(Operators[i], ExecutionContext.Scope.SubScopes[i]));
    4141        next.Insert(0, inner);
    4242      }
  • trunk/sources/HeuristicLab.Operators/3.3/SingleSuccessorOperator.cs

    r2796 r2834  
    4545    }
    4646
    47     public override IExecutionSequence Apply() {
     47    public override IOperation Apply() {
    4848      if (Successor != null)
    49         return ExecutionContext.CreateContext(Successor);
     49        return ExecutionContext.CreateOperation(Successor);
    5050      else
    5151        return null;
  • trunk/sources/HeuristicLab.Operators/3.3/StochasticBranch.cs

    r2796 r2834  
    6262    }
    6363
    64     public override IExecutionSequence Apply() {
    65       ExecutionContextCollection next = new ExecutionContextCollection(base.Apply());
     64    public override IOperation Apply() {
     65      OperationCollection next = new OperationCollection(base.Apply());
    6666      if (RandomParameter.ActualValue.NextDouble() < ProbabilityParameter.ActualValue.Value) {
    67         if (FirstBranch != null) next.Insert(0, ExecutionContext.CreateContext(FirstBranch));
     67        if (FirstBranch != null) next.Insert(0, ExecutionContext.CreateOperation(FirstBranch));
    6868      } else {
    69         if (SecondBranch != null) next.Insert(0, ExecutionContext.CreateContext(SecondBranch));
     69        if (SecondBranch != null) next.Insert(0, ExecutionContext.CreateOperation(SecondBranch));
    7070      }
    7171      return next;
  • trunk/sources/HeuristicLab.Operators/3.3/SubScopesCreator.cs

    r2794 r2834  
    4949    }
    5050
    51     public override IExecutionSequence Apply() {
     51    public override IOperation Apply() {
    5252      int n = NumberOfSubScopesParameter.ActualValue.Value;
    5353      for (int i = 0; i < n; i++)
  • trunk/sources/HeuristicLab.Operators/3.3/SubScopesRemover.cs

    r2830 r2834  
    5858    }
    5959
    60     public override IExecutionSequence Apply() {
     60    public override IOperation Apply() {
    6161      if (RemoveAllSubScopes)
    6262        CurrentScope.SubScopes.Clear();
  • trunk/sources/HeuristicLab.Operators/3.3/SubScopesSorter.cs

    r2818 r2834  
    5656    }
    5757
    58     public override IExecutionSequence Apply() {
     58    public override IOperation Apply() {
    5959      descending = DescendingParameter.ActualValue.Value;
    6060      actualName = LookupParameter<ItemArray<DoubleData>>.TranslateName(ValueParameter.Name, ExecutionContext);
  • trunk/sources/HeuristicLab.Operators/3.3/UniformParallelSubScopesProcessor.cs

    r2818 r2834  
    4545    }
    4646
    47     public override IExecutionSequence Apply() {
    48       ExecutionContextCollection next = new ExecutionContextCollection(base.Apply());
     47    public override IOperation Apply() {
     48      OperationCollection next = new OperationCollection(base.Apply());
    4949      if (Operator != null) {
    50         ExecutionContextCollection inner = new ExecutionContextCollection();
     50        OperationCollection inner = new OperationCollection();
    5151        inner.Parallel = true;
    5252        for (int i = 0; i < ExecutionContext.Scope.SubScopes.Count; i++)
    53           inner.Add(ExecutionContext.CreateContext(Operator, ExecutionContext.Scope.SubScopes[i]));
     53          inner.Add(ExecutionContext.CreateOperation(Operator, ExecutionContext.Scope.SubScopes[i]));
    5454        next.Insert(0, inner);
    5555      }
  • trunk/sources/HeuristicLab.Operators/3.3/UniformSequentialSubScopesProcessor.cs

    r2818 r2834  
    4545    }
    4646
    47     public override IExecutionSequence Apply() {
    48       ExecutionContextCollection next = new ExecutionContextCollection(base.Apply());
     47    public override IOperation Apply() {
     48      OperationCollection next = new OperationCollection(base.Apply());
    4949      if (Operator != null) {
    50         ExecutionContextCollection inner = new ExecutionContextCollection();
     50        OperationCollection inner = new OperationCollection();
    5151        for (int i = 0; i < ExecutionContext.Scope.SubScopes.Count; i++)
    52           inner.Add(ExecutionContext.CreateContext(Operator, ExecutionContext.Scope.SubScopes[i]));
     52          inner.Add(ExecutionContext.CreateOperation(Operator, ExecutionContext.Scope.SubScopes[i]));
    5353        next.Insert(0, inner);
    5454      }
  • trunk/sources/HeuristicLab.Operators/3.3/VariableCreator.cs

    r2794 r2834  
    4444    }
    4545
    46     public override IExecutionSequence Apply() {
     46    public override IOperation Apply() {
    4747      IVariable var;
    4848      foreach (IParameter param in CollectedValues) {
Note: See TracChangeset for help on using the changeset viewer.