def smartGetFristNGroups(self, lists, noGroups=2): """ Metoda zwraca członków noGroups wyznaczonych grup, zaczynając od najmniej licznej. Jeżeli zwrócone węzły stanowią mniej niż 10% populacji, metoda zwraca członków noGroups+1 grup. @param lists: lista list węzłów podzielonych na grupy @param noGroups: liczba grup, których członkowie będą zwróceni @rtype: list @return: lista członków kilki najmniej licznych grup, stanowiących powyżej 10% populacji """ lists.sort(key=len) retList = [] for i in xrange(min(noGroups, len(lists))): retList.extend(lists[i]) while len(retList)/len(self.graph) < 0.1: # if this still lower then 10% of population, get more groups i += 1 try: retList.extend(lists[i]) except: logger.error("To byłą ostatani grupa! Zwrócono %f procent." % (len(retList)/len(self.graph))) return retList
def invertWeight(edge): try: edge[2]['weight'] = int(100/edge[2]['weight']) except: edge[2]['weight'] = float('Inf') logger.error("Błąd przy wyliczaniu wagi krawędzi, ustawiono nieskończoność!!")