Code Duplication    Length = 18-19 lines in 2 locations

NiaPy/algorithms/basic/pso.py 2 locations

@@ 821-839 (lines=19) @@
818
		kwargs.pop('vMin', None), kwargs.pop('vMax', None)
819
		MutatedCenterParticleSwarmOptimization.setParameters(self, vMin=-np.inf, vMax=np.inf, **kwargs)
820
821
	def updateVelocity(self, V, p, pb, gb, w, vMin, vMax, task, **kwargs):
822
		r"""Update particle velocity.
823
824
		Args:
825
			V (numpy.ndarray): Current velocity of particle.
826
			p (numpy.ndarray): Current position of particle.
827
			pb (numpy.ndarray): Personal best position of particle.
828
			gb (numpy.ndarray): Global best position of particle.
829
			w (numpy.ndarray): Weights for velocity adjustment.
830
			vMin (numpy.ndarray): Minimal velocity allowed.
831
			vMax (numpy.ndarray): Maxmimal velocity allowed.
832
			task (Task): Optimization task.
833
			kwargs: Additional arguments.
834
835
		Returns:
836
			numpy.ndarray: Updated velocity of particle.
837
		"""
838
		r3 = self.rand(task.D)
839
		return self.Repair(w * V + self.C1 * self.rand(task.D) * (pb - p) * r3 + self.C2 * self.rand(task.D) * (gb - p) * (1 - r3), vMin, vMax)
840
841
class ComprehensiveLearningParticleSwarmOptimizer(ParticleSwarmAlgorithm):
842
	r"""Implementation of Mutated Particle Swarm Optimization.
@@ 170-187 (lines=18) @@
167
		d.update({'popb': pop.copy(), 'fpopb': fpop.copy()})
168
		return pop, fpop, d
169
170
	def updateVelocity(self, V, p, pb, gb, w, vMin, vMax, task, **kwargs):
171
		r"""Update particle velocity.
172
173
		Args:
174
			V (numpy.ndarray): Current velocity of particle.
175
			p (numpy.ndarray): Current position of particle.
176
			pb (numpy.ndarray): Personal best position of particle.
177
			gb (numpy.ndarray): Global best position of particle.
178
			w (numpy.ndarray): Weights for velocity adjustment.
179
			vMin (numpy.ndarray): Minimal velocity allowed.
180
			vMax (numpy.ndarray): Maximal velocity allowed.
181
			task (Task): Optimization task.
182
			kwargs: Additional arguments.
183
184
		Returns:
185
			numpy.ndarray: Updated velocity of particle.
186
		"""
187
		return self.Repair(w * V + self.C1 * self.rand(task.D) * (pb - p) + self.C2 * self.rand(task.D) * (gb - p), vMin, vMax)
188
189
	def runIteration(self, task, pop, fpop, xb, fxb, popb, fpopb, w, vMin, vMax, V, **dparams):
190
		r"""Core function of Particle Swarm Optimization algorithm.