Escolar Documentos
Profissional Documentos
Cultura Documentos
Graduação em Ciência da
Computação - UFT;
Mestrado em Sistemas e
Computação - IME;
Doutorado em Engenharia de
Sistemas e Computação - UFRJ.
1 início: 09/Mar/2023;
2 término: 13/Jul/2023;
3 total de 18 encontros (+ Aulas 100% presenciais;
exame final); Atividades, exercícios e
4 1 feriados, Corpus Christie provas.
dia 8 de Junho, repor com
atividade Moodle.
Implementação
Novidade na Disciplina!
1 Implementação disponível no Moodle;
2 Nota da Implementação é composta por apresentação
(explicação e arguição) + slides + código fonte;
3 Pode ser feita em duplas;
4 Vale 1 ponto na média final;
5 Apresentação da Implementação no final da disciplina.
Teoria Computacional de
Grafos. Jayme Luiz
Szwarcfiter. Rio de Janeiro,
Elsevier, 2018;
Bondy, John Adrian, and
Uppaluri Siva Ramachandra
Murty. Graph theory with
applications. Vol. 290.
London: Macmillan, 1976.
Preliminaries
Graph Theory
Preliminaries
Historical Context
Preliminaries
Preliminaries
Enigma
Problem description
In the 18th century, the Swiss mathematician Leonhard Euler was
intrigued by the question of whether a route existed that would
traverse each of the seven bridges exactly once.
Preliminaries
Preliminaries
Traversable Graph
A graph is traversable if you can draw a path between all the
vertices without retracing the same edge twice.
Euler’s Path
An Euler’s path contains each edge of ‘G’ exactly once and each
vertex of ‘G’ at least once. A connected graph G is said to be
traversable if it contains an Euler’s path.
Euler’s Circuit
In a Euler’s path, if the starting vertex is same as its ending vertex,
then it is called an Euler’s circuit.
Preliminaries
More History
Preliminaries
Preliminaries
Preliminaries
Preliminaries
Graph Representations
Matriz Adjacência;
Matriz de Incidência;
Matriz Laplaciana;
Listas de Adjacência;
Representação Geométrica (Desenho);
entre outros.
Matriz de Adjacência
Matriz de incidência
Lista Adjacência
O que é isso?
Para que serve?
Relação disso com a Teoria dos Grafos?
Referência recomendada para estudo: Livro "Introduction to
Algorithms", 3rd edition, Thomas H. Cormen
(pág. 43 - Notação Assintótica e Crescimento de Funções).
Definição:
Dadas funções assintoticamente não-negativas f e g, dizemos que f
está na ordem O de g e escrevemos f = O(g ) se existe um número
positivo c tal que f (n) ≤ c ∗ g (n) para todo n suficientemente
grande. Em outras palavras, se existem números positivos c e n0
tais que f (n) ≤ c ∗ g (n) para todo n ≥ n0 .
Exemplos
Definição:
Dadas funções assintoticamente não-negativas f e g , dizemos que
f está na ordem Ômega de g e escrevemos f = Ω(g ) se existem
constantes positivas c, n0 tal que f (n) ≥ c ∗ g (n) para todo n ≥ n0 .
Exemplos
1 5n2 + 2n + 3 = Ω(n2 );
2 n3 + 7n + 1 = Ω(n2 );
3 2n = Ω(n2 );
Notação Θ (Theta)
Definição:
Dizemos que duas funções assintoticamente não negativas f e g
são da mesma ordem e escrevemos f = Θ(g ) se f = O(g ) e
f = Ω(g ). Em outras palavras, dizer que f = Θ(g ) significa que
existem constantes positivas c1 e c2 tais que
c1 ∗ g (n) ≤ f (n) ≤ c2 ∗ g (n) para todo n ≥ n0 .
Exemplos
Técnicas de Prova
Indução Matemática
Princípio Indutivo
Exemplo I
Exemplo I (cont.)
Exemplo I (cont.)
Solução:
Passo base de indução: P(1) = 21 = 2 é verdade, pois uma
árvore com altura 1 possui no máximo 2 folhas.
Exemplo I (cont.)
Solução:
Passo base de indução: P(1) = 21 = 2 é verdade, pois uma
árvore com altura 1 possui no máximo 2 folhas.
Hipótese de indução e passo indutivo: Agora supomos que vale
para P(n) = 2n e tentamos mostrar que vale para P(n + 1) = 2n+1 .
Exemplo I (cont.)
Solução:
Passo base de indução: P(1) = 21 = 2 é verdade, pois uma
árvore com altura 1 possui no máximo 2 folhas.
Hipótese de indução e passo indutivo: Agora supomos que vale
para P(n) = 2n e tentamos mostrar que vale para P(n + 1) = 2n+1 .
Como a cada nível o número de folhas na árvore dobra, então vale
que:
P(n + 1) = 2P(n), dessa forma chegamos a conclusão de que
P(n + 1) = 2(2n ) = 2n+1 .
Demonstração Construtiva
Ocorre pela apresentação de um algoritmo que resolve o
problema em questão;
Por exemplo: Método de Cantor (1873) para comparação de
conjuntos infinitos;
Se nós temos dois conjuntos infinitos, como podemos dizer se
um é maior do que o outro ou se eles têm o mesmo tamanho?
Pelo método de cantor é suficiente apresentar uma bijeção
entre os conjuntos, se tal bijeção existir, então ambos
conjuntos possuem o mesmo tamanho, se sobrarem elementos
em algum dos conjuntos então o que sobrou elementos é
maior;
O conjunto dos números Naturais é maior que o conjunto dos
números pares?