Você está na página 1de 57

TEORIA DOS

EEB JOÃO SILVEIRA


A MATEMÁTICA E O
MUNDO DO TRABALHO

GRAFOS TURMA 808


PROBLEMA DAS PONTES DE
KONIGSBERG
• Os grafos foram utilizados pela humanidade há muito
tempo atrás, como nas rotas marítimas e comerciais na
Idade Média.
• Mas a teoria mais aprofundada dos grafos só foi surgir no
século XVIII, por Euler, através do Problema das Pontes de
Konigsberg.
• O problema em questão tratava da cidade de Konigsberg,
que é cortada pelo rio Prególia, formando duas grandes
ilhas. As duas margens do rio, junto com as ilhas,
constituem uma região, que na época era ligada por 7
pontes.
PROBLEMA DAS PONTES DE
KONIGSBERG
PROBLEMA DAS PONTES DE
KONIGSBERG
Localização de
Konigsberg
(atual
Kaliningrado)
PROBLEMA DAS PONTES DE
KONIGSBERG
• O problema consistia no seguinte:
• "Começando em qualquer lugar, é possível atravessar
todas as pontes sem repetição? É possível fazer isso e
voltar ao lugar inicial?"

• "Além disso, se uma das pontes fosse retirada, continuaria


sendo (ou não sendo) possível resolver o problema?"
DEFINIÇÕES DE GRAFOS

•Um grafo pode ser definido de muitas


formas diferentes: (para cada
definição iremos usar como exemplo
o problema das pontes)
DEFINIÇÃO FORMAL
• Um GRAFO é definido da forma G = (V,E), onde V é
um CONJUNTO não-vazio de VÉRTICES (ou nós) e E é
um CONJUNTO de ARESTAS,
• Cada aresta tem um ou dois vértices associados a ela,
chamados de extremidades.
• No problema das pontes, os vértices são as porções de terra,
vamos chamá-las de A (a ilha central), B (a parte da direita), C
(a parte de cima) e D (a parte de baixo)
• E as arestas são as pontes: g,h,i (as de cima), j (a do centro),
k,l,m (as de baixo)
DEFINIÇÃO FORMAL
• Com isso, o grafo das pontes fica definido como:

•G = (V,E)
• Com V = {A,B,C,D}
• Com E = {g,h,i,j,k,l,m}
DEFINIÇÃO POR DIAGRAMAS
• Esse o modo mais comum e mais difundido de apresentar
um grafo. Usando o problema das pontes, podemos
representar esse grafo usando o diagrama a seguir:
DEFINIÇÃO POR DIAGRAMAS
DEFINIÇÃO POR DIAGRAMAS
• Olhando o diagrama, podemos tentar resolver o problema
intuitivamente. Refazendo a pergunta:

• "É possível partir de qualquer um dos vértices e passar por


todas as arestas sem repeti-lás? É possível fazer isso e
voltar ao vértice inicial"?
NÚMERO DE CAMINHOS
• Considere o grafo ao lado, com
R,S,T,V os vértices e
a,b, c, d, e as arestas

• Escreva todos os "caminhos" que


passam por todas as arestas.
NÚMERO DE CAMINHOS (grafo peixe)
• Considere o grafo ao lado.
• Nomeie os vértices e as arestas
desse grafo
• Escreva todos os "caminhos" que
passam por todas as arestas.
NÚMERO DE CAMINHOS
• Considere o grafo ao lado.
• Nomeie os vértices e as arestas
desse grafo
• Escreva todos os "caminhos" que
passam por todas as arestas.
GRAU DE UM VÉRTICE
• Para cada vértice de um grafo, é
chamado de GRAU DE UM
VÉRTICE a quantidade de arestas
que "saem" desse vértice. A
notação para o grau de um vértice
V qualquer de um grafo é ∂(V).
• No grafo ao lado, existem vértices
de grau 2, vértice de grau 3 e
vértice de grau 5.
DEFINIÇÃO VIA TEXTO
• Vamos ver um exemplo para mostrar melhor como definir
dessa forma:

• Em uma escritório, com sete funcionários, decidiu-se fazer


