Você está na página 1de 11

Universidade Federal da Bahia Instituto de Matemtica Departamento de Cincia da Computao

NOTAS DE AULA Texto 1 MAT156 - Introduo Teoria dos Grafos

Profa. Fabola Gonalves Pereira Greve


Estas notas de aula foram gentilmente elaboradas pelo aluno Jorge Leite Jr. no semestre 2003.1, a partir das aulas expositivas ministradas pela profa Fabola Greve.

1.0 Histrico 1736 - Problema das Pontes de Konisbergs (Euler) Origem da teoria dos grafos 1850 - Problema das Quatro Cores (De Morgan) Qual o nmero mnimo de cores para se colorir um mapa. 1859 - Problema do Ciclo Hamiltoniano (Hamilton) possvel realizar um caminho no grafo, de tal forma a percorrer todos os vrtices uma nica vez e voltar ao ponto de partida ? 1940 - Utilizao em Pesquisa Operacional Impulsionada pelas pesquisas militares 1960 - Uso em Informtica Informtica proporciona avano em Teoria dos grafos, atravs da resoluo de problemas computacionalmente. Teoria dos Grafos aplicada para resolver diversos problemas em Informtica (redes, compiladores, banco de dados, engenharia de software, etc.) 2.0 Definio Abstrao matemtica que modela situaes aonde podemos identificar objetos chamados vrtices e relacionamento chamados arestas.

Grafo: Um grafo G (V,E) um conjunto V de vrtices e uma famlia E de pares no ordenados de elementos de V.

Exemplo.: V = { u,v,x,w} E = { (u,v),(u,x),(v,x),(x,w)} Temos que u e x so extremos da aresta (u,x) A aresta (u,x) incide em u e x, ou seja liga ou une u a x. |V| = n (nmero de vrtices do conjunto) E = { (u,v),(v,u),(x,u),(u,x),(v,x),(x,w),(w,w), (w,w)} |E| = m ((nmero de arestas do conjunto) Dois vrtices so adjacentes se existe uma aresta que os une. Duas arestas so adjacentes se incidem num mesmo vrtice.

Grafo simples: G(V,E) simples se E um conjunto de pares no-ordenados de elementos distintos de vrtices. Dgrafo ou Grafo Orientado: D(V,A) um conjunto finito no-vazio de V e A uma famlia de pares ordenados de elementos de vrtices. A dito conjunto de arcos ou de arestas. Ex.: (u,v) = arco de u para v

Grafo orientado simples um dgrafo sem laos e sem arestas mltiplas.

Subgrafo : Subgrafo de G um grafo H em que todos os vrtices V(H) pertencem a V(G) e todas as suas arestas E(H) pertencem a E(G). H G ( H subgrafo de G). Quando H G dizemos que H subgrafo prprio. Grau de vrtice: o nmero arestas de g(v) que incidem no vrtice.

g(w)=1, g(x) =2, g(v) = 4 Obs: a incidncia de um loop vale 2. Um vrtice isolado tem G(a)=0 (zero) Gin(V) a quantidade de arestas que entram no vrtice V. Gout (V) a quantidade de arestas que saem do vrtice V. i=1,n g(vi) = 2 * |E| ou seja sempre par. O somatrio dos graus dos vrtices de um grafo sempre par. Lema do aperto de mos (Handshaking Lema). Se todos se do as mos, o nmero total de mos apertadas par. Modelagem em grafos: - Vrtices = pessoas - Aperto de mos = arestas - Grau = mos

Corolrio: a quantidade de vrtices de grau impar par. |Vg impar| = par

3.0 Tipos de Grafos 1) Grafo Nulo, Nn ,


onde |E| =

2) Grafo Completo Kn ,

Todos os vrtices se relacionam entre si

E (Kn) = (n (n-1)) / 2 3) Grafo regular (K- Regular) todos os vrtices tm o mesmo grau g (v) = k a) Kn regular

4) O Grafo circuito um grafo simples 2-regular, Cn 5) Grafo Bipartite ou Bipatido: um grafo G(V,E) bipartite quando o seu conjunto de vrtices V puder ser particionado em dois subconjuntos V1e V2, tal que toda aresta de G une um vrtice de V1 a outro vrtice de V2.. G bipartite se G bicolorvel, ou seja, podemos colorir os vrtices de G com 2 cores, de tal forma que vrtices adjacentes tenham cores distintas.

Todo G Bipartite bicolorvel e vice versa Grafo Bipartite Completo = G (V1, V2) simples completo se todo vrtice de V1 se relaciona com V2 .

Os grafos k2,3 e k3,3 so bipartite completos


Se V1 = r e V2 = s, ento E (G (V1 , V2)) = r . s

Grafo Estrela

Isomorfismo de grafos Dois grafos G1 e G2 so isomorfos se existe uma correspondncia um a um entre os vrtices de G1 e os vrtices de G2 com a propriedade de que o nmero de arestas unindo qualquer arestas em G1 igual ao nmero de arestas unindo qualquer arestas em G2 Definio: Dados dois grafos G1 (V1 , E1) e G2 (V2 , E2) . G1 G2 (G1 isomorfo a G2) se V1= V2= n e existe uma funo unvoca f : V1 V2 , tal que se (v , w) E1 ( f (v) , f (w) ) E2 para todo v, w V1 .

Nem todo 2 grafos tal que V1 = V2 = n so isomorfos . O Problema do Como realizar uma associao entre vrtices de V1 e V2 de tal maneira a identificar o isomorfismo? Em outras palavras, faa um algartmo que demonstre o isomorfismo entre dois grafos. Algoritmo direto analisaria as n! possibilidades de equivalncia . Complexibilidade de algartmos sem problemas n0 por caso 0 (n!)

