Complexidade de Algoritmos e Análise de Desempenho

Unilasalle - 2023/2

Objetivos

Os principais objetivos da disciplina são:

Pré-requisitos

Embora os pré-requisitos não sejam obrigatórios, o seu domínio auxiliará muito na evolução do aprendizado:

Competências trabalhadas

As competências trabalhadas durante a disciplina são:

Unidades de aprendizagem

As unidades de aprendizagem que compreendem esta disciplina são:

Estratégias metodológicas

Serão utilizadas aulas expositivas, exercícios práticos individuias ou em grupo, pesquisas e apresentação de conteúdos relacionados a discplina.

Cronograma

Aula Conteúdo Programado Data
01 Apresentação da disciplina. Conceitos Básicos. Pensamento algorítmico. 7/8
02 Revisão: teoria de autômatos, máquinas universais, equivalência de máquinas universais. Linguagen regulares, livres de contexto. 14/8
03 Complexidade e desempenho de algoritmos. Medidas de Desempenho. Análise assintótica. Notações Omega, Theta e Big-O. Algoritmos de busca e ordenação. 21/8
04 Correção de exercícios e revisão de conteúdo. 28/8
05 Ordenação (Sorting). Algoritmos de ordenação eficientes. Algoritmos de ordenação em O(N). 4/9
06 Recursão. Árvores binárias de pesquisa. 11/9
07 Hashing. 18/9
08 Heaps. Heapsort. (Entrega dos trabalhos de pesquisa A1) 25/9
09 Grafos. Representação, busca em grafos, ordenação topológica. (Entrega T1) 2/10
10 Grafos. Problema do menor caminho. 9/10
11 Procura em Strings. 16/10
12 Evento da Universidade 23/10
13 Projeto e análise de algoritmos: Divisão e Conquista, Algoritmos Gulosos. 30/10
14 Programação Dinâmica 6/11
15 Intratabilidade e Complexidade de Algoritmos. 13/11
16 Algoritmos P, NP, NP-hard e NP-complete. Redução de algoritmos. Outras classes de algoritmos e problemas. 20/11
17 Exercícios e Revisão. (Entrega T3) 27/11
18 Avaliação P1 4/12
19 Entrega de Resultados e revisão 11/12
20 Avaliação de Recuperação 18/12

Procedimentos e Critérios de Avaliação

A nota final será composta por trabalhos/exercícios e prova, que serão desenvolvidos durante as aulas e em atividades extraclasse.

O grau 1 será composto por G1 = T1 (3,0) + A1(4,0) + E1(3,0)

O grau 2 (G2) será composto por G2= T2(3,0) + P1(4,0) + E2(3,0)

A nota final será a média (M) dada pela regra M = (G1 + G2) / 2

A recuperação será realizada com a aplicação de uma prova escrita. A nota desta substituirá a nota mais baixa e a média (M) será recalculada.

Para obter a aprovação, o aluno deve obter uma média (M) igual ou superior a 6, com frequência igual ou superior à 75%.

A frequência será medida a partir de chamada nominal, realizada em todas as aulas.

Material complementar

Recursos Online

  1. Introduction to Algorithms MIT OpenCourseWare. 2020. (Também disponíveis os cursos de 2011 e 2008.)
  2. Theory of Computation MIT OpenCourseWare. 2020.
  3. Design and Analysis of Algorithms MIT OpenCourseWare. 2015.

Bibliografia

  1. Cormen, E. et al. Introduction to Algorithms.
  2. Sedwick, R.. Algorithms.
  3. Sipser, Michael. Introdução à Teoria da Computação.
  4. Aho, A. Automatos, Lingagens e Computação.
  5. Bird, Richard. Programs and Macines.