Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/12/16 13:53:16 (8 years ago)
Author:
sraggl
Message:

#2666
Updated LinearLinkageEncoding by:

  • Speeding up GroupCrossover and SetGroups and GetGroups
  • making Constructor private adding static initializer Methods
Location:
trunk/sources/HeuristicLab.Tests
Files:
3 added
2 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GAGroupingProblemSampleTest.cs

    r14185 r14475  
    4949    public bool Maximization { get { return false; } }
    5050
    51     private bool[,] allowedTogether;
     51    private bool[,] adjacencyMatrix;
    5252     
    5353    public override void Initialize() {
    5454      var encoding = new LinearLinkageEncoding(""lle"", length: ProblemSize);
    55       allowedTogether = new bool[encoding.Length, encoding.Length];
     55      adjacencyMatrix = new bool[encoding.Length, encoding.Length];
    5656      var random = new System.Random(13);
    5757      for (var i = 0; i < encoding.Length - 1; i++)
    5858        for (var j = i + 1; j < encoding.Length; j++)
    59           allowedTogether[i, j] = allowedTogether[j, i] = random.Next(2) == 0;
     59          adjacencyMatrix[i, j] = adjacencyMatrix[j, i] = random.Next(2) == 0;
    6060     
    6161      Encoding = encoding;
     
    6868        for (var j = 0; j < groups[i].Count; j++)
    6969          for (var k = j + 1; k < groups[i].Count; k++)
    70             if (!allowedTogether[groups[i][j], groups[i][k]]) penalty++;
     70            if (!adjacencyMatrix[groups[i][j], groups[i][k]]) penalty++;
    7171      }
    72       if (penalty > 0) return penalty + ProblemSize;
    73       else return groups.Count;
     72      var result = groups.Count;
     73      if (penalty > 0) result += penalty + ProblemSize;
     74      return result;
    7475    }
    7576
     
    105106      ga.SetSeedRandomly.Value = false;
    106107      SamplesUtils.RunAlgorithm(ga);
    107       Assert.AreEqual(26, SamplesUtils.GetDoubleResult(ga, "BestQuality"));
    108       Assert.AreEqual(27.58, SamplesUtils.GetDoubleResult(ga, "CurrentAverageQuality"));
    109       Assert.AreEqual(105, SamplesUtils.GetDoubleResult(ga, "CurrentWorstQuality"));
     108      Assert.AreEqual(127, SamplesUtils.GetDoubleResult(ga, "BestQuality"));
     109      Assert.AreEqual(129,38, SamplesUtils.GetDoubleResult(ga, "CurrentAverageQuality"));
     110      Assert.AreEqual(132, SamplesUtils.GetDoubleResult(ga, "CurrentWorstQuality"));
    110111      Assert.AreEqual(99100, SamplesUtils.GetIntResult(ga, "EvaluatedSolutions"));
    111112    }
     
    121122      #endregion
    122123      #region Algorithm Configuration
    123       ga.Name = "Genetic Algorithm - Grouping Problem";
    124       ga.Description = "A genetic algorithm which solves a grouping problem using the linear linkage encoding.";
     124      ga.Name = "Genetic Algorithm - Graph Coloring";
     125      ga.Description = "A genetic algorithm which solves a graph coloring problem using the linear linkage encoding.";
    125126      ga.Problem = problem;
    126127      SamplesUtils.ConfigureGeneticAlgorithmParameters<TournamentSelector, MultiLinearLinkageCrossover, MultiLinearLinkageManipulator>(
  • trunk/sources/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/Auxiliary.cs

    r14274 r14475  
    2020#endregion
    2121
    22 namespace HeuristicLab.Encodings.IntegerVectorEncoding.Tests {
     22namespace HeuristicLab.Encodings.LinearLinkageEncoding.Tests {
    2323  public static class Auxiliary {
    24     public static bool IntegerVectorIsEqualByPosition(IntegerVector p1, IntegerVector p2) {
     24    public static bool LinearLinkageIsEqualByPosition(LinearLinkage p1, LinearLinkage p2) {
    2525      bool equal = (p1.Length == p2.Length);
    2626      if (equal) {
  • trunk/sources/HeuristicLab.Tests/HeuristicLab.Tests.csproj

    r14354 r14475  
    198198      <HintPath>..\bin\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.dll</HintPath>
    199199    </Reference>
    200     <Reference Include="HeuristicLab.Encodings.LinearLinkageEncoding-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    201       <SpecificVersion>False</SpecificVersion>
    202       <HintPath>..\bin\HeuristicLab.Encodings.LinearLinkageEncoding-3.3.dll</HintPath>
    203       <Private>False</Private>
     200    <Reference Include="HeuristicLab.Encodings.LinearLinkageEncoding-3.4, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     201      <SpecificVersion>False</SpecificVersion>
     202      <HintPath>..\bin\HeuristicLab.Encodings.LinearLinkageEncoding-3.4.dll</HintPath>
    204203    </Reference>
    205204    <Reference Include="HeuristicLab.Encodings.PermutationEncoding-3.3">
     
    510509    <Compile Include="HeuristicLab.Encodings.IntegerVectorEncoding-3.3\SinglePointCrossoverTest.cs" />
    511510    <Compile Include="HeuristicLab.Encodings.IntegerVectorEncoding-3.3\UniformOnePositionManipulatorTest.cs" />
     511    <Compile Include="HeuristicLab.Encodings.LinearLinkageEncoding-3.4\Auxiliary.cs" />
     512    <Compile Include="HeuristicLab.Encodings.LinearLinkageEncoding-3.4\ConversionsTest.cs" />
     513    <Compile Include="HeuristicLab.Encodings.LinearLinkageEncoding-3.4\GroupCrossoverTest.cs" />
    512514    <Compile Include="HeuristicLab.Encodings.PermutationEncoding-3.3\Auxiliary.cs" />
    513515    <Compile Include="HeuristicLab.Encodings.PermutationEncoding-3.3\CosaCrossoverTest.cs" />
Note: See TracChangeset for help on using the changeset viewer.