Esempio n. 1
0
    if (newTime - lastTime > tiempoDeMuestreo):

        # Chequeo si tengo que cambiar de episodio
        if muestrasPorEpisodio == muestrasTomadas:
            episodio = episodio + 1
            muestrasTomadas = 0

            if episodio == 8:
                Experiment.Finalizar()
                sys.exit(0)

            # Reinicio sistema
            pygame.quit()
            Experiment.Inicializar(False, True)

            # Levanto nueva Q
            Q = NetworkReader.readFrom(archivoQ + str(episodio) + ".xml")

        muestrasTomadas = muestrasTomadas + 1
        estado = Experiment.GetEstado()

        if episodio == 0:  # Episodio 0 - Random
            accion = ActionFunctions.GetSiguienteAccionRandom(estado)
        else:
            accion = ActionFunctions.GetSiguienteAccionGreedy(estado, Q)

        Experiment.EjecutarAccion(accion)

        lastTime = newTime
Esempio n. 2
0
        # Inicializo el sistema con el que trabajo
        Experiment.Inicializar(True, True)
        muestrasTomadas = 0

        # El primer episodio toma mas muestras, corre NFQ mas veces y arranca desde arriba
        if (episodio == 0):
            Experiment.setAnguloInicial(0.01)
            NFQIteration._epochs = epochsNFQ_Episodio0
            muestrasTotales = muestrasEpisodio0
        else:
            NFQIteration._epochs = epochsNFQ
            muestrasTotales = muestrasPorEpisodio

        # Estado y acciones iniciales
        estado = Experiment.GetEstado()
        accion = ActionFunctions.GetSiguienteAccionEpsilonGreedy(estado, nfq.Q)
        lastTime = time.time()
        Experiment.EjecutarAccion(accion)

        # Itero hasta obtener una determinada cantidad de muestras
        while muestrasTomadas < muestrasTotales:

            # Chequeo que haya pasado el tiempo necesario para
            # tomar la siguiente muestra

            newTime = time.time()

            if newTime - lastTime > tiempoDeMuestreo:

                # Leo el estado del sistema