uma pesquisa para avaliar quem deveria ser o coordenador
de produção, como Graça e Breno eram as pessoas mais
velhas na empresa, seu chefe pediu para que elas
nomeassem dois possíveis candidatos ao cargo.
Acreditando que as pessoas escolhidas por elas seriam
amigos em comum das duas, seu chefe decidiu consultar
um rede social, no qual todos seus funcionários fazem
parte e constatou o seguinte:
DEFINIÇÃO VIA TEXTO
• Adriana possui quatro amigos de seu trabalho nessa rede
social, são eles, Breno, Caio, Elen e Graça;
• Bruna possui três amigos, Adriana, Fábio e Graça;
• Caio possui dois amigos, Adriana e Daiana;
• Daiana possui dois amigos, Caio e Elen;
• Elen possui três amigos, Adriana, Daiana e Graça;
• Fábio possui dois amigos, Breno e Graça;
• Graça possui quatro amigos, Adriana, Breno, Elen e Fábio.
DEFINIÇÃO VIA TEXTO
• Analisando essas relações de amizades, quais devem ser as
duas prováveis indicações de Breno e Graça?

- Defina qual o grafo associado a esse exemplo. Defina quais


são seus vértices e suas arestas.
- Faça o diagrama desse grafo.
MUITOS CONCEITOS SOBRE GRAFOS
• Sabemos agora o que é um grafo e vimos como ele pode
ser definido. Vamos ver algumas definições importantes
sobre eles:
• Grafo não-direcionado: Grafo onde podemos "caminhar"
pelas arestas em qualquer sentido.
• Grafo direcionado: Grafo onde cada aresta tem
sentido (como se fossem setas). Esses grafos
também são chamados de DÍGRAFOS. Exemplo ->
MUITOS CONCEITOS SOBRE GRAFOS
• Laço: Uma aresta que começa e termina no mesmo vértice.
• Ordem de um grafo: Quantidade de vértices que esse grafo
possui.
• Tamanho de um grafo: Quantidade de arestas que esse
grafo possui.
• Grafo múltiplo (ou multigrafo): Grafo em que há mais de
uma aresta ligando os dois mesmos vértices (o gráfo do
problema das pontes é um multigrafo).
MUITOS CONCEITOS SOBRE GRAFOS
• Grafo valorado: Grafo onde cada aresta tem um número
associado (pode ser distância, relação entre os vértices, etc)
• Grafo rotulado: Grafo onde cada aresta tem uma rotulação
(o grafo do exemplo via texto é um grafo rotulado)
• Grafo conexo (ou conectado): Existe ao menos uma aresta
ligando quaisquer dois vértices do grafo.
• O grafo ao lado é desconexo (há ao
menos dois vértices sem nenhuma aresta
ligando eles).
EXEMPLO
• Classifique os grafos a seguir e dê ordem e tamanho:
EXEMPLO
PASSEIOS, TRILHAS
(CAMINHOS), CICLOS, ETC
• PASSEIO
Passeio (em inglês walk)é uma sequência alternada de
vértices e arestas, de modo que começa em um vértice e
termina em um vértice (pode ser o mesmo vértice inicial).
Pode-se repetir vértices e arestas

No grafo ao lado, um exemplo de passeio


é o seguinte: A --> F --> D --> B --> C --> B
z v u s s
PASSEIOS, TRILHAS (CAMINHOS),
CICLOS, ETC
• PASSEIO FECHADO
Passeio fechado é um passeio que começa e termina no
mesmo vértice. Um passeio fechado é também chamado de
CIRCUITO.

No grafo ao lado, um exemplo de passeio


fechado é o seguinte:
A --> F --> D --> B --> C --> D --> B --> A
z v u s t u r
TRILHAS (CAMINHOS)
• Trilha (ou caminho) (em inglês path) é um passeio que não
repete arestas.
No grafo ao lado, um exemplo de trilha é o seguinte:
A --> F --> D --> B --> F --> E --> D
z v u y x w

O vértice inicial é chamado de INÍCIO da trilha


e o vértice final é chamado de TÉRMINO da
trilha.
TRILHAS (CAMINHOS)
• O número de arestas de uma determinada trilha é chamada de
COMPRIMENTO.

Na trilha do exemplo anterior:


A --> F --> D --> B --> F --> E --> D
z v u y x w

Seu comprimento é 6. Em geral, uma


trilha tem comprimento, no mínimo
igual a quantidade de vértices, menos um.
TRILHAS (CAMINHOS)
• Uma trilha é chamada de SIMPLES se, além de não repetir
arestas, ela não repete vértices. Uma trilha simples no grafo
abaixo é a seguinte:
• A --> B --> C --> D --> F --> E
r s t v x
TRILHAS (CAMINHOS)
TRILHAS (CAMINHOS)
CICLOS

• Os ciclos são os grafos mais importantes e com


muitas aplicações na vida real. È a junção de uma trilha
com um passeio fechado, ou seja, um ciclo é um passeio
fechado em que não repete arestas.
• Um ciclo simples é um ciclo que não repete vértices nem
arestas.
CICLOS
EXERCÍCIOS

1. Um grafo tem vértices A, B, C, D e arestas A-B / B-C / C-A /


