Parcourir la source

Merge branch 'release/v0.0.4'

Jérôme BUISINE il y a 4 ans
Parent
commit
90b0c2b521
4 fichiers modifiés avec 14 ajouts et 8 suppressions
  1. 4 4
      mainExample.py
  2. 7 2
      solutions/BinarySolution.py
  3. 1 1
      solutions/Solution.py
  4. 2 1
      updators/mutators/SimpleMutation.py

+ 4 - 4
mainExample.py

@@ -10,14 +10,14 @@ from evaluators.EvaluatorExample import evaluatorExample
 from updators.mutators.SimpleMutation import SimpleMutation, SimpleBinaryMutation
 from updators.policies.RandomPolicy import RandomPolicy
 
-# define init random solution
-def init():
-    return BinarySolution([], 30).random()
-
 # default validator
 def validator(solution):
     return True
 
+# define init random solution
+def init():
+    return BinarySolution([], 30).random(validator)
+
 def main():
 
     updators = [SimpleBinaryMutation, SimpleMutation]

+ 7 - 2
solutions/BinarySolution.py

@@ -20,11 +20,16 @@ class BinarySolution(Solution):
         self.size = _size
 
 
-    def random(self):
+    def random(self, _validator):
         """
         Intialize binary array using size solution data
+
+        Use of validator to generate valid random solution
         """
-        self.data = np.random.randint(2, size=self.size)
+
+        while not self.isValid(_validator):
+            self.data = np.random.randint(2, size=self.size)
+
         return self
 
 

+ 1 - 1
solutions/Solution.py

@@ -41,7 +41,7 @@ class Solution():
         return self.score
 
 
-    def random(self):
+    def random(self, _validator):
         """
         Initialize solution using random data
         """

+ 2 - 1
updators/mutators/SimpleMutation.py

@@ -3,7 +3,8 @@ import random
 import sys
 
 # module imports
-from ...solutions import *
+from ...solutions.BinarySolution import BinarySolution
+from ...solutions.Solution import Solution
 
 def SimpleBinaryMutation(solution):
     size = solution.size