Você está na página 1de 10

Teoria dos grafos

Origem: Wikipdia, a enciclopdia livre.

Este artigo ou se(c)o cita fontes confiveis e independentes, mas que no


cobrem todo o contedo (desde Agosto de 2013). Por favor, adicione mais referncias
e insira-as corretamente no texto ou no rodap. Material sem fontes poder
serremovido.
Encontre fontes: Google (notcias, livros e acadmico)
Foi proposta a fuso deste artigo ou se(c)o com Grafo. Pode-se discutir o
procedimento aqui. (desde julho de 2013)
Esta pgina precisa ser reciclada de acordo com o livro de estilo (desde fevereiro de
2013).

Sinta-se livre para edit-la para que esta possa atingir um nvel de qualidade superior.

Grafo com 4 vrtices e 6 arestas. um grafo completo, conexo e planar.

A teoria dos grafos um ramo da matemtica que estuda as relaes entre os objetos
de um determinado conjunto. Para tal so empregadas estruturas chamadas de grafos,
G(V,A), onde V um conjunto no vazio de objetos denominados vrtices e A um
conjunto de pares no ordenados de V, chamado arestas.
Dependendo da aplicao, arestas podem ou no ter direo, pode ser permitido ou no
arestas ligarem um vrtice a ele prprio e vrtices e/ou arestas podem ter um peso
(numrico) associado. Se as arestas tm uma direo associada (indicada por uma seta na
representao grfica) temos um grafo direcionado, grafo orientado ou digrafo. Um grafo
com um nico vrtice e sem arestas conhecido como o grafo trivial.

Estruturas que podem ser representadas por grafos esto em toda parte e muitos
problemas de interesse prtico podem ser formulados como questes sobre certos grafos.
Por exemplo, a estrutura de ligaes da Wikipdia pode ser representada por um dgrafo:
os vrtices so os artigos da Wikipdia e existe uma aresta do artigo A para o artigo B se
e somente se A contm um link para B. Dgrafos so tambm usados para
representar mquinas de estado finito. O desenvolvimento de algoritmos para manipular
grafos um importante tema da cincia da computao.

ndice
[esconder]

1 Histrico

2 Definies de grafos e digrafos

3 Glossrio dos conceitos bsicos de teoria dos grafos

3.1 Representao grfica (layout do grafo)


3.2 Tipos de grafos
4 Problemas que envolvem grafos

5 Algoritmos importantes

6 Generalizaes

7 Referncias

8 Ligaes externas

8.1 Em ingls
8.2 Em portugus
8.3 Ferramentas de grafos populares

9 Ver tambm

Histrico[editar | editar cdigo-fonte]


O artigo de Leonhard Euler, publicado em 1736, sobre o problema das sete pontes de
Knigsberg, considerado o primeiro resultado da teoria dos grafos.1 tambm
considerado um dos primeiros resultados topolgicos na geometria; isto , no
dependente de quaisquer medidas. Isso ilustra a profunda conexo entre a teoria dos
grafos etopologia.

Definies de grafos e digrafos[editar | editar cdigo-fonte]


Na literatura, as definies bsicas da teoria dos grafos variam bastante. Aqui esto as
convenes usadas nesta enciclopdia.
Um grafo direcionado (tambm chamado digrafo ou quiver) consiste de

um conjunto V de vrtices,
um conjunto E de arestas e
mapas s, t : E V, onde s(e) a fonte e t(e) o alvo da aresta direcionada e.
Um grafo no direcionado (ou simplesmente grafo) dado por

um conjunto V de vrtices,
um conjunto E de arestas e
uma funo w : E P(V) que associa a cada aresta um subconjunto de dois ou de um
elemento de V, interpretado como os pontos terminais da aresta.
Em um grafo ou digrafo com pesos, uma funo adicional E R associa um valor a cada
aresta, o que pode ser considerado seu "custo"; tais grafos surgem em problemas de rota
tima tais como o problema do caixeiro viajante.

Glossrio dos conceitos bsicos de teoria dos


grafos[editar | editar cdigo-fonte]
Representao grfica (layout do grafo)[editar | editar
cdigo-fonte]

Um grafo com 6 vrtices e 7 arestas

Os grafos so geralmente representados graficamente da seguinte maneira: desenhado


