Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

<p>PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS</p><p>Instituto de Ciências Exatas e Informática</p><p>Exercícios sobre Contagem de Operações e Medição do Tempo de</p><p>Execução de Algoritmos</p><p>Curso : Engenharia de Software</p><p>Disciplina : Algoritmos e Estruturas de Dados II</p><p>Professores : Eveline Alonso Veloso</p><p>João Caram</p><p>Regras Básicas:</p><p>• Exercício prático individual.</p><p>• Sua entrega será realizada exclusivamente pelo Canvas, em tarefa própria, na turma prática.</p><p>• Entregas do exercício em cópia, mesmo que parcialmente, seja de código ou estrutura lógica, de</p><p>outros alunos, da Web ou de quaisquer outras fontes externas, acarretarão atribuição de nota 0 aos</p><p>alunos envolvidos e encaminhamento do caso ao Colegiado de Coordenação Didática do Curso.</p><p>Descrição:</p><p>Neste exercício, praticaremos a contagem de operações de algoritmos e a medição de</p><p>desempenho computacional. O exercício prático é composto das seguintes partes: (1) instrumentação</p><p>dos algoritmos propostos a fim de contar o número de operações executadas por cada um deles e medir</p><p>seus respectivos tempos de execução; (2) execução dos algoritmos e coleta de dados; (3) comparação</p><p>entre a contagem de operações e o desempenho dos algoritmos implementados.</p><p>Implementação:</p><p>A primeira parte do exercício consiste na instrumentação dos algoritmos abaixo a fim de contar o número</p><p>de operações executadas por cada um deles e medir seus respectivos tempos de execução:</p><p>Algoritmo A</p><p>public	static	int	codigoA(int	n){</p><p>int	b=0;</p><p>for(int	i	=	0;	i	<=	n;	i+=2){</p><p>b	+=	3;</p><p>}</p><p>return	b;</p><p>}</p><p>Algoritmo B</p><p>public	static	void	codigoB(int[]	vet){</p><p>for	(int	i	=	0;	i	<	vet.length;	i+=2){</p><p>for(int	j	=	i;	j	<	(vet.length/2);	j++){</p><p>vet[i]	+=	vet[j];</p><p>}</p><p>}</p><p>}</p><p>Essas implementações serão utilizadas na fase seguinte.</p><p>Experimentação:</p><p>Nesta etapa, o tempo de execução de cada algoritmo implementado deve ser medido, em uma</p><p>determinada máquina; assim como o número de operações executadas pelo algoritmo. É importante</p><p>observar que todos os experimentos deverão ser executados na mesma máquina, com a mesma</p><p>configuração de hardware e sistema operacional. Essa configuração deve constar no início do relatório a</p><p>ser entregue por você na finalização do trabalho.</p><p>Para realizar os experimentos, considere “n” como o tamanho da entrada de dados. Iniciando-se “n” em</p><p>15.625, devem ser utilizados valores crescentes, dobrando o valor de “n” em cada passo. Para cada valor</p><p>de “n”, registre a quantidade de operações realizadas pelo algoritmo e seu tempo gasto, em</p><p>nanossegundos.</p><p>Deverão ser realizadas 5 medições em cada cenário e o tempo de execução será dado pela média</p><p>aritmética das 3 medições intermediárias, ou seja, desconsiderando-se o maior e o menor valores medidos.</p><p>Seu teste irá até “n” superar 2 bilhões ou até o tempo médio de execução do algoritmo ultrapassar 50</p><p>segundos – o que ocorrer primeiro em cada algoritmo.</p><p>Comparação e Análise dos Resultados Analíticos e Experimentais:</p><p>Nesta parte, deve-se utilizar as informações de tempo de execução coletadas experimentalmente</p><p>anteriormente e compará-las com a contagem de operações de cada algoritmo implementado, apontando</p><p>semelhanças e possíveis diferenças entre a contagem de operações dos algoritmos, a análise experimental</p><p>e a complexidade esperada para o algoritmo.</p><p>A tabela a seguir apresenta um exemplo do que está sendo pedido, com dados fictícios.</p><p>Algoritmo X</p><p>N Operações Tempo</p><p>(nanossegundos)</p><p>15.625	 3.825	 385.330</p><p>31.250	 5.735	 550.127</p><p>62.500	 8.320	 912.615</p><p>125.000	 11.647	 1.235.042</p><p>250.000	 19.220	 1.755.934</p><p>...	 ...	 ...</p><p>Para isso, com base nos dados coletados, crie um gráfico para cada algoritmo implementado considerando</p><p>as médias dos tempos de execução medidos para cada valor de “n” e apresente suas conclusões.</p>

Mais conteúdos dessa disciplina