Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PESQUISA
OPERACIONAL
WALTER MORAES
INTRODUO
PROGRAMAO LINEAR
Programao Linear uma ferramenta de planejamento que nos ajuda a selecionar
que atividades (variveis de deciso) empreender, dado que essas atividades (diversas
alternativas) competem entre si pela utilizao de recursos escassos (restries) ou ento
precisam satisfazer certos requisitos mnimos. O objetivo ser maximizar (minimizar) uma
funo das atividades, geralmente lucros (perdas).
A preocupao de otimizar problemas matemticos descritos por equaes ou
inequaes lineares no recente; pode-se dizer que remonta aos gregos. Euclides, no
sculo III A.C, no seu livro III dos elementos, registrou um processo primitivo de se
encontrar a maior e a menor distncia entre um ponto e uma circunferncia pertencentes a
um plano. Depois de Euclides, uma srie de matemticos, fsicos e economistas, como
Newton, Lagrange, Quesnay, Leontieff, Kantorovich, Dantzig, buscavam construir suas
tcnicas de otimizao. Foi George Dantzig, porm, que em 1947 criou para a Fora Area
Americana, na Universidade de Stanford, a mais eficaz e simples tcnica de minimizao e
maximizao de sistemas de inequaes lineares. Seus resultados foram publicados em
1950, no livro Linear Programming and Extensions.
INEQUAES LINEARES
A equao linear a1 x1 a2 x2 ... an xn b produz uma partio de R 2 em 3
subconjuntos:
(i)
os pontos que satisfazem a equao dada;
(ii)
os pontos que satisfazem a inequao a1 x1 a2 x2 ... an xn b ;
(iii)
os pontos que satisfazem a inequao a1 x1 a2 x2 ... an xn b .
O primeiro conjunto, dos pontos que satisfazem a equao, uma reta; os outros dois
conjuntos so denominados semi-planos.
Em particular, a soluo da inequao linear ax + by c ( ou ax + by c) denominada um
semi-plano. Geometricamente falando, um semi-plano consiste nos pontos que esto sobre
a reta delimitadora ax + by = c e nos pontos que esto de um dos lados da reta.
EX: Para construirmos o grfico da inequao 2x 3y -6, primeiro representamos
graficamente a reta 2x 3y = -6. Depois tomamos um ponto arbitrrio que no pertence
reta, por exemplo (0,0), e verificamos se ele pertence ao conjunto-soluo. Como (0,0) no
satisfaz a inequao dada, os pontos do outro lado da reta pertencem ao conjunto-soluo,
como se mostra abaixo.
y
2
2
x
-3
E
Existem quatro pontos extremos:
x
y
1
1
x
y
2y
y
4
4
x
x
x
x
3
2
D = 1, , a soluo de
Apesar de existirem
2
2y
1
2y
1
, no satisfaz
xy 4
e
x
y
f
3m
m, f
4
3f
0
(0,4)
15
(2,3)
5
(0,0)
(2,0)
Qualquer ponto (m,f) pertencente ao domnio hachurado acima virtual soluo do
problema. Queremos, porm, encontrar o par (m,f) que maximiza o lucro = 6m + 2f. Isto
implica em verificar qual o ponto extremo que produz o maior lucro.
(0,4) lucro = 6.0 + 2.4 = 8
(1,4)
lucro = 6.1 + 2.4 = 14
(2,3) lucro = 6.2 + 2.3 = 18
(2.0) lucro = 6.2 + 2.0 = 12
EX: problema de mnimo
Uma empresa quer produzir certa rao animal balanceada com o menor
custo possvel. O produto final exige, no mnimo, 20 unidades de protena digervel, 24 de
5
2G
G
2V
4V
8V
0
0
(Protena)
24 (Hidrato)
24 (Clcio)
20
6
(1,5)
3
(4,2)
2
12
Qualquer ponto (g,v) do domnio hachurado pode ser soluo do exemplo. Queremos
encontrar o par (g,v) que minimize o custo = 6G + 5V. Para isso, devemos verificar qual o
ponto extremo que produza o menor custo.
(12,0)
- custo = 6.12 + 5.0 = 72
(4,2)
- custo = 6.4 + 5.2 = 34
(1,5)
- custo = 6.1 + 5.5 = 31
(0,10)
- custo = 6.0 + 5.10 = 50
PROBLEMAS DUAIS
Maximizar f c1 x1 c2 x2 ... cn xn
a11 x1 a12 x2 ...
a x
21 1 a22 x2 ...
...
...
... ...
Sujeita a ...
a x
ak 2 x2 ...
k1 1
x1 0 , x2 0 , ...
(ii)
Problema de mnimo
Minimizar g b1w1 b2 w2 ... bk wk
a11w1 a21w2
a w
12 1 a22 w2
...
...
...
...
Sujeita a
a w
a2 m w2
1m 1
w1 0 , w2 0 ,
...
a1n xn
a2 n xn
...
...
... ...
akn xn bk
xn 0
...
... ...
...
... ,
ak 1wk
b1
b2
c1
ak 2 wk c2
...
... ...
akm wk cm
wk 0
Escrevemos os coeficientes das inequaes acima sob a forma de uma matriz, com os
coeficientes da funo objetiva na ltima linha, como segue:
(i) Problema de mximo
(ii) Problema de mnimo
a11 a12 ... a1n b1
a11 a21 ... ak 1 c1
a 21 a 22 ... a 2 n b2
a12 a22 ... ak 2 c2
...
...
... ... ... ...
... ... ... ...
a k 1 a k 2 ... a kn bk
a1m a2 m ... akm cm
c
b
c 2 ... c k
b2 ... bk
1
1
Em cada caso, a matriz dos coeficientes do problema dual pode ser obtida tomando-se a
transposta da matriz dos coeficientes do problema primal. (Observe que no existe o
ltimo elemento na ltima linha de cada uma das matrizes).
EX: Considere o seguinte problema primal de mximo:
Maximizar f 30 x 50 y
2x
x
Sujeita a x
x
16
2y
3y
0
0
11
15
30
16
11
1
2
15
3
50
16
1
2
1
3
11
15
30
50
*
Sujeita a
2u
u
u0
v
2v
w
3w
v0
w0
30
50
a11 x1
a x
21 1
...
a x
k1 1
a12 x2
a1n xn
...
a22 x2
...
ak 2 x2
...
... ... ...
...
a2 n xn
...
akn xn
...
x1 0
x2 0
xn 0
...
...
x f 1
...
...
x f 2
...
x f 1 0
...
...
...
x f k
x f k 0
b1
b2
... ...
bk
P2 ...
a12 ...
a22 ...
Pn
F1 F2 ...
a1n 1
a2 n 0
0
1
...
...
... ...
... ...
ak 1 ak 2 ...
akn 0
0
ck 0
0
c1 c2 ...
INDICADORES
...
...
...
...
...
Fn
0
0
...
1
0
b1
b2
...
bk
EX: Determinar a tabela simplexa inicial para o problema primal de mximo dado como
exemplo.
Tabela simplexa inicial
2
1
1
0
0
16
1
2
0
1
0
11
1
3
0
0
1
15
-30 -50 0
0
0
0
O ALGORITMO DO MTODO SIMPLEXO
(i)
(ii)
(iii)
i
Ache, para todas as linhas i, a menor relao a com aij 0 : o valor assim
ij
(iv)
aik
arj .
aij
Repita as etapas i), ii) e iii) at que no haja mais valores negativos na ltima
linha (indicadores), obtendo assim, a tabela terminal.
*
*
...
*
*
...
...
...
...
...
*
*
...
*
*
*
*
...
*
*
*
...
*
q1
q2
...
...
...
...
...
*
*
...
*
qk
b1*
b2*
...
bk*
Ento:
(i)
(ii)
(iii)
EX: Vamos resolver, agora, pelo mtodo dos simplexos, os problemas de mximo e de
mnimo, resolvidos anteriormente por sistemas de inequaes lineares.
PROBLEMA DE MXIMO
Tabela inicial
1 0 1 0 0
Segunda tabela
2
10
0 1 0
3 3 0
-6 -2 0
1
0
0
0
1
0
4
15
0
1
0
0
0
Tabela terminal
1 0 1 0 0
2
1 1
0 0 1 1
-1 0
2
4
8
5
10
24
20
24
Tabela terminal
3 1
1
0
1
0
1
0
6
5
0
-1
1
4
2
8
24
24
5
*
30
1
8
19
16
18
31
4
4
5
4
1
4 8
8
19
1 5
8
16 16
2
4
9
12
20
24
Segunda tabela
8
0
-6 1
1 1
2
0
0
0
0
1
0
Mximo
Tabela Inicial
10 4
2
1
2
4
8
0
-20 -24 -24 0
-8
0
1
0
0
PROBLEMA DE MNIMO
Mnimo
10
1
0
-3
6
1
3
2
3
0
1
3
-2
11
A soluo tima do problema dado , pela tabela terminal, o ponto Q (1,5) e o valor mnimo
da funo objetiva 31. Isto est coerente com a soluo anterior.
EXERCCIOS
1) Representar graficamente cada inequao:
(i)
x -4
(ii)
x 3
(iii)
y2
(iv)
y -3
(v)
2x + 5y 0
(vi)
3x 5y -15
(vii) x 2y 4
(viii) 3x + y 6
2) Representar graficamente a soluo de cada sistema:
(i) 2x y 4
(ii) x + y 5
(iii) x y 2
x1
x 2y 2
2x + y -2
y1
(iv) 3x + 2y 6
xy1
x -1
2x
3x
12
14
C
7
Reduo Custo 1
de uma
unidade
de
poluio
4
1
8
2
5
-1
Mximo
de permissvel
80 unidades
poluio
de
Como o processo industrial poluidor, a firma tambm pode alocar recursos para
reduzir a poluio de modo a no ultrapassar o mximo permissvel de 80 unidades.
Determine o lucro mximo total que a firma pode conseguir.
23) Uma tarefa constituda de trs operaes: preparao, embalagem e transporte. As
capacidades mximas dirias de cada seo so: preparao 160 up (unidades de
preparao); embalagem 240 ue (unidades de embalagem); transporte 170 ut
(unidades de transporte). A manipulao de uma unidade do produto A exige 5 up,
10 ue e 5 ut; para B, cada unidade exige 2 up, 2 ue e 6 ut; uma unidade de C exige 8
up, 6 ue e 3 ut. Os lucros lquidos para cada unidade de A, B e C so,
respectivamente, 10, 8 e 5. Determine o lucro mximo, sem ultrapassar as
capacidades mximas das sees.
15
EX:
A
x1 , x2 , x2 , x1 , x2 , x2 , x1 , x3 , x3 , x2
x2
x3
ARCOS ADJACENTES
16
x2 , x1
adj x1 , x3
VRTICES ADJACENTES
Dois vrtices x e y so adjacentes se e s se so distintos e existe o arco (x,y) ou (y,x). Em
outras palavras, vrtice adjacente a x ou vizinho a x todo y ligado a x por ao menos um
arco. (x adjacente a y (x,y) (y,x)).
EX: x3 adj x1
O conjunto de vrtices adjacentes a x expresso como ( x) y / ( x, y ) ( y , x)
SUCESSOR de um vrtice x todo y que seja extremo final de um arco que parte de x. O
conjunto dos sucessores expresso como ( x ) y / ( x, y ) .
ANTECESSOR de um vrtice x todo y que seja extremidade inicial de um arco que
termina em x. O conjunto dos antecessores de x expresso como ( x) y / ( y, x) .
NOTAO DE BERGE
Uma notao bastante cmoda para os grafos a empregada por Berge.
Assim anotaremos: R {a} = {x / a R x} ou simplesmente Ra .
Da ilustrao:
x1
x2
x3 R{ x1 } = { x2 , x3 }, R{ x2 } = { x1 , x2 }, R{ x3 } ={
x2 }.
Nota-se que esta notao empregada para todos os elementos de X, descreve, determinando
perfeitamente o grafo.
R x
Pode-se empregar a mesma notao extendida para conjuntos: R x / x A x
A
17
Da ilustrao, temos: R{ x1 , x2 } = R{ x1 } R { x2 } = { x2 , x3 } { x1 , x2 } = { x1
, x2 , x3 }.
ARCOS INCIDENTES
Consideremos um grafo G = (A,R) e um subconjunto B, no vazio de A. Diremos:
- = (x,y) incidente a B (convergente) se e s se x B e y B.
- = (x,y) incidente a B (divergente) se e s se x B e y B.
Em outras palavras, um arco incidente se ele tem uma e uma s extremidade pertencente a
A.
Ao conjunto dos arcos incidentes divergentes a B, chamamos de conjunto de emisso ou
conjunto de exteriorizao de B e indicamos com:
B ( x, y ) /( x, y ) , x B y B
Ao conjunto dos arcos incidentes convergentes a B, chamamos de conjunto de recepo ou
conjunto de interiorizao de B e indicamos com:
B ( x, y ) /( x, y ) , x B y B
OBS 1: Ao conjunto B B B , denominamos de conjunto de arcos incidentes.
OBS 2: No caso do conjunto B ser unitrio, falamos de incidncia a vrtice:
a x, a / x, a
a a, y / a, y
EX: Seja o grafo G = (A,R) dado pela representao sagital e seja B = {a, b, d}.
c
b
f
a
A
B c, a , e, d
B a, c , d , e , d , f
a c, a , d , a
18
a a, b , a, c
b b, b , a, b
b b, b
Para fins de clculo, associamos a um grafo uma matriz; h 3 tipos de matrizes mais
habitualmente usadas:
MATRIZ LATINA: usada em problemas de enumerao de caminhos.
Seja o grafo:
x1
x3
x1
x1
x2
x1
x2
x2
x3
x1
x3
x2
x2
x3
x3
x3
x3
aa
A aij /
ij
ij
1
0
Do exemplo anterior: A =
x , x
x , x
i
x1
x2
x3
x1
x2
0
0
1
0
1
1
x3
19
x1 x2 , x3 , x4
x2
x2 x3
x2 x1
x1
x3
x3 x1 , x2 , x4
x4 x1
x4
x4 x3
B bij / bij
b
ij
A matriz de incidncia menos utilizada por ocupar muito espao de memria. utilizada
em problemas envolvendo fluxos e ciclos.
u1
EX:
x1
u2
x2
u5
u3
x3
x4
u4
x1
B = x2
x3
x4
u1
u2
u3
u4
u5
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
SEMI-GRAU
Define-se semi-grau positivo (emisso) e semi-grau negativo (recepo) de um vrtice a,
por:
20
g a N a
g a N a
g a
ga
a
2
b
2
c
1
d
1
e
2
f
2
4
3
2
4
3
4
Utilizando uma matriz booleana, a soma em linha fornece g e a soma em coluna fornece
g .
a
b
c
d
e
f
a
0
0
1
1
0
0
2
b
1
1
0
0
0
0
2
c
1
0
0
0
0
0
1
d
0
0
0
0
1
0
1
e
0
0
0
1
0
1
2
f
0
0
0
1
0
1
2
2
1
1
3
1
2
SUBGRAFO
f
EX: G = (A,R)
e
c
21
G1 = (B,R)
CADEIAS
Uma cadeia uma seqncia de arcos (arestas) de um grafo, tal que cada arco (aresta) tem:
- Uma extremidade em comum com o arco (aresta) antecedente ( exceo do
primeiro);
- A outra extremidade em comum com o arco (aresta) subseqente ( exceo do
ltimo).
Como no se especifica de quais extremidades se trata, o conceito de cadeia no
orientado; por isso se pode falar de uma cadeia constituda de arestas, em um grafo no
orientado.
Uma cadeia pode ser representada pela seqncia de arestas que a constituem ou dos
vrtices que ela encontra:
u1 , u2 ,..., un
x1 , x2 ,..., xn
ou
CAMINHO
Um caminho uma cadeia na qual todos os arcos possuem a mesma orientao; o conceito
de caminho , portanto, orientado e no tem sentido em um grafo no orientado.
A notao a mesma usando-se parnteses ao invs de colchetes.
u1 , u2 ,..., un
x1 , x2 ,..., xn
ou
Uma cadeia (caminho) dita elementar se no passar duas vezes pelo mesmo vrtice e
simples se no passar duas vezes pela mesma aresta (arco).
CICLO
Ciclo uma cadeia simples na qual os vrtices inicial e final se confundem (fechada).
Um ciclo que passa por todas as arestas dito euleriano.
CIRCUITO
Circuito um caminho simples e fechado.
Um circuito elementar que passa por todos os vrtices dito hamiltoniano.
EXEMPLOS DE CADEIAS
a
g
1 = [ a, b, c, d ]
2 = [c, d, e, f, d]
22
simples e elementar
simples e no-elementar
c
e
1 = [c, d, b, c]
2 = [c, d, e, f, d, b, c]
EXEMPLOS DE CICLOS:
EXEMPLOS DE CAMINHOS
1 = (b, c, d, f) simples e elementar
a
g
2 = (c, d, f, e, d, g) simples e no elementar
f
c
EXEMPLOS DE CIRCUITOS
1 = (d, f, e, d)
2 = (b, c, d, f, e, d, b)
COMPRIMENTO E DESVIAO
Diz-se que o comprimento de um caminho (ou cadeia) o nmero de seus arcos ( ou
arestas).
EX:Do exemplo anterior, temos: l( 1 ) = l (b, c, d, f) = 3
l( 2 ) = 4
l( 3 ) = 5
O caminho de comprimento mnimo de um vrtice x a um vrtice y a geodsica de x a y.
O comprimento de uma geodsica a desviao de x e y.
MATRIZ DE DESVIAES
Seja D = d ij a matriz de desviaes d ij . Para a obteno de D, utiliza-se o seguinte
algoritmo:
F1: Computam-se as potncias sucessivas at (n 1) da matriz associada ao grafo. (n = n
de vrtices);
( p)
F2: Toma-se: d ij = menor expoente p para o qual Cij 0 .
23
d ij
( p)
= se e s se p n 1, Cij 0 .
x1
x2
x3
x5
x6
Matriz associada ao grafo:
x1
x1
0
x2
0
x3
0
x4
1
x5
1
x6
0
x2
M x3
1
0
0
1
0
0
0
0
0
0
1
0
x4
x5
0
0
1
0
0
0
1
0
0
0
0
1
x6
1
0
0
3
M
1
0
1
0
1
0
0
0
0
0
0
0
1
1
2
0
0
1
2
2
1
2
3
1
2
2
M4
M2
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
2
0
0
1
1
1
1
2
0
0
0
0
0
0
0
1
1
3
0
0
3
1
3
2
3
5
3
5
3
1
1
1
1
1
1
1
1
5
M
2
0
1
1
3
0
0
0
0
0
0
0
2
1
4
0
0
6 9
3 5
6 10
3 5
5 8
24
3
1
2
D
2
2
1
1
2
3
1
2
3
3
2
1
1
2
2
1
R n {x}
n
R {x}
R n {x}
R R n 1{x}
R{x}
1
R R n 1 {x}
para n 2
para n = 1
para n 2 ( n Z )
a
25
e
d
c
d}
para n 2.
R 1 {c} = {b, c, e}
R 2 {c} = R 1 {b, c, e} = R 1 {b} R 1 {c} R 1 {e} = {a, e} {b, c, e} ={a,
b, c, e}
R 3 {c} = R 1 {a, b, c, e} = R 1 {a} R 1 {b, c, e} ={a} {a, b, c, e} R n {c}={a,
b, c, e}
para n 2.
FECHO TRANSITIVO DE EMISSO
Define-se fecho transitivo de emisso relativo ao vrtice a por:
Ra x / x R i a, i 1,2,3,..
^
R a
R a
= {a}
^*
26
R{b} =
{b, c, d, e}
R {b} =
{a, b, c}
OPERAES MATRICIAIS
Define-se para o conjunto de valores 1 e 0 a adio e multiplicao booleana pela tabela:
x
1
1
0
0
y xy xy
1
1
1
0
1
0
1
1
0
0
0
0
r 1
27
0
1
0
1
1
1
N 1
0
0
0
0
0
e P 0
0
0
0 , determinar:
1
a) M N
b) N P
1
a) M N = 1
0
1
b) N P = 1
0
0
1
0
1
1
1
0
0
M 1 M
M i M M i 1
f
Determinando a matriz associada ao grafo, temos:
28
M=
a
b
c
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
d
e
f
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
M 2
0
0
1
0
0 1
1 1
0 1
0 1
1 1
1 1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
M 4
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1 1 1
1 1 1
1 1 1
1 1 1
0 1 1
0 1 1
M 3
1
0
1
0
M 5
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1 1 1
1 1 1
1 1 1
1 1 1
0 1 1
0 1 1
1
1
1
0
0
0
0
0
0
0
1 1 1
1 1 1
1 1 1
1 1 1
0 1 1
0 1 1
Assim, observando a linha 3 da M 4 , por exemplo, podemos afirmar que c atinge com
caminhos de comprimento 4, os vrtices b, d, e e f, mas no atinge a e c.
Tambm observando a comuna 2 da M 4 , podemos afirmar que o vrtice b atingvel com
caminhos de comprimento 4 pelos vrtices a, b, c, e d, mas no pelos vrtices e e f.
MATRIZ DE ATINGIBILIDADE
Com o teorema de Festinger, a soma: M M 2 M 3 ... M n 1 fornece uma matriz
M xij
n 1
nxm
p
com xij cij tal que: xij 1 se e s se existir um caminho de xi a x j ,
p 1
p
emisso, denominada matriz de atingibilidade: M R M .
p 1
29
2
3
4
5
Calculando: M R M M M M M , obtemos a matriz:
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1 1
1 1
1 1
1 1
1 1
1 1
2 TEOREMA DE FESTINGER
p
Em um grafo G = (A, R), o valor de cij da potncia p-sima da matriz M associada a G
igual ao nmero de caminhos de comprimento p do vrtice xi ao vrtice x j .
EX: Considerando o mesmo grafo anterior, teremos, por exemplo:
M2
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
2
0
0
1
1
1
1
1
1
1
0
0
3
M
1
0
1
0
1
0
0
0
0
0
0
0
1
1
2
0
0
1
2
2
1
2
3
1
2
2
M4
1
1
1
0
1
1
2
0
0
0
0
0
0
0
1
1
3
0
0
3
1
3
2
3
4
5
3
5
3
Observando a linha 6 de M 4 , por exemplo, podemos afirmar que f atinge e por 3 caminhos
de comprimento 4 e atinge f por 5 caminhos de comprimento 4. Observando a coluna 4,
verificamos que d atingido por caminhos de comprimento 4, de a por 2, de b por 1, de c
por 1 e de d por 3.
CONEXIDADE
A noo de conexidade corresponde ao estado de ligao dos vrtices de um grafo, ou
seja, possibilidade de se transitar de um a outro vrtice.
DEFINIO: Um grafo conexo se dois quaisquer de seus vrtices podem ser unidos por
um caminho.
30
TIPOS DE CONEXIDADE
Os grafos conforme a existncia ou no de caminhos ligando os seus vrtices apresentam
tipos de conexo, que procuraremos estudar neste item.
DEF I: Um grafo G = (A,R) fortemente conexo se e s se x A, y A, x y, existe
um caminho de x a y e existe um caminho de y a x.
DEF II: Um grafo G = (A,R) semi-fortemente conexo (ou unilateralmente conexo) se e s
se x A, y A, x y, existe um caminho de x a y ou existe um caminho de y a x.
DEF III: Um grafo G = (A,R) fracamente conexo (ou simplesmente conexo) se e s se
x A, y A, x y, existe uma cadeia de x a y.
DEF IV: Um grafo G = (A,R) desconexo se e s se x A, y A, x y, para os quais
no existe uma cadeia de x a y.
OBS 1: Observe que nas definies III e IV considera-se o grafo no orientado
correspondente.
OBS 2: A qualquer grafo satisfazendo a I ou II ou III dizemos que conexo.
EXEMPLOS:
G1
G2
e
d
b
f
f
G1 = Fortemente conexo
G3
a
b
f
c
d
G3 = fracamente conexo
d
G2 = unilateralmente conexo
G4
a
e
b
f
d
c
G4 = desconexo
31
R {x} .
Resulta que y
R{x} R {x} .
Para no excluir
R {x0 } .
F.4. Calcula-se R
{ x0 } R {x0 } que ser a componente C1 fortemente conexa que
possui x0 .
F.5. Elimina-se os vrtices de C1 de A e repetem-se as fases para o subgrafo.
a
f
b
e
g
R {f}
*
= {f, e, d, a, b}
R {f}
32
F.1. Tomamos o vrtice c por exemplo e repetindo as fases temos a componente C4 {c}
F.1. Tomamos o vrtice i por exemplo e repetindo as fases temos a componente C5 {i}
b) Algoritmo de Malgrange Tomescu (1967)
1) Toma-se a matriz booleana associada ao grafo com uma coluna emoldurante para o fecho
transitivo de emisso e seguem-se as seguintes fases:
F.1. Escolhemos um vrtice x e colocamos 0 na coluna.
F.2. Colocamos 1 na coluna correspondente s linhas dos elementos y R{x}.
F.3. Tomo todos os vrtices y que possuem 1 na coluna emoldurante e coloco 2 para aqueles
z, tais que z R{y}.
F.4. Procede-se assim, sucessivamente, colocando 3, 4 etc, at que no seja possvel
continuar.
F.5. Coloca-se uma cruz na coluna para os no assinalados.
2) Toma-se uma linha emoldurante para o fecho transitivo de recepo e seguem-se as
fases:
F.1. Tomamos 0 para o vrtice escolhido anteriormente.
F.2. Procedemos analogamente s fases anteriores (agora observando as colunas).
*
f
1
i
1
1
1
1
1
x
X
X
2
X
1
0
3
2
3
{f} = {c, e, f, g, h, i}
R {f}
={a, b, d, e f}
C1 = {f, e}
33
a
a
b
c
d
g
h
i
b
1
1
c
1
1
1
1
1
1
1
1
1
X 0
1
2
3
0
X
X
4
X X X
R {d } {a, b, c, d , i} , R {d } {a, b, d } ,
C2 {a, b, d }
3) Iniciamos com h
c
g
h
i
c
1
i
1
1
1
X 1
X
{h} {g , h, i} ,
X
1
0
1
R {h} { g , h}
, C3 {g , h}
4) Iniciamos com c
c i
c 1 1 0
i
1
0 X
*
R {c} {c, i} , R {c} {c} , C4 {c} , C5 {i}
c) Algoritmo de Bernard Roy ( 1961)
F.1. Escolhe-se um vrtice arbitrrio e marca-se o sinal .
F.2. Se um vrtice marcado + marca-se com + todos os pontos R{x}.
F.3. Se um vrtice marcado marca-se com todos os pontos de R {x} .
F.4. Todos os vrtices assinalados com duplo sinal, constituem uma componente conexa.
F.5. Elimina-se os vrtices da componente e repete-se o processo.
EX: Iniciamos com f
af .
- b
de .
g +
+ c
34
i+
C1 = {f, e}
Iniciamos com d
a.
. b
d.
g
+ c
i+
C2 {a, b, d }
Iniciamos com h
c
i+
Iniciamos com c
C3 {g , h}
i+
C4 {c} , C5 {i}
d) Algoritmo Matricial
Aprendemos a calcular a matriz de atingibilidade ou matriz dos fechos transitivos de
emisso, que fazendo a transposta fornece os fechos transitivos de recepo.
Faamos o produto direto dessas matrizes:
M M t zij
R
zij 1
zij 1
se e s se xij 1 e x ji 1 , ou que
se e s se xi atinge x j e x j atinge xi .
35
I M n 1
I M M 2 M 3 ... M n 1
I M
1 1
1 1
1
1
1
1
1
1 1 1
1 1 1
1
1 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
I M 2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
I M 4
I M 8
1 1 1
1 1 1
1
1 1 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1 1 1
1 1 1
1
1 1 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
M M t
R
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
X 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
=
36
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
{a, b, d }
{g , h}
{c}
{i}
RVORES
Definio: Um grafo finito no orientado uma rvore se e s se conexo e sem ciclo.
EX:
G1
G2
G1 rvore
G3
37
G3 no rvore ( desconexo )
Se um grafo rvore com N vrtices, ento possui N 1 arestas.
Se um grafo sem ciclo e possui N 1 arestas, ento conexo e, portanto, rvore.
TRAOS SOBRE RVORES
a
m
j 1
ni ; P
; N
i 1
p.m
j 1
i.ni
; I
i 1
b) Estrela mpar
Para estrelas pares com o ponto central de grau 2j, o nmero de traos j; assim para a
ilustrao a) o grau 6, portanto o nmero de traos suficientes 3. Para estrelas mpares
38
(i 1).n
i 1
j.m
j 1
jm
(i 1) ni ( k 1)
jm i.n n k 1
jm i.n N K 1
f
g
1
y
l
i
d
g
vrtices
a, c, d, f, g, k, l, n, o, q, r , v,
u, y, z
k
n
15
39
2
4
3
5
i, s
b, m, t
e, h, j, x
p
2
3
4
1
M=2+3=5
P = 1.2 + 2.3 = 8
I = 1.4 + 2.1 = 6
T = P + I M + 1 = 8 + 6 5 + 1 = 10
Enumerao: ([a, b, c]), ([n, m, b, e, d]), ([e, f]), ([g, h, I, j, k]), ([j, l]), ([h, m, p, o]),
([g, p, r]), ([p, s, t, u]), ([v, t, x, y]), ([x, z]).
RVORE PARCIAL DE VALOR MNIMO
Em problemas de interligao (comunicaes, redes de luz, gua, esgotos etc) h interesse
em se proceder interligao de todos os pontos atendidos com o consumo mnimo de
meios. Nos casos em que o benefcio prestado aos usurios distribudo a todos
simultaneamente, o problema pode ser modelado por um grafo que represente todas as
possibilidades de interligao (grafo suporte), procurando-se, a seguir, uma rvore parcial
de valor mnimo desse grafo. O grafo suporte , evidentemente, no orientado e valorado,
podendo os valores representar custos, comprimentos etc.
H diversos algoritmos para obteno de uma rvore parcial (ou geradora) de valor mnimo,
a partir de um grafo; examinaremos 2 desses algoritmos.
ALGORITMO DE KRUSKAL
Trata-se de um algoritmo adequado ao trabalho manual, dada sua simplicidade; a
programao , no entanto, desvantajosa em relao ao outro mtodo.
Dado um grafo G = (A, R) no orientado e valorado, constri-se a rvore parcial, partindose do grafo trivial G0 ( A, ) e adicionando-se interativamente a aresta de menor valor
que no forme ciclo com as j escolhidas.
EX: Seja o grafo:
4
b
3
6
7
6
g
b
2
3
d
2
5
6
4
10
40
7
a
a
b
c
d
e
f
g
b
c
d
3 (II)
4 (III) 6
2 (I)
f
4 (IV)
7
10
g
5 (V)
5
6 (VI)
8
A seqncia das escolhas est indicada na matriz pelos algarismos romanos e os valores
riscados correspondem s arestas que formam ciclo e que foram descobertas durante a
execuo do algoritmo.
ALGORITMO DE DIJKSTRA
Este algoritmo trabalha com uma nica sub-rvore parcial, que recebe, a cada interao, o
vrtice adjacente mais prximo. A lista de distncias mnimas dos vrtices adjacentes
sub-rvore , ento, atualizada levando-se em conta o ingresso do ltimo vrtice. O
processo repetido at que a sub-rvore possua n 1 arestas.
EX: Considere o grafo anterior.
Inicializao: [ c, d] (2)
Vrtices adjacentes: b e
Distncias mnimas: 4 10
Vrtice a incluir:
f
9
g
6
Vrtices adjacentes: a e f g
Distncias mnimas: 3 10 7 5
Vrtice a incluir:
Vrtices adjacentes: e f g
Distncias mnimas: 10 4 5
Vrtice a incluir:
f via [a, f]
Vrtices adjacentes: b c d e g
Distncias mnimas: 3 8 9 7 5
Vrtice a incluir:
Vrtices adjacentes: b c e f
41
Distncias mnimas: 5 6 6 8
Vrtice a incluir:
Pode-se notar que este algoritmo trabalha por incluso de vrtices, cada vrtice podendo
levar apenas uma aresta rvore; logo no h preocupao com a formao de ciclos.
EXERCCIOS
1) Dado o grafo G = (A, R) com A = {a, b, c, d} e R = {(a,b), (a, d), (b,b), (b,c), (b,a),
(c,a) , (c,c) , (c,d), (d,a), (d,c)}:
a) Descreva-o na notao de Berge;
b) Fornea R{a, c} e R{b, d}.
2) Faa as representaes do grafo do exerccio 1:
a) Sagital;
b) Matriz latina;
c) Matriz booleana (matriz de adjacncia);
d) Matriz de incidncia.
3) No grafo do exerccio 1, fornea:
a) Arcos adjacentes ao arco (b,c);
b) Vrtices adjacentes ao vrtice c.
4) No grafo do exerccio 1, fornea:
a) {a, b}
b) {a, b}
c) {a, c}
d) {d, c}
e) g a
f) g a
g) g c
h) g c
i) g b
j) g b
42
a
1
0
1
0
0
1
b
1
1
0
1
0
0
c
0
1
1
0
1
0
d
0
0
1
1
0
1
e
1
0
0
1
1
0
f
0
1
0
0
1
1
e) {b, d}
10) Para o grafo do exerccio 9, d um exemplo de caminho no simples e elementar e um
de circuito.
11) Determine a matriz de desviao do grafo do exerccio 1 e indique:
a) A geodsica de a a c;
b) A geodsica de b a d.
12) Determine a matriz de desviao do grafo do exerccio 5 e indique:
a) A geodsica de a a f;
43
b) A geodsica de c a e;
c) A geodsica de b a d.
13) Determine a matriz de desviao do grafo do exerccio 9 e indique:
a) A geodsica de a a e;
b) A geodsica de b a f;
c) A geodsica de c a d.
14) Para o grafo do exerccio 1, indique 2 subgrafos.
15) Para o grafo do exerccio 9, indique 3 subgrafos.
16) Dados os grafos, calcule as potncias solicitadas:
b
G1
G2
c
f
e
d
f
a)
b)
c)
d)
e)
f)
g)
h)
R n {a}
R n {e}
R n {f}
R n {g}
R n {c}
R n {d}
R n {f}
R n {g}
17) Para os grafos do exerccio 16, calcule os fechos transitivos de emisso relativos aos
vrtices:
a)
b)
c)
d)
a
b
f
g
44
18) Para os grafos do exerccio 16, calcule os fechos transitivos de recepo relativos aos
vrtices:
a)
b)
c)
d)
d
e
f
g
G2
d) R n {f}
23) Para os grafos do exerccio 21, determine:
a) Os fechos transitivos de emisso relativos aos vrtices a e e;
b) Os fechos transitivos de recepo relativos aos vrtices c e d.
24) Para os grafos do exerccio 21, determine:
a) As matrizes dos fechos transitivos de emisso (atingibilidade) e interprete os valores
de uma coluna;
b) As matrizes dos fechos transitivos de recepo e interprete os valores de uma
coluna.
25) D os tipos das conexidades dos grafos:
b
a)
b)
e
e
c)
d)
f
b
46
e)
f
d
k
26) Determine as componentes fortemente conexas dos grafos:
a)
b)
f
b
c
l
e
f
d
g
27) Determine as componentes fortemente conexas dos grafos:
a) G1
a b c d e f g
a
1
1
1
b 1
1
c
1 1 1
d
1 1
e
1 1
f
1 1
1
g
1
b) G2
a b c d e f g h
a
1
1 1
1
b 1 1
1
c
1 1
1
d
1
1
1
47
e
1
1 1
1
f
1
1
1
g
1
1 1
h 1 1
1 1
c) G3
a b c d e f g h i
a 1 1
1
1
b
1
1 1
1
c
1
1
d
1
e
1 1
1
f
1
1
1
g 1
1
h
1
1
i
1
1
28) Determine o nmero de traos suficientes para cobrir as rvores:
a)
b)
f
5
e
30) Determine a rvore parcial de valor mnimo:
48
5
5
a
2 f 1 g 3
c
6
6
8
h
8
4 4
e
3
d
31) Determine a rvore parcial de valor mnimo:
6
b
4
g 6
9
j
6
8
d 2 6f
8
8
c 35 6
h
7
6
a 5
4 e
9
i
49