| @@ 243-257 (lines=15) @@ | ||
| 240 | """ |
|
| 241 | return self.Mapping(x + self.rand(task.D) * self.normal(1, 1, task.D), task) |
|
| 242 | ||
| 243 | def Mapping(self, x, task): |
|
| 244 | r"""Fix value to bounds.. |
|
| 245 | ||
| 246 | Args: |
|
| 247 | x (numpy.ndarray): Individual to fix. |
|
| 248 | task (Task): Optimization task. |
|
| 249 | ||
| 250 | Returns: |
|
| 251 | numpy.ndarray: Individual in search range. |
|
| 252 | """ |
|
| 253 | ir = where(x > task.Upper) |
|
| 254 | x[ir] = task.Lower[ir] + x[ir] % task.bRange[ir] |
|
| 255 | ir = where(x < task.Lower) |
|
| 256 | x[ir] = task.Lower[ir] + x[ir] % task.bRange[ir] |
|
| 257 | return x |
|
| 258 | ||
| 259 | def R(self, x, FW): |
|
| 260 | r"""Calculate ranges. |
|
| @@ 92-106 (lines=15) @@ | ||
| 89 | self.p, self.beta = p, beta |
|
| 90 | self.S = zeros((NP, 10)) |
|
| 91 | ||
| 92 | def repair(self, x, task): |
|
| 93 | r"""Repair solution to search space. |
|
| 94 | ||
| 95 | Args: |
|
| 96 | x (numpy.ndarray): Solution to fix. |
|
| 97 | task (Task): Optimization task. |
|
| 98 | ||
| 99 | Returns: |
|
| 100 | numpy.ndarray: fixed solution. |
|
| 101 | """ |
|
| 102 | ir = where(x > task.Upper) |
|
| 103 | x[ir] = task.Lower[ir] + x[ir] % task.bRange[ir] |
|
| 104 | ir = where(x < task.Lower) |
|
| 105 | x[ir] = task.Lower[ir] + x[ir] % task.bRange[ir] |
|
| 106 | return x |
|
| 107 | ||
| 108 | def levy(self, D): |
|
| 109 | r"""Levy function. |
|