You are on page 1of 105

GRAFOS & REDES

Prof. Guilherme E. Vieira


(Fontes: apresentações dos professores Lincoln C. Zamboni, Fábio F. da C.
Fontes, Haroldo G. Santos, Edson Prestes, Alessandra M. Coelho, no artigo de
Rodolfo Ranck Jr e Leonardo B. L. Santos e no livro: Grafos: Conceitos,
algoritmos e aplicações, de Marco Goldbarg e Elizabeth Goldbarg).
CONCEITOS BÁSICOS DE
GRAFOS

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 >.

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
sequência de arestas que a forma ou dos vértices nela
contidos. Alguns autores usam o termo percurso para
denominar genericamente um caminho.

3
Caminho e Distância
Outra forma de representação encontrada na
literatura:

• Para grafos simples um caminho pode ser abreviado


por uma seqüência de vértices:
W = <v0, v1, v2, ..., vn>

• Em um grafo geral, pode-


pode-se abreviar como uma
seqüência de arestas:
W = <v0, e1, e2, ..., en, vn>

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

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..
orientado

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.

ecc(v) = max{d (v, x)}


x∈VG

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

diam(G ) = max{ecc( x)}


x∈VG

• O diâmetro é a maior distância entre dois vértices de


G
diam(G ) = max{d ( x, y )}
x , y∈VG

13
Raio
• O raio de um grafo G=(V,E), denotado rad
rad(G),
(G), é o
mínimo das excentricidades dos vértices

rad (G ) = min{ecc( x)}


x∈VG

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)

• Exemplo: O grafo abaixo tem diâmetro 4, raio 2 e os


Vértice Excentricidade
vértices centrais são 4 e 5. 1
2
4
3
3 3
4 2
2 4 7 5 2
6 3
7 4
1 6 8 8 3
9 4

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

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
Hamiltoniano..
O problema do Caixeiro Viajante consiste em analisar
todos circuitos Hamiltonianos existentes para (n+
(n+11)
pontos, e o número máximo destes caminhos é n! .

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

• Um grafo acíclico é um grafo que não tem ciclos.

26
Exercício

No quadro a seguir assinale com X a classificação que


atribui a cada um dos caminhos indicados:
27
Exercício
Descrição Elementar Simples Caminho Circuito
1,2,3,4,5
1,2,1,4,5
1,2,3,1,2
1,2,2,3,4
2,2
2,3,1,2,1,2
3,1,4,5
4,5,1,2,2,3,4
28
Exercícios
2- Determine qual das seguintes seqüências de vértices
são caminhos do grafo abaixo.
a) <u,v>
b) <v>
c) <u,z,v>
d) <u,v,w,x,z>
u v z y

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

Não possui laços (loops)

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)

Passeio onde os vértices não se repetem.


1 a b 2

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

Redes PERT (Program Evaluation and Review Technique):


DAG ponderado onde os arcos representam atividades, os vértices representam
o início e o fim das atividade e os pesos representam intervalos de tempo.

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.
// ...
};

Não é imprescindível, mas pode ajudar na


implementação dos métodos.
43
Árvore: ligações vai para A

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

Um grafo planar é um grafo que admite uma


representação gráfica na qual as arestas só se
encontrem (possivelmente) nos vértices aos quais são
incidentes.. .... Ou simplesmente
incidentes simplesmente::

Um grafo planar é um grafo que pode ser representado no plano


de tal forma que suas arestas não se cruzem.

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

n: vértices m: arestas f: faces

Assim, apesar das inúmeras maneiras de se desenhar um


grafo no plano, o número de faces irá permanecer o
mesmo.
57
Grafos Planares
• Teorema 2: Em um grafo planar conexo G com m>1 vale
m ≤ 3n – 6.

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.

• K3,3 : 9< (3x6) – 6 e K3,3 não é planar.

• Em um grafo planar bipartido conexo G vale


m ≤ 2n – 4.

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):

a) Que não seja planar


b) B) que seja planar

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

Va = {v,z,x,r,u} Vb = {w,y,q,p,o} Vc={s,t}

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

Va = {v,z,x,r,u} Vb = {w,y,q,p,o} Vc={s,t}

w p u
v x
s t
y q
r o
z

69
Coloração de Vértices

Podemos assumir que todos os


grafos, para fins de colora
coloraçção, são
simples e conectados, já que arestas
múltiplas e vértices isolados são
irrelevantes para colora
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

classe de cor amarela = {v,z,x,r,u}

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)

•O número cromático de um grafo planar não é maior


que 4

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:

Entrada: um grafo G com lista de vértices v1, v2, ..., vp

Saída: uma coloração própria de vértices f: VG  {1,2, ...}

Algoritmo: Coloração Seqüencial de Vértices

para i = 1 até p
Seja f(vi) = o menor número de cor não usado nos
vizinhos de menor índice de vi

retorne coloração de vértices f

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

Entrada: um grafo G com n vértices

Saída: uma coloração de vértices f

Algoritmo: Maior Grau Primeiro

enquanto existir vértices não coloridos em G


Entre os vértices sem cor de maior grau,
escolha o vértice v com o maior grau de coloração

Atribua a menor cor k possível para o vértice v: f(v)=k


retorne a coloração de vértices f

Grau de coloração – é o número de cores diferentes usadas para


os vértices coloridos adjacentes de v

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

You might also like