0% acharam este documento útil (0 voto)
43 visualizações7 páginas

Introdução À Teoria Dos Grafos

O documento discute a representação de um torneio de xadrez usando grafos. Ele apresenta um problema de organização de partidas em um torneio e o representa como um grafo. O grafo é decomposto em três subgrafos menores que representam conjuntos de jogadores, resolvendo assim as questões sobre a organização do torneio de forma mais eficiente.

Enviado por

Emily Santos
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
43 visualizações7 páginas

Introdução À Teoria Dos Grafos

O documento discute a representação de um torneio de xadrez usando grafos. Ele apresenta um problema de organização de partidas em um torneio e o representa como um grafo. O grafo é decomposto em três subgrafos menores que representam conjuntos de jogadores, resolvendo assim as questões sobre a organização do torneio de forma mais eficiente.

Enviado por

Emily Santos
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 7

Introdução à Teoria dos Grafos

Conexidade

Em Teoria dos Grafos, determinadas obras possuem destaque.

Introdução à Teoria dos Grafos Em lingua francesa, o livro “Théorie des Graphes: Au-delà des Ponts de
Königsberg”, de Olivier Cogis e Claudine Robert, apresenta inúmeros
temas, como conexidade, árvores geradoras, caminhos mínimos,
coloração, grafos Eulerianos e Hamiltonianos e planaridade, assim
como exemplos.

Instituto Multidisciplinar
Universidade Federal Rural do Rio de Janeiro

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Conexidade Existem vários fatores que podem justificar a utilização de uma


estratégia deste tipo:
Uma técnica de resolução de problemas apresentada em [3] consiste
em: os sub-problemas pode ser de uma natureza mais fácil de resolver
do que o problema inicial,
1. Decompor o problema em sub-problemas; e os dados sobre os quais os sub-problemas devem ser resolvidos
2. Resolver independentemente cada sub-problema; podem ser mais simples de serem tratados do que aqueles do
problema inicial.
3. Construir as soluções do problema inicial através de uma
composição de soluções encontradas para os diferentes A decomposição de um grafo em elementos mais simples pode ser feita
sub-problemas. de várias formas. Como exemplo, na forma de uma cobertura (ou de
uma partição) do grafo por um conjunto de seus sub-grafos, onde em
geral se impõe aos subgrafos algumas propriedades particulares.
Mas existem vários ângulos sob os quais podemos considerar o que
seja a decomposição de um problema e a recomposição de soluções Algumas decomposições podem ser sofisticadas, mas uma possui um
associada. papel principal em teoria dos grafos.

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Exemplo: As partidas não são disputadas simultaneamente, isto é, um jogador


não pode estar envolvido em mais de uma partida por vez.
Consideraremos a situação na qual estamos envolvidos na organização
do último dia de um torneio de xadrez em que se prevê as seguintes E elas possuem um limite de tempo: a cada hora soa um gongo e novas
partidas entre os participantes (exemplo apresentado em [3]): partidas são iniciadas quando são feitas as mudanças de adversários
anunciadas pelos organizadores.
Aurora contra Bernardo Daniel contra Irene
Aurora conta Gustavo Daniel contra Julia Temos as seguintes questões:
Aurora contra Kevin Daniel contra Leonardo
Q1: Podemos ter todos os concorrentes jogando uma primeira partida
Bernardo contra Gustavo Fernando contra Julia
na primeira hora? Senão, qual o maior número de concorrentes que
Bernardo contra Kevin Gustavo contra Kevin podem jogar na primeira hora?
Carlos contra Ernesto Irene contra Julia
Q2: Qual o tamanho máximo de um conjunto de concorrentes que dois
Carlos contra Henrique Irene contra Leonardo
a dois disputarão uma partida.
Daniel contra Fernando Julia contra Leonardo