um crculo para cada vrtice, e para cada aresta desenhado um arco conectando suas
extremidades. Se o grafo for direcionado, seu sentido indicado na aresta por uma seta.
Note que essa representao grfica (o layout) no deve ser confundida com o grafo em si
(a estrutura abstrata, no-grfica). Vrios diferentes layouts podem corresponder ao
mesmo grafo.2 O que importa quais vrtices esto conectados entre si por quantas
arestas.
O grafo de exemplo exibido direita um grafo simples com o conjunto de vrtices V =
{1, 2, 3, 4, 5, 6} e um conjunto de arestas E = { {1,2}, {1,5}, {2,3}, {2,5}, {3,4}, {4,5},
{4,6} } (com o mapeamento w sendo a identidade).
Uma aresta conecta dois vrtices; esses dois vrtices so ditos como incidentes
aresta. A valncia (ou grau) de um vrtice o nmero de arestas incidentes a ele, com
loops contados duas vezes. No grafo de exemplo os vrtices 1 e 3 possuem uma valncia
de 2, os vrtices 2, 4 e 5 tm a valncia de 3 e o vrtice 6 tem a valncia de 1. Se E
finito, ento a valncia total dos vrtices o dobro do nmero de arestas. Em um dgrafo,
distingue-se o grau de sada (o nmero de arestas saindo de um vrtice) e o grau de
entrada (o nmero de arestas entrando em um vrtice). O grau de um vrtice igual
soma dos graus de sada e de entrada.
Dois vrtices so considerados adjacentes se uma aresta existe entre eles. No grafo
acima, os vrtices 1 e 2 so adjacentes, mas os vrtices 2 e 4 no so. O conjunto
devizinhos de um vrtice consiste de todos os vrtices adjacentes a ele. No grafoexemplo, o vrtice 1 possui 2 vizinhos: vrtice 2 e vrtice 5. Para um grafo simples, o
nmero de vizinhos de um vrtice igual sua valncia.
Na computao, um grafo finito direcionado ou no-direcionado (com,
digamos, n vrtices) geralmente representado por sua matriz de adjacncia:

uma matriz n-por-ncujo valor na linha i e coluna j fornece o nmero de arestas do i-simo
ao j-simo vrtices.
Se for possvel estabelecer um caminho de qualquer vrtice para qualquer outro vrtice
de um grafo, diz-se que o grafo conexo. Se for sempre possvel estabelecer um caminho
de qualquer vrtice para qualquer outro vrtice mesmo depois de remover k-1 vrtices,
ento diz-se que o grafo est k-conexo. Note que um grafo est k-conexo se, e somente
se, contm k caminhos independentes entre qualquer par de vrtices. O grafo de exemplo
acima conexo (e portanto 1-conexo), mas no 2-conexo.
Em um grafo genrico G, o corte associado a um conjunto X de vrtices o conjunto de
todas as arestas que tm uma ponta em X e outra em V(G) - X, onde V(G) o conjunto de
todos os vrtices pertencentes ao grafo G.

Tipos de grafos[editar | editar cdigo-fonte]


Grafo simples um grafo no direcionado, sem laos e que existe no mximo uma
aresta entre quaisquer dois vrtices (sem arestas paralelas). No grafo de exemplo, (1, 2,
5, 1, 2, 3) um caminho com comprimento 5, e (5, 2, 1) um caminho simples de
comprimento 2.

Grafo completo o grafo simples em que, para cada vrtice do grafo, existe uma
aresta conectando este vrtice a cada um dos demais. Ou seja, todos os vrtices do grafo
possuem mesmo grau. O grafo completo de n vrtices frequentemente denotado
por Kn. Ele tem n(n-1)/2 arestas (correspondendo a todas as possveis escolhas de pares
de vrtices).

Grafo nulo o grafo cujo conjunto de vrtices vazio.


Grafo vazio o grafo cujo conjunto de arestas vazio.
Grafo trivial o grafo que possui apenas um vrtice e nenhuma aresta.
Grafo regular um grafo em que todos os vrtices tem o mesmo grau.
Multigrafo um grafo que permite mltiplas arestas ligando os mesmos vrtices
(arestas paralelas).

Lao (loop) num grafo ou num digrafo uma aresta e em E cujas terminaes esto no
mesmo vrtice.

Pseudografo um grafo que contm arestas paralelas e laos.


Ciclo (ou circuito) um caminho que comea e acaba com o mesmo vrtice. Ciclos de
comprimento 1 so laos. No grafo de exemplo, (1, 2, 3, 4, 5, 2, 1) um ciclo de

comprimento 6. Um ciclo simples um ciclo que tem um comprimento pelo menos de 3


