def move_towards(self, other, beta, alpha):
        """Move firefly towards another given beta and alpha values"""
        self.position += beta * (other.position - self.position)
        self.position += alpha * (np.random.uniform(-0.5, 0.5, len(self.position)))
        self.position = np.minimum(self.position, [b[1] for b in self.bounds])
        self.position = np.maximum(self.position, [b[0] for b in self.bounds])
Move firefly towards another given beta and alpha values