1
Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Q3: Como organizar o dia de torneio para que ele dure o menor tempo Os jogadores são representados pelos vértices do grafo.
possível?
Cada partida é representada por uma aresta (cujas extremidades são os
vértices que representam os dois jogadores que deverão se enfrentar).
Iremos representar os dados do problema através de um grafo.
As questões apresentadas podem ser traduzidas em termos de grafos.
Aurora
G Leonardo Bernardo
Q’1: Podemos encontrar um conjunto de arestas duas a duas
Kevin Carlos independentes, que cubra todos os vértices do grafo? Senão, devemos
determinar uma cobertura com o máximo número de vértices possível.
Julia Daniel
Escolher duas arestas com um extremo em comum corresponderá a um
Irene Ernesto jogador jogar duas partidas simultaneamente, o que é contrário às regras do
Fernando
torneio. Por outro lado, duas arestas sem extremos comuns representam duas
Henrique
Gustavo partidas que podem ser disputadas simultaneamente.

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Q’2: Qual a ordem máxima de um sub-grafo completo? Considere G1, G2 e G3 os sub-grafos de G induzidos pelos conjuntos de
vértices com as iniciais dos nomes { d, f, i, j, l } , { a, b, g, k } e
Ok.
{ c, e, h }.
Q’3: Determinar uma partição do conjunto de arestas tal que as arestas
de cada classe da partição sejam duas a duas independentes, a Aurora
Leonardo Bernardo
partição devendo ter o menor número de classes possível.
Kevin Carlos
Cada hora do torneio está associada com o conjunto de arestas que
representam os jogos em andamento. Como observado na questão Q’1, tais
Julia
arestas não possuem vértice em comum. Cada aresta do grafo representa Daniel
uma partida entre dois oponentes que se reunirão uma e somente uma vez, Irene
com a proibição de partidas simultâneas. Ernesto
Fernando
Henrique
Gustavo
Uma outra representação do mesmo grafo nos permite ter uma outra
visão. (Ver [3].) G1 G2 G3

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Esta nova representação do grafo G nos mostra que o grafo se Uma simples observação de paridade nos permite responder
particiona em três sub-grafos induzidos G1, G2 e G3. E cada vértice ou imediatamente que no melhor caso sobrará um jogador de G1 e um
aresta de G pertence a um e somente um destes tres sub-grafos. jogador de G3 os quais não jogarão na primeira hora.
Além disso, com a nova representação de G podemos observar E podemos observar que o argumento de paridade se aplica
claramente que um jogador só irá enfrentar um jogador pertencente ao globalmente a todo grafo.
mesmo sub-grafo que ele.
Ao mesmo tempo, será que a condição de paridade é suficiente para
Esta simples constatação simplifica efetivamente o estudo das questões assegurar que podemos sempre cobrir os vértices do grafo por um
apresentadas. conjunto de arestas duas a duas independentes?
Q’1: Um conjunto de arestas duas a duas independentes que cobre Aparentemente, para o exemplo apresentado em [3] é fácil de se
todos os vértices de G, ou que cobre o maior número possível de seus encontrar uma solução na qual todos joguem exceto um jogador de G1 e
vértices, é a união de 3 conjuntos de arestas definidos da mesma forma um jogador de G3.
para G1, G2 e G3 , respectivamente.

2
Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Mas exemplos simples mostram que, em geral, a resposta é negativa. Q’2: Claramente, a solução global é o máximo das soluções calculadas
(grafos estrela, por exemplo). independentemente para cada um dos sub-grafos G1, G2 e G3.
Algoritmos para o problema de emparelhamento em grafos são O tamanho da maior clique em G é 4.
apresentados em [1] e [2].

G1 G2 Aurora G3 G1 G2 Aurora G3
Leonardo Bernardo Leonardo Bernardo
Kevin Carlos Kevin Carlos

Julia Julia
Daniel Daniel
Irene Irene
Ernesto Ernesto
Fernando Fernando
Gustavo Henrique Gustavo Henrique

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Q’3: Para 1 ≤ i < j ≤ 3, qualquer partida de Gi pode ser disputada em A solução com duração de 4 horas apresentada na figura é ótima visto
paralelo com qualquer partida de Gj. que dois dos jogadores devem disputar cada uma das 4 partidas no
total.
Disto resulta que qualquer organização das partidas de Gi pode ser
realizada em paralelo com qualquer organização das partidas de Gj. Como encontrar uma solução ótima no caso geral é um problema de
coloração de arestas.
G1 G2 Aurora G3
Leonardo Bernardo Para cada uma destas questões, o particionamento do grafo em sub-
Kevin Carlos grafos tem se revelado uma excelente forma de decomposição.
Tivemos:
Julia
Daniel
a recomposição das soluções parciais em uma solução global de
Irene forma simples, ou elementar;
Ernesto os sub-problemas consistidos em resolver para os sub-grafos o
Fernando
Gustavo Henrique mesmo problema proposto para o grafo inicial.

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Caminhos e ciclos Em um caminho de comprimento não nulo, existem dois vértices de


grau 1, chamados extremidades, sendo todos os outros de grau 2.
Caminhos e ciclos são objetos básicos em teoria dos grafos. Dois vértices de um grafo G são ditos ligados em G por um caminho se
Por convenção, o comprimento de um caminho em um grafo G é igual existe um caminho de G do qual eles são as extremidades.
ao seu número de arestas. (Podemos ter um caminho com apenas um
vértice sendo, neste caso, seu comprimento nulo.) O comprimento de um ciclo é igual ao seu número de arestas e igual ao
seu número de vértices.
O conjunto de caminhos de um grafo é não vazio, visto que o grafo
contém ao menos um vértice e portanto ao menos um caminho de A retirada de uma aresta de um ciclo cria um caminho de comprimento
comprimento nulo. ao menos 2. A inclusão de uma aresta unindo as extremidades de um
caminho de comprimento ao menos 2 cria um ciclo.
Este conjunto possui ao menos um caminho de comprimento máximo, e
este comprimento é estritamente inferior à ordem do grafo. Em um ciclo todos os vértices possuem grau 2. Mas um grafo tal que
todos os vértices possuam grau 2 não é necessariamente um ciclo.

3
Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Teorema 3 Um grafo G é bipartido se e somente se não possui ciclos Esta relação é:


de comprimento ímpar.
Reflexiva, visto que um vértice é um caminho de comprimento 0.
Uma demonstração do Teorema é apresentada em [3].
Simétrica, pela definição de caminho.
Transitiva, visto que se C é um caminho entre x e y, e C’ é um
Componentes Conexas
caminho entre y e z então podemos obter um caminho entre x e z.
Para a formalização da decomposição utilizada no exemplo visto [3], Chamaremos de classe de conexidade de um vértice x sua classe de
consideremos um grafo G = (V, E). equivalência para esta relação.
Definimos sobre o conjunto de vértices V a relação binária de Sejam V1, ... , Vk as classes de conexidade dos vértices de um grafo G.
conexidade, denotada por R, como segue:
Os subgrafos G1, ... , Gk respectivamente induzidos por V1, ... , Vk são
xRy se e somente se existe em G um caminho que conecta x e y. ditos as componentes conexas do grafo G.

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Propriedades Sobre as questões apresentadas no problema:


Q’1: Todo emparelhamento de um grafo é um conjunto de
Uma componente conexa sempre possui ao menos um vértice.
emparelhamentos de suas componentes conexas.
Duas componentes conexas distintas são disjuntas (i.e. elas não
Q’2: Os subgrafos completos de um grafo são os subgrafos completos
possuem nenhum vértice em comum e não existe aresta que conecte
de suas componentes conexas.
uma componente conexa com outra).
Q’3: O índice cromático de um grafo é o máximo dos índices
O grafo é composto da união das componentes conexas.
cromáticos de suas componentes conexas.
O conjunto de vértices de uma componente conexa C é a classe de
conexidade de todos eles. A importância da decomposição é clara.
E alguns exemplos mostram que encontrar tal decomposição pode
O exemplo visto mostra a importância de uma decomposição natural de
requerer um certo trabalho.
um grafo para o estudo de certos problemas.

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

O seguinte algoritmo para o cálculo da classe de conexidade de um Propriedades


dado vértice em um grafo é apresentado em [3].
Condição necessária para que um grafo seja acíclico:
ClasseDeConexidadePorVizinhanca (G, a) Todo grafo sem ciclos com pelo menos uma aresta possui pelo menos
dois vértices de grau 1.
Marque a em azul
Condição suficiente para um grafo seja cíclico:
Enquanto existirem vértices azuis faça
Todo grafo de ordem n com pelo menos n arestas possui pelo menos
Escolha um vértice y marcado em azul um ciclo.
Marque em azul todos os vizinhos não marcados de y
Vértices de grau 1 , conexidade e ciclicidade:
Marque y com vermelho
Seja G um grafo com um vértice x de grau 1, e seja G’ = G – x. Então
Retorne o conjunto dos vértices marcados
(i)G é conexo se e somente se G’ é conexo;
(ii)G é acíclico se e somente se G’ é acíclico.

