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 nesting phase using the current number of crows.
  
  Args:
      space: Space containing agents and update-related information.
      n_crows: Number of crows.
docstr_tok: ["Performs","the","nesting","phase","using","the","current","number","of","crows",".","Args",":","space",":","Space","containing","agents","and","update-related","information",".","n_crows",":","Number","of","crows","."]
code: def _nesting_phase(self, space: Space, n_crows: int):
      """Performs the nesting phase using the current number of crows.
  
      Args:
          space: Space containing agents and update-related information.
          n_crows: Number of crows.
  
      """
  
      crows = space.agents[:n_crows]
      for i, crow in enumerate(crows):
          idx = r.generate_integer_random_number(
              high=space.n_agents, exclude_value=i
          )
  
          # Calculates the step from Lévy distribution (eq. 7)
          step = d.generate_levy_distribution(size=crow.n_variables)
          step = np.expand_dims(step, axis=1)
  
          # Updates the crow's position and clips its bounds (eq. 6 and 8)
          crow.position = (
              0.01 * step * (space.agents[idx].position - crow.position)
          )
          crow.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 6 for calling the PPA obj's underlying member method code with example usage: obj._nesting_phase(space, n_crows) without return types