O ProCon, desenvolvido na linguagem C/C++, é constituído de rotinas (funções) que executam as seguintes tarefas:
(i) Cálculo das estatísticas, tais como valores mínimo e máximo, amplitude, média aritmética, variância e desvio padrão, e identificação de auto-similaridade no tráfego, através do parâmetro de Hurst.
(ii) Cálculo das transformadas de wavelet direta e inversa.
(iv) Redução ou encolhimento dos coeficientes de wavelet a partir de políticas de filtragem e de valores de limiares estimados.
(v) Identificação das tendências da série e prognóstico de comportamentos futuros do tráfego.
O Quadro 3.1 relaciona as funções do sistema ProCon que constitui a implementação do mecanismo de prognóstico de congestionamento.
Quadro 3.1. Funções do Sistema ProCon
Função Descrição Parâmetros de entrada
Estatistic() Cálculo da estatística R/S, parâmetro de
Hurst, valores mínimo, máximo, amplitude, média aritmética, variância e desvio padrão
Série de entrada Janela de observação
Doit()
+
wvlt.lib
Cálculo da transformada direta e inversa de
wavelet Série de entrada Janela de observação
Base de wavelet Tipo de transformada Tipo de arredondamento1
Estimate_base() Estimação da base de wavelet mais adequada
para o cálculo do item anterior Série de entrada Janela de observação Base escolhida Compute_thresh() + Apply_thresh() + Quicksort.h
Redução (filtragem) dos coeficientes de
wavelet Coeficientes Política de redução
Tipo de limiar
Percentual de redução
Tend() Verificação da tendência da série
transformada Série de entrada Janela de observação
Indicador de congestio- namento
Tipo de teste de tendência Também foram desenvolvidos programas que auxiliam os testes do mecanismo e as análises realizadas sobre os resultados. Estes programas são: (i) gerador de tráfego simulado auto-similar, descrito na Seção 3.5, (ii) cálculo das autocorrelações de uma série até o lag
1 A transformação de wavelet pode gerar valores não inteiros. O ProCon arredonda os valores da série reconstruída para o inteiro mais próximo.
100, (iii) cálculo dos estatísticos de uma série temporal, (iv) cálculo da transformada de
wavelet usando o esquema Lifting (SWELDENS, 1997) - este esquema não foi utilizado na
construção do ProCon, (v) gerador de números seqüenciais para obtenção de gráficos, (vi) cálculo de previsão de séries temporais com os métodos de alisamento exponencial adaptativo e de filtragem adaptativa (MORETTIN; TOLOI, 1987). Este último programa foi elaborado no início do desenvolvimento do ProCon, quando se pretendia incluir previsão de valores futuros no mecanismo.
Todos os programas desenvolvidos para esta tese foram compilados pela versão 5.5 do compilador C++ Builder da Borland (IMPRISE, 2000). Os gráficos que ilustram os resultados do mecanismo (ver Capítulo 4) foram obtidos através do software GNUPLOT, versão 3.8i, de domínio público (http://www.gnuplot.org).
O programa ProCon tem cinco funções, a seguir descritas:
(i) Estatistic. Função de cálculo dos estatísticos da série ou da janela de observação. (ii) Doit. Função de cálculo da transformada de wavelet. Esta função utiliza uma
biblioteca de rotinas de domínio público, escritas para a linguagem C e conhecidas como wvlt.lib (LEWIS, 1995), da Universidade British Columbia (UBC). Essa biblioteca contém rotinas que executam operações básicas com wavelets, como as transformações direta e inversa.
(iii) Estimate_base. Função que estima a base de wavelet, escolhendo uma com menor valor de desvio quadrático médio.
(iv) Compute_thresh. Função de cálculo do valor do limiar a partir dos parâmetros especificados, descritos na Seção 3.3. Os coeficientes abaixo deste limiar são zerados ou reduzidos. Caso o limiar escolhido seja do tipo “quantil”, esta função, antes de realizar o cálculo do limiar, ordena a série através da função Quicksort. (v) Tend. esta função está descrita na Seção 3.4.
Além dessas funções o ProCon também realiza:
(i) Simulação da aplicação em tempo real, onde as funções são executadas em intervalos fixos de tempo.
(ii) Gravação dos coeficientes obtidos pelos procedimentos de transformação e de filtragem.
(iii) Registro do tempo que o programa leva para efetuar um ciclo completo de execução.
(iv) Gravação do patamar de congestionamento para ilustrar os gráficos de resultados. Um fluxograma das funções do ProCon está ilustrado na Figura 3.8.
Outros programas que não fazem parte do núcleo do ProCon, mas que foram desenvolvidos com o objetivo de auxiliar, comparar, otimizar e complementar funções do próprio mecanismo, estão relacionados no Quadro 3.2.
Quadro 3.2. Programas Auxiliares
Programa Descrição Parâmetros
GenTraffic Simulador de tráfego auto-similar Modelo de tráfego
Duração (# observações) Largura de banda Congestionamento (tipo) Janela de congestionamento Posição da janela Tamanho do pacote Série de saída
Autocor Cálculo de autocorrelações Série de entrada
Autocorrelações
CalcEstat Cálculo dos estatísticos Série de entrada
Estatísticos
Lifting Cálculo da transformada de wavelet usando o
esquema Lifting e a base Haar Série de entrada Série de saída Tipo de transformação
AlExpAdapt Previsão com o método de alisamento
exponencial adaptativo de Trigg & Leach Série de entrada Série de saída
FilAdapt Previsão com o método de filtragem
adaptativa Série de entrada Série de saída
A seguir, complementam-se as descrições dos programas auxiliares: (i) o programa GenTraffic está descrito na Seção 3.5.
(ii) o programa Autocor auxilia na análise dos resultados obtidos, calculando as autocorrelações de uma série até o lag 100.
(iii) O CalcEstat calcula os estatísticos de uma série temporal, tais como mínimo, máximo, amplitude, média aritmética, variância, desvio padrão, coeficiente de variação, R/S e o parâmetro de Hurst.
(iv) o programa Lifting usa o esquema de mesmo nome, descrito no Capítulo 2. Esta técnica favorece a geração de um algoritmo de menor complexidade em relação aos algoritmos baseados na estrutura clássica de domínio da freqüência, com um custo
de computação proporcional ao número de observações da série (SWELDENS, 1997), isto é, a transformação linear de um vetor de tamanho N requer O
( )
N2operações.
(v) o programa AlExpAdapt utiliza o método AEA (Alisamento Exponencial Adaptativo), derivado do método AES (Alisamento Exponencial Simples) (MORETTIN; TOLOI, 1985), para previsão de valores futuros.
(vi) o programa FilAdapt usa o método FA (Filtragem Adaptativa) para previsão de valores futuros, que pode ser aplicado em séries não estacionárias, permitindo adaptações a possíveis mudanças no padrão da série.