123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- Description
- =====================================
- .. image:: _static/logo_macop.png
- :width: 350 px
- :align: center
- Context
- ------------
- Minimalist And Customizable Optimization Package
- Installation
- ------------
- Just install package using `pip` Python package manager:
- .. code:: bash
-
- pip install macop
- How to use ?
- ------------
- Load all `macop` implemented features:
- .. code:: python
-
- from macop.algorithms.IteratedLocalSearch import IteratedLocalSearch as ILS
- from macop.solutions.BinarySolution import BinarySolution
- from macop.evaluators.EvaluatorExample import evaluatorExample
- from macop.operators.mutators.SimpleMutation import SimpleMutation
- from macop.operators.mutators.SimpleBinaryMutation import SimpleBinaryMutation
- from macop.operators.crossovers.SimpleCrossover import SimpleCrossover
- from macop.operators.crossovers.RandomSplitCrossover import RandomSplitCrossover
- from macop.operators.policies.RandomPolicy import RandomPolicy
- from macop.checkpoints.BasicCheckpoint import BasicCheckpoint
- # logging configuration
- logging.basicConfig(format='%(asctime)s %(message)s', filename='example.log', level=logging.DEBUG)
- # default validator
- def validator(solution):
- return True
- # define init random solution
- def init():
- return BinarySolution([], 30).random(validator)
- filepath = "checkpoints.csv"
- def main():
- operators = [SimpleBinaryMutation(), SimpleMutation(), SimpleCrossover(), RandomSplitCrossover()]
- policy = RandomPolicy(operators)
- algo = ILS(init, evaluatorExample, operators, policy, validator, True)
- algo.addCheckpoint(_class=BasicCheckpoint, _every=5, _filepath=filepath)
- bestSol = algo.run(425)
- print("Found ", bestSol)
- if __name__ == "__main__":
- main()
|