| @@ 72-124 (lines=53) @@ | ||
| 69 | # TODO implemnt algorithm |
|
| 70 | return pop, fpop, xb, fxb, dparams |
|
| 71 | ||
| 72 | class StrategyAdaptationDifferentialEvolutionV1(DifferentialEvolution): |
|
| 73 | r"""Implementation of Differential Evolution Algorithm With Strategy Adaptation algorihtm. |
|
| 74 | ||
| 75 | Algorithm: |
|
| 76 | Differential Evolution Algorithm With StrategyAdaptation |
|
| 77 | ||
| 78 | Date: |
|
| 79 | 2019 |
|
| 80 | ||
| 81 | Author: |
|
| 82 | Klemen Berkovič |
|
| 83 | ||
| 84 | License: |
|
| 85 | MIT |
|
| 86 | ||
| 87 | Reference URL: |
|
| 88 | https://ieeexplore.ieee.org/document/4632146 |
|
| 89 | ||
| 90 | Reference paper: |
|
| 91 | Qin, A. Kai, Vicky Ling Huang, and Ponnuthurai N. Suganthan. "Differential evolution algorithm with strategy adaptation for global numerical optimization." IEEE transactions on Evolutionary Computation 13.2 (2009): 398-417. |
|
| 92 | ||
| 93 | Attributes: |
|
| 94 | Name (List[str]): List of strings representing algorithm name. |
|
| 95 | ||
| 96 | See Also: |
|
| 97 | :class:`NiaPy.algorithms.basic.DifferentialEvolution` |
|
| 98 | """ |
|
| 99 | Name = ['StrategyAdaptationDifferentialEvolutionV1', 'SADEV1', 'SaDEV1'] |
|
| 100 | ||
| 101 | @staticmethod |
|
| 102 | def algorithmInfo(): |
|
| 103 | r"""Get basic information about the algorithm. |
|
| 104 | ||
| 105 | Returns: |
|
| 106 | str: Basic information. |
|
| 107 | ||
| 108 | See Also: |
|
| 109 | :func:`NiaPy.algorithms.algorithm.Algorithm.algorithmInfo` |
|
| 110 | """ |
|
| 111 | return r"""Qin, A. Kai, Vicky Ling Huang, and Ponnuthurai N. Suganthan. "Differential evolution algorithm with strategy adaptation for global numerical optimization." IEEE transactions on Evolutionary Computation 13.2 (2009): 398-417.""" |
|
| 112 | ||
| 113 | def setParameters(self, **kwargs): |
|
| 114 | DifferentialEvolution.setParameters(self, **kwargs) |
|
| 115 | # TODO add parameters of the algorithm |
|
| 116 | ||
| 117 | def getParameters(self): |
|
| 118 | d = DifferentialEvolution.getParameters(self) |
|
| 119 | # TODO add paramters values |
|
| 120 | return d |
|
| 121 | ||
| 122 | def runIteration(self, task, pop, fpop, xb, fxb, **dparams): |
|
| 123 | # TODO implement algorithm |
|
| 124 | return pop, fpop, xb, fxb, dparams |
|
| 125 | ||
| 126 | # vim: tabstop=3 noexpandtab shiftwidth=3 softtabstop=3 |
|
| 127 | ||
| @@ 18-70 (lines=53) @@ | ||
| 15 | 'StrategyAdaptationDifferentialEvolutionV1' |
|
| 16 | ] |
|
| 17 | ||
| 18 | class StrategyAdaptationDifferentialEvolution(DifferentialEvolution): |
|
| 19 | r"""Implementation of Differential Evolution Algorithm With Strategy Adaptation algorihtm. |
|
| 20 | ||
| 21 | Algorithm: |
|
| 22 | Differential Evolution Algorithm With StrategyAdaptation |
|
| 23 | ||
| 24 | Date: |
|
| 25 | 2019 |
|
| 26 | ||
| 27 | Author: |
|
| 28 | Klemen Berkovič |
|
| 29 | ||
| 30 | License: |
|
| 31 | MIT |
|
| 32 | ||
| 33 | Reference URL: |
|
| 34 | https://ieeexplore.ieee.org/document/1554904 |
|
| 35 | ||
| 36 | Reference paper: |
|
| 37 | Qin, A. Kai, and Ponnuthurai N. Suganthan. "Self-adaptive differential evolution algorithm for numerical optimization." 2005 IEEE congress on evolutionary computation. Vol. 2. IEEE, 2005. |
|
| 38 | ||
| 39 | Attributes: |
|
| 40 | Name (List[str]): List of strings representing algorithm name. |
|
| 41 | ||
| 42 | See Also: |
|
| 43 | :class:`NiaPy.algorithms.basic.DifferentialEvolution` |
|
| 44 | """ |
|
| 45 | Name = ['StrategyAdaptationDifferentialEvolution', 'SADE', 'SaDE'] |
|
| 46 | ||
| 47 | @staticmethod |
|
| 48 | def algorithmInfo(): |
|
| 49 | r"""Get basic information about the algorithm. |
|
| 50 | ||
| 51 | Returns: |
|
| 52 | str: Basic information. |
|
| 53 | ||
| 54 | See Also: |
|
| 55 | :func:`NiaPy.algorithms.algorithm.Algorithm.algorithmInfo` |
|
| 56 | """ |
|
| 57 | return r"""Qin, A. Kai, and Ponnuthurai N. Suganthan. "Self-adaptive differential evolution algorithm for numerical optimization." 2005 IEEE congress on evolutionary computation. Vol. 2. IEEE, 2005.""" |
|
| 58 | ||
| 59 | def setParameters(self, **kwargs): |
|
| 60 | DifferentialEvolution.setParameters(self, **kwargs) |
|
| 61 | # TODO add parameters of the algorithm |
|
| 62 | ||
| 63 | def getParameters(self): |
|
| 64 | d = DifferentialEvolution.getParameters(self) |
|
| 65 | # TODO add paramters values |
|
| 66 | return d |
|
| 67 | ||
| 68 | def runIteration(self, task, pop, fpop, xb, fxb, **dparams): |
|
| 69 | # TODO implemnt algorithm |
|
| 70 | return pop, fpop, xb, fxb, dparams |
|
| 71 | ||
| 72 | class StrategyAdaptationDifferentialEvolutionV1(DifferentialEvolution): |
|
| 73 | r"""Implementation of Differential Evolution Algorithm With Strategy Adaptation algorihtm. |
|
| @@ 56-108 (lines=53) @@ | ||
| 53 | x = [pop[ic][i] + f * (ppop[rp[0]][i] - pop[ic][i]) + f * (pop[r[0]][i] - apop[ra[0]][i]) if rnd.rand() < cr or i == j else pop[ic][i] for i in range(len(pop[ic]))] |
|
| 54 | return asarray(x) |
|
| 55 | ||
| 56 | class AdaptiveArchiveDifferentialEvolution(DifferentialEvolution): |
|
| 57 | r"""Implementation of Adaptive Differential Evolution With Optional External Archive algorithm. |
|
| 58 | ||
| 59 | Algorithm: |
|
| 60 | Adaptive Differential Evolution With Optional External Archive |
|
| 61 | ||
| 62 | Date: |
|
| 63 | 2019 |
|
| 64 | ||
| 65 | Author: |
|
| 66 | Klemen Berkovič |
|
| 67 | ||
| 68 | License: |
|
| 69 | MIT |
|
| 70 | ||
| 71 | Reference URL: |
|
| 72 | https://ieeexplore.ieee.org/document/5208221 |
|
| 73 | ||
| 74 | Reference paper: |
|
| 75 | Zhang, Jingqiao, and Arthur C. Sanderson. "JADE: adaptive differential evolution with optional external archive." IEEE Transactions on evolutionary computation 13.5 (2009): 945-958. |
|
| 76 | ||
| 77 | Attributes: |
|
| 78 | Name (List[str]): List of strings representing algorithm name. |
|
| 79 | ||
| 80 | See Also: |
|
| 81 | :class:`NiaPy.algorithms.basic.DifferentialEvolution` |
|
| 82 | """ |
|
| 83 | Name = ['AdaptiveArchiveDifferentialEvolution', 'JADE'] |
|
| 84 | ||
| 85 | @staticmethod |
|
| 86 | def algorithmInfo(): |
|
| 87 | r"""Get algorithm information. |
|
| 88 | ||
| 89 | Returns: |
|
| 90 | str: Alogrithm information. |
|
| 91 | ||
| 92 | See Also: |
|
| 93 | :func:`NiaPy.algorithms.algorithm.Algorithm.algorithmInfo` |
|
| 94 | """ |
|
| 95 | return r"""Zhang, Jingqiao, and Arthur C. Sanderson. "JADE: adaptive differential evolution with optional external archive." IEEE Transactions on evolutionary computation 13.5 (2009): 945-958.""" |
|
| 96 | ||
| 97 | def setParameters(self, **kwargs): |
|
| 98 | DifferentialEvolution.setParameters(self, **kwargs) |
|
| 99 | # TODO add parameters of the algorithm |
|
| 100 | ||
| 101 | def getParameters(self): |
|
| 102 | d = DifferentialEvolution.getParameters(self) |
|
| 103 | # TODO add paramters values |
|
| 104 | return d |
|
| 105 | ||
| 106 | def runIteration(self, task, pop, fpop, xb, fxb, **dparams): |
|
| 107 | # TODO Implement algorithm |
|
| 108 | return pop, fpop, xb, fxb, dparams |
|
| 109 | ||
| 110 | # vim: tabstop=3 noexpandtab shiftwidth=3 softtabstop=3 |
|
| 111 | ||