mainExample.py 1.4 KB

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