class_docstr: An Agent class for all optimization techniques.
class_docstr_tok: ["An","Agent","class","for","all","optimization","techniques","."]
docstr: Initialization method.
  
  Args:
      n_variables: Number of decision variables.
      n_dimensions: Number of dimensions.
      lower_bound: Minimum possible values.
      upper_bound: Maximum possible values.
      mapping: String-based identifiers for mapping variables' names.
docstr_tok: ["Initialization","method",".","Args",":","n_variables",":","Number","of","decision","variables",".","n_dimensions",":","Number","of","dimensions",".","lower_bound",":","Minimum","possible","values",".","upper_bound",":","Maximum","possible","values",".","mapping",":","String-based","identifiers","for","mapping","variables","'","names","."]
code: def __init__(
      self,
      n_variables: int,
      n_dimensions: int,
      lower_bound: List[Union[int, float]],
      upper_bound: List[Union[int, float]],
      mapping: Optional[List[str]] = None,
  ) -> None:
      """Initialization method.
  
      Args:
          n_variables: Number of decision variables.
          n_dimensions: Number of dimensions.
          lower_bound: Minimum possible values.
          upper_bound: Maximum possible values.
          mapping: String-based identifiers for mapping variables' names.
  
      """
  
      self.n_variables = n_variables
      self.n_dimensions = n_dimensions
  
      self.position = np.zeros((n_variables, n_dimensions))
      self.fit = c.FLOAT_MAX
  
      self.lb = np.asarray(lower_bound)
      self.ub = np.asarray(upper_bound)
  
      self.mapping = mapping
  
      self.ts = int(time.time())
  
imports: import time
  from typing import Dict, List, Optional, Union
  import numpy
  import opytimizer.math.random
  import opytimizer.utils.constant
  import opytimizer.utils.exception
  from opytimizer.utils import logging
label_desc: Use image node_id 1 to create a new Agent object  with example: obj = Agent(n_variables, n_dimensions, lower_bound, upper_bound, mapping)