| @@ 93-108 (lines=16) @@ | ||
| 90 | self.C1, self.C2, self.w, self.vMin, self.vMax = C1, C2, w, vMin, vMax |
|
| 91 | if ukwargs: logger.info('Unused arguments: %s' % (ukwargs)) |
|
| 92 | ||
| 93 | def repair(self, x, l, u): |
|
| 94 | r"""Repair array to range. |
|
| 95 | ||
| 96 | Args: |
|
| 97 | x (numpy.ndarray): Array to repair. |
|
| 98 | l (numpy.ndarray): Lower limit of allowed range. |
|
| 99 | u (numpy.ndarray): Upper limit of allowed range. |
|
| 100 | ||
| 101 | Returns: |
|
| 102 | numpy.ndarray: Repaired array. |
|
| 103 | """ |
|
| 104 | ir = where(x < l) |
|
| 105 | x[ir] = l[ir] |
|
| 106 | ir = where(x > u) |
|
| 107 | x[ir] = u[ir] |
|
| 108 | return x |
|
| 109 | ||
| 110 | def init(self, task): |
|
| 111 | r"""Initialize dynamic arguments of Particle Swarm Optimization algorithm. |
|
| @@ 81-96 (lines=16) @@ | ||
| 78 | d['velocities'] = self.uniform(-self.vMax, self.vMax, [len(pop), task.D]) |
|
| 79 | return pop, fpop, d |
|
| 80 | ||
| 81 | def repair(self, x, l, u): |
|
| 82 | r"""Repair array to range. |
|
| 83 | ||
| 84 | Args: |
|
| 85 | x (numpy.ndarray): Array to repair. |
|
| 86 | l (numpy.ndarray): Lower limit of allowed range. |
|
| 87 | u (numpy.ndarray): Upper limit of allowed range. |
|
| 88 | ||
| 89 | Returns: |
|
| 90 | numpy.ndarray: Repaired array. |
|
| 91 | """ |
|
| 92 | ir = np.where(x < l) |
|
| 93 | x[ir] = l[ir] |
|
| 94 | ir = np.where(x > u) |
|
| 95 | x[ir] = u[ir] |
|
| 96 | return x |
|
| 97 | ||
| 98 | def randomSeekTrace(self): |
|
| 99 | r"""Set cats into seeking/tracing mode. |
|