Você está na página 1de 66

Grafos

<Otimização da Cadeia de Abastecimento>


O
t
i

Cursos de Engenharia
m
i
z
a
ç
ã
o
d
a
C José António Oliveira
a
d
http://dps.uminho.pt/pessoais/zan
e http://algoritmi.uminho.pt/member-profile/jose-antonio-vasconcelos-oliveira/0001618
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

1
<Otimização da Cadeia de Abastecimento>

O
t
i
m
i
z
A Teoria
a
ç
ã
o
d
a
C
a
de Grafos
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

2
<Otimização da Cadeia de Abastecimento>

O
t
i
m
i
z
A Teoria
a
ç
ã
o
d
a
C
a
de Grafos
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

3
Introdução à teoria de grafos
Grafos Não-Orientados
O
• Adjacência. Grau de um vértice
t
i
• Subgrafos:
m
i
– Subgrafo induzido por um conjunto de vértices.
z
a
– Subgrafo induzido por um conjunto de arcos.
ç
ã

Grafos Completos. Complemento de um Grafo


o
d

Caminhos e Circuitos
a
C
a
d
e
Grafos ligados e Componentes
i
a Grafos Bipartidos. Grafos Bipartidos Completos
d
e

Grafos Orientados
A
b
a
s
t
• Caminhos, Cadeias, Circuitos e Ciclos
e
c

Representação de Grafos
i
m

• Matriz de Incidência Nodo-Arco


e
n
t
o

• Matriz de Adjacências
J
A • Matriz Esparsa em MatLAB (lista de arcos)
• Estrela de Sucessores
O

4
Introdução à teoria de grafos
O
• A Teoria de Grafos está directamente relacionada com a
área de Investigação Operacional, Optimização
t
i
m

Combinatória e Métodos Numéricos.


i
z
a
ç
ã
o
d

• Estas áreas fornecem ferramentas fundamentais para a


a
C
a

resolução de problemas que surgem tanto na indústria,


d
e
i

nos serviços, como na ciência, tanto do ponto de vista


a
d
e

teórico como do ponto de vista aplicado.


A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

5
Introdução à teoria de grafos
O
• Os grafos representam uma ferramenta muito poderosa
para modelar uma grande variedade de problemas com
t
i
m

aplicações em disciplinas diversas.


i
z
a
ç
ã
o
d
a
C • Por exemplo, podem-se modelar com grafos problemas de:
a
d
e – transporte;
i
a
d – desenho de redes de comunicações;
e
A
b – fluxos em redes;
a
s
t – problemas de afectação de tarefas;
e
c
i – controle do tráfego (layout de semáforos),
m
e
n – etc.
t
o
– e que são problemas que surgem na Cadeia de Abastecimento
J
A
O

6
Introdução à teoria de grafos
O
• O grafos também são usados para representar as redes
físicas, como circuitos eléctricos, rodovias, moléculas
t
i
m

biológicas, etc., ou até mesmo interacções menos


i
z
a

tangíveis como em ecossistemas, relações sociológicas,


ç
ã
o

base de dados, controlo de fluxo de um programa de


d
a
C

computação, etc.
a
d
e
i
a
d
e

• Em particular os grafos são ferramentas úteis para


A
b
a

outras áreas da Ciência da Computação, tais como a


s
t
e

Engenharia de Software, redes de informação, base de


c
i
m

dados, o desenvolvimento de compiladores, etc.


e
n
t
o

J
A
O

7
Introdução à teoria de grafos
O
• Por outro lado, a teoria de grafos está intimamente
relacionada com vários ramos da Matemática como
t
i
m

teoria de grupos, teoria de matrizes, análise numérica,


i
z
a

probabilidades e combinatória.
ç
ã
o
d
a
C
a

• Alguns dos resultados da teoria de grafos facilitam a


d
e
i

construção de algoritmos eficientes para resolver


a
d
e

problemas comuns a vários das aplicações mencionadas,


A
b
a

como os problemas de fluxo, caminho mais curto,


s
t
e

partição do grafo, emparelhamento, entre outros.


c
i
m
e
n
t
o

J
A
O

8
Introdução à teoria de grafos
O
• Muitos outros problemas de grafos são NP-difíceis ou
NP-completos, o que os torna computacionalmente
t
i
m

"intratáveis" (a menos que P=NP).


i
z
a
ç
ã
o
d

• Porém, estes problemas NP-difíceis podem ser resolvidos


a
C
a

em tempo polinomial para muitas classes de grafos (i.e.,


d
e
i

grafos que satisfazem certas restrições) que aparecem


a
d
e

na prática.
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

9
Introdução à teoria de grafos
O
t
• O objectivo deste módulo é apresentar
vários problemas de grafos que foram
i
m
i
z

estudados e que são ainda estudados na


a
ç
ã
o

actualidade.
d
a
C
a
d

• Serão apresentados algoritmos eficientes


e
i
a
d

para resolver estes problemas ou será


e
A
b
a

demonstrado que o mesmo é


s
t
e
c

computacionalmente intratável.
i
m
e
n
t
o

