Changeset 14927 for branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers
- Timestamp:
- 05/04/17 17:19:35 (8 years ago)
- Location:
- branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/AverageCrossover.cs
r14185 r14927 23 23 using HeuristicLab.Common; 24 24 using HeuristicLab.Core; 25 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;25 using HeuristicLab.Persistence; 26 26 27 27 namespace HeuristicLab.Encodings.RealVectorEncoding { … … 33 33 /// </remarks> 34 34 [Item("AverageCrossover", "The average crossover (intermediate recombination) produces a new offspring by calculating in each position the average of a number of parents. It is implemented as described by Beyer, H.-G. and Schwefel, H.-P. 2002. Evolution Strategies - A Comprehensive Introduction Natural Computing, 1, pp. 3-52.")] 35 [Storable Class]35 [StorableType("61dc5c88-d9c3-42c9-8232-38c9e5af09fe")] 36 36 public class AverageCrossover : RealVectorCrossover { 37 37 [StorableConstructor] … … 43 43 return new AverageCrossover(this, cloner); 44 44 } 45 45 46 46 /// <summary> 47 47 /// Performs the average crossover (intermediate recombination) on a list of parents. … … 66 66 result[i] = avg / (double)parentsCount; 67 67 } 68 } 69 catch (IndexOutOfRangeException) { 68 } catch (IndexOutOfRangeException) { 70 69 throw new ArgumentException("AverageCrossover: The parents' vectors are of different length.", "parents"); 71 70 } -
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/BlendAlphaBetaCrossover.cs
r14185 r14927 26 26 using HeuristicLab.Optimization; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;28 using HeuristicLab.Persistence; 29 29 30 30 namespace HeuristicLab.Encodings.RealVectorEncoding { … … 40 40 /// </remarks> 41 41 [Item("BlendAlphaBetaCrossover", "The blend alpha beta crossover (BLX-a-b) for real vectors is similar to the blend alpha crossover (BLX-a), but distinguishes between the better and worse of the parents. The interval from which to choose the new offspring can be extended beyond the better parent by specifying a higher alpha value, and beyond the worse parent by specifying a higher beta value. The new offspring is sampled uniformly in the extended range. It is implemented as described in Takahashi, M. and Kita, H. 2001. A crossover operator using independent component analysis for real-coded genetic algorithms Proceedings of the 2001 Congress on Evolutionary Computation, pp. 643-649.")] 42 [Storable Class]42 [StorableType("9bf6736e-2e38-49ee-a154-87d8f0b2cd7c")] 43 43 public class BlendAlphaBetaCrossover : RealVectorCrossover, ISingleObjectiveOperator { 44 44 /// <summary> -
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/BlendAlphaCrossover.cs
r14185 r14927 25 25 using HeuristicLab.Data; 26 26 using HeuristicLab.Parameters; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Encodings.RealVectorEncoding { … … 38 38 /// </remarks> 39 39 [Item("BlendAlphaCrossover", "The blend alpha crossover (BLX-a) for real vectors creates new offspring by sampling a new value in the range [min_i - d * alpha, max_i + d * alpha) at each position i. Here min_i and max_i are the smaller and larger value of the two parents at position i and d is max_i - min_i. It is implemented as described in Takahashi, M. and Kita, H. 2001. A crossover operator using independent component analysis for real-coded genetic algorithms Proceedings of the 2001 Congress on Evolutionary Computation, pp. 643-649.")] 40 [Storable Class]40 [StorableType("3a396378-c7ff-4f3b-bea1-4d29d7100bb0")] 41 41 public class BlendAlphaCrossover : RealVectorCrossover { 42 42 /// <summary> -
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/DiscreteCrossover.cs
r14185 r14927 23 23 using HeuristicLab.Common; 24 24 using HeuristicLab.Core; 25 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;25 using HeuristicLab.Persistence; 26 26 27 27 namespace HeuristicLab.Encodings.RealVectorEncoding { … … 35 35 /// </remarks> 36 36 [Item("DiscreteCrossover", "Discrete crossover for real vectors: Creates a new offspring by combining the alleles in the parents such that each allele is randomly selected from one parent. It is implemented as described in Beyer, H.-G. and Schwefel, H.-P. 2002. Evolution Strategies - A Comprehensive Introduction Natural Computing, 1, pp. 3-52.")] 37 [Storable Class]37 [StorableType("455868ff-d615-409d-8b42-1134934ac6db")] 38 38 public class DiscreteCrossover : RealVectorCrossover { 39 39 [StorableConstructor] … … 45 45 return new DiscreteCrossover(this, cloner); 46 46 } 47 47 48 48 /// <summary> 49 49 /// Performs a discrete crossover operation on multiple parents. -
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/HeuristicCrossover.cs
r14185 r14927 26 26 using HeuristicLab.Optimization; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;28 using HeuristicLab.Persistence; 29 29 30 30 namespace HeuristicLab.Encodings.RealVectorEncoding { … … 37 37 /// </remarks> 38 38 [Item("HeuristicCrossover", "The heuristic crossover produces offspring that extend the better parent in direction from the worse to the better parent. It is implemented as described in Wright, A.H. (1994), Genetic algorithms for real parameter optimization, Foundations of Genetic Algorithms, G.J.E. Rawlins (Ed.), Morgan Kaufmann, San Mateo, CA, 205-218.")] 39 [Storable Class]39 [StorableType("2fbe64ff-f4fe-4668-99a5-a0af853f69e7")] 40 40 public class HeuristicCrossover : RealVectorCrossover, ISingleObjectiveOperator { 41 41 /// <summary> -
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/LocalCrossover.cs
r14185 r14927 23 23 using HeuristicLab.Common; 24 24 using HeuristicLab.Core; 25 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;25 using HeuristicLab.Persistence; 26 26 27 27 namespace HeuristicLab.Encodings.RealVectorEncoding { … … 33 33 /// </remarks> 34 34 [Item("LocalCrossover", @"The local crossover is similar to the arithmetic all positions crossover, but uses a random alpha for each position x = alpha * p1 + (1-alpha) * p2. It is implemented as described in Dumitrescu, D. et al. (2000), Evolutionary computation, CRC Press, Boca Raton, FL., p. 194.")] 35 [Storable Class]35 [StorableType("263eb3c9-5288-47d4-814f-ca9de5356887")] 36 36 public class LocalCrossover : RealVectorCrossover { 37 37 [StorableConstructor] … … 43 43 return new LocalCrossover(this, cloner); 44 44 } 45 45 46 46 /// <summary> 47 47 /// Performs a local crossover on the two given parent vectors. -
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/MultiRealVectorCrossover.cs
r14185 r14927 29 29 using HeuristicLab.Optimization; 30 30 using HeuristicLab.Parameters; 31 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;31 using HeuristicLab.Persistence; 32 32 using HeuristicLab.PluginInfrastructure; 33 33 34 34 namespace HeuristicLab.Encodings.RealVectorEncoding { 35 35 [Item("MultiRealVectorCrossover", "Randomly selects and applies one of its crossovers every time it is called.")] 36 [Storable Class]36 [StorableType("f1b6b83e-6980-46d5-b0ef-539b0f04a51e")] 37 37 public class MultiRealVectorCrossover : StochasticMultiBranch<IRealVectorCrossover>, IRealVectorCrossover, IStochasticOperator { 38 38 public override bool CanChangeName { -
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/RandomConvexCrossover.cs
r14185 r14927 23 23 using HeuristicLab.Common; 24 24 using HeuristicLab.Core; 25 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;25 using HeuristicLab.Persistence; 26 26 27 27 namespace HeuristicLab.Encodings.RealVectorEncoding { … … 33 33 /// </remarks> 34 34 [Item("RandomConvexCrossover", "The random convex crossover acts like the local crossover, but with just one randomly chosen alpha for all crossed positions. It is implementes as described in Dumitrescu, D. et al. (2000), Evolutionary computation, CRC Press, Boca Raton, FL, pp. 193 - 194.")] 35 [Storable Class]35 [StorableType("6742955d-1e35-4210-b74b-c1b31f0c02a0")] 36 36 public class RandomConvexCrossover : RealVectorCrossover { 37 37 [StorableConstructor] … … 43 43 return new RandomConvexCrossover(this, cloner); 44 44 } 45 45 46 46 /// <summary> 47 47 /// Performs a random convex crossover on the two given parents. -
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/SimulatedBinaryCrossover.cs
r14185 r14927 25 25 using HeuristicLab.Data; 26 26 using HeuristicLab.Parameters; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Encodings.RealVectorEncoding { … … 36 36 /// </remarks> 37 37 [Item("SimulatedBinaryCrossover", "The simulated binary crossover (SBX) is implemented as described in Deb, K. and Agrawal, R. B. 1995. Simulated binary crossover for continuous search space. Complex Systems, 9, pp. 115-148.")] 38 [Storable Class]38 [StorableType("1ed2ad31-7d33-481a-95bd-0cdbf7cd22c8")] 39 39 public class SimulatedBinaryCrossover : RealVectorCrossover { 40 40 /// <summary> -
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/SinglePointCrossover.cs
r14185 r14927 23 23 using HeuristicLab.Common; 24 24 using HeuristicLab.Core; 25 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;25 using HeuristicLab.Persistence; 26 26 27 27 namespace HeuristicLab.Encodings.RealVectorEncoding { … … 35 35 /// </remarks> 36 36 [Item("SinglePointCrossover", "Breaks both parent chromosomes at a randomly chosen point and assembles a child by taking one part of the first parent and the other part of the second pard. It is implemented as described in Michalewicz, Z. 1999. Genetic Algorithms + Data Structures = Evolution Programs. Third, Revised and Extended Edition, Spring-Verlag Berlin Heidelberg.")] 37 [Storable Class]37 [StorableType("92055f8b-3b1e-4e61-bcdf-212964dbd3fd")] 38 38 public class SinglePointCrossover : RealVectorCrossover { 39 39 [StorableConstructor] … … 45 45 return new SinglePointCrossover(this, cloner); 46 46 } 47 47 48 48 /// <summary> 49 49 /// Performs the single point crossover for real vectors. The implementation is similar to the single point crossover for binary vectors. -
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/UniformAllPositionsArithmeticCrossover.cs
r14185 r14927 25 25 using HeuristicLab.Data; 26 26 using HeuristicLab.Parameters; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Encodings.RealVectorEncoding { … … 36 36 /// </remarks> 37 37 [Item("UniformAllPositionsArithmeticCrossover", "The uniform all positions arithmetic crossover constructs an offspring by calculating x = alpha * p1 + (1-alpha) * p2 for every position x in the vector. Note that for alpha = 0.5 it is the same as the AverageCrossover (except that the AverageCrossover is defined for more than 2 parents). It is implemented as described in Michalewicz, Z. 1999. Genetic Algorithms + Data Structures = Evolution Programs. Third, Revised and Extended Edition, Spring-Verlag Berlin Heidelberg.")] 38 [Storable Class]38 [StorableType("51c7c3c0-2d86-4523-ab3d-705e74a43486")] 39 39 public class UniformAllPositionsArithmeticCrossover : RealVectorCrossover { 40 40 /// <summary> -
branches/PersistenceReintegration/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/UniformSomePositionsArithmeticCrossover.cs
r14185 r14927 25 25 using HeuristicLab.Data; 26 26 using HeuristicLab.Parameters; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Encodings.RealVectorEncoding { … … 36 36 /// </remarks> 37 37 [Item("UniformSomePositionsArithmeticCrossover", "The uniform some positions arithmetic crossover (continuous recombination) constructs an offspring by calculating x = alpha * p1 + (1-alpha) * p2 for a position x in the vector with a given probability (otherwise p1 is taken at this position). It is implemented as described in Dumitrescu, D. et al. (2000), Evolutionary computation, CRC Press, Boca Raton, FL, p. 191. Note that Dumitrescu et al. specify the alpha to be 0.5.")] 38 [Storable Class]38 [StorableType("76030d4b-a514-435d-abc2-0feb530a2b74")] 39 39 public class UniformSomePositionsArithmeticCrossover : RealVectorCrossover { 40 40 /// <summary>
Note: See TracChangeset
for help on using the changeset viewer.