Professional Documents
Culture Documents
2
Caminho, Percurso
Um caminho de um vértice vi0 para o vértice vik é uma
seqüência de arestas
< vi0, vi1 >, < vi1 , vi2 > , . . . , < vi,k–
i,k–1 , vik >.
3
Caminho e Distância
Outra forma de representação encontrada na
literatura:
4
Caminho, Percurso
• Um caminho trivial é um caminho de comprimento
zero:: um vértice e nenhuma aresta
zero
• Um caminho fechado é um caminho não trivial que
começa e termina no mesmo vértice
vértice..
5
Ciclo, Circuito
6
Comprimento
• 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.
compõe. Ou seja,
• O comprimento de um caminho é o número de arestas
da sequência.
7
Caminho e Distância
• Muitas aplicações precisam de grafos para
representar percurso e distância.
• Exemplos:
– O número de nós de rede percorridos por uma
mensagem de e- e-mail.
– O número de links entre duas páginas web.
– A distância entre duas pessoas numa rede de
relacionamentos da internet.
8
Caminho e Distância
• A distância d(
d(s,t
s,t)) de um vértice s para um vértice t em
um grafo G é o comprimento do menor caminho entre
set.
• Se não existir um caminho entre s e t então a
distância é infinita
infinita..
• Um problema interessante é o de achar
sistematicamente o caminho mais curto entre dois
vértices quaisquer
quaisquer..
9
Índice de Wiener (Iw)
Iw)
• Soma das distâncias entre todos os pares de vértices,
dividido por 2.
Iw(1)
Iw(1) = 14
Iw(2)
Iw(2) = 33
Iw(3)
Iw(3) = 53
10
Excentricidade (Ou Afastamento)
• A excentricidade de um vértice v em um grafo
G=(V,E), denotado por ecc(v),
ecc(v), é a distância de v ao
vértice mais afastado de v.
11
12
Diâmetro
• O diâmetro de um grafo G=(V,E), denotado por
diam(G),
diam (G), é a maior excentricidade dos vértices de G
13
Raio
• O raio de um grafo G=(V,E), denotado rad
rad(G),
(G), é o
mínimo das excentricidades dos vértices
14
Vértice Central
• O vértice central de um grafo G=(V,E) é o vértice com
a menor excentricidade (ou subconjunto dos vértices
de menor excentricidade).
Se v é o vértice central, ecc(v)
ecc(v) = rad
rad(G)
(G)
3 5 9 Ecc(G) 4
Raio(G) = Min{Ecc} 2
Vértices centrais = ecc(v) = rad(G) {4,5}
15
Dia(G) =Max{Ecc} 4
Mediana ou Centróide
• É um vértice para o qual a soma das distâncias aos
demais vértices é mínima em relação a V.
• Existem problemas que tem como solução uma única
mediana (um único vértice), chamada de 1-
1-mediana.
Rank de um grafo - r
• O rank ou posto de um grafo G com n vértices e c
componentes conexas é dado por:
r = n-
n- c
Grafo bipartido
• Um grafo G é bipartido quando seu conjunto de
vértices N pode ser dividido em dois conjunto N1 e
N2, tais que N1 ∩ N2 = ∅ e N1 ∪ N2 = N e somente
existem arestas em G ligando algum vértice de N1
com algum vértice de N2 e vice-
vice-versa.
Grafo Completo - Kn
• Um Grafo G é completo se existe uma aresta
associada a cada par de vértices de G.
• No caso orientado isso significa a existência de um
arco para cada par ordenado de vértices.
Grafo Bipartido Completo Kp,q
• Cada vértice do conjunto N1, com p vértices é
adjacente a todos os q vértices do conjunto N2 e vice-
vice-
versa.
Grafo Clique
• É um subgrafo completo de G.
Grafo regular
• Todos vértices possuem o mesmo grau
Grafo Torneio
• Um grafo é dito torneio quando cada par de vértices
em G é ligado exatamente por um arco (um grafo
completo e direcionado).
Ciclo Euleriano e Circuito Hamiltoniano
24
Caminhos, Ciclos e Árvores
• Um ciclo euleriano no grafo abaixo é
‹u,v,t,u,w,t,z,w,x,y,z,u›
u,v,t,u,w,t,z,w,x,y,z,u›
u t z y
v w x
25
Grafo Acíclico
26
Exercício
x w
29
Exercícios
3- Ache todos os caminhos de comprimento 4 ou 5 do
vértice w ao vértice r no grafo abaixo.
w s
u v z y
x r
30
Exercícios
4- Ache a distância entre os vértices x e y do grafo
abaixo
31
Gabarito
• Gabarito:
2- a) sim b) sim (trivial) c) não d) não
32
Grafo Simples
X
X X
X
Não possui arestas múltiplas
X X
33
Passeio (Walk)
Seqüência não nula, finita e alternada de
vértices adjacentes e arestas incidentes.
1 a b 2
W = v0e1 v1e2 v2e3 ... ekvk
c
d 3 4 e
onde:
7 f 8 ∈N*)
• 1 ≤ k ≤ n (n∈ N*
u 5 6
v
g
9 10
h • ψ(ek) = {vk-1, vk}
11 12
i j Exemplos:
k l m n • Antenas = 1a3c4b2
13 14 • Cabeça = 3c4e6f5d3 (fechado)
o p
q r
15 • W1 = 14t17r14n12n14m10
s t
• W2 = 5f6v10h8h10m14
• W3 = 5i15o13l9u5 (fechado)
16 cucaracha 17
• W4 = 12n14
34
Trajeto (Trail)
Passeio onde as arestas não se repetem.
1 a b 2
c
d 3 4 e
7 5 f 6 8 Exemplos:
u v
g
9 10
h • Antenas = 1a3c4b2
11 12
i j • Cabeça = 3c4e6f5d3 (fechado)
k l m n
• Patinha Direita Central = 12n14
13 14
o p • T1 = 2b4e6j15p14t17
q r
15
• T2 = 2b4e6j15p14r17
s t
• T3 = 11k13s16q13l9u5i15j6f5
16 cucaracha 17
35
Caminho (Path)
c
d 3 4 e
7 f 8
u 5 6
g
v
h Exemplos:
9 10
11
i j
12 • Antenas = 1a3c4b2
k l m n
• Patinha Direita Central = 12n14
• P1 = 11k13o15j6v10m14t17
13 14
o p • P2 = 2b4e6j15p14t17
q r
15 • P3 = 2b4e6j15p14r17
s t • P4 = 8h10m14
16 cucaracha 17
36
Ciclo (Cycle)
1 a b 2
Trajeto fechado (v0=vk).
c
d 3 4 e
7 5 f 6 8
Exemplos:
u v
g
9 10
h • Cabeça = 3c4e6f5d3 (fechado)
11 12
i j • Asa Esquerda = 5i15o13l9u5 (fechado)
k l m n
• Patona Direita = 14t17r14 (fechado)
13 14
o p • C1 = 6v10m14t17r14p15j6 (fechado)
q r
15
• C2 = 5f6v10m14p15o13l9u5 (fechado)
s t
• C3 = 3c4e6v10m14p15o13l9u5d3 (fechado)
16 cucaracha 17
37
DAG (Directed Acyclic Graph)
8
3
5
5
0 2
5 7
8 3
3 6
1
8 2
9 4 6
7
38
Árvore (Tree)
Grafo acíclico (não possui ciclos) e conexo (existe um caminho
entre qualquer par de vértices distintos).
39
Grafos e Listas de Adjacência
A
3 1 1 2 0
A lista de adjacência
está em ordem
B crescente de vértices
1 0 (do A até o E) de forma
a facilitar a
implementação.
C
1 1 0 B
A
D
3 0 C
E E
0
0
D
40
Dígrafos e Listas de Adjacência
A
1 2 3 0
Lista de Adjacência
do vértice A
B Lista de
1 1 0 Adjacência
do vértice B
C Lista de
1 0 Adjacência B
do vértice C A
D
Lista de
0 Adjacência C
do vértice D
E E
3 1 0
0
D
Lista dos Vértices Lista de Adjacência do vértice E
41
Árvore
nível 0
A
nível 1
B C D E F
nível 2
G H I J K L M
nível 3
N O P Q R S
42
Árvore: Nó de uma Árvore
ponteiros class TArvore
{
private:
TAlgumTipo inf; // informação
TArvore *pai; // pai
TArvore *prim; // primogênito
próximo irmão
primogênito
TArvore *prox // próximo irmão
informação
// ...
pai
public:
// ...
// operações em uma árvore.
// ...
};
vem de E F 0
F
K L M
K L M 00
R S
vem de Q
vai para Q
vem de Q R 0 S 00
44
Árvore: busca em largura e busca em
profundidade
nível 0
A
Largura
Profundidade
nível 1
B C D E F
nível 2
G H I J K L M
nível 3
N O P Q R S
45
Árvore: Busca em Largura
S
A
1
A R
B
Q
C
P
2 3C 4 5 6
B D E F D Fila
O
E
N
7
G 8
H 9
I 10
J 11
K 12
L 13
M F
M
G
14
N 15
O 16
P 17
Q 18
R 19
S L
H
K
I J
ALGORITMO:
enfileire o nó raiz da árvore;
enquanto existirem nós enfileirados:
desenfileire e marque o nó;
para todos os nós filhos deste nó marcado:
enfileire o nó filho;
46
Busca em Profundidade
1
A
R
A
S
F
Q
2
B 4
C 8
D 12
E 13
F E
K
D Pilha
3
G 5
H 7
I 9
J 14
K 16
L 19
M L
C
M
B
6
N 10
O 11
P 15
Q 17
R 18
S O
G
P
ALGORITMO: I
empilhe o nó raiz da árvore; J
H N
enquanto existirem nós empilhados:
desempilhe e marque o nó;
para todos os nós filhos deste nó marcado:
empilhe o nó filho;
47
GRAFOS PLANARES
48
Grafos Planares
49
Grafos Planares
• Exemplos clássicos de grafos planares são dados
pelos grafos que representam os poliedros.
• Abaixo um poliedro regular, o cubo e o grafo que o
representa (um grafo regular):
50
Grafos Planares
• Para compreender melhor como se passa de um
sólido a um grafo, imagine que o sólido seja muito
flexível e que você o segure de modo a esticar uma de
suas faces, com suas arestas, sobre um plano.
plano. Todas
as outras faces e arestas do sólido formarão um
desenho no interior dessa primeira face.
face.
51
Grafos Planares
• Quantas arestas pode ter, no máximo, um grafo planar?
• Uma representação gráfica de um grafo com pelo
menos um ciclo separa o plano em regiões (no mínimo
uma dentro do ciclo e outra fora dele;dele; no caso das
árvores, que não possuem ciclos, temos uma única
região:: toda árvore é planar)
região
• Essas regiões são chamadas faces
faces;; não devemos nos
esquecer de que uma das faces é tudo que sobra do
plano – é a face ilimitada
ilimitada..
52
Grafos Planares
• A figura a seguir mostra duas representações do
mesmo grafo, ilustrando que qualquer face pode ser
colocada como face ilimitada.
g
a
f
e f g b
d e
a
d c c b
53
Região ou Face
54
Grafos Planares
• O número de faces de um grafo será designado por f.
• A representação gráfica de um grafo planar na qual as
arestas só se encontram uma com outra nos vértices
não é única
única.. Um grafo planar sempre a possui e ela se
chama forma topológica ou grafo plano
plano..
55
Grafos Planares
• Veja, porém, que podemos representar K4 pelo menos
de duas maneiras, a primeira admitindo cruzamento
de arestas e a segunda não:
não:
56
Grafos Planares
• Para grafos planares, vale a relação de Euler, já
conhecida do estudo dos poliedros convexos:
convexos:
Teorema 1: Em um grafo planar conexo vale
n+f-m=2
58
Grafos Planares
Este teorema nos mostra que K5 não é planar
planar.. De fato,
K5 (e de resto todos os grafos completos com mais do
que 4 vértices) não obedece ao teorema, pois teremos
10 > (3x5) - 6
59
Grafos Planares
• Porém há grafos não planares para os quais a relação
m ≤ 3n – 6 também vale: a condição é necessária,
mas não é suficiente.
60
Grafos Planares
• K3,3 não é planar, pois 9 > (2x6) – 4.
61
Grafos Planares
• O problema das 4 cores
Em 1852,
1852, Frederick Guthrie, aluno de Augustus de
Morgan (que formulou suas famosas leis vinculadas à
união e interdeção de conjuntos), trouxe a este um
problema proposto por seu irmão Francis Guthrie.
Guthrie.
Na verdade tratava
tratava--se de uma conjectura, hoje um
teorema..
teorema
Todo mapa pode ser colorido com 4 cores
cores..
62
Grafos Planares
• Colorir um mapa é colorir as regiões de maneira que
regiões fronteiriças não sejam coloridas com a
mesma cor
cor..
63
Exercício
Construa um grafo com a sequência de graus
(4, 4, 3, 3, 3, 3):
64
COLORAÇÃO DE GRAFOS
65
Introdução
• O estudo de coloração de grafos nasceu quando
Francis Guthrie percebeu que era possível colorir o
mapa da Inglaterra usando apenas 4 cores
• A pergunta que surgiu foi se 4 cores eram suficientes
para colorir qualquer decomposição do plano em
regiões
• Em 1976, usando grafos, Haken e Appel mostram que
a resposta era afirmativa
66
Coloração de Vértices
• No tipo mais comum de coloração de grafos, as cores
são atribuídas aos vértices
67
Coloração de Vértices
• Do ponto de vista matemático, o subconjunto de
vértices com uma mesma cor é considerado uma
partição de vértices
w p u
v x
s t
y q
r o
z
68
Coloração de Vértices
• Desenhar o grafo com cores nos vértices é apenas
um forma intuitiva de representar esta partição
w p u
v x
s t
y q
r o
z
69
Coloração de Vértices
70
O Problema da Minimização
• Muitas aplicações envolvendo coloração de vértices
estão interessadas no número mínimo de cores para
colorir um grafo, de tal forma que vértices adjacentes
não possuam a mesma cor
71
O Problema da Minimização
• Definição:
Definição: uma k-coloração de vértice é uma
atribuição f: VG C do conjunto de vértices do grafo
no conjunto C={1
C={1,...,k}
...,k} cujos elementos são cores
3-coloração
C={amarelo, verde, vermelho}
72
O Problema da Minimização
• Definição:
Definição: uma classe de cores em uma coloração de
um grafo G é um subconjunto de VG contendo todos
os vértice de uma única cor
w p u
v x
s t
y q
r o
z
73
O Problema da Minimização
• Definição:
Definição: uma coloração própria dos vértices de um
grafo é uma coloração de vértices tal que aos
vértices (pontos finais) de cada aresta são atribuídas
cores diferentes
w p u
v x
s t
y q
r o
z
74
O Problema da Minimização
• Definição:
Definição: um grafo é dito ser
k-colorável (k-
(k-colorível)
colorível) se ele tem uma coloração
própria de vértices que usa k cores
cores..
• Dizemos que G é k-k-colorível se podemos atribuir uma
das k cores para colorir G
w u
v x
r s o t
y q
p
z
4-colorável
75
O Problema da Minimização
• Definição:
Definição: o número cromático de um grafo G,
denotado crom(G), é o menor número de cores
diferentes necessárias para obter uma coloração
própria de G
w u
v x
r s o t
y q
p
z
crom(G) = 3
76
Coloração de Vértices
Está claro que crom(Kn) = n , então existem grafos com
Está
número cromá
cromático arbitrariamente grande
K4 K6
crom(K4) = 4 crom(K6) = 6
77
Coloração de Vértices
crom(G) = 1 se e somente se G é um grafo nulo.
crom(G) nulo. E
crom(G)
crom (G) = 2 se e somente se G é um grafo
bipartido não nulo
1
3
2
4
N4 K3,3
crom(N4) = 1 crom(K3,3) = 2
78
Coloração de Vértices
•Teorema das 4 cores (Appel e Haken, 1976)
1976)
79
Aplicações da Coloração
• Quando uma aplicação é modelada como um
problema de coloração de vértices, os vértices em
cada classe de cores representam indivíduos ou itens
que não competem ou conflitam entre si
– Atribuição de freqüências de rádio
– Separação de produtos explosivos
– Agendamento de cursos na universidade
– Alocação de registros para programação
80
Aplicações da Coloração
• Atribuição de freqüências de rádio:
– Os vértices representam os transmissores das
estações de rádio
– Duas estações são adjacentes quando suas áreas de
transmissão se sobrepõem, o que resultaria em
interferência se elas usassem a mesma freqüência
– Cada cor contém estações que podem receber a
mesma freqüência
– crom(G) é o número mínimo de freqüências
81
Aplicações da Coloração
• Separação de produtos explosivos:
– Os vértices representam produtos químicos
necessários em algum processo de produção
– Existe uma aresta ligando cada par de produtos que
podem explodir, se combinados
– O número cromático representa o número mínimo de
compartimentos para guardar estes produtos químicos
em segurança
82
Aplicações da Coloração
• Agendamento de cursos na universidade:
– Os vértices representam os cursos de uma
universidade
– Dois cursos são adjacentes se um aluno se matricula
para ambos os cursos
– O número cromático representa o número mínimo de
horários necessários para acomodar os cursos
83
Aplicações da Coloração
• Alocação de registradores para programação:
– Os vértices representam as variáveis a serem alocadas
nos registradores de execução rápida
– Duas variáveis são adjacentes se elas podem estar
ativas ao mesmo tempo
– O número cromático representa o número mínimo de
registradores necessários para evitar o problema de
overswapping
84
Algoritmo de Coloração
• O algoritmo abaixo produz rapidamente uma
coloração própria para qualquer grafo:
para i = 1 até p
Seja f(vi) = o menor número de cor não usado nos
vizinhos de menor índice de vi
85
Algoritmo de Coloração
• Aplicando o algoritmo ao exemplo abaixo tem-
tem-se um
grafo 4-
4-colorável:
2
1
1
3
2
4 5 6
3
7
4
8 9 0
86
Algoritmo de Coloração
• Porém o grafo exemplo é 3-
3-colorável:
2
1
3 1
4 5 6 2
7 3
8 9 0
87
Algoritmo de Coloração
• O algoritmo de coloração seqüencial não obtém a
coloração mínima
• Nenhum algoritmo de tempo polinomial pode obter a
coloração mínima pois o problema de achar o
número cromático de um grafo é NP-
NP-difícil
• Além disso, decidir se um grafo é 3-
3-colorável é um
problema NP-
NP-completo
88
Heurísticas para Coloração
• Muitas heurísticas para coloração de vértices se
baseiam na intuição de que um vértice de maior grau
será mais difícil de colorir mais tarde do que um de
menor grau
2
1
3
4 5 6
8 9 0
89
Heurísticas para Coloração
90
Heurísticas para Coloração
• Ordem decrescente de grau:
v1(5), v3(5), v9(5), v2(4), v5(4), v4(3), v6(3), v7(3), v8(3), v10(3)
2
1
3 1
4 5 6 2
7 3
8 9 0
91
Coloração com Pesos
• No problema de agendamento de cursos na
universidade, suponha que sempre existirão conflitos
• Representando nas arestas o número de estudantes
que fazem os dois cursos como um peso da aresta
• O objetivo é achar uma k-coloração que minimize o
peso total das arestas que ligam vértices de mesma
cor
92
Exercício
1. Utilize o algoritmo heurístico para calcular o número
de freqüências necessárias para evitar interferência
entre as estações de rádio. Duas estações interferem
se eles estão a menos de 100 km.
B C D E F G
A 55 110 108 60 150 88
B 87 142 133 98 139
C 77 91 85 93
D 75 114 82
E 107 41
F 123
93
Exercício
1. Aplique o algoritmo de coloração seqüencial e a
heurística “maior grau primeiro” ao grafo abaixo:
1 3 5 7
2 4 6 8
94
DEFINIÇÃO DE PROBLEMAS DE
LOCALIZAÇÃO DO TIPO
P-MEDIANAS E P
P--CENTRO
95
Problemas de Localização do Tipo p-
p-Medianas e
p-Centros
• Problemas de localização tratam, no contexto aqui
apresentado, de como lidar com as decisões sobre onde
localizar instalações em uma rede na qual existam pontos
de demanda que precisam ser atendidos de acordo com
um objetivo específico a ser otimizado.
• Dentre tal classe de problemas destaca-
destaca-se os do tipo p-
p-
centros e p-
p-medianas.
96
Modelos de p-
p-medianas
• têm como objetivo minimizar a soma dos custos de
distribuição entre facilidades ((instalações
instalações que fornecem
um serviço) e pontos de demanda ((que que precisam ser
atendidos pelas facilidades).
facilidades).
• Esses custos podem ser dados, por exemplo, em função
da distância entre facilidades e pontos de demanda.
Desse modelo básico,
básico, muitas variações podem ser
consideradas, como, por exemplo
exemplo,, a capacidade máxima
de atendimento, ou o custo fixo na instalação de
facilidades [3].
97
Modelos de p-
p-medianas
• No caso em que as medianas são não capacitadas, o
problemas das pp--medianas pode ser um modelado como
um problema de programação linear inteira conforme (1-
(1-
5).
98
Modelos de p-
p-medianas
em que:
• ݆݀݅ é a distância entre os nós i e j;
• ݆݅ݔé uma variável binária, com = ݆݅ݔ1 se o nó j está
alocado à mediana i ou = ݆݅ݔ0 caso não esteja; =݅݅ݔ1 se o
nó i é uma mediana e =݅݅ݔ0, caso contrário;
• ݂ é um número inteiro e positivo de facilidades que se
deseja localizar. No caso desse modelo essas facilidades
são as medianas;
• m e n são os números de pontos considerados no
problema.
99
Modelos de p-
p-medianas
• a função objetivo (1) minimiza a distância total entre os
pontos de demanda e suas respectivas medianas;
• a restrição (2)
(2) impõe que todo ponto de demanda i deve estar
alocado a uma única facilidade j;
• a restrição (3) impõe que o número total de medianas seja f;
• a restrição (4) impõe que um ponto de demanda i só pode
estar alocado a um nó j se neste nó houver uma mediana;
• a restrição (5) impõe que as variáveis de decisão só podem
assumir os valores 0 ou 1.
100
Modelos de p-
p-centros
• Os modelos de p- p-centros, também conhecidos como
modelos minimax
minimax,, têm o objetivo de alocar um número de
facilidades de maneira a minimizar a máxima distância
entre uma facilidade e um ponto de demanda.
• Uma restrição é que toda a demanda deve ser atendida.
Esse modelo pode ser relevante
relevante,, por exemplo, quando a
distância de alocação entre um ponto de demanda e sua
respectiva facilidade é crítica para a eficácia do
atendimento desse ponto de demanda.
101
Modelos de p-
p-centros
• O problema de p-
p-centros pode ser modelado como um
problema de programação linear inteira conforme (6
(6--7,3-
7,3-
5):
em que:
• ݀ ݔܽܯé a maior distância de associação (entre um foco
e a respectiva facilidade associada).
• A função objetivo (6) minimiza a maior distância de
associação enquanto a restrição (7) impõe que a máxima
distância de associação seja maior ou igual a todas as
outras distâncias de associação.
102
Modelos de p-
p-medianas e pp--centros
• Tanto o problema de p-p-medianas quanto o problema de pp--
centros,, formulados como problemas de otimização
centros otimização,,
pertencem à classe dos NPNP--árduos. Problemas dessa
classe são pelo menos tão difíceis, nos termos de
complexidade algorítmica,
algorítmica, quando qualquer outro
problema da classe NP.
103
Exercício 1: Para o grafo abaixo, encontre a mediana, a 2- 2-medianas, 33--
medianas e o centro, 2-
2-centro e 33--centro. Mostre os PL
PL´´s.
104
Exercício 1: Para o grafo abaixo, encontre a mediana, a 2- 2-medianas, 33--
medianas e o centro, 2-
2-centro e 33--centro. Mostre os PL
PL´´s.
105