4
Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Lema 1 Se existem dois caminhos distintos unindo dois vértices x e y A remoção do vértice a decompõe G em 4 componentes conexas.
de um grafo G, então este grafo admite um ciclo. (Ver [3].)
Observamos que todo grafo conexo com pelo menos uma aresta possui
Um ponto de articulação de um grafo conexo é um vértice cuja pelo menos dois vértices que não são pontos de articulação (ver [3]).
remoção desconecta o grafo. Um ponto de articulação de um grafo é um
ponto de articulação de uma de suas componentes conexas. Um istmo (ou ponte) de um grafo conexo é uma aresta cuja remoção
desconecta o grafo. Um istmo de um grafo é um istmo de uma de suas
Pontos de componentes conexas.
G articulação : a e d
Temos o seguinte lema.
Lema 2 Seja e = (x, y) uma aresta de um grafo conexo. As três
d seguintes propriedades são equivalentes:
a (i) e é um istmo;
(ii) (x, y) é o único caminho de G conectando x e y;

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

(iii) e não pertence a qualquer ciclo de G. Seja G um grafo conexo e sejam a e b dois vértices de G não
adjacentes.
Adicionalmente, se e é um istmo de G, então o grafo G – e possui
exatamente duas componentes conexas, e as extremidades da aresta e Dizemos que dois caminhos de G de extremidades a e b são
não pertencem à mesma componente conexa de G – e. disjuntos interiormente quando a e b são seus únicos vértices
comuns.
Em um grafo conexo, podemos querer saber o seu grau de
Denotamos por p o maior número de caminhos em G de
conectividade.
extremidades a e b mutuamente disjuntos interiormente.
Por exemplo, dados dois nós a e b de uma rede de comunicação,
Denotamos por q o menor número de vértices, diferentes de a e b,
quantos são os caminhos que conectam tais nós na rede?
cuja remoção de G desconecta a de b.
Ou quantos nós da rede devem falhar para que a rede não assegure
De forma geral, temos necessariamente p ≤ q (é necessário retirar
mais sua conexão?
pelo menos os p caminhos mutuamente disjuntos).

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Teorema 4 [Menger] Em um grafo conexo G com vértices a e b Distâncias em Grafos


não adjacentes, o maior número de caminhos em G de extremidades
a e b e mutuamente disjuntos interiormente é igual ao menor número Considere uma cidade com uma malha de 12 linhas de bonde.
de vértices, diferentes de a e b, que devem ser removidos de G para Considere que sabemos o tempo médio de viagem para cada uma das
se desconectar a e b. linhas. Adicionalmente, considere que os tempos médios são os
mesmos em cada sentido da viagem (ver [3]).

G 4
5
2
2 a 3
4 3
3
2
3 1

5
Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Desejamos calcular o menor tempo médio de uma viagem partindo de Podemos denotar esta distância por d(x, y) ou dG(x, y).
a para as outras estações.
O valor da maior distância separando dois vértices de G é chamado
Neste caso, podemos resolver facilmente o problema pela simplicidade diâmetro do grafo G.
do grafo de exemplo.
Observamos que, para todo vértice x, y, e z do grafo de exemplo G ,
Mas em situações reais, podemos ter grafos muito mais complexos, temos
como por exemplo, na representação das linhas de metro de uma
cidade com 11 milhões de habitantes. (i) d(x, y) = 0 sse x = y;
(ii) d(x, y) = d(y, x);
Desta forma, é interessante termos um algoritmo que nos permita (iii) d(x, y) ≤ d(x, z) + d(z, y).
automatizar o procedimento de calculo.
Se o grafo não for conexo, podemos considerar infinita a distância entre
No algoritmo de busca em largura, consideramos a distância entre dois dois vértices que não pertençam a uma mesma componente conexa de
vértices x e y de um grafo conexo G como o comprimento mínimo G.
de um caminho de G possuindo estes dois vértices como extremidade.

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Dizemos que um grafo G = ( V, E ) é ponderado (em arestas) quando Isto é,


