@@ -14,6 +14,7 @@ public class GeneticAlgorithm : IGeneticAlgorithm
14
14
{
15
15
public int TotalNetworks { get ; }
16
16
public int NetworksToKeep { get ; set ; }
17
+ public int RandomNetworkAmount { get ; set ; }
17
18
public double MutationRate { get ; set ; }
18
19
public double MutationChance { get ; set ; }
19
20
public Dictionary < IWeightedNetwork , double > NetworksAndFitness { get ; private set ; } = new Dictionary < IWeightedNetwork , double > ( ) ;
@@ -33,17 +34,22 @@ public GeneticAlgorithm(int totalNetworks, int inputNodes, int hiddenNodes, int
33
34
HiddenLayers = hiddenLayers ;
34
35
OutputNodes = outputNodes ;
35
36
36
- InitializeNetworks ( ) ;
37
+ AddNewNetworks ( TotalNetworks ) ;
37
38
}
38
39
39
- private void InitializeNetworks ( )
40
+ private void AddNewNetworks ( int amount )
40
41
{
41
- for ( int i = 0 ; i < TotalNetworks ; ++ i )
42
+ for ( int i = 0 ; i < amount ; ++ i )
42
43
{
43
- NetworksAndFitness . Add ( new WeightedNetwork ( InputNodes , HiddenLayers , HiddenLayers , OutputNodes ) , 0 ) ;
44
+ AddNewNetwork ( ) ;
44
45
}
45
46
}
46
47
48
+ private void AddNewNetwork ( )
49
+ {
50
+ NetworksAndFitness . Add ( new WeightedNetwork ( InputNodes , HiddenLayers , HiddenLayers , OutputNodes ) , 0 ) ;
51
+ }
52
+
47
53
public void SetupTest ( double [ ] [ ] input , double [ ] [ ] expected = null )
48
54
{
49
55
CurrentInput = ( double [ ] [ ] ) input . Clone ( ) ;
@@ -118,6 +124,7 @@ private void RemoveUnneccessaryNetworks()
118
124
119
125
private void BreedNewNetworks ( )
120
126
{
127
+ AddNewNetworks ( RandomNetworkAmount ) ;
121
128
List < IWeightedNetwork > networkAndLikelinesToBreed = GetBreedingPool ( ) ;
122
129
BreedNetworks ( networkAndLikelinesToBreed ) ;
123
130
}
0 commit comments