Você está na página 1de 40

ARA0175 – ALGORITMOS

EM GRAFOS
TEMA 1 – Introdução ao Algoritmos em Grafos

Universidade Estácio de Sá (UNESA)


Prof. Simone Gama
ALGORITMOS EM GRAFOS - Ementa Geral

1. CONCEITUAÇÃO E FORMALIZAÇÃO DE GRAFOS


2. CÁLCULO DE CONEXIDADE E DISTÂNCIA
3. CAMINHOS EM GRAFOS
4. TÉCNICAS DE BUSCAS EM GRAFOS
5. GRAFOS PLANARES E COLORAÇÃO

Prof. Simone ALGORITMOS EM GRAFOS 2


Gama
Processo de Avaliação
Avaliação (AV)
Para a Aprovação na disciplina, o aluno deverá:
• Atingir resultado igual ou superior a 6,0.
• Frequentar, no mínimo, 75% das aulas ministradas.

Prof. Simone ALGORITMOS EM GRAFOS 3


Gama
Processo de Avaliação
Avaliação (AVS)
Caso o aluno não atinja o resultado desejado na prova de AV, ele
poderá recuperar sua nota na prova de AVS.
Será composta por uma prova no formato PNI - Prova Nacional
Integrada, com total de 10 pontos, e substituirá a nota da AV,
caso seja maior.

Prof. Simone ALGORITMOS EM GRAFOS 4


Gama
Informações Gerais
• Frequências: Lembrando que o aluno(a) deve ter Presença
confirmada igual ou superior a 75% das aulas ministradas.
Presença menor que esse valor o aluno será considerado
Reprovado por Falta (RF) ao final do semestre na disciplina.

• Exercícios e Avaliações: Imagens copiadas de outros e códigos de


programação claramente semelhantes serão desconsiderados e
em caso de Avaliações, terão as notas devidamente descontadas.

Prof. Simone ALGORITMOS EM GRAFOS 5


Gama
Bibliografia Básica – Teoria dos Grafos
NETTO, Paulo O. B.; JURKIEWICZ, Samuel. Grafos:
Introdução e Prática. 2 ed.. São Paulo: Blucher, 2017.
Disponível em:
https://plataforma.bvirtual.com.br/Acervo/Publicacao/173348

SIMÕES PEREIRA, J.M.S. Grafos e Redes: Teoria e


Algoritmos Básicos. RJ: Ed. Rio de Janeiro, 2013. Disponível
em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/42049/pdf

Prof. Simone ALGORITMOS EM GRAFOS 6


Gama
Bibliografia Básica – Grafos e Programação

Estruturas de Dados e Seus Algoritmos. Jayme Luiz


Szwarcfiter e Lilian Markenzon. Edição: 3|2010. Editora: LTC

Jayme Luiz Szwarcfiter. Teoria Computacional de


Grafos: Os Algoritmos. 2018. Editora GEN LTC; 1ª
edição (8 março 2018)

Prof. Simone ALGORITMOS EM GRAFOS 7


Gama
Bibliografia Básica – Notação e Complexidade

Algoritmos; CORMEN Thomas H.;


LEISERSON, Charles E.; RIVEST, Ronald L.;
STEIN, Clifford; Elsevier.

PROJETO DE ALGORITMOS COM IMPLEMENTAÇÕES EM


PASCAL E C, 3ª ED. REV. E AMPL. NIVIO ZIVIANE, CENGAGE
DO BRASIL, 2010
Projeto de Algoritmos | Nivio Ziviani | Apresentação (ufmg.br)
Prof. Simone ALGORITMOS EM GRAFOS 8
Gama
ARA0175 – ALGORITMOS
EM GRAFOS
CONCEITOS EM TEORIA DOS GRAFOS

Universidade Estácio de Sá (UNESA)


Prof. Simone Gama
Grafos - Definições
Um grafo (graph) é um par de conjuntos:
• um conjunto de vértices
• um conjunto de arestas

𝑎1
𝑎2
𝑎3
𝑎4

Prof. Simone ALGORITMOS EM GRAFOS 10


Gama
Grafos - Definições
Um grafo (graph) é um par de conjuntos:
• um conjunto de vértices
• um conjunto de arestas

𝑎1
𝑎2
𝑎3
𝑎4

Prof. Simone ALGORITMOS EM GRAFOS 11


Gama
Grafos - Definições
Um grafo (graph) é um par de conjuntos:
• um conjunto de vértices
• um conjunto de arestas