J
A
O

10
Problema das quatro cores: pode-se
pintar qualquer mapa com quatro cores
sem que dois países que tenham como
O
t
i

fronteira uma linha tenham a mesma


m
i
z
a

cor?
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

11
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

12
Problema dos caminhos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

13
Definições
• Um grafo G = (V,X) é um par de conjuntos,
O
t
onde V é um conjunto de vértices, pontos ou
nodos e X é um subconjunto do conjunto de
i
m
i

pares não ordenados de elementos distintos


z
a
ç
ã

de V .
o
d
a
C

• Os elementos de X designam-se por arcos ou


a
d
e

arestas.
i
a
d
e
A
b
a
s
• Dados v, w  V, se a = (v, w)  X diz-se que
v e w são adjacentes e que a é incidente em
t
e
c
i

v e em w.
m
e
n
t

• Notação: n= | V | q= | X |
o

J
A
O

14
Recursos na net
• http://www.mathcove.net/petersen/lessons/index
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

15
Grafo Simples
O
• Seja G um grafo simples G=(V,A)
t
i
m
i
z
a
ç

Vértices
ã
o
d
a
C
adjacentes
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

16
Grau de um vértice
O • O grau de um nodo v é a quantidade de
arcos incidentes em v.
t
i
m
i
z
a
ç
ã
o

• Notação: d(v) = grau de v


d
a
C
a
d
e
i
a

• Teorema: A soma dos graus dos vértices de


d
e
A
b
a
s
t
um grafo é 2 vezes o número de arcos, ou
seja:
e
c
i
m

i=1,n d (vi) = 2 q
e
n
t
o

J
A
O

17
Grau de vértices & número de arcos
O
• Seja G um grafo simples G=(V,A)
t
i
m
i
z
a
ç
ã
Grau 2
o
d Grau 3
a
C Vértices
adjacentes
a
d
e
i
a
d
e
A
b
a
s
t Grau 3 Grau 2
e
c
i

i=1,n
m
e
n
d (vi) = 3+3+2+2=10 = 2*5
t
o

J
A
O

18
Grafo completo
• Um grafo diz-se completo se todos os
vértices são adjacentes entre si.
O
t
i
m
i
z
a
ç
ã
o

Notação: Kn grafo completo de n vértices.


d
a
C
a
d
e
i
a
d

Quantos arcos tem um grafo completo de


e
A
b
a

n vértices?.
s
t
e
c
i
m
e
n
t
o

J
A
O

19
Grafo completo
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m

i=1,n d (vi) = 2 q
e
n
t
o

J
A
O

20
Número de vértices de grau impar
O
• O número de vértices de grau impar é
sempre uma quantidade par.
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t

• Logo, o número de parcelas da soma dos


e
c
i
m

impares tem de ser uma quantidade par


e
n
t
o

J
A
O

21
Grafo regular
O

• Grafo regular. Todos os vértices do grafo


t
i
m
i

tem o mesmo grau.


z
a
ç
ã
o
d
a
C
a
d

• Grafos regulares de grau 3 (3-regular)


e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

22
Multigrafo
• Se um grafo admite mais do que uma
aresta entre dois vértices diz-se multigrafo
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

23
Pseudografo
• Se um grafo tem um arco que incide no
mesmo vértice (anel) diz-se pseudografo
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

24
Caminhos em grafos
• Um caminho num grafo é uma sucessão de
arcos
O
t
i
m

e1 e2.......ek
i
z
a
ç

tal que um extremo de ei coincide com um de


ã
o
d

ei-1 e o outro com um de ei+1.


a
C
a
d
e
i
a

Há outras formas de descrever um caminho…


d
e
A
b
a
s
t
e

• Um caminho simples é um caminho que


c
i
m

não passa duas vezes pelo mesmo nodo.


e
n
t
o

J
A
O

25
Caminhos em grafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

26
Longitude, Distância e Custo
• A longitude de um caminho é a quantidade de arcos
O
t
i
que formam o caminho.
m
i
z

• A distância d(v, w) entre dois nodos v e w de um


a
ç
ã

grafo define-se como a longitude do caminho “mais


o
d
a
C
a
d
curto” entre ambos.
e
i
a

• O custo c(v, w) de um caminho é a soma do custo de


d
e
A

travessia de cada arco que formam o caminho.


b
a
s
t
e
c
i
m
e Se não existe caminho entre v e w diz-se:
d(v, w) =
n
t
o

c(v, w) =

J
A
O

27
Proposição: a função distância cumpre as
O seguintes propriedades para todo v, u e w
pertencentes a V:
t
i
m
i
z
a
ç
ã
o

i) d(u, v)  0, d(u, v) = 0 se e só se u=v


d
a
C
a

ii) d(u, v) = d(v, u)


d
e
i
a

iii) d(u, w)  d(u, v) + d(v, w)


d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

28
Circuitos
• Um circuito é um caminho que começa e
O
t
i
termina no mesmo nodo.
m
i
z

• Um circuito simples é um circuito de 3 ou


