| @@ 146-161 (lines=16) @@ | ||
| 143 | ||
| 144 | return BeesPosition, BeesCost, {'ngh': self.ngh} |
|
| 145 | ||
| 146 | def repair(self, x, lower, upper): |
|
| 147 | r"""Truncate exceeded dimensions to the limits. |
|
| 148 | ||
| 149 | Args: |
|
| 150 | x (numpy.ndarray): Individual to repair. |
|
| 151 | lower (numpy.ndarray): Lower limits for dimensions. |
|
| 152 | upper (numpy.ndarray): Upper limits for dimensions. |
|
| 153 | ||
| 154 | Returns: |
|
| 155 | numpy.ndarray: Repaired individual. |
|
| 156 | """ |
|
| 157 | ir = where(x < lower) |
|
| 158 | x[ir] = lower[ir] |
|
| 159 | ir = where(x > upper) |
|
| 160 | x[ir] = upper[ir] |
|
| 161 | return x |
|
| 162 | ||
| 163 | def runIteration(self, task, BeesPosition, BeesCost, xb, fxb, ngh, **dparams): |
|
| 164 | r"""Core function of Forest Optimization Algorithm. |
|
| @@ 89-104 (lines=16) @@ | ||
| 86 | if ukwargs: |
|
| 87 | logger.info('Unused arguments: %s' % (ukwargs)) |
|
| 88 | ||
| 89 | def repair(self, x, lower, upper): |
|
| 90 | r"""Truncate exceeded dimensions to the limits. |
|
| 91 | ||
| 92 | Args: |
|
| 93 | x (numpy.ndarray): Individual to repair. |
|
| 94 | lower (numpy.ndarray): Lower limits for dimensions. |
|
| 95 | upper (numpy.ndarray): Upper limits for dimensions. |
|
| 96 | ||
| 97 | Returns: |
|
| 98 | numpy.ndarray: Repaired individual. |
|
| 99 | """ |
|
| 100 | ir = where(x < lower) |
|
| 101 | x[ir] = lower[ir] |
|
| 102 | ir = where(x > upper) |
|
| 103 | x[ir] = upper[ir] |
|
| 104 | return x |
|
| 105 | ||
| 106 | def levy(self, step_size, D): |
|
| 107 | r"""Calculate levy flight. |
|