ADS29009-2020-1
AULA 1 - Dia 30/07/2019
Objetivos
- Apresentação da Disciplina (SIGA A)
- Plano de Ensino (SIGA A)
- Avaliação (SIGA A)
Introdução a ADS
Questões Iniciais:
- Que projeto estou fazendo?
- Como procedo para fazer uma ADS?
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
Material de Referência
AULA 2 - 19/02/2020
Objetivos
- Conceitos básicos de ADS
- Tarefa em SAla
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?
AULA 3 - 20/02/2020
Objetivos
- Conceitos básicos de ADS
- Apresentação da tarefa A1.1
- Introdução a projetos fatoriais
AULA 4 - 04/03/2020
Objetivos
- Introdução a Cadeias de Markov Discretas
Material de Referência
https://www.dropbox.com/s/ynnb16ytldd1pbx/CadeiasDeMarkovDiscretas_Parte1.pdf?dl=0
AULA 5 Dia 5/03/2020
Objetivos
- Introdução a DTMC
- DTMC: Holding Time, Média de primeira transição
- Simulação de DTMC
- Tarefa
Slides Aula
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;
];
AULA 6 Dia 11/03/2020
Objetivos
- Aplicações de DTMC
Slides Aula
https://www.dropbox.com/s/0zxzg8dx5qe2b2e/AplicacoesCadeiasDeMarkovDiscretas.pdf?dl=0
AULA VIRTUAL 7 Dia 1/04/2020
Objetivos
- Revisão Distribuição Exponencial e Propriedade Sem Memória
- Cadeia de Markov em tempo Contínuo.
Slides Aula
https://www.dropbox.com/s/vs8yifvdulsqdwd/CadeiasDeMarkovContinuas_Parte1.pdf?dl=0
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
AULA VIRTUAL 8 Dia 2/04/2020
Objetivos
- Instruções para instalação do Omnet
- Cadeia de Markov em tempo Contínuo (Continuação)
Slides Aula
https://www.dropbox.com/s/vs8yifvdulsqdwd/CadeiasDeMarkovContinuas_Parte1.pdf?dl=0
Fazer a instalação do omnet e do inet.
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
Omnet
AULA VIRTUAL 9 Dia 16/04/2020
Objetivos
- Introdução a Teoria de Filas (continuação)
- Fila MM1
- Desempenho da Fila MM1
Slides Aula
AULA VIRTUAL 10 Dia 22/04/2020
Objetivos
- Discussão da lista de Exercícios
- Filas MM1k
- Filas MMn
Slides Aula
- https://www.dropbox.com/s/1nfastsaorr5eyy/FilaMM1_CapacidadeLimitada.pdf?dl=0
- https://www.dropbox.com/s/zaul2rq4xzdzw2k/FilaMMc_MultiplosServidores.pdf?dl=0
AULA VIRTUAL 11 Dia 29/04/2020
Objetivos
- Discussão da lista de Exercícios
- Filas MM1k (Revisão)
- Desempenho da Fila MM1k
- Filas MMn
- Desempenho da Fila MMn
Slides Aula
- https://www.dropbox.com/s/1nfastsaorr5eyy/FilaMM1_CapacidadeLimitada.pdf?dl=0
- https://www.dropbox.com/s/zaul2rq4xzdzw2k/FilaMMc_MultiplosServidores.pdf?dl=0
Reunião/AULA VIRTUAL 12 Dia 20/05/2020
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
AULA VIRTUAL Dia 27/05/2020
Objetivos
- Resolução da Lista de Exercícios sobre CTMC e Introdução a Teoria de Filas
Lista Resolvida
AULA VIRTUAL Dia 28/05/2020
Objetivos
- Filas MM1k (Nova Revisão)
- Desempenho da Fila MM1k
- Filas MMn
- Desempenho da Fila MMn
Slides Aula
- https://www.dropbox.com/s/1nfastsaorr5eyy/FilaMM1_CapacidadeLimitada.pdf?dl=0
- https://www.dropbox.com/s/zaul2rq4xzdzw2k/FilaMMc_MultiplosServidores.pdf?dl=0
AULA VIRTUAL Dia 3/06/2020
Objetivos
- Lista de Exercícios A1.5 - Comentários
- Introdução a Rede de Filas
Slides Aula
AULA VIRTUAL Dia 10/06/2020
Objetivos
- Introdução a Simulação em ADS
Slides Aula
AULA VIRTUAL Dia 17/06/2020
Objetivos
- Introdução a Simulação em ADS
- Proposição de Exercício: Fila MM1 modificada com Simulador baseado no site do Apache.
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;
}
AULA VIRTUAL Dia 24/06/2020
Objetivos
- Construção do Simulador DES para Fila MM1 baseado no código do site Apache
Slides Aula
- Ver Projeto Apache
AULA VIRTUAL Dia 24/06/2020
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
Slides da Aula
https://www.dropbox.com/s/el4x6ft9xk7562k/GeracaoNumerosRandomicosSimulacao.pdf?dl=0
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);
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.
- Simulation Book Jacket Autores: Ross, Sheldon M.
- 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: Statistics with Confidence : An Introduction for Psychologists
AULA VIRTUAL Dia 1/07/2020
Objetivos
- Geração de Números Randômicos para Simulação (revisão)
- Método Linear Congruente
- Método da Inversa para geração de números de uma distribuição qualquer
- Discussão da Tarefa A2.1. Ver SIGA A
Slides da Aula
https://www.dropbox.com/s/el4x6ft9xk7562k/GeracaoNumerosRandomicosSimulacao.pdf?dl=0
AULA VIRTUAL Dia 8/07/2020
Objetivos
- Confiança Estatística na Simulação
Slides da Aula
https://www.dropbox.com/s/3okdg97838wvizx/ConfiancaEstatistica.pdf?dl=0
Referência Complementar
- Cap.7 Livro: Simulation. Ross, Sheldon M. 2006. Acervo Virtual IFSC.