Пример #1
0
    def update(self, particle, w, c1, c2):
        for i in range(len(self.position)):
            val = w * self._velocity[i] + c1 * random() * Setup.xor(
                self._bestGlobal[i], self.position[i]) + c2 * random(
                ) * Setup.xor(particle.position[i], particle.bestPersonal[i])
            self._velocity[i] = val

        for i in range(len(self._velocity)):
            if random() < Setup.sigmoid(self._velocity[i]).real:
                self.position[i] = particle.position[i]