Trabalho Análise Empírica de Algoritmo

Fazer download em docx, pdf ou txt
Fazer download em docx, pdf ou txt
Você está na página 1de 8

Universidade Estadual do Sudoeste da Bahia – UESB

Gustavo da Silva Cruz

ANÁLISE EMPÍRICA DE ALGORITMOS

Vitória da Conquista – Bahia


Gustavo da Silva Cruz

ANÁLISE EMPÍRICA DE ALGORITMOS

Trabalho individual apresentado à disciplina


de Análise de Algoritmos do curso de
Ciência da Computação.
Prof.

Vitória da Conquista – Bahia

1
RESUMO

Os algoritmos fazem parte do dia a dia das pessoas. Um algoritmo é uma sequência de ações
executáveis para chegar à solução de um determinado tipo de problema.

A análise de algoritmos tem como função determinar os recursos necessários para executar
um dado algoritmo. O objetivo não é apenas fazer códigos que funcionem, mas que sejam
também eficientes.

O objetivo deste trabalho é apresentar informações sobre uma das abordagens para realizar
análise de algoritmos: Análise empírica de algoritmo

Análise empírica de algoritmo é um forma dinâmica de avaliar o desempenho do algoritmo.

Abstract

Algorithms are part of people's daily lives. An algorithm is a sequence of executable actions
to arrive at the solution of a certain type of problem.

The analysis of algorithms has the function to determine the resources needed to execute a
given algorithm. The goal is not just to make codes that work, but that are also efficient.

The objective of this work is to present information about one of the approaches to perform
algorithm analysis: Empirical analysis of algorithm

Empirical analysis of algorithm is a dynamic way of evaluating algorithm performance.

2
INTRODUÇÃO 4

VANTAGENS 5

DIFICULDADES 5

COMO FAZER 6

COMO AVALIAR OS RESULTADOS 6

EXEMPLO 6

REFERÊNCIAS BIBLIOGRÁFICAS 7

3
INTRODUÇÃO

Para determinar qual algoritmo é o mais eficiente, pode ser utilizado duas abordagens:

Análise Empírica: comparação entre os programas.


Análise Matemática: estudo das propriedades do algoritmo.

A análise empírica é uma alternativa ao estudo matemático de algoritmos e é uma forma de


comparar diferentes implementações de um mesmo algoritmo.

A análise empírica de algoritmos avalia o custo (ou complexidade) de um algoritmo a partir


da avaliação da execução do mesmo quando implementado. Ou seja, um algoritmo é
analisado pela execução de seu programa correspondente.
Contar quantas vezes cada ação é executada, ou quanto tempo demora cada parte do
algoritmo, visando otimização do mesmo.
Utiliza dados e avaliações de tempo para calcular a “complexidade aproximada de uma
determinada implementação” de um algoritmo.
Custo = memória + tempo
VANTAGENS

Avaliar o desempenho em uma determinada configuração de computador/linguagem;


Considerar custos não aparentes (ex: o custo de alocação de memória);;
Comparar computadores;
Comparar linguagens.

DIFICULDADES

Necessidade de implementar o algoritmo. Isso depende da habilidade do programador;


Resultado pode ser mascarado pelo hardware (computador utilizado) ou software (eventos
ocorridos no momento da avaliação);
Comparação de algoritmos obriga a usar igual software e hardware;
Qual a natureza dos dados: dados reais, aleatórios(avaliam o desempenho médio) e
perversos(pior caso).
COMO FAZER

1) Selecionar o Algoritmo a ser analisado (módulo de um sistema, função, etc...)


2) Definir o critério a ser utilizado (tempo de execução ou quantidade de execução de quais
operações)
3) Implementar o algoritmo de uma forma propícia para análise (isolar o algoritmo)
4) Gerar um conjunto de testes capaz de avaliar o desempenho do algoritmo (tamanhos
variados 1n-2n-4n-8n-16n-32n-... ou 1n-10n-100n-1000n-...)
5) Executar o algoritmo
6) Analisar os resultados obtidos

COMO AVALIAR OS RESULTADOS

Tabular os dados para diversos tamanhos de entradas;


Avaliar o gráfico de temporização, procurando identificar a classe de complexidade do
algoritmo;

EXEMPLO

Calcular o tempo de execução


REFERÊNCIAS BIBLIOGRÁFICAS

Prof. João Alberto Fabro. Análise Empírica de Algoritmos. IF64C – Estruturas de Dados 2 –
Engenharia da Computação.
http://www.dainf.ct.utfpr.edu.br/~fabro/IF64C/Analise_Empirica_de_AlgoritmosOK.pdf

Mario E. Matiusso Jr. Análise empírica de algoritmos de ordenação. Bacharelado em Ciências


da Computação Universidade Federal do ABC (UFABC) – Santo André, SP – Brasil.
http://matiusso.dx.am/Arquivos/ArtigoAED.pdf

Marcelo K. Albertini. GBC034 - Análise Empíırica de Algoritmos. 14 de Junho de 2013


http://www.facom.ufu.br/~albertini/1sem2013/alg/aulas/aula02-analise-empirica/aula02-anali
se-empirica.pdf

[ED] Aula 99 - Análise de Algoritmos. Canal Linguagem C Programação Descomplicada. 24


de agosto de 2015.
https://youtu.be/iZK5WwJFIPE

André Backes. Análise de Algoritmos: Parte 1. 28/02/2016


http://www.facom.ufu.br/~backes/gsi011/Aula01-AnaliseAlgoritmos_01.pdf

Você também pode gostar