Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um...
Transcript of Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um...
Construcao de Metamodelos de Simulacao EstocasticaUtilizando Splines
Rui Henrique Silvestre Barradas
Dissertacao para obtencao do Grau de Mestre em
Engenharia de Telecomunicacoes e Informatica
Orientadores: Prof. Maria Isabel da Conceicao Santos Reis dos SantosProf. Pedro Manuel Guerra e Silva Reis dos Santos
Juri
Presidente: Prof. Paulo Jorge Pires FerreiraOrientador: Prof. Maria Isabel da Conceicao Santos Reis dos Santos
Vogal: Prof. Pavel Pereira Calado
Outubro 2015
Agradecimentos
Gostaria de agradecer aos meus pais, Hermınia Barradas e Manuel Barradas, pela sua amizade,
incentivo e apoio ao longo de todos estes anos, por estarem sempre la para mim nos bons e nos maus
momentos e sem os quais a realizacao desta dissertacao nao seria possıvel. Gostaria de agradecer
tambem aos meus avos, Maria Barradas e Jose Barradas, por toda a sua compreensao ao longo destes
anos.
Gostaria tambem de agradecer aos meus orientadores, Professora Maria Isabel Reis dos Santos e
Professor Pedro Reis dos Santos, pelo seu apoio, constante acompanhamento e partilha de conheci-
mento que fizeram com que este trabalho fosse possıvel.
Por fim, mas nao menos importante, um grande obrigado as minhas amigas Rita Alves e Joana
Alves pelo encorajamento, por estarem sempre la para mim e a todos os meus amigos (voces sabem
quem sao) que me ajudaram a crescer enquanto pessoa e que fizeram de mim a pessoa que sou hoje.
Para todos e cada um de voces - Muito obrigado.
Abstract
The simulation models of real systems are employed in order to provide support for decisions concerning
about possible alterations in the design of these systems. A metamodel is an analysis tool that relates
the input data of the simulation model with its results. The polynomial metamodels are easier to use,
since they rely on a single polynomial function. However, these metamodels based on polynomials have
some difficulties when it comes to adjusting to arbitrary regular functions and to the non-linearity of the
problems of the real-life. In this work, it is made the construction of alternative metamodels, based
in splines, which seek to overcome some of these limitations. Furthermore, it is made a comparison
between these metamodels based in splines and the polynomial metamodels, in order to check if the
first ones allow to obtain better adjustments.
Keywords
Stochastic Simulation; Simulation Models; Metamodel; Methodology; Splines
iii
Resumo
Os modelos de simulacao de sistemas reais existentes sao empregues com o intuito de dar suporte as
decisoes acerca de possıveis alteracoes no desenho desses sistemas. Um metamodelo e uma ferra-
menta de analise que relaciona os dados de entrada do modelo de simulacao com os seus resultados.
Os metamodelos polinomiais sao os mais simples de utilizar, uma vez que dependem de uma so funcao
polinomial. Porem, estes metamodelos baseados em polinomios apresentam dificuldades no que toca
ao ajuste a funcoes regulares arbitrarias e a nao-lineariedade dos problemas na vida-real. Neste tra-
balho, e efectuada a construcao de metamodelos alternativos, baseados em splines, que procuram
ultrapassar algumas dessas limitacoes. Alem disso, e efectuada a comparacao entre estes metamo-
delos baseados em splines e os metamodelos polinomiais, de forma a aferir se os primeiros permitem
obter melhores ajustes.
Palavras Chave
Simulacao Estocastica; Modelos de Simulacao; Metamodelo; Metodologia; Splines
iv
Conteudo
1 Introducao 1
1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Organizacao da dissertacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Enquadramento 4
2.1 Simulacao Estocastica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Modelacao das Entradas (Input Modeling) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Analise de Resultados (Output Modeling) . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.1 Vies inicial (Initialization bias) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.2 Amostras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2.A Replicas Independentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2.B Medias de Lotes (Batch-Means) . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.3 Respostas de interesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.4 Medidas de desempenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Metamodelos de Simulacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Taxonomia de Metamodelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.1 Metamodelos Polinomiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5.2 Metamodelos racionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5.3 Metamodelos baseados em splines . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.3.A Representacao de uma funcao spline . . . . . . . . . . . . . . . . . . . . 14
2.5.3.B B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.3.C Splines de interpolacao (Interpolating splines) . . . . . . . . . . . . . . . 16
2.5.3.D Splines de aproximacao (Smoothing splines) . . . . . . . . . . . . . . . . 17
2.5.4 Metamodelos de Taguchi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.5 Metamodelos de Kriging ou de Correlacao Espacial . . . . . . . . . . . . . . . . . 18
2.5.6 Metamodelos baseados em Funcoes Base Radiais . . . . . . . . . . . . . . . . . 19
v
2.5.7 Metamodelos baseados em aproximacoes no domınio da frequencia . . . . . . . . 20
2.5.8 Metamodelos baseados em Redes Neuronais . . . . . . . . . . . . . . . . . . . . 20
2.6 Construcao de Metamodelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6.1 Processo de construcao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6.2 Estimacao dos Parametros Desconhecidos . . . . . . . . . . . . . . . . . . . . . . 22
2.6.3 Validacao de Metamodelos e Testes . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.7 Sistema M/M/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3 Arquitectura 26
3.1 Sistemas a utilizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Construcao dos metamodelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Respostas de interesse e medidas de desempenho . . . . . . . . . . . . . . . . . . . . . 28
3.4 Adequacao do smoothing parameter face a variancia . . . . . . . . . . . . . . . . . . . . 29
3.5 Metodologia de Avaliacao do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4 Realizacao 31
4.1 Processo de Realizacao: Do AweSim para o Matlab . . . . . . . . . . . . . . . . . . . . . 32
4.2 Sistema M/M/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 Rede de encaminhamento de pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5 Desenho 46
5.1 Processo de Ajuste em Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2 Sistema M/M/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2.1 Ajuste baseado em metamodelos polinomiais . . . . . . . . . . . . . . . . . . . . . 51
5.2.1.A Ajuste baseado em metamodelos polinomiais sem pesos . . . . . . . . . 52
5.2.1.B Ajuste baseado em metamodelos polinomiais com pesos . . . . . . . . . 54
5.2.2 Ajuste baseado em metamodelos baseados em splines . . . . . . . . . . . . . . . 56
5.2.2.A Ajuste baseado em metamodelos baseados em splines sem pesos . . . 56
5.2.2.B Ajuste baseado em metamodelos baseados em splines com pesos . . . 58
5.3 Rede de encaminhamento de pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.1 Ajuste baseado em metamodelos polinomiais . . . . . . . . . . . . . . . . . . . . . 61
5.3.1.A Ajuste baseado em metamodelos polinomiais sem pesos . . . . . . . . . 61
5.3.1.B Ajuste baseado em metamodelos polinomiais com pesos . . . . . . . . . 62
5.3.2 Ajuste baseado em metamodelos baseados em splines . . . . . . . . . . . . . . . 64
5.3.2.A Ajuste baseado em metamodelos baseados em splines sem pesos . . . 64
5.3.2.B Ajuste baseado em metamodelos baseados em splines com pesos . . . 66
vi
6 Conclusoes 69
6.1 Sumario sobre o trabalho efectuado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.2 Metamodelos sem pesos vs. Metamodelos com pesos . . . . . . . . . . . . . . . . . . . . 70
6.3 Polinomios vs. Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.3.1 Polinomios vs. Splines no sistema M/M/1 . . . . . . . . . . . . . . . . . . . . . . . 72
6.3.2 Polinomios vs. Splines na rede de encaminhamento de pacotes . . . . . . . . . . 73
6.4 Trabalho futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
A Codigo do Projecto 78
vii
Lista de Figuras
2.1 Metodo grafico para a identificacao do vies inicial. . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Relacoes entre Sistema Real, Modelo de Simulacao e Metamodelo. . . . . . . . . . . . . 12
2.3 Graficos das funcoes f(x) = 3 (grau 0) a esquerda e f(x) = x (grau 1) a direita. . . . . . 13
2.4 Graficos das funcoes f(x) = x2 (grau 2) a esquerda e f(x) = x3 (grau 3) a direita. . . . . 13
2.5 Graficos das funcoes f(x) = x2
x+1 a esquerda e f(x) = x3+2x2+7x+3x2+5x+9 a direita. . . . . . . . 14
2.6 B-splines de graus 0, 1 e 2, respectivamente. . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.7 Exemplo de uma spline linear de interpolacao com 4 pontos de controlo (a esquerda) e
de uma spline cubica de interpolacao com 7 pontos de controlo (a direita). . . . . . . . . 16
2.8 Exemplo de uma spline de aproximacao (com λ > 0). . . . . . . . . . . . . . . . . . . . . 17
2.9 Exemplo de um modelo de regressao linear (metodo dos mınimos quadrados). . . . . . . 18
2.10 Sistema de filas de espera M/M/1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.11 Var[W ] (eixo vertical) em funcao de ρ (eixo horizontal), com µ = 1. . . . . . . . . . . . . . 25
3.1 Rede de encaminhamento de pacotes: c = capacidade da fila, s = numero de servidores,
t = tempo de servico, l = tempo entre chegadas e p = probabilidade do caminho. . . . . . 28
4.1 Desenho do sistema M/M/1 no AweSim Network Builder. . . . . . . . . . . . . . . . . . . 32
4.2 Desenho da rede de encaminhamento de pacotes no AweSim Network Builder. . . . . . . 33
4.3 Tempos medios das entidades no sistema M/M/1, em funcao do factor de utilizacao (ρ). . 40
4.4 Tempos medios das entidades na rede de encaminhamento de pacotes, em funcao do
logaritmo de base 2 da taxa de chegadas (log2(λ)). . . . . . . . . . . . . . . . . . . . . . 45
5.1 Imagem em Matlab de um exemplo dos pontos de controlo de uma spline. . . . . . . . . 48
5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela funcao spline. . . . . . 48
5.3 Imagem em Matlab de um exemplo dos pontos de controlo de uma spline. . . . . . . . . 49
5.4 Imagem em Matlab de um exemplo do ajuste proporcionado pela funcao csaps com um
parametro de regularizacao 0.999. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
viii
5.5 Imagem em Matlab de um exemplo do ajuste proporcionado pela funcao csaps com um
parametro de regularizacao 0.97. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.6 Imagem em Matlab de um exemplo do ajuste proporcionado pela funcao csaps com um
parametro de regularizacao 0.97 e com um aumento do peso nos pontos x = 2 e x = 7. . 50
5.7 Imagem em Matlab dos pontos dos tempos medios obtidos para o sistema M/M/1, em
funcao de ρ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.8 Imagem em Matlab dos ajustes proporcionados pelos polinomios de grau 1 e grau 3, a
esquerda, e dos ajustes proporcionados pelos polinomios de grau 2 e grau 4, a direita
(sem pesos). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.9 Imagem em Matlab dos ajustes proporcionados pelos polinomios de grau 1 e grau 3, a
esquerda, e dos ajustes proporcionados pelos polinomios de grau 2 e grau 4, a direita
(com pesos). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.10 Imagem em Matlab do ajuste proporcionado por um metamodelo baseado em splines,
com parametro de regularizacao igual a 1, sem pesos. . . . . . . . . . . . . . . . . . . . . 56
5.11 Imagem em Matlab dos ajustes proporcionados por splines com P = 0.999 e P = 0.99, a
esquerda, e por splines com P = 0.97 e P = 0.9, a direita (sem pesos). . . . . . . . . . . 57
5.12 Imagem em Matlab dos ajustes proporcionados por splines com P = 0.999 e P = 0.99, a
esquerda, e por splines com P = 0.97 e P = 0.9, a direita (com pesos). . . . . . . . . . . 59
5.13 Imagem em Matlab dos pontos dos tempos medios obtidos para a rede de encaminha-
mento de pacotes, em funcao de log2 (λ). . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.14 Imagem em Matlab dos ajustes proporcionados pelos polinomios de grau 1 e grau 3, a
esquerda, e dos ajustes proporcionados pelos polinomios de grau 2 e grau 4, a direita
(sem pesos). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.15 Imagem em Matlab dos ajustes proporcionados pelos polinomios de grau 1 e grau 3, a
esquerda, e dos ajustes proporcionados pelos polinomios de grau 2 e grau 4, a direita
(com pesos). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.16 Imagem em Matlab do ajuste proporcionado por um metamodelo baseado em splines,
com parametro de regularizacao igual a 1, sem pesos. . . . . . . . . . . . . . . . . . . . . 64
5.17 Imagem em Matlab dos ajustes proporcionados por splines com P = 0.999 e P = 0.9, a
esquerda, e por splines com P = 0.8 e P = 0.4, a direita (sem pesos). . . . . . . . . . . . 65
5.18 Imagem em Matlab dos ajustes proporcionados por splines com P = 0.3 e P = 0.1 (sem
pesos). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.19 Imagem em Matlab dos ajustes proporcionados por splines com P = 0.999 e P = 0.9, a
esquerda, e por splines com P = 0.8 e P = 0.4, a direita (com pesos). . . . . . . . . . . . 67
ix
5.20 Imagem em Matlab dos ajustes proporcionados por splines com P = 0.3 e P = 0.1 (com
pesos). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.1 Comparacao entre os ajustes proporcionados pelo polinomio de grau 4 e pela spline com
P = 0.999, ambos sem pesos, para o sistema M/M/1. . . . . . . . . . . . . . . . . . . . . 73
6.2 Comparacao entre os ajustes proporcionados pelo polinomio de grau 4 e pela spline com
P = 0.999, ambos sem pesos, para a rede de encaminhamento de pacotes. . . . . . . . . 74
x
Lista de Tabelas
4.1 Resultados da funcao yucesan para o sistema M/M/1, com ρ = 0.1. . . . . . . . . . . . . 37
4.2 Resultados para o sistema M/M/1 com ρ = 0.1. . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3 Resultados da funcao yucesan para o sistema M/M/1, com ρ = 0.2. . . . . . . . . . . . . 38
4.4 Resultados para o sistema M/M/1 com ρ = 0.2. . . . . . . . . . . . . . . . . . . . . . . . . 38
4.5 Resultados da funcao yucesan para o sistema M/M/1, para os varios valores de ρ: b =
numero de lotes inicial e m = tamanho inicial dos lotes. . . . . . . . . . . . . . . . . . . . 38
4.6 Resultados da funcao meanstd para o sistema M/M/1, para os varios valores de ρ: x =
media das medias dos lotes e σ2x = variancia das medias dos lotes. . . . . . . . . . . . . . 39
4.7 Relacao entre a taxa de chegadas dos clientes (λ) e o numero de pacotes perdidos na
rede (balk ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.8 Resultados da funcao yucesan para a rede de encaminhamento de pacotes, para os
diversos valores de λ: b = numero de lotes inicial e m = tamanho inicial dos lotes. . . . . 43
4.9 Resultados da funcao meanstd para a rede de encaminhamento de pacotes, para os
diversos valores de λ: x = media das medias dos lotes ; σ2x = variancia das medias dos
lotes ; balk = numero de pacotes perdidos no sistema. . . . . . . . . . . . . . . . . . . . . 44
5.1 Tempos medios teoricos para o sistema M/M/1. . . . . . . . . . . . . . . . . . . . . . . . . 52
5.2 Valores estimados para os parametros desconhecidos dos polinomios presentes na figura
5.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.3 Erros calculados em relacao aos valores teoricos e experimentais dos polinomios pre-
sentes na figura 5.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.4 Valores estimados para os parametros desconhecidos dos polinomios presentes na figura
5.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.5 Erros calculados em relacao aos valores teoricos e experimentais dos polinomios pre-
sentes na figura 5.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.6 Valores calculados para os erros teoricos e experimentais das splines presentes na figura
5.11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
xi
5.7 Valores calculados para os erros teoricos e experimentais das splines presentes na figura
5.12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.8 Valores estimados para os parametros desconhecidos e erros dos polinomios presentes
na figura 5.14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.9 Valores estimados para os parametros desconhecidos e erros dos polinomios presentes
na figura 5.15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.10 Valores calculados para os erros dos ajustes presentes nas figuras 5.17 e 5.18. . . . . . 66
5.11 Valores calculados para os erros dos ajustes presentes nas figuras 5.19 e 5.20. . . . . . 67
6.1 Erros calculados em relacao aos valores teoricos e experimentais dos metamodelos po-
linomiais referentes ao sistema M/M/1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.2 Erros calculados em relacao aos valores experimentais dos metamodelos polinomiais
referentes a rede de encaminhamento de pacotes. . . . . . . . . . . . . . . . . . . . . . . 71
6.3 Erros calculados em relacao aos valores teoricos e experimentais dos metamodelos ba-
seados em splines referentes ao sistema M/M/1. . . . . . . . . . . . . . . . . . . . . . . . 71
6.4 Erros calculados em relacao aos valores experimentais dos metamodelos baseados em
splines referentes a rede de encaminhamento de pacotes. . . . . . . . . . . . . . . . . . 71
xii
1Introducao
Conteudo
1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Organizacao da dissertacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1
Os modelos de simulacao sao usados como uma ferramenta para explorar os sistemas reais. Estes
modelos podem ser usados para simular situacoes que sao extremamente difıceis ou dispendiosas
de testar na vida real. De modo a que se possa ter uma percepcao do comportamento do sistema
propriamente dito, perante um conjunto de dados de entrada, e efectuado um conjunto de simulacoes
e testes sobre os resultados obtidos.
A simulacao estocastica e uma tecnica de analise de modelos estocasticos. Estes modelos, ao
contrario dos modelos determinısticos, possuem uma ou mais variaveis aleatorias como parametros
de entrada, pelo que geram saıdas aleatorias. Assim, as saıdas da simulacao estocastica devem ser
tratadas como estimativas estatısticas das caracterısticas reais de um sistema. Por exemplo, uma
aplicacao de um modelo estocastico sera o funcionamento de uma agencia bancaria, que envolve
variaveis aleatorias como o intervalo entre chegadas dos clientes e a duracao dos servicos prestados.
Os metamodelos relacionam os dados de entrada e de saıda do modelo de simulacao atraves de
uma funcao matematica. Como tal, sao usados para a analise e optimizacao de sistemas reais. Os
metamodelos podem ser definidos como ferramentas de analise que expoem a relacao entre os dados
de entrada e de saıda de um determinado modelo de simulacao e, por ultimo, do sistema real.
O presente trabalho serve para avaliar o desempenho da utilizacao de funcoes spline como meta-
modelos de simulacao de sistemas de filas de espera. Inicialmente, sera abordada uma componente
teorica, onde serao mostrados varios metodos e tecnicas de ajuste de splines, bem como a diferenca
entre as mesmas. Posteriormente, numa vertente mais pratica, serao referidos alguns criterios na es-
colha das splines. Sera tambem efectuado um estudo onde se compara o uso de diferentes tecnicas
de ajuste em metamodelos.
1.1 Motivacao
Dentro do conjunto dos diversos metamodelos, os metamodelos polinomiais sao os que tem rece-
bido uma atencao consideravel, devido a sua simplicidade. Porem, os polinomios nao tem a capaci-
dade de se ajustarem a forma de funcoes regulares arbitrarias, com base em valores arbitrarios que
podem ser perturbados por componentes estocasticas com distribuicao geral. Alem disto, a maior parte
dos problemas na vida real sao nao-lineares. Deste modo, em certos casos, pode ser inadequado a
utilizacao de metamodelos polinomiais para efectuar a aproximacao. Assim sendo, surge a necessidade
de explorar novos tipos de metamodelos, que permitem obter ajustes melhores e mais realistas.
Neste trabalho procura-se estudar uma metodologia que consiste na construcao de metamodelos
usando splines. Uma spline e uma funcao numerica que e baseada em funcoes base que sao po-
linomios, por intervalos. Ou seja, a cada intervalo corresponde um polinomio. Estas funcoes permitem
a construcao de metamodelos nao-lineares, que nao tem algumas das desvantagens dos metamodelos
2
polinomiais. Deste modo, procuraremos usar as funcoes spline, para verificar se estas permitem cobrir
as deficiencias dos metamodelos polinomiais nos casos em estudo.
1.2 Objectivos
Este trabalho utiliza funcoes spline para a construcao de metamodelos em simulacao estocastica,
bem como procura determinar o desempenho e a precisao dos metamodelos construıdos. Procura-se
igualmente averiguar se os metamodelos baseados em funcoes spline podem ser utilizados para melhor
aproximar modelos de simulacao estocastica, bem como estudar a diferenca entre usar metamodelos
polinomiais e metamodelos baseados em funcoes spline.
1.3 Organizacao da dissertacao
No capıtulo 2, faz-se um enquadramento do trabalho que se pretende desenvolver. Como tal, e
efectuado um estudo dos diversos metamodelos actuais.
No capıtulo 3, descreve-se a arquitectura que sera implementada para a realizacao do trabalho.
Para alem disso, apresenta-se uma metodologia para a avaliacao do mesmo.
No capıtulo 4, descreve-se o processo de realizacao do trabalho que se pretende desenvolver. E
neste capıtulo que se efectuam a recolha e o tratamento dos dados a serem utilizados na realizacao do
trabalho.
No capıtulo 5, efectua-se o desenho da solucao propriamente dito, bem como uma avaliacao do
mesmo.
Finalmente, no capıtulo 6, apresentam-se as conclusoes retiradas, bem como os topicos que se
consideram ser os mais promissores para futura investigacao.
3
2Enquadramento
Conteudo
2.1 Simulacao Estocastica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Modelacao das Entradas (Input Modeling) . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Analise de Resultados (Output Modeling) . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Metamodelos de Simulacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Taxonomia de Metamodelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6 Construcao de Metamodelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.7 Sistema M/M/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4
Para o trabalho que se pretende desenvolver, e importante, em primeira instancia, estudar e analisar
o estado da arte (em ingles, state of the art) dos metamodelos existentes. Neste capıtulo, pretende-se
efectuar esse estudo, que levara a uma melhor compreensao do trabalho a desenvolver.
2.1 Simulacao Estocastica
A simulacao consiste na utilizacao de modelos matematicos, num ambiente computacional, com o
objectivo de imitar o funcionamento de uma operacao ou processo do mundo real, de modo a compre-
ender o seu funcionamento. E possıvel classificar o tipo de simulacao que se esta a utilizar, de acordo
com o sistema em estudo. Neste trabalho, apenas se considera a simulacao estocastica. A simulacao
estocastica e um mecanismo de analise para avaliar modelos nao-determinısticos. Estes modelos,
tambem denominados de modelos estocasticos, permitem a representacao de variaveis de incerteza
e seus valores. Devido a estas variaveis de incerteza, sempre que um modelo nao-determinıstico e
avaliado, mesmo que os parametros fornecidos se mantenham, o seu comportamento pode mudar [1].
Uma vez que o presente trabalho se enquadra no contexto da simulacao estocastica, e importante
referir as principais vantagens e desvantagens do uso da mesma. Os sistemas mais complexos do
mundo real com elementos estocasticos nao podem ser descritos ao pormenor por um modelo ma-
tematico que possa ser avaliado analiticamente. Como tal, a simulacao e geralmente o unico tipo de
investigacao possıvel. Alem disto, o uso da simulacao permite averiguar o desempenho de um sistema
sobre um determinado conjunto de condicoes de funcionamento. Numa simulacao, e possıvel man-
ter um controlo muito melhor sobre as condicoes experimentais do que aquele que, geralmente, seria
possıvel aquando da realizacao de experiencias directamente no sistema real [2].
Por outro lado, a principal desvantagem sera que cada execucao de um modelo de simulacao es-
tocastica apenas gera um valor ou concretizacao das caracterısticas reais de um sistema para um
conjunto particular de dados de entrada. Como tal, provavelmente serao necessarias varias execucoes
independentes do modelo para cada conjunto de dados de entrada que estao a ser estudados, de modo
a obter melhores estimativas das quantidades em estudo.
Um modelo analıtico consegue, por vezes, apresentar as caracterısticas reais do sistema em estudo,
para os mais variados conjuntos de dados de entrada. Assim, se um modelo analıtico estiver disponıvel
ou for facilmente desenvolvido, sera geralmente preferıvel a um modelo de simulacao [2].
2.2 Modelacao das Entradas (Input Modeling)
No processo de uma simulacao estocastica, e necessario representar adequadamente os dados de
entrada do sistema, bem como as suas caracterısticas estocasticas. Estes dados de entrada podem
5
ser bastante diversificados, dependendo do sistema a que se referem. No caso da simulacao de um
sistema de filas de espera, os dados de entrada serao modelados pelas distribuicoes dos tempos de
chegada e de servico. Para a simulacao de um sistema de inventario, os dados de entrada incluem as
distribuicoes do tempo de procura de um produto no inventario e dos prazos de entrega. Se estivermos
a simular um processo de fabrico, os dados de entrada poderao ser os tempos ate a falha dos varios
componentes do sistema. Segundo Biller and Gunes [3], o objectivo da modelacao das entradas e a
obtencao de uma aproximacao que captura as caracterısticas-chave do processo de entrada. Existem
quatro passos no desenvolvimento de um modelo de dados de entrada [1]:
1. Recolher os dados do sistema real em estudo. Esta recolha de dados pode variar muito, de-
pendendo do sistema que estamos a estudar. Por exemplo, num sistema de filas de espera, os
dados a medir seriam os intervalos entre chegadas dos clientes. Este passo, geralmente, requer
uma quantidade consideravel de tempo e recursos para a sua execucao. Porem, em algumas
situacoes nao e possıvel efectuar a recolha de dados. Isto pode acontecer, por exemplo, quando
o tempo e extremamente limitado ou quando ha regras ou leis que proibem a recolha dos dados.
Nestes casos, a opiniao e o conhecimento de peritos podem ser usados para efectuar suposicoes
com algum fundamento.
2. Identificar a distribuicao de probabilidade para representar o processo de entrada (input). Quando
os dados estao disponıveis, este passo comeca pelo desenvolvimento de uma distribuicao empırica
ou um histograma dos dados. Posteriormente, baseado no conhecimento estrutural do processo,
uma famılia de distribuicoes e escolhida. Ha varias distribuicoes conhecidas que fornecem boas
aproximacoes na pratica. Sao exemplos destas as distribuicoes Binomial, Normal, Exponencial,
Poisson, Erlang, Triangular, entre outras.
3. Escolher os parametros de entrada do modelo. Apos a escolha da distribuicao de probabilidade,
o proximo passo e a escolha dos parametros da distribuicao de probabilidade seleccionada. Exis-
tem varios metodos para este efeito. Alguns dos metodos mais comuns sao o metodo dos mo-
mentos correspondentes, o metodo de percentis correspondentes e o metodo dos mınimos qua-
drados [2].
4. Avaliar se a distribuicao de probabilidade escolhida e se os parametros associados foram uma boa
escolha. Esta avaliacao pode ser feita recorrendo a alguns testes. Alguns dos testes mais comuns
sao o teste do Qui-Quadrado e o teste Kolmogorov-Smirnov. Se se verificar que a distribuicao es-
colhida nao reflecte uma boa aproximacao dos dados, entao o analista deve retornar ao segundo
passo, escolher uma famılia de distribuicoes diferente e repetir o processo.
6
2.3 Analise de Resultados (Output Modeling)
A simulacao estocastica tem sido uma ferramenta muito utilizada na avaliacao do desempenho dos
diversos sistemas nos ultimos anos. Porem, antes de avaliar os resultados de um estudo de simulacao,
e preciso ter em conta as propriedades da simulacao (natureza estocastica) e a necessidade de uma
metodologia correcta para a analise dos resultados. Depois de construıdo o modelo de simulacao,
devem ser utilizadas tecnicas estatısticas apropriadas para analisar os resultados. Nos modelos de
simulacao estocastica, existem varios problemas que devem ser levados em conta, consoante o tipo
de simulacao que estamos a executar. As simulacoes podem ser distinguidas por serem entre um de
dois tipos: terminating ou non-terminating. A diferenca entre as duas esta relacionada se temos inte-
resse no comportamento do sistema durante um determinado perıodo de tempo ou no comportamento
estacionario do sistema. Uma simulacao terminating e aquela que comeca num determinado estado
ou perıodo de tempo e acaba quando atinge um outro estado ou perıodo de tempo. Uma simulacao
non-terminating e aquela em que se analisa o comportamento estacionario do sistema. Este tipo de
simulacao nao significa que a simulacao nunca acaba, mas sim que a simulacao, teoricamente, poderia
continuar indefinidamente, sem qualquer alteracao no seu comportamento estatıstico.
2.3.1 Vies inicial (Initialization bias)
Como foi dito anteriormente, numa simulacao non-terminating, e analisado o comportamento esta-
cionario do sistema. Porem, em alguns sistemas, como por exemplo os sistemas de filas de espera,
quando o processo se inicia, este encontra-se numa fase nao-estacionaria, uma vez que o programa
de simulacao comeca sem nenhum cliente a espera de ser atendido. Como se pretende estudar o
comportamento do sistema num estado estacionario, e necessario algum tempo para que o sistema
estabilize. Como tal, os resultados iniciais nao devem ser utilizados na analise, pois podem nao repre-
sentar a realidade do sistema numa fase estacionaria. Estas observacoes iniciais devem, portanto, ser
eliminadas ou ignoradas, aquando da analise estatıstica. A esta serie de observacoes iniciais da-se o
nome de vies inicial (em ingles, initialization bias). O vies inicial ocorre primariamente nas simulacoes
non-terminating e pode ser considerado como a maior fonte de erro na estimativa do valor da medida
do desempenho do sistema. Para determinar este vies, permite-se que a execucao do programa de
simulacao seja suficientemente longa para que os resultados possam ser recolhidos fora do perıodo
em que o sistema ainda nao esta em equilıbrio estatıstico. Isto e equivalente a deitar fora uma porcao
de resultados iniciais. Este procedimento e referido como truncatura de resultados e a observacao a
partir da qual os resultados sao recolhidos e denominada ponto de truncatura. Existe um compromisso
envolvido na seleccao do ponto de truncatura. Se for deitada fora uma porcao pequena de resultados,
entao o vies inicial que resta pode ainda afectar significativamente os resultados. Por outro lado, ignorar
7
demasiados resultados aumenta a sua variancia e nao e economico (cada execucao do programa de
simulacao pode ser bastante demorada) [4]. Existem diversos metodos para a deteccao do vies inicial,
entre os quais podemos destacar os metodos graficos e os metodos estatısticos. Os metodos graficos
envolvem uma inspeccao visual dos resultados e o julgamento humano. De entre os metodos graficos
para a eliminacao do vies, podemos realcar o Metodo de Welch.
Figura 2.1: Metodo grafico para a identificacao do vies inicial.
Na figura 2.1, temos presente o exemplo de um grafico resultante da relacao entre os resultados
de uma simulacao estocastica, em funcao do tempo de simulacao. O grafico podera representar uma
qualquer variavel, por exemplo, o numero de clientes medio de um sistema de filas de espera. A linha
mais fina (correspondente no grafico a recta y = 45) representa o valor teorico e a linha mais grossa
representa o valor experimental. Atraves do grafico, podemos verificar que a simulacao atinge o ponto
de equilıbro a partir dos 600 segundos, sendo este o ponto de truncatura. O conjunto de observacoes
que foram retiradas antes deste ponto nao deve ser utilizado para a analise estatıstica, sendo este
conjunto considerado o vies inicial. Por seu lado, os metodos estatısticos, como o nome indica, usam
princıpios estatısticos para detectar o vies inicial. Um dos principais metodos estatısticos e o Teste de
Permutacoes, desenvolvido por Enver Yucesan [5]. Este metodo considera como hipotese inicial que
nao existe vies e pode ser descrito em oito passos:
1. Seja Y1, Y2, ..., Yn uma serie de resultados de uma simulacao com n observacoes;
2. Determinar a dimensao da lote com base na correlacao;
3. Dividir os dados em b lotes (batches) de tamanho k;
4. Obter as medias dos diversos lotes (batch means): Y1, Y2, ..., Yb;
5. Dividir as medias de lotes em dois grupos. Para a primeira iteracao, o primeiro grupo devera incluir
a primeira media e o segundo grupo devera conter as restantes b− 1 medias de lotes;
8
6. Para cada iteracao, comparar as maiores medias de cada grupo. Para isso, e calculado, em
modulo, a diferenca entre elas. Se a diferenca for significativamente diferente de zero, entao a
hipotese inicial de que nao existe vies e rejeitada;
7. Se a hipotese for rejeitada, o processo passa para a iteracao seguinte e os grupos compostos
pelas medias dos lotes sao novamente formados, de forma a que a segunda media seja movida
para o primeiro grupo, ficando assim b − 2 medias de lotes no segundo grupo. O passo cinco e,
entao, repetido;
8. O processo repete-se ate que a hipotese nao seja rejeitada. Sendo assim, podemos concluir que
o vies inicial esta no primeiro grupo e que os dados de saıda do sistema em equilıbrio estao no
segundo grupo.
Alem dos metodos ja referidos, existem outros tipos de metodos para a deteccao do vies inicial, no-
meadamente as abordagens heurısticas, que fornecem um conjunto de regras para determinar quando
e que o vies inicial deve ser removido (por exemplo, a Regra de Conway ou, em ingles, Conway Rule) e
os metodos hıbridos, que combinam varios tipos de metodos para determinar o perıodo de aquecimento
do sistema (por exemplo, o Metodo Sequencial de Pawlikowski).
2.3.2 Amostras
Numa simulacao estocastica, uma vez que esta depende de variaveis aleatorias, uma unica replica
da simulacao nao e conclusiva, pois o valor resultante da simulacao pode ser bastante distante do
valor real, isto e, o valor da sua variancia pode ser elevado. A variancia de uma variavel aleatoria e
a medida de dispersao estatıstica em torno dos possıveis valores dessa variavel aleatoria, ou seja,
a variancia indica o quao afastados se encontram os seus valores do valor esperado/real. Quanto
maior for o numero de observacoes da simulacao, mais proximo estara a sua media do valor real.
Logo, a medida que executamos varias observacoes, a variancia diminui, o que permite a estimacao do
seu valor estatıstico. De seguida, irao ser apresentados dois importantes metodos para efectuar uma
correcta analise de resultados: o metodo das Replicas Independentes e o metodo das Medias de Lotes.
2.3.2.A Replicas Independentes
Neste metodo, a simulacao e repetida um determinado numero de vezes, de cada vez usando
uma sequencia diferente de numeros pseudo-aleatorios independentes. Seguidamente, e calculada
a medida de desempenho (por exemplo, a media) das observacoes recolhidas em cada execucao do
programa de simulacao. Deste modo, os valores sao independentes e identicamente distribuıdos. O
resultado final da simulacao sera obtido calculando a media destes valores [4].
9
2.3.2.B Medias de Lotes (Batch-Means)
Este metodo consiste em retirar, a partir de uma unica simulacao, um numero de observacoes (N)
e dividir esse numero em lotes (b), cada um deles com um tamanho arbitrario de observacoes (m).
Seguidamente, e calculada a medida de desempenho das observacoes que constituem cada lote e,
por fim, calculado o valor medio dessas medidas de cada lote [6]. Ao usar este metodo, devemos
garantir que a correlacao entre os diversos lotes e suficientemente baixa para que os dados resultantes
sejam fiaveis. Porem, uma das maiores dificuldades verificadas ao usar este metodo, e precisamente
a escolha do tamanho do lote, m, de modo a obter uma baixa correlacao entre as medias dos diversos
lotes [5].
2.3.3 Respostas de interesse
Os resultados de um sistema podem ser dos mais variados tipos, dependendo do sistema em si e
dos respectivos dados de entrada. Como tal, e importante saber aquilo que interessa medir no sistema.
Neste trabalho, sao estudados sistemas de filas de espera. Sendo assim, e importante referir algumas
das respostas de interesse deste tipo de sistemas:
• Tempo no sistema - tempo que o cliente demora desde o momento em que entra no sistema ate
ao momento em que e efectuado o seu despacho. Por exemplo, num sistema M/M/1, e calculado
atraves da soma do tempo na fila de espera com o tempo que demora a ser servido;
• Tempo numa fila de espera - tempo que o cliente demora desde o momento em que entra na fila
ate ao momento em que comeca a ser servido;
• Comprimento numa fila - numero de clientes que aguardam pelo servico numa determinada fila;
• Factor de utilizacao - razao entre a taxa de chegadas e a taxa de servico de clientes, por exemplo,
num sistema M/M/1;
• Ocupacao de um servidor - percentagem de tempo em que o servidor se encontra ocupado (ou
seja, nao esta disponıvel);
• Numero de clientes no sistema - numero de clientes que estao presentes no sistema num deter-
minado instante.
2.3.4 Medidas de desempenho
Depois de escolhida qual a resposta de interesse, ha varias medidas de desempenho possıveis da
resposta escolhida para efectuar a analise do sistema:
10
• Media - valor que aponta para onde se concentram os dados de uma distribuicao. Este valor
descreve o comportamento medio do sistema. Seja x1, x2, ..., xn uma serie de valores; a media
do conjunto sera calculada atraves da formula 1n
∑ni=1 xi;
• Quantil - os quantis dividem os dados ordenados em q sub-conjuntos de dados de dimensao
essencialmente igual. Dessa forma dao origem a q-Quantis; os quantis sao estabelecidos a partir
de pontos de corte que determinam as fronteiras entre os sub-conjuntos consecutivos;
• Variancia - e a medida de dispersao estatıstica em torno dos valores possıveis de uma variavel
aleatoria, ou seja, a variancia indica o quao afastados se encontram os seus valores do valor
esperado/real. O valor da variancia e o quadrado do valor do desvio padrao;
• Maximo/mınimo - valor maximo/mınimo de entre um conjunto de valores. Conhecendo o maximo
e o mınimo, e possıvel determinar o intervalo dos valores;
• Frequencia - mede a repetitividade em fenomenos cıclicos.
2.4 Metamodelos de Simulacao
Hoje em dia e extremamente importante avaliar o desempenho de um sistema real. Uma vez que
o sistema real pode nao ter o desempenho desejado, pode ser necessario ter que efectuar algumas
alteracoes. Porem, efectuar essas alteracoes no sistema real pode ser complicado de executar ou dis-
pendioso. Como tal, torna-se util a criacao de um modelo de simulacao, que corresponda a situacao
real que se pretenda simular. E usado este modelo de simulacao para testar o desempenho e o com-
portamento do sistema a um diverso conjunto de dados de entrada. Neste caso, o modelo de simulacao
deve ser o mais aproximado possıvel do real. De modo a avaliar o desempenho do sistema (atraves do
sistema de simulacao), e necessario avaliar os seus dados de entrada e os seus resultados e compre-
ender a relacao entre eles. Surge entao a necessidade da criacao de metamodelos, que se entendem
por modelos matematicos que relacionam o comportamento entre os dados de entrada do modelo de
simulacao e os respectivos resultados [7].
A representacao matematica da funcao entrada-saıda do modelo de simulacao e dada por:
y = g(v), (2.1)
em que y e a resposta do modelo e v o vector que contem os dados de entrada. O vector v pode
conter varios tipos de componentes que constituem o sistema que se pretende simular. No contexto
dos metamodelos, que representam “o modelo do modelo de simulacao”, a resposta y e dada pela
11
Figura 2.2: Relacoes entre Sistema Real, Modelo de Simulacao e Metamodelo.
seguinte expressao matematica:
y = f(x) + ε, (2.2)
onde f(x) representa a funcao aproximadora que constitui o metamodelo e ε representa o erro de
aproximacao e eventuais erros de calculo. Os metamodelos podem substituir o modelo de simulacao e
facultar uma melhor compreensao da relacao entre x e y, bem como analises rapidas tendo em vista a
optimizacao e a exploracao do desenho experimental.
Aquando da utilizacao de metamodelos, ha que ter em consideracao um conjunto de aspectos:
• A escolha da funcao f presente na equacao (2.2). Esta e normalmente descrita com base numa
combinacao linear de funcoes parametricas;
• O desenho experimental, que consiste na seleccao de um conjunto de pontos experimentais x =
(x1, x2, ..., xn), para cada observacao y, com o objectivo de ajustar f em relacao a g;
• A avaliacao da precisao do metamodelo ajustado atraves da construcao de intervalos de confianca,
testes de hipotese e/ou outros metodos de analise.
O desenho experimental e a avaliacao da precisao estao intimamente relacionados, pois a seleccao
do desenho experimental e determinado, em parte, pela sua influencia na avaliacao da precisao [8].
2.5 Taxonomia de Metamodelos
Os metamodelos podem ser classificados com base no modelo matematico utilizado para os des-
crever.
12
2.5.1 Metamodelos Polinomiais
Os metamodelos polinomiais sao metamodelos que utilizam uma unica funcao polinomial para apro-
ximar a resposta em todo o domınio de interesse. Os polinomios obedecem a seguinte forma geral:
f(x) = a0 + a1x+ a2x2 + a3x
3 + ...+ anxn. (2.3)
O grau do polinomio (n) e determinado pelo maior coeficiente que seja diferente de zero. Por exem-
plo, se a2 e diferente de zero, mas os coeficientes a3 e superiores sao iguais a zero, entao o polinomio e
de grau 2. Os diferentes polinominos podem assumir varias formas, dependendo do grau do polinomio,
como se demonstra nas figuras 2.3 e 2.4.
Figura 2.3: Graficos das funcoes f(x) = 3 (grau 0) a esquerda e f(x) = x (grau 1) a direita.
Figura 2.4: Graficos das funcoes f(x) = x2 (grau 2) a esquerda e f(x) = x3 (grau 3) a direita.
O uso de polinomios na construcao de metamodelos, devido a sua simplicidade, apresenta algumas
desvantagens. O uso de metamodelos polinomiais sao bons quando usados em problemas lineares.
Porem, na vida real, a nao-linearidade dos problemas que surgem torna-se muito frequente, pelo que
efectuar aproximacoes atraves destes metamodelos se torna, por vezes, irrealista.
2.5.2 Metamodelos racionais
Os metamodelos racionais sao os metamodelos baseados em funcoes racionais, ou seja, na razao
de polinomios. As funcoes racionais podem ser escritas na forma
f(x) =P (x)
Q(x), (2.4)
onde P (x) e Q(x) sao polinomios e Q(x) 6= 0. Nestas funcoes, e necessario verificar quando e que
o denominador se anula, uma vez que nesses pontos a funcao nao tem significado. Ao contrario
13
dos metamodelos polinomiais, que sao definidos apenas por uma funcao polinomial, os metamodelos
racionais sao definidos por dois polinomios, pelo que e possıvel construir um leque de curvas muito
superior.
Consideremos, como exemplo, as funcoes:
f(x) =x2
x+ 1(2.5)
f(x) =x3 + 2x2 + 7x+ 3
x2 + 5x+ 9. (2.6)
Os graficos destas funcoes estao representados na figura 2.5.
Figura 2.5: Graficos das funcoes f(x) = x2
x+1a esquerda e f(x) = x3+2x2+7x+3
x2+5x+9a direita.
Como podemos verificar, alcancaram-se novas curvas que nao seriam possıveis de alcancar recor-
rendo somente a uma unica funcao polinomial. Contudo, os problemas que surgem aquando do uso
dos metamodelos polinomiais sao os mesmos que surgem nos metamodelos racionais, relacionados
com a nao-linearidade dos problemas da vida real, uma vez que estes podem nao ser suficientes para
efectuar aproximacoes fiaveis.
2.5.3 Metamodelos baseados em splines
Uma funcao spline e uma funcao matematica definida por intervalos, delimitados por uma sequencia
de pontos, em que cada intervalo corresponde a um polinomio. Seja a = x1 < x2 < x3 < ... < xn = b
um conjunto de pontos ordenados, ou nos, contidos num qualquer intervalo [a; b]. Uma funcao spline de
ordem (m+ 1) e, portanto, uma funcao definida seccionalmente, por polinomios de grau m, com m− 1
derivadas contınuas nos nos [9].
2.5.3.A Representacao de uma funcao spline
As funcoes spline podem ser descritas formalmente usando a B-form e a pp-form. A pp-form de
uma funcao spline de ordem (m + 1) descreve a spline em termos dos seus nos x1, x2, ..., xn e dos
coeficientes dos polinomios θi,j que constituem as suas (n− 1) partes:
14
pi(x) =
m+1∑j=1
θi,j(x− xi)m+1−j , i = 1, ..., n− 1. (2.7)
Tendo em conta que a spline e constituıda por (n − 1) intervalos, e cada intervalo e definido por
um polinomio de ordem (m + 1), podemos representar os coeficientes dos diversos polinomios que
constituem a spline atraves de uma matriz (n− 1)× (m+ 1):
Θ =
θ1,1 θ1,2 ... θ1,m+1
θ2,1 θ2,2 ... θ2,m+1
......
...θn−1,1 θn−1,2 ... θn−1,m+1
(2.8)
A medida que sao usados mais pontos experimentais, o numero de linhas da matriz Θ, presente na
equacao (2.8), aumenta, permitindo que a representacao da funcao que relaciona os dados de entrada
com os resultados seja cada vez mais detalhada [9].
A B-form e uma forma de representar a spline durante a sua fase de construcao e e dada pela
expressao:
f(x) =
n∑j=1
Bj,k(x)βj , (2.9)
que descreve a spline como uma soma ponderada de B-splines (ver seccao seguinte) de ordem k, cujo
seu numero, n, tera de ser igual ou superior a soma de k − 1 com o numero de partes polinomiais que
constituem a spline. Na expressao anterior, os βj ’s sao os coeficientes da spline e Bj,k e a j-esima
B-spline de ordem k para a sequencia de nos t1 ≤ t2 ≤ ... ≤ tn+k. Em particular, Bj,k e uma funcao
polinomial nao-negativa por partes, de grau inferior a k, e zero fora do intervalo [tj ; tj+k] e e tal que∑nj=1Bj,k(x) = 1 em [tk; tn+1].
2.5.3.B B-splines
Uma curva B-spline e definida como uma combinacao linear de pontos de controlo e varias funcoes
base, sendo a sua representacao matematica dada por:
s(u) =∑
ciNni (u), (2.10)
onde ci sao os pontos de controlo e Nni (u) as funcoes base, que satisfazem determinadas propriedades
de continuidade. Schoenberg introduziu o nome de B-splines para estas funcoes [10]. A expressao
anterior define uma funcao contınua por intervalos.
Consideremos uma sequencia estritamente crescente de pontos de controlo, ai < ai+1, para todo o
i. Cada B-spline Nni (u) tem as seguintes propriedades [10]:
15
• Nni (u) e uma funcao polinomial de grau n por partes;
• Nni (u) e positiva no intervalo [ai, ai+n+1];
• Nni (u) e zero fora do intervalo [ai, ai+n+1];
• Nni (u) e contınua a direita.
Figura 2.6: B-splines de graus 0, 1 e 2, respectivamente.
2.5.3.C Splines de interpolacao (Interpolating splines)
Uma funcao spline que passe pelos pontos de controlo e chamada spline de interpolacao (interpo-
lating spline). Estas funcoes podem adquirir as mais variadas formas, sempre de acordo com o tipo
de spline que se esta a usar. As splines de interpolacao permitem obter boas aproximacoes, se forem
construıdas com base em dados/resultados suficientemente precisos [11].
Na figura 2.7, a esquerda, temos o exemplo de uma spline linear de interpolacao, controlada por
quatro pontos. Uma spline linear e definida como sendo um conjunto de segmentos de recta (polinomios
de grau 1), em que cada um deles representa o intervalo definido entre dois nos adjacentes. A direita,
esta representada uma spline cubica de interpolacao, com sete pontos de controlo. Uma spline cubica
(cubic spline) e uma curva que e construıda usando diferentes polinomios cubicos entre dois nos. Por
outras palavras, e uma curva cubica definida por diferentes intervalos, em que cada intervalo e definido
por um polinomio cubico, com segunda derivada contınua (ou seja, tem continuidade C2).
Figura 2.7: Exemplo de uma spline linear de interpolacao com 4 pontos de controlo (a esquerda) e de uma splinecubica de interpolacao com 7 pontos de controlo (a direita).
16
Como podemos verificar atraves da figura 2.7, a curva da spline linear nao apresenta nenhuma
suavidade, isto e, nao apresenta nenhuma ondulacao entre os pontos de dados, formando cantos nos
mesmos. Pelo contrario, podemos verificar que a curva da spline cubica apresenta alguma ondulacao
entre os pontos de dados, pelo que se torna numa funcao muito mais suave, em comparacao com a
funcao da spline linear.
2.5.3.D Splines de aproximacao (Smoothing splines)
Uma funcao spline que passe proximo dos pontos de controlo (xi, yi), mas nao necessariamente
por eles, e chamada de spline de aproximacao (smoothing splines).
A motivacao por detras das splines de aproximacao esta assente na relacao entre a precisao das
aproximacoes nos pontos conhecidos e a suavidade (ou regularidade) do modelo resultante. Estas
funcoes sao ajustadas por um parametro (λ), que e responsavel pela regularizacao da spline; este
parametro e chamado de smoothing parameter. Seja x1 < x2 < ... < xn, i ∈ Z uma sequencia de
observacoes, modeladas pela relacao Yi = µ(xi). A estimativa da funcao spline de aproximacao (µ) da
funcao µ e definida como sendo a funcao que minimiza:
n∑i=1
[Yi − µ(xi)]2 + λ
∫ xn
x1
µ′′(x)2dx. (2.11)
Na expressao anterior, o termo de precisao corresponde ao somatorio dos quadrados dos erros das
respostas do metamodelo obtidas em cada execucao. A parte da regularidade e representada pelo
integral do quadrado de alguma derivada da regiao experimental.
Figura 2.8: Exemplo de uma spline de aproximacao (com λ > 0).
Como ja vimos, a maior ou menor precisao das aproximacoes nos diversos pontos depende do
parametro λ (λ ≥ 0). Se λ = 0, a funcao de aproximacao passa pelos pontos, coincidindo, assim, com
a funcao de interpolacao. Deste modo, a medida que λ tende para 0 (λ→ 0), a spline de aproximacao
converge para a spline de interpolacao. A medida que λ aumenta (λ→∞), a estimativa converge para
o metodo dos mınimos quadrados. Este metodo permite estimar os parametros desconhecidos num
modelo de regressao linear. O metodo tem como objectivo encontrar o melhor ajuste para um conjunto
17
de dados, tentando minimizar a soma dos quadrados das diferencas entre os valores estimados e os
dados observados.
Figura 2.9: Exemplo de um modelo de regressao linear (metodo dos mınimos quadrados).
O valor de λ, embora possa ser escolhido com base na observacao do ajuste, pode tambem
ser calculado recorrendo a outros metodos, nomeadamente os metodos da Estimacao de Maxima
Verossimilhanca, Validacao Cruzada Ordinaria e Validacao Cruzada Generalizada. No metodo da
Validacao Cruzada Ordinaria (OCV), o parametro λ e obtido atraves de um processo iterativo. Este
processo encontra-se descrito em [12]. O metodo da Validacao Cruzada Generalizada (GCV) e um
processo que utiliza estimacoes do parametro λ atraves do metodo dos mınimos quadrados [13].
2.5.4 Metamodelos de Taguchi
A aproximacao de Taguchi introduz duas modificacoes aos metamodelos polinomiais. A primeira
consiste em considerar os erros independentes, mas a variancia e modelada explicitamente a depender
do vectorX, isto e, Var[εi] = σ2i (X), ondeX e o vector que contem as variaveis de decisao, por exemplo,
os termos de primeira ordem X1, X2, ... ou de ordens superiores. A segunda modificacao consiste em
combinar o metamodelo que descreve a resposta, y, sendo este da forma dos metamodelos polinomiais,
com o modelo que caracteriza σ2, atraves da expressao:
10 log
[E[Y 2]
σ2(X)
]=
m∑i=1
γipi(X). (2.12)
Este modelo, resultante da referida combinacao, envolve apenas termos lineares em X. Taguchi
pretende encontrar alguns componentes de X que tenham pequenos valores de γi em (2.12) e grandes
valores para os coeficientes dos polinomios em (2.3).
2.5.5 Metamodelos de Kriging ou de Correlacao Espacial
Os metamodelos de Kriging ou de correlacao espacial consistem numa aproximacao de modelacao
parametrica de regressao que partilha de algumas particularidades com as funcoes spline regulares [4].
18
A regularidade esperada da funcao e captada numa funcao de correlacao espacial. A hipotese deste
modelo e dada por:
y = f(x) + Z(x), (2.13)
onde f(x) e a parte polinomial e Z(x) e um processo estocastico Gaussiano com funcao de correlacao
espacial, que depende de determinados parametros, dado pela expressao:
R(u, v) = Cov(Z(u), Z(v)) = e−θ(u−v)p
. (2.14)
Na expressao (2.14), R(u, v) corresponde a funcao de correlacao espacial e determina a forma
como e feito o ajuste. Como tal, existem varias escolhas possıveis de R(u, v) para quantificar quao
rapido (θ) e quao regular (p) e a funcao quando se move do ponto u para o ponto v.
Segundo Kleijnen [14], este tipo de metamodelos sao suficientemente robustos para suportar dife-
rentes escolhas da funcao de correlacao espacial. Os metamodelos de Kriging, apesar de complexos,
sao extremamente flexıveis e sao obtidos bons resultados quando utilizados para aplicacoes deter-
minısticas [15].
2.5.6 Metamodelos baseados em Funcoes Base Radiais
O que foi descrito anteriormente diz respeito aos casos univariados, contudo existem problemas que
podem exigir funcoes aproximadoras adequadas para varias variaveis de entrada. Presume-se que um
sistema que utiliza dados multivariados possa ser descrito da seguinte forma [16]:
y = f(x1, ..., xn). (2.15)
O metodo das Funcoes Base Radiais (RBF) constitui uma alternativa para modelar problemas multi-
variados. O metodo usa combinacoes lineares de funcoes radiais simetricas, baseadas na distancia
euclidiana ou noutras metricas, para aproximar as funcoes f(x) [17].
Um exemplo sao as funcoes base multiquadraticas, que tem a seguinte forma:
f(x) =∑i
ai||x− xi||, (2.16)
onde xi diz respeito as entradas observadas e ||.|| representa a norma euclidiana. Os coeficientes ai
sao calculados atraves da interpolacao da funcao f com a verdadeira funcao nos pontos do desenho
experimental.
19
2.5.7 Metamodelos baseados em aproximacoes no domınio da frequencia
Pensando nas variacoes de uma funcao aproximadora f ao longo do seu domınio, em termos de
correlacao espacial, surge a ideia das funcoes base de Fourier para representar uma aproximacao do
programa de simulacao. Sempre que seja possıvel essa aproximacao, a decomposicao de Fourier e
baseada em funcoes base com suporte global. Por conseguinte, a precisao do ajuste depende muito
do cancelamento das oscilacoes das funcoes base.
2.5.8 Metamodelos baseados em Redes Neuronais
As redes neuronais requerem um conjunto de dados de entrada e os correspondentes valores das
saıdas. Elas representam uma ligacao de elementos simples de processamento capazes de processar
informacao em resposta a dados exteriores. O elemento de processamento e referido como sendo
um neuronio. Cada neuronio e ligado pelo menos a outro neuronio numa rede, como se fosse um
tecido. Uma rede e constituıda por celulas que estao organizadas em camadas. Uma rede neuronal
e constituıda por tres camadas distintas: a camada de dados (input layer ), a(s) camada(s) oculta(s)
(hidden layer ) e a camada de resultados (output layer ). A ligacao das celulas ao longo das camadas
representa a transmissao de informacao entre celulas. As redes neuronais sao baseadas nalguma
forma de modelo de aprendizagem (supervisionada, nao supervisionada ou reforcada) e sao treinadas
dando repetidos exemplos de dados e respectivos resultados. Desta forma, a rede e capaz de prever
os valores de saıda. A existencia de varios nos e camadas permite que o metodo consiga aproximar
modelos nao-lineares, uma vez que nao necessita de qualquer tipo de conhecimento previo acerca do
comportamento das respostas [18].
2.6 Construcao de Metamodelos
O ajuste de um metamodelo consiste no processo de aplicacao de tecnicas matematicas e es-
tatısticas (e.g. splines, polinomios, redes neuronais, etc.) a um conjunto de entradas/saıdas, com o
intuito de estimar os parametros do metamodelo. Numa fase posterior da construcao do metamodelo,
depois de ser efectuado o ajuste, e necessario realizar alguns testes e efectuar a validacao do mesmo.
Nada garante que, apos a construcao do metamodelo, este seja credıvel e fiavel para ser aplicado como
substituto do modelo de simulacao.
2.6.1 Processo de construcao
Os objectivos que se prendem neste processo sao [19]:
20
• Compreender o sistema real;
• Prever valores das variaveis de resposta;
• Efectuar a optimizacao do modelo de simulacao;
• Auxiliar na verificacao e validacao do modelo de simulacao.
Kleijnen e Sargent [19] formalizaram uma metodologia para se efectuar o ajuste dos metamodelos
ao respectivo modelo de simulacao:
1. Determinar o objectivo do metamodelo: nesta fase, sao determinados quais sao os objectivos
gerais da aplicacao do metamodelo e sao seleccionadas as variaveis importantes para atingir
esses objectivos.
2. Identificar as variaveis de entrada do metamodelo e as suas caracterısticas: para cada variavel
de entrada, e necessario determinar as suas caracterısticas. Por exemplo, sera necessario deter-
minar se as variaveis sao determinısticas ou aleatorias, bem como a escala para essas variaveis.
Se o metamodelo possuir variaveis independentes, tambem sera necessario identifica-las.
3. Especificar o domınio da aplicabilidade (regiao experimental): neste passo, deve determinar-se o
domınio dos valores referentes aos factores em relacao aos quais o metamodelo sera posterior-
mente validado.
4. Identificar as variaveis de saıda (ou respostas) do metamodelo e as suas caracterısticas: as
respostas deverao ser identificadas e classificadas, a semelhanca das variaveis de entrada.
5. Especificar a precisao pretendida para o metamodelo: e importante especificar a precisao para
as respostas do metamodelo para o seu domınio de aplicabilidade, tendo em conta o modelo de
simulacao e o problema real.
6. Determinar as medidas de validacao do metamodelo: neste passo, determinam-se as metricas
de validacao do metamodelo (e.g. erro absoluto, etc.).
7. Especificacao do metamodelo propriamente dito: selecciona-se o metamodelo (e.g. splines, po-
linomial, etc.) a utilizar. De seguida, e escolhida a forma do metamodelo, dado o tipo escolhido
anteriormente (por exemplo, caso a escolha tenha sido um metamodelo polinomial, determinar se
sera cubico, quadratico, etc.). Numa fase posterior, o metamodelo tera de ser revisto e avaliado,
no sentido de se verificar se e adequado e cumpre os seus objectivos.
8. Concepcao do desenho experimental: e determinado o tipo de desenho a ser utilizado e e feita
uma amostra dos pontos (dados) que se pretendem empregar na construcao do metamodelo.
21
9. Ajuste do metamodelo: executa-se o modelo de simulacao, visando a obtencao de valores de en-
trada e de saıda. Fornece-se os dados obtidos ao metamodelo. A partir destes dados, estimam-se
os parametros desconhecidos do metamodelo. Avaliam-se estas estimacoes, utilizando criterios
matematicos e estatısticos. Caso os resultados deste passo nao forem satisfatorios, entao regressa-
se ao passo 7.
10. Determinar a validade do metamodelo ajustado: efectua-se a validacao do metamodelo, tendo em
conta a consideracao do que foi estipulado no passo 6. Se o metamodelo satisfazer as metricas de
validacao anteriormente estipuladas, entao considera-se o metamodelo valido para a simulacao,
caso contrario regressa-se ao passo numero 7.
Os dois ultimos pontos, dada a sua importancia, merecem atencao especial.
2.6.2 Estimacao dos Parametros Desconhecidos
A estimacao de um metamodelo consiste em utilizar tecnicas estatısticas para estimar os parametros
desconhecidos do metamodelo hipotetico. De acordo com o metamodelo escolhido para efectuar a
aproximacao, iremos ter varios parametros desconhecidos, de tal modo que estes tem que ser estima-
dos. Assim sendo, temos:
y = f(x; θ) + ε, (2.17)
em que θ sera o conjunto de parametros a estimar. Como o proprio nome indica, estes valores serao
somente uma estimativa dos parametros, uma vez que os valores reais sao desconhecidos. Quan-
tos mais parametros tivermos, mais dados serao necessarios para os estimar. No entanto, aquando da
estimacao de um parametro, quantos mais dados nos tivermos, menor sera o intervalo de confianca cal-
culado sobre esse parametro, uma vez que estaremos mais proximos do valor real. Estes parametros
desconhecidos sao estimados recorrendo a uma funcao minimizadora. Cada metodo tem a sua propria
funcao minimizadora. Supondo um conjunto de dados (xi, yi), com i = 1, 2, ..., n, nos desejamos en-
contrar uma funcao minimizadora f tal que os valores de yi sejam o mais aproximados possıvel dos
valores de f(xi; θ).
Por exemplo, se considerarmos o metodo dos mınimos quadrados, a sua funcao minimizadora e
aquela que minimiza a soma dos quadrados dos erros (ou resıduos), dada pela expressao:
SSE =
n∑i=1
[yi − f(xi; θ)]2. (2.18)
22
2.6.3 Validacao de Metamodelos e Testes
Kleijnen e Sargent [19] definem a validacao de metamodelos como a verificacao de que um modelo,
dentro do seu domınio de aplicabilidade, possui um intervalo de precisao coerente com a sua aplicacao.
A validacao relaciona o metamodelo com o modelo de simulacao, assim como requer conhecimento
do problema real e a precisao requerida para o metamodelo. Nesta fase, o objectivo e saber como
caracterizar e determinar a fidelidade do metamodelo.
A validacao de metamodelos pode ser descrita em tres passos [4]:
1. Verificacao da adequacao do metamodelo: neste passo, sao verificadas se as hipoteses distri-
bucionais para a parte estocastica do metamodelo sao efectivamente satisfeitas. De seguida,
experimenta-se ate que ponto a parcela determinıstica do metamodelo e adequada em termos
estatısticos. Por fim, verifica-se se a capacidade previsiva do metamodelo e satisfatoria.
2. Validacao do metamodelo com respeito ao modelo de simulacao: e verificado se o metamodelo
consiste numa aproximacao valida e fiavel do modelo de simulacao, dentro do seu domınio de
aplicabilidade. Esta verificacao e feita com base num procedimento de particao de resultados.
3. Validacao do metamodelo com respeito ao problema real: por fim, confirma-se se o metamodelo
esta suficientemente proximo do problema real, dentro do seu domınio de aplicabilidade.
Existem varios metodos para estimar se o metamodelo e fiavel e consiste numa aproximacao valida.
Usualmente, sao calculados os erros de cada metamodelo e, no final, e escolhido o metamodelo com
o menor erro, embora esta escolha dependa do sistema usado como objecto de estudo. Os principais
metodos usados na estimacao de erros dos metamodelos sao os metodos de validacao cruzada (cross-
validation). O conceito das tecnicas de validacao cruzada e efectuar a particao do conjunto de dados em
sub-conjuntos mutuamente exclusivos e, posteriormente, utilizar-se alguns desses sub-conjuntos para
a estimacao dos parametros do modelo (estes dados servem de treino para o sistema) e os restantes
para realizar a validacao do metamodelo (dados de validacao e de teste).
2.7 Sistema M/M/1
O sistema M/M/1 e o sistema de filas de espera mais simples [20]. Este sistema e muito usado para
a simulacao, uma vez que se aproxima a varias situacoes da realidade. Alem disso, e possıvel calcular
os resultados teoricos para as mais diversas medidas de desempenho deste sistema. Como tal, caso
queiramos simular um sistema M/M/1, podemos posteriormente comparar os resultados praticos com
os resultados teoricos. Neste sistema, existe apenas um unico servidor e uma unica fila de espera, com
capacidade ilimitada. Os pedidos chegam de acordo com um processo de Poisson com uma taxa λ,
em que a taxa de servico assume uma distribuicao exponencial, com parametro µ.
23
Figura 2.10: Sistema de filas de espera M/M/1.
Atraves da taxa de chegadas λ e da taxa de servico µ (dados de entrada) do sistema, e possıvel
calcular as mais diversas respostas.
O factor de utilizacao do sistema ρ, isto e, a percentagem de tempo que o servidor se encontra
ocupado, e calculado atraves da expressao ρ = λ/µ. Na realidade, ρ e o parametro caracterıstico de
um sistema M/M/1, pois os valores individuais de λ e µ funcionam apenas como factores de escala.
Caso ρ seja superior a 1, significa que a taxa de chegadas e superior a taxa de servico do sistema,
pelo que o sistema nao entra em equilıbrio e o numero de clientes no sistema cresce indefinidamente.
Como tal, deve considerar-se uma taxa de chegadas inferior a taxa de servico.
De entre os valores teoricos de um sistema M/M/1, a probabilidade de nao haver nenhum cliente no
sistema e dada por P0 = 1− ρ = 1− λ/µ. Ha outras grandezas que podem ser calculadas, sejam elas
variaveis discretas ou contınuas. Como exemplo de variaveis contınuas, e possıvel calcular o tempo
medio que um cliente despende no sistema, isto e, o tempo que despende na fila de espera e a ser
servido, W, bem como o tempo medio dispendido na fila de espera, Wq:
W =1
µ− λ= Wq +
1
µ=
1
µ(1− ρ)(2.19)
Wq = W − 1
µ=
λ
µ(µ− λ)=
ρ
µ(1− ρ). (2.20)
No que se refere a variaveis discretas, e possıvel calcular o numero medio de clientes no sistema,
L, bem como o numero medio de clientes na fila de espera, Lq:
L = Lq + ρ =ρ
1− ρ=
λ
µ− λ(2.21)
Lq =λ2
µ(µ− λ)=
ρ2
1− ρ. (2.22)
Finalmente, e possıvel calcular as variancias das quatro grandezas descritas anteriormente, em
24
funcao do factor de utilizacao e da taxa de chegadas. A variancia do tempo medio no sistema, Var[W ],
e a variancia do tempo medio na fila de espera, Var[Wq], sao dadas por:
Var[W ] =1
(1− ρ)2µ2(2.23)
Var[Wq] =ρ(2− ρ)
(1− ρ)2µ2. (2.24)
Por seu lado, a variancia do numero medio de clientes no sistema, Var[L], e a variancia do numero
medio de clientes na fila, Var[Lq], sao dadas por:
Var[L] =ρ
(1− ρ)2(2.25)
Var[Lq] =ρ2(1 + ρ− ρ2)
(1− ρ)2. (2.26)
Assim sendo, e possıvel fazer um estudo da dependencia da variancia de qualquer uma das gran-
dezas anteriores em funcao de ρ. Neste caso, vamos analisar a variancia do tempo medio no sistema,
Var[W ], em funcao de ρ, fixando µ = 1.
Figura 2.11: Var[W ] (eixo vertical) em funcao de ρ (eixo horizontal), com µ = 1.
Ao fazer variar µ, o comportamento do grafico da funcao nao se altera. Apenas sao alterados os
valores da saıda, neste caso, os valores de Var[W ]. Como referido atras, nao faz sentido estudar a
funcao para valores ρ ≥ 1. Sendo assim, 0 ≤ ρ < 1. Como e possıvel verificar atraves da figura 2.11,
a variancia aumenta a medida que aumenta o factor de utilizacao. A variancia aumenta consideravel-
mente a medida que ρ→ 1, nao sendo possıvel calcular o seu valor para ρ = 1, tal que:
limρ→1
Var[W ] = limρ→1
1
(1− ρ)2= +∞, µ = 1. (2.27)
25
3Arquitectura
Conteudo
3.1 Sistemas a utilizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Construcao dos metamodelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Respostas de interesse e medidas de desempenho . . . . . . . . . . . . . . . . . . . 28
3.4 Adequacao do smoothing parameter face a variancia . . . . . . . . . . . . . . . . . . 29
3.5 Metodologia de Avaliacao do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
26
Neste capıtulo, descreve-se a arquitectura que sera utilizada para a realizacao do trabalho. Sera
tambem apresentada uma metodologia para a avaliacao do mesmo.
3.1 Sistemas a utilizar
Aquando da concepcao da solucao, surge a necessidade do uso de um ou mais sistemas que
sirvam de suporte aquilo que se pretende implementar, neste caso, os metamodelos. Existem sistemas
bastante utilizados e conhecidos no ambito da simulacao e que permitem retirar conclusoes validas e
consistentes, relativamente ao comportamento dos metamodelos a utilizar.
O sistema M/M/1 modela a taxa de chegadas dos clientes a fila de espera com base no processo
de Poisson e assume que:
• A taxa de servico tem uma distribuicao exponencial e e constante;
• Existe um unico servidor;
• O tamanho da fila de espera e infinito;
• O numero de utilizadores e ilimitado.
Estes sistemas tem formulas teoricas para varias grandezas e para as respectivas variancias, pelo
que se tornam num importante meio de comparacao durante a realizacao experimental.
Alem do sistema M/M/1, ir-se-a tambem utilizar uma rede de encaminhamento de pacotes. Em-
bora nao hajam formulas teoricas para este sistema, ir-se-a modela-lo recorrendo a varios tipos de
metamodelos, nomeadamente, metamodelos polinomiais e metamodelos baseados em splines. Poste-
riormente, sera efectuada uma comparacao entre os ajustes resultantes do uso desses metamodelos.
A arquitectura da estrutura da rede de encaminhamento de pacotes esta presente na figura 3.1,
onde as mensagens chegam atraves de uma rede de tres filas com capacidade limitada. Cada mensa-
gem requer um tempo de processamento fixo, seguido por um processo de separacao que reprocessa
algumas das mensagens. O objectivo e expressar a parte do encaminhamento do sistema como um
metamodelo polinomial e, em seguida, compara-lo com um metamodelo baseado em splines.
3.2 Construcao dos metamodelos
Para a construcao dos metamodelos, pretende-se aplicar os princıpios apresentados na seccao
referente a construcao de metamodelos (ver seccao 2.6). A primeira parte do processo diz respeito
a execucao do modelo de simulacao e a obtencao dos resultados. A fase que se segue envolve a
construcao especıfica do metamodelo. O processo de ajuste e um processo iterativo, pois envolve
27
h-
-
- - -
6
?
-
�
6
?l = Exp(8) t = Exp(1)p = 0.4
p = 0.4
p = 0.2
p = 0.2 t = 6 p = 0.15
p = 0.85
s = 3
c = 16
s = 1
c = 20
t = Exp(2)c = 13
s = 3
t = U(3, 6)c = Inf
s = 1
t = U(1, 2)c = Inf
s = 2
p = 0.8
t = Exp(3)
Figura 3.1: Rede de encaminhamento de pacotes: c = capacidade da fila, s = numero de servidores, t = tempo deservico, l = tempo entre chegadas e p = probabilidade do caminho.
experiencias sistematicas a procura do melhor ajuste. Por exemplo, se usarmos os polinomios, teremos
de procurar qual o grau do polinomio mais adequado.
Neste trabalho, iremos usar os metamodelos polinomiais como base, partindo depois para os me-
tamodelos baseados em splines. Iremos focar-nos nas splines de aproximacao, controladas pelo
parametro λ (smoothing parameter ), tendo em conta que, para λ = 0, estas convergem nas splines
de interpolacao. Para o calculo deste parametro, existem um conjunto de metodos matematicos, que
deverao ser implementados, de modo a alcancar-se o melhor valor. Estes metodos foram referidos na
seccao das splines (ver seccao 2.5.3).
Para se efectuar a validacao, iremos recorrer a um cojunto de metricas, nomeadamente:
• Intervalos de confianca, para se estabelecer os limites da validacao;
• Cross-validation, para avaliar a precisao do metamodelo;
• MSE (Mean Squared Error ) ou SSE (Sum of Squared Errors), para quantificar a diferenca entre
os valores estimados e os valores reais.
No final, sera efectuada uma comparacao dos valores metamodelados pelos polinomios e dos valo-
res metamodelados pelas splines, de forma a verificar quais constituem uma melhor aproximacao aos
sistemas que vamos utilizar.
3.3 Respostas de interesse e medidas de desempenho
Durante a fase da concepcao da solucao, importa saber quais sao as respostas de interesse que
queremos retirar dos sistemas que vamos utilizar. Como ja vimos anteriormente, o mesmo sistema
pode ter varios tipos de dados de entrada e varias respostas. Neste caso, a unica resposta de interesse
sera o tempo no sistema. Como ja foi referido, o tempo no sistema descreve o tempo que o cliente
demora desde o momento em que este entra no sistema ate ao momento em que e realizado o seu
28
despacho. O termo “cliente”, nos sistemas de filas de espera, e um termo generico, que pode abranger,
por exemplo, processos a executar que esperam pelo processador, pacotes que chegam a um router
para serem encaminhados ou pessoas que se encontram a espera de serem atendidas numa caixa
de supermercado. Esta resposta torna-se importante, na medida em permite avaliar o desempenho
do sistema. Quanto menor for o tempo dispendido pelo cliente no sistema, mais rapido sera o seu
despacho, logo melhor sera o desempenho do sistema.
Depois de escolhidas as respostas de interesse, e preciso escolher quais as medidas de desempe-
nho que vamos utilizar sobre os dados recolhidos dessas mesmas respostas. Neste caso, as medidas
de desempenho que vamos utilizar sao a media, a variancia e o valor maximo.
No contexto deste trabalho, os clientes serao os pacotes que deverao passar pelo processo de en-
caminhamento atraves de uma rede ou ligacao. Imaginemos uma rede de encaminhamento de pacotes
que faz a ligacao entre dois pontos, o emissor e o receptor. Ao enviar uma mensagem, o emissor fica
a espera da confirmacao do receptor que recebeu essa mensagem, caso contrario este nao sabera se
o pacote foi entregue com sucesso ou nao. Se o emissor nao receber a confirmacao, tera de reenviar
a mensagem ate receber a confirmacao por parte do receptor. Assim sendo, e importante estudar o
tempo maximo que um pacote dispende no sistema, com vista a definir um limiar de tempo, caso o
receptor nao receba a confirmacao, para efectuar o reenvio da mensagem. Em relacao a media, ana-
lisar os tempos medios sera a maneira de estudarmos o comportamento do sistema. Ja a variancia
permitira analisar estatisticamente os resultados, de modo a verificar se sao validos e fiaveis.
3.4 Adequacao do smoothing parameter face a variancia
Como ja foi referido na seccao das splines, mais propriamente nas splines de aproximacao (ver
seccao 2.5.3.D), o smoothing parameter e o parametro responsavel pela maior ou menor regularizacao
deste tipo de funcoes. Ou seja, e ele que determina se a distancia entre a funcao de aproximacao e
os pontos e maior ou menor. Como tal, o smoothing parameter esta directamente relacionado com a
variancia. Sendo esta uma medida de dispersao estatıstica, podemos referir que o smoothing parameter
se adequa face ao valor da variancia. Se a variancia permitida for maior, significa que a funcao de
aproximacao podera tolerar uma maior distancia dos pontos de controlo, logo o valor do smoothing
parameter tambem podera ser maior. Pelo contrario, se a variancia permitida for menor, entao a funcao
de aproximacao tolera uma distancia inferior em relacao aos pontos de controlo, o que se traduz num
valor do smoothing parameter menor. Assim sendo, a medida que a variancia diminui, o smoothing
parameter tambem diminui, logo tendera para a spline de interpolacao, passando essa funcao pelos
pontos de controlo. Por outro lado, a medida que a variancia aumenta, o smoothing parameter tambem
aumenta, convergindo a funcao de aproximacao para uma funcao de regressao linear.
29
3.5 Metodologia de Avaliacao do Trabalho
A avaliacao do trabalho que se pretende realizar reside na determinacao de uma metodologia ade-
quada para a apreciacao dos resultados a serem obtidos.
Para a avaliacao deste trabalho, a metodologia proposta passa por testar diversos metamodelos
polinomiais e baseados em splines nos sistemas apresentados e, posteriormente, verificar a qualidade
do ajuste. Procuraremos alcancar o melhor ajuste possıvel, independentemente do tipo de metamodelo
que iremos utilizar. Assim que se verificar que os metamodelos cumprem os requisitos, sera efectu-
ada uma comparacao entre as aproximacoes provenientes dos metamodelos utilizados, com o intuito
de verificar se, de facto, as funcoes spline conseguem estabelecer melhores aproximacoes do que os
polinomios. Esta comparacao sera efectuada com base nos dois sistemas apresentados (ver seccao
3.1).
30
4Realizacao
Conteudo
4.1 Processo de Realizacao: Do AweSim para o Matlab . . . . . . . . . . . . . . . . . . . 32
4.2 Sistema M/M/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 Rede de encaminhamento de pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
31
Neste capıtulo, descreve-se o processo de realizacao do trabalho a desenvolver. Para alem disso,
serao efectuados a recolha e o tratamento dos resultados que serao utilizados na realizacao do trabalho.
4.1 Processo de Realizacao: Do AweSim para o Matlab
Para a realizacao deste trabalho, foi necessario a instalacao de dois programas, o AweSim e o
Matlab. A versao do AweSim utilizada foi a versao 3.0, enquanto que a versao do Matlab usada foi a
versao 7.0.
O AweSim e um programa que permite o desenho e a simulacao de um sistema real. Atraves do
modo AweSim Network Builder, e possıvel construir toda a rede dos sistemas a utilizar, atraves da
adicao e remocao de nos. Por exemplo, para a simulacao de um sistema M/M/1, e necessario adicionar
um no CREATE, um no QUEUE, um no EVENT e um no TERMINATE. Em cada um deles, e necessario
especificar os parametros correspondentes, bem como as variaveis onde devem ficar guardados os
dados.
Na figura 4.1 apresenta-se o desenho do sistema M/M/1, enquanto que na figura 4.2 se apresenta
o desenho da rede de encaminhamento de pacotes, ambos no AweSim.
Figura 4.1: Desenho do sistema M/M/1 no AweSim Network Builder.
• O no CREATE [21]:
O no CREATE gera entidades e redirecciona-las para o sistema sobre as actividades que emanam
do no CREATE. Neste no sao especificados varios parametros, nomeadamente, o tempo para
a primeira entidade que e criada e o tempo entre as criacoes das diversas entidades apos a
primeira. As entidades vao sendo geradas ate que seja atingido um determinado limite. Quando
esse limite for atingido, o no CREATE para de gerar entidades.
O tempo que corresponde ao momento no qual uma entidade e criada pode ser atribuıda a uma
variavel. Este tempo e referido como sendo a marca temporal da entidade e pode ser guardada
numa determinada variavel. No caso do sistema M/M/1 (primeiro no na imagem 4.1), estes tempos
vao ficar guardados na variavel ATRIB[1].
• O no QUEUE [21]:
32
Figura 4.2: Desenho da rede de encaminhamento de pacotes no AweSim Network Builder.
33
O no QUEUE e uma localizacao no sistema onde as entidades esperam pelo servico. Quando
uma entidade chega a um no QUEUE, a sua disposicao depende do estado actual do servidor que
se segue a seguir ao no QUEUE. Se o servidor se encontrar inactivo, a entidade passa pelo no
QUEUE e segue imediatamente para a actividade do servico. Se nenhum servidor estiver activo,
a entidade espera no no QUEUE ate que um servidor consiga processa-la. Quando um servidor
fica disponıvel, a entidade e retirada automaticamente da fila e o servico e iniciado.
Quando uma entidade espera pelo servico no no QUEUE, ela e guardada num ficheiro que
mantem os seus atributos e a posicao relativa da entidade em relacao as outras entidades que
estao a espera no mesmo no QUEUE. A ordem atraves da qual as entidades esperam na fila pode
ser especificado, segundo determinadas regras. A regra usada em ambos os sistemas (M/M/1 e
rede de encaminhamento) foi a regra FIFO (First-In, First-Out), que delega que a primeira entidade
a entrar na fila e a primeira a sair da mesma.
No no QUEUE e possıvel especificar diversos parametros, nomeadamente o numero inicial das
entidades na fila, bem como a capacidade da fila. No caso do no QUEUE presente no sistema
M/M/1 (segundo no na imagem 4.1), o numero inicial das entidades foi especificado como 0 e a
capacidade da fila e infinita (INF ).
• O no EVENT [21]:
O no EVENT e incluıdo num sistema para servir de interface de uma parte do sistema atraves
do codigo do respectivo evento, que e escrito pelo utilizador. O no EVENT faz com que a funcao
EVENT seja chamada cada vez que uma entidade chega a esse respectivo no. O no EVENT
(terceiro no na imagem 4.1) contem varios campos, onde se especifica o codigo que deve ser
executado, bem como o numero maximo de actividades que se seguem depois do processamento
deste no.
Tanto para o sistema M/M/1 como para a rede de encaminhamento de pacotes, foram desenvol-
vidas rotinas na linguagem C, que interagem com a simulacao no AweSim. Nestas rotinas, foram
desenvolvidas as respectivas funcoes EVENT, que permitiram calcular os tempos de cada enti-
dade, tempos esses que ficaram registados em varios ficheiros. Ou seja, atraves destas rotinas,
foi possıvel, ao correr o programa de simulacao, gerar ficheiros de texto onde ficavam guardados
os valores dos tempos que cada uma das entidades despendia no sistema. Os valores presen-
tes nestes ficheiros de texto serao posteriormente usados em rotinas no Matlab para efectuar os
calculos pretendidos. Estas rotinas estao apresentadas no Apendice A.
• O no TERMINATE [21]:
O no TERMINATE e usado para destruir ou apagar entidades do sistema. Ele pode ser usado para
especificar o numero de entidades que devem ser processadas numa simulacao. Este numero de
34
entidades e referido como valor de termino. No caso do sistema M/M/1 (quarto no na imagem
4.1), o numero de entidades e especificado na variavel LL[1]. Quando sao empregues multiplos
nos TERMINATE, a simulacao termina, assim que se atinge o primeiro valor de termino. Se o
no TERMINATE nao tiver um valor de termino, a entidade e destruıda e mais nenhuma accao e
efectuada.
4.2 Sistema M/M/1
O plano para efectuar a analise de resultados no sistema M/M/1 e o seguinte:
1. Simular o sistema no AweSim;
2. Usar o Matlab para efectuar o tratamento dos resultados provenientes dos ficheiros resultantes
da simulacao anterior:
(a) Retirar o vies inicial dos resultados atraves do Teste de Permutacoes de Yucesan;
(b) Utilizar o metodo das Medias de Lotes (Batch-Means) para calcular as medidas de desem-
penho pretendidas.
Apos a simulacao do sistema M/M/1 no AweSim, o resultado e um conjunto de ficheiros, em que
cada um destes ficheiros corresponde a um valor diferente de ρ (factor de utilizacao). Foram utilizados
os seguintes valores de ρ:
ρ = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95}
Cada um destes ficheiros contem os valores do tempo no sistema registado para as diferentes
entidades. Foi estabelecido um limite maximo de 20000 entidades. Ou seja, foram gerados varios
ficheiros (cada um para o respectivo valor de ρ), cada um deles com 20000 valores diferentes, que
correspondem aos diversos tempos registados para as diversas entidades.
De notar que o numero de pontos experimentais aumenta no final. Isto deve-se ao facto de se
tratarem de zonas onde os valores da resposta variam mais, daı a necessidade de um estudo mais
detalhado do comportamento do sistema para valores elevados de ρ.
Para se efectuar uma correcta analise dos resultados, foram usados alguns metodos descritos no
capıtulo 2:
1. Como se pretende estudar o sistema no seu estado estacionario e, inicialmente, a fila de espera
esta vazia, foi necessario retirar o vies inicial para cada um dos ficheiros. Para tal, foi utilizado o
Teste de Permutacoes de Yucesan, descrito na seccao 2.3.1. Este metodo permite determinar o
numero de lotes (batches), o que permitiu determinar o numero de observacoes correspondente
ao vies inicial;
35
2. Posteriormente, utilizando o metodo das Medias de Lotes (Batch-Means), calculou-se as medias
de cada lote (x1, x2, x3, ...) e, de seguida, a variancia dessas medias (σ2x) e a media das medias
(x).
Para a execucao do Teste de Permutacoes de Yucesan, foi desenvolvida uma funcao em Matlab,
que esta descrita no Apendice A. O cabecalho desta funcao e o seguinte:
1 yucesan(y, b, m, corr, NS, NL);
onde y e o vector das observacoes recolhidas (a dimensao devera ser de, pelo menos, b ×m), b e o
numero de lotes inicial, m e o tamanho inicial dos lotes, corr e o valor da correlacao maxima permitida
entre os lotes, NS e o numero de trocas (shuffles) e NL e o nıvel de significancia desejado.
O resultado desta funcao descreve o numero de observacoes que deve estar presente em cada lote,
bem como o numero de observacoes que devem ser removidas (correspondentes ao vies inicial). O
valor da variavel corr e usado como um limiar, uma vez que se pretende que o valor da correlacao entre
os diversos lotes seja o mais baixo possıvel.
Como y e um vector com todas as observacoes recolhidas, foi necessario executar uma rotina em
Matlab, para ler o valor das observacoes do ficheiro para uma variavel e, de seguida, executar a funcao
yucesan.
A instrucao
1 y = load('mm1rho10.txt');
permitiu ler todos os valores presentes no ficheiro mm1rho10 (ficheiro com os valores dos tempos no
sistema das varias observacoes para ρ = 0.1) para a variavel y. De referir que esta instrucao apenas
funciona caso o ficheiro se encontre na mesma directoria.
O proximo passo e executar a funcao yucesan para o vector y. Porem, este passo apresenta alguns
problemas. Como o cabecalho da funcao indica, e necessario fornecer alguns parametros iniciais, que
podem ser difıceis de escolher a partida. Por exemplo, a escolha do numero de lotes inicial e o tamanho
inicial dos lotes pode revelar-se um problema, uma vez que o valor da correlacao entre os lotes esta
dependente desta escolha e este valor necessita de ser suficientemente baixo para garantir o maior
grau de independencia possıvel entre as observacoes dos diferentes lotes.
Segundo [22], uma boa escolha sera
1 yucesan(y, 50, 50, 0.05, 999, 0.1);
36
onde e garantido um valor relativamente baixo para a correlacao entre os lotes e um numero suficien-
temente elevado para o numero de trocas. Como foi dito anteriormente, o valor da correlacao entre os
lotes precisa de ser relativamente baixo para garantir a independencia entre os lotes. Em relacao ao
numero de trocas, este quer-se suficientemente elevado para permitir todas as trocas necessarias, de
modo a garantir esse mesmo valor da correlacao.
Neste caso, especificou-se um valor de correlacao de 0.05, funcionando este valor como um limiar.
Ou seja, este e o valor maximo permitido para a correlacao entre os lotes. Porem, ao executarmos a
instrucao anterior, o resultado do programa diz que nao e possıvel alcancar o valor pretendido para a
correlacao. Entao, apos alguns testes, verificou-se que, para a instrucao
1 yucesan(y, 25, 25, 0.05, 999, 0.1);
o resultado do programa foi o seguinte:
Numero de observacoes por lote 225Numero de observacoes que constituem o bias 450
Tabela 4.1: Resultados da funcao yucesan para o sistema M/M/1, com ρ = 0.1.
Seguidamente, para calcular as medias dos diversos lotes e, posteriormente, a media e a variancia
dessas medias, criou-se uma funcao, chamada meanstd, que recebe 3 parametros: o ficheiro de texto
com os valores das varias observacoes, o numero de observacoes por lote e o numero de observacoes
que constituem o vies inicial. Com base nesses parametros, a funcao remove as observacoes corres-
pondentes ao vies inicial e calcula o numero de lotes. Com estes valores, foi entao possıvel calcular as
medias de cada lote, bem como a media e a variancia dessas medias. O codigo da funcao meanstd
esta presente no Apendice A.
Como tal, executou-se a funcao com os valores retirados da funcao yucesan:
1 meanstd('mm1rho10.txt', 450, 225);
cujos resultados estao presentes na tabela 4.2.
ρ x σx σ2x
0.1 0.1110 0.0084 7.1328−5
Tabela 4.2: Resultados para o sistema M/M/1 com ρ = 0.1.
Para ρ = 0.2, executaram-se as instrucoes
1 y = load('mm1rho20.txt');
37
2 yucesan(y, 25, 25, 0.05, 999, 0.1);
cujos resultados foram os seguintes:
Numero de observacoes por lote 725Numero de observacoes que constituem o bias 725
Tabela 4.3: Resultados da funcao yucesan para o sistema M/M/1, com ρ = 0.2.
Ao executar a funcao meanstd para os valores anteriores
1 meanstd('mm1rho20.txt', 725, 725);
obtiveram-se os resultados presentes na tabela 4.4.
ρ x σx σ2x
0.2 0.2507 0.0125 1.5749−4
Tabela 4.4: Resultados para o sistema M/M/1 com ρ = 0.2.
Este processo foi repetido para todos os valores de ρ anteriormente especificados. Na tabela 4.5,
sao apresentados os parametros de entrada e os resultados da funcao yucesan para todos os valores
de ρ.
ρ b (inicial) m (inicial) Numero de observacoespor lote (batchSize)
Numero de observacoesdo vies inicial (bias)
0.1 25 25 225 4500.2 25 25 725 7250.3 50 50 50 6500.4 50 50 350 3500.5 50 50 250 62500.6 50 50 150 30000.7 60 60 260 39000.75 25 25 160 40000.8 50 50 250 47500.85 25 25 325 74750.9 15 15 115 16100.95 10 10 1310 5240
0.5 (*) 25 25 125 20000.9 (*) 40 40 240 6000
Tabela 4.5: Resultados da funcao yucesan para o sistema M/M/1, para os varios valores de ρ: b = numero de lotesinicial e m = tamanho inicial dos lotes.
Como e possıvel observar atraves da tabela 4.5, os valores de b e m nem sempre sao constantes.
Fez-se variar estes valores para conseguir obter resultados viaveis. Por exemplo, para ρ = 0.5, com
b = 25 e m = 25, nao foi possıvel alcancar um nıvel de significancia de 0.1. Outro exemplo, desta vez
para ρ = 0.85, ao usar b > 25 e m > 25, nao foi possıvel alcancar um valor de 0.05 para a correlacao
38
entre os lotes. O mesmo aconteceu para ρ = 0.90 com valores de b > 15 e m > 15. De notar que, para
valores muito elevados de ρ, o numero inicial de observacoes por lote tem de ser reduzido. So assim foi
possıvel alcancar o valor estipulado para a correlacao entre os lotes, o que leva a concluir que quanto
maior for o numero de observacoes por lote, maior sera a correlacao entre as mesmas.
Em relacao as observacoes que nao devem ser utilizadas aquando da analise de resultados, isto
e, as observacoes que fazem parte do vies inicial (bias), podemos verificar que, excepto alguns casos,
o seu valor vai aumentando a medida que aumenta o valor de ρ (factor de utilizacao). Isto permite
concluir que, a medida que aumentamos o factor de utilizacao do sistema, mais tempo este demora
a estabilizar, ou seja, a entrar no seu estado estacionario. Como tal, o numero de observacoes que
constituem o vies inicial sera maior. Para ρ = 0.9 e ρ = 0.95, este crescimento nao se verifica, o que
pode ser explicado pelo facto de termos estipulado um numero baixo de b e m.
Ainda atraves da analise da tabela 4.5, verifica-se uma discrepancia enorme do numero de obser-
vacoes correspondente ao vies inicial para ρ = 0.5 e ρ = 0.9 em relacao aos restantes valores. Como
tal, efectuaram-se novas simulacoes para estes mesmos valores de ρ, representadas na tabela pelo
sımbolo (*). Para estas novas simulacoes, o numero de observacoes do vies inicial ja se aproxima do
valor esperado, seguindo o padrao dos restantes elementos. Isto e explicado pelo facto de se tratarem
de simulacoes estocasticas, o que resulta em valores diferentes para cada simulacao.
De seguida, foram usados os valores da tabela anterior como parametros da funcao meanstd, para
serem calculados os valores da media e da variancia para cada ρ. Os resultados estao presentes na
tabela 4.6.
ρ bias batchSize Numero de lotes(numberBatches) x σx σ2
x
0.1 450 225 86 0.1110 0.0084 7.1328−5
0.2 725 725 26 0.2507 0.0125 1.5749−4
0.3 650 50 387 0.4310 0.1130 0.01280.4 350 350 56 0.6607 0.0644 0.00410.5 6250 250 55 1.0402 0.2184 0.04770.6 3000 150 113 1.5354 0.4509 0.20330.7 3900 260 62 2.3208 0.7471 0.55810.75 4000 160 100 2.9453 1.4116 1.99250.8 4750 250 61 4.2364 2.0995 4.40780.85 7475 325 38 6.0117 3.5191 12.38420.9 1610 115 159 8.8992 7.1232 50.73990.95 5240 1310 11 17.5029 9.3312 87.0711
0.5 (*) 2000 125 144 1.0415 0.3317 0.11000.9 (*) 6000 240 58 10.8094 7.6207 58.0749
Tabela 4.6: Resultados da funcao meanstd para o sistema M/M/1, para os varios valores de ρ: x = media dasmedias dos lotes e σ2
x = variancia das medias dos lotes.
39
Note-se que estes valores sao representativos da mesma grandeza, o tempo das entidades no
sistema. Ou seja, os valores apresentados na tabela 4.6 referem-se a media e a variancia dos tempos
no sistema registados para as diversas entidades, para os mais variados valores de ρ.
Como se pode observar atraves da tabela 4.6, o tempo medio no sistema cresce a medida que o
factor de utilizacao aumenta. Este comportamento verifica-se para todos os valores de ρ.
Como ja se havia verificado, o factor de utilizacao para o sistema M/M/1 depende da taxa de che-
gadas de clientes (λ) e da taxa de servico do servidor (µ). Ao aumentar o valor do factor de utilizacao,
aumenta-se o valor da taxa de chegadas e/ou diminuir o valor da taxa de servico. Isto implica uma
espera maior por parte dos clientes no sistema, seja ate serem servidos (enquanto aguardam na fila da
espera), seja enquanto estao a ser servidos. Como tal, acaba por ser um resultado esperado.
Em relacao aos valores da variancia, verificou-se que o comportamento e exactamente igual ao
tempo medio no sistema, aumentando a medida que aumenta o factor de utilizacao, excepto para
ρ = 0.4. Tal advem, provavelmente, do facto de se estar a efectuar uma unica simulacao, sendo esta
uma simulacao estocastica.
Para ρ = 0.95, a variancia atingiu um valor muito elevado em comparacao com os restantes valores.
Isto significa que, para valores muito elevados de ρ, torna-se bastante difıcil prever o comportamento
do sistema.
De notar tambem que os valores obtidos da media e da variancia para as novas simulacoes de
ρ = 0.5 e ρ = 0.9, de novo representadas pelo sımbolo (*) na tabela, sao da mesma ordem de grandeza
dos valores obtidos nas simulacoes iniciais. Logo, verifica-se que a diferenca entre os resultados nao
ira afectar o comportamento da evolucao das medidas pretendidas em funcao de ρ. Como tal, iremos
usar os valores para o qual se registou a variancia mais baixa.
De seguida, foi tracado um grafico relativo a experiencia efectuada, correspondente ao tempo medio
das entidades no sistema em funcao do factor de utilizacao, presente na figura 4.3.
Figura 4.3: Tempos medios das entidades no sistema M/M/1, em funcao do factor de utilizacao (ρ).
40
No capıtulo 5 ir-se-a efectuar o ajuste destes pontos com recurso ao programa Matlab, nomea-
damente, atraves de metamodelos polinomiais e metamodelos baseados em splines. Aquando da
realizacao deste processo, iremos comparar os ajustes proporcionados por ambos os metodos com os
resultados teoricos, cujas formulas estao descritas na seccao 2.7.
Relembre-se que, para o sistema M/M/1, o valor teorico do tempo medio que um cliente despende
no sistema e dado pela expressao (2.19) e o valor teorico da variancia do tempo medio no sistema e
dada pela expressao (2.23). O grafico do valor teorico da variancia do tempo medio em funcao de ρ
esta presente na figura 2.11.
4.3 Rede de encaminhamento de pacotes
Em relacao a rede de encaminhamento de pacotes, pretende-se estudar o tempo medio no sistema
em funcao da taxa de chegadas de clientes (λ).
O processo para efectuar a analise de resultados foi exactamente o mesmo que se realizou para o
sistema M/M/1:
1. Simular o sistema no AweSim;
2. Usar o Matlab para efectuar o tratamento dos resultados provenientes dos ficheiros resultantes
da simulacao anterior:
(a) Retirar o vies inicial dos resultados atraves do uso do Teste de Permutacoes de Yucesan;
(b) Utilizar o metodo das Medias de Lotes (Batch-Means) para calcular as medidas de desem-
penho pretendidas.
Uma vez que nao existiam dados teoricos para poder ser efectuado um estudo provisorio do sistema,
foi necessario determinar dois momentos atraves da simulacao no AweSim:
• Momento a partir do qual comeca a haver perda de pacotes;
• Momento a partir do qual a rede atinge o maximo da sua capacidade;
Atraves do conhecimento destes dois momentos, foi possıvel prever o comportamento da rede, bem
como os tempos mınimos e maximos que as entidades despendem na rede. Para tal, acrescentou-
se uma variavel a rotina desenvolvida na linguagem C (presente no Apendice A) para este sistema,
chamada balk, cuja funcao e efectuar uma contagem dos pacotes perdidos durante a simulacao.
Posto isto, o primeiro passo foi executar a simulacao no programa AweSim. Para tal, foi definido um
conjunto de pontos que foram guardados na variavel pts:
pts = { 132 ,
116 ,
18 ,
14 ,
12 , 1, 2, 4, 8, 16, 32}.
41
Estes pontos correspondem as taxas de chegadas entre clientes (λ), ou seja, tratam-se do inverso
dos tempos medios entre chegadas das entidades. Uma vez que o tempo medio entre chegadas e o
inverso da taxa de chegadas dos clientes ( 1λ ), quanto menor for o tempo entre chegadas, maior sera
o valor da taxa entre chegadas, o que corresponde a um numero superior de chegada de clientes por
unidade de tempo.
Como resultado da simulacao, foram gerados varios ficheiros, cada um deles contendo os valores do
tempo no sistema registado para as diversas entidades, para o respectivo valor de λ, bem como o valor
da variavel balk, que determina o numero de pacotes perdidos. Nesta simulacao, foi estabelecido um
limite maximo de 50000 entidades. O motivo do aumento deste valor em relacao ao sistema M/M/1 foi
derivado do facto de se tratar de um sistema mais complexo. Como tal, poderia levar a um aumento do
tempo necessario para atingir o estado estacionario e, consequentemente, a um aumento consideravel
das observacoes que constituem o vies inicial.
De seguida, efectuou-se a relacao entre a taxa de chegadas de clientes (λ) e o numero de pacotes
perdidos no sistema (balk ), presente na tabela 4.7.
Tempo medio entrechegadas ( 1λ )
Taxa de chegadasdos clientes (λ)
Numero depacotes perdidos
na rede (balk )32 1/32 016 1/16 08 1/8 04 1/4 02 1/2 01 1 2216
1/2 2 501761/4 4 1504721/8 8 352133
1/16 16 7496061/32 32 1540580
Tabela 4.7: Relacao entre a taxa de chegadas dos clientes (λ) e o numero de pacotes perdidos na rede (balk ).
Atraves da analise da tabela 4.7, foi possıvel retirar as seguintes conclusoes:
• Para valores de λ < 1, os tempos entre chegadas sao elevados, pelo que a taxa de despacho e
superior a taxa de chegadas. Como tal, nao ha perda de pacotes no sistema;
• Para λ = 1, ja se verifica uma perda de pacotes. Porem, nao se consegue determinar se a rede
atinge o maximo da sua capacidade;
• Para valores de λ > 1, a taxa de chegadas e superior a taxa de despacho, pelo que o sis-
tema comeca a ficar cada vez mais saturado a medida que λ aumenta. Assim sendo, verifica-se
um acrescimo consideravel do numero de pacotes perdidos a medida que a taxa de chegadas
42
tambem aumenta. Como tal, sabe-se que a rede atinge o maximo da sua capacidade num deter-
minado ponto deste intervalo.
Uma vez que a perda de pacotes se da num determinado momento dentro do intervalo λ ∈ [0.5; 2],
foi necessario definir mais pontos dentro desse intervalo, para se efectuar um estudo mais detalhado
nesse intervalo.
Como tal, a variavel pts foi redefinida:
pts = { 132 ,
116 ,
18 ,
14 ,
12 , 2−0.5, 1, 20.5, 2, 4, 8, 16, 32}.
Depois de redefinida a variavel, voltou-se a correr o programa no Awesim. Deste modo, obteve-
se novamente um conjunto de ficheiros, para os diversos valores de λ, cada um deles com 50000
valores diferentes, que correspondem aos tempos registados que as diversas entidades despenderam
no sistema.
De seguida, calculou-se o vies inicial para cada um dos ficheiros com recurso ao Teste de Permutacoes
de Yucesan, tal como havia sido feito para o sistema M/M/1. Para tal, executou-se a funcao yucesan
para os ficheiros que resultaram da simulacao. Os resultados estao presentes na tabela 4.8.
Tempo medio entrechegadas ( 1λ ) λ b (inicial) m (inicial)
Numero deobservacoes porlote (batchSize)
Numero deobservacoes dovies inicial (bias)
32 1/32 50 50 150 675016 0.0625 40 40 40 1208 0.125 30 30 230 4604 0.25 50 50 150 10502 0.5 40 40 140 3360
1/2−0.5 2−0.5 50 50 550 5501 1 40 40 1240 2480
1/20.5 20.5 40 40 440 4400.5 2 50 50 350 10500.25 4 30 30 530 6360
0.125 8 30 30 130 37700.0625 16 50 50 50 50
1/32 32 30 30 320 960
Tabela 4.8: Resultados da funcao yucesan para a rede de encaminhamento de pacotes, para os diversos valoresde λ: b = numero de lotes inicial e m = tamanho inicial dos lotes.
Tal como havia acontecido no sistema M/M/1, foi necessario variar os parametros b e m, de modo
a obter resultados viaveis, nomeadamente o nıvel de significancia com o valor maximo de 0.1 e a
correlacao entre os lotes com o valor maximo de 0.05.
Analisando a tabela 4.8, podemos verificar que nao e possıvel estabelecer uma relacao entre os
valores do numero de observacoes que constituem o vies inicial e os valores de λ. Isto pode dever-se
ao facto da rede se tratar de um sistema nao-linear. Apesar disto, os dados da tabela anterior foram
usados como parametros da funcao meanstd, uma vez que permitiram obter o nıvel de significancia e o
43
valor da correlacao desejados. Assim, foram calculados os valores da media e da variancia para cada
λ, cujos resultados estao presentes na tabela 4.9.
λ balk bias batchSize numberBatches x σx σ2x
1/32 0 6750 150 288 13.4179 0.4101 0.16820.0625 0 120 40 1247 13.4453 0.7274 0.52910.125 0 460 230 215 13.5073 0.3312 0.10970.25 0 1050 150 326 13.6619 0.4626 0.21400.5 0 3360 140 333 14.5726 0.6693 0.4479
2−0.5 11 550 550 89 16.5759 0.9292 0.86341 2131 2480 1240 38 26.6885 2.3062 5.3187
20.5 21522 440 440 112 36.1317 1.8680 3.48932 49468 1050 350 139 37.6709 2.3442 5.49554 151175 6360 530 82 38.4238 1.9422 3.77208 350886 3770 130 355 38.4848 3.4589 11.9639
16 745746 50 50 999 38.3222 3.8397 14.742932 1560785 960 320 153 38.0706 2.1563 4.6495
Tabela 4.9: Resultados da funcao meanstd para a rede de encaminhamento de pacotes, para os diversos valoresde λ: x = media das medias dos lotes ; σ2
x = variancia das medias dos lotes ; balk = numero de pacotesperdidos no sistema.
Os valores apresentados na tabela anterior sao representativos da media e da variancia dos tempos
que as entidades despendem na rede, para os diversos valores de λ.
Atraves da analise da tabela 4.9, foi possıvel retirar diversas conclusoes:
• Numa fase inicial (1/32 ≤ λ ≤ 0.5), enquanto nao ocorreu perda de pacotes na rede, os tempos
medios registados foram da mesma ordem de grandeza (x ∈ [13.4179; 14.5726]). Tal significa que,
nesta fase, a rede se encontra descongestionada, pelo que se registaram os tempos medios mais
baixos.
• Numa fase intermedia, assim que ocorreu perda de pacotes, os tempos medios aumentaram a
medida que a taxa de chegadas tambem aumentou. Tal e visıvel para os valores de λ no intervalo
[2−0.5; 2]. Isto significa que a rede vai ficando cada vez mais saturada, daı ter-se registado um
aumento dos tempos medios bem como do numero de pacotes perdidos na rede.
• Numa fase final (4 ≤ λ ≤ 32), a rede atinge o maximo da sua capacidade. Tal e visıvel uma
vez que os tempos medios registados sao da mesma ordem de grandeza (x ∈ [38.0706; 38.4848]),
mas o numero de pacotes perdidos cresce significativamente. Foi nesta fase que se registaram os
tempos medios mais altos, embora para λ = 32 se tenha registado um tempo medio ligeiramente
mais baixo em comparacao com os valores para λ = {4, 8, 16}, algo que pode ser explicado pelo
facto de se ter efectuado somente uma simulacao e o modelo ser estocastico.
Em relacao aos valores da variancia, verifica-se que a sua evolucao nao assume um comportamento
linear, o que pode ser explicado pelo facto da rede de encaminhamento de pacotes ser um sistema nao-
44
linear. Ainda assim, e possıvel verificar que os valores mais baixos da variancia sao registados quando
a rede esta descongestionada, isto e, quando nao ocorre perda de pacotes. Assim que se verifica perda
de pacotes, a variancia aumenta, registando-se os valores mais altos no intervalo em que a rede atingiu
o maximo da sua capacidade.
De seguida, foi tracado um grafico relativo a experiencia efectuada, correspondente ao tempo medio
das entidades na rede em funcao da taxa de chegadas, presente na figura 4.4. De notar que os
valores de λ usados no desenrolar da experiencia foram potencias de 2, o que permitiu um estudo mais
detalhado do comportamento do sistema. Como tal, utilizou-se uma escala logarıtmica de base 2 na
representacao, de modo a facilitar a percepcao deste comportamento.
Figura 4.4: Tempos medios das entidades na rede de encaminhamento de pacotes, em funcao do logaritmo debase 2 da taxa de chegadas (log2(λ)).
Tal como para o sistema M/M/1, no capıtulo 5 tambem se ira efectuar o ajuste destes pontos com
recurso ao programa Matlab, nomeadamente, atraves de metamodelos polinomiais e metamodelos
baseados em splines. Apos efectuado este processo, serao comparados os ajustes proporcionados
por ambos os metodos.
45
5Desenho
Conteudo
5.1 Processo de Ajuste em Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2 Sistema M/M/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.3 Rede de encaminhamento de pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
46
E neste capıtulo que se ira efectuar o desenho da solucao, ou seja, o processo de ajuste propria-
mente dito. Para tal, ir-se-a usar o programa Matlab. Como foi referido anteriormente, ir-se-a efectuar
o ajuste dos pontos retirados para os dois sistemas (M/M/1 e rede de encaminhamento de pacotes),
presentes no capıtulo anterior, atraves de metamodelos polinomiais e de metamodelos baseados em
splines e efectuar uma comparacao entre os mesmos. Para cada ajuste, sera efectuada a recolha dos
parametros desconhecidos e o calculo do respectivo erro (SSE).
Em relacao ao sistema M/M/1, ir-se-a calcular o erro em relacao aos valores teoricos (SSEt) e o
erro em relacao aos valores retirados do modelo de simulacao (SSEe). Para a rede de encaminhamento
de pacotes, apenas sera efectuada uma comparacao com o modelo de simulacao, uma vez que nao
existem resultados teoricos.
5.1 Processo de Ajuste em Matlab
Antes de iniciar o ajuste propriamente dito nos modelos de simulacao, foi necessario fazer um estudo
previo do processo de ajuste proporcionado pelo programa Matlab.
Este programa ja inclui varias funcoes referentes ao uso de splines, por exemplo, as funcoes
spline, csaps, spaps, tpaps, entre outras. Nestes exemplos, a primeira funcao e referente a splines
de interpolacao, enquanto que as restantes sao referentes a splines de aproximacao. Como tal, ir-se-a
usar a funcao spline apenas como uma introducao ao ambiente em Matlab. Como este trabalho se foca
nas splines de aproximacao, posteriormente ir-se-a apresentar alguns ajustes usando a funcao csaps,
uma vez que esta efectua o ajuste recorrendo ao uso do parametro de regularizacao.
Para efectuar o ajuste com uma determinada spline, e necessario definir alguns pontos, que serao
os pontos de controlo dessa spline. Como tal, foram efectuadas as seguintes instrucoes no programa
Matlab:
1 x = 0:10;
2 y = sin(x);
3 plot (x,y,'o');
Como resultado destas instrucoes, surgiu a figura 5.1.
De seguida, efectuaram-se as seguintes instrucoes:
1 xx = 0:.25:10;
2 yy = spline(x,y,xx);
3 plot (x,y,'o',xx,yy);
47
0 1 2 3 4 5 6 7 8 9 10−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Figura 5.1: Imagem em Matlab de um exemplo dos pontos de controlo de uma spline.
Neste caso, recorreu-se a funcao spline do Matlab para efectuar o ajuste. Esta funcao fornece a
forma da spline cubica de interpolacao para os pontos de controlo, definidos pelas variaveis x e y. O
resultado das instrucoes anteriores esta presente na figura 5.2.
0 1 2 3 4 5 6 7 8 9 10−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Figura 5.2: Imagem em Matlab de um exemplo do ajuste proporcionado pela funcao spline.
Como e possıvel verificar na figura, a curva gerada passa pelos pontos que foram definidos como
pontos de controlo. Seguidamente, ir-se-a estudar o ajuste proporcionado pela funcao csaps. Esta
funcao retorna a pp-form de uma spline cubica de aproximacao para os dados de entrada. Alem disso,
a funcao recebe tambem como parametro de entrada um valor entre 0 e 1, sendo este o parametro de
regularizacao da curva resultante. Se o valor deste parametro for 0, a spline de aproximacao resultante
e a recta linear que ajusta os dados segundo o metodo dos mınimos quadrados. Se o valor do parametro
for 1, a curva resultante e a spline cubica de interpolacao desses mesmos dados.
Mais uma vez, comecou-se por definir um conjunto de pontos, atraves das instrucoes seguintes,
cujo resultado foi o grafico presente na figura 5.3.
1 x = 1:10;
48
2 y = [5 1 9 2 8 3 7 4 6 5];
3 plot(x,y,'o');
1 2 3 4 5 6 7 8 9 101
2
3
4
5
6
7
8
9
Figura 5.3: Imagem em Matlab de um exemplo dos pontos de controlo de uma spline.
De seguida, efectuaram-se as instrucoes:
1 z = 1:.05:10;
2 plot(x,y,'o',z, csaps(x,y,0.999,z,[1 1 1 1 1 1 1 1 1 1]));
Na segunda instrucao, procedemos a chamada da funcao csaps, passando como parametro de
regularizacao o valor 0.999. De reparar que o quinto parametro de entrada da funcao e um vector. Este
vector estabelece o peso de cada ponto. Se o peso de um determinado ponto for mais elevado, a curva
e obrigada a passar mais proxima desse ponto. No exemplo anterior, todos os pontos tem o mesmo
peso. O resultado destas instrucoes esta presente na figura 5.4.
1 2 3 4 5 6 7 8 9 100
1
2
3
4
5
6
7
8
9
Figura 5.4: Imagem em Matlab de um exemplo do ajuste proporcionado pela funcao csaps com um parametro deregularizacao 0.999.
Como seria de esperar, uma vez que o parametro de regularizacao esta proximo do valor 1, a curva
passa muito proximo dos pontos de controlo. Porem, ao executar a instrucao seguinte, obteve-se o
49
resultado presente na figura 5.5.
1 plot(x,y,'o',z, csaps(x,y,0.97,z,[1 1 1 1 1 1 1 1 1 1]));
1 2 3 4 5 6 7 8 9 101
2
3
4
5
6
7
8
9
Figura 5.5: Imagem em Matlab de um exemplo do ajuste proporcionado pela funcao csaps com um parametro deregularizacao 0.97.
Como e possıvel observar na figura anterior, houve um afastamento consideravel da curva em
relacao aos pontos de controlo, em comparacao com a figura 5.4. Isto deveu-se ao facto do valor
do parametro de regularizacao ter sofrido uma alteracao de 0.999 para 0.97. Por fim, fez-se variar o
peso de alguns pontos (para o mesmo parametro de regularizacao), atraves da instrucao seguinte, o
que resultou na figura 5.6.
1 plot(x,y,'o',z, csaps(x,y,0.97,z,[1 1 10 1 1 1 10 1 1 1]));
1 2 3 4 5 6 7 8 9 101
2
3
4
5
6
7
8
9
Figura 5.6: Imagem em Matlab de um exemplo do ajuste proporcionado pela funcao csaps com um parametro deregularizacao 0.97 e com um aumento do peso nos pontos x = 2 e x = 7.
Ao analisar o grafico da figura 5.6, e possıvel verificar que houve uma alteracao da curva em relacao
50
ao grafico da figura 5.5, nomeadamente, nos pontos x = 2 e x = 7. Isto deve-se ao facto de ter sido
aumentado o peso nesses pontos, o que levou a que a curva passasse mais proximo dos mesmos.
De seguida, ir-se-a efectuar um processo de ajuste semelhante ao descrito nesta seccao, tanto para
o sistema M/M/1 como para a rede de encaminhamento de pacotes.
5.2 Sistema M/M/1
Em relacao ao sistema M/M/1, comecou-se pela representacao grafica dos pontos com os valo-
res obtidos para os tempos medios das entidades no sistema, atraves das instrucoes seguintes, que
resultaram no grafico presente na figura 5.7.
1 x = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95];
2 y = [0.1110, 0.2507, 0.4310, 0.6607, 1.0402, 1.5354, 2.3208, 2.9453, 4.2364, 6.0117,
3 8.8992, 17.5029];
4 plot (x, y, 'o');
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
2
4
6
8
10
12
14
16
18
Figura 5.7: Imagem em Matlab dos pontos dos tempos medios obtidos para o sistema M/M/1, em funcao de ρ.
De seguida, calcularam-se os valores teoricos para o tempo medio que um cliente despende no
sistema, com base na equacao (2.19) e nos dados expressos no AweSim. Estes valores vao permitir,
posteriormente, calcular os valores do SSEt. Os resultados estao presentes na tabela 5.1.
5.2.1 Ajuste baseado em metamodelos polinomiais
Nesta seccao, ir-se-a efectuar o ajuste dos pontos presentes na figura 5.7 com o recurso a meta-
modelos polinomiais, para varios graus, nomeadamente, de grau 1 a grau 4. Serao efectuados ajustes
com e sem pesos. Para os ajustes sem pesos, recorreu-se a funcao polyfit do Matlab. Em relacao
ao ajuste com pesos, foi necessario o uso da funcao polyfitweighted. Esta funcao nao esta definida
51
ρ Tempo medio teorico (W )0.1 0.(1)0.2 0.250.3 0.42860.4 0.(6)0.5 10.6 1.50.7 2.(3)0.75 30.8 40.85 5.(6)0.9 8.(9)0.95 19
Tabela 5.1: Tempos medios teoricos para o sistema M/M/1.
no Matlab, pelo que o codigo da mesma foi retirado do site http://www.mathworks.com/matlabcentral/ e
encontra-se no Apendice A.
De notar que o princıpio usado pelo ajuste proporcionado por ambas as funcoes e o mesmo, ou
seja, minimizar os quadrados dos erros.
5.2.1.A Ajuste baseado em metamodelos polinomiais sem pesos
Para se efectuar o ajuste com metamodelos polinomiais sem pesos, recorreu-se a funcao polyfit,
com o cabecalho:
1 polyfit(x, y, n);
onde x e y sao, respectivamente, vectores com os valores para as abcissas e ordenadas dos pontos
que queremos ajustar e n e o grau do polinomio. De notar que os vectores x e y tem de ter a mesma
dimensao. A funcao retorna um vector com os coeficientes do polinomio resultante do ajuste. Alem
disso, retorna tambem uma estrutura que pode ser usada para obter as estimacoes dos erros.
Assim sendo, o ajuste dos pontos atraves de um polinomio de grau 1 foi feito atraves das seguintes
instrucoes:
1 p = polyfit(x, y, 1);
2 z = 0.05:0.01:1;
3 g = polyval(p, z);
4 plot(x, y, 'o', z, g, 'k-');
Os ajustes proporcionados pelos restantes polinomios foram efectuados exactamente atraves das
mesmas instrucoes que foram executadas para o polinomio de grau 1, com alteracao do valor da variavel
52
n para o grau do polinomio correspondente. Na figura 5.8, e possıvel observar os ajustes proporciona-
dos pelos polinomios dos diversos graus (1 a 4), sem pesos, para o sistema M/M/1.
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−5
0
5
10
15
20
25
Pontos de controlo
Polinómio de grau 1
Polinómio de grau 3
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−5
0
5
10
15
20
25
Pontos de controlo
Polinómio de grau 2
Polinómio de grau 4
Figura 5.8: Imagem em Matlab dos ajustes proporcionados pelos polinomios de grau 1 e grau 3, a esquerda, edos ajustes proporcionados pelos polinomios de grau 2 e grau 4, a direita (sem pesos).
Na tabela 5.2, estao presentes os valores que foram estimados para os parametros desconhecidos
dos polinomios obtidos atraves do ajuste, bem como os respectivos erros.
Grau Forma doPolinomio a4 a3 a2 a1 a0
1 a1x+ a0 - - - 13.2566 -3.95952 a2x
2 + a1x+ a0 - - 40.5254 -30.1294 4.5175
3 a3x3 + a2x
2 +a1x+ a0
- 115.8287 -143.6846 52.7356 -4.6575
4 a4x4 + a3x
3 +a2x
2 + a1x+ a0313.0144 -548.7600 328.2065 -72.8701 4.9378
Tabela 5.2: Valores estimados para os parametros desconhecidos dos polinomios presentes na figura 5.8.
Grau SSEt SSEe1 124.8318 124.52402 51.4028 50.63093 18.6588 17.29574 7.8399 5.9835
Tabela 5.3: Erros calculados em relacao aos valores teoricos e experimentais dos polinomios presentes na figura5.8.
Como e possıvel observar atraves da tabela 5.3, e possıvel observar que os valores dos erros
teoricos e experimentais foram bastante proximos. Se analisarmos tambem a figura 5.8, podemos
verificar que o SSE diminui a medida que a curva se ajusta mais proximo dos pontos de controlo, como
seria de esperar. Neste caso, o polinomio de grau 4 foi aquele que permitiu um melhor ajuste aos
pontos de controlo, pelo que foi aquele que obteve um valor inferior de SSEt e SSEe.
53
5.2.1.B Ajuste baseado em metamodelos polinomiais com pesos
Para se efectuar o ajuste com metamodelos polinomiais com pesos, recorreu-se a funcao poly-
fitweighted, com o cabecalho:
1 polyfitweighted(x, y, n, w);
onde foi acrescentada a variavel w em relacao a funcao polyfit, que corresponde a um vector com os
pesos que se pretendem atribuir aos respectivos pontos, sendo que, para cada ponto i, o seu peso,
w[i], e calculado atraves da seguinte expressao:
w[i] =
√1
var[i]=
1
std[i], (5.1)
onde var[i] e a variancia do ponto i e std[i] e o respectivo desvio-padrao. Os valores dos desvios-padrao
e das respectivas variancias foram calculados anteriormente e estao presentes na tabela 4.6. A funcao
polyfitweighted, tal como a funcao polyfit, tambem retorna um vector com os coeficientes do polinomio
resultante do ajuste. De notar que os vectores x, y e w tem de ter a mesma dimensao.
De acordo com a expressao anterior, definiram-se os pesos dos respectivos pontos atraves da
instrucao:
1 w = [1/0.0084, 1/0.0125, 1/0.1130, 1/0.0644, 1/0.2184, 1/0.4509, 1/0.7471,
2 1/1.4116, 1/2.0995, 1/3.5191, 1/7.1232, 1/9.3312];
onde se pode verificar que, quando o valor de ρ aumenta, o valor do peso diminui, uma vez que os
valores do desvio-padrao e da variancia tambem aumentam.
De seguida, e tendo em conta os pesos anteriores, efectuou-se o ajuste dos pontos atraves de um
polinomio de grau 1, atraves das seguintes instrucoes:
1 p = polyfitweighted(x, y, 1, w);
2 z = 0.05:0.01:1;
3 g = polyval(p, z);
4 plot(x, y, 'o', z, g, 'k-');
Tal como no caso do ajuste sem pesos, tambem aqui os ajustes proporcionados pelos restantes
polinomios foram efectuados exactamente atraves das mesmas instrucoes que foram executadas para
o polinomio de grau 1, com alteracao do valor da variavel n para o grau do polinomio correspondente.
Na figura 5.9, e possıvel observar os ajustes proporcionados pelos polinomios dos diversos graus
(1 a 4), com os respectivos pesos, para o sistema M/M/1.
54
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
2
4
6
8
10
12
14
16
18
Pontos de controlo
Polinómio de grau 1
Polinómio de grau 3
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
2
4
6
8
10
12
14
16
18
Pontos de controlo
Polinómio de grau 2
Polinómio de grau 4
Figura 5.9: Imagem em Matlab dos ajustes proporcionados pelos polinomios de grau 1 e grau 3, a esquerda, edos ajustes proporcionados pelos polinomios de grau 2 e grau 4, a direita (com pesos).
Na tabela 5.4, estao presentes os valores que foram estimados para os parametros desconhecidos
dos polinomios obtidos atraves do ajuste, bem como os respectivos erros.
Grau Forma doPolinomio a4 a3 a2 a1 a0
1 a1x+ a0 - - - 1.6366 -0.05872 a2x
2 + a1x+ a0 - - 3.3872 0.3236 0.0459
3 a3x3 + a2x
2 +a1x+ a0
- 11.7726 -6.2652 2.4616 -0.0844
4 a4x4 + a3x
3 +a2x
2 + a1x+ a044.7718 -52.6633 23.4832 -2.6369 0.1881
Tabela 5.4: Valores estimados para os parametros desconhecidos dos polinomios presentes na figura 5.9.
Grau SSEt SSEe1 348.4997 348.19242 247.5927 246.81163 134.1107 129.45284 50.3805 54.9238
Tabela 5.5: Erros calculados em relacao aos valores teoricos e experimentais dos polinomios presentes na figura5.9.
Tal como havia acontecido para os polinomios sem pesos, os valores obtidos para os erros teoricos
e experimentais foram bastante semelhantes. Atraves da analise da figura 5.9, o polinomio de grau 4
foi novamente aquele que permitiu obter um melhor ajuste em relacao aos pontos de controlo, tal como
se verificou para o ajuste com polinomios sem pesos. Porem, atraves da comparacao das duas tabelas
dos erros para os polinomios com e sem pesos, podemos verificar que os valores obtidos dos erros
foram muito inferiores para os polinomios sem pesos. Tal tambem e visıvel se compararmos as figuras
5.8 e 5.9, onde se pode verificar que, para o mesmo grau, o ajuste proporcionado pelos polinomios sem
pesos se aproxima mais dos pontos de controlo do que o ajuste proporcionado pelos polinomios com
55
pesos.
Como tal, podemos concluir que, para o sistema M/M/1, os metamodelos polinomiais sem pesos sao
melhores para efectuar o ajuste do que os metamodelos polinomiais com pesos. Dentro dos polinomios
sem pesos, aquele que permitiu o melhor ajuste foi o polinomio de grau 4.
5.2.2 Ajuste baseado em metamodelos baseados em splines
Nesta seccao, ir-se-a efectuar o ajuste dos pontos presentes na figura 5.7 com o recurso a metamo-
delos baseados em splines, fazendo variar o parametro de regularizacao. Tal como nos metamodelos
polinomiais, serao efectuados ajustes com e sem pesos. Para tal, ir-se-a recorrer a funcao csaps do
Matlab.
5.2.2.A Ajuste baseado em metamodelos baseados em splines sem pesos
Uma vez que se pretende efectuar o ajuste sem pesos, fez-se apenas variar o parametro de regularizacao,
mantendo os pesos constantes, ou seja, para cada ponto i, w[i] = 1.
Como tal, comecou-se por efectuar as seguintes instrucoes, cujo resultado foi o grafico presente na
figura 5.10.
1 z = 0.05:0.01:1;
2 plot(x, y, 'o', z, csaps(x, y, 1, z, [1 1 1 1 1 1 1 1 1 1 1 1]), 'k-');
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
5
10
15
20
25
30
Pontos de controlo
Spline com P = 1
Figura 5.10: Imagem em Matlab do ajuste proporcionado por um metamodelo baseado em splines, com parametrode regularizacao igual a 1, sem pesos.
Como se pode verificar na figura 5.10, a spline resultante passa por cima dos pontos de controlo.
Isto deve-se ao facto de termos estabelecido o parametro de regularizacao com o valor 1 na funcao
csaps. Como tal, a spline de aproximacao coincidiu com a spline de interpolacao.
56
Uma vez que a spline e definida por 12 pontos de controlo, isso significa que esta sera dividida
em 11 intervalos, sendo que cada intervalo sera definido por um polinomio diferente. Neste caso, de
acordo com o Matlab, o resultado foi uma spline de ordem 4, o que significa que sera constituıda por
11 polinomios de grau 3.
Ir-se-a agora fazer variar o valor do parametro de regularizacao e analisar o ajuste proporcionado
por esta variacao. Para um parametro de regularizacao de valor 0.999, executou-se a instrucao:
1 plot(x, y, 'o', z, csaps(x, y, 0.999, z, [1 1 1 1 1 1 1 1 1 1 1 1]), 'k-');
Os ajustes proporcionados pelas restantes funcoes spline foram efectuados exactamente atraves da
mesma instrucao, com alteracao do valor do parametro de regularizacao (P), ou seja, onde esta o valor
0.999 especificou-se o valor pretendido para esse parametro. Na figura 5.11, e possıvel observar os
ajustes proporcionados por diversas funcoes spline, sem pesos, fazendo variar apenas o seu parametro
de regularizacao.
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−2
0
2
4
6
8
10
12
14
16
18
Pontos de controlo
Spline com P = 0.999
Spline com P = 0.99
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−5
0
5
10
15
20
Pontos de controlo
Spline com P = 0.97
Spline com P = 0.9
Figura 5.11: Imagem em Matlab dos ajustes proporcionados por splines com P = 0.999 e P = 0.99, a esquerda,e por splines com P = 0.97 e P = 0.9, a direita (sem pesos).
De seguida, sao apresentados os calculos dos erros para os ajustes presentes na figura 5.11. Estes
estao presentes na tabela 5.6.
Parametro de regularizacao (P) SSEt SSEe0.999 16.1222 18.79920.99 49.3052 52.66800.97 76.2357 78.87130.9 104.4926 105.5828
Tabela 5.6: Valores calculados para os erros teoricos e experimentais das splines presentes na figura 5.11.
Em relacao ao parametro de regularizacao, para valores abaixo de 0.9, ou seja, para 0 < P <
0.9, nao se observou uma diferenca consideravel nos ajustes. De notar que, para P = 0, o ajuste
coincide com o metodo dos mınimos quadrados, que, como foi visto anteriormente, permite estimar os
57
parametros desconhecidos atraves de um modelo de regressao linear. Assim sendo, o ajuste coincide
com o ajuste proporcionado pelo polinomio de grau 1 (sem pesos) da figura 5.8, registando-se o mesmo
valor para o erro experimental (SSEe = 124.5240).
Em relacao a estimacao dos parametros desconhecidos, tendo em conta que cada spline e uma
curva definida em 11 intervalos, em que cada intervalo se trata de um polinomio de ordem 4, seria
necessario uma matriz 11 × 4 para representar os parametros desconhecidos de cada curva. Neste
caso, os parametros a estimar seriam os coeficientes dos 11 polinomios que constituem os diferentes
intervalos.
Analisando a tabela 5.6, e possıvel verificar que os valores dos erros teoricos e experimentais foram
bastante proximos, embora os valores teoricos tenham sido ligeiramente inferiores. Se avaliarmos a
tabela em relacao a imagem, verifica-se que o erro aumenta a medida que o parametro de regularizacao
diminui. Tal acontece uma vez que, fazendo diminuir o parametro de regularizacao, a distancia da
curva aos pontos de controlo aumenta, logo aumenta o valor do erro. Como tal, o inverso tambem se
verifica, registando-se um valor de 0 para o SSEe quando o parametro de regularizacao e 1, pois a curva
resultante passa por cima dos pontos de controlo.
5.2.2.B Ajuste baseado em metamodelos baseados em splines com pesos
Nesta seccao, sera efectuado o ajuste com pesos, fazendo variar o parametro de regularizacao, mas
usando os respectivos pesos para os pontos de controlo.
Para o calculo dos pesos, usou-se a mesma formula que havia sido usada para os metamodelos
polinomiais com pesos, presente na equacao (5.1). Como tal, foram usados os pesos presentes na
seccao 5.2.1.B, que foram definidos na variavel w, atraves da instrucao:
1 w = [1/0.0084, 1/0.0125, 1/0.1130, 1/0.0644, 1/0.2184, 1/0.4509, 1/0.7471,
2 1/1.4116, 1/2.0995, 1/3.5191, 1/7.1232, 1/9.3312];
De seguida, usando os pesos anteriores, efectuaram-se as instrucoes:
1 z = 0.05:0.01:1;
2 plot(x, y, 'o', z, csaps(x, y, 1, z, w), 'k-');
cujo resultado foi o mesmo que se registou no caso das funcoes spline sem pesos, ou seja, apesar de
terem sido espeficados os pesos, a curva resultante foi a spline de interpolacao presente na figura 5.10.
Como tal, e possıvel concluir que, para P = 1, os pesos nao tem qualquer influencia no ajuste.
Ir-se-a agora fazer variar o parametro de regularizacao e analisar o ajuste proporcionado por esta
variacao, sempre tendo em consideracao os pesos calculados. Para um parametro de regularizacao de
58
valor 0.999, executou-se a instrucao:
1 plot(x, y, 'o', z, csaps(x, y, 0.999, z, w), 'k-');
Tal como no caso do ajuste sem pesos, tambem aqui os ajustes proporcionados pelas restantes
funcoes spline foram efectuados exactamente atraves da instrucao anterior, com alteracao do valor do
parametro de regularizacao. Na figura 5.12, e possıvel observar os ajustes proporcionados por diversas
funcoes spline, com pesos, fazendo variar o seu parametro de regularizacao.
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
2
4
6
8
10
12
14
16
18
Pontos de controlo
Spline com P = 0.999
Spline com P = 0.99
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−2
0
2
4
6
8
10
12
14
16
18
Pontos de controlo
Spline com P = 0.97
Spline com P = 0.9
Figura 5.12: Imagem em Matlab dos ajustes proporcionados por splines com P = 0.999 e P = 0.99, a esquerda,e por splines com P = 0.97 e P = 0.9, a direita (com pesos).
De seguida, apresentam-se os calculos dos erros para os ajustes presentes na figura 5.12. Estes
estao presentes na tabela 5.7.
Parametro de regularizacao (P) SSEt SSEe0.999 49.9205 53.91900.99 118.0594 120.04270.97 156.9692 157.96040.9 204.4753 204.6669
Tabela 5.7: Valores calculados para os erros teoricos e experimentais das splines presentes na figura 5.12.
A semelhanca do que tinha acontecido para o ajuste baseado em splines sem pesos, tambem aqui
nao se registou uma diferenca consideravel nos ajustes para 0 < P < 0.9. Para P = 0, apesar de se tra-
tar de um modelo de regressao linear, o ajuste resultante nao coincidiu com o ajuste proporcionado pelo
polinomio de grau 1 da figura 5.9, sendo que se registou um valor diferente para o erro experimental,
neste caso, SSEe = 265.4627.
Analisando a tabela 5.7, verificou-se que, tal como para as splines sem pesos, o erro aumenta a
medida que o parametro de regularizacao diminui. Mais uma vez, verificou-se que valores dos erros
teoricos e experimentais foram bastante proximos, com os valores teoricos a serem novamente ligeira-
mente mais baixos.
59
Se compararmos as tabelas referentes aos erros para as splines com e sem pesos, verificamos que
os valores registados para o SSE foram muito inferiores para os metamodelos baseados em splines
sem pesos.
Logo, chegou-se a conclusao que, para o sistema M/M/1, os metamodelos baseados em splines
sem pesos sao melhores para efectuar o ajuste do que os metamodelos baseados em splines com
pesos, tal como ja havia acontecido para os metamodelos polinomiais.
5.3 Rede de encaminhamento de pacotes
Em relacao a rede de encaminhamento de pacotes, o processo de ajuste sera semelhante ao que
foi efectuado para o sistema M/M/1. Como tal, utilizaram-se as funcoes e as instrucoes que foram
descritas anteriormente. Comecou-se pela representacao grafica dos pontos com os valores obtidos
para os tempos medios das entidades na rede, atraves das instrucoes seguintes, que resultaram no
grafico presente na figura 5.13.
1 x = [ 1/32, 1/16, 1/8, 1/4, 1/2, 2ˆ-0.5, 1, 2ˆ0.5, 2, 4, 8, 16, 32 ];
2 x = log2(x);
3 y = [ 13.4179, 13.4453, 13.5073, 13.6619, 14.5726, 16.5759, 26.6885, 36.1317,
4 37.6709, 38.4238, 38.4848, 38.3222, 38.0706 ];
5 plot (x, y, 'o');
−5 −4 −3 −2 −1 0 1 2 3 4 510
15
20
25
30
35
40
Figura 5.13: Imagem em Matlab dos pontos dos tempos medios obtidos para a rede de encaminhamento depacotes, em funcao de log2 (λ).
60
5.3.1 Ajuste baseado em metamodelos polinomiais
Nesta seccao, ir-se-a efectuar o ajuste dos pontos presentes na figura 5.13 com o recurso a me-
tamodelos polinomiais. A imagem do que foi feito na seccao 5.2.1 para os pontos do sistema M/M/1,
serao usados polinomios de graus 1 a 4, com e sem pesos, recorrendo as funcoes polyfitweighted e
polyfit, respectivamente.
Todo o processo de ajuste baseado em metamodelos polinomiais para a rede de encaminhamento
de pacotes sera efectuado usando o mesmo metodo que foi usado na seccao 5.2.1, com a alteracao
das variaveis x e y para os valores definidos anteriormente.
5.3.1.A Ajuste baseado em metamodelos polinomiais sem pesos
Recorrendo a funcao polyfit, descrita na seccao 5.2.1.A, o ajuste dos pontos proporcionado por um
polinomio de grau 1 foi feito atraves das seguintes instrucoes:
1 p = polyfit(x, y, 1);
2 z = -6:0.01:6;
3 g = polyval(p, z);
4 plot(x, y, 'o', z, g, 'k-');
Mais uma vez, os ajustes proporcionados pelos restantes polinomios foram efectuados atraves das
instrucoes anteriores, com alteracao do valor da variavel n, ou seja, o grau do polinomio. Na figura 5.14,
e possıvel observar os ajustes proporcionados pelos polinomios dos diversos graus (1 a 4), sem pesos,
para a rede de encaminhamento de pacotes.
−6 −4 −2 0 2 4 60
5
10
15
20
25
30
35
40
45
50
Pontos de controlo
Polinómio de grau 1
Polinómio de grau 2
−6 −4 −2 0 2 4 610
15
20
25
30
35
40
45
Pontos de controlo
Polinómio de grau 3
Polinómio de grau 4
Figura 5.14: Imagem em Matlab dos ajustes proporcionados pelos polinomios de grau 1 e grau 3, a esquerda, edos ajustes proporcionados pelos polinomios de grau 2 e grau 4, a direita (sem pesos).
Na tabela 5.8, estao presentes os valores que foram estimados para os parametros desconhecidos
dos polinomios obtidos atraves do ajuste, bem como os respectivos erros.
61
Grau Forma doPolinomio a4 a3 a2 a1 a0 SSE
1 a1x+ a0 - - - 3.4399 26.0749 383.14462 a2x
2 + a1x+ a0 - - -0.0236 3.4399 26.2758 382.5750
3 a3x3 + a2x
2 +a1x+ a0
- -0.1838 -0.0236 6.6977 26.2758 168.5915
4 a4x4 + a3x
3 +a2x
2 + a1x+ a00.0011 -0.1838 -0.0498 6.6977 26.3336 168.5350
Tabela 5.8: Valores estimados para os parametros desconhecidos e erros dos polinomios presentes na figura 5.14.
Como e possıvel verificar atraves da figura 5.14, os ajustes proporcionados pelos polinomios de
graus 1 e 2 sao bastante proximos um do outro. O mesmo se verifica para os ajustes proporcionados
pelos polinomios de graus 3 e 4. Como tal, os valores do SSE obtidos para os polinomios de graus 1 e
2 sao muito semelhantes, a imagem do que acontece com os polinomios de graus 3 e 4. Com base na
tabela 5.8, podemos verificar o seguinte:
• O coeficiente a2 do polinomio de grau 2 e muito proximo de 0. Os restantes coeficientes sao muito
proximos daqueles que foram obtidos para o polinomio de grau 1. Assim sendo, o ajuste proporci-
onado pelo polinomio de grau 2 aproxima-se bastante do ajuste proporcionado pelo polinomio de
grau 1.
• O coeficiente a4 do polinomio de grau 4 e muito proximo de 0. Os restantes coeficientes sao muitos
proximos dos que foram obtidos para o polinomio de grau 3. Assim sendo, o ajuste proporcionado
pelo polinomio de grau 4 aproxima-se bastante do ajuste proporcionado pelo polinomio de grau 3.
Analisando os valores dos erros obtidos, e possıvel verificar que todos os valores sao bastante altos,
pelo que e possıvel concluir que os polinomios sem pesos nao constituem um bom ajuste para a rede
de encaminhamento de pacotes.
5.3.1.B Ajuste baseado em metamodelos polinomiais com pesos
Para se efectuar o ajuste com metamodelos polinomiais com pesos, recorreu-se novamente a funcao
polyfitweighted, descrita na seccao 5.2.1.B. Os pesos foram calculados atraves da equacao (5.1).
Como tal, definiram-se os novos pesos dos respectivos pontos atraves da instrucao:
1 w = [1/0.4101, 1/0.7274, 1/0.3312, 1/0.4626, 1/0.6693, 1/0.9292, 1/2.3062,
2 1/1.8680, 1/2.3442, 1/1.9422, 1/3.4589, 1/3.8397, 1/2.1563];
De seguida, e tendo em conta os pesos anteriores, efectuou-se o ajuste dos pontos atraves de um
polinomio de grau 1, atraves das seguintes instrucoes:
62
1 p = polyfitweighted(x, y, 1, w);
2 z = -6:0.01:6;
3 g = polyval(p, z);
4 plot(x, y, 'o', z, g, 'k-');
Tal como no caso do ajuste sem pesos, tambem aqui os ajustes proporcionados pelos restantes
polinomios foram efectuados exactamente atraves das mesmas instrucoes que foram executadas para
o polinomio de grau 1, com alteracao do valor da variavel n para o grau do polinomio correspondente.
Na figura 5.15, e possıvel observar os ajustes proporcionados pelos polinomios dos diversos graus (1
a 4), com os respectivos pesos, para a rede de encaminhamento de pacotes.
−6 −4 −2 0 2 4 60
10
20
30
40
50
60
Pontos de controlo
Polinómio de grau 1
Polinómio de grau 2
−6 −4 −2 0 2 4 65
10
15
20
25
30
35
40
45
50
Pontos de controlo
Polinómio de grau 3
Polinómio de grau 4
Figura 5.15: Imagem em Matlab dos ajustes proporcionados pelos polinomios de grau 1 e grau 3, a esquerda, edos ajustes proporcionados pelos polinomios de grau 2 e grau 4, a direita (com pesos).
Na tabela 5.9, estao presentes os valores que foram estimados para os parametros desconhecidos
dos polinomios obtidos atraves do ajuste, bem como os respectivos erros.
Grau Forma doPolinomio a4 a3 a2 a1 a0 SSE
1 a1x+ a0 - - - 1.9461 20.3390 1057.41442 a2x
2 + a1x+ a0 - - 0.4253 3.4915 20.0071 666.4289
3 a3x3 + a2x
2 +a1x+ a0
- -0.0750 0.2236 4.6489 22.3280 351.7482
4 a4x4 + a3x
3 +a2x
2 + a1x+ a0-0.0470 -0.2046 1.2755 7.3771 22.1698 322.8838
Tabela 5.9: Valores estimados para os parametros desconhecidos e erros dos polinomios presentes na figura 5.15.
A imagem do que tinha acontecido com os polinomios sem pesos, os valores registados para o SSE
sao bastante altos, pelo que e possıvel concluir que os metamodelos polinomiais nao constituem um
bom ajuste para a rede de encaminhamento de pacotes.
Atraves da analise da figura 5.15 e da tabela 5.9, de entre os polinomios com pesos, o polinomio de
grau 3 foi o que permitiu um melhor ajuste em relacao aos pontos de controlo. Comparando as tabelas
63
dos erros dos polinomios com e sem pesos, e possıvel verificar que os polinomios de graus 3 e 4 sem
pesos foram os que permitiram obter um valor inferior para o SSE, registando-se um valor ligeiramente
inferior para o polinomio de grau 4, sendo este o metamodelo que permitiu efectuar o melhor ajuste da
rede, de entre todos os polinomios testados.
5.3.2 Ajuste baseado em metamodelos baseados em splines
Nesta seccao, ir-se-a efectuar o ajuste dos pontos presentes na figura 5.13 com o recurso a metamo-
delos baseados em splines, fazendo variar o parametro de regularizacao. Novamente, serao efectuados
ajustes com e sem pesos e ir-se-a recorrer a funcao csaps do Matlab.
5.3.2.A Ajuste baseado em metamodelos baseados em splines sem pesos
Para efectuar o ajuste baseado em splines, comecou-se por efectuar as seguintes instrucoes, cujo
resultado foi o grafico presente na figura 5.16.
1 z = -6:0.01:6;
2 plot(x, y, 'o', z, csaps(x, y, 1, z, [1 1 1 1 1 1 1 1 1 1 1 1 1]), 'k-');
−6 −4 −2 0 2 4 610
15
20
25
30
35
40
Figura 5.16: Imagem em Matlab do ajuste proporcionado por um metamodelo baseado em splines, com parametrode regularizacao igual a 1, sem pesos.
Como se pode verificar na figura 5.16, a spline resultante passa por cima dos pontos de controlo,
uma vez que se estabeleceu o parametro de regularizacao com o valor 1.
Neste caso, a spline e definida por 13 pontos de controlo, pelo que esta sera dividida em 12 interva-
los, cada um deles definido por um polinomio diferente. A spline e de ordem 4, o que significa que sera
constituıda por 12 polinomios de grau 3.
De seguida, ir-se-a fazer variar o parametro de regularizacao e analisar o ajuste proporcionado por
esta variacao. Comecou-se por estabelecer um parametro de regularizacao com o valor de 0.999,
64
atraves da instrucao:
1 plot(x, y, 'o', z, csaps(x, y, 0.999, z, [1 1 1 1 1 1 1 1 1 1 1 1 1]), 'k-');
Os ajustes proporcionados pelas restantes funcoes spline foram efectuados atraves da instrucao
anterior, com alteracao do parametro de regularizacao (P ), ou seja, modificando o valor 0.999 pelo
valor desejado. Nas figuras 5.17 e 5.18, e possıvel observar os ajustes proporcionados por diversas
funcoes spline, sem pesos, fazendo variar apenas o seu parametro de regularizacao.
−6 −4 −2 0 2 4 610
15
20
25
30
35
40
Pontos de controlo
Spline com P = 0.999
Spline com P = 0.9
−6 −4 −2 0 2 4 610
15
20
25
30
35
40
Pontos de controlo
Spline com P = 0.8
Spline com P = 0.4
Figura 5.17: Imagem em Matlab dos ajustes proporcionados por splines com P = 0.999 e P = 0.9, a esquerda, epor splines com P = 0.8 e P = 0.4, a direita (sem pesos).
−6 −4 −2 0 2 4 65
10
15
20
25
30
35
40
45
Pontos de controlo
Spline com P = 0.3
Spline com P = 0.1
Figura 5.18: Imagem em Matlab dos ajustes proporcionados por splines com P = 0.3 e P = 0.1 (sem pesos).
Como e possıvel verificar nas figuras 5.17 e 5.18, a variacao do parametro de regularizacao provoca
uma diferenca consideravel nos ajustes. A medida que o valor de P diminui, a distancia da spline
em relacao aos pontos de controlo aumenta, coincidindo com o metodo dos mınimos quadrados para
P = 0. Ou seja, para P = 0, o ajuste coincide com o ajuste proporcionado pelo polinomio de grau 1
(sem pesos) da figura 5.14, registando-se o mesmo valor para o SSE (SSE = 383.1446).
65
De seguida, sao apresentados os calculos dos erros para os ajustes presentes nas figuras 5.17 e
5.18, cujos resultados estao presentes na tabela 5.10.
Parametro de regularizacao (P) SSE0.999 0.0878
0.9 20.96330.8 37.23240.4 104.68580.3 130.89310.1 239.7242
Tabela 5.10: Valores calculados para os erros dos ajustes presentes nas figuras 5.17 e 5.18.
Analisando a tabela, verifica-se novamente um aumento do valor do SSE a medida que o parametro
de regularizacao diminui. Como ja havia sido explicado anteriormente, isto deve-se ao facto da distancia
da curva em relacao aos pontos de controlo aumentar para um valor inferior de P , o que resulta num
aumento do valor do SSE.
5.3.2.B Ajuste baseado em metamodelos baseados em splines com pesos
Em relacao ao ajuste com pesos, ir-se-a agora fazer variar o parametro de regularizacao usando os
pesos calculados para os respectivos pontos de controlo. Como tal, foram usados os pesos calculados
na seccao 5.3.1.B, que foram definidos na variavel w atraves da instrucao:
1 w = [1/0.4101, 1/0.7274, 1/0.3312, 1/0.4626, 1/0.6693, 1/0.9292, 1/2.3062,
2 1/1.8680, 1/2.3442, 1/1.9422, 1/3.4589, 1/3.8397, 1/2.1563];
De seguida, utilizando os pesos anteriores, efectuaram-se as instrucoes:
1 z = -6:0.01:6;
2 plot(x, y, 'o', z, csaps(x, y, 1, z, w), 'k-');
cujo resultado foi a spline de interpolacao presente na figura 5.16. O mesmo se verificou para o sistema
M/M/1, pelo que e possıvel concluir que, para P = 1, os pesos nao tem qualquer influencia na curva
resultante.
Para um parametro de regularizacao com o valor 0.999, executou-se a instrucao:
1 plot(x, y, 'o', z, csaps(x, y, 0.999, z, w), 'k-');
Novamente, todos os restantes ajustes foram efectuados utilizando a instrucao anterior, com alteracao
do parametro de regularizacao. Nas figuras 5.19 e 5.20, e possıvel observar os ajustes proporcionados
66
por diversas funcoes spline, com pesos, para os pontos retirados para a rede de encaminhamento de
pacotes.
−6 −4 −2 0 2 4 610
15
20
25
30
35
40
Pontos de controlo
Spline com P = 0.999
Spline com P = 0.9
−6 −4 −2 0 2 4 610
15
20
25
30
35
40
45
Pontos de controlo
Spline com P = 0.8
Spline com P = 0.4
Figura 5.19: Imagem em Matlab dos ajustes proporcionados por splines com P = 0.999 e P = 0.9, a esquerda, epor splines com P = 0.8 e P = 0.4, a direita (com pesos).
−6 −4 −2 0 2 4 610
15
20
25
30
35
40
45
50
Pontos de controlo
Spline com P = 0.3
Spline com P = 0.1
Figura 5.20: Imagem em Matlab dos ajustes proporcionados por splines com P = 0.3 e P = 0.1 (com pesos).
De seguida, sao apresentados os calculos dos erros para os ajustes presentes nas figuras 5.19 e
5.20, cujos resultados estao presentes na tabela 5.11.
Parametro de regularizacao (P) SSE0.999 0.1711
0.9 29.47270.8 52.11130.4 143.49720.3 179.74980.1 306.6782
Tabela 5.11: Valores calculados para os erros dos ajustes presentes nas figuras 5.19 e 5.20.
Para P = 0, apesar de se tratar de um modelo de regressao linear, o ajuste resultante nao coincidiu
com o polinomio de grau 1 da figura 5.14, sendo que o SSE registado tem o valor de 448.4061.
67
Se compararmos as tabelas 5.10 e 5.11, verificamos que os valores registados para o SSE foram
inferiores para os metamodelos baseados em splines sem pesos.
Como tal, podemos concluir que, para a rede de encaminhamento de pacotes, os metamodelos
baseados em splines sem pesos sao melhores para efectuar o ajuste do que os metamodelos baseados
em splines com pesos.
68
6Conclusoes
Conteudo
6.1 Sumario sobre o trabalho efectuado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.2 Metamodelos sem pesos vs. Metamodelos com pesos . . . . . . . . . . . . . . . . . 70
6.3 Polinomios vs. Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.4 Trabalho futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
69
Neste capıtulo, sao apresentadas as conclusoes referentes ao trabalho realizado. Serao efectuadas
as comparacoes entre os ajustes proporcionados pelos metamodelos polinomiais e os metamodelos
baseados em splines, tanto para o sistema M/M/1 como para a rede de encaminhamento de pacotes.
Para efectuar esta comparacao, foram analisados os comportamentos das curvas, bem como o erros
das mesmas.
Alem disso, serao tambem apresentados os topicos que se consideram ser os mais promissores
para futura investigacao.
6.1 Sumario sobre o trabalho efectuado
O resultado principal deste trabalho e o desenvolvimento de uma metodologia para construir meta-
modelos nao-lineares, baseados em funcoes spline, no contexto da simulacao estocastica, mais pro-
priamente, em sistemas de filas de espera. Foi importante desenvolver esta metodologia, porque a
maioria dos problemas que surgem na vida real sao nao-lineares.
A metodologia apresentada distingue rigorosamente os varios passos de construcao de um me-
tamodelo, nomeadamente, a fase da sua construcao propriamente dita, estimacao dos parametros
desconhecidos e dos erros e uma fase posterior de validacao e comparacao com o sistema real.
Neste trabalho, procurou-se averiguar se os metamodelos baseados em splines podem ser utiliza-
dos para melhorar as aproximacoes de modelos de simulacao estocastica, em comparacao com os
metamodelos polinomiais.
Ao longo do trabalho, foram desenvolvidos metamodelos polinomiais e metamodelos baseados em
splines. Os primeiros foram usados por se tratarem dos metamodelos mais simples dentro do con-
junto de metamodelos existentes. Os segundos foram usados para verificar se permitiam cobrir as
deficiencias dos metamodelos polinomiais e para verificar se tinham a capacidade de se ajustar a nao-
lineariedade dos sistemas com componentes estocasticas.
6.2 Metamodelos sem pesos vs. Metamodelos com pesos
Em primeira instancia, efectuou-se uma comparacao entre os dois tipos de ajuste para o mesmo
metodo. Ou seja, efectou-se uma comparacao entre os ajustes resultantes dos metamodelos sem
pesos e os ajustes resultantes dos metamodelos com pesos, tanto para os metamodelos polinomiais
como para os metamodelos baseados em splines. Esta comparacao foi efectuada atraves dos erros
calculados (SSE) mediante os ajustes.
Os erros dos metamodelos polinomiais foram os seguintes:
70
Grau SSEt sem pesos SSEt com pesos SSEe sem pesos SSEe com pesos1 124.8318 348.4997 124.5240 348.19242 51.4028 247.5927 50.6309 246.81163 18.6588 134.1107 17.2957 129.45284 7.8399 50.3805 5.9835 54.9238
Tabela 6.1: Erros calculados em relacao aos valores teoricos e experimentais dos metamodelos polinomiais refe-rentes ao sistema M/M/1.
Grau SSE sem pesos SSE com pesos1 383.1446 1057.41442 382.5750 666.42893 168.5915 351.74824 168.5350 322.8838
Tabela 6.2: Erros calculados em relacao aos valores experimentais dos metamodelos polinomiais referentes a redede encaminhamento de pacotes.
Como e possıvel observar atraves das tabelas 6.1 e 6.2, para ambos os sistemas, verifica-se que os
valores dos erros obtidos sao muito inferiores para os metamodelos polinomiais sem pesos, indepen-
dentemente do grau do polinomio.
Em relacao aos metamodelos baseados em splines, os erros estao presentes nas tabelas 6.3 e 6.4.
Parametro deregularizacao SSEt sem pesos SSEt com pesos SSEe sem pesos SSEe com pesos
0.999 16.1222 49.9205 18.7992 53.91900.99 49.3052 118.0594 52.6680 120.04270.97 76.2357 156.9692 78.8713 157.96040.9 104.4926 204.4753 105.5828 204.6669
Tabela 6.3: Erros calculados em relacao aos valores teoricos e experimentais dos metamodelos baseados emsplines referentes ao sistema M/M/1.
Parametro deregularizacao SSE sem pesos SSE com pesos
0.999 0.0878 0.17110.9 20.9633 29.47270.8 37.2324 52.11130.4 104.6858 143.49720.3 130.8931 179.74980.1 239.7242 306.6782
Tabela 6.4: Erros calculados em relacao aos valores experimentais dos metamodelos baseados em splines refe-rentes a rede de encaminhamento de pacotes.
Analisando os resultados, e possıvel concluir que, para todos os casos, verificou-se que os me-
tamodelos sem pesos permitiram alcancar erros consideralvemente inferiores e, consequentemente,
melhores ajustes. Ou seja, para ambos os sistemas, utilizando o mesmo metodo de ajuste, obteve-se
71
melhores resultados para os metamodelos sem pesos. Por exemplo, se considerarmos os metamode-
los polinomiais para o sistema M/M/1, podemos verificar que os erros foram bastante inferiores para os
metamodelos polinomiais sem pesos em comparacao com os metamodelos polinomiais com pesos.
Tal acontece porque os metamodelos sem pesos consideram a variancia constante, ao contrario
dos metamodelos com pesos, cujo peso de cada ponto e calculado tendo em conta a variancia dos
resultados obtidos na simulacao.
Em relacao ao sistema M/M/1, ja havia sido observado no capıtulo 4 que a variancia aumenta
significativamente a medida que aumenta o factor de utilizacao. Uma vez que a variancia e inversamente
proporcional ao peso, isto significa que o peso diminui a medida que aumenta o factor de utilizacao.
Portanto, para valores de ρ mais baixos, o peso desses pontos e bastante superior ao peso dos pontos
para valores de ρ mais elevados. Como tal, as curvas resultantes dos ajustes com pesos sao obrigadas
a passar proximo dos pontos de controlo para os valores de ρ mais baixos, afastando-se dos pontos de
controlo para os valores de ρ mais elevados.
Em relacao a rede de encaminhamento de pacotes, foi possıvel verificar, tambem no capıtulo 4, que
apesar dos valores da variancia nao assumirem um comportamento linear, foram registados os valores
mais baixos quando a rede esta descongestionada e os valores mais altos quando a rede atingiu o
maximo da sua capacidade. Ou seja, para valores mais baixos de λ, enquanto nao se registou perda
de pacotes, obtiveram-se valores baixos para a variancia. A partir do momento em que registou perda
de pacotes, o que ocorreu para valores mais elevados de λ, obtiveram-se valores mais elevados. Como
tal, as curvas resultantes dos ajustes com pesos sao obrigadas a passar proximo dos pontos de controlo
cujo valor da variancia e inferior, o que resulta num peso maior, afastando-se dos pontos de controlo
que correspondem a valores de λ mais elevados, para os quais se registou uma variancia maior.
Assim sendo, uma vez que as curvas resultantes dos ajustes com pesos se afastam dos pontos de
controlo para os quais a variancia obtida foi maior, faz com que aumente o valor do SSE em relacao
aos ajustes sem pesos, o que leva a conclusao de que os ajustes sem pesos permitem obter melhores
aproximacoes do que os metamodelos com pesos.
6.3 Polinomios vs. Splines
Nesta seccao, e feita uma comparacao entre os metamodelos polinomiais e os metamodelos base-
ados em splines, com base nos diversos ajustes protagonizados no capıtulo 5, mais propriamente nas
seccoes 5.2 e 5.3.
6.3.1 Polinomios vs. Splines no sistema M/M/1
Em relacao ao sistema M/M/1, os ajustes estao descritos na seccao 5.2.
72
Para os metamodelos polinomiais, aquele que permitiu um melhor ajuste foi o polinomio de grau
4 sem pesos. A escolha foi efectuada atraves do calculo do SSE, pois foi aquele que permitiu uma
proximidade maior em relacao aos pontos de controlo. Para os metamodelos baseados em splines, a
curva que se ajustou melhor aos pontos de controlo, bem como aquela que obteve um erro menor, foi a
curva resultante de um parametro de regularizacao P = 0.999 sem pesos. Tal e vısivel atraves da figura
5.11.
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−5
0
5
10
15
20
25
Pontos de controlo
Polinómio de grau 4
Spline com P = 0.999
Figura 6.1: Comparacao entre os ajustes proporcionados pelo polinomio de grau 4 e pela spline com P = 0.999,ambos sem pesos, para o sistema M/M/1.
Na figura 6.1, estao presentes os dois melhores ajustes efectuados para o sistema M/M/1. Neste
caso, o polinomio de grau 4 sem pesos apresentou SSE = 5.9835, enquanto que a spline com P = 0.999
sem pesos apresentou um SSE = 18.7992.
Apesar do valor do SSE ser inferior para o polinomio, o ajuste proporcionado pela funcao spline e
melhor, uma vez que a curva se adequa ao comportamento dos pontos de controlo.
Analisando os pontos de controlo, verifica-se um comportamento crescente dos mesmos. Como
tal, torna-se inadequado a escolha do polinomio para efectuar o ajuste, uma vez que este apresenta
oscilacoes, fugindo ao comportamento pretendido. Se utilizassemos o polinomio terıamos, por exemplo,
um valor inferior do tempo medio no sistema para ρ = 0.2 do que para ρ = 0.1. O mesmo se verificava
para o intervalo ρ ∈ [0.6; 0.7], em comparacao com ρ = 0.5.
Assim sendo, conclui-se que as splines sao uma melhor escolha para metamodelar o sistema M/M/1.
6.3.2 Polinomios vs. Splines na rede de encaminhamento de pacotes
Em relacao a rede de encaminhamento de pacotes, os ajustes estao descritos na seccao 5.3.
Para os metamodelos polinomiais, aquele que permitiu efectuar o melhor ajuste foi novamente o
polinomio de grau 4 sem pesos. Porem, os valores calculados para o SSE sao bastante elevados,
independentemente do polinomio escolhido, como e visıvel na tabela 6.2. Em analise da tabela, e
73
tal como se havia verificado no capıtulo 5, conclui-se que os metamodelos polinomiais nao permitem
alcancar um bom ajuste para a rede de encaminhamento de pacotes.
De entre as splines, verifica-se que as curvas cujo parametro de regularizacao e relativamente alto,
permitem obter ajustes bastante aceitaveis e com erros muito mais baixos comparativamente com os
metamodelos polinomiais. Naturalmente, quanto mais alto for o parametro de regularizacao, mais baixo
sera o erro. Como tal, a spline escolhida foi novamente a spline com P = 0.999.
−6 −4 −2 0 2 4 610
15
20
25
30
35
40
45
Pontos de controlo
Spline com P = 0.999
Polinómio de grau 4
Figura 6.2: Comparacao entre os ajustes proporcionados pelo polinomio de grau 4 e pela spline com P = 0.999,ambos sem pesos, para a rede de encaminhamento de pacotes.
Assim sendo, a semelhanca do que tinha acontecido para o sistema M/M/1, conclui-se que as spli-
nes permitem alcancar melhores ajustes para metamodelar a rede de encaminhamento de pacotes.
Depois de efectuadas as comparacoes, prova-se entao a concepcao de que os metamodelos ba-
seados em splines podem ser utilizados para metamodelar sistemas de simulacao estocastica. De
facto, para ambos os sistemas utilizados, as splines permitem cobrir as deficiencias dos metamodelos
polinomiais, sobretudo no caso da rede de encaminhamento de pacotes que, por se tratar de um sis-
tema nao-linear, nenhum polinomio permitiu alcancar um ajuste minimamente aceitavel. Neste caso,
e possıvel concluir que as splines tiveram a capacidade de se ajustar aos pontos que seguiam um
comportamento nao-linear, pelo que se demonstra que os seus metamodelos se conseguem ajustar a
nao-lineariedade dos sistemas com componentes estocasticas.
6.4 Trabalho futuro
Actualmente, existem oportunidades para uma posterior investigacao na area dos metamodelos
nao-lineares de simulacao. De facto, existe uma vasta area que ainda podera ser explorada. Por exem-
plo, a validacao do metamodelo em relacao ao problema real ainda foi pouco investigada na literatura.
74
Tambem seria interessante efectuar um estudo detalhado que permitisse efectuar uma comparacao
entre as splines de interpolacao e as splines de aproximacao para sistemas estocasticos.
Outro aspecto a considerar seria tentar empregar esta metodologia para metamodelos em que a
resposta tem diversos componentes, ou seja, metamodelos multivariados.
Por fim, seria interessante aumentar o tamanho da simulacao, tanto para o sistema M/M/1 como para
a rede de encaminhamento de pacotes, de modo a tornar a variancia constante. Assim, ao inves do
peso especıfico obtido para cada ponto, se a variancia fosse constante, o peso tambem seria constante.
75
Bibliografia
[1] J. Banks, S. Carson, B. Nelson, and D. Nicol, Discrete-Event System Simulation, 5th ed. En-
glewood Cliffs, NJ 07632, USA: Prentice-Hall, 2009.
[2] A. M. Law, Simulation Modeling and Analysis, 4th ed. New York, NY, USA: McGraw-Hill, 2007.
[3] B. Biller and C. Gunes, “Introduction to simulation input modeling,” in Proceedings of the Winter
Simulation Conference, ser. WSC ’10. Winter Simulation Conference, 2010, pp. 49–58.
[4] M. I. R. Santos, “Construcao de metamodelos de regressao nao linear para simulacao de aconte-
cimentos discretos,” Ph.D. dissertation, Instituto Superior Tecnico, Lisboa, Dec. 2002.
[5] E. Yucesan, “Randomization tests for initialization bias in simulation output,” Naval Research Logis-
tics, vol. 40, pp. 643–663, 1993.
[6] C. Alexopoulos, “A comprehensive review of methods for simulation output analysis,” in Proceedings
of the Winter Simulation Conference, L. Perrone, F. Wieland, J. Liu, B. Lawson, D. Nicol, and
R. Fujimoto, Eds. Piscataway, NJ: IEEE, Dec. 2006, pp. 168–178.
[7] R. G. Sargent, “Research issues in metamodeling,” in Proceedings of the Winter Simulation Confe-
rence, B. Nelson, W. Kelton, and G. Clark, Eds. Piscataway, NJ: IEEE, 1991, pp. 888–893.
[8] M. J. Sasena, P. Papalambros, and P. Goovaerts, “Exploration of metamodeling sampling criteria
for constrained global optimization,” Engineering Optimization, vol. 34, no. 3, pp. 263–278, 2002.
[9] P. M. Santos and M. I. Santos, “Construction of stochastic simulation metamodels using smoothing
splines,” Int. J. Simulation and Process Modeling, vol. 7, no. 4, pp. 249–261, 2012.
[10] H. Prautzsch, W. Boehm, and M. Paluszny, Bezier and B-Spline Techniques. Secaucus, NJ, USA:
Springer-Verlag New York, Inc., 2002.
[11] C. de Boor, A Practical Guide to Splines. New York, USA: Springer Verlag, 2001.
[12] G. Wahba, Spline Models for Observational Data. Pennsylvania, USA: SIAM, 1990.
76
[13] M. Sasena, “Optimization of computer simulations via smoothing splines and kriging metamodels,”
1998.
[14] W. E. Biles, J. P. C. Kleijnen, W. C. M. van Beers, and I. van Nieuwenhuyse, “Kriging metamodeling
in constrained simulation optimization: An explorative study,” in Proceedings of the Winter Simula-
tion Conference, S. Henderson, B. Biller, M. Hsieh, J. Shortle, J. Tew, and R. Barton, Eds., 2007,
pp. 355–362.
[15] T. W. Simpson, T. M. Mauery, J. J. Korte, and F. Mistree, “Kriging metamodels for global approxi-
mation in simulation-based multidisciplinary design optimization,” AIAA Journal, vol. 39, no. 12, pp.
2233–2241, 2001.
[16] J. H. Friedman, “Multivariate adaptative regression splines,” Annals of Statistics, vol. 19, no. 1, pp.
1–66, 1991.
[17] R. Jin, W. Chen, and T. W. Simpson, “Comparative studies of metamodeling techniques under
multiple modeling criteria,” AIAA, Tech. Rep. AIAA-2000-4801, 2000.
[18] G. G. Wang and S. Shan, “Review of metamodeling techniques in support of engineering design
optimization,” Journal Of Mechanical Design, vol. 129, no. 4, pp. 370–380, 2006.
[19] J. P. C. Kleijnen and R. G. Sargent, “A methodology for fitting and validating metamodels in simula-
tion,” European Journal of Operational Research, vol. 120, pp. 14–29, 2000.
[20] D. Gross, J. F. Shortle, J. M. Thompson, and C. M. Harris, Fundamentals of Queueing Theory,
4th ed. New York, NY, USA: Wiley-Interscience, 2008.
[21] A. A. Pritsker and J. J. O’Reilly, Simulation with Visual SLAM and AweSim, 2nd ed. New York, NY,
USA: John Wiley & Sons, Inc., 1999.
[22] P. M. Santos and M. I. Santos, “Construction of stochastic simulation metamodels based on unre-
plicated smoothed data,” Simulation, vol. 85, no. 6, pp. 387–396, 2009.
77
ACodigo do Projecto
78
Codigo da funcao meanstd no programa Matlab:
1 function meanstd (txt, bias, batchSize)
2
3 obs = load(txt);
4
5 withoutBias = obs((bias+1):size(obs,1));
6
7 numberBatches = floor(size(withoutBias,1) / batchSize)
8
9 batchMeans = zeros(numberBatches,1);
10 batch = [];
11 counter = 1;
12
13 for (i = 1 : batchSize : (numberBatches * batchSize))
14 for (j = 1 : batchSize)
15 batch(j) = withoutBias(i+j-1);
16 end
17 Mean = mean(batch);
18 batchMeans(counter) = Mean;
19 counter = counter + 1;
20 end
21
22 MeanOfMeans = mean(batchMeans)
23 StandardDeviation = std(batchMeans)
24 Variance = var(batchMeans)
25
26 end
79
Codigo da funcao polyfitweighted no programa Matlab:
1 function p = polyfitweighted(x,y,n,w)
2
3 if ~isequal(size(x),size(y),size(w))
4 error('X and Y vectors must be the same size.')
5 end
6
7 x = x(:);
8 y = y(:);
9 w = w(:);
10
11 V(:,n+1) = w;
12 for j = n:-1:1
13 V(:,j) = x.*V(:,j+1);
14 end
15
16 [Q,R] = qr(V,0);
17 ws = warning('off','all');
18 p = R\(Q'*(w.*y));
19
20 warning(ws);
21 if size(R,2) > size(R,1)
22 warning('polyfitweighted:PolyNotUnique', ...
23 'Polynomial is not unique; degree >= number of data points.')
24 elseif condest(R) > 1.0e10
25 if nargout > 2
26 warning('polyfitweighted:RepeatedPoints', ...
27 'Polynomial is badly conditioned. Remove repeated data points.')
28 else
29 warning('polyfitweighted:RepeatedPointsOrRescale', ...
30 ['Polynomial is badly conditioned. Remove repeated data points\n' ...
31 ' or try centering and scaling as described in HELP POLYFIT.'])
32 end
33 end
34 p = p.';
80
Codigo da funcao yucesan no programa Matlab:
1 function out = yucesan(y,b,m,corr,NS,SL)
2
3 ok = 0;
4 sz=size(y,1);
5 ms=0;
6 for ms=m:100:sz/b
7 Z=zeros(1,b);
8 for i=1:b,
9 Z(i) = mean(y((i-1)*ms+1:i*ms));
10 end
11 rho=sum((Z(1:b-1)-mean(Z)) .* (Z(2:b)-mean(Z))) / sum((Z-mean(Z)).ˆ2);
12 if abs(rho) <= corr
13 ok = 1;
14 break
15 end
16 end
17 if ok == 0
18 fprintf(2, 'threshold(%G) serial correlation among
19 batches not achieved for %G observations per batch\n', corr, ms);
20 out=-1;
21 return
22 end
23 fprintf(2,'%G observations in each batch\n', ms);
24
25 minsl=1;
26 minsp=b;
27 for split=1:b-1
28 T = abs( mean(Z(1:split)) - mean(Z(split+1:b)) );
29 nge = 0;
30 for shuffle=1:NS
31 Zsh = Z(randperm(b));
32 Tsh = abs( mean(Zsh(1:split)) - mean(Zsh(split+1:b)) );
33 if Tsh >= T
34 nge = nge + 1;
35 end
36 end
81
37 sl = (nge+1)/(NS+1);
38
39 if SL > sl
40 out = split*ms;
41 fprintf(2, 'remove %G observations (from %G batches of
42 %G observations)\n', out, split, ms);
43 return
44 end
45 if sl < minsl
46 minsl = sl;
47 minsp = split;
48 end
49 end
50 out = -1;
51 fprintf(2, 'signifcance level (%G) not reached\n', SL);
52 fprintf(2, 'lowest signicance level obtained (%G) for %G batches of
53 %G observations\n', minsl, minsp, ms);
82
Codigo em C da rotina que interage com o sistema M/M/1 no programa AweSim:
1 #include "vslam.h"
2 #include <stdio.h>
3 #include <math.h>
4
5 #define NOBS 20000 /* number of observations (entities) per run */
6 double rho[] = { .1, .2, .3, .4, .5, .6, .7, .75, .8, .85, .9, .95 };
7
8 FILE *fp;
9
10 BOOL SWFUNC INTLC(UINT uiRun)
11 {
12 char buf[80];
13
14 if (uiRun != 1) /* close file from previous run */
15 fclose(fp);
16 if (uiRun > sizeof(rho)/sizeof(rho[0])) /* last run? */
17 return FALSE;
18
19 XX[1] = rho[uiRun-1]; /* service time (interarrival=1) */
20 LL[1] = NOBS; /* end after LL[1] entities exit the system */
21 sprintf(buf, "mm1rho%2.2d.txt", uiRun);
22
23 fp = fopen(buf, "w");
24 return TRUE;
25 }
26
27 void EVENT(int i, ENTITY *cli)
28 {
29 fprintf(fp, "%15f\n", (TNOW - cli->ATRIB[1]));
30 }
83
Codigo em C da rotina que interage com a rede de encaminhamento de pacotes no programa
AweSim:
1 #include "vslam.h"
2 #include <stdio.h>
3 #include <math.h>
4
5 double pts[] = { 1./32, 1./16, 1./8, 1./4, 1./2,
6 0.7071, 1, 1.4142, 2, 4, 8, 16, 32 }; /* 2ˆ0.5 = 1.4142 e 2ˆ-0.5 = 0.7071 */
7
8 unsigned nrun = 1, npts = sizeof(pts)/sizeof(pts[0]), run, pt;
9
10 FILE *fp;
11 unsigned long balk;
12
13 BOOL SWFUNC INTLC(UINT uiRun)
14 {
15 char name[80];
16
17 if (uiRun > 1) fprintf(fp, "%% balk=%lu\n", balk);
18 if (uiRun > nrun * npts) {
19 fclose(fp);
20 return FALSE;
21 }
22
23 if (uiRun > 1) fclose(fp);
24 if (run + 1 > nrun) {
25 run = 1;
26 pt++;
27 } else run++;
28
29 XX[1] = 1/pts[pt];
30
31 sprintf(name, "msg%3.3dr%2.2d.txt", (int)(XX[1]*100), run);
32 fp = fopen(name, "w");
33 fprintf(fp, "%% tempo medio entre chegadas=%g\n", XX[1]);
34 LL[1] = 50000;
35 balk = 0;
84
36 return TRUE;
37 }
38
39 void EVENT(int i, ENTITY *cli)
40 {
41 if (i == 2) balk++;
42 else
43 fprintf(fp, "%15f\n", TNOW - cli->ATRIB[1]);
44 }
85