teoria dos grafos e aplicações - joinville.udesc.br · teoria dos grafos e aplicações 8 um...

13
Teoria dos Grafos e Aplicações 8 Um Grafo é representado matematicamente por: G=(V,E) Onde V é o conjunto de vértices e E é o conjuntos de arestas ou ligações entre os vértices. (V= n , E= m ) Um Digrafo é representado matematicamente também por: G=(V,E) Onde V é o conjunto de vértices e E é uma relação binária em V (i.e., um conjunto de pares ordenados) das ligações. 2.1 – Grafo É uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os “objetos”. Graficamente, aparece representado por uma figura com nós ou vértices, significando os objetos, unidos por um traço denominado aresta configurando a relação imaginada. Representação Matemática Figura 2.1 A figura acima (à direita) mostra o grafo G=(V,E). Observe que laços (self-loops) são permitidos pela definição. Múltiplas linhas não são permitidas. Neste exemplo, V={1,2,3,4,5,6} e E={{1,3},{2,3},{3,4},{3,5},{6,6}}. É comum a utilização da variável v i ou x i , i=1,2,...,n para a distinção dos nós (vértices). V= 6 , E= 5. 2.2 – Grafo direcionado (ou Digrafo) Um Grafo é dito direcionado ou Digrafo quando o sentido das ligações entre os vértices é considerado. Neste caso denomina-se de arco a aresta direcionada. Representação Matemática Figura 2.2 Neste exemplo, V={1,2,3,4,5,6} e E={(3,1),(2,3),(4,4),(3,5),(6,6)}. V= 6 , E= 5. b d a C 1 2 3 4 5 6 b d a C 1 2 3 4 5 6 Cap. 2 – Conceitos Básicos em Teoria dos Grafos

Upload: doanduong

Post on 18-Jan-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Teoria dos Grafos e Aplicações 8

Um Grafo é representado matematicamente por:

G=(V,E)

Onde V é o conjunto de vértices e E é o conjuntos de arestas ou ligações entre os vértices. ( V = n , E = m )

Um Digrafo é representado matematicamente também por:

G=(V,E)

Onde V é o conjunto de vértices e E é uma relação binária em V (i.e., um conjunto de pares ordenados) das ligações.

2.1 – Grafo

É uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os “objetos”. Graficamente, aparece representado por uma figura com nós ou vértices, significando os objetos, unidos por um traço denominado aresta configurando a relação imaginada. Representação Matemática

Figura 2.1

A figura acima (à direita) mostra o grafo G=(V,E). Observe que laços (self-loops) são permitidos pela definição. Múltiplas linhas não são permitidas. Neste exemplo, V={1,2,3,4,5,6} e E={{1,3},{2,3},{3,4},{3,5},{6,6}}. É comum a utilização da variável vi ou xi , i=1,2,...,n para a distinção dos nós (vértices). V = 6 , E = 5.

2.2 – Grafo direcionado (ou Digrafo)

Um Grafo é dito direcionado ou Digrafo quando o sentido das ligações entre os vértices é considerado. Neste caso denomina-se de arco a aresta direcionada.

Representação Matemática

Figura 2.2

Neste exemplo, V={1,2,3,4,5,6} e E={(3,1),(2,3),(4,4),(3,5),(6,6)}. V = 6 , E = 5.

b

d

a

C

1

2

3

4

5

6

b

d

a

C

1

2

3

4

5

6

Cap. 2 – Conceitos Básicos em Teoria dos Grafos

Teoria dos Grafos e Aplicações 9

Um Rede é representado matematicamente também por:

G=(V,E,w)

Onde: V é o conjunto de vértices; E é o conjunto de ligações;e w é o peso associado aos vértices e/ou ligações.

2.3 Grafos valorados (Redes ≡≡≡≡ Networks)

Uma Rede é um grafo não-direcionado (ou um digrafo) no qual um número real é associado os vértices e/ou ligações. Este número é freqüentemente referido como o peso da ligação. Essa classificação é dada de acordo com a necessidade, ou não, da indicação do fluxo entre os vértices. Na prática este número pode representar:

- custos, distâncias, capacidades, e/ou suprimentos e demandas; - tempo (trânsito, permanência, etc); - confiabilidade de transmissão; - probabilidade de ocorrer falhas; - capacidade de carga; - outros. Representação Matemática

Teoria dos Grafos e Aplicações 10

REDES / GRAFOS

Exemplos: • Redes ferroviárias • Redes de telecomunicações • Redes de estradas • Redes Elétricas • Redes de esgotos • Redes de transportes • Redes de atividades → “scheduling” de atividades em grandes projetos

Nós, vértices → atividades Arcos → restrições de precedência

ESTRUTURA TOPOLÓGICA

INFORMAÇÕES QUANTITATIVAS SOBRE ELEMENTOS

início

8

X

1

7

7

10

5

2

3 0 15

