我们从Python开源项目中,提取了以下27个代码示例,用于说明如何使用numpy.Infinity()。
def prim(self): ''' Returns Prim's minimum spanninng tree ''' big_f = set([]) costs = np.empty((self.n), dtype=object) costs[:] = np.max(self.costs) + 1 big_e = np.empty((self.n), dtype=object) big_q = set(range(self.n)) tree_edges = np.array([], dtype=object) while len(big_q) > 0: v = np.argmin(costs) big_q.remove(v) costs[v] = np.Infinity big_f.add(v) if big_e[v] is not None: tree_edges = np.append(tree_edges, None) tree_edges[-1] = (big_e[v], v) for i, w in zip(range(len(self.FSs[v])), self.FSs[v]): if w in big_q and self.FS_costs[v][i] < costs[w]: costs[w] = self.FS_costs[v][i] big_e[w] = v return tree_edges
def fitness(self, x, limit=np.Infinity): """ Wraps the fitness-function of the actual problem, whose results are logged if the fitness is an improvement. """ # Calculate fitness of the actual problem. new_fitness = self.problem.fitness(x=x, limit=limit) # If log is desired. if self.capacity > 0: # If the new fitness is an improvement over the worst-known fitness in the log. if new_fitness < self.solutions[-1].fitness: # Update the worst solution in the log with the new solution. self.solutions[-1] = _LogElement(x=x, fitness=new_fitness) # Sort the logged solutions. self.solutions = sorted(self.solutions, key=lambda solution: solution.fitness) return new_fitness ########################################################################
def fitness(self, x, limit=np.Infinity): """ This is the fitness function that must be implemented for an optimization problem. It is also sometimes called the cost- or error-function. :param x: Calculate the fitness value for these parameters in the search-space. :param limit: Calculation of the fitness can be aborted if the value is greater than this limit. This is used for so-called Pre-Emptive Fitness Evaluation in the MetaFitness-class. You can ignore this value. :return: Fitness-value of x. """ # Raise an exception if the child-class has not implemented this function. raise NotImplementedError ########################################################################
def get_k(df, groupby, unknown=None): """ Return the k-anonymity level of a df, grouped by the specified columns. :param df: The dataframe to get k from :param groupby: The columns to group by :type df: pandas.DataFrame :type groupby: Array :return: k-anonymity :rtype: int """ df = _remove_unknown(df, groupby, unknown) size_group = df.groupby(groupby).size() if len(size_group) == 0: return np.Infinity return min(size_group)
def sample_cut(lX, uX, birth_time): rate = np.sum(uX - lX) if rate > 0: E = np.random.exponential(scale=1.0/rate) cut_time = birth_time + E dim = sample_discrete(uX - lX) loc = lX[dim] + (uX[dim] - lX[dim]) * np.random.rand() return cut_time, dim, loc else: return np.Infinity, None, None # FOURIER FEATURES
def bellman_ford(self, source): ''' Returns Labels-algorithm's shortest paths from source to all other nodes, if the (directed) graph doesn't contains cycles ''' if self.oriented is False: print 'cannot apply bellman_ford, graph is not oriented' return dist = np.array([np.Infinity for x in range(self.n)], dtype=np.float32) pred = np.empty((self.n), dtype=np.int) pred[source] = source dist[source] = 0 for i in np.arange(1, self.n): for e in range(len(self.edges)): if dist[self.edges[e][0]] + self.costs[e] < dist[self.edges[e][1]]: dist[self.edges[e][1]] = dist[ self.edges[e][0]] + self.costs[e] pred[self.edges[e][1]] = self.edges[e][0] for e in range(len(self.edges)): if dist[self.edges[e][1]] > dist[self.edges[e][0]] + self.costs[e]: print 'Error, Graph contains a negative-weight cycle' break edges = np.array([], dtype=object) for v in range(len(pred)): edges = np.append(edges, None) edges[-1] = [pred[v], v] return edges # , prev, dist
def floyd_warshall(self, source): ''' Returns floyd_warshall's shortest paths from source to all other nodes, if the (directed) graph doesn't contains negative cycles ''' print '''warning! apply this algorithm only if constricted, it takes\\ O(n^3)!''' print 'O(n^3) = O(', self.n**3, ')' dist = np.empty((self.n, self.n), dtype=np.float32) pred = np.zeros((self.n, self.n), dtype=np.int) dist.fill(np.Infinity) for v in range(self.n): dist[v][v] = .0 for e in range(len(self.edges)): u = self.edges[e][0] v = self.edges[e][1] dist[u][v] = self.costs[e] pred[u][v] = v for h in range(1, self.n): for i in range(1, self.n): for j in range(self.n): if dist[i][h] + dist[h][j] < dist[i][j]: dist[i][j] = dist[i][h] + dist[h][j] pred[i][j] = pred[h][j] for i in range(1, self.n): if dist[i][i] < 0: print 'Error! found negative cycle, thus the problem is inferiorly unlinmited' return edges = np.array([], dtype=object) for v in range(len(pred)): edges = np.append(edges, None) edges[-1] = [pred[source][v], v] return edges # , prev, dist
def predict(self, user, loc): """Predict the probability about user will checkin in loc. prob = Pr[l|Li] = IIPr[l, li] (li in Li) see: Exploiting Geographical Influence for Collaborative Point-of-Interest Recommendation """ if user in self._cache: if loc not in self._cache[user]: return 0.0 return self._cache[user][loc] self._cache[user] = {} max_y = -np.Infinity for l in xrange(self.num_items): if l in self.checkins[user]: continue y = 0.0 for li in self.checkins[user]: d = distance(self.locations[l], self.locations[li]) / 1000.0 y += np.log(self.prob(d)) if y > max_y: max_y = y self._cache[user][l] = y for l, y in self._cache[user].items(): self._cache[user][l] = math.e ** (y - max_y) if loc not in self._cache[user]: return 0.0 return self._cache[user][loc]
def __init__(self, x=None, fitness=np.Infinity): """ Create object instance. :param x: Position in the search-space aka. candidate solution. :param fitness: Associated fitness of the position in the search-space. :return: Object instance. """ # Copy arguments to instance variables. self.x = x self.fitness = fitness ########################################################################
def fitness(self, x, limit=np.Infinity): return np.sum(x ** 2)
def fitness(self, x, limit=np.Infinity): return np.sum(100.0 * (x[1:] - x[:-1] ** 2) ** 2 + (1.0 - x[:-1]) ** 2)
def fitness(self, x, limit=np.Infinity): return np.sum(x ** 2 + 10.0 - 10.0 * np.cos(2 * np.pi * x))
def fitness(self, x, limit=np.Infinity): return np.sum([np.sum(x[:i])**2 for i in range(self.dim)])
def fitness(self, x, limit=np.Infinity): return np.max(np.abs(x))
def fitness(self, x, limit=np.Infinity): absx = np.abs(x) fitness = np.sum(absx) + np.prod(absx) # For large dim, np.prod(absx) often overflows to infinity. # This means the optimizers cannot work properly. # So we limit the fitness to 1e20. if fitness == np.Infinity or fitness > 1e20: fitness = 1e20 return fitness
def fitness(self, x, limit=np.Infinity): return np.sum(np.floor(x + 0.5) ** 2)
def fitness(self, x, limit=np.Infinity): value = np.e + 20.0 - 20.0 * np.exp(-0.2 * np.sqrt(np.sum(x ** 2) / self.dim)) \ - np.exp(np.sum(np.cos(2 * np.pi * x)) / self.dim) # Due to rounding errors, the value is sometimes slightly negative. # This gives a warning in the MetaFitness-class. if value < 0.0: value = 0.0 return value
def fitness(self, x, limit=np.Infinity): # Split the calculation into smaller formulas. y = 1.0 + (x + 1.0) / 4.0 a = 10.0 * np.sin(np.pi * y[0]) ** 2 b = np.sum(((y[:-1] - 1.0) ** 2) * (1.0 + 10.0 * (np.sin(np.pi * y[1:]) ** 2))) c = (y[-1] - 1.0) ** 2 # Penalty term. penalty = _penalty(x, 10.0, 100.0, 4.0) return np.pi * (a + b + c) / self.dim + penalty
def fitness(self, x, limit=np.Infinity): # Split the calculation into smaller formulas. a = np.sin(3 * np.pi * x[0]) ** 2 b = np.sum(((x[:-1] - 1.0) ** 2) * (1.0 + np.sin(3 * np.pi * x[1:]) ** 2)) c = (x[-1] - 1.0) ** 2 * (1.0 + np.sin(2 * np.pi * x[-1])**2) # Penalty term. penalty = _penalty(x, 5.0, 100.0, 4.0) return 0.1 * (a + b + c) / self.dim + penalty ######################################################################## # List of all of the above classes for benchmark problems.
def sphere_func(x, limit=np.Infinity): return np.sum(x*x) ########################################################################
def mu_fullsum_func( mu, node_vec, eventmemes, etimes, T, gamma, alpha, omega, W, beta, kernel_evaluate, K_evaluate, ): ''' ''' # return -evaluate_nonapproximated_loglikelihood_wordsbyusers(node_vec, eventmemes, etimes, # T, mu, gamma, alpha, omega, W, beta, # kernel_evaluate, K_evaluate) ll = 0 ## alpha_summedrows=np.sum(alpha, axis=1) for (eventidx, (infected_u, eventmeme, etime1)) in \ enumerate(izip(node_vec, eventmemes, etimes)): # ll+=gamma[eventmeme]*mu[infected_u] ll += event_nonapproximated_logintensity( # etimes, node_vec, eventmemes, infected_u, eventmeme, etime1, T, etimes[:eventidx], node_vec[:eventidx], eventmemes[:eventidx], mu, gamma, omega, alpha, kernel_evaluate, ) ## ll-=alpha_summedrows[int(infected_u)]*K_evaluate(etime1, T, omega) ## if -ll==np.Infinity: ## event_nonapproximated_logintensity(infected_u, eventmeme, etime1, T, etimes[:eventidx], node_vec[:eventidx], ## eventmemes[:eventidx], mu, gamma, omega, alpha, kernel_evaluate) ll -= T * np.sum(np.outer(mu, gamma)) return -ll # =====
def event_approximated_logintensity( infected_u, eventmeme, etime1, T, etimes, node_vec, eventmemes, mu, gamma, omega, alpha, kernel_evaluate, print_summed_elements=False, ): components = [] added_component = False ll = 0 if mu[int(infected_u)] * gamma[int(eventmeme)] > 0: ll += np.log(mu[int(infected_u)] * gamma[int(eventmeme)]) components.append(np.log(mu[int(infected_u)] * gamma[int(eventmeme)])) added_component = True for (eventidx, (etime2, node2, eventmeme2)) in \ enumerate(izip(etimes, node_vec, eventmemes)): if etime2 < etime1: if eventmeme2 == eventmeme: intensity_val = alpha[int(node2), int(infected_u)] \ * kernel_evaluate(etime1, etime2, omega) if intensity_val > 0: ll += np.log(intensity_val) components.append(np.log(intensity_val)) added_component = True # If there are other components then 0, we can ignore zeros; however, # if there are no components whatsoever, then we get minus infinity if not added_component: ll = -np.Infinity if print_summed_elements: print '\t\t\t\t\t\t\t\t\t\t\t[event_approximated_logintensity] intensity=' \ + '+ '.join(map(lambda x: '%10.6f' % x, components)) return ll
def evaluate_loglikelihood_nowords( node_vec, eventmemes, etimes, T, mu, gamma, alpha, omega, kernel_evaluate, K_evaluate, event_logintensity_func, ): ll = 0 alpha_summedrows = np.sum(alpha, axis=1) for (eventidx, (infected_u, eventmeme, etime1)) in \ enumerate(izip(node_vec, eventmemes, etimes)): ll += event_logintensity_func( infected_u, eventmeme, etime1, T, etimes[:eventidx], node_vec[:eventidx], eventmemes[:eventidx], mu, gamma, omega, alpha, kernel_evaluate, ) ll -= alpha_summedrows[int(infected_u)] * K_evaluate(etime1, T, omega) if -ll == np.Infinity: event_logintensity_func( infected_u, eventmeme, etime1, T, etimes[:eventidx], node_vec[:eventidx], eventmemes[:eventidx], mu, gamma, omega, alpha, kernel_evaluate, ) ll -= T * np.sum(np.outer(mu, gamma)) return ll # TODO: need to write a test for this!
def alpha_fullsum_func( alpha, node_vec, eventmemes, etimes, T, mu, gamma, omega, W, beta, kernel_evaluate, K_evaluate, ): ''' ''' # res=0 # for alphaij_sub in alphaij: # alpha[indexes[0]][indexes[1]]=alphaij_sub # res=evaluate_nonapproximated_loglikelihood_wordsbyusers(node_vec, eventmemes, etimes, # T, mu, gamma, alpha, omega, W, beta, # kernel_evaluate, K_evaluate) ll = 0 alpha_summedrows = np.sum(alpha, axis=1) for (eventidx, (infected_u, eventmeme, etime1)) in \ enumerate(izip(node_vec, eventmemes, etimes)): ll += event_nonapproximated_logintensity( infected_u, eventmeme, etime1, T, etimes[:eventidx], node_vec[:eventidx], eventmemes[:eventidx], mu, gamma, omega, alpha, kernel_evaluate, ) ll -= alpha_summedrows[int(infected_u)] * K_evaluate(etime1, T, omega) # if -ll==np.Infinity: # event_nonapproximated_logintensity(infected_u, eventmeme, etime1, T, # etimes[:eventidx], node_vec[:eventidx], eventmemes[:eventidx], # mu, gamma, omega, alpha, kernel_evaluate) # # ll-=T*np.sum(np.outer(mu, gamma)) return -ll # =====