def create_domain(parameters): """ Create domain object based on the bounds and kernel type. """ list_of_domains = [] euclidean_bounds = [] integral_bounds = [] discrete_bounds = [] for param in parameters: bounds = [param['min'], param['max']] if param['type'] == 'float' and param['kernel'] == '': euclidean_bounds.append(bounds) elif param['type'] == 'float' and param['kernel'] != '': list_of_domains.append(domains.EuclideanDomain([bounds])) elif param['type'] == 'int' and param['kernel'] == '': integral_bounds.append(bounds) elif param['type'] == 'int' and param['kernel'] != '': list_of_domains.append(domains.IntegralDomain([bounds])) elif param['type'] == 'discrete' and param['kernel'] == '': discrete_bounds.append(bounds) elif param['type'] == 'discrete' and param['kernel'] != '': list_of_domains.append(domains.DiscreteDomain([bounds])) if len(euclidean_bounds) != 0: list_of_domains.append(domains.EuclideanDomain(euclidean_bounds)) if len(integral_bounds) != 0: list_of_domains.append(domains.IntegralDomain(integral_bounds)) if len(discrete_bounds) != 0: list_of_domains.append(domains.DiscreteDomain(discrete_bounds)) if len(list_of_domains) == 1: return list_of_domains[0] domain = domains.CartesianProductDomain(list_of_domains) return domain
def _child_set_up(self): """ Child set up. """ self.domain_obj = domains.IntegralDomain([[0, 10], [-10, 100], [45, 78.4]]) self.points = [[9, 56, 78], [5, 0, 68], [0, -1, 70]] self.non_points = [[11, 0, 67], [5.6, 11, 58], [4, 3.0, 70], [9, 56, 67, 9]]
def __init__(self, n, p): """ Constructor. """ super(Binomial, self).__init__() self.n = n self.p = float(p) self.dim = 1 self.domain = domains.IntegralDomain(np.array([0, self.n]))
def __init__(self, lower, upper): """ Constructor. """ super(DiscreteUniform, self).__init__() self.lower = np.floor(lower) self.upper = np.floor(upper) self.dim = 1 self.domain = domains.IntegralDomain(np.array([self.lower, self.upper]))
def __init__(self, categories, p): """ Constructor """ super(Categorical, self).__init__() self.cat = list(categories) self.k = len(categories) self.p = np.array(p) self.dim = 1 self.domain = domains.IntegralDomain(np.array([1, self.k]))
def _child_set_up(self): """ Child set up. """ list_of_domains = [ domains.EuclideanDomain([[0, 2.3], [3.4, 8.9], [0.12, 1.0]]), domains.IntegralDomain([[0, 10], [-10, 100], [45, 78.4]]), domains.ProdDiscreteDomain([['abc', 5, 6.5], [None, float]]), domains.DiscreteDomain(['abc', 5, 6.5, int, 'k']), ] self.domain_obj = domains.CartesianProductDomain(list_of_domains) self.points = [ [[2.2, 3.6, 0.99], [5, 0, 68], ('abc', float), int], [[1.2, 6.4, 0.2], [0, -1, 70], [6.5, None], 'k'], [[0.2, 7.9, 0.5], [0, -1, 69], ['abc', None], 5], ] self.non_points = [ [[2.2, 3.6, 0.99], [5, 0, 68], ('abc', float), float], [[1.2, 6.4, 2.2], [0, -1, 70], [6.5, None], 'k'], [[0.2, 7.9, 0.5], [0, -1, 69], ['abc', None, float], 5], [[3.2, 7.9, 0.5], [-20, -1, 69], ['abc', None, float], 5], long, [[2.2, 3.6, 0.99], [5, 0, 68], ('abc', float), int, (3.2, 8.5)], ]
def __init__(self, p): """ Constructor. """ super(Bernoulli, self).__init__() self.p = float(p) self.dim = 1 self.domain = domains.IntegralDomain(np.array([0, 1]))