Code Duplication    Length = 18-19 lines in 2 locations

NiaPy/algorithms/basic/pso.py 2 locations

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