No se sabe se existe algartmo polinominal que resolva esse problema , ou seja , no se sabe se isomorfismo P ou NP completo .

Teorema da Amizade: Mostre que em toda cidade com pelo menos 2


habitantes , residem 2 pessoas com mesmo n de amigos habitantes da cidade. Vrtices = pessoas Arestas = relao de amizade G (V,E) simples , onde V 2 , existe 2 vrtices x e y V (G) , tal que g (x) = g (y)

Prova: g (v) = {0,1,..., n -1} g (v) = 0 e g (w) = n 1 IMPOSSVEL (pois um no se relaciona com ningum) g (v) = n 1 e g (w) = 0 IMPOSSVEL (pois um no se relaciona com ningum) prova: Suponha que para todo vrtice de V , g (x) g (y) g (v) {0,...., n 1} Tem-se V= n vrtices g (v1) = 0, g (v2) = 1;...; g (vn) = n 1 n 1 graus para serem atribudos a n vrtices. Logo temos uma contradio prova direta: Existem n vrtices . Suponha que exista x, g (x) = 0 , Nesse caso somente a graus {0 , 1 ,..., n 2} podem ser atribudos w , w v , como existem n 1 vrtices para n 2 graus diferentes , existe um y , tal que , g (x) = g (y) . Esse raciocnio vale para g (x) = n 1 ou genericamente g (x) = k

OPERAO SOBRE GRAFOS Unio e soma de grafos

Formas de se combinar grafos para se obter um grafo maior Considere 2 grafos G1 (V1 , E1) e G2 (V2 , E2) tal que V1 V2 G1 U G2 ( (V1 U V2) , (E1 U E2) )

A soma (G1 + G2) a unio de G1 a G2 somado a ligao de cada vrtice de G1 a cada vrtice de G2

Unio e soma de grafos so operaes comutativas e associativas . G1 U G2 = G2 U G1 (G1 U G2) U G3 = (G2 U G3)

Grafo Conexo no pode ser expresso como a unio de dois outros grafos de outra forma , ele dito desconexo.

Um grafo desconexo pode ser expresso como a unio de um n finito de grafos conexos , cada um deles sendo designado componente de G .

Complemento de um grafo simples Seja G um grafo simples com conjunto de vrtices V. O complemento de G, G' o grafo simples que possui V como conjunto de vrtices , sendo que 2 vrtices so adjacentes em , G' se e somente se no so adjacentes em G .

Operaes num Grafo 1) Remoo de aresta Se ''e'' uma aresta de um grafo G , denota-se G - e , o grafo obtido de G pela remoo da aresta ''e''. Mas genericamente , se F um conjunto de arestas em G , denota-se G - F ao grafo obtido pela remoo de F.

2) Remoo de vrtice Se v um vrtice de G , denota-se por G v , o grafo obtido pela remoo de v de G , conjuntamente com as arestas incidentes a v . Mas genericamente , G S , onde S conjunto de vrtices , denota a remoo definida .

3) Contrao de arestas Se ''e'' uma aresta de um grafo G , denota-se G \ e , o grafo obtido de G pela remoo da aresta ''e'' = (x,y) , e pela juno dos seus extremos x e y , de tal maneira que o vrtice resultante seja incidente as arestas originalmente incidentes a x e y .

Representao de um grafo no computador Matriz de Adjacncias Seja G=(V,E) um grafo com n vrtices. A matriz de adjacncia para G um array est bidimensional nxn, que denotaremos por A, onde A(i,j)=1 se a aresta presente em G. A matriz de adjacncia para grafos no dirigidos sempre simtrica.

O grau de um vrtice Vi em um grafo no dirigido, representado por matriz de adjacncia, pode ser obtido pela soma de sua linha (ou coluna) correspondente. Para um dgrafo, a soma dos elementos na linha i representa o grau de sada do

vrtice Vi enquanto a soma dos elementos na coluna j representam o grau de entrada de Vi. O problema com matriz de adjacncia na representao de grafos que questes como: ''quantas arestas existem no grafo?'', ''o grafo conexo?'', sero respondidas em tempo O(n2). Se o grafo possui poucas arestas, este tempo pode ser melhorado utilizando-se listas de adjacncias, como veremos a seguir. Listas de Adjacncias Nesta representao, as n linhas da matriz de adjacncia so representadas como n listas encadeadas. Existe uma lista para cada vrtice em G. Os ns na lista i representam os vrtices que so adjacentes ao vrtice i. Cada n na lista possui pelo menos dois campos: VRTICE, que armazena o indice do vrtice que adjacente i e NEXT, que um ponteiro para o prximo n adjacente. As cabeas das listas podem ser armazenas em um array de ponteiros para facilitar o acesso aos vrtices. conveniente armazenarmos em cada entrada do array de cabeas de listas um campo FLAG que ser utilizado posteriormente para indicar se um dado vrtice possui alguma propriedade, por exemplo, em buscas, este FLAG pode indicar se um dado vrtice j foi visitado ou no.

No caso de um grafo no dirigido com n vrtices e e arestas, a representao acima requer um array de tamanho n para as cabeas e 2e ns nas listas. O grau de qualquer vrtice i em um grafo no dirigido pode ser determinado pelo nmero de ns na lista do vrtice i. O nmero total de arestas no grafo pode ser determinado em tempo O(n+e). No caso de dgrafos, o nmero total de ns nas listas e. O grau de sada de um n i o nmero de ns na lista do vrtice i. O grau de entrada de um vrtice i pode ser calculado em tempo O(n+e) (como este clculo pode ser feito?).

Existem variaes dessas representaes para se mostrar as arestas que ligam determinados vertices. So chamada Matriz de Incidncia e Lista de Arestas Incidentes.

Você também pode gostar