Exemple #1
0
def main(argv):
    n = 100
    e = 0.001
    iterations = 800000
    robots = 0
    neighbors = 4
    neighborIterations = 30
    try:
        opts, args = getopt.getopt(argv, "n:r:i:e:p:")
    except getopt.GetoptError:
        print(
            'test.py -n <neighbors> -r <robots> -i <iterations> -e <epsilon> -p population'
        )
        sys.exit(2)
    for opt, arg in opts:
        if opt == "-n":
            neighbors = int(arg)
        elif opt == "-r":
            robots = int(arg)
        elif opt == "-i":
            neighborIterations = int(arg)
        elif opt == "-e":
            e = float(arg)
        elif opt == "-p":
            n = int(arg)
            iterations = 8000000
    pm = 0
    qm = 0
    varp = [0, 0]
    varq = [0, 0]
    for i in range(neighborIterations):
        print(
            str(n) + "," + str(robots) + "," + str(neighbors) + "," + str(e) +
            "->" + str(i))
        population = Population(n, e)
        for i in range(robots):
            population.addRobot(random.random(), random.random())
        population.createNetworkRing(neighbors)
        t = one_run(population, iterations, neighborIterations)
        pm += t[0][0]
        qm += t[1][0]
        varp[0] += t[0][1]
        varp[1] += t[0][2]
        varq[0] += t[1][1]
        varq[1] += t[1][2]
    varp[0] /= neighborIterations
    varp[1] /= neighborIterations
    varq[0] /= neighborIterations
    varq[1] /= neighborIterations
    pm /= neighborIterations
    qm /= neighborIterations
    nomeFicheiro = 'ring_run_' + str(n) + '_population_' + str(
        robots) + "_robots_" + str(neighbors) + "_neighbors_" + str(
            e) + "_epsilon"
    f = open(nomeFicheiro, 'w')
    conteudo = str(pm) + " " + str(qm) + " " + str(varp[0]) + " " + str(
        varp[1]) + " " + str(varq[0]) + " " + str(varq[1])
    f.write(conteudo)
    f.close()
    print(
        str(n) + "," + str(robots) + "," + str(neighbors) + "," + str(e) +
        " acabou")