SlideShare uma empresa Scribd logo
1 de 27
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 1
© 2011 Pearson. Todos os direitos reservados.
slide 1
Capítulo 8 –
Algoritmos em
grafos
© 2011 Pearson. Todos os direitos reservados.
slide 1
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 2 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 2 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 2 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 2
© 2011 Pearson. Todos os direitos reservados.
slide 2
Conexão entre elementos é um problema comum em
computação. Situações que podem ser representadas
pela teoria dos grafos: a malha de estradas que ligam
cidades; o conjunto de links de um website; os circuitos
da placa-mãe de um computador; os cômodos de uma
casa e as portas que os interligam; e a distribuição entre
disciplinas e professores de uma escola.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 3 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 3 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 3 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 3
© 2011 Pearson. Todos os direitos reservados.
slide 3
Conceitos de grafos
Um grafo G é formado pelo par de conjuntos V e
E, sendo V o conjunto de vértices de G, e E o
conjunto de arestas de G. Uma aresta e ∈ E(G) é
representada por e = (u, v), e sempre interliga
dois vértices quaisquer u e v de V. Dois vértices
ligados por uma aresta são denominados
adjacentes. Notações utilizadas para denotar um
grafo: G = (V, E) ou G = (V(G), E(G)) ou G(V, E).
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 4 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 4 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 4 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 4
© 2011 Pearson. Todos os direitos reservados.
slide 4
A representação geométrica dos grafos é feita
marcando pontos no plano para os vértices, e uma
linha ligando dois pontos para a aresta.
Quando os vértices são nomeados por letras, deve ser
feito um mapeamento de cada nome para um número
correspondente i, sendo 1 ≤ i ≤ n, n ∈ N.
Exemplos de grafos
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 5 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 5 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 5 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 5
© 2011 Pearson. Todos os direitos reservados.
slide 5
Laços, arestas múltiplas e multigrafo
Quando um grafo tem arestas do tipo e = (u, u), a aresta é
chamada laço. Se há mais de uma aresta entre o mesmo par
de vértices, são arestas paralelas ou arestas múltiplas. Um
grafo com arestas paralelas é denominado multigrafo.
(a) Grafo com laços; (b) Grafo com arestas múltiplas (multigrafo)
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 6 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 6 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 6 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 6
© 2011 Pearson. Todos os direitos reservados.
slide 6
Grafo trivial e grafo simples
Um grafo com apenas um vértice é chamado trivial. Se não
possuir laço ou aresta múltipla, é chamado simples.
Grafo completo
Um grafo G é chamado completo quando existe uma aresta
para cada par de vértices distintos de G.
Grafos completos
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 7 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 7 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 7 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 7
© 2011 Pearson. Todos os direitos reservados.
slide 7
Grafo regular
Em um grafo G(V, E), o grau de um vértice v ∈ V, denotado por
g(v), é o número de arestas que incidem. Se todos os vértices de
um grafo G têm mesmo grau, é chamado grafo regular de grau r.
Subgrafo
Um grafo G(V, E), H(V’,E’) é um subgrafo de G se V’ ⊆ V e E’ ⊆ E.
(a) Grafo G; (b) e (c) Subgrafos de G
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 8 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 8 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 8 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 8
© 2011 Pearson. Todos os direitos reservados.
slide 8
Grafo bipartido
Um grafo G(V,E) é bipartido quando seu conjunto de
vértices V pode ser particionado em dois subconjuntos
V1 e V2, tal que toda aresta de G faz a ligação de um
vértice de V1 a um vértice de V2.
(a) Grafo bipartido; (b) Grafo bipartido completo
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 9 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 9 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 9 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 9
© 2011 Pearson. Todos os direitos reservados.
slide 9
Caminho simples, trajeto e ciclos
Uma sequência de vértices v1, v2, ..., vj, tal que (vi ,vi+1) ϵ
E(G), 1 ≤ i ≤ |j−1|, é chamada caminho de v1 a vj. O
número de arestas do caminho é o comprimento. Se
todos os vértices são distintos, é um caminho simples
ou elementar. Se as arestas forem distintas, é um
trajeto. Um ciclo é um caminho v1,v2,…,vj,vj+1, sendo v1 =
vj+1 e k ≥ 3. Um grafo sem ciclos é chamado acíclico.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 10 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 10 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 10 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 10
© 2011 Pearson. Todos os direitos reservados.
slide 10
Grafo conexo e desconexo
Um grafo G é conexo se existe um caminho para cada par
de vértices de G. Caso contrário, é desconexo. O grafo
desconexo tem partes conexas, as componentes. Um grafo
conexo possui uma única componente conexa enquanto
um desconexo possui várias componentes conexas.
(a) Grafo conexo; (b) Grafo desconexo
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 11 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 11 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 11 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 11
© 2011 Pearson. Todos os direitos reservados.
slide 11
Grafos isomorfos
Dois grafos G1(V1, E1) e G2(V2, E2), com |V1|=|V2|= n, são
isomorfos entre si quando existe uma função unívoca f: V1
→ V2, tal que (u,v) ∈ E1 sse (f(u), f(v)) ∈ E2, para todo u, v ∈
E1 (Szwarcfiter et al., 1986).
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 12 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 12 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 12 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 12
© 2011 Pearson. Todos os direitos reservados.
slide 12
Grafo ponderado
Um grafo ponderado tem peso nas arestas.
Esses pesos podem representar custos ou
distâncias, por exemplo.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 13 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 13 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 13 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 13
© 2011 Pearson. Todos os direitos reservados.
slide 13
Dígrafo
Um grafo direcionado D(V,E), ou dígrafo, possui um
conjunto não vazio de vértices V e um conjunto de
arestas E, tal que para toda aresta (u,v) ∈ E existe uma
única direção de u para v.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 14 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 14 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 14 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 14
© 2011 Pearson. Todos os direitos reservados.
slide 14
Seja D(V,E) um dígrafo e um vértice v ∈ V. O
grau de entrada de v é o número de arestas
que incidem em v. O grau de saída é o número
de arestas que partem de v. Um vértice com
grau de entrada nulo é chamado fonte e um
vértice com grau de saída zero é chamado
sumidouro.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 15 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 15 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 15 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 15
© 2011 Pearson. Todos os direitos reservados.
slide 15
Árvores
Um grafo T(V,E) que não possui ciclos e é conexo é
chamado árvore. Características:
•Seja v ∈ V, se o grau de v for menor ou igual a 1, v é
uma folha. Se for maior que 1, v é um vértice interno.
•Uma árvore T com n vértices possui n −1 arestas.
•Um grafo G é uma árvore somente se existir um único
caminho entre cada par de vértices de G.
•Um conjunto de árvores é chamado floresta.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 16 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 16 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 16 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 16
© 2011 Pearson. Todos os direitos reservados.
slide 16
Árvores com seis vértices
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 17 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 17 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 17 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 17
© 2011 Pearson. Todos os direitos reservados.
slide 17
Dado um grafo G(V(G), E(G)), denomina-se subgrafo
gerador o grafo H(V(H), E(H)) que é subgrafo de G, tal
que V(G) = V(H). Se o subgrafo H for uma árvore, então é
chamado árvore geradora.
(a) Grafo G; (b) Subgrafo gerador; (c) Árvore geradora
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 18 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 18 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 18 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 18
© 2011 Pearson. Todos os direitos reservados.
slide 18
Representação de grafos
Um grafo G(V,E) com |V|= n pode ser representado
adequadamente por meio de matrizes ou listas.
Matriz de adjacências
Dado um grafo G(V,E), uma matriz de adjacências M é
formada por n linhas e n colunas, sendo n o número de
vértices do grafo. Preenche-se como:
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 19 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 19 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 19 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 19
© 2011 Pearson. Todos os direitos reservados.
slide 19
Matriz de adjacências para um grafo não direcionado
A matriz de adjacências é simétrica para grafos não
direcionados.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 20 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 20 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 20 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 20
© 2011 Pearson. Todos os direitos reservados.
slide 20
Matriz de incidências
Segundo Rabuske (1992), dado um grafo G(V,E) de n vértices
e m arestas, a matriz de incidência de G, denotada por Mnxm,
é definida por:
Em grafo orientado, a matriz é definida como:
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 21 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 21 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 21 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 21
© 2011 Pearson. Todos os direitos reservados.
slide 21
Lista de adjacências
Consiste em um vetor Adj com n =|V| entradas, uma
para cada vértice do grafo. Cada entrada Adj[v] possui
uma lista encadeada de vértices adjacentes a v em G.
Não existe uma ordem dos vértices nessa lista.
Compõe-se de n listas de 2m elementos, onde m é o
número de arestas. O espaço utilizado é O(n + m).
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 22 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 22 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 22 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 22
© 2011 Pearson. Todos os direitos reservados.
slide 22
Algoritmos de busca
Algoritmo de busca em profundidade
Atende ao critério de escolher o vértice mais
recentemente alcançado dentre os vários marcados e
incidentes a uma aresta ainda não explorada.
Análise da busca em profundidade
Procura acessar todos os vértices em um grafo G = (V, E),
onde |V|= n e |E|= m. Para acessar os possíveis vértices,
varre a lista de arestas de cada vértice do grafo e com
isso gasta tempo O(n + m).
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 23 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 23 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 23 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 23
© 2011 Pearson. Todos os direitos reservados.
slide 23
Algoritmo de busca em largura
Escolhe o vértice alcançado por último dentre os vários
marcados e incidentes a uma aresta não explorada. Tem
esse nome por descobrir todos os vértices a uma distância
k de s, antes de descobrir os que estão à distância k+1.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 24 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 24 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 24 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 24
© 2011 Pearson. Todos os direitos reservados.
slide 24
Análise da busca de profundidade
Primeiro, o algoritmo inicializa todos os vértices em
tempo O(V). Quando vão sendo descobertos, são
colocados em uma fila. Inserção e remoção na fila
gastam tempo constante, O(1). Todos os vértices são
enfileirados e retirados e o tempo total gasto é O(V).
Todas as listas de todos os vértices são analisadas, em
tempo proporcional a O(E). Portanto, o tempo de
execução da busca em largura é O(V + E).
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 25 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 25 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 25 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 25
© 2011 Pearson. Todos os direitos reservados.
slide 25
Algoritmo do caminho mínimo
Determinar o mais curto (com menor peso) em um
dígrafo com pesos nas arestas a partir de um vértice de
origem informado, sendo os pesos das arestas maiores
ou iguais a zero.
Algoritmo de Dijkstra: mantém um conjunto C com
vértices cujo valor do caminho mínimo em relação ao de
origem v já foi determinado. Cada vértice possui uma
distância em relação à origem, armazenada em um vetor
dist, com tamanho n=|V|.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 26 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 26 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 26 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 26
© 2011 Pearson. Todos os direitos reservados.
slide 26
O algoritmo trabalha para escolher um vértice i da
lista de prioridades mínima lista = V − C, tal que a
estimativa de distância de i à origem é mínima. Em
seguida a distância dos vértices vizinhos a i é
recalculada, se for o caso; para isso, as arestas
passam por um processo de relaxamento.
Relaxar uma aresta (i,j) é testar a possibilidade de
melhorar o menor caminho encontrado para j pela
passagem através do vértice i e, com isso, atualizar a
distância mínima que j possui.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 27 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 27 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 27 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
slide 27
© 2011 Pearson. Todos os direitos reservados.
slide 27
Análise do algoritmo de caminho mínimo
O tempo de execução do algoritmo Dijkstra é
determinado pela forma como a lista de prioridades
mínima é implementada. Na lista como heap binário
mínimo cada operação de inserção e remoção custa no
pior caso O(logV), onde V representa o número de
vértices do grafo. O algoritmo é executado enquanto a
lista de prioridade não for vazia.
O custo para construção de um heap binário é O(V),
então o tempo de execução do algoritmo é:
V ⋅ (logV + E + V) = V ⋅ logV + V ⋅ E + V ⋅ V = O(V2).

