CI065 - Algoritmos e Teoria dos Grafos

Primeiro semestre de 2008

4ª,6ª 15:30 sala: PA03


O exame será na PH11
soluções dos exercícios da P3
  • Veja aqui uma dica pra ser aprovado em grafos. Mais dicas, apesar do título serve para várias disciplinas da computação também.
  • Não haverá aula de ci065 na semana de 14 a 18 de abril pois estarei aqui . Na sexta feira dia 18, havera plantao do monitor no horario e local da aula.
    Sumário:      Conteúdo -- Bibliografia -- Avaliação -- Listas de exercícios -- Programa -- Calendário -- Notas -- Monitoria -- provas de outros semestres

    Conteúdo: Noções Básicas de Teoria dos Grafos; Representação e Implementação; Caminhos e Percursos; Conexidade; Árvores; Emparelhamento; Caminho mínimo, Árvore geradora mínima, emparelhamento máximo.

    Objetivos: Dar aos alunos noções de teoria dos grafos e apresentar o seu uso na resolução de problemas.

    Pré-requisito: CI057 - Algoritmos e Estruturas de Dados III (obrigatório)
    CI237 - Matemática Discreta (fortemente recomendado)

    Carga horária: 60 Créditos: 4 Responsável: Jair.

    Bibliografia básica:

    1. Graph Theory with applications, A. Bondy e U.S.S.R. Murty. (Capítulos 1 --- 6)
    2. O livro está disponível em pdf
      aqui
    3. Introduction to algorithms Udi Manber. (cap 7) biblioteca
    4. Bibliografia complementar:

    5. Graph Theory, R. Diestel. (Capítulo 1)
    6. Há um link para livro em pdf aqui.
    7. Algorithms in C, R. Sedgewick. (Capítulos 29 --- 34). (Biblioteca)
    8. Introduction to Algorithms, Cormen, Leiserson, Rivest e Stein (Capítulos 22, 23 e 24). (Biblioteca)
    9. Graph Theory, F. Harary. (Biblioteca)
    10. Grafos e Algoritmos Computacionais, J.L. Szwarcfiter. (Biblioteca)
    11. Grafos: Teoria, Modelos, Algoritmos, P.O. Boaventura Neto. (Biblioteca)
    12. Data Structures and Algorithms, A.V. Aho, J.E. Hopcroft, J.D. Ullman. (Biblioteca)

    Avaliação

    São 3 provas regulares com conteúdo cumulativo mais uma prova final sobre toda a matéria. O aluno tem direito a 2a chamada desde que o motivo que o levou a perder a prova esteja previsto no art. 106 da resolução 37/97 e desde que quem perdeu a prova cumpra as formalidades exigidas pela resolução.

    Listas de exercícios

    As listas não são obrigatórias e não valem nota, porém você pode entregar suas soluções para serem corrigidas. Para ter um retorno até a data da prova recomendo que entregue com pelo menos 10 dias de antecedência.
    Exercícios Tema
    lista 1 definições iniciais
    lista 2 grau
    lista 3 subgrafos, grafos bipartidos, conjuntos independentes, cliques e corte
    lista 4 Isomorfismo, outros grafos e representação computacional
    lista 5 Percursos em grafos
    lista 6 Caminhos e circuitos
    lista 7 caminhos mínimos em grafos com pesos nas arestas
    lista 8 Grafos conexos
    lista 9 Árvores
    lista 10 Árvore geradora mínima
    lista 11 Emparelhamento
    lista 12 em breve

    Calendário

     
        February 2008              March 2008               April 2008     
         Su Mo Tu We Th Fr Sa     Su Mo Tu We Th Fr Sa     Su Mo Tu We Th Fr Sa 
                         1  2                        1            1  2  3  4  5 
          3  4  5  6  7  8  9      2  3  4  5  6  7  8      6  7  8  9 10 11 12 
         10 11 12 13 14 15 16      9 10 11 12 13 14 15     13 14 15 16 17 18 19 
         17 18 19 20 21 22 23     16 17 18 19 20[21 22]    20[21]22 23 24 25 26 
         24 25 26 27 28 29        23 24 25 26 27 28 29     27 28 29 30 
                                  30 31 
    
    
           May 2008                June 2008                July 2008      
         Su Mo Tu We Th Fr Sa     Su Mo Tu We Th Fr Sa     Su Mo Tu We Th Fr Sa 
                      1  2  3      1  2  3  4  5  6  7            1  2  3  4  5 
          4  5  6  7  8  9 10      8  9 10 11 12 13 14      6  7  8  9 10 11 12 
         11[12 13 14 15 16]17     15 16 17 18 19 20 21     13 14 15 16 17 18 19 
         18 19 20 21 22 23 24     22 23 24 25 26 27 28     20 21 22 23 24 25 26 
         25 26 27 28 29 30 31     29 30                    27 28 29 30 31 
    

    Programação das aulas: (tentativa)
    aula 01 - Grafos.
    aula 02 - Grau.
    aula 03 - Subgrafos. Subgrafos induzidos. Conjunto independente. Clique.
    aula 04 - Grafo bipartido e corte. Exercicios.
    aula 05 - Isomorfismo. 
    aula 06 - Representação computacional.
    aula 07 - Percursos em grafos.
    aula 08 - Busca em largura 
    aula 09 - Busca em profundidade. 
    aula 10 - Caminho; distância.
    aula 11 - Circuitos.
    aula 12 - Caminhos mínimos em grafos com pesos nas arestas. 
    aula 13 - Algoritmo de Dijkstra. 
    aula 14 - Algoritmo de Floyd-Warshall.
    aula 15 - Grafos e componentes conexos. Grafos e componentes biconexos.
    aula 16 - Algoritmo para determinar articulações.
    aula 17 - Árvores e Florestas.
    aula 18 - Árvores.
    aula 19 - Árvores geradoras de custo mínimo.  Algoritmo de Prim. 
    aula 20 - Algoritmo de Kruskal.
    aula 21 - Emparelhamentos.
    aula 22 - Emparelhamentos e coberturas.
    aula 23 - Emparelhamentos em grafos bipartidos.
    aula 24 - Teorema de Hall. 
    aula 25 - Algoritmo de Edmonds. 
    aula 26 - Grafos Eulerinos.
    aula 27 - Grafos  Hamiltonianos.
    

    Horário da monitoria:


    Provas de semestres anteriores

  • P1 2004-2
  • Final 2004-2
  • P2 2005-1
  • Final 2005-1
  • Final 2005-2
  • 2a. chamada 2005-1
  • P1 2005-2
  • 2a. chamada 2005-2
  • P2 2005-2
  • P3 2005-2
  • P1 2002-2
  • P2 2003-1
  • Final 2006-1
  • P1 2006-1
  • P2 2006-1
  • P3 2006-1 gabarito
  • Final 2006-1 gabarito
  • P1 2007-1
  • P2 2007-1
  • P1 2007-2
  • P2 2007-2
  • P3 2007-2

  • "Graph theory has long become recognized as one of the more useful mathematical subjects for the computer science student to master. The approach which is natural in computer science is the algorithmic one; our interest is not so much in existence proofs or enumeration techniques, as it is in finding efficient algorithms for solving relevant problems, or alternatively showing evidence that no such algorithms exist. Although algorithmic graph theory was started by Euler, if not earlier, its development in the last ten years has been dramatic and revolutionary." Shimon Even