class_docstr: An UMDA class, inherited from Optimizer.
  
  This is the designed class to define UMDA-related variables and methods.
  
  References:
      H. Mühlenbein. The equation for response to selection and its use for prediction.
      Evolutionary Computation (1997).
class_docstr_tok: ["An","UMDA","class",",","inherited","from","Optimizer",".","This","is","the","designed","class","to","define","UMDA-related","variables","and","methods",".","References",":","H.","M\u00fchlenbein",".","The","equation","for","response","to","selection","and","its","use","for","prediction",".","Evolutionary","Computation","(","1997",")","."]
docstr: Samples new positions according to their probability of ocurrence (eq. 53).
  
  Args:
      probs: Array of probabilities.
  
  Returns:
      (np.ndarray): New sampled position.
docstr_tok: ["Samples","new","positions","according","to","their","probability","of","ocurrence","(","eq",".","53",")",".","Args",":","probs",":","Array","of","probabilities",".","Returns",":","(","np.ndarray",")",":","New","sampled","position","."]
code: def _sample_position(self, probs: np.ndarray) -> np.ndarray:
      """Samples new positions according to their probability of ocurrence (eq. 53).
  
      Args:
          probs: Array of probabilities.
  
      Returns:
          (np.ndarray): New sampled position.
  
      """
  
      r1 = r.generate_uniform_random_number(
          size=(probs.shape[0], probs.shape[1])
      )
  
      new_position = np.where(probs < r1, True, False)
  
      return new_position
  
imports: from typing import Any, Dict, List, Optional
  import numpy
  import opytimizer.math.random
  import opytimizer.utils.exception
  from opytimizer.core import Optimizer
  from opytimizer.core.agent import Agent
  from opytimizer.core.space import Space
  from opytimizer.utils import logging
label_desc: Use image node_id 9 for calling the UMDA obj's underlying member method code with example usage: obj._sample_position(probs) and returns: new_position