class_docstr: Class that implements within a Markov chain the strategy for location
  acceptance and local search decision making.
  
  Parameters
  ----------
  acceptance_param : float
      Parameter for acceptance distribution. It is used to control the
      probability of acceptance. The lower the acceptance parameter, the
      smaller the probability of acceptance. Default value is -5.0 with
      a range (-1e4, -5].
  visit_dist : VisitingDistribution
      Instance of `VisitingDistribution` class.
  func_wrapper : ObjectiveFunWrapper
      Instance of `ObjectiveFunWrapper` class.
  minimizer_wrapper: LocalSearchWrapper
      Instance of `LocalSearchWrapper` class.
  rand_state : RandomState object
      A numpy.random.RandomState object for using the current state of the
      created random generator container.
  energy_state: EnergyState
      Instance of `EnergyState` class.
class_docstr_tok: ["Class","that","implements","within","a","Markov","chain","the","strategy","for","location","acceptance","and","local","search","decision","making",".","Parameters","--","--","--","--","--","acceptance_param",":","float","Parameter","for","acceptance","distribution",".","It","is","used","to","control","the","probability","of","acceptance",".","The","lower","the","acceptance","parameter",",","the","smaller","the","probability","of","acceptance",".","Default","value","is","-5.0","with","a","range","(","-1e4",",","-5","]",".","visit_dist",":","VisitingDistribution","Instance","of","`","VisitingDistribution","`","class",".","func_wrapper",":","ObjectiveFunWrapper","Instance","of","`","ObjectiveFunWrapper","`","class",".","minimizer_wrapper",":","LocalSearchWrapper","Instance","of","`","LocalSearchWrapper","`","class",".","rand_state",":","RandomState","object","A","numpy.random.RandomState","object","for","using","the","current","state","of","the","created","random","generator","container",".","energy_state",":","EnergyState","Instance","of","`","EnergyState","`","class","."]
code: def __init__(
      self,
      acceptance_param,
      visit_dist,
      func_wrapper,
      minimizer_wrapper,
      rand_state,
      energy_state,
  ):
      # Local strategy chain minimum energy and location
      self.emin = energy_state.current_energy
      self.xmin = np.array(energy_state.current_location)
      # Global optimizer state
      self.energy_state = energy_state
      # Acceptance parameter
      self.acceptance_param = acceptance_param
      # Visiting distribution instance
      self.visit_dist = visit_dist
      # Wrapper to objective function
      self.func_wrapper = func_wrapper
      # Wrapper to the local minimizer
      self.minimizer_wrapper = minimizer_wrapper
      self.not_improved_idx = 0
      self.not_improved_max_idx = 1000
      self._rand_state = rand_state
      self.temperature_step = 0
      self.K = 100 * len(energy_state.current_location)
  
imports: from __future__ import division, print_function, absolute_import
  import numpy
  from scipy.optimize import OptimizeResult
  from scipy.optimize import minimize
  from scipy.special import gammaln
  from scipy._lib._util import check_random_state
label_desc: Use image node_id 1 to create a new StrategyChain object from inherited base classes: object with example: obj = StrategyChain(acceptance_param, visit_dist, func_wrapper, minimizer_wrapper, rand_state, energy_state)