Você está na página 1de 41

TEORIA DOS GRAFOS INTRODUO E MOTIVAO

Profa. Patrcia D. L. Machado, DSC/UFCG, 2012.1

INTRODUO

Muitas situaes no mundo real podem ser descritas por meio de um diagrama formado por pontos e linhas que unem estes pontos.
O objetivo observar se dois ou mais pontos esto conectados e o padro desta conexo.

Partindo desta observao e de propriedades gerais da Teoria dos Grafos, possvel analisar e resolver problemas de interesse.

Image from http://www.24point0.com/product-reviews-and-applications/presenting-social-networking-strategies-in-powerpoint-with-24point0-products/

MOTIVAO

Forma natural e conveniente de representar relacionamentos (arestas) entre objetos (vrtices).


Modelo matemtico para representao e soluo de problemas:

Existenciais: Existe ...? possvel ... ? Construo: Se ... Existe, como pode ser construdo?

Enumerao: Quantos ... existem, podem ser listados? Otimizao: Existem muitos ... qual o melhor?

MOTIVAO O PROBLEMA DE KONISBERG


Existencial: Existe uma trilha que passe por cada uma das pontes apenas uma vez? Construo: Se esta trilha existe, como pode ser construda? Enumerao: Quantas trilhas fechadas existem? Podemos enumerar todas? Otimizao: Que trilhas representam o caminho mais curto?

Figure from http://www.transtutors.com/homework-help/Discrete+Mathematics/Graph+Theory/konisberg-multigraph-bridge.aspx

MOTIVAO PROBLEMA DAS 4 CORES

Quantas cores so necessrias para colorir um mapa de forma que pases vizinhos possuam cores diferentes? sempre possvel colorir com apenas 4 cores

Figure from http://daveagp.wordpress.com/2007/10/12/better-know-a-theorem-an-easy-chromatic-number/

Figure from http://www.leda-tutorial.org/en/unofficial/ch05s03s07.html

MOTIVAO PROBLEMA DA COBERTURA DE TESTES

Existencial: Existe um conjunto finito de casos de teste que executa todos os comandos de um programa pelo menos uma vez?
Construo: Como construir este conjunto? Enumerao: Quantos conjuntos existem? Podem ser listados? So finitos? Otimizao: Qual o menor conjunto?

MOTIVAO PROBLEMA DA COBERTURA DE TESTES

Figure from http://www.drgarbage.com/control-flow-graph-factory-3-3.html

MOTIVAO PROBLEMA DA MODIFICAO DE SOFTWARE

Que partes de um software podem ser afetadas por uma modificao?


Class Dependency Graph

Alteraes em Object podem afetar o comportamento de todas as outras classes! Alteraes em Object, Overlay ou Shape podem levar a ciclos repetitivos de correes.

Figure from http://majewsky.wordpress.com/category/kde/kdegames/kolf/

MOTIVAO
PROBLEMA DA PARTIO DO SOFTWARE

possvel dividir uma tarefa de desenvolvimento de software para que diferentes equipes trabalhem em paralelo e a integrao seja de baixo custo?

Figure from http://scienceblogs.com/goodmath/2007/10/making_graph_algorithms_fast_u.php

HISTRICO

Konigsberg (Euler 1735)


Grafo Hamiltoniano (Hamilton 1805-65) Conceito de rvore (Kirchhoff 1824-87)

Grafos Planares (Mobius/Kuratowski/Dudeney 1840/1913)


Conjectura das 4-cores (1852)

Busca por algoritmos eficientes Larga aplicabilidade: Matemtica, Computao, Comunicao e Otimizao Combinatria
Solues para algoritmos intratveis

GRAFO

Par ordenado (V(G), E(G)), onde:


V(G) um conjunto de vrtices; E(G) um conjunto de arestas, juntamente com uma funo de incidncia . Se e uma aresta e u e v so vrtices, (e) = {u,v} = uv = vu u e v so adjacentes ou vizinhos e e incidente a u e v. u e v so os terminais de e.

O nmero de vrtices e arestas de um grafo G dado por v(G) e e(G) respectivamente (ordem e tamanho de G).

GRAFO

Exemplo G = (V(G),E(G)):

V(G) = {A, B, C, D, E} E(G) = {s, t, u, v, w, x, y, z}

G definido como:

G(s)=AB, G(t)=AA, G(u)=BC, G(v)=CD, G(x)=BD, G(w)=CD, G(y)=AD, G(z)=DE

B
u
w

x
y

D
v

REPRESENTAO GRFICA

Grafos podem ser representados por diagramas grficos onde:

Vrtices so representados por pontos


Arestas so representados por linhas

No existe uma nica forma correta de desenhar um grafo; a posio relativa e o formato das linhas no tm significado

Um diagrama de um grafo meramente descreve a funo de incidncia comum chamar o diagrama de grafo e seus pontos e linhas de vrtices e arestas respectivamente.

REPRESENTAO GRFICA

REPRESENTAO GRFICA
CE
RN

MA

PI

PE

PB

BA

AL

SE

REPRESENTAO GRFICA
CE
8 MA 10 20 RN

3
PB

12

PI 30

15

PE 20 BA 10

5
20 20

AL 3

SE

REPRESENTAO GRFICA
V(G) = {MA, PI, CE, RN, PB, PE, AL, SE, BA}

E(G) = {MA_PI, PI_CE, PI_PE, PI_BA, CE_PE, CE_PB, CE_RN, PE_PB, RN_PB, PE_BA, PE_AL, BA_AL, BA_SE, AL_SE}

CE

RN

MA

PI

PE

PB

BA

AL

G(MA_PI)= MAPI; G(PI_CE)= PICE; G(PI_PE)= PIPE; G(PI_BA)= PIBA; G(CE_PE)= CEPE; G(CE_PB)= CEPB; G(CE_RN)= CERN;

G(PE_PB)= PEPB; G(RN_PB)= RNPB; G(PE_BA)= PEBA; G(PE_AL)= PEAL; G(BA_AL)= BAAL; G(BA_SE)= BASE; G(AL_SE)= ALSE;

SE

DEFINIES

O conjunto de vizinhos de um vrtice v em um grafo G definido por NG(v).


Uma aresta com terminais: Idnticos chamada de loop Distintos chamada de link. 2 ou mais links com o mesmo par de terminais so chamados de arestas paralelas.
y

s x

B
u
w

Um grafo com arestas paralelas chamado de multigrafo

D
v

Figure from [Bondy and Murty , 2008]

DEFINIES

Um grafo finito se seus conjuntos de vrtices e arestas so finitos. O grafo sem vrtices chamado de grafo nulo. Qualquer grafo com apenas um vrtice chamado de trivial. Todos os outros grafos so no-triviais Um grafo simples se no possui loops ou arestas paralelas. A funo de incidncia pode ser ignorada. Por qu?

TIPOS ESPECIAIS DE GRAFOS

Um grafo completo um grafo simples em que todo vrtice adjacente a todos os outros vrtices.
Um grafo vazio aquele no qual no existem vrtices adjacentes

Um grafo simples completo de n vrtices dito Kn

TIPOS ESPECIAIS DE GRAFOS

Um grafo completo um grafo simples em que todo vrtice adjacente a todos os outros vrtices.
Um grafo vazio aquele no qual no existem vrtices adjacentes

Um grafo simples completo de n vrtices dito Kn

E um K5 ?

TIPOS ESPECIAIS DE GRAFOS

Um grafo bipartido (bipartite) se seu conjunto de vrtices pode ser particionado em dois subsets X e Y tal que todas as arestas do grafo tm um terminal em X e outro em Y.
x1 x2 x3

y1

y2

y3

TIPOS ESPECIAIS DE GRAFOS

Outros exemplos de grafos bipartidos:

GRAFOS BIPARTIDOS

(a)

(c)

(b)

(d)

GRAFOS BIPARTIDOS

(a)

(c)

(b)

(d)

GRAFOS BIPARTIDOS

(a)

(c)

(b)

(d)

TIPOS ESPECIAIS DE GRAFOS

Um caminho (path) um grafo simples cujos vrtices podem ser organizados em uma seqncia linear tal que dois vrtices so adjacentes se um for consecutivo do outro, caso contrrio, no so adjacentes.
Um ciclo (ou circuito, cycle) em trs ou mais vrtices um grafo simples cujos vrtices podem ser organizados em um circuito sequencial. O tamanho de um caminho ou ciclo nmero de arestas correspondentes. Um caminho ou ciclo de tamanho k um k-caminho ou k-ciclo

TIPOS ESPECIAIS DE GRAFOS