𝑎1
𝑎2
𝑎3
𝑎4

Prof. Simone ALGORITMOS EM GRAFOS 12


Gama
Teoria dos Grafos - Definições
Um grafo pode conter:
Arestas
direcionadas
𝑎1

𝑎2
𝑎3

𝑎4

Prof. Simone ALGORITMOS EM GRAFOS 13


Gama
Teoria dos Grafos - Definições
Um grafo pode conter:
Arestas
direcionadas
𝑎1 Vértices com pesos
associados
𝑎2
𝑎3 8
𝑎1
𝑎4
23
𝑎2
𝑎3
10
2 𝑎4
Prof. Simone ALGORITMOS EM GRAFOS 14
Gama
Teoria dos Grafos - Definições
Um grafo pode conter:
Arestas Arestas com pesos
associados
direcionadas
𝑎1 -1
𝑎1 Vértices com pesos 4
associados 𝑎2
𝑎2 2
8 𝑎3
𝑎3 0
𝑎1 𝑎4
𝑎4
23
𝑎2
𝑎3
10
2 𝑎4
Prof. Simone ALGORITMOS EM GRAFOS 15
Gama
Grafos - Aplicações
A Abstração que permite codificar relacionamentos entre pares
de objetos:

Prof. Simone ALGORITMOS EM GRAFOS 16


Gama
Grafos - Aplicações
Exemplo 1: Nível de Iteração de usuários em redes sociais:

Prof. Simone ALGORITMOS EM GRAFOS 17


Gama
Grafos - Aplicações
Exemplo 2: Hiperlinks de Páginas Web:

Prof. Simone ALGORITMOS EM GRAFOS 18


Gama
Grafos - Aplicações
Exemplo 3: Modelagem de jogos - Sudoku

Prof. Simone ALGORITMOS EM GRAFOS 19


Gama
Grafos - Aplicações
Exemplo 3: Modelagem de jogos - Labirinto

Prof. Simone ALGORITMOS EM GRAFOS 20


Gama
Grafos - Aplicações
Exemplo 3: Modelagem de jogos - Labirinto

L
K
F
B
H

C G
J E

I A D

Prof. Simone ALGORITMOS EM GRAFOS 21


Gama
Grafos - Aplicações
Exemplo 3: Modelagem de jogos - Labirinto

D A B E

G H C F I J

K L

Prof. Simone ALGORITMOS EM GRAFOS 22


Gama
Grafos - Aplicações
Exemplo 4: Modelagem de jogos – Movimento do Cavalo no xadrez

Prof. Simone ALGORITMOS EM GRAFOS 23


Gama
Grafos - Aplicações
Exemplo 5: Representar mapas

Prof. Simone ALGORITMOS EM GRAFOS 24


Gama
Grafos - Aplicações
Exemplo 6: Problemas aplicáveis:

Coloração eficiente de Mapas.

Robustez da malha de
transmissão elétrica
nacional. Alocação de canais em redes sem fio.
Prof. Simone ALGORITMOS EM GRAFOS 25
Gama
Grafos - Aplicações
Praticando:
1) Sobre problemas modelados em grafos, responda aos questionários:
a) https://olimpiada.ic.unicamp.br/pratique/i1/2020/f2/mapa/
b) https://olimpiada.ic.unicamp.br/pratique/i1/2021/f3/grafo/
c) https://olimpiada.ic.unicamp.br/pratique/i1/2018/f2/grafo/
d) https://olimpiada.ic.unicamp.br/pratique/i1/2019/f1/automato/

Prof. Simone ALGORITMOS EM GRAFOS 26


Gama
Grafos – Visualização Gráfica
Grafos pequenos: Fáceis de visualizar

Prof. Simone ALGORITMOS EM GRAFOS 27


Gama
Grafos – Visualização Gráfica
Grafos grandes: Difíceis de visualizar

Prof. Simone ALGORITMOS EM GRAFOS 28


Gama
Grafos – Visualização Gráfica
Grafos grandes: Difíceis de visualizar

Grafo com 400


vértices e arestas
aleatórias.
Fonte: irrigation_graph.png (605×465) (usp.br)
Prof. Simone ALGORITMOS EM GRAFOS 29
Gama
Grafos – Visualização Gráfica
Grafos grandes: Difíceis de visualizar

Email. Ligações de
email entre
funcionários de uma
corporação.
Fonte: kleinberg-easley-corporate-communication-adamic-hier.jpg (400×315) (usp.br)

