1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- """Mono-objective evaluators classes for continuous problem
- """
- # main imports
- from macop.evaluators.base import Evaluator
- class ZdtEvaluator(Evaluator):
- """Generic Zdt evaluator class which enables to compute custom Zdt function for continuous problem
- - stores into its `_data` dictionary attritute required measures when computing a knapsack solution
- - `_data['f']` stores lambda Zdt function
- - `compute` method enables to compute and associate a score to a given knapsack solution
- Example:
- >>> import random
- >>>
- >>> # binary solution import
- >>> from macop.solutions.continuous import ContinuousSolution
- >>>
- >>> # evaluator import
- >>> from macop.evaluators.continuous.mono import ZdtEvaluator
- >>> solution_data = [2, 3, 4, 1, 2, 3, 3]
- >>> size = len(solution_data)
- >>> solution = ContinuousSolution(solution_data, size)
- >>>
- >>> # evaluator initialization (Shere function)
- >>> f_sphere = lambda s: sum([ x * x for x in s.data])
- >>> evaluator = ZdtEvaluator(data={'f': f_sphere})
- >>>
- >>> # compute solution score
- >>> evaluator.compute(solution)
- 45
- """
- def compute(self, solution):
- """Apply the computation of fitness from solution
- Args:
- solution: {:class:`~macop.solutions.base.Solution`} -- Solution instance
-
- Returns:
- {float}: fitness score of solution
- """
- return self._data['f'](solution)
|