Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
6. Tcnicas de Simulao
Orientao a Eventos Esta abordagem estritamente baseada no modelo autmato estocstico desenvolvido no captulo anterior.
Um autmato estocstico pode ser representado por um esquema semelhante, com pequenas modificaes.
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
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;
6. Tcnicas de Simulao
Componentes do programa:
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;
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;
6. Tcnicas de Simulao
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.
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:
6. Tcnicas de Simulao
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
6. Tcnicas de Simulao
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
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
10
6. Tcnicas de Simulao
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
11
tempos de chegada
fim
e=a
estado=estado1
n
n=n+1
estado=0
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.
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.
14
6. Tcnicas de Simulao
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
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.
16
6. Tcnicas de Simulao
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
atraso
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).
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
19
6. Tcnicas de Simulao
garon A
garon B lgica
A 0 0 1 1
B chave 0 c 1 c 0 b 1
circulao de entidades
sinais de controle
20
6. Tcnicas de Simulao
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
21
6. Tcnicas de Simulao
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.
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
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.
24
6. Tcnicas de Simulao
tipo de evento
instante
atributos suplementares
campos Registro associado a uma entidade: identificador atributo1 atributo2 ... atributo n
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
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.
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]
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.
28
6. Tcnicas de Simulao
Exemplo:
headptr
[T4; 10,0; 0]
Outras implementaes: dupla ligao (para frente e para trs) apontador para o meio da lista
29