Post on 18-Jan-2019
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
23 0 15
2
4
Figu
5
6
ra 2.4
9
1
m
fi0
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.