Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/25/10 02:57:07 (14 years ago)
Author:
swagner
Message:

Enabled users to choose whether runs should contain a copy of their algorithm or not (#1105)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Optimization/3.3/Run.cs

    r4068 r4102  
    9090      name = algorithm.Name + " Run (" + algorithm.ExecutionTime.ToString() + ")";
    9191      description = ItemDescription;
    92       Initialize((IAlgorithm)algorithm.Clone());
     92      Initialize(algorithm);
    9393    }
    9494    public Run(string name, IAlgorithm algorithm)
     
    9696      if (algorithm == null) throw new ArgumentNullException();
    9797      description = ItemDescription;
    98       Initialize((IAlgorithm)algorithm.Clone());
     98      Initialize(algorithm);
    9999    }
    100100    public Run(string name, string description, IAlgorithm algorithm)
    101101      : base(name, description) {
    102102      if (algorithm == null) throw new ArgumentNullException();
    103       Initialize((IAlgorithm)algorithm.Clone());
     103      Initialize(algorithm);
    104104    }
    105105
    106106    private void Initialize(IAlgorithm algorithm) {
    107       this.algorithm = algorithm;
     107      IAlgorithm clone = (IAlgorithm)algorithm.Clone();
    108108      parameters = new Dictionary<string, IItem>();
    109109      results = new Dictionary<string, IItem>();
    110       this.algorithm.CollectParameterValues(parameters);
    111       this.algorithm.CollectResultValues(results);
    112       this.algorithm.Prepare(true);
     110      clone.CollectParameterValues(parameters);
     111      clone.CollectResultValues(results);
     112      if (clone.StoreAlgorithmInEachRun) {
     113        clone.Prepare(true);
     114        this.algorithm = clone;
     115      }
    113116    }
    114117
Note: See TracChangeset for help on using the changeset viewer.