Skip to content

Repositório com o trabalho final da disciplina Análise de algoritmos do curso Ciências da computação 5º semestre do IFCE Maracanaú

Notifications You must be signed in to change notification settings

renercrisostomo/Analise-de-algoritmos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Análise de algoritmos

Repositório com o trabalho final da disciplina Análise de algoritmos do curso Ciências da computação 5º semestre do IFCE Maracanaú

O trabalho é um código em Python que resolve o problema da mochila usando dois algoritmos diferentes: recursivo com memoização e iterativo. O problema da mochila consiste em escolher um subconjunto de itens com pesos e valores, de forma a maximizar o valor total sem exceder a capacidade da mochila.

Algoritmos

  • Recursivo com Memoização: Este algoritmo usa uma técnica de programação dinâmica que consiste em armazenar os resultados de subproblemas já resolvidos em uma tabela (memo), evitando recalculá-los.
  • Iterativo: Este algoritmo usa uma abordagem bottom-up que preenche uma matriz (dp) com os valores ótimos dos subproblemas, partindo dos casos base até o problema original.

Código

O código em Python está no arquivo comparacao-tempos.py. Ele usa as seguintes bibliotecas:

  • random: para gerar os itens (peso/valor) com valores aleatórios
  • matplotlib: para plotar os resultados em gráficos
  • timeit: para medir a média do tempo de execução dos algoritmos para cada ponto dos gráficos

O código também varia a quantidade de itens e o peso máximo da mochila, para comparar o desempenho dos algoritmos. Ele executa cada algoritmo 100 vezes e calcula a média do tempo.

Resultados

Os resultados obtidos pelo código são mostrados nos gráficos a seguir:

Graficos

O gráfico 1 mostra o tempo de execução dos algoritmos em função da quantidade de itens, mantendo o peso máximo da mochila fixo em 50. O gráfico 2 mostra o tempo de execução dos algoritmos em função do peso máximo da mochila, mantendo a quantidade de itens fixa em 50.

Podemos observar que o algoritmo recursivo com memoização tem um tempo de execução maior que o algoritmo iterativo em ambos os gráficos.

About

Repositório com o trabalho final da disciplina Análise de algoritmos do curso Ciências da computação 5º semestre do IFCE Maracanaú

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages