Skip to content

Commit 5fdaaaa

Browse files
committed
GeneticAlgorithm now using IBreedingPoolGenerator
1 parent 5040cd2 commit 5fdaaaa

File tree

2 files changed

+5
-10
lines changed

2 files changed

+5
-10
lines changed

NeuralBotMasterFramework/NeuralBotMasterFramework/Interfaces/IGeneticAlgorithm.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ public interface IGeneticAlgorithm
1414
double MutationRate { get; }
1515
double MutationChance { get; }
1616

17+
IBreedingPoolGenerator PoolGenerator { get; }
18+
1719
int InputNodes { get; }
1820
int HiddenNodes { get; }
1921
int HiddenLayers { get; }

NeuralBotMasterFramework/NeuralBotMasterFramework/Logic/Algorithms/GeneticAlgorithm.cs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ public class GeneticAlgorithm : IGeneticAlgorithm
2323
public int HiddenLayers { get; }
2424
public int OutputNodes { get; }
2525

26+
public IBreedingPoolGenerator PoolGenerator { get; set; } = new PoolGenerators.IndexBasedPoolGenerator();
27+
2628
public double[][] CurrentInput { get; private set; }
2729
public double[][] CurrentExpected { get; private set; }
2830

@@ -131,16 +133,7 @@ private void BreedNewNetworks()
131133

132134
private List<IWeightedNetwork> GetBreedingPool()
133135
{
134-
List<IWeightedNetwork> networkAndLikelinesToBreed = new List<IWeightedNetwork>();
135-
for (int networkIndex = 0; networkIndex < NetworksToKeep; ++networkIndex)
136-
{
137-
IWeightedNetwork currentNetwork = NetworksAndFitness.Keys.ElementAt(networkIndex);
138-
for (int i = 0; i < NetworksToKeep - networkIndex; ++i)
139-
{
140-
networkAndLikelinesToBreed.Add(currentNetwork);
141-
}
142-
}
143-
return networkAndLikelinesToBreed;
136+
return PoolGenerator.GenerateBreedingPool(NetworksAndFitness);
144137
}
145138

146139
private void BreedNetworks(List<IWeightedNetwork> networkAndLikelinesToBreed)

0 commit comments

Comments
 (0)