class_docstr: A DOA class, inherited from Optimizer.
  
  This is the designed class to define DOA-related
  variables and methods.
  
  References:
      F. Demir et al. A survival classification method for hepatocellular carcinoma patients
      with chaotic Darcy optimization method based feature selection.
      Medical Hypotheses (2020).
class_docstr_tok: ["A","DOA","class",",","inherited","from","Optimizer",".","This","is","the","designed","class","to","define","DOA-related","variables","and","methods",".","References",":","F.","Demir","et","al",".","A","survival","classification","method","for","hepatocellular","carcinoma","patients","with","chaotic","Darcy","optimization","method","based","feature","selection",".","Medical","Hypotheses","(","2020",")","."]
docstr: Wraps Darcy Optimization Algorithm over all agents and variables.
  
  Args:
      space: Space containing agents and update-related information.
docstr_tok: ["Wraps","Darcy","Optimization","Algorithm","over","all","agents","and","variables",".","Args",":","space",":","Space","containing","agents","and","update-related","information","."]
code: def update(self, space: Space) -> None:
      """Wraps Darcy Optimization Algorithm over all agents and variables.
  
      Args:
          space: Space containing agents and update-related information.
  
      """
  
      for i, agent in enumerate(space.agents):
          for j, (lb, ub) in enumerate(zip(agent.lb, agent.ub)):
              c_map = self._calculate_chaotic_map(lb, ub)
  
              # Updates the agent's position (eq. 6)
              agent.position[j] += (
                  (
                      2
                      * (
                          space.best_agent.position[j]
                          - agent.position[j]
                      )
                      / (c_map - self.chaotic_map[i][j])
                  )
                  * (ub - lb)
                  / len(space.agents)
              )
  
              self.chaotic_map[i][j] = c_map
  
              if (agent.position[j] < lb) or (agent.position[j] > ub):
                  # If yes, replace its value with the proposed equation (eq. 7)
                  agent.position[j] = (
                      space.best_agent.position[j] * c_map
                  )
  
file_path: opytimizer/opytimizer/optimizers/misc/doa.py
imports: from typing import Any, Dict, Optional
  import numpy
  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 DOA obj's underlying member method code with example usage: obj.update(space) without return types