mainExample.py 1.5 KB

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