CE RN

Exemplo de um 5-caminho?

MA

PI

PE

PB

BA

AL

SE

TIPOS ESPECIAIS DE GRAFOS


CE RN

Exemplo de um 5-caminho?

MA

PI

PE

PB

BA

AL

SE

Exemplo de um 3-ciclo?

TIPOS ESPECIAIS DE GRAFOS

Um grafo conectado ou conexo (connected) se, para qualquer partio de seu conjunto de vrtices em 2 conjuntos no-vazios X e Y, existe uma aresta com um terminal em X e um terminal em Y. Caso contrrio, o grafo desconectado.

TIPOS ESPECIAIS DE GRAFOS


Seja G=(V,E) um grafo simples. O complemento de um grafo um grafo simples cujo conjunto de vrtices V e cujo conjunto de arestas formado pelos pares no adjacentes de vrtices de G. Se G no conectado, ento seu complemento conectado. O contrrio verdade?

x w y z

y
z

y z

y
z

REPRESENTAO MATRICIAL

Seja G um grafo, onde V o conjunto de vrtices e E o conjunto de arestas (n o nmero de vrtices e m o nmero de arestas).

A matriz de adjacncia G uma matriz n n onde cada elemento auv representa o nmero de arestas que unem os vrtices u e v e cada loop conta como duas arestas. A matriz de incidncia uma matriz n m onde cada elemento ave representa o nmero de vezes (0, 1 ou 2) que cada vrtice v e aresta e so incidentes.

REPRESENTAO MATRICIAL
s t 2 u 0 v 0 w 0 x 0 y 1 z 0

s x

M=
B
u

B
C D E

1
0 0 0

0
0 0 0

1
1 0 0

0
1 1 0

0
1 1 0

1
0 1 0

0
0 1 0

0
0 1 1

D
v

A A 2 1 0 B C

B 1 0 1

C 0 1 0

D 1 1 2

E 0 0 0

A=

D
E

1
0

1
0

2
0

0
1

1
0

GRAU

O grau de um vrtice v em um grafo G, dG(v), o nmero de arestas de G que so incidentes a v, cada loop contando como duas arestas.
Se G um grafo simples, dG(v) o nmero de vizinhos de v em G.

(G) e (G) representam o grau mximo e


d(G) representa o grau mdio:

mnimo de vrtices de G respectivamente.

1 vV d (v) n

GRAU
CE RN

MA

PI

PE

PB

Qual o vrtice com maior grau?

BA

AL

SE

Qual o estado do nordeste que possui mais vizinhos?

GRAU
CE RN

MA

PI

PE

PB

Qual o vrtice com maior grau?

BA

AL

SE

Qual o estado do nordeste que possui mais vizinhos?

GRAU

Teorema (Handshaking Lemma). Para todo grafo G,

d (v ) 2m
vV

Prova. Na matriz de incidncias, a soma das entradas na linha correspondente a v exatamente d(v). Assim, a soma de todos os graus exatamente a soma de todas as entradas da matriz. Esta soma exatamente igual a 2m, pois a soma de cada coluna da matriz exatamente igual a 2 cada arestas tem 2 terminais. Corolrio. Em qualquer grafo, o nmero de vrtices de grau mpar par.

DEMO PETERSEN

EXERCCIOS

Exerccios de Teoria dos Grafos http://www.ime.usp.br/~pf/grafos-exercicios/

Sugesto: E.1.1, ... E1.7, E1.19 EF 1.25, ..., 1.28 E 1.32, EF 1.33, E 1.41, E1.42 EF 1.57, EF 1.58

Introduo a Algoritmos: Aula no Youtube

ALGORITMOS

Mtodo efetivo, expresso como uma lista finita de passos bemdefinidos, para realizar uma tarefa. Pode ser descrito em diferentes nveis de abstrao, usando diferentes tipos de notao: linguagem natural, pseudocdigo, fluxogramas, linguagens de programao, tabelas de controle ou mquinas abstratas. Descrio de solues computacionais para problemas

ALGORITMOS

A = 20, B = 4 A = 16, B = 4 (linha 60) A = 12, B = 4 (linha 60) A = 8, B = 4 (linha 60) A = 4, B = 4 A = 4, B = 0 (linha 40) Print 4 (linha 80)

http://en.wikipedia.org/wiki/Algorithm