Sei sulla pagina 1di 29

6.

Tcnicas de Simulao

Tcnicas de Simulao
Contexto : Sistemas dinmicos a eventos discretos Simulao enquanto computao numrica Um programa para simulao (simulador) pode ser organizado de muitas maneiras sendo as mais usuais: Orientao a eventos:
Exerccio estrito de um autmato estocstico; o programador deve estabelecer como o estado se altera com a ocorrncia de eventos.

Orientao a processos:
O programador deve identificar no sistema "entidades" que esto submetidas a "processos"; em seguida deve descrever as interaes entre os processos.

Orientao ao exame de atividades:


O programador deve identificar no sistema as "atividades" e as condies para seu incio e trmino.

Simulao de Sistemas Dinmicos

6. Tcnicas de Simulao

Orientao a Eventos Esta abordagem estritamente baseada no modelo autmato estocstico desenvolvido no captulo anterior.

Um autmato temporizado pode ser representado por um esquema de escalonamento de eventos

Um autmato estocstico pode ser representado por um esquema semelhante, com pequenas modificaes.

O intersse destas representaes devido sua proximidade com a implementao de um programa.

Simulao de Sistemas Dinmicos

6. Tcnicas de Simulao

inicializao estado x x atualiza estado: p(x;x,e) x deleta eventos infactveis calendrio de eventos e1 t1 e2 t2 . . . . . . tempo t t atualiza tempo t

acrescenta eventos habilitados e reoordena.

gerao de var. vi,k aleatria

Simulao de Sistemas Dinmicos

6. Tcnicas de Simulao

Execuo do programa: P1) Remover a primeira linha do calendrio; P2) Atualizar o tempo com o valor t1; P3) Atualizar o estado de acordo com p(x;x,e1); P4) Deletar do calendrio as linhas correspondentes
a eventos infactveis no novo estado;

P5) Acrescentar ao calendrio os eventos factveis que


ainda no estejam escalonados; o tempo associado ao novo evento obtido adicionando-se ao tempo corrente a um valor sorteado da estrutura de relgio;

P6) Reordenar o calendrio por ordem crescente do


valor do tempo em que os eventos foram escalonados.

Simulao de Sistemas Dinmicos

6. Tcnicas de Simulao

Componentes do programa:

1) Estado: uma lista onde as variveis do estado so armazenadas;

2) Tempo: uma varivel onde o tempo de simulao


armazenado;

3) Calendrio de Eventos: uma lista onde todos os eventos escalonados so armazenados juntamente com seu instante de ocorrncia;

4) Registros de Dados: variveis e/ou listas de armazenamento de dados a serem utilizados em estimaes;

5) Rotina de Inicializao: inicializa todas as estruturas


de dados descritas, ao incio da simulao;

6) Rotina de Atualizao do Tempo: identifica o prximo evento a ocorrer e avana o tempo de simulao para o tempo de ocorrncia daquele evento;

Simulao de Sistemas Dinmicos

6. Tcnicas de Simulao

7) Rotina de Atualizao do Estado: Atualiza o


estado atravs de sorteio com base no prximo evento;

8) Rotinas de Gerao de Variveis Aleatrias:


Geram, a partir de nmeros aleatrios gerados pelo computador, amostras da variveis aleatrias associadas aos tempos de vida dos eventos, de acrdo com as distribuies definidas a-priori;

9) Rotina de Gerao de Relatrios: Calcula estimaes das grandezas de intersse a partir dos dados coletados na execuo de uma simulao;

10) Programa Principal: Responsvel pela coordenao geral de todos os componentes; chama inicialmente a rotina de inicializao; durante a execuo chama repetidamente as rotinas de atualizao e atualiza o calendrio; termina o programa.

Simulao de Sistemas Dinmicos

6. Tcnicas de Simulao

Exemplo:
fila chegada de clientes servidor partida de clientes

(sero simulados N clientes) Suponhamos que sejam dadas as distribuies de probabilidade dos intervalos de chegada e dos tempos de servio e se deseja avaliar neste sistema as seguintes medidas de desempenho:

Tempo de sistema mdio:


esperana do tempo de permanncia de um cliente no sistema
N 1 = S Sk N N k =1

onde Sk o tempo de permanncia no sistema do k-simo cliente.

Simulao de Sistemas Dinmicos

6. Tcnicas de Simulao

Probabilidade de exceder o "deadline":


D = deadline nN = nmero de clientes que excederam o deadline

D = nN P N N

Utilizao do Servidor:
Probabilidade de o servidor estar ocupado durante o tempo requerido para atender N clientes, N T(i) = tempo total observado em que o comprimento da fila i

TN =
N

T(i)
i =0

T(i) T(0) i =1 = = 1 TN TN

Simulao de Sistemas Dinmicos

6. Tcnicas de Simulao

Comprimento mdio da fila:


pN(i) = probabilidade de que o comprimento da fila seja i, durante o tempo requerido para atender N clientes Por definio o comprimento mdio dado por:

QN =
Tem-se:

i p N (i)
i =0

N (i) = p
Portanto:

T(i) TN

= 1 Q N TN

i T(i)
i =0

Simulao de Sistemas Dinmicos

6. Tcnicas de Simulao Vai-se supor, para execuo do exemplo, que as chegadas e servios obedecem a:
tempo
d5=5,3

d4=3,8

d3=3,5

3,0

4,0

d2=2,5

d1=2,0

2,0

comprim. da fila

a3=1,1 a1=0,4

1,0

a4=2,8 a2=0,7

a5=4,5

a6=5,0

5,0

Simulao de Sistemas Dinmicos

10

6. Tcnicas de Simulao

As informaes relevantes para a simulao so:


tempo 0,0 estado 0 lista de eventos escalonados tipo instante

As informaes necessrias para estimar os critrios de desempenho so: durao-comp.-fila T(0) T(1) T(2) T(3)
tempos de sistema 1 2 3 4 5

nN

tempos de chegada 1 2 3 4 5

Simulao de Sistemas Dinmicos

11

6. Tcnicas de Simulao inicializar: t=0,0 estado=0 evento(1)=a instante(1)=sorteio n=0 nN


n s

tempos de chegada

fim

t=instante(1) e=evento(1) deleta 1a linha do calendrio estado=estado+1


s s

e=a

estado=estado1
n

n=n+1

estado=0

deleta linhas "d"

incluir linha "d" se necessrio tempos de servio tempos de chegada

incluir linha "a" se necessrio reordenar o calendrio atualizar estatsticas


Simulao de Sistemas Dinmicos

12

6. Tcnicas de Simulao

Orientao a Processos

A tcnica anterior fundamentada nos autmatos estocsticos Embora seja teoricamente bem articulada, esta modelagem pode ser custosa e longa Por outro lado, algumas estruturas se repetem em muitas aplicaes, como o caso das filas. Ocorre portanto que muitos simuladores so organizados em torno das estruturas mais comuns nas aplicaes. A tarefa de modelagem, nestes casos, consiste em "montar" o modelo do sistema a partir dos "blocos" pr-programados Os conceitos a seguir so utilizados como base para as abordagens deste tipo.

Simulao de Sistemas Dinmicos

13

6. Tcnicas de Simulao

Idia bsica:
O Sistema a Eventos Discretos visto como um conjunto de entidades que se submetem a processos.

Entidade:
Objeto que requer a execuo de alguma ao (servio). Exemplos: peas num sistema de manufatura, jobs num sistema de computadores, pacotes numa rede de comunicaes. Num mesmo sistema podem coexistir vrios tipos de enentidades. Cada tipo ser submetido a um processo diferente.

Processo:
Sequncia de eventos separados por intervalos de tempo. Durante cada intervalo de tempo uma entidade estar recebendo servio ou esperando por servio. Um processo pode ser caracterizado por suas funes, como veremos a seguir.

Simulao de Sistemas Dinmicos

14

6. Tcnicas de Simulao

Exemplo: processo numa fila:


