ADS29009-2020-1: mudanças entre as edições
Linha 406: | Linha 406: | ||
*Geração de Números Randômicos para Simulação | *Geração de Números Randômicos para Simulação | ||
**Método Linear Congruente | **Método Linear Congruente | ||
**Método da Inversa para geração de números de uma distribuição | **Método da Inversa para geração de números de uma distribuição qualquer | ||
==Slides da Aula== | ==Slides da Aula== |
Edição das 08h13min de 1 de julho de 2020
1 AULA 1 - Dia 30/07/2019
1.1 Objetivos
- Apresentação da Disciplina (SIGA A)
- Plano de Ensino (SIGA A)
- Avaliação (SIGA A)
1.2 Introdução a ADS
Questões Iniciais:
- Que projeto estou fazendo?
- Como procedo para fazer uma ADS?
1.3 Tarefa A1.1
- Pesquisar um artigo sobre ADS em uma área de seu interesse. Analisar um arquivo a luz das etapas e conceitos discutidos nesta semana.
Fazer slides que devem ser postados na data anterior da apresentação. O slide deve apresentar:
- Objetivo da ADS no artigo
- Métricas
- Parâmetros
- Fatores
- Workload
- Técnicas usadas
- Resumo de como são apresentados os dados
- Conclusão Pessoal
APRESENTAÇÃO: Dia 20/02/2020
1.4 Material de Referência
2 AULA 2 - 19/02/2020
2.1 Objetivos
- Conceitos básicos de ADS
- Tarefa em SAla
2.2 TAREFA
Considere o texto em: http://ieeexplore.ieee.org/document/997208/
Responda (em grupo) as seguintes questões:
- 0) Qual o objetivo principal do experimento?
- 1) Quais fatores estão sendo considerados no experimento? Explique cada um deles.
- 2) Quais os níveis que estão sendo utilizados para cada fator?
- 3) Quais as métricas que estão sendo avaliadas? Explique cada uma delas.
- 4) Quais parâmetros/características do cenário foram fixados? Liste pelo menos 5.
- 5) Na sua visão a carga de trabalho está sendo definida em que parâmetro?
- 6) No experimento, todos os nodos transmitem e recebem informação?
- 7) Quantas repetições foram previstas para cada simulação.
- 8) O experimento testa exaustivamente todas as possibilidades de variação de nível entre os parâmetros?
- 9) Qual o modelo de mobilidade escolhido? Explique sucintamente o funcionamento.
- 10) Sintetize as conclusões do trabalho.
- 11) Qual o significado de "main effect of a factor" no contexto do trabalho?
3 AULA 3 - 20/02/2020
3.1 Objetivos
- Conceitos básicos de ADS
- Apresentação da tarefa A1.1
- Introdução a projetos fatoriais
4 AULA 4 - 04/03/2020
4.1 Objetivos
- Introdução a Cadeias de Markov Discretas
4.2 Material de Referência
https://www.dropbox.com/s/ynnb16ytldd1pbx/CadeiasDeMarkovDiscretas_Parte1.pdf?dl=0
5 AULA 5 Dia 5/03/2020
5.1 Objetivos
- Introdução a DTMC
- DTMC: Holding Time, Média de primeira transição
- Simulação de DTMC
- Tarefa
5.2 Slides Aula
5.3 Programa Simulação Cadeia Markov
TAREFA 8 - Simulação de Caddeia de Markov.
Segundo discutido em sala e exercício do slide
https://www.dropbox.com/s/hvgk42nhhcsyjlt/SimMarkovAlunos.m
P = [
0.2 0 0.8 0 0 0 0 0 0 0;
0 0.2 0.3 0.3 0.2 0 0 0 0 0;
0 0 0.1 0 0 0.9 0 0 0 0;
0 0 0 0 0 0 1.0 0 0 0;
0 0 0 0 0 0.3 0.7 0 0 0;
0 0 0 0 0 0 0 0.2 0 0.8;
0 0 0 0 0 0 0 0 0.8 0.2;
1.0 0 0 0 0 0 0 0 0 0;
0 1.0 0 0 0 0 0 0 0 0;
0.2 0.6 0 0 0 0 0 0 0 0.2;
];
6 AULA 6 Dia 11/03/2020
6.1 Objetivos
- Aplicações de DTMC
6.2 Slides Aula
https://www.dropbox.com/s/0zxzg8dx5qe2b2e/AplicacoesCadeiasDeMarkovDiscretas.pdf?dl=0
7 AULA VIRTUAL 7 Dia 1/04/2020
7.1 Objetivos
- Revisão Distribuição Exponencial e Propriedade Sem Memória
- Cadeia de Markov em tempo Contínuo.
7.2 Slides Aula
https://www.dropbox.com/s/vs8yifvdulsqdwd/CadeiasDeMarkovContinuas_Parte1.pdf?dl=0
7.3 Material Auxiliar
- https://mast.queensu.ca/~stat455/lecturenotes/set4.pdf
- https://mast.queensu.ca/~stat455/lecturenotes/set5.pdf
- https://www.youtube.com/watch?v=vKF-RJ_bPVY
8 AULA VIRTUAL 8 Dia 2/04/2020
8.1 Objetivos
- Instruções para instalação do Omnet
- Cadeia de Markov em tempo Contínuo (Continuação)
8.2 Slides Aula
https://www.dropbox.com/s/vs8yifvdulsqdwd/CadeiasDeMarkovContinuas_Parte1.pdf?dl=0
Fazer a instalação do omnet e do inet.
8.3 Material Auxiliar
- https://mast.queensu.ca/~stat455/lecturenotes/set4.pdf
- https://mast.queensu.ca/~stat455/lecturenotes/set5.pdf
- https://www.youtube.com/watch?v=vKF-RJ_bPVY
8.4 Omnet
9 AULA VIRTUAL 9 Dia 16/04/2020
9.1 Objetivos
- Introdução a Teoria de Filas (continuação)
- Fila MM1
- Desempenho da Fila MM1
9.2 Slides Aula
10 AULA VIRTUAL 10 Dia 22/04/2020
10.1 Objetivos
- Discussão da lista de Exercícios
- Filas MM1k
- Filas MMn
10.2 Slides Aula
- https://www.dropbox.com/s/1nfastsaorr5eyy/FilaMM1_CapacidadeLimitada.pdf?dl=0
- https://www.dropbox.com/s/zaul2rq4xzdzw2k/FilaMMc_MultiplosServidores.pdf?dl=0
11 AULA VIRTUAL 11 Dia 29/04/2020
11.1 Objetivos
- Discussão da lista de Exercícios
- Filas MM1k (Revisão)
- Desempenho da Fila MM1k
- Filas MMn
- Desempenho da Fila MMn
11.2 Slides Aula
- https://www.dropbox.com/s/1nfastsaorr5eyy/FilaMM1_CapacidadeLimitada.pdf?dl=0
- https://www.dropbox.com/s/zaul2rq4xzdzw2k/FilaMMc_MultiplosServidores.pdf?dl=0
12 Reunião/AULA VIRTUAL 12 Dia 20/05/2020
12.1 Objetivos
- discussão sobre o desenvolvimento das ANPS;
- entregar A1.5 até 27/05 - não vale nota. Anotar pontos que tem dificuldade
- dia 27/05 - aula síncrona - correção dos exercícios -
- dia 27/05 - postagem de nova lista - valendo nota
- dia 28/05 - aula síncrona - Filas MMn e Redes de Filas
13 AULA VIRTUAL Dia 27/05/2020
13.1 Objetivos
- Resolução da Lista de Exercícios sobre CTMC e Introdução a Teoria de Filas
13.2 Lista Resolvida
14 AULA VIRTUAL Dia 28/05/2020
14.1 Objetivos
- Filas MM1k (Nova Revisão)
- Desempenho da Fila MM1k
- Filas MMn
- Desempenho da Fila MMn
14.2 Slides Aula
- https://www.dropbox.com/s/1nfastsaorr5eyy/FilaMM1_CapacidadeLimitada.pdf?dl=0
- https://www.dropbox.com/s/zaul2rq4xzdzw2k/FilaMMc_MultiplosServidores.pdf?dl=0
15 AULA VIRTUAL Dia 3/06/2020
15.1 Objetivos
- Lista de Exercícios A1.5 - Comentários
- Introdução a Rede de Filas
15.2 Slides Aula
16 AULA VIRTUAL Dia 10/06/2020
16.1 Objetivos
- Introdução a Simulação em ADS
16.2 Slides Aula
17 AULA VIRTUAL Dia 17/06/2020
17.1 Objetivos
- Introdução a Simulação em ADS
- Proposição de Exercício: Fila MM1 modificada com Simulador baseado no site do Apache.
17.2 Slides Aula
- Ver Projeto Apache
Adaptar o código de tratamento de uma fila MM1 simples, conforme colocado no slide para um formato de um simulador de eventos discretos com filas. Use o código abaixo como apoio.
//Basead em http://stdcxx.apache.org/doc/stdlibug/2-2.html#225
#include <queue>
#include <iostream>
#include <cstdlib>
//==================================================================
// classes evento e simulação - base para o desenvolvimento da simulação
//==================================================================
class event {
public:
// Construct sets time of event.
event (double t) : time (t)
{ }
// Execute event by invoking this method.
virtual void processEvent () = 0;
const double time;
};
class simulation {
public:
simulation () : simtime (0), eventQueue ()
{}
void run ();
void scheduleEvent (event * newEvent) {
eventQueue.push (newEvent);
}
double simtime;
protected:
class eventComparator {
public:
bool operator() (const event * left, const event * right) const {
return left->time > right->time;
}
};
std::priority_queue<event*,
std::vector<event *, std::allocator<event*> >,
eventComparator> eventQueue; //fila de eventos
};
void simulation::run () {
while (! eventQueue.empty ()) { //enquanto exisitr eventos na fila de eventos
event * nextEvent = eventQueue.top (); //captura evento no topo da fila
eventQueue.pop (); //retira evento da fila
simtime = nextEvent->time; //ajusta tempo de simulação
nextEvent->processEvent (); //processa evento
delete nextEvent; //remove evento
}
}
//===================================================================
//Customização dos eventos e do simulador
//===================================================================
class standardArrival : public event {
public:
standardArrival (double t)
: event (t)
{ }
virtual void processEvent ();
};
void standardArrival::processEvent () {
std::cout << "processando evento no tempo " << time << '\n';
}
class simuladorFilas : public simulation {
public:
simuladorFilas ()
{ }
} oSimulador;
// from https://stackoverflow.com/questions/2704521/generate-random-double-numbers-in-c
double fRand(double fMin, double fMax)
{
double f = (double)rand() / RAND_MAX;
return fMin + f * (fMax - fMin);
}
int main () {
// Inicializar aqui a fila de eventos
double t;
oSimulador.scheduleEvent (new standardArrival (t=fRand(1.0,10.0)));
oSimulador.scheduleEvent (new standardArrival (t=t+fRand(1.0,10.0)));
oSimulador.scheduleEvent (new standardArrival (t=t+fRand(1.0,10.0)));
// Executar simulador
oSimulador.run ();
return 0;
}
18 AULA VIRTUAL Dia 24/06/2020
18.1 Objetivos
- Construção do Simulador DES para Fila MM1 baseado no código do site Apache
18.2 Slides Aula
- Ver Projeto Apache
19 AULA VIRTUAL Dia 24/06/2020
19.1 Objetivos
- Geração de Números Randômicos para Simulação
- Método Linear Congruente
- Método da Inversa para geração de números de uma distribuição qualquer
19.2 Slides da Aula
https://www.dropbox.com/s/el4x6ft9xk7562k/GeracaoNumerosRandomicosSimulacao.pdf?dl=0
19.3 Código de Exemplo Octave
%parâmetros
a=7^5;
c=0;
x0=1;
m=2^31-1;
% zerar xn
xn=zeros(20000,1);
%gerar numeros
for i=1:10000
xn(i)=mod(a*x0+c,m);
x0=xn(i);
end
% ajustar para gerar entre 0 e 1
un=xn/m;
% plotar histograma
hist(un(1:10000),10);
20 Livros do Acervo Virtual IFSC
- Simulação
- Stochastic Simulation Optimization: An Optimal Computing Budget Allocation. Chun-hung Chen, Loo Hay Lee.
- No Apêndice tem um review sobre Simulador a Evento Discreto e sobre geração randômica de números
- Simulation for Data Science with R
- Um pouco complexo em alguns pontos. Cap.4 aborda geração de números randômicos
- System Modeling and Simulation. Singh.
- Stochastic Simulation Optimization: An Optimal Computing Budget Allocation. Chun-hung Chen, Loo Hay Lee.
21 Livros do Acervo Virtual IFSC
- Simulação
- Título:Stochastic Simulation Optimization: An Optimal Computing Budget Allocation. Chun-hung Chen, Loo Hay Lee.
- No Apêndice tem um review sobre Simulador a Evento Discreto e sobre geração randômica de números
- Título:Stochastic Simulation Optimization: An Optimal Computing Budget Allocation. Chun-hung Chen, Loo Hay Lee.