cada aresta possui um peso associado a ela, dado por uma função.
dG,v(x, y) = min { v(P) | P é um caminho de G com extremidades x e y }.
Denotaremos por v(e) o valor de uma aresta e.
Para a apresentação do algoritmo de Dijkstra, consideraremos os
O valor de um conjunto de arestas é a soma dos valores das arestas valores utilizados como reais não-negativos, de forma que se P’ é um
do conjunto. sub-caminho de um caminho P , então v(P’) ≤ v(P).
O algoritmo de Dijkstra partindo de um vértice a de um grafo, calcula
De forma análoga, o valor v(P) de um caminho P é a soma dos valores
as distâncias dos outros vértices a este vértice.
de cada uma de suas arestas.
O algoritmo de Dijkstra aplicado a um grafo ponderado G com os
A distância entre dois vértices de um grafo ponderado é o valor mínimo pesos de suas arestas dados por uma função positiva ou nula v ,
de um caminho do grafo possuindo estes dois vértices como considerando-se um vértice a de G, retorna uma função d tal que,
extremidades. para todo vértice x de G , tem-se d(x) = dG,v(a, x).

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Observações:
Algoritmo: Dijkstra(G, a)
1. O conjunto dos vértices marcados induzem um subgrafo conexo de G
Para todo vértice x de G faça
contendo o vértice a, e a vizinhança exterior em G é o conjunto dos
d(x) = ∞
vértices t não marcados para os quais temos d(t) ≠ ∞.
d(a) = 0
Para todos os vizinhos x de a faça 2. Para todo vértice marcado t , temos
d(x) = v(a, x) d(t) = dG,v(a, t).
Marque o vértice a
Enquanto existirem vértices t não marcados tq d(t) ≠ ∞ faça No início de uma iteração, os vértices já marcados formam um
Dentre os vértices não marcados, escolha x que minimize d subconjunto da classe de conexidade de a em G.
Para todo vizinho não marcado y do vértice x faça
Suas distâncias ao vértice a já foram atribuídas e são o valor de d.
d(y) = min { d(y) , d(x) + v(x, y) }
Marque o vértice x Os vértices t não marcados que possuem um valor d(t) finito formam
Retorne a função d a vizinhança exterior em G do conjunto dos vértices marcados.

6
Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

Uma ilustração de uma execução do algoritmo de Dijkstra é mostrada Seus valores d(t) representam um limite superior para suas distâncias
a seguir (ver [3]). ao vértice a.
Vértices com d infinito O valor d(t) é o valor de um caminho de G que liga t a a unicamente
por vértices já marcados, escolhido dentre os mais curtos possíveis.
Vértices com d finito
Podem existir em G caminhos mais curtos que ligam t a a, contudo
passando por pelo menos um vértice ainda não marcado.
Os vértices w não marcados e com um valor d(w) infinito são os
vértices ainda não examinados.
Tais vértices podem não fazer parte da classe de conexidade de a.
Vértices marcados Mas se eles fazem parte, então suas distâncias ao vértice a são su-
periores ou iguais a aquelas dos vértices t marcados e a aquela de x.

Introdução à Teoria dos Grafos Introdução à Teoria dos Grafos

No algoritmo, os vértices são marcados em uma ordem de distância Dijkstra ( G, w, s )


crescente. 1. Inicializacao(G,s)
2. S = ∅ Q = V(G)
3. enquanto Q = ∅
Estratégias gulosas nem sempre produzem resultados ótimos em geral. 4. u = Extrair-Minimo(Q)
5. S = S ∪ u
Mas em [1] é mostrado que o algoritmo de Dijkstra de fato calcula os 6. para cada v ∈ Adj[u]
caminhos mais curtos. 7. Relaxar(u,v,w)

Por [1], podemos ter uma implementação do algoritmo em tempo Inicializacao ( G, s )


1. para cada v ∈ V(G)
O(V lg V + E).
2. d[v] = ∞
3. pred[v] = NULL
Esta complexidade é obtida com a utilização de heaps de Fibonacci. 4. d[s] = 0
A descrição do algoritmo em [1], para grafos orientados, é apresentada Relaxar ( u, v, w )
a seguir. 1. se d[v] > d[u] + w(u,v)
2. d[v] = d[u] + w(u,v)
3. pred[v] = u

Introdução à Teoria dos Grafos Referências

Outros algoritmos para problemas de caminho mínimo (incluindo todos


os pares de vértices) são descritos em [1]. [1] T.H. Cormen, C.E. Leiserson, R.L. Rivest, Introduction to Algorithms, MIT Press, 1990.

[2] A. Gibbons, “Algorithmic Graph Theory”, Cambridge University Press, 1985.


Dentre os quais podemos citar:
[3] O. Cogis, C. Robert. Théorie des Graphes – Au-delà des Ponts de Königsberg –
Floyd-Warshall, Problèmes, Théorèmes, Algorithmes, Vuibert, 2003.

Bellman-Ford, e
Johnson.

Você também pode gostar