e no qual o vrtice inicial s aparece mais uma vez, como vrtice final, e os outros
vrtices aparecem s uma vez. No grafo acima, (1, 5, 2, 1) um ciclo simples. Um grafo
chama-se acclico se no contm ciclos simples.

Ponto de articulao ou Vrtice de corte um vrtice cuja remoo desliga um


grafo. Uma ponte uma aresta cuja remoo desliga um grafo. Um componente
biconectado um conjunto mximo de arestas tal que qualquer par de arestas do
conjunto fazem parte de um ciclo simples comum. O contorno de um grafo o
comprimento do ciclo simples mais curto no grafo. O contorno de um grafo acclico , por
definio, infinito.

rvore um grafo simples acclico e conexo. s vezes, um vrtice da rvore distinto e


chamado de raiz. As rvores so muito usadas como estruturas de dados em informtica
(veja estrutura de dados em rvore).

Floresta um conjunto de rvores; equivalentemente a uma floresta, em algum grafo


acclico.

Subgrafo de um grafo G um grafo cujo conjunto dos vrtices um subconjunto do


conjunto de vrtices G, cujo conjunto de arestas um subconjunto do conjunto de arestas
de G, e cuja funo w uma restrio da funo de G

Subgrafo gerador aquele obtido pela remoo de uma ou mais arestas de um outro
grafo, dizemos ento que este novo grafo obtido gerador do primeiro,

Subgrafo induzido obtido pela remoo de vrtices e consequente das arestas


relacionadas com ele de um outro grafo, dizemos que este novo grafo um grafo induzido
do original.

Grafo parcial de um grafo G um subgrafo com o mesmo conjunto de vrtices que G.


Uma rvore parcial um grafo parcial que rvore. Todo grafo tem pelo menos uma
rvore parcial.

Clique em um grafo um subgrafo que tambm um grafo completo. No grafo do

exemplo acima, os vrtices 1, 2 e 5 formam um clique.

Conjunto independente em um grafo um conjunto de vrtices no adjacentes entre


si. No exemplo acima, os vrtices 1, 3 e 6 formam um conjunto independente e 3, 5 e 6
so outro conjunto independente.

Grafo planar aquele que pode ser representado em um plano sem qualquer
interseco entre arestas. O grafo do exemplo planar; o grafo completo de n vertices,
para n> 4, no planar.

Caminho uma sequncia de vrtices tal que de cada um dos vrtices existe uma
aresta para o vrtice seguinte. Um caminho chamado simples se nenhum dos vrtices
no caminho se repete. O comprimento do caminho o nmero de arestas que o
caminho usa, contando-se arestas mltiplas vezes. O custo de um caminhonum grafo
balanceado a soma dos custos das arestas atravessadas. Dois caminhos
so independentes se no tiverem nenhum vrtice em comum, exceto o primeiro e o
ltimo.

Caminho euleriano em um grafo o caminho que usa cada aresta exatamente uma
vez. Se tal caminho existir, o grafo chamado traversvel. Um ciclo euleriano um
ciclo que usa cada aresta exatamente uma vez.

Caminho hamiltoniano em um grafo o caminho que visita cada vrtice exatamente


uma vez. Um ciclo hamiltoniano um ciclo que visita cada vrtice uma s vez. O grafo
do exemplo contm um caminho hamiltoniano. Enquanto determinar se um dado grafo
contm um caminho ou ciclo euleriano trivial, o mesmo problema para caminhos e ciclos
hamiltonianos extremamente rduo.

Lema do aperto de mos diz que se os convidados de uma festa apertarem as mos
quando se encontrarem pela primeira vez, o nmero de convidados que apertam a mo
um nmero mpar de vezes par. Tambm em grafos no direcionados a soma dos graus
de todos os vrtices igual ao dobro do nmero de arestas.

Grafo bipartido o grafo cujos vrtices podem ser divididos em dois conjuntos, nos

