ADS29009-2019-2: mudanças entre as edições
Linha 234: | Linha 234: | ||
<code> | <code> | ||
#include <stdio.h> | |||
#include <sys/time.h> | |||
//classe baseada no geekforgeeks | |||
class t_duracao { | |||
public: | |||
void iniciar_medicao() { | |||
gettimeofday(&start, NULL); | |||
} | |||
void finalizar_medicao(){ | |||
gettimeofday(&end, NULL); | |||
time_taken = (end.tv_sec - start.tv_sec) * 1e6; | |||
time_taken = (time_taken + (end.tv_usec - | |||
start.tv_usec)) * 1e-6; | |||
} | |||
void mostrar_tempo(){ | |||
printf("valor de tempo = %lf", time_taken); | |||
} | |||
float retornar_tempo(){ | |||
return time_taken; | |||
} | |||
private: | |||
double time_taken; | |||
struct timeval start, end; | |||
} tempo_estimado; | |||
float computar_desloc_x() | float computar_desloc_x() | ||
Linha 254: | Linha 284: | ||
{ | { | ||
receive(max_x,max_y); | receive(max_x,max_y); | ||
tempo_estimado.iniciar_medicao(); | |||
x=0; //valor absoluto do movimento na direção x | x=0; //valor absoluto do movimento na direção x | ||
desloc_x=0; | desloc_x=0; | ||
Linha 272: | Linha 302: | ||
} | } | ||
finaliza_movimento(); | finaliza_movimento(); | ||
send_annswer( | tempo_estimado.finalizar_medicao(); | ||
send_annswer(tempo_estimado.retornar_tempo()); | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Edição das 17h27min de 11 de outubro de 2019
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
- 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 9/8/2019
1.4 Material de Referência
2 AULA 2 - Dia 2/08/2019
2.1 Objetivos
- Continuação conceitos de ADS
2.2 Material de Referência
3 AULA 3 - Dia 9/08/2019
3.1 Objetivos
- Finalização Introdução ADS
- Apresentação dos Trabalhos
4 AULA 4 - Dia 13/08/2019
4.1 Objetivos
- Introdução a DTMC
4.2 Materialde Referência
https://www.dropbox.com/s/oz2dlua2kmc1w2m/CadeiasDeMarkovDiscretas_Parte1.pdf?dl=0
5 AULA 5 - Dia 16/08/2019
5.1 Objetivos
- Continuação DTMC
5.2 Material de Referência
https://www.dropbox.com/s/oz2dlua2kmc1w2m/CadeiasDeMarkovDiscretas_Parte1.pdf?dl=0
5.3 Links Interessantes
6 AULA 6 - Dia 23/08/2019
6.1 Objetivos
- Continuação DTMC
- Simulação DTMC
6.2 Itens a constar da atividade de simulação
- código fonte matlab
- minirelatório com:
- comparação dos resultados das probabilidades em regime estacionário conforme slide;
- resposta as questões do slide
- Uma pdf das transições de primeira passagem para os estados colocados no slide.
6.3 Material de Referência
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;
];
7 AULA 7 - Dia 27/08/2019
- Simulação da DTMC (conclusão)
8 AULA 8 - Dia 30/08/2019
8.1 Objetivos
- Aplicações de DTMC: Aloha Puro
- Discussão de Projeto usando os Mindstorms
8.2 Slides desta Aula
9 Aula 9 - Dia 06/09/2019
- Introdução a CTMC
- Projeto de Desempenho sobre o Robô
9.1 Material de Referência
9.2 Links sobre o EV3
10 Aula 10 - Dia 10/09/2019
- Instalação de tools C++ no ev3
Usar máquina virtual com Ubuntu 18.04
Fazer conforme
- Toolchain
O make e o gcc devem estar instalados.
https://c4ev3.github.io/ (Lembrar que são ferramentas 32 bits)
sudo apt-get install lib32ncurses5 lib32z1 sudo apt-get install libudev-dev pkg-config wget -c http://www.codesourcery.com/sgpp/lite/arm/portal/package4571/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 mkdir CodeSourcery tar -jxvf ~/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C ~/CodeSourcery/ echo export PATH=~/CodeSourcery/arm-2009q1/bin/:$PATH >> ~/.bashrc && . ~/.bashrc
- Uploader (não usei diretamente pois fiz scp para robot@IP_ROBO (password "maker".
git clone --recursive https://github.com/c4ev3/ev3duder
Entrar e compilar usando o make Entrar em EV3-API/API e compilar. EU tive que editar o Makefile para remover a referência ao Windows
- Compilar
arm-none-linux-gnueabi-gcc -I../EV3-API/API -L../EV3-API/API/ alo.c -lev3api
11 Aula 11 - Dia 13/09/2019
11.1 Objetivos
- CTMC - Aplicações: modelagelam da alocação de GTS no IEEE802.15.4
11.2 Problema (simplificação do GTS no IEEE 802.15.4
O padrão de rede sem fio IEEE802.15.4 prevê a comunicação sem BEACON (CSMA-CA) e com BEACON, onde parte do frame possui até 7 canais que podem ser alocados sob demanda por um coordenaodor (supor topologia em estrela com coordenador no centro). A alocação é realizada em canal de controle a parte. Construir uma cadeia de Markov em Tempo Contínuo de forma:
(i) a computar a probabilidade de bloqueio. Supor N nodos com número médio de requisições
(ii) como poderia ser computada a vazão esperada do sistema?
(iii) como poderíamos estimar a vazão na parte CSMA-CA (supor comportamento como Slotted Aloha)
(iv) na parte GTS, como poderíamos considerar dois grupos de nodos onde o primeiro grupo pode ocupar os 7 slots e o segundo grupo, com taxa diferente poderia ocupar até dois slots?
12 Aula 12 - Dia 20/09/2019
- Introdução a Teoria de Filas
- Filas MM1 com buffer ilimitado
12.1 Material de Referência
13 Aula 13 - Dia 24/09/2019
13.1 Objteivos
- Desenvolvimento de Projeto de ADS
13.2 Visão geral do Software no Mindstorm
13.3 Especificação dos Recursos Rest
13.4 Especificação das mensagens no socket
O "programa sob teste" se conecta no servidor Flask através de um socket. O programa se comporta como um servidor que recebe comandos atraváes de uma string de tamanho fixo (15 caracteres). A todo comando ele envia uma resposta também de 15 caracteres.
No momento que recebe um comando o programa deve ler o tempo do sistema e ao enviar uma resposta ele deverá ler novamente o tempo e enviá-lo na string de resposta;
Formato da string (ideal seria usar padrão: XML,JSON?). Vantagem de usar XML seria usar uma biblioteca padrão.
Comando;P:par1;P:par2;...;TE:...tempo;TS:tempo
Pontos a verificar:
- o tamanho da string deveria ser aumentada ou flexibilizado?
13.5 Especificação do Gerador de Cargas/Monitor
- O gerador de carga deverá ler uma especificação de um arquivo e gerar a carga. Prever identificação do Experimento e da Repetição.
- O monitor deverá ler as respostas e armazená-las devidamente em arquivo.
- Um analisador/visalizador de dados deverá permitir sumarizar dados, gerar intervalo de confiança e mostrar os resultados
13.6 Módulo de Processamento Autônomo
- include <stdio.h>
- include <sys/time.h>
//classe baseada no geekforgeeks
class t_duracao {
public:
void iniciar_medicao() {
gettimeofday(&start, NULL);
}
void finalizar_medicao(){
gettimeofday(&end, NULL);
time_taken = (end.tv_sec - start.tv_sec) * 1e6;
time_taken = (time_taken + (end.tv_usec -
start.tv_usec)) * 1e-6;
}
void mostrar_tempo(){
printf("valor de tempo = %lf", time_taken);
}
float retornar_tempo(){
return time_taken;
}
private:
double time_taken;
struct timeval start, end;
} tempo_estimado;
float computar_desloc_x()
{
float d;
d = 10+20*uniforme(); // uniforme retorna entre 0 e 1 - no minimo andará 10cm e no máximo 30 cm
return d;
}
float computar_lateral(float meu_y, float meu_desloc)
{
float lat;
lat = seno (0.042*meu_desloc) * 50; /* amplitude máxima 50 cm
return lat-meu_y;
}
main()
{
receive(max_x,max_y);
tempo_estimado.iniciar_medicao();
x=0; //valor absoluto do movimento na direção x
desloc_x=0;
y=0; //valor absoluto do movimento na direção y
desloc_y=0;
while (x<max_x) {
//computar movimento para frente
desloc_x=computar_desloc_x();
x = desloc_x + x;
//andar para frente
movimento_avante(desloc);
//computar movimento lateral
desloc_y=computar_lateral(y, x);
y=y+desloc_y;
movimento_lateral(desloc_y);
rotacionar_frente();
}
finaliza_movimento();
tempo_estimado.finalizar_medicao();
send_annswer(tempo_estimado.retornar_tempo());
}
</syntaxhighlight>
<>
uniforme()*10+10;
<>
13.7 Referências
14 Aula 14 - Dia 27/09/2019
14.1 Objetivos
- Revisão Fila M/M/1
- Fila M/M/1/c (c servidores)
14.2 Material de Referência para esta aula
15 Aula 15 - Dia 04/10/2019
15.1 Objetivos
- Revisão Fila M/M/n
- Fila M/M/1/K
15.2 Material de Referência para esta aula
https://www.dropbox.com/s/jycdd2dzqqsxb5g/FilaMM1_CapacidadeLimitada.pdf?dl=0
16 AULA 16 - Dia 08/10/2019
16.1 Objetivos
- Aula antecipada para tratar o experimento do rob
- Geração de Números Randômicos na Simulação
17.1 Objetivos
- finalização da classe de geração randômica de números;
- construção do módulo autônomo do robô usando geração randômica.
17.2 Links interessantes
18 Livros sobre ADS
19 Links Interessantes