Exemple #1
0
 def algoritmoReducao(self, colunas, numTotEpocas, numAmostrasCiclo):
     sensor = Sensor(self.ARQUIVO)
     
     for var in colunas:
         saida = []
         erroAc = 0
         medidas = []
         
         variavel = sensor.obterLeitura(var, 0, numTotEpocas-1)
         numIter = int(ceil(float(numTotEpocas)/numAmostrasCiclo))
         erro = 0
         coefGerados = 1
         limSup = limInf = 0
         
         i = 1
         while(i <= numIter):
             limSup = i*numAmostrasCiclo-1
             if(limSup >= numTotEpocas):
                 limSup = (numTotEpocas%numAmostrasCiclo)+limInf-1
                 
             medidas = variavel[limInf:limSup+1]                                                
             informacoes = Estatistica.regSimples(range(limInf+1, limSup+2), medidas, (True))                    
             erro = informacoes[3]
             if(erro <= self.limiar or (limInf == limSup-numAmostrasCiclo+1)):
                 saida[limInf:limSup+1] = informacoes[limInf:limSup+1]
                 print len(saida) 
                 erroAc.append(sum(erro))                    
                 if(erro > self.limiar):                        
                     limInf = i*numAmostrasCiclo
                     coefGerados += 1
                     
                 i += 1
             else:
                 limInf = (i-1)*numAmostrasCiclo
                 coefGerados += 1
             
         DIC = {'variavel': VARIAVEL[var%len(VARIAVEL)], 'media': Estatistica.media(erroAc), 'minimo': Estatistica.minimo(erroAc),
                'maximo': Estatistica.maximo(erroAc), 'Erro-Acumulativo': sum(erroAc), 'pkt-gerados': coefGerados}
         Log.registraLog('cumulativo', FORMAT, DIC)         
Exemple #2
0
 def algoritmoReducao(self, colunas, numTotEpocas, numAmostrasCiclo):
     sensor = Sensor(self.ARQUIVO)
     
     for var in colunas:
         saida = []
         erroAc = []
         medidas = []
         
         variavel = sensor.obterLeitura(var, 0, numTotEpocas-1)
         if(self.remOutlier):
             variavel = Estatistica.removeOutliers(variavel)
         
         numIter = int(ceil(float(numTotEpocas)/numAmostrasCiclo))
         erro = 0
         limSup = limInf = 0
         
         i = 1
         while(i <= numIter):
             limInf = (i-1)*numAmostrasCiclo
             limSup = i*numAmostrasCiclo-1
             if(limSup >= numTotEpocas):
                 limSup = (numTotEpocas%numAmostrasCiclo)+limInf-1
             
             medidas = variavel[limInf:limSup+1]
             
             informacoes = Estatistica.regSimples(range(limInf+1, limSup+2), medidas, True)
             saida = saida.__add__(informacoes[2])
             erro = informacoes[4]
             erroAc.append(erro)
             i += 1 
         
         residuo = Estatistica.erroResidual(variavel, saida);
                     
         DIC = {'variavel': VARIAVEL[var%len(VARIAVEL)], 'media': Estatistica.media(erroAc), 'minimo': Estatistica.minimo(erroAc),
                'maximo': Estatistica.maximo(erroAc), 'eqm': sum(erroAc), 'pkt-gerados': numIter, 'mecanismo': 'Regressao'}
         Log.registraLog(ARQUIVO_SAIDA, FORMAT, DIC)
         
         if(self.plot):
             Estatistica.plotar((range(1, numTotEpocas+1), range(1, numTotEpocas+1)), (variavel, saida), "Filtro Medio", "Epoca", VARIAVEL[var%len(VARIAVEL)], ["Valores Reais", "Valores Preditos"])
         
     return [numIter, saida, variavel, residuo]