quais no h arestas entre vrtices de um mesmo conjunto. Para um grafo ser bipartido
ele no pode conter circuitos de comprimento mpar.
1.Se um grafo G bipartido, todo o circuito de G possui comprimento par.Sejam
V1 e V2 os dois conjuntos em que, de acordo com a definio de grafo bipartido, se
particiona V(G). Toda a aresta de G conecta um vrtice em V1 com outro em V2. Assim
sendo, se X for um vrtice de V1, para voltar a esse vrtice ter de se ir a V2 e voltar a
V1 um nmero indeterminado de vezes, e de cada vez sero percorridas duas arestas,
uma de um vrtice em V1 para um vrtice em V2 e outra de um vrtice em V2 para um
vrtice em V1. Logo, o nmero de arestas a percorrer ser par, ou seja, o comprimento do
circuito par.
2.Se todo o circuito de um grafo G possui comprimento par, ento o grafo
bipartido.Seja G um grafo em que todo o circuito tem comprimento par, e seja X um
vrtice de G. Denotemos por V1 o conjunto formado por X e por todos os vrtices cuja
distncia a X par. Seja V2 = V(G)\V1 (isto , o conjunto formado pelos vrtices de G que
no pertencem a V1). Pretende mostrar-se que no existe qualquer aresta que conecte
vrtices de V1 ou vrtices de V2. Suponhamos a existncia de tal aresta, isto ,
suponhamos a existncia de dois vrtices em V1 (ou V2), digamos Xi e Xj, conectados por
uma aresta. Ora existe j um caminho de comprimento par entre Xi e Xj, j que existem
caminhos, ambos de comprimento par (ou mpar, no caso de Xi e Xj pertencerem a V2),
entre Xi e X e entre X e Xj. Se a esse caminho juntarmos a aresta {Xi;Xj} obtemos um
circuito de comprimento mpar o que contraria a hiptese de apenas existirem circuitos de
comprimento par.

Grafo bipartido completo o grafo bipartido, cujo qualquer vrtice do primeiro


conjunto adjacente a todos vrtices do segundo conjunto

Grafo k-partido ou grafo de k-colorao um grafo cujos vrtices podem ser


particionados em k conjuntos disjuntos, nos quais no h arestas entre vrtices de um
mesmo conjunto. Um grafo 2-partido o mesmo que grafo bipartido.

Emparelhamento de grafos consiste em partir o grafo em conjuntos de vrtices a qual


no compartilham nenhuma aresta entre eles.

Teorema das quatro cores baseado no problema das cores necessrias para se
colorir um mapa sem que os pases vizinhos compartilhem da mesma cor. Transformando
o mapa em um grafo pode-se provar que pode-se representar qualquer mapa (um grafo
planar) com apenas 4 cores (4 parties).
Percurso rvores:
1. possvel percorrer de modo sistemtico todos os vrtices e arestas do grafo. O grafo
pode ser dirigido ou no.
2.O percurso em rvores o processo de visitar cada n da rvore exatamente uma vez.
3.O percurso pode ser interpretado como colocar todos os ns em uma linha, no existe
uma ordem para ser seguida.
4.Existem n percursos diferentes, quase todos caticos.
5.Os bsicos so percurso em profundidade e percurso em largura
6.Fila: busca em largura
7.Pilha: busca em profundidade

Busca em extenso ou largura: (Breadth-First Search ou BFS). A propriedade especial


est no fato de a rvore no possuir ciclos: dados dois vrtices quaisquer, existe
exatamente 1 caminho entre eles. Um percurso em extenso visitar cada n comeando
do menor nvel e move-se para os nveis mais altos nvel aps nvel, visitando cada n da
esquerda para a direita. Sua implementao direta quando uma fila utilizada. Depois
que um n visitado, seus filhos, se houver algum, so colocados no final da fila e o n no
incio da fila visitado. Assim, os ns do nvel n+1 sero visitados somente depois de ter
visitados todos os ns do nvel n. Computa a menor distncia para todos os vrtices
alcanveis. O sub-grafo contendo os caminhos percorridos chamado de breadth-first
tree.

Busca em profundidade (Depth-first search ou DFS). Um algoritmo de busca em

profundidade realiza uma busca no-informada que progride atravs da expanso do


primeiro n filho da rvore de busca, e se aprofunda cada vez mais, at que o alvo da
busca seja encontrado ou at que ele se depare com um n que no possui filhos (n
folha). Ento a busca retrocede (backtrack) e comea no prximo n. Numa
implementao no-recursiva, todos os ns expandidos recentemente so adicionados a
uma pilha, para realizar a explorao. A complexidade espacial de um algoritmo de busca
em profundidade muito menor que a de um algoritmo de busca em largura. A
complexidade temporal de ambos algoritmos so proporcionais ao nmero de vrtices
somados ao nmero de arestas dos grafos aos quais eles atravessam. Quando ocorrem
buscas em grafos muito grandes, que no podem ser armazenadas completamente na
memria, a busca em profundidade no termina, em casos onde o comprimento de um
caminho numa rvore de busca infinito. O simples artifcio de lembrar quais ns j
foram visitados no funciona, porque pode no haver memria suficiente. Isso pode ser
resolvido estabelecendo-se um limite de aumento na profundidade da rvore.