RandomPolicy.py 628 B

123456789101112131415161718192021222324
  1. # main imports
  2. import random
  3. # module imports
  4. from ..Operator import Operator
  5. from .Policy import Policy
  6. class RandomPolicy(Policy):
  7. def apply(self, solution, secondSolution=None):
  8. # choose operator randomly
  9. index = random.randint(0, len(self.operators) - 1)
  10. operator = self.operators[index]
  11. # check kind of operator
  12. if operator.kind == Operator.CROSSOVER:
  13. return operator.apply(solution, secondSolution)
  14. if operator.kind == Operator.MUTATOR:
  15. return operator.apply(solution)
  16. # by default
  17. return operator.apply(solution)