a
ç
ã
o
d
a
C
mais nodos que não passa duas vezes pelo
mesmo nodo.
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

29
Grafo Orientado
O
• Se os arcos têm um sentido a ser
respeitado, o grafo diz-se orientado ou
t
i
m
i

digrafo
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

30
Grafo Orientado
• Um grafo orientado ou digrafo G= (V, X) é um par
O de conjuntos V e X, onde V é um conjunto de vértices ou
t
i nodos e X é um subconjunto do conjunto de pares
ordenados de elementos distintos de V .
m
i
z
a
ç
ã

• O grau de entrada din(v) de um nodo de um grafo


o
d
a
C
a orientado é a quantidade de arcos que “chegam” a v, ou
seja, a quantidade de arcos que têm v como o seu
d
e

segundo elemento.
i
a
d
e
A
b

• O grau de saída dout(v) de um nodo de um grafo


a
s
t
e
c orientado é a quantidade de arcos que “saem” de v, ou
seja, a quantidade de arcos que têm v como seu
i
m
e
n
t
o
primeiro elemento

J
A
O

31
Grafo Orientado
• Um caminho orientado num grafo orientado é uma
O sucessão de arcos e1 e2.......ek tal que o primeiro
t
i elemento do par ei coincide com o segundo elemento
de ei-1 e o segundo elemento de ei com o primeiro
m
i
z
a
ç
ã
elemento de ei+1.
o
d
a
C
a • Uma Cadeia é um caminho orientado, onde pelo menos
um dos arcos é percorrido em sentido contrário.
d
e
i
a
d
e

• Um circuito orientado num grafo orientado é um


A
b

caminho orientado que começa e termina no mesmo nodo.


a
s
t
e
c
i

• Um dígrafo diz-se fortemente conexo se para


m
e
n

qualquer par de nodos (v, u) há um caminho


t
o

orientado de v a u.
J
A
O

32
Grafos Bipartidos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

33
Grafos Bipartidos
Um grafo G = (V, X) é bipartido se existirem
dois subconjuntos disjuntos V1 e V2 do
O
t
i

conjunto de nodos V tal que:


m
i
z
a
ç
ã
o
d
a

V = V1  V2 , V1 V2 =  , V1  V2  
C
a
d
e
i
a
d
e

e de tal modo que todos os arcos de G têm um


A
b
a
s
t
e
c
extremo em V1 e outro em V2.
i
m
e
n
t
o

Um grafo G é bipartido se e só se todos os seus
circuitos têm longitude par.
J
A
O

34
Grafos Qn
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
• Q4 ?
t
e
c
• Vértices : Quartetos ordenados de 0 e 1’s.
i
m
e
• Adjacência: Só diferem num só dígito.
n
t
o
• Qn é n-regular, tem 2n vértices e n.2n-1 arcos

J
A
• Qn é bipartido
O

35
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

36
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

37
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

38
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

39
Subgrafos
• Subgrafos induzidos por vértices
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

40
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

41
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

42
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

43
Subgrafos
• Subgrafos induzidos por arcos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

44
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

45
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

46
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

47
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

48
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

49
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

50
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

51
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

52
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

53
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

54
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

55
Subgrafos
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

56
Representação de Grafos
Matriz de Adjacência
O
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

57
Representação de Grafos
Matriz de Adjacência
O
t
i
m
i
z
a
A  Rnxn , onde os elementos aij de A
definem-se como:
ç
ã
o
d
a
C
a

aij = 1 se G tem um arco entre i e j


d
e
i
a

0 se não tem
d
e
A
b
a
s
t
e
c
i
m
http://www.mathcove.net/petersen/lessons/get-lesson?les=8
e
n
t
o

J
A
O

58
Representação de Grafos
Listas de Adjacência
O
t
i
m
i

Ordem em
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

59
Representação de Grafos
O
t
• Matriz de Incidência nodo-arco
i
m

B  Rmxn , onde os elementos bij de B


i
z
a
ç

definem-se como:
ã
o
d
a
C
a
d

bij = 1 se o arco i é incidente no nodo j


e
i
a
d

0 se não é incidente
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

60
Representação de Grafos
O
t
• Matriz de Incidência nodo-arco
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

61
Representação de Grafos
O
t
• Matriz de Incidência nodo-arco
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

62
Representação de Grafos
O
t
• Estrela de Sucessores
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

63
Representação de Grafos
O
t
• Estrela de Sucessores
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
Origem
t
e
c
i
m
e
n
t
o

J
A
O

64
O
t
i
m
São os subgrafos conexos maximais
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m
e
n
t
o

J
A
O

65
Cortes e Pontes
O
Vértices de corte Arcos de ponte
t
i
m
i
z
a
ç
ã
o
d
a
C
a
d
e
i
a
d
e
A
b
a
s
t
e
c
i
m Uma ponte é uma aresta cuja
e
n
Um vértice u de G é vértice-corte se G – u remoção aumenta o número
t
o tem mais componentes conexas do que G de componentes do grafo

J
A
O

66

Você também pode gostar