Changeset 12900


Ignore:
Timestamp:
08/25/15 14:19:54 (6 years ago)
Author:
gkronber
Message:

#2422 deleted (svn-)copied files which are not used anymore

Location:
trunk/sources
Files:
4 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/SymbolicExpressionTreeProblem.cs

    r12897 r12900  
    2222#endregion
    2323
     24using System;
    2425using System.Linq;
    2526using HeuristicLab.Common;
     
    5051    }
    5152
    52     public abstract double Evaluate(ISymbolicExpressionTree vector, IRandom random);
     53    public abstract double Evaluate(ISymbolicExpressionTree tree, IRandom random);
    5354    public sealed override double Evaluate(Individual individual, IRandom random) {
    5455      return Evaluate(individual.SymbolicExpressionTree(), random);
    5556    }
    5657
    57     public override void Analyze(Individual[] individuals, double[] qualities, ResultCollection results, IRandom random) {
    58       base.Analyze(individuals, qualities, results, random);
    59       var orderedIndividuals = individuals.Zip(qualities, (i, q) => new { Individual = i, Quality = q }).OrderBy(z => z.Quality);
    60       var best = Maximization ? orderedIndividuals.Last().Individual : orderedIndividuals.First().Individual;
    61 
     58    public virtual void Analyze(ISymbolicExpressionTree[] trees, double[] qualities, ResultCollection results, IRandom random) {
     59      var bestQuality = Maximization ? qualities.Max() : qualities.Min();
     60      var bestIdx = Array.IndexOf(qualities, bestQuality);
     61      var best = trees[bestIdx];
    6262      if (!results.ContainsKey("Best Solution")) {
    6363        results.Add(new Result("Best Solution", typeof(ISymbolicExpressionTree)));
    6464      }
    65       results["Best Solution"].Value = (IItem)best.SymbolicExpressionTree().Clone();
     65      results["Best Solution"].Value = (IItem)best.Clone();
     66    }
     67    public sealed override void Analyze(Individual[] individuals, double[] qualities, ResultCollection results, IRandom random) {
     68      Analyze(individuals.Select(ind => ind.SymbolicExpressionTree()).ToArray(), qualities, results, random);
    6669    }
    6770  }
  • trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.5/ArtificialAntProblem.cs

    r12898 r12900  
    2222using System;
    2323using System.Diagnostics.Contracts;
     24using System.Drawing.Text;
    2425using System.Linq;
    2526using HeuristicLab.Common;
     
    2728using HeuristicLab.Data;
    2829using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
     30using HeuristicLab.Optimization;
    2931using HeuristicLab.Parameters;
    3032using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    31 using HeuristicLab.Problems.ArtificialAnt.Analyzers;
     33
    3234
    3335namespace HeuristicLab.Problems.ArtificialAnt {
     
    114116      g.AddTerminalSymbols(new string[] { "Left", "Right", "Move" });
    115117      base.Encoding = new SymbolicExpressionTreeEncoding(g, 20, 10);
    116 
    117       InitializeOperators();
    118       RegisterEventHandlers();
    119118    }
    120119
     
    126125    }
    127126
     127    public override void Analyze(ISymbolicExpressionTree[] trees, double[] qualities, ResultCollection results, IRandom random) {
     128      const string bestSolutionResultName = "Best Solution";
     129      var bestQuality = Maximization ? qualities.Max() : qualities.Min();
     130      var bestIdx = Array.IndexOf(qualities, bestQuality);
     131
     132      if (!results.ContainsKey(bestSolutionResultName)) {
     133        results.Add(new Result(bestSolutionResultName, new AntTrail(World, trees[bestIdx], MaxTimeSteps.Value, qualities[bestIdx])));
     134      } else if (((AntTrail)(results[bestSolutionResultName].Value)).Quality < qualities[bestIdx]) {
     135        results[bestSolutionResultName].Value = new AntTrail(World, trees[bestIdx], MaxTimeSteps.Value, qualities[bestIdx]);
     136      }
     137    }
     138
    128139    // persistence
    129140    [StorableConstructor]
     
    131142    [StorableHook(HookType.AfterDeserialization)]
    132143    private void AfterDeserialization() {
    133       RegisterEventHandlers();
    134144    }
    135145
     
    137147    private ArtificialAntProblem(ArtificialAntProblem original, Cloner cloner)
    138148      : base(original, cloner) {
    139       RegisterEventHandlers();
    140149    }
    141150    public override IDeepCloneable Clone(Cloner cloner) {
     
    143152    }
    144153
    145     #region Events
    146     protected override void OnSolutionCreatorChanged() {
    147       base.OnSolutionCreatorChanged();
    148       ParameterizeAnalyzers();
    149       ParameterizeOperators();
    150     }
    151     protected override void OnEvaluatorChanged() {
    152       base.OnEvaluatorChanged();
    153       ParameterizeAnalyzers();
    154       ParameterizeOperators();
    155     }
    156     private void SolutionCreator_SymbolicExpressionTreeParameter_ActualNameChanged(object sender, EventArgs e) {
    157       ParameterizeAnalyzers();
    158       ParameterizeOperators();
    159     }
    160     private void Evaluator_QualityParameter_ActualNameChanged(object sender, EventArgs e) {
    161       ParameterizeAnalyzers();
    162       ParameterizeOperators();
    163     }
    164     #endregion
    165 
    166     #region Helpers
    167     private void RegisterEventHandlers() {
    168       Encoding.SolutionCreator.SymbolicExpressionTreeParameter.ActualNameChanged += new EventHandler(SolutionCreator_SymbolicExpressionTreeParameter_ActualNameChanged);
    169       Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    170     }
    171 
    172     private void InitializeOperators() {
    173       Operators.Add(new BestAntTrailAnalyzer());
    174       ParameterizeAnalyzers();
    175       ParameterizeOperators();
    176     }
    177 
    178     private void ParameterizeAnalyzers() {
    179       foreach (var analyzer in Operators.OfType<BestAntTrailAnalyzer>()) {
    180         analyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
    181         analyzer.SymbolicExpressionTreeParameter.ActualName = Encoding.SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
    182         analyzer.WorldParameter.ActualName = WorldParameter.Name;
    183         analyzer.MaxTimeStepsParameter.ActualName = MaxTimeStepsParameter.Name;
    184       }
    185     }
    186 
    187     private void ParameterizeOperators() {
    188       // no problem-specific operators to parameterize
    189     }
    190 
     154    #region helpers
    191155    private bool[,] ToBoolMatrix(char[][] ch) {
    192156      var rows = ch.Length;
  • trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.5/HeuristicLab.Problems.ArtificialAnt-3.5.csproj

    r12898 r12900  
    106106  </ItemGroup>
    107107  <ItemGroup>
    108     <Compile Include="Analyzers\BestAntTrailAnalyzer.cs" />
    109108    <Compile Include="AntInterpreter.cs" />
    110109    <Compile Include="ArtificialAntProblem.cs" />
Note: See TracChangeset for help on using the changeset viewer.