2

4

Figu

5

6

ra 2.4

9

1

m

fi

0

0

0

2

10

8

5

8

3

duração da

atividade

Teoria dos Grafos e Aplicações 11

2.4 –Grafo Parcial

Figura 2.5 2.5 - Subgrafo

Figura 2.6

G=(V,E) G=(V,E’)

E’ E⊆

G’=(V’,E’) é subgrafo de G

sss

EEVV ⊆⊆ ';'

Teoria dos Grafos e Aplicações 12

2.6 – Grafo Completo

Figura 2.7

2.6 – Grafo Pleno

Figura 2.8

EvwEwv

wvEVv

∈⇒∉≠∈∈∀

),(),(

, we

v

w

v

w

Teoria dos Grafos e Aplicações 13

2.7 – Grafo Bipartido

Procuramos um design(encontrando-se num n

a1

a2

a3

b1

b2

Xa Xb

X = Xa ∪ Xb

Xa ∧ Xb = ∅ A ⊆ Xa x Xb

Aplicações :Probs. de Transporte (origem/destino)Probs. de Atribuição : (tarefas/pessoas)

Namoro

A

B

C

Figura 2.10

ação mais eficiente: nenhuma dó).

1

2

HOMENS

e duas

MULHERES

linhas pode ser adjacente

Teoria dos Grafos e Aplicações 14

PROBLEMA GERAL

Problema de Designação

Dado uma rede direcionada G=(X,A) • Conjunto de nós Xa ∪ Xb (distintos) • Linhas ( i, j ) somente de i ∈ Xa para j ∈ Xb • Custos nas linhas c(a)

Determine uma designação de custo mínimo de Xa a Xb : • um conjunto de linhas (arestas) W* tendo custo total mínimo.

C W C a

a W

( ) ( )=∈∑

FORMULAÇÃO DE PROGRAMAÇÃO LINEAR Seja c(a) = cij o custo associado com a linha a = ( i , j ). 1 se linha ( i , j ) está na designação W Defina xi j =

0 caso contrário Designação

Min. c xij iji j,∑

s. a.

xikk∑ = 1 i ∈ xa

xkjk∑ = 1 j ∈ xb

xij ∈ {0,1}

NOTA: A última restrição pode ser substituída por 0 ≤ xij ≤ 1, produzindo um programa linear que pode ser resolvido pelo MÉTODO SIMPLEX. Mas, não é aceitável devido a grande quantidade de soluções “degeneradas” produzidas. Algoritmos especializados : MÉTODO HÚNGARO, BARR.

Teoria dos Grafos e Aplicações 15

2.8 - Caminho, Percurso, Ciclo, Circuito e Comprimento

Um caminho de um vértice vi0 para o vértice vik é uma seqüência de arestas < vi0

, vi1 >, < vi1 , vi2 > , . . . , < vi,k–1 , vik >. Um caminho é dito elementar se passa exatamente uma vez por cada vértice e é simples se passa exatamente uma vez por cada aresta. Quando o grafo é não orientado o conceito de caminho é substituído por cadeia que pode ser representada pela seqüência de arestas que a forma ou dos vértices nela contidos. Alguns autores usam o termo percurso para denominar genericamente um caminho.

Se os vértices inicial e final são coincidentes ( vi0 = vik ), dizemos que o caminho é fechado e forma um ciclo que é chamado de circuito se o grafo for orientado.

O comprimento de um percurso num grafo valorado é a soma dos custos de percorrer cada aresta e num grafo não valorado é igual ao número de arestas que o compõe.

Na Figura 2.11 identificamos alguns destes elementos.

Figura 2.11 - Grafo G com um Caminho e um Ciclo

2.9 - Ciclo Euleriano e Circuito Hamiltoniano

Um Ciclo que passa por todas arestas de um grafo é dito Euleriano e um circuito elementar que passa por todos os vértices é chamado de Hamiltoniano.

O problema do Caixeiro Viajante citado anteriormente consiste em analisar todos circuitos Hamiltonianos existentes para (n+1) pontos, e conforme vimos o número máximo destes caminhos é n! .

Teoria dos Grafos e Aplicações 16

2.10 - Conexidade

Um Grafo G = (V, E) é conexo se para todo par de vértices existe pelo menos uma cadeia entre eles, por outro lado, se existir pelo menos um par de vértices que não é unido por nenhuma cadeia diz-se que o grafo é não-conexo, ou desconexo. Veja os exemplos da Figura 2.12.

Figura 2.12 - Grafos Conexo ( G1 ) e Desconexo ( G2 )

Observe que o conceito de conexidade em grafos orientados não exige que haja um caminho ligando qualquer par de vértices, se isto acontecer diz-se que o grafo é fortemente conexo o que significa dizer que dados dois vértices “v” e “w” quaisquer, cada um pode ser atingido a partir do outro, ou seja partindo de “v” pode-se chegar a “w” ou vice-versa. A Figura 2.13 mostra um exemplo.

Figura 2.13 - Grafo Dirigido Fortemente Conexo

Como aplicação deste conceito podemos dizer que uma das características mais importante de uma rede de comunicação (telefonia, por exemplo) é sua conexidade.

Teoria dos Grafos e Aplicações 17

2.11 - Relação de Adjacência e de Incidência

Dois vértices v∈ V e w∈ V de um grafo G = (V,E) são ditos adjacentes se existe a aresta (v,w), ou seja (v,w) ∈ E.

Duas arestas são ditas adjacentes se possuem uma extremidade (vértice) comum. Uma aresta é incidente a um vértice se este vértice for uma de suas extremidades.

Assim as arestas (u,v) e (v,w) são incidentes ao vértice “v”.

2.12 - Clique

Clique ou grafo completo é um grafo, ou subgrafo, em que seus vértices são interligados ou adjacentes dois a dois; de forma que o caminho mais curto entre quaisquer dois vértices “v” e “w” é a aresta (v,w).

A Figura 2.14 mostra um grafo com dois cliques.

Figura 2.14 - Grafo com dois Cliques: {2,3,4} e {4,5,6,7}

2.13 - Grafos Planares

Diz-se que um grafo é planar se for possível dispor seus vértices num plano de forma que não haja cruzamento de arestas.

Pode-se então fazer uma associação entre um grafo planar e um mapa, onde cada região do mapa corresponde a um vértice e as fronteiras entre as regiões correspondem às arestas. Veja um exemplo na Figura 2.15.

Figura 2.15 - Grafo Planar com 5 regiões

Uma aplicação que utiliza o conceito de grafos planares é a disposição de circuitos impressos numa placa.

Teoria dos Grafos e Aplicações 18

2.14 - Árvores

A definição clássica de árvore nos leva aos seguintes conceitos:

• Árvore é uma estrutura de dados que possui uma relação hierárquica entre seus elementos;

• Árvore é um conjunto finito de um ou mais nós, onde um deles é denominado raiz e os demais, recursivamente, formam uma nova árvore (ou sub-árvore).

Quando num determinado nível a sub-árvore tem um único nó (sem descendentes) ele é chamado de folha. A árvore da Figura 2.16 tem as seguintes folhas : D, E, G, H e I.

Figura 2.16 - Árvore de raiz A com duas sub-árvoes de raízes B e C

Conforme conceitos definidos até aqui podemos dizer que uma árvore é um grafo conexo sem ciclos e que todo grafo G deste tipo que possuir “n” vértices tem exatamente (n−1) arestas.

Outra característica que também pode ser observada é que todo par de vértices de G é unido por uma única cadeia simples. Por exemplo, a cadeia A-C-F-G da Figura 2.16 é a única que liga os vértices A e G.

Convém salientar neste ponto que é desnecessário indicar as inúmeras aplicações de árvores em computação, por conseguinte, como estas são casos especiais de grafos nota-se quão importante é o estudo da Teoria dos Grafos, cuja bibliografia é extensa e deve ser consultada com mais profundidade, especialmente a referências [7].

Teoria dos Grafos e Aplicações 19

2.15 - Interrelacionamento entre vértices (Notação de Berge)

* xj sucessor de xi ↔ ∃ (xi, xj) ∈ A

Γ + (xi) = { xj / xj é sucessor de xi}

d+ (xi) = card ( Γ+ (xi)) ; d = grau

* xj antecessor de xi ↔ ∃ (xj, xi) ∈ A

Γ - (xi) = { xj / xj é antecessor de xi}

d- (xi) = card ( Γ- (xi)) ;

* xj é adjacente (vizinho) a xi ⇔ xi é sucessor ou antecessor de xj

Γ (xi) = { xj / xj é adjacente a xi}; Γ (xi) = Γ+ (xi) U Γ- (xi)

Exemplo:

2.16 - Fechos transitivos Fecho transitivo direto n Γ + (xi) = {xi} U ( U Γ +k (xi) ) k=1 onde

Γ +2 = Γ + (Γ + (xi)) . . . Γ +n = Γ +

Exemplo : Seja G = ( X,A ) onde: X = { habitant A = { (xi,xj) /

Γ+ (xi) é o conjunto de todas as pessoas às quais ↓ alguma informação, através do contato en pessoa

X1

X2

X3

X4

Γ + (x1) = {x2,x3,x4} Γ - (x3) = {x1,x2,x4}

(Γ +(n-1) (xi))

e da cidade} < xi conhece xj >}

a pessoa xi pode fazer chegar tre pessoas conhecidas.

Teoria dos Grafos e Aplicações 20

Grafo Grafocompleto

Grafoconexo

Ciclo

u

vcaminho

deu a v

ÁrvoreÁrvoreGeradora

ciclo Hamiltoniano

2.17 – Revisão