Mais conteúdo relacionado

Destaque

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Destaque (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Capítulo 8 - Algoritmos em grafos com Pseudocódigos e em Java

  • 1. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 © 2011 Pearson. Todos os direitos reservados. slide 1 Capítulo 8 – Algoritmos em grafos © 2011 Pearson. Todos os direitos reservados. slide 1
  • 2. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 2 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 2 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 2 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 2 © 2011 Pearson. Todos os direitos reservados. slide 2 Conexão entre elementos é um problema comum em computação. Situações que podem ser representadas pela teoria dos grafos: a malha de estradas que ligam cidades; o conjunto de links de um website; os circuitos da placa-mãe de um computador; os cômodos de uma casa e as portas que os interligam; e a distribuição entre disciplinas e professores de uma escola.
  • 3. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 3 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 3 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 3 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 3 © 2011 Pearson. Todos os direitos reservados. slide 3 Conceitos de grafos Um grafo G é formado pelo par de conjuntos V e E, sendo V o conjunto de vértices de G, e E o conjunto de arestas de G. Uma aresta e ∈ E(G) é representada por e = (u, v), e sempre interliga dois vértices quaisquer u e v de V. Dois vértices ligados por uma aresta são denominados adjacentes. Notações utilizadas para denotar um grafo: G = (V, E) ou G = (V(G), E(G)) ou G(V, E).
  • 4. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 4 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 4 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 4 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 4 © 2011 Pearson. Todos os direitos reservados. slide 4 A representação geométrica dos grafos é feita marcando pontos no plano para os vértices, e uma linha ligando dois pontos para a aresta. Quando os vértices são nomeados por letras, deve ser feito um mapeamento de cada nome para um número correspondente i, sendo 1 ≤ i ≤ n, n ∈ N. Exemplos de grafos
  • 5. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 5 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 5 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 5 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 5 © 2011 Pearson. Todos os direitos reservados. slide 5 Laços, arestas múltiplas e multigrafo Quando um grafo tem arestas do tipo e = (u, u), a aresta é chamada laço. Se há mais de uma aresta entre o mesmo par de vértices, são arestas paralelas ou arestas múltiplas. Um grafo com arestas paralelas é denominado multigrafo. (a) Grafo com laços; (b) Grafo com arestas múltiplas (multigrafo)
  • 6. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 6 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 6 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 6 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 6 © 2011 Pearson. Todos os direitos reservados. slide 6 Grafo trivial e grafo simples Um grafo com apenas um vértice é chamado trivial. Se não possuir laço ou aresta múltipla, é chamado simples. Grafo completo Um grafo G é chamado completo quando existe uma aresta para cada par de vértices distintos de G. Grafos completos
  • 7. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 7 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 7 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 7 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 7 © 2011 Pearson. Todos os direitos reservados. slide 7 Grafo regular Em um grafo G(V, E), o grau de um vértice v ∈ V, denotado por g(v), é o número de arestas que incidem. Se todos os vértices de um grafo G têm mesmo grau, é chamado grafo regular de grau r. Subgrafo Um grafo G(V, E), H(V’,E’) é um subgrafo de G se V’ ⊆ V e E’ ⊆ E. (a) Grafo G; (b) e (c) Subgrafos de G
  • 8. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 8 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 8 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 8 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 8 © 2011 Pearson. Todos os direitos reservados. slide 8 Grafo bipartido Um grafo G(V,E) é bipartido quando seu conjunto de vértices V pode ser particionado em dois subconjuntos V1 e V2, tal que toda aresta de G faz a ligação de um vértice de V1 a um vértice de V2. (a) Grafo bipartido; (b) Grafo bipartido completo
  • 9. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 9 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 9 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 9 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 9 © 2011 Pearson. Todos os direitos reservados. slide 9 Caminho simples, trajeto e ciclos Uma sequência de vértices v1, v2, ..., vj, tal que (vi ,vi+1) ϵ E(G), 1 ≤ i ≤ |j−1|, é chamada caminho de v1 a vj. O número de arestas do caminho é o comprimento. Se todos os vértices são distintos, é um caminho simples ou elementar. Se as arestas forem distintas, é um trajeto. Um ciclo é um caminho v1,v2,…,vj,vj+1, sendo v1 = vj+1 e k ≥ 3. Um grafo sem ciclos é chamado acíclico.
  • 10. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 10 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 10 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 10 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 10 © 2011 Pearson. Todos os direitos reservados. slide 10 Grafo conexo e desconexo Um grafo G é conexo se existe um caminho para cada par de vértices de G. Caso contrário, é desconexo. O grafo desconexo tem partes conexas, as componentes. Um grafo conexo possui uma única componente conexa enquanto um desconexo possui várias componentes conexas. (a) Grafo conexo; (b) Grafo desconexo
  • 11. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 11 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 11 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 11 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 11 © 2011 Pearson. Todos os direitos reservados. slide 11 Grafos isomorfos Dois grafos G1(V1, E1) e G2(V2, E2), com |V1|=|V2|= n, são isomorfos entre si quando existe uma função unívoca f: V1 → V2, tal que (u,v) ∈ E1 sse (f(u), f(v)) ∈ E2, para todo u, v ∈ E1 (Szwarcfiter et al., 1986).
  • 12. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 12 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 12 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 12 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 12 © 2011 Pearson. Todos os direitos reservados. slide 12 Grafo ponderado Um grafo ponderado tem peso nas arestas. Esses pesos podem representar custos ou distâncias, por exemplo.
  • 13. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 13 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 13 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 13 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 13 © 2011 Pearson. Todos os direitos reservados. slide 13 Dígrafo Um grafo direcionado D(V,E), ou dígrafo, possui um conjunto não vazio de vértices V e um conjunto de arestas E, tal que para toda aresta (u,v) ∈ E existe uma única direção de u para v.
  • 14. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 14 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 14 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 14 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 14 © 2011 Pearson. Todos os direitos reservados. slide 14 Seja D(V,E) um dígrafo e um vértice v ∈ V. O grau de entrada de v é o número de arestas que incidem em v. O grau de saída é o número de arestas que partem de v. Um vértice com grau de entrada nulo é chamado fonte e um vértice com grau de saída zero é chamado sumidouro.
  • 15. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 15 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 15 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 15 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 15 © 2011 Pearson. Todos os direitos reservados. slide 15 Árvores Um grafo T(V,E) que não possui ciclos e é conexo é chamado árvore. Características: •Seja v ∈ V, se o grau de v for menor ou igual a 1, v é uma folha. Se for maior que 1, v é um vértice interno. •Uma árvore T com n vértices possui n −1 arestas. •Um grafo G é uma árvore somente se existir um único caminho entre cada par de vértices de G. •Um conjunto de árvores é chamado floresta.
  • 16. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 16 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 16 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 16 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 16 © 2011 Pearson. Todos os direitos reservados. slide 16 Árvores com seis vértices
  • 17. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 17 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 17 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 17 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 17 © 2011 Pearson. Todos os direitos reservados. slide 17 Dado um grafo G(V(G), E(G)), denomina-se subgrafo gerador o grafo H(V(H), E(H)) que é subgrafo de G, tal que V(G) = V(H). Se o subgrafo H for uma árvore, então é chamado árvore geradora. (a) Grafo G; (b) Subgrafo gerador; (c) Árvore geradora
  • 18. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 18 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 18 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 18 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 18 © 2011 Pearson. Todos os direitos reservados. slide 18 Representação de grafos Um grafo G(V,E) com |V|= n pode ser representado adequadamente por meio de matrizes ou listas. Matriz de adjacências Dado um grafo G(V,E), uma matriz de adjacências M é formada por n linhas e n colunas, sendo n o número de vértices do grafo. Preenche-se como:
  • 19. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 19 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 19 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 19 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 19 © 2011 Pearson. Todos os direitos reservados. slide 19 Matriz de adjacências para um grafo não direcionado A matriz de adjacências é simétrica para grafos não direcionados.
  • 20. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 20 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 20 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 20 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 20 © 2011 Pearson. Todos os direitos reservados. slide 20 Matriz de incidências Segundo Rabuske (1992), dado um grafo G(V,E) de n vértices e m arestas, a matriz de incidência de G, denotada por Mnxm, é definida por: Em grafo orientado, a matriz é definida como:
  • 21. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 21 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 21 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 21 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 21 © 2011 Pearson. Todos os direitos reservados. slide 21 Lista de adjacências Consiste em um vetor Adj com n =|V| entradas, uma para cada vértice do grafo. Cada entrada Adj[v] possui uma lista encadeada de vértices adjacentes a v em G. Não existe uma ordem dos vértices nessa lista. Compõe-se de n listas de 2m elementos, onde m é o número de arestas. O espaço utilizado é O(n + m).
  • 22. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 22 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 22 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 22 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 22 © 2011 Pearson. Todos os direitos reservados. slide 22 Algoritmos de busca Algoritmo de busca em profundidade Atende ao critério de escolher o vértice mais recentemente alcançado dentre os vários marcados e incidentes a uma aresta ainda não explorada. Análise da busca em profundidade Procura acessar todos os vértices em um grafo G = (V, E), onde |V|= n e |E|= m. Para acessar os possíveis vértices, varre a lista de arestas de cada vértice do grafo e com isso gasta tempo O(n + m).
  • 23. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 23 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 23 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 23 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 23 © 2011 Pearson. Todos os direitos reservados. slide 23 Algoritmo de busca em largura Escolhe o vértice alcançado por último dentre os vários marcados e incidentes a uma aresta não explorada. Tem esse nome por descobrir todos os vértices a uma distância k de s, antes de descobrir os que estão à distância k+1.
  • 24. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 24 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 24 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 24 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 24 © 2011 Pearson. Todos os direitos reservados. slide 24 Análise da busca de profundidade Primeiro, o algoritmo inicializa todos os vértices em tempo O(V). Quando vão sendo descobertos, são colocados em uma fila. Inserção e remoção na fila gastam tempo constante, O(1). Todos os vértices são enfileirados e retirados e o tempo total gasto é O(V). Todas as listas de todos os vértices são analisadas, em tempo proporcional a O(E). Portanto, o tempo de execução da busca em largura é O(V + E).
  • 25. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 25 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 25 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 25 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 25 © 2011 Pearson. Todos os direitos reservados. slide 25 Algoritmo do caminho mínimo Determinar o mais curto (com menor peso) em um dígrafo com pesos nas arestas a partir de um vértice de origem informado, sendo os pesos das arestas maiores ou iguais a zero. Algoritmo de Dijkstra: mantém um conjunto C com vértices cujo valor do caminho mínimo em relação ao de origem v já foi determinado. Cada vértice possui uma distância em relação à origem, armazenada em um vetor dist, com tamanho n=|V|.
  • 26. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 26 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 26 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 26 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 26 © 2011 Pearson. Todos os direitos reservados. slide 26 O algoritmo trabalha para escolher um vértice i da lista de prioridades mínima lista = V − C, tal que a estimativa de distância de i à origem é mínima. Em seguida a distância dos vértices vizinhos a i é recalculada, se for o caso; para isso, as arestas passam por um processo de relaxamento. Relaxar uma aresta (i,j) é testar a possibilidade de melhorar o menor caminho encontrado para j pela passagem através do vértice i e, com isso, atualizar a distância mínima que j possui.
  • 27. © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 27 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 27 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 27 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 27 © 2011 Pearson. Todos os direitos reservados. slide 27 Análise do algoritmo de caminho mínimo O tempo de execução do algoritmo Dijkstra é determinado pela forma como a lista de prioridades mínima é implementada. Na lista como heap binário mínimo cada operação de inserção e remoção custa no pior caso O(logV), onde V representa o número de vértices do grafo. O algoritmo é executado enquanto a lista de prioridade não for vazia. O custo para construção de um heap binário é O(V), então o tempo de execução do algoritmo é: V ⋅ (logV + E + V) = V ⋅ logV + V ⋅ E + V ⋅ V = O(V2).