class_docstr: Latin hypercube sampling
  
  Parameters
  ----------
  lhs_type : str, default='classic'
      - 'classic' - a small random number is added
      - 'centered' - points are set uniformly in each interval
  
  criterion : str or None, default='maximin'
      When set to None, the LHS is not optimized
  
      - 'correlation' : optimized LHS by minimizing the correlation
      - 'maximin' : optimized LHS by maximizing the minimal pdist
      - 'ratio' : optimized LHS by minimizing the ratio
        `max(pdist) / min(pdist)`
  
  iterations : int
      Defines the number of iterations for optimizing LHS
class_docstr_tok: ["Latin","hypercube","sampling","Parameters","--","--","--","--","--","lhs_type",":","str",",","default='classic'","-","'classic","'","-","a","small","random","number","is","added","-","'centered","'","-","points","are","set","uniformly","in","each","interval","criterion",":","str","or","None",",","default='maximin'","When","set","to","None",",","the","LHS","is","not","optimized","-","'correlation","'",":","optimized","LHS","by","minimizing","the","correlation","-","'maximin","'",":","optimized","LHS","by","maximizing","the","minimal","pdist","-","'ratio","'",":","optimized","LHS","by","minimizing","the","ratio","`","max","(","pdist",")","\/","min","(","pdist",")","`","iterations",":","int","Defines","the","number","of","iterations","for","optimizing","LHS"]
code: def _lhs_normalized(self, n_dim, n_samples, random_state):
      rng = check_random_state(random_state)
      x = np.linspace(0, 1, n_samples + 1)
      u = rng.rand(n_samples, n_dim)
      h = np.zeros_like(u)
      if self.lhs_type == "centered":
          for j in range(n_dim):
              h[:, j] = np.diff(x) / 2.0 + x[:n_samples]
      elif self.lhs_type == "classic":
          for j in range(n_dim):
              h[:, j] = u[:, j] * np.diff(x) + x[:n_samples]
      else:
          raise ValueError("Wrong lhs_type. Got ".format(self.lhs_type))
      return _random_permute_matrix(h, random_state=rng)
  
file_path: scikit-optimize/skopt/sampler/lhs.py
imports: import numpy
  from sklearn.utils import check_random_state
  from scipy import spatial
  from ..space import Space, Categorical
  from .base import InitialPointGenerator
label_desc: Use image node_id 3 for calling the Lhs obj's underlying member method code with example usage: obj._lhs_normalized(n_dim, n_samples, random_state) and returns: _random_permute_matrix