class_docstr: A PPA class, inherited from Optimizer.
  
  This is the designed class to define PPA-related
  variables and methods.
  
  References:
      A. Mohamed et al. Parasitism – Predation algorithm (PPA): A novel approach for feature selection.
      Ain Shams Engineering Journal (2020).
class_docstr_tok: ["A","PPA","class",",","inherited","from","Optimizer",".","This","is","the","designed","class","to","define","PPA-related","variables","and","methods",".","References",":","A.","Mohamed","et","al",".","Parasitism","\u2013","Predation","algorithm","(","PPA",")",":","A","novel","approach","for","feature","selection",".","Ain","Shams","Engineering","Journal","(","2020",")","."]
docstr: Performs the predation phase using the current number of cats.
  
  Args:
      space: Space containing agents and update-related information.
      n_crows: Number of crows.
      n_cuckoos: Number of cuckoos.
      n_cats: Number of cats.
      iteration: Current iteration.
      n_iterations: Maximum number of iterations.
docstr_tok: ["Performs","the","predation","phase","using","the","current","number","of","cats",".","Args",":","space",":","Space","containing","agents","and","update-related","information",".","n_crows",":","Number","of","crows",".","n_cuckoos",":","Number","of","cuckoos",".","n_cats",":","Number","of","cats",".","iteration",":","Current","iteration",".","n_iterations",":","Maximum","number","of","iterations","."]
code: def _predation_phase(
      self,
      space: Space,
      n_crows: int,
      n_cuckoos: int,
      n_cats: int,
      iteration: int,
      n_iterations: int,
  ) -> None:
      """Performs the predation phase using the current number of cats.
  
      Args:
          space: Space containing agents and update-related information.
          n_crows: Number of crows.
          n_cuckoos: Number of cuckoos.
          n_cats: Number of cats.
          iteration: Current iteration.
          n_iterations: Maximum number of iterations.
  
      """
  
      constant = 2 - iteration / n_iterations
  
      cats = space.agents[n_crows + n_cuckoos :]
      for i, cat in enumerate(cats):
          idx = space.n_agents - n_cats + i
  
          # Updates the cat's velocity (eq. 13)
          r1 = r.generate_uniform_random_number()
          self.velocity[idx] += (
              r1 * constant * (space.best_agent.position - cat.position)
          )
  
          # Updates the cat's position and clips its limits (eq. 14)
          cat.position += self.velocity[idx]
          cat.clip_by_bound()
  
imports: from typing import Any, Dict, Optional, Tuple
  import numpy
  import opytimizer.math.distribution
  import opytimizer.math.general
  import opytimizer.math.random
  import opytimizer.utils.exception
  from opytimizer.core import Optimizer
  from opytimizer.core.space import Space
  from opytimizer.utils import logging
label_desc: Use image node_id 8 for calling the PPA obj's underlying member method code with example usage: obj._predation_phase(space, n_crows, n_cuckoos, n_cats, iteration, n_iterations) without return types