mainExample.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # main imports
  2. import logging
  3. # module imports
  4. from macop.algorithms.IteratedLocalSearch import IteratedLocalSearch as ILS
  5. from macop.solutions.BinarySolution import BinarySolution
  6. from macop.evaluators.EvaluatorExample import evaluatorExample
  7. from macop.operators.mutators.SimpleMutation import SimpleMutation
  8. from macop.operators.mutators.SimpleBinaryMutation import SimpleBinaryMutation
  9. from macop.operators.crossovers.SimpleCrossover import SimpleCrossover
  10. from macop.operators.crossovers.RandomSplitCrossover import RandomSplitCrossover
  11. from macop.operators.policies.RandomPolicy import RandomPolicy
  12. from macop.checkpoints.BasicCheckpoint import BasicCheckpoint
  13. # logging configuration
  14. logging.basicConfig(format='%(asctime)s %(message)s', filename='example.log', level=logging.DEBUG)
  15. # default validator
  16. def validator(solution):
  17. return True
  18. # define init random solution
  19. def init():
  20. return BinarySolution([], 30).random(validator)
  21. filepath = "checkpoints.csv"
  22. def main():
  23. operators = [SimpleBinaryMutation(), SimpleMutation(), SimpleCrossover(), RandomSplitCrossover()]
  24. policy = RandomPolicy(operators)
  25. algo = ILS(init, evaluatorExample, operators, policy, validator, True)
  26. algo.addCheckpoint(_class=BasicCheckpoint, _every=5, _filepath=filepath)
  27. bestSol = algo.run(425)
  28. print("Found ", bestSol)
  29. if __name__ == "__main__":
  30. main()