construc¸ao de metamodelos de simulac¸˜ ao estoc˜ astica ... · 5.2 imagem em matlab de um...

99
Construc ¸˜ ao de Metamodelos de Simulac ¸˜ ao Estoc ´ astica Utilizando Splines Rui Henrique Silvestre Barradas Dissertac ¸˜ ao para obtenc ¸˜ ao do Grau de Mestre em Engenharia de Telecomunicac ¸˜ oes e Inform´ atica Orientadores: Prof. Maria Isabel da Conceic ¸˜ ao Santos Reis dos Santos Prof. Pedro Manuel Guerra e Silva Reis dos Santos uri Presidente: Prof. Paulo Jorge Pires Ferreira Orientador: Prof. Maria Isabel da Conceic ¸˜ ao Santos Reis dos Santos Vogal: Prof. P´ avel Pereira Calado Outubro 2015

Upload: others

Post on 15-Sep-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 2: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab
Page 3: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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.

Page 4: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab
Page 5: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 6: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 7: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 8: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 9: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 10: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 11: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 12: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 13: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 14: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 15: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

1Introducao

Conteudo

1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Organizacao da dissertacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1

Page 16: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 17: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 18: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 19: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 20: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 21: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 22: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 23: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 24: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 25: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

• 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

Page 26: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 27: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 28: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 29: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 30: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

• 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

Page 31: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 32: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 33: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 34: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 35: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

• 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

Page 36: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 37: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 38: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 39: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 40: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 41: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 42: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 43: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 44: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 45: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 46: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 47: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

Figura 4.2: Desenho da rede de encaminhamento de pacotes no AweSim Network Builder.

33

Page 48: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 49: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 50: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 51: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 52: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 53: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 54: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 55: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 56: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 57: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 58: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 59: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 60: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 61: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 62: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 63: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 64: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 65: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 66: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

ρ 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

Page 67: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 68: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 69: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 70: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 71: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 72: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 73: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 74: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 75: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 76: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 77: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 78: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 79: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 80: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 81: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 82: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 83: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 84: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 85: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 86: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 87: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 88: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 89: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 90: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 91: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

[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

Page 92: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

ACodigo do Projecto

78

Page 93: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 94: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 95: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 96: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 97: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 98: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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

Page 99: Construc¸ao de Metamodelos de Simulac¸˜ ao Estoc˜ astica ... · 5.2 Imagem em Matlab de um exemplo do ajuste proporcionado pela func¸ao˜ spline.. . . . .48 5.3 Imagem em Matlab

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