def filoSfilacciato(elem, son):
    g = mkGraph(elem, "rand", son)
    listaMedi = mostNodes(g)
    if (debug):
        print("Nodi medi per piu' volte:")
        for elem in listaMedi:
            print("\tNodo {} medio per {} volte.".format(elem[0].id, elem[1]))
def frattale(elem, son):
    g = mkGraph(elem, "fractal", son)
    listaMedi = mostNodes(g)
    if (debug):
        print("Nodi medi per piu' volte:")
        for elem in listaMedi:
            print("\tNodo {} medio per {} volte.".format(elem[0].id, elem[1]))
Example #3
0
    if (debug): print("conta dei percorsi tra:{}".format(sonLevel))
    path = 0
    allNode = 0

    # per ogni ramo conto il numero di nodi presenti in sonLevel; dunque ottengo il numero totale di nodi a quel livello
    for branch in sonLevel:
        if (debug): print("\tramo:{}".format(branch))
        allNode += len(branch)

    if (debug): print("\tnodi totali presenti:{}".format(allNode))

    # applico la formula per calcolare i cammini possibili al livello sonLevel
    for branch in sonLevel:
        if (debug): print("\tramo:{}".format(branch))
        path += len(branch) * (allNode - len(branch))
        allNode -= len(branch)
    if (debug): print("\tpercorsi contati:{}".format(path))

    return path


if __name__ == '__main__':
    if (debug):
        print("funzione per trovare quante volte il nodo n è medio in G")
    i = mkGraph(5000, "rand", 10)
    listNode = i.getNodes()
    i.print()
    print(
        "il nodo '{}' è medio {} volte di un percorsi minimi nel grafo".format(
            listNode[0].id, medNode(i, listNode[0])))
Example #4
0
def main():
    cmd = sys.argv
    if (len(cmd) == 1):
        helpPrint()
        exit(-1)
    if (cmd[1] == "h" or cmd[1] == "help"):
        helpPrint()
        exit(-1)
    elif (cmd[1] == "rand"):
        if (len(cmd) < 5):
            print(
                "!!!!ERROR!!! correct sintax for Random is:\n<Modalità><OutputPrint 1/0><nElem><nMaxSon>"
            )
            exit(-1)
        g = mkGraph(int(cmd[3]), "rand")
    elif (cmd[1] == "fractal"):
        if (len(cmd) < 5):
            print(
                "!!!!ERROR!!! correct sintax for fractal is:\n<Modalità><OutputPrint 1/0><nElem><d-son>"
            )
            print("\nLa corretta sintassi è:")
            helpPrint()
            exit(-1)
        g = mkGraph(int(cmd[3]), "fractal", int(cmd[4]))
    elif (cmd[1] == "star"):
        if (len(cmd) < 4):
            print(
                "!!!!ERROR!!! correct sintax for Star is:\n<Modalità><OutputPrint 1/0><nElem>"
            )
            exit(-1)
        g = mkGraph(int(cmd[3]), "star")
    elif (cmd[1] == "linear"):
        if (len(cmd) < 4):
            print(
                "!!!!ERROR!!! correct sintax for Linear is:\n<Modalità><OutputPrint 1/0><nElem>"
            )
            exit(-1)
        g = mkGraph(int(cmd[3]), "linear")
    elif (cmd[1] == "sfilacciatoRand"):
        if (len(cmd) < 4):
            print(
                "!!!!ERROR!!! correct sintax for sfilacciatoRand is:\n<Modalità><OutputPrint 1/0><nElem>"
            )
            exit(-1)
        g = mkGraph(int(cmd[3]), "sfilacciatoRand", int(cmd[4]))
    elif (cmd[1] == "sfilacciato"):
        if (len(cmd) < 4):
            print(
                "!!!!ERROR!!! correct sintax for sfilacciato is:\n<Modalità><OutputPrint 1/0><nElem>"
            )
            exit(-1)
        g = mkGraph(int(cmd[3]), "sfilacciato", int(cmd[4]))
    elif (cmd[1] == "asterisco"):
        if (len(cmd) < 4):
            print(
                "!!!!ERROR!!! correct sintax for asterisk is:\n<Modalità><OutputPrint 1/0><nElem>"
            )
            exit(-1)
        g = mkGraph(int(cmd[3]), "asterisco", int(cmd[4]))
    else:
        print("SINTASSI IRRICONOSCIBILE RICEVUTO:\n\t{}".format(cmd[1:]))
        helpPrint()
        exit(-1)

    t = time.time()
    listaMedi = mostNodes(g)
    elapsed = time.time() - t
    if (bool(int(cmd[2]))):
        print("Nella forma {} i nodi medi di più percorsi sono:".format(
            cmd[1]))
        for elem in listaMedi:
            print("\tNodo {} medio per {} volte.".format(elem[0].id, elem[1]))
        print("\n\n\tIl grafo su cui è stato eseguito il codice è:")
        g.print()
    del g
    print("{},{}".format(int(cmd[3]), elapsed))  #output per creare grafici
Example #5
0
            if (debug): print("dentro if per nodo {}".format(node.id))
            continue
        else:
            if (debug): print("dentro else per nodo {}".format(node.id))
            med = medNode(grafo, node)
            maxMed = findBetterNode(med, node, maxMed)
    return maxMed

def findBetterNode(numMed, node, savedNode):
    """
    salva nodo e quante volte è medio solo se è maggiore o uguale di quello attuale
    :param numMed:
    :return:
    """
    if (type(savedNode[0][0]) == None or savedNode[0][1] < numMed):
        savedNode = [[node, numMed]]
    elif savedNode[0][1] == numMed:
        savedNode.append([node, numMed])
    return savedNode


if __name__ == '__main__':
    g = mkGraph(2000, "rand", 500)

    listaNodi = mostNodes(g)

    print("Nodo/i medi per piu' volte:\n")

    for elem in listaNodi:
        print("Nodo {} medio per {} volte.\n".format(elem[0].id, elem[1]))