33import numpy .random as random
44from axelrod .action import Action
55from axelrod .load_data_ import load_weights
6- from axelrod .evolvable_player import (
7- EvolvablePlayer ,
8- InsufficientParametersError ,
9- crossover_lists ,
10- )
6+ from axelrod .evolvable_player import EvolvablePlayer , InsufficientParametersError , crossover_lists
117from axelrod .player import Player
128
139
@@ -195,7 +191,8 @@ class ANN(Player):
195191 }
196192
197193 def __init__ (
198- self , num_features : int , num_hidden : int , weights : List [float ] = None
194+ self , num_features : int , num_hidden : int ,
195+ weights : List [float ] = None
199196 ) -> None :
200197 super ().__init__ ()
201198 self .num_features = num_features
@@ -225,57 +222,43 @@ def strategy(self, opponent: Player) -> Action:
225222
226223class EvolvableANN (ANN , EvolvablePlayer ):
227224 """Evolvable version of ANN."""
228-
229225 name = "EvolvableANN"
230226
231227 def __init__ (
232- self ,
233- num_features : int ,
234- num_hidden : int ,
228+ self , num_features : int , num_hidden : int ,
235229 weights : List [float ] = None ,
236230 mutation_probability : float = None ,
237231 mutation_distance : int = 5 ,
238232 ) -> None :
239- (
240- num_features ,
241- num_hidden ,
242- weights ,
243- mutation_probability ,
244- ) = self ._normalize_parameters (
245- num_features , num_hidden , weights , mutation_probability
246- )
247- ANN .__init__ (
248- self , num_features = num_features , num_hidden = num_hidden , weights = weights
249- )
233+ num_features , num_hidden , weights , mutation_probability = self ._normalize_parameters (
234+ num_features , num_hidden , weights , mutation_probability )
235+ ANN .__init__ (self ,
236+ num_features = num_features ,
237+ num_hidden = num_hidden ,
238+ weights = weights )
250239 EvolvablePlayer .__init__ (self )
251240 self .mutation_probability = mutation_probability
252241 self .mutation_distance = mutation_distance
253242 self .overwrite_init_kwargs (
254243 num_features = num_features ,
255244 num_hidden = num_hidden ,
256245 weights = weights ,
257- mutation_probability = mutation_probability ,
258- )
246+ mutation_probability = mutation_probability )
259247
260248 @classmethod
261- def _normalize_parameters (
262- cls , num_features = None , num_hidden = None , weights = None , mutation_probability = None
263- ):
249+ def _normalize_parameters (cls , num_features = None , num_hidden = None , weights = None , mutation_probability = None ):
264250 if not (num_features and num_hidden ):
265- raise InsufficientParametersError (
266- "Insufficient Parameters to instantiate EvolvableANN"
267- )
251+ raise InsufficientParametersError ("Insufficient Parameters to instantiate EvolvableANN" )
268252 size = num_weights (num_features , num_hidden )
269253 if not weights :
270254 weights = [random .uniform (- 1 , 1 ) for _ in range (size )]
271255 if mutation_probability is None :
272- mutation_probability = 10.0 / size
256+ mutation_probability = 10. / size
273257 return num_features , num_hidden , weights , mutation_probability
274258
275259 @staticmethod
276- def mutate_weights (
277- weights , num_features , num_hidden , mutation_probability , mutation_distance
278- ):
260+ def mutate_weights (weights , num_features , num_hidden , mutation_probability ,
261+ mutation_distance ):
279262 size = num_weights (num_features , num_hidden )
280263 randoms = random .random (size )
281264 for i , r in enumerate (randoms ):
@@ -286,12 +269,8 @@ def mutate_weights(
286269
287270 def mutate (self ):
288271 weights = self .mutate_weights (
289- self .weights ,
290- self .num_features ,
291- self .num_hidden ,
292- self .mutation_probability ,
293- self .mutation_distance ,
294- )
272+ self .weights , self .num_features , self .num_hidden ,
273+ self .mutation_probability , self .mutation_distance )
295274 return self .create_new (weights = weights )
296275
297276 def crossover (self , other ):
@@ -319,8 +298,9 @@ class EvolvedANN(ANN):
319298 def __init__ (self ) -> None :
320299 num_features , num_hidden , weights = nn_weights ["Evolved ANN" ]
321300 super ().__init__ (
322- num_features = num_features , num_hidden = num_hidden , weights = weights
323- )
301+ num_features = num_features ,
302+ num_hidden = num_hidden ,
303+ weights = weights )
324304
325305
326306class EvolvedANN5 (ANN ):
@@ -341,8 +321,9 @@ class EvolvedANN5(ANN):
341321 def __init__ (self ) -> None :
342322 num_features , num_hidden , weights = nn_weights ["Evolved ANN 5" ]
343323 super ().__init__ (
344- num_features = num_features , num_hidden = num_hidden , weights = weights
345- )
324+ num_features = num_features ,
325+ num_hidden = num_hidden ,
326+ weights = weights )
346327
347328
348329class EvolvedANNNoise05 (ANN ):
@@ -363,5 +344,7 @@ class EvolvedANNNoise05(ANN):
363344 def __init__ (self ) -> None :
364345 num_features , num_hidden , weights = nn_weights ["Evolved ANN 5 Noise 05" ]
365346 super ().__init__ (
366- num_features = num_features , num_hidden = num_hidden , weights = weights
367- )
347+ num_features = num_features ,
348+ num_hidden = num_hidden ,
349+ weights = weights )
350+
0 commit comments