Prof. Simone ALGORITMOS EM GRAFOS 30


Gama
Grafos – Visualização Gráfica
Grafos grandes: Difíceis de visualizar

Precisamos resolver esse problema de visualizar os grafos


grandes. Como Vamos resolver?

Um profissional de computação deve ter habilidades que


resolvam problemas de modelagens do mundo real, e isso
inclui problemas modelados em grafos.

Prof. Simone ALGORITMOS EM GRAFOS 31


Gama
Grafos – Visualização Gráfica
Grafos grandes: Difíceis de visualizar

Precisamos resolver esse problema de visualizar os grafos


grandes. Como Vamos resolver?

Temos duas (2) formas:


Provas de Teoremas em grafos
Algoritmos em Grafos (objetivo dessa disciplina)

Prof. Simone ALGORITMOS EM GRAFOS 32


Gama
Trabalhando com Grafos
Demonstração / Prova: Sequencia de afirmações precisas que
garantem que um dado resultado é verdadeiro.
Teorema: Uma afirmação em que há uma demonstração para ela.
Proposição: O mesmo que teorema, mas utilizado para resultados
simples.
Lema: Um resultado que é utilizado para provar resultados
maiores.
Corolário: Um teorema que é consequência de outro resultado.

Prof. Simone ALGORITMOS EM GRAFOS 33


Gama
Trabalhando com Grafos
Demonstração / Prova: Sequencia de afirmações precisas que
garantem que um dado resultado é verdadeiro.
Teorema: Uma afirmação em que há uma demonstração para ela.
Proposição: O mesmo que teorema, mas utilizado para resultados
simples.
Lema: Um resultado que é utilizado para provar resultados
maiores.
Corolário: Um teorema que é consequência de outro resultado.

Prof. Simone ALGORITMOS EM GRAFOS 34


Gama
Trabalhando com Grafos
Demonstração / Prova: Sequencia de afirmações precisas que
garantem que um dado resultado é verdadeiro.
Teorema: Uma afirmação em que há uma demonstração para ela.
Proposição: O mesmo que teorema, mas utilizado para resultados
simples.
Lema: Um resultado que é utilizado para provar resultados
maiores.
Corolário: Um teorema que é consequência de outro resultado.

Prof. Simone ALGORITMOS EM GRAFOS 35


Gama
Trabalhando com Grafos
Demonstração / Prova: Sequencia de afirmações precisas que
garantem que um dado resultado é verdadeiro.
Teorema: Uma afirmação em que há uma demonstração para ela.
Proposição: O mesmo que teorema, mas utilizado para resultados
simples.
Lema: Um resultado que é utilizado para provar resultados
maiores.
Corolário: Um teorema que é consequência de outro resultado.

Prof. Simone ALGORITMOS EM GRAFOS 36


Gama
Trabalhando com Grafos
Demonstração / Prova: Sequencia de afirmações precisas que
garantem que um dado resultado é verdadeiro.
Teorema: Uma afirmação em que há uma demonstração para ela.
Proposição: O mesmo que teorema, mas utilizado para resultados
simples.
Lema: Um resultado que é utilizado para provar resultados
maiores.
Corolário: Um teorema que é consequência de outro resultado.

Prof. Simone ALGORITMOS EM GRAFOS 37


Gama
Dúvidas?

Prof. Simone ALGORITMOS EM GRAFOS 38


Gama
Bibliografia
• Manzano, José Augusto N. G. Programação de Computadores com
C/C++. Disponível em: Minha Biblioteca, Editora Saraiva,
2014.(https://integrada.minhabiblioteca.com.br/reader/books/97
88536519487/pageid/65)

Leitura Auxiliar
• Tutorial completo em C (em inglês): C Programming Tutorial
(markburgess.org)

Prof. Simone ALGORITMOS EM GRAFOS 39


Gama
Aviso Legal
• Os slides de aula são reprodução parcial do material bibliográfico do Plano
de Ensino, não contemplando em hipótese alguma, a bibliografia total e
oficial da disciplina. Cabe ao aluno completar seus estudos nos livros
oficiais da bibliografia, apresentados no 1º dia de aula.
• A reprodução ou cópia deste material em sites de pesquisa, sites de quiz,
sites de concursos, sites de estudos como passeidireto e outros mais estão
proibidos, sob pena de aplicação dos termos da lei.

Prof. Simone ALGORITMOS EM GRAFOS 40


Gama

Você também pode gostar