Exemple #3
0
 def algoritmoReducao(self, colunas, numLeituras, tamInicialJanelas):
     sensor = Sensor(self.ARQUIVO)
     
     for var in colunas:
         preditos = []
         erroAc = []
         medidasAtuais = []
         erro = 0
         coefGerados = 1        
         flag = fimLeituras = False
         
         leituras = sensor.obterLeitura(var, 0, numLeituras-1)
         fimJanela = tamInicialJanelas-1
         iniJanela = 0
         if(self.remOutlier):
             leituras = Estatistica.removeOutliers(leituras)
 
         while(fimJanela < numLeituras):
             varReg = []
             if((fimJanela-iniJanela+1) == tamInicialJanelas or flag):     
                 varReg = (range(iniJanela+1, fimJanela+2))            
                 medidasAtuais = leituras[iniJanela:fimJanela+1]
                 flag = False
             else:
                 medidasAtuais = [leituras[fimJanela]]
             
             if(not len(varReg)):    
                 varReg.append(fimJanela+1)    
             #fimJanela = (fimJanela, numLeituras)[fimJanela >= numLeituras]                  
             
             informacoes = Estatistica.regSimples(varReg, medidasAtuais, (erro > self.limiar or (fimJanela-iniJanela+1) == tamInicialJanelas))
             erro = informacoes[4]
             #preditos = preditos.__add__(informacoes[2])
             
             if(erro <= self.limiar or ((fimJanela-iniJanela+1)==tamInicialJanelas)):
                 erroAc.append(erro)
                 preditos = preditos.__add__(informacoes[2])
                              
                 if(erro <= self.limiar):
                     fimJanela += 1                    
                 else:
                     coefGerados += 1
                     iniJanela = fimJanela+1
                     fimJanela += tamInicialJanelas
             else:
                 coefGerados += 1
                 if(fimJanela < (numLeituras-1)):
                     iniJanela = fimJanela
                     fimJanela += tamInicialJanelas-1
                     flag = True
                 
             if(fimJanela > numLeituras and (not fimLeituras)):
                 fimJanela = numLeituras-1
                 fimLeituras = True
                 
         residuo = Estatistica.erroResidual(leituras, preditos);
         print residuo
         
         DIC = {'variavel': VARIAVEL[var%len(VARIAVEL)], 'media': Estatistica.media(erroAc), 'minimo': Estatistica.minimo(erroAc),
                'maximo': Estatistica.maximo(erroAc), 'eqm': sum(erroAc), 'pkt-gerados': coefGerados, 'mecanismo': 'Filtro-Medio'}
         
         Log.registraLog(ARQUIVO_SAIDA, FORMAT, DIC)
         
         if(self.plot):
             Estatistica.plotar((range(1, numLeituras+1), range(1, numLeituras+1)), (leituras, preditos), "Filtro Medio", "Epoca", VARIAVEL[var%len(VARIAVEL)], ["Valores Reais", "Valores Preditos"])
         
     return [coefGerados, preditos, leituras, residuo]
Exemple #4
0
                
                informacoes = Estatistica.regSimples(range(limInf+1, limSup+2), medidas, True)
                saida = saida.__add__(informacoes[2])
                erro = informacoes[4]
                erroAc.append(erro)
                i += 1 
            
            residuo = Estatistica.erroResidual(variavel, saida);
                        
            DIC = {'variavel': VARIAVEL[var%len(VARIAVEL)], 'media': Estatistica.media(erroAc), 'minimo': Estatistica.minimo(erroAc),
                   'maximo': Estatistica.maximo(erroAc), 'eqm': sum(erroAc), 'pkt-gerados': numIter, 'mecanismo': 'Regressao'}
            Log.registraLog(ARQUIVO_SAIDA, FORMAT, DIC)
            
            if(self.plot):
                Estatistica.plotar((range(1, numTotEpocas+1), range(1, numTotEpocas+1)), (variavel, saida), "Filtro Medio", "Epoca", VARIAVEL[var%len(VARIAVEL)], ["Valores Reais", "Valores Preditos"])
            
        return [numIter, saida, variavel, residuo]
            
filtro = Regressao()
[pkts, predito, medidas, residuo] = filtro.algoritmoReducao([0], 289, 10)

filtro = FiltroMedio(0.5)
[pkts1, predito1, medidas, residuo1] = filtro.algoritmoReducao([0], 289, 10)
print predito1[60], medidas[60]
aux = range(1, len(medidas)+1)

#Estatistica.plotar([aux, aux], [residuo, residuo1], 'Analise Mecanismos de Reducao', 'Epoca', 'Erro Residual', ['Regressao Simples', 'Filtro Medio'])
Estatistica.plotar([aux, aux, aux], [medidas, predito, predito1], 'Analise Mecanismos de Reducao', 'Epoca', 'Temperatura', ['Valores Reais', 'Regressao Simples', 'Filtro Medio'])
#Estatistica.plotarBarra([1000, pkts, pkts1], 'Numero de pacotes', VARIAVEL[0], 'Largura de Banda', ['Sem Predicao', 'Regressao simples', 'Filtro Medio'])
#Estatistica.plotarBarra([1000*1.86, pkts*1.86, pkts1*1.86], 'Consumo de Energia', VARIAVEL[0], 'Energia', ['Sem Predicao', 'Regressao simples', 'Filtro Medio'])
from fabrica_fila import FabricaFila
from estatistica import Estatistica
from estatistica_resumida import EstatisticaResumida

teste_fabrica = FabricaFila.pega_fila('prioridade')
teste_fabrica.atualiza_fila()
teste_fabrica.atualiza_fila()
teste_fabrica.atualiza_fila()
teste_fabrica.atualiza_fila()
print(teste_fabrica.chama_cliente(10))
print(teste_fabrica.chama_cliente(10))
print(teste_fabrica.chama_cliente(10))
print(teste_fabrica.estatistica(EstatisticaResumida('20/03/2021', 120)))
print(teste_fabrica.estatistica(Estatistica('20/03/2021', 120)))