Пример #1
0
def risorsa(env, name, tipoRisorsa, risorse):
    arrive = env.now
    printLog(_dateTest, '%7.4f - %s - Sono arrivato in %s' % (arrive, name, tipoRisorsa))

    with risorse[tipoRisorsa][0].request() as req:
        yield req

        wait = env.now - arrive
        appendTempiAttesa(tipoRisorsa, wait)

        printLog(_dateTest, '%7.4f - %s - Ho aspettato %s' % (env.now, name, wait))

        tempoDiServizio = (np.random.exponential(scale=risorse[tipoRisorsa][1], size=None)) if tipoRisorsa != "tagliaCode" else 7.5
        appendmuM(tipoRisorsa, tempoDiServizio)

        yield env.timeout(tempoDiServizio)
        printLog(_dateTest, '%7.4f - %s - Ho finito in %s' % (env.now, name, tipoRisorsa))

        if tipoRisorsa == "tagliaCode":
            if randint(0, 100) < 83:
                upnumeroClientiPensioni()
                c = risorsa(env, name, "sportelloPensioni", risorse)
                env.process(c)
            else:
                upnumeroClientiPacchi()
                c = risorsa(env, name, "sportelloPacchi", risorse)
                env.process(c)
        else:
            upHofinito()
Пример #2
0
def main(env):
    varianzaDelleMedie = 0
    stazionario = finitoIlTest = False
    mediaDelleMedieLista = []
    mediaRighe = []
    finale = []
    p = 0
    r = -1

    while not finitoIlTest:
        env.process(source(env, risorse))
        env.run(until=_tempoMassimoSimulazione * (p + 1))
        p += 1
        matriceTempiAttesaSportelloPensioni.append(getAttesePensioni())
        mediaRighe = calcolaMediaRighe(matriceTempiAttesaSportelloPensioni)
        if p > 1:
            varianzaDelleMedie = calcolaVarianzaPensioni(mediaRighe)
            mediaDelleMedie = calcolaMedia(mediaRighe)
            if stazionario:
                finale.append(mediaDelleMedie)
                r += 1
            else:
                mediaDelleMedieLista.append(mediaDelleMedie)
        if p > 100 and checkStazio(mediaDelleMedieLista):
            stazionario = True
        if r == 100:
            finitoIlTest = True
    # test(mediaDelleMedieLista)
    printLog(_dateTest, "numClienti: " + str(getNumClientiTot()))
    printLog(_dateTest, "tempo arrivo medio: " + str(getLambda()) + " \tTeorico: 103")
    printLog(_dateTest, "tempo servizio medio: " + str(getMediamuM()[0]) + " \tTeorico: 172")
    printLog(_dateTest, "Numero rho maggiori di 1: " + str(roMaggiori))
    printLog(_dateTest, str(varianzaDelleMedie))
    print("numClienti: " + str(getNumClientiTot()))
    print("tempo arrivo medio: " + str(getLambda()) + " \tTeorico: 103")
    print("tempo servizio medio: " + str(getMediamuM()[0]) + " \tTeorico: 172")
    print("Numero rho maggiori di 1: " + str(roMaggiori))
    print("Media tempo di attesa: ", calcolaMedia(mediaDelleMedieLista))
    valida(mediaDelleMedieLista, finale)
Пример #3
0
def valida(data1, data2):
    a = np.array(data1)

    perDieci = np.percentile(a, 10)
    perNovanta = np.percentile(a, 90)

    giusti = 0
    for x in data2:
        if x >= perDieci and x <= perNovanta:
            giusti += 1

    printLog(_dateTest, "Percentile 10%: " + str(perDieci))
    printLog(_dateTest, "Percentile 90%: " + str(perNovanta))
    printLog(_dateTest, str((float(giusti)*100)/len(data2)))
    print("Percentile 10%: " + str(perDieci))
    print("Percentile 90%: " + str(perNovanta))
    print("Percentuale nel range: " + str(int((float(giusti)*100)/len(data2))) + "%  ", end='')
    if giusti >= 90:
        print("OK!")
    else:
        print("\n")
Пример #4
0
            finitoIlTest = True
    # test(mediaDelleMedieLista)
    printLog(_dateTest, "numClienti: " + str(getNumClientiTot()))
    printLog(_dateTest, "tempo arrivo medio: " + str(getLambda()) + " \tTeorico: 103")
    printLog(_dateTest, "tempo servizio medio: " + str(getMediamuM()[0]) + " \tTeorico: 172")
    printLog(_dateTest, "Numero rho maggiori di 1: " + str(roMaggiori))
    printLog(_dateTest, str(varianzaDelleMedie))
    print("numClienti: " + str(getNumClientiTot()))
    print("tempo arrivo medio: " + str(getLambda()) + " \tTeorico: 103")
    print("tempo servizio medio: " + str(getMediamuM()[0]) + " \tTeorico: 172")
    print("Numero rho maggiori di 1: " + str(roMaggiori))
    print("Media tempo di attesa: ", calcolaMedia(mediaDelleMedieLista))
    valida(mediaDelleMedieLista, finale)


printLog(_dateTest, "--------SIMULAZIONE POSTE " + _dateTest + "---------")
printLog(_dateTest, "_numeroServentiSportelloPensioni = " + str(_numeroServentiSportelloPensioni))
printLog(_dateTest, "_numeroServentiSportelloPacchi = " + str(_numeroServentiSportelloPacchi))
printLog(_dateTest, "_tempoServizioTagliaCode = " + str(_tempoServizioTagliaCode))
printLog(_dateTest, "_tempoServizioSportelloPensioni = " + str(_tempoServizioSportelloPensioni))
printLog(_dateTest, "_tempoServizioSportelloPacchi = " + str(_tempoServizioSportelloPacchi))
printLog(_dateTest, "_lambdaPArrivi = " + str(_lambdaPArrivi))
printLog(_dateTest, "_tempoMassimoSimulazione = " + str(_tempoMassimoSimulazione))
printLog(_dateTest, "---------------------------------------------------")
print("--------SIMULAZIONE POSTE " + _dateTest + "---------")
print("_numeroServentiSportelloPensioni = " + str(_numeroServentiSportelloPensioni))
print("_numeroServentiSportelloPacchi = " + str(_numeroServentiSportelloPacchi))
print("_tempoServizioTagliaCode = " + str(_tempoServizioTagliaCode))
print("_tempoServizioSportelloPensioni = " + str(_tempoServizioSportelloPensioni))
print("_tempoServizioSportelloPacchi = " + str(_tempoServizioSportelloPacchi))
print("_lambdaPArrivi = " + str(_lambdaPArrivi))