C-D / D-B. A trilha A-B-C-D-B-C-A é um ciclo? É simples?
JUSTIFIQUE.
2. Um grafo tem vértices U, V, X, W e arestas U-X / V-U / X-V
/ X-W / W-U / W-V. Faça uma lista de todos os ciclos
simples desse grafo.
3. Um grafo direcionado tem vértices U, V, X, W e arestas U-X /
V-U / X-V / X-W / W-U / W-V. Faça uma lista de todos
os ciclos desse grafo.
GRAFO EULERIANO
Um grafo é dito ser EULERIANO se existir um ciclo (passeio
que começa e termina no mesmo vértice e não repete
arestas) que passe por TODAS as arestas desse grafo. Esse
ciclo, caso exista, é chamado de CICLO EULERIANO.

Um dado grafo será euleriano se TODOS os vértices desse


grafo tiver grau par (grau: quantidade de arestas que saem
de determinado vértice)
GRAFO EULERIANO
Verifique se os grafos abaixo são eulerianos e justifique:
TRILHA EULERIANA
Nem todo grafo é euleriano, mas muitos grafos são quase
isso. São os chamados grafos semi-eulerianos ou TRILHAS
EULERIANAS.

Uma trilha é dita ser euleriana se existir uma trilha que passe
por todas as arestas, mesmo que não comece e termine no
mesmo vértice.

Um dado grafo conterá uma trilha euleriana se tiver ZERO


OU DOIS vértices desse grafo que tenham grau ímpar
(grau: quantidade de arestas que saem de determinado
vértice)
GRAFO EULERIANO
Revendo os grafos do início da teoria:

Pontes de Konigsberg ->

Grafo Peixe ->


GRAFO EULERIANO
Grafos dos dois exercícios:
EXERCÍCIO
Crie grafos eulerianos com (um grafo para cada item):

- 4 vértices.
- 8 arestas.
- Três vértices com grau 4.
- Um vértice de grau 6 e um vértice de grau 4.
GRAFO EULERIANO
Pergunta importante: Dado um grafo euleriano ou
semieuleriano, existe uma fórmula que permita contar
quantos ciclos eulerianos ou trilhas eulerianas existem nesse
grafo?

Resposta: Infelizmente não.


GRAFO HAMILTONIANO
Uma trilha é dita ser HAMILTONIANA se passar por todos os
VÉRTICES do grafo sem repetir.

Um grafo é dito ser HAMILTONIANO se existe um CICLO


que passe por todos os VÉRTICES do grafo sem repetir.
CAMINHOS MÍNIMOS
• Considere um grafo valorado qualquer (pode ser
direcionado ou não). Como o grafo abaixo:
CAMINHOS MÍNIMOS
• Um problema de CAMINHO MÍNIMO consiste em
determinar, a partir de um vértice, o caminho com menor
custo para qualquer outro vértice.

• Por exemplo, qual o menor caminho entre o vértice A e o


vértice T?
• E do vértice T até o vértice O, passando pelo vértice E?
CAMINHOS MÍNIMOS
• Um problema de CAMINHO MÍNIMO consiste em
determinar, a partir de um vértice, o caminho com menor
custo para qualquer outro vértice.

• Por exemplo, qual o menor caminho entre o vértice A e o


vértice T?
• E do vértice T até o vértice O, passando pelo vértice E?
CAMINHOS MÍNIMOS
• Existem muitos algoritmos usados para se determinar
caminhos mínimos.
• O algoritmo que iremos ver é o algoritmo de Dijkstra,
inspirado no cientista da computação holandês Edsger
Dijkstra.
• Diz a história (provavelmente mentira) que numa manhã de
1956, Dijsktra estava caminhando com sua namorada para
fazer compras. Quando eles ficaram cansados de ficar
caminhando, eles pararam numa cafeteria. Nessa cafeteria,
Dijkstra teve uma epifania: em apenas 20 minutos ele
começou a delaborar o algoritmo que o colocou na história
da computação.
O ALGORITMO DE DIJKSTRA
• O que o algoritmo faz? Suponha que eu quero ir de um
vértice para outro. O algoritmo explicado de uma forma
sucinta:
• 1º) Procura-se o vértice mais próximo do vértice inicial
(chamado de nó inicial).
• 2º) Depois, sucessivamente, procura-se entre os
vértices não visitados aquele com menor distância desde o
nó inicial, seja diretamente ligado a esse nó ou passando
por um percurso já tendo conhecido sua distância.
O ALGORITMO DE DIJKSTRA
• Vamos aplicar esse algoritmo para o grafo mostrado
anteriormente: (achar os caminhos mínimos partindo do
vértice A)
O ALGORITMO DE DIJKSTRA
• Passos:
• 1: Atribua valor zero ao vértice A e infinito aos outros (já que ainda
não sabemos o caminho mínimo)
• 2: "Marque" esse vértice (usualmente se colore de outra cor)
• 3: Estime as distâncias mínimas dos vértices adjacentes ao vértice A.
Escolha aquele com menor custo.
• 4: "Marque" o vértice escolhido (no exemplo é o vértice O ou o vértice
B, fica a sua escolha).
• 5: Re-estime os custos mínimos dos vértices adjacentes a esse vértice
(como soma das arestas).
• 6: Para vértices com duas estimativas de custos mínimos, escolha a
menor delas.
• 7: Repita os passos 3 em diante até ter estimado os custos mínimos
do nó inicial até todos os outros vértices.
O ALGORITMO DE DIJKSTRA
• Exemplo (grafo direcionado)

• Perceba que esse grafo é múltiplo e que tem valores diferentes.


O ALGORITMO DE DIJKSTRA
• Esse algoritmo é muito utilizado em aplicativos de mapas
(Google Maps, Waze, etc).
GOOGLE MAPS
• O que é o Google Maps?
• Google Maps é uma plataforma de mapas online oferecido
pelo Google. Ele fornece imagens de satélite, mapas das
ruas, mapas interativos em 360° (Street View), informações
de trânsito em tempo real (tráfego) e planejamento de rotas
entre dois pontos específicos, de Carro, Ônibus, Avião e a
Pé.
• Um dos grandes motivos de o porquê do Google Maps ser
tão utilizado é que ele sempre te dá o menor caminho
possível entre dois pontos escolhidos.
GOOGLE MAPS
• O que o Google Maps faz para funcionar?
• Ele usa muitos algoritmos que fornecem o caminho
mínimo, entre eles o Algoritmo de Dijkstra.
• Imagine que, escolhendo uma rota começando em um
ponto e terminando em outro, o "mapa" contendo esses
dois pontos seja transformado em um grafo, onde cada rua
é uma aresta e cada cruzamento seja um vértice.
• Cada "aresta" tem um peso específico, que o google maps
considera sendo um misto de: tempo para percorrê-lo,
distância, condição da via, se tem filas, etc.
GOOGLE MAPS (exemplo)
GOOGLE MAPS
• Resumindo, quando você quer ir a algum lugar e usa o google maps
para verificar o caminho menos custoso, o aplicativo:
• 1: Coleta dados de localização dos usuários nas proximidades para
dar detalhes de trânsito atualizados.
• 2: Usa padrões anteriores (de até 13 anos) de trânsito numa mesma
localidade para informar sobre o trânsito em determinado período.
• 3: Verifica a condição atual das vias para sugerir melhor caminho (ele
evita sugerir ruas em má condição).
• 4: Atualiza o trajeto constantemente, podendo te sugerir (ou não) ou
caminho melhor que o atual.
• 5: Utiliza os algoritmos para calcular em tempo real o caminho menos
custoso possível.

• Então, na próxima vez que você for usar o Google Maps para chegar
à determinado destino, você irá se lembrar dos algoritmos por trás
desse aplicativo e como o caminho escolhido por ele é o melhor
caminho possível para você.
ATIVIDADE AVALIATIVA
• Essa atividade avaliativa deve ser feita em duplas ou trios.
• Cada grupo deve:
1. Fazer um RESUMO (digitado) de toda a Teoria dos Grafos
apresentada nos slides (mínimo 2 páginas).
2. Neste resumo deverá ter todos os tópicos mais relevantes
visto em aula, ESPECIALMENTE o Algoritmo de Dijkstra.
3. Resolver o EXERCÍCIO presente no slide seguinte (comum
a todos).
4. Resolver o EXERCÍCIO DE APLICAÇÃO (cada grupo
receberá um).
5. Entregar dia 04/07
ATIVIDADE AVALIATIVA - EXERCÍCIO
•Crie um grafo VALORADO que
contenha 6 vértices, 8 arestas e que
contenha uma TRILHA EULERIANA.

•OBS: Não pode ter dois grupos com o


mesmo grafo!
ATIVIDADE AVALIATIVA - EXERCÍCIO DE
APLICAÇÃO
• Cada grupo receberá um grafo direcionado e
valorado como o abaixo:
• Cada grupo deve
aplicar o algoritmo
de Dijkstra para calcular
o caminho mínimo
partindo de um
vértice escolhido no
exercício.
• (Todos os grafos foram gerados com o auxílio do ChatGPT)

Você também pode gostar