a) chegada; b) entrada na fila; c) requisio de servio; se o servidor est livre a entidade o ocupa; seno fica na fila at o servidor ficar ocioso; d) incio do servio, que dura o tempo correspondente ao "tempo de servio"; e) liberao do servidor, quando o servio termina; f) partida do sistema.

Funes de Processo:
1) Funes Lgicas: aes instantneas tomadas pela entidade; por exemplo, os itens a) b) e) f) no exemplo acima. 2) Funes de Atraso: aes que envolvem a reteno da entidade por algum perodo de tempo. Dois tipos: 2.1) Tempo especificado ou Atividade: em geral determinado por um gerador de Var. Aleatrias; exemplo: tempo de servio. 2.2) Tempo no especificado ou Atraso: determinado pelo estado do sistema; exemplo: tempo de espera na fila

Simulao de Sistemas Dinmicos

15

6. Tcnicas de Simulao

Outras definies:
Atributos: informaes que caracterizam individualmente uma entidade de algum tipo; por exemplo o instante de chegada de uma peo num sistema de manufatura, destino de uma mensagem numa rede de computadores. Recursos: objetos que provem os servios requisitados pelas entidades; por exemplo mquinas num sistema de manufatura, processadores num sistema de computadores, chaveadores num sistema de telefonia. As funes de processo do tipo "atividade" esto associadas aos recursos. Filas: conjuntos de entidades esperando pelo mesmo recurso. Em geral, uma entidade est em alguma fila, a menos que esteja sendo servida por um recurso. A funes de processo do tipo "atraso" esto associadas s filas.

Simulao de Sistemas Dinmicos

16

6. Tcnicas de Simulao

So ainda usuais as terminologias:


atividade = espera incondicional atraso = espera condicional

final de uma atividade = evento primrio (deve ser modelado) final de um atraso = evento secundrio (pode no ser modelado) O diagrama de tempo abaixo ilustra o conceito de interao entre processos: Considere-se a fila do exemplo anterior:

cliente n

evento de chegada atraso

incio de servio atividade

evento de fim de servio tempo interao

cliente n+1 evento de chegada

atraso

atividade incio de servio evento de tempo fim de servio

Simulao de Sistemas Dinmicos

17

6. Tcnicas de Simulao

Um Simulador Orientado a Processos ou a Interao de Processos um programa que permite "construir" processos e definir regras de interao entre eles. A progamao deste tipo de simulador feita atravs de: sintaxe adequada ou programao visual (arranjo de cones) Portanto a modelagem orientada a processo v o sistema a eventos discretos sob o ponto de vista das entidades e seu "ciclo-de-vida". Um simulador orientado a processos deve prover como facilidades de programao as funes de processo mais comuns Como nos simuladores orientados a eventos, o tempo de simulao avana de evento em evento; um calendrio deve fazer parte do simulador (transparente ao modelador).

Simulao de Sistemas Dinmicos

18

6. Tcnicas de Simulao

O modelador deve "montar" o processo e atravs dos recursos do simulador deve definir como interagem.

Exemplo:
"Drive-in" com dois garons: gera clientes

fila

A=ocioso

servio A

servio B

sada de clientes

Simulao de Sistemas Dinmicos

19

6. Tcnicas de Simulao

Exemplo: Programao Visual

garon A

c fila gerao de clientes b chave lgica de roteamento partida de clientes

garon B lgica

A 0 0 1 1

B chave 0 c 1 c 0 b 1

circulao de entidades

sinais de controle

Simulao de Sistemas Dinmicos

20

6. Tcnicas de Simulao

Orientao ao Exame de Atividades


O tempo de simulao avana por incrementos fixos, em contraste com as abordagens anteriores; A cada avano de tempo, todas as atividades tem suas condies de incio verificadas; O modelador deve se concentrar em modelar as condies, simples ou complexas, para o incio de cada atividade.

Vantagens:
simplicidade conceitual: menor esforo de codificao modelos modulares facilidade de manuteno, compreenso e modificao (por outros analistas em outro momento)

Desvantagem:
tempo de processamento

Nesta forma bsica, seu uso pouco difundido

Simulao de Sistemas Dinmicos

21

6. Tcnicas de Simulao

Evoluo: modelo de trs fases


O programa simulador deve ter um calendrio no qual so includos somente os eventos primrios

Fase1: Avanar o tempo de simulao at o instante do prximo evento primrio; Fase2: Executar todos o eventos primrios; Fase3: Verificar as condies de incio de todas as atividades e executar os eventos secundrios quando fr o caso; repetir at que nenhum evento possa ser executado. Neste tipo de simulador o incio de servio deve ser independente da chegada de uma entidade Desse modo uma entidade sempre colocada numa fila, independentemente do status do servidor; os eventos de chegada e partida so sempre executveis.

Simulao de Sistemas Dinmicos

22

6. Tcnicas de Simulao

Exemplo:
"Drive-in" com dois garons:
Inicializar; Gerar chegadas t=instante(1) e=evento(1) deleta 1a linha do calendrio e=c n e=a n e=b A=ocupado n=n-1 agendar a B=ocupado n=n-1 agendar b s A=ocioso s n=n+1

B=ocioso

A=ocioso e n>0 n

B=ocioso e n>0 n

houve incio de atividade

Simulao de Sistemas Dinmicos

23

6. Tcnicas de Simulao

Processamento de Listas

Em simuladores, listas so utilizadas principalmente em: calendrios; entidades e seus atributos; Usualmente, linguagens de simulao provem mecanismos de manipulao, transparentes ao usurio. Em linguagens de uso geral (alto nvel) e mesmo em simuladores (facultativamente), o programador deve programar as operaes. Um registro (record) uma clula de informao numa lista, podendo ser uma linha de um calendrio ou a informao referente a uma entidade. Um registro composto de campos.

Simulao de Sistemas Dinmicos

24

6. Tcnicas de Simulao

Registro de uma linha do calendrio:

tipo de evento

instante

atributos suplementares

campos Registro associado a uma entidade: identificador atributo1 atributo2 ... atributo n

Em algumas implementaes pode haver um campo dedicado a um apontador do prximo registro.

Simulao de Sistemas Dinmicos

25

6. Tcnicas de Simulao

Operaes tpicas em uma lista: Remoo de um registro do topo de uma lista Remoo de um registro de algum ponto da lista Incluso de um registro de entidade no topo ou fim da lista Incluso de um registro em um ponto arbitrrio da lista segundo algum critrio. As operaes em pontos arbitrrios da lista podem envolver buscas, sendo o principal objetivo das tcnicas de processamento de listas torn-las eficientes. Possibilidades de implementao: vetores (arrays) alocao dinmica

Simulao de Sistemas Dinmicos

26

6. Tcnicas de Simulao

Vetores (arrays):
Registros ocupam posies contguas da memria, R(i). Espao total deve ser pr-especificado. vantagem: qualquer registro pode ser recuperado sem busca. desvantagem: incluso ou excluso de um registro no meio da lista implica numa grande operao de leitura e re-escrita. H duas maneiras de ordenar uma lista implementada via vetores: Segundo a prpria posio na memria; Segundo um apontador contido no prprio registro A primeira maneira marcadamente ineficaz.

Simulao de Sistemas Dinmicos

27

6. Tcnicas de Simulao

Exemplo:

headptr=3 R(1) = [T1; 0,0; 0] R(2) = [T2; 10,0; 4] R(3) = [T3; 5,0; 2] R(4) = [T4; 10,0; 0] R(5) = [T5; 0,0; 0] R(6) = [T6; 0,0; 0]

Remoo do topo da lista: headptr = R(headptr, next)

Alocao Dinmica:
Cada registro contm um campo com a posio de memria do prximo registro. A alocao de um espao na memria gerenciada pela linguagem de programao ou sistema operacional.

Simulao de Sistemas Dinmicos

28

6. Tcnicas de Simulao

Exemplo:

headptr

[T3; 5,0; ptr1]

[T4; 10,0; 0]

[T2; 10,0; ptr2]

Outras implementaes: dupla ligao (para frente e para trs) apontador para o meio da lista

Simulao de Sistemas Dinmicos

29

Potrebbero piacerti anche