Mudanças entre as edições de "ADS29009-2020-1"
Linha 400: | Linha 400: | ||
− | =AULA VIRTUAL Dia | + | =AULA VIRTUAL Dia 25/06/2020= |
− | |||
==Objetivos== | ==Objetivos== | ||
− | *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 qualquer | + | ** Método da Inversa para geração de números de uma distribuição qualquer |
==Slides da Aula== | ==Slides da Aula== | ||
− | |||
https://www.dropbox.com/s/el4x6ft9xk7562k/GeracaoNumerosRandomicosSimulacao.pdf?dl=0 | https://www.dropbox.com/s/el4x6ft9xk7562k/GeracaoNumerosRandomicosSimulacao.pdf?dl=0 | ||
==Código de Exemplo Octave== | ==Código de Exemplo Octave== | ||
− | |||
<syntaxhighlight lang=cpp> | <syntaxhighlight lang=cpp> | ||
%parâmetros | %parâmetros |
Edição das 12h50min de 11 de setembro de 2020
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 25/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.
- Simulation Book Jacket Autores: Ross, Sheldon M.
- No Apêndice tem um review sobre Simulador a Evento Discreto e sobre geração randômica de números
- Statistics with Confidence : An Introduction for Psychologists
- Simulation Modeling and Analysis with ARENA
- Stochastic Simulation Optimization: An Optimal Computing Budget Allocation. Chun-hung Chen, Loo Hay Lee.
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.
AULA VIRTUAL Dia 9/07/2020
Objetivos
- Confiança Estatística na Simulação (continuaçã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.
AULA VIRTUAL Dia 5/08/2020
Objetivos
- Diretivas para a Instalação do Omnet
- Introdução ao Simulador Omnet
- Tutorial Tik-Tok
Roteiro para Aula
- O que é o omnet
- Simulação com o Omnet
- Tutorial Omnet/Tic-Toc
- simple x compound module
- conceito de gates e de vetor de gates;
- envio de mensagens e de cópias de mensagens;
- Modelagem de Delays
- Uso de funções de geração de números randômicos
- Modelagem de retransmisssão: timeouts e cancelamento de timeout;
Considerações sobre a simulação com o omnet
No manual de simulação do Omnet pode-se observar que:
Eventos e Ordem de Execução
- mensagens são representadas por eventos (class cMessage) e subclasses;
- o tempo de ocorrência de um evento é o momento da chegada da mensagem (arrival time) no módulo de destino;
- timeouts serão implementados por um módulo emissor como mensagens para eles mesmos (self-messages);
- eventos são processados de acordo com o tempo de chegada (mensagens com tempo mais antigos primeiro) de forma a manter a relação de causalidade;
- Caso duas mensagens tenham o mesmo tempo de chegada tem-se que:
- a mensagem com maior prioridade atribuída pelo usuário é executada primeiro ( higher scheduling priority);
- caso tenham a mesma prioridade, será executada a que estiver primeiro na fila (escalonada pelo scheduler).
AULA NÃO ŚINCRONA Dia 12/08/2020
Objetivos
- Familiarização com o Simulador de Redes Omnet
Atividade
- Tarefa repassada no SIGAA: Instalação omnet e realização do tutorial tictoc até o tem 6 inclusive. Mini relatório a ser entregue.
AULA NÃO ŚINCRONA Dia 13/08/2020
Objetivos
- Implementação de Fila MM1 e rede de filas no omnet
Material de Referência
- Ver tarefa SIGAA
Passos recomendados:
- baixar o pdf do Laboratório na tarefa do dia de hoje;
- baixar na MV onde está o omnet, o arquivo tar.gz com arquivos do lab
Códigos deste Lab
AULA ŚINCRONA Dia 20/08/2020
Objetivos
- Visão Geral da Biblioteca INET
- Simulação da Ethernet
Material de Referência
- Ver tarefa SIGAA
Passos recomendados:
- baixar o pdf do Laboratório na tarefa do dia de hoje;
AULA ŚINCRONA Dia 27/08/2020
Objetivos
- Simulação de Redes IP com StandardHost do INET
- Cenário com 2 roteadores e configuração automática da rede IP
Material de Referência
Material Auxiliar
NED cenário da aula
network redeIP
{
@display("bgb=518,390");
submodules:
router: Router {
@display("p=171,217");
}
standardHost0: StandardHost {
@display("p=75,99");
}
standardHost1: StandardHost {
@display("p=54,317");
}
standardHost2: StandardHost {
@display("p=406,99");
}
standardHost3: StandardHost {
@display("p=375,317");
}
router1: Router {
@display("p=290,217");
}
etherSwitch0: EtherSwitch {
@display("p=82,217");
}
etherSwitch1: EtherSwitch {
@display("p=367,218");
}
configurator: Ipv4NetworkConfigurator {
@display("p=221,55");
}
visualizer: IntegratedCanvasVisualizer {
@display("p=210,317");
}
connections:
standardHost0.ethg++ <--> Eth100M <--> etherSwitch0.ethg++;
standardHost1.ethg++ <--> Eth100M <--> etherSwitch0.ethg++;
etherSwitch0.ethg++ <--> Eth100M <--> router.ethg++;
router.ethg++ <--> Eth100M <--> router1.ethg++;
router1.ethg++ <--> Eth100M <--> etherSwitch1.ethg++;
standardHost2.ethg++ <--> Eth100M <--> etherSwitch1.ethg++;
etherSwitch1.ethg++ <--> Eth100M <--> standardHost3.ethg++;
}
omnetpp.ini cenário da aula
[General]
sim-time-limit = 100s
# Configurator settings
*.configurator.dumpAddresses = true
*.configurator.dumpTopology = true
*.configurator.dumpLinks = true
*.configurator.dumpRoutes = true
# Routing settings
*.*.ipv4.arp.typename = "GlobalArp"
*.*.ipv4.routingTable.netmaskRoutes = ""
# Wireless settings
*.*.wlan[*].bitrate = 54Mbps
# Visualizer settings
*.visualizer.interfaceTableVisualizer.displayInterfaceTables = true
*.visualizer.interfaceTableVisualizer.nodeFilter = "not (*switch* or *Switch* or *AP*)"
[Config RedeAutoconfiguradaComPing]
network=redeIP
description = "Configuração Auotomática - PingApp"
**.numApps = 1
**.app[0].typename = PingApp
**.standardHost0.app[0].destAddr = "standardHost3"
**.destAddr = ""
**.app[*].count = 5
**.app[*].startTime = 0s
**.app[*].sleepDuration = 0s
**.app[*].printPing = true
[Config RedeAutoconfiguradaComTcpApp]
network=redeIP
description = "Configuração Automática - TCPApp"
**.standardHost0.numApps = 1
**.standardHost3.numApps = 1
**.standardHost0.app[0].typename = TcpClientApp
**.standardHost0.app[0].destAddr = "standardHost3"
**.standardHost0.app[0].typename = "TcpClientApp"
**.standardHost0.app[0].io.connectAddress = "standardHost3"
**.standardHost0.app[0].io.connectPort = 1000
**.standardHost0.app[0].source.productionInterval = uniform(0s, 20s)
**.standardHost0.app[0].source.packetLength = intuniform(100B, 200B)
**.standardHost0.app[0].source.packetData = intuniform(0, 1)
**.standardHost3.app[0].typename = "TcpServerApp"
**.standardHost3.app[0].listener.localPort = 1000
**.standardHost3.app[0].connection[*].source.packetLength = intuniform(100B, 200B)
**.standardHost3.app[0].connection[*].source.productionInterval = uniform(0s, 0.5s)
AULA ŚINCRONA Dia 2/09/2020
Objetivos
- Apresentação de Dados em ADS
- Tutorial Wireless INET
ReferÊncias - Parte 1 da Aula
ReferÊncias - Parte 2 da Aula
AULA ŚINCRONA Dia 10/09/2020
Objetivos
- Discussão dos Projetos Finais da Parte Simulação
Proposta 1
- Avaliação de Desempenho de Redes usando Mecanismos de QoS com Tráfego Sensível
- Parte 1: Estudar e Apresentar o Showcase Sobre QoS em Redes IEEE802.11 [1]
- Objetivo do Experimento
- Breve Revisão de Conceitos e Tecnologias Usadas
- O Experimento
- Modelo Simulado:
- Estrutura dos nodos
- Configuração da Rede
- Coleta de Estatísticas (quais e como)Quais métricas serão analisadas
- Quais fatores e níveis usados
- Os parâmetros (o que foi fixado)
- Revisão dos Resultados (análise dos gráficos)
- Modelo Simulado:
- Parte 1: Estudar e Apresentar o Showcase Sobre QoS em Redes IEEE802.11 [1]
Proposta 2
- Avaliação de Desempenho de Protocolos de Enlace para Redes de Sensores [2]
Proposta 3
- Consumo de Energia em Redes Wireless
- Parte 1: Estudar e Apresentar o Showcase Sobre Consumo de Energia https://inet.omnetpp.org/docs/showcases/wireless/power/doc/index.html
- Objetivo do Experimento
- Breve Revisão de Conceitos e Tecnologias Usadas
- O Experimento
- Modelo Simulado:
- Estrutura dos nodos
- Configuração da Rede
- Coleta de Estatísticas (quais e como)Quais métricas serão analisadas
- Quais fatores e níveis usados
- Os parâmetros (o que foi fixado)Revisão dos Resultados (análise dos gráficos)
- Modelo Simulado:
- Parte 1: Estudar e Apresentar o Showcase Sobre Consumo de Energia https://inet.omnetpp.org/docs/showcases/wireless/power/doc/index.html
Proposta 4
- Avaliação do Mecanismos de Controle de Taxa de Transmissão do EEE 802.11 [3]