Exemple #1
0
    condition = True
    while (condition):
        # initialize again parameters
        partitionArray = tempPartitionArray.copy()
        for i in range(0, partitionSize):
            dict[i] = 0
        part = []
        indexer = []
        # create partition buckets
        for i in range(0, partitionSize):
            p = []
            for z in range(0, len(partitionArray)):
                id = Handler.partitionRandom(adjecencyMatrix, indexer, partitionSize)
                indexer.append(id)
                if (Handler.edgeConectivity(adjecencyMatrix, part, id) == 0):
                    part.append(p)
                    dict[i] = pickMatrix[id][id]
                    part[i].append(id)
                    break
                else:
                    indexer.pop()
        tempPartitionSize = 0
        while (len(partitionArray) != len(indexer)):
            cont = 0
            for k in range(0, len(partitionArray)):
                if (k in indexer):
                    continue
                max, id = 0, -1
                # dictionary upper bound
                dicUpper = 0
    # choose the partition to merge begin
    part = []
    indexer = []
    for i in range(0, partitionSize):
        p = []
        if i == 0:
            part.append(p)
            id = Handler.partitionRandom(partitionArray, indexer)
            part[i].append(partitionArray[id])
            del partitionArray[id]
        else:
            indexer = []
            for z in range(0, len(partitionArray)):
                id = Handler.partitionRandom(partitionArray, indexer)
                indexer.append(id)
                if (Handler.edgeConectivity(G, part, partitionArray[id],
                                            data) == 0):
                    part.append(p)
                    part[i].append(partitionArray[id])
                    del partitionArray[id]
                    break
    tempPartitionSize = 0
    while (len(partitionArray) != 0):
        cont = 0
        for k in partitionArray:
            max, id = 0, -1
            #dictionary upper bound
            dicUpper = 0
            for v in range(0, partitionSize):
                dicUpper += dict[v]

            dicUpper = dicUpper / partitionSize