programa˘c~ao em redes - sweetsweet.ua.pt/crequejo/teach/mio.or.pdf · a matriz a tem caracter...
TRANSCRIPT
Programacao em Redes
Programacao em Redes
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 1 / 132
Problema de Transportes
Problema de Transportes
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 2 / 132
Problema de Transportes
Dados
m pontos origem, cada um com ai (i = 1, . . . ,m) unidades dum certoproduto;
n pontos destino, cada um requerendo bj (j = 1, . . . , n) unidades domesmo produto;
cij custo unitario de transporte entre cada origem i e cada destino j .
Pretende-se determinar a forma admissıvel de transportar o produto entreas origens e os destinos com custo mınimo.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 3 / 132
Problema de Transportes
Sendoxij no de unidades transportadas entre a origem i e o destino j .
e assumindo que (com ai e bj nao negativos)
m∑i=1
ai =n∑
j=1
bj
se∑m
i=1 ai >∑n
j=1 bj cria-se um destino fictıcio;se∑m
i=1 ai <∑n
j=1 bj cria-se uma origem fictıcia;
em ambos os casos os custos de transporte associados serao nulos.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 4 / 132
Problema de Transportes
A formulacao em P.L. do problema de transportes (P.T.) e:
min
m∑i=1
n∑j=1
cijxij
s. a:n∑
j=1
xij = ai , i = 1, . . . ,m
m∑i=1
xij = bj , j = 1, . . . , n
xij ≥ 0, i = 1, . . . ,m, j = 1, . . . , n
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 5 / 132
Problema de Transportes
em notacao matricial e:
min cxs. a:
Ax = bx ≥ 0
em quex = (x11, . . . , x1n, x21, . . . , x2n, . . . , xmn)t
c = (c11, . . . , c1n, c21, . . . , c2n, . . . , cmn)
b = (a1, . . . , am, b1, . . . , bn)t
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 6 / 132
Problema de Transportes
A e uma matriz (m + n)× (mn) em que cada coluna (i , j) eAij = ei + em+j , i.e. tem a forma especial
A =
1 0 · · · 00 1 · · · 0...
.... . .
...0 0 · · · 1I I · · · I
em que1 e um vector linha de 1′s com dimensao n0 e um vector linha de 0′s com dimensao nI e a matriz identidade n × nQualquer submatriz basica de A e triangular
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 7 / 132
Problema de Transportes
Exemplo
Consideremos um P.T. com 3 origens e 4 destinos, com
a = [ai ] = [6 8 10],
b = [bj ] = [4 6 8 6]
e os custos unitarios de transporte dados por C = [cij ] =
1 2 3 44 3 2 00 2 2 1
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 8 / 132
Problema de Transportes
omitindo os zeros a matriz A tem a forma
1 1 1 11 1 1 1
1 1 1 1
1 1 11 1 1
1 1 11 1 1
e b =
68
104686
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 9 / 132
Problema de Transportes
minx11 + 2x12 + 3x13 + 4x14 + 4x21 + 3x22 + 2x23 + 2x32 + 2x33 + x34
s. a: x11 + x12 + x13 + x14 = 6x21 + x22 + x23 + x24 = 8x31 + x32 + x33 + x34 = 10
x11 + x21 + x31 = 4x12 + x22 + x32 = 6x13 + x23 + x33 = 8x14 + x24 + x34 = 6
xij ≥ 0, i = 1, . . . ,m, j = 1, . . . , n
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 10 / 132
Problema de Transportes
Propriedades do Problema de Transportes
O problema de transportes tem sempre uma solucao admissıvel
(xij =aibj∑
ai=
aibj∑bj
)
Tem-se 0 ≤ xij ≤ min{ai , bj}, ∀i , jDos dois items anteriores resulta que o P.T. tem sempre solucaooptima limitada
A matriz A tem caracterıstica igual a m + n − 1
A matriz A e totalmente unimodular (o det. de qq submat. quadradatem valor 0, 1 ou −1)
Se os ai (∀i) e os bj (∀j) sao inteiros, entao qualquer solucao basicaadmissıvel tem valores inteiros
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 11 / 132
Problema de Transportes
o prob. de transportes e facilmente representado pelo quadro seguinte comm linhas e n colunas para alem da coluna dos ai e da linha dos bj
x11 x12 · · · x1j · · · x1n a1
x21 x22 · · · x2j · · · x2n a2...
......
...xi1 xi2 · · · xij · · · xin ai...
......
......
xm1 xm2 · · · xmj · · · xmn amb1 b2 · · · bj · · · bn
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 12 / 132
Problema de Transportes
Representacao e caracterizacao de uma base
Sendo B uma submatriz basica de A, como A e totalmente unimodulardet(B) = ±1, det(B−1) = ±1 e os elementos de B−1 sao todos 0, 1 ou−1.
Deste modo, qualquer coluna actualizada do quadro do simplex B−1Aj temapenas os elementos 0, 1 ou −1 e, portanto, qualquer uma destas colunaspode ser obtida pela simples adicao e subtraccao de colunas basicas.
Esse facto pode ser visto no quadro do P.T. atraves de um ciclo.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 13 / 132
Problema de Transportes
No quadro do P.T. um ciclo e uma sequencia de variaveis tais que
cada par de variaveis adjacentes esta na mesma linha ou na mesmacoluna;
nenhum conjunto de 3 ou mais variaveis consecutivas esta na mesmalinha ou na mesma coluna;
a primeira e a ultima variavel da sequencia estao na mesma linha ouna mesma coluna.
• • • •• •
• •• •
(1,2),(1,4),(3,4),(3,2) (1,1),(1,4),(2,4)(2,6),(4,6),(4,1)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 14 / 132
Problema de Transportes
Qualquer ciclo tem um numero par de variaveis.
Se T for um subconjunto das colunas da matriz A, as colunas de Tsao linearmente dependentes se e so se as var. corresp., ou umsubconj. delas, formam um ciclo.
Uma base pode ser representada por uma arvore de suporte (grafoconexo e sem ciclos) com pelo menos uma celula em cd linha e cdcoluna.
B B B B B B B BB B B BB BB B B B
base 1 base 2
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 15 / 132
Problema de Transportes
a cada celula basica no quadro corresponde um arco no grafo do P.T.
Uma base possui m + n − 1 arcos basicos ou cel. e nao possui ciclos
cada celula nao basica forma um ciclo com um subconjunto de cel.basicas
as celulas basicas desse ciclo podem ser usadas para representar a naobasica (nem sp sao necess. todas as cel. bas. desse ciclo, apenas os’cantos’)Ex: base 1: a32 = a36 − a16 + a12
base 2: a32 = a22 − a24 + a34
as cel. basicas podem ser representadas por uma arvore de suporte
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 16 / 132
Problema de Transportes
O problema dual
max∑
i aiui +∑
j bjvjs. a:
ui + vj ≤ cij , i = 1, . . . ,m, j = 1, . . . , n
ui , vj livres, i = 1, . . . ,m, j = 1, . . . , n
As condicoes de complementaridade de slacks sao
(cij − ui − vj)xij = 0, i = 1, . . . ,m, j = 1, . . . , n
Se determinarmos um par de sol. admissıveis para o primal e dual, queverifiquem as cond. de complementaridade, elas serao optimas.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 17 / 132
Problema de Transportes
O metodo simplex para o P.T.
1 Determinar uma sol. bas. admiss. inicial.
2 Testar a optimalidade da sol. actual.Para isso calcular os custos reduzidos zij − cij para cada var. naobasica. Se todos zij − cij ≤ 0, entao STOP a sol. e optima, casocontrario continuar no Passo 3.
3 Seleccionar as variaveis de entrada e de saıda da base.
4 Obter a nova sol. bas. admiss. e repetir o Passo 2.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 18 / 132
Problema de Transportes
Passo 1. Obtencao de uma sol. bas. admiss. inicial
Como escolher o valor para exactamente m + n − 1 var. bas. ?
1. Metodo do canto superior esquerdo ou do canto noroeste (NW)
tornar bas. a var. x11 atribuindo-lhe o maior valor possıvelx11 = min{a1, b1} esgotando ou a origem 1 ou o destino 1
no caso 1, a linha 1 deixa de ser considerada e tornamos bas. a var.x21 atribuindo-lhe o maior valor possıvel x21 = min{a2, (b1 − x11)}esgotando ou a origem 2 ou o destino 1
no caso 2, a coluna 1 deixa de ser considerada e tornamos bas. a var.x12 atribuindo-lhe o maior valor possıvel x12 = min{(a2 − x11), b2}esgotando ou a origem 1 ou o destino 2
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 19 / 132
Problema de Transportes
em cd passo do met. esgotamos ou uma origem ou um destino econtinuamos no caso 1 na mesma coluna e linha seguinte, no caso 2na mesma linha e coluna seguinte
no max. obtemos n + m − 1 var. positivas que nao formam ciclo
se esgotarmos simultaneamente uma origem e um destino, podemosatribuir um zero a proxima var. da mesma linha ou da mesma colunae continuar como anteriormente
Desvantagem: nao tem em conta a matriz dos custos.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 20 / 132
Problema de Transportes
Exemplo
5 3 2 100
4 2 1 50
80 30 40
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 21 / 132
Problema de Transportes
2. Metodo do mınimo da matriz de custosem cd passo do met. torna-se bas. a var. a que corresponde omenor custo da matrizconsidere o exemplo anterior
3. Metodo de VogelEm cada passo do met. torna-se bas. a var. a quecorresponde o menor custo da linha ou coluna associada amaior das diferencas entre os dois menores custos de cadalinha e cada coluna.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 22 / 132
Problema de Transportes
Exemplo
8 3 5 9 200
1 7 4 6 700
3 8 2 4 100
250 350 200 200
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 23 / 132
Problema de Transportes
Passo 2. Testar a optimalidade da sol. bas. admiss. actual
calculo dos custos reduzidos zij − cij para cd var. nao basica
se zij − cij ≤ 0 para todas as var., STOP a sol. actual e optima, senaocontinuar no Passo 3.
ha dois modos de calculo dos custos reduzidos
(use o exemplo usado no met. de Vogel, mas det. a sol. bas. admiss. inicialatraves do met. canto noroeste)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 24 / 132
Problema de Transportes
1. Metodo de Stepping-Stonebaseia-se no met. simplex
construcao do ciclo associado a cd var. nao bas.calculo dos custos reduzidos zij − cij para cd var. naobasica em que
zij − cij =∑
xk1k2v .b.ciclo
−(⊕/ ck1k2)− cij
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 25 / 132
Problema de Transportes
2. Metodo de Dantzigbaseia-se nos resultados da dualidade
construir um vector (u, v) que verifique as cond. decomplement. de slacks para isso
const. um sist. com m + n − 1 equacoes: se xij e var.bas. entao ui + vj = cijcomo uma das m + n rest. do prob. primal eredundante, este sistema e indeterminado, pelo que sefixa o valor de uma das var. duais a zeroresolucao do sist.
calculo dos custos reduzidos zij − cij para cd var. naobasica em que
zij − cij = ui + vj − cij
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 26 / 132
Problema de Transportes
Passo 3. Seleccionar as var. de entrada e saıda na base
escolher a var. a entrar na base: determinar xkl tal que
zkl − ckl = max{zij − cij , zij − cij > 0}
construir o ciclo correspondente a var. de entrada na base xkl
escolher a var. a sair da base: determinar
θ = min{xij , xij tem sinal no ciclo de xkl}
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 27 / 132
Problema de Transportes
Passo 4. Obter a nova sol. bas. admissıvel
alterar apenas o valor das var. no ciclo da var. xkl que entra na base
x ij =
{xij + θ se xij tem sinal ⊕ no cicloxij − θ se xij tem sinal no ciclo
novo valor da f.o. ez = z − θ(zkl − ckl)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 28 / 132
Problema de Transportes
Degenerescencia - Metodo da Perturbacao
a degenerescencia no P.T. e frequente e manifesta-se sp que surjamempates no processo de obtencao de uma sol. bas. admiss. inicial ouquando da escolha da var. a ser substituıda na base
em caso de empate a escolha pode ser arbitraria, contudo existe a tecnicada perturbacao que permite identificar as var. a tomar como basicas deforma a evitar a possıvel entrada em ciclo
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 29 / 132
Problema de Transportes
o met. da perturbacao consiste em formular um novo P.T. semdegenerescencia, modificando ligeiramente os valores de ai e bj daseguinte forma
ai = ai + ε i = 1, . . . ,m
bj = bj j = 1, . . . , n − 1
bn = bn + mε
para ε > 0 e arbitrariamente pequeno, para que a sol. obtida seja muitoproxima da sol. correcta.
Nota: tb podemos usar
ai = ai i = 1, . . . ,m − 1am = am + nεbj = bj + ε j = 1, . . . , n
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 30 / 132
Problema de Transportes
considere o seguinte exemplo de um P.T.
4 3 1 6 1 700
1 3 2 1 5 400
2 3 1 2 4 300
500 200 300 300 100
e aplique o met. canto noroeste para obtencao de uma sol. bas. admiss.inicial.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 31 / 132
Problema de Transhipment
Problema de Transhipment
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 32 / 132
Problema de Transhipment
Problema de Transhipment
o P.T. pode ser visto como um caso particular do prob. geral que e oprob. de Transhipment (transfega, trans-expedicao)
considerando uma rede com n nodos que podem ser
origens (1 ≤ i ≤ r)destinos (r + 1 ≤ i ≤ s)entrepostos (s + 1 ≤ i ≤ n)
a soma total das disponibilidades nas origens e igual a soma total dasnecessidades nos destinos
qualquer que seja o nodo e possıvel transportar o produto de e paraele
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 33 / 132
Problema de Transhipment
Problema de Transhipment
se o nodo e
origemquant. disponıvel = quant. sai - quant. entra
destinoquant. necessaria = quant. entra - quant. sai
entrepostoquant. sai = quant. entra
resolucao atraves da sua transformacao num prob. transportes
como transformar?
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 34 / 132
Problema de Transhipment
Problema de Transhipment
seja
ai = disponibilidade na origem i (1 ≤ i ≤ r)bi = necessidade no destino i (r + 1 ≤ i ≤ s)xij quant. a transportar de i para j , i 6= j
entao∑j 6=i
xij −∑j 6=i
xji = ai origem i (1 ≤ i ≤ r):∑j 6=i
xji −∑j 6=i
xij = bi destino i (r + 1 ≤ i ≤ s):∑j 6=i
xij −∑j 6=i
xji = 0 entreposto i (s + 1 ≤ i ≤ n):
xij ≥ 0
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 35 / 132
Problema de Transhipment
Problema de Transhipment
considerando
cij = custo unitario de transporte de i para jci = custo unitario de transhipment em iti = quant. sujeita a transhipment em i
a f.o. ficamin
∑i
∑j ,j 6=i
cijxij +∑i
ci ti
(o ultimo termo e um modo de penalizar o que nao e necessario:se e origem: porque entra?
se e destino: porque sai?)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 36 / 132
Problema de Transhipment
Problema de Transhipment
temos
origem i (1 ≤ i ≤ r):
ti =∑j 6=i
xji
destino i (r + 1 ≤ i ≤ s):
ti =∑j 6=i
xij
entreposto i (s + 1 ≤ i ≤ n):
ti =∑j 6=i
xij =∑j 6=i
xji
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 37 / 132
Problema de Transhipment
Problema de Transhipment
definindo {xii = C − ticii = −ci
para i = 1, . . . , n e onde C e uma constante arbitrariamente grande quegaranta xii ≥ 0
podemos usar esta def. para eliminar ti nas expressoes anteriores
a nova f.o. ficamin
∑i
∑j
cijxij −∑i
ciiC
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 38 / 132
Problema de Transhipment
Problema de Transhipmentorigem i (1 ≤ i ≤ r):
∑j 6=i
xij −∑j 6=i
xji = ai ⇔{ ∑
j 6=i xij + xii = ai + C∑j 6=i xji + xii = C
destino i (r + 1 ≤ i ≤ s):
∑j 6=i
xji −∑j 6=i
xij = bi ⇔{ ∑
j 6=i xji + xii = bi + C∑j 6=i xij + xii = C
entreposto i (s + 1 ≤ i ≤ n):
∑j 6=i
xij −∑j 6=i
xji = 0 ⇔{ ∑
j 6=i xij + xii = C∑j 6=i xji + xii = C
xij ≥ 0
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 39 / 132
Problema de Afectacao (Assignment)
Problema de Afectacao(Assignment)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 40 / 132
Problema de Afectacao (Assignment)
Problema de Afectacao (Assignment)
Dados
n indivıduos
n tarefas
e sendo cij o custo de afectar o indivıduo i a tarefa j
pretendemos afectar cada indivıduo a uma e uma so tarefa de forma a queo custo total de execucao das tarefas seja mınimo.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 41 / 132
Problema de Afectacao (Assignment)
A formulacao em P.L. do problema de afectacao (P.A.) e:
min
n∑i=1
n∑j=1
cijxij
s. a:n∑
j=1
xij = 1, i = 1, . . . , n
n∑i=1
xij = 1, j = 1, . . . , n
xij ∈ {0, 1}, i = 1, . . . , n, j = 1, . . . , n
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 42 / 132
Problema de Afectacao (Assignment)
em notacao matricial e:
min cxs. a: Ax = 1
xij ∈ {0, 1}
em quex = (x11, . . . , x1n, x21, . . . , x2n, . . . , xnn)t
c = (c11, . . . , c1n, c21, . . . , c2n, . . . , cnn)
1 e um vector de 1s com 2n componentes
A e uma matriz (2n)× (n2) em que cada coluna (i , j) e aij = ei + en+j
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 43 / 132
Problema de Afectacao (Assignment)
Exemplo
Consideremos uma Fabrica com 3 seccoes (montagem (M), pintura (P) eembalagem (E))e 3 candidatos (C1, C2, C3)
e os custos de afectacao dados por
M P E
C1 4 5 3C2 1 4 2C3 3 1 5
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 44 / 132
Problema de Afectacao (Assignment)
min4x11 + 5x12 + 3x13 + x21 + 4x22 + 2x23 + 3x31 + x32 + 5x33
s. a: x11 + x12 + x13 = 1x21 + x22 + x23 = 1x31 + x32 + x33 = 1
x11 + x21 + x31 = 1x12 + x22 + x32 = 1x13 + x23 + x33 = 1
xij ∈ {0, 1}, i = 1, . . . , 3, j = 1, . . . , 3
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 45 / 132
Problema de Afectacao (Assignment)
Propriedades do Problema de Afectacao
o politopo do P.A. possui n! pontos extremos; cd sol. inteira admiss. euma afectacao e cd afectacao e um ponto extremo
trata-se de um problema de P.L. com variaveis 0− 1
para cd afectacao escolhemos as correspond. var. xij com valor 1 comovar. bas., obtemos n var. bas. com valor unitario; para completar abase precisamos de escolher mais n − 1 var. (degeneradas)
e um caso particular do P.T. em que m = n e ai = bj = 1, como talqq sol. bas. admiss. tem valores inteiros e podemos substituir as cond.de integralidade por simples cond. de nao negatividade
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 46 / 132
Problema de Afectacao (Assignment)
O problema dual (com xij ≥ 0)
max∑
i ui +∑
j vjs. a:
ui + vj ≤ cij , i = 1, . . . , n, j = 1, . . . , n
ui , vj livres, i = 1, . . . , n, j = 1, . . . , n
As condicoes de complementaridade de slacks sao
(cij − ui − vj)xij = 0, i = 1, . . . , n, j = 1, . . . , n
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 47 / 132
Problema de Afectacao (Assignment)
Se determinarmos um par de sol. admissıveis para o primal e dual, queverifiquem as cond. de complementaridade, elas serao optimas.
uma sol. admiss. para o dual e
{ui = minj cij i = 1, . . . , nvj = mini{cij − ui} j = 1, . . . , n
e seja x definido por xij =
{1 se ui + vj − cij = 00 se ui + vj − cij 6= 0
se x for admissıvel para o primal, entao e uma sol. optima e (u, v) eoptima do dual
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 48 / 132
Problema de Afectacao (Assignment)
Algumas consideracoes
o problema de afectacao fica completamente determinado pela suamatriz de custos
num prob. afectacao em que todos os custos sao nao negativos, seexistir uma afectacao admissıvel com custos nulos, trata-se daafectacao optima
TeoremaSe adicionarmos uma constante a cada linha e/ou coluna da matriz decustos de um prob. de afectacao, o problema obtido tem a mesma solucaooptima que o problema original.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 49 / 132
Problema de Afectacao (Assignment)
vamos usar este resultado de duas formas
1 se a matriz tiver elementos negativos, somamos um valorsuficientemente grande de modo a obtermos apenas custos naonegativos
2 escolhendo adequadamente os valores a somar as linhas/colunas,podemos introduzir zeros na matriz de custos e procurar umaafectacao de custo nulo que sera optima
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 50 / 132
Problema de Afectacao (Assignment)
os valores subtraıdos as linhas/colunas podem ser interpretados comouma sol. dual
o elemento (i , j) da matriz do P.A. diz-se afecto se o correspondentevalor de xij for 1
uma sol. admissıvel para o P.A. diz-se uma afectacao completa
uma afectacao completa consiste num e um so zero afecto em cdlinha e cd coluna
uma afectacao diz-se maximal se nao e possıvel afectar mais zeros namatriz
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 51 / 132
Problema de Afectacao (Assignment)
TeoremaSe k e o numero max. de zeros afectaveis, entao existe um conjunto de kriscos que cobrem todos os zeros da matriz, de forma que nenhum zeroafecto esta na interseccao de dois riscos.
se k = n temos a sol. do problema
se k < n vamos introduzir mais zeros na matriz
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 52 / 132
Problema de Afectacao (Assignment)
TeoremaSupondo que os zeros da matriz de custo sao cobertos por k < n riscos,seja θ o mınimo dos elementos nao cobertos. Se subtrairmos θ a todas aslinhas nao cobertas e somarmos θ a todas as colunas cobertas, obtem-seuma nova matriz de custos cuja soma de todos elementos e inferior emθn(n − k) a soma de todos os elementos da matriz anterior.
a convergencia finita do algoritmo hungaro (Kuhn, 1955/56) que vamosdescrever resulta do teorema anterior
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 53 / 132
Problema de Afectacao (Assignment)
Metodo hungaro, Kuhn (1955)
Passo 1 Reducao da matriz de custos: reduzir a matriz de custos demodo a que todos os elementos sejam nao negativos e cdlinha e cd coluna contenha pelo menos um zero
1 subtrair aos elementos de cada linha da matriz decustos o mınimo dessa linha
2 na matriz resultante, subtrair a cada coluna o respectivomınimo
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 54 / 132
Problema de Afectacao (Assignment)
Passo 2 Determinar uma afectacao maximal associada apenas a zerosna matriz de custos
1 desenhar o numero mınimo de tracos que cobrem todosos zeros da matriz, seja k o numero mınimo de tracosque cobrem todos os zeros (ou o numero de zerosafectos)
2 se k = n, STOP a afectacao optima foi encontrada,enquadrar n zeros, um por linha e um por coluna
3 se k < n, entao efectuar a reducao da matriz de custos
1 seja θ o mınimo dos elementos nao riscados2 subtrair θ a todos os elementos nao riscados3 somar θ a todos os elementos duplamente riscados4 considerar de novo todos os zeros livres e voltar ao
Passo 2.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 55 / 132
Problema de Afectacao (Assignment)
Interpretacao do algoritmo
No final do Passo 1 uma sol. admiss. inicial para o dual e obtida daseguinte forma{
ui = minj cij i = 1, . . . , nvj = mini{cij − ui} j = 1, . . . , n
a correspondente solucao primal pode tambem ser determinada
Os Passos 2.1 e 2.2 correspondem a verificacao da optimalidade da solucao
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 56 / 132
Problema de Afectacao (Assignment)
O Passo 2.3 corresponde a actualizacao da solucao, a solucao dual podeser actualizada da seguinte forma{
ui = ui + θ, ∀i linha nao cobertavj = vj − θ, ∀j coluna coberta
exemplo
5 4 2 6
3 5 4 1
7 8 6 2
2 1 1 3
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 57 / 132
Problema de Afectacao (Assignment)
Passo 11.
3 2 0 4
2 4 3 0
5 6 4 0
1 0 0 2
u1 = 2u2 = 1u3 = 2u4 = 1
2.2 2 0 4
1 4 3 0
4 6 4 0
0 0 0 2
v1 = 1v2 = 0v3 = 0v4 = 0
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 58 / 132
Problema de Afectacao (Assignment)
a solucao primal pode tambem ser obtida tentando ”enquadrar” um zeroem cada linha e em cada coluna
por exemplo, ”enquadrar” os zeros nas posicoes
(1, 3), (2, 4), (4, 2)
ainda nao foi possıvel ”enquadrar” n = 4 zeros, por isso a solucao aindanao e optima
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 59 / 132
Problema de Afectacao (Assignment)
Passo 21. desenhar tracos sobre a linha 4, a coluna 4 e a coluna 32 2 0 4
1 4 3 0
4 6 4 0
0 0 0 2
2. foram apenas usados 3 tracos (notar que foram tambem apenas”enquadrados” 3 zeros)portanto, ainda nao obtivemos uma afectacao completa
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 60 / 132
Problema de Afectacao (Assignment)
3. determinar θ o menor dos elementos nao riscados, i. e.
θ = min{2, 2, 1, 4, 4, 6} = 1
e actualizar
a solucao dual passa a seru1 = 2 + 1 v1 = 1u2 = 1 + 1 v2 = 0u3 = 2 + 1 v3 = 0− 1u4 = 1 v4 = 0− 1
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 61 / 132
Problema de Afectacao (Assignment)
a matriz e actualizada para1 1 0 4
0 3 3 0
3 5 4 0
0 0 1 3
podemos ”enquadrar os zeros nas posicoes (1, 3), (3, 4), (4, 2), (2, 1)ja obtivemos uma afectacao completa, portanto a solucao ja e optima ouentao (no Passo 2.1) desenhar tracos sobre a linha 4, a coluna 4, a coluna3 e a linha 2,foram desenhados 4 tracos, portanto a solucao ja e optima
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 62 / 132
Problema da Arvore de suporte de custo mınimo
Problema da Arvore desuporte de custo mınimo
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 63 / 132
Problema da Arvore de suporte de custo mınimo
Topologias de ligacao para diversos tipos de redes
Diversos tipos de redes:de telecomunicacoes, de transportes, de electricidade, de gas
Diversas topologias de ligacao:
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 64 / 132
Problema da Arvore de suporte de custo mınimo
Dados
um grafo G = (V ,E ) sendo
V = {1, 2, . . . , n} o conjunto de vertices;
E = {{i , j}, i , j ∈ V } o conjunto de arestas;
cij o custo unitario associado a cada aresta {i , j} ∈ E .
0
1
2
6 3
4
5
3
10
2
1
5
4
5
7
8
9 8
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 65 / 132
Problema da Arvore de suporte de custo mınimo
Arvore de suporte
Uma arvore de suporte T de G e o menor subgrafo conexo e acıclico (semciclos) com todos os vertices de G .
0
1
2
6 3
4
5
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 66 / 132
Problema da Arvore de suporte de custo mınimo
Arvore de suporte de custo mınimo (ASCM)
arvore - o menor subgrafo conexo sem ciclos - cujo custo total das arestase o menor possıvel
0
1
2
6 3
4
53
2
1
5
45
custo = 20
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 67 / 132
Problema da Arvore de suporte de custo mınimo
problema de optimizacao combinatoria
algoritmos de resolucao polinomiais
1 Algoritmo de Kruskal
2 Algoritmo de Prim
→ algoritmos ’greedy’ (gulosos)
estes algoritmos satisfazem as condicoes de optimalidade do corte edo caminho
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 68 / 132
Problema da Arvore de suporte de custo mınimo
Algoritmo de Kruskal
1 Ordenar as arestas por ordem nao decrescente do seu custo
2 Inicializar T := {}3 Enquanto E 6= {}, fazer
1 seleccionar uma aresta a = {i , j} ∈ E2 se T ∪ {a} nao formar um ciclo, entao T := T + {a}3 E := E − {a}
Nota: tambem poderıamos continuar o ciclo ”Enquanto |T | < n − 1”
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 69 / 132
Problema da Arvore de suporte de custo mınimo
Determine a arvore de custo mınimo para o seguinte exemplo.
0
1
2
6 3
4
5
3
10
2
1
5
4
5
7
8
9 8
1
2
3
4
5
5
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 70 / 132
Problema da Arvore de suporte de custo mınimo
Algoritmo de Prim
1 Inicializar T := {} e S = {1}2 Enquanto S 6= N, fazer
1 determinar a aresta a = {i , j} de menor custo cij de S para N\S(i ∈ S , j ∈ N\S)
2 T := T + {a}3 S := S + {j}
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 71 / 132
Problema da Arvore de suporte de custo mınimo
Representacao poliedrica em PLI
caracterizar um conjunto de arestas satisfazendo uma determinadapropriedade
Como?
formulacoes naturais e estendidas
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 72 / 132
Problema da Arvore de suporte de custo mınimo
Formulacao natural
conjunto de variaveis uij , para toda a aresta {i , j} ∈ E , ou xij , para todo oarco (i , j) ∈ A, que caracterizam o objeto combinatorio
uij =
{1, se aresta {i , j} esta na solucao0, c.c.
ou
xij =
{1, se arco (i , j) esta na solucao0, c.c.
+conjunto de restricoes nas variaveis uij ou xij
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 73 / 132
Problema da Arvore de suporte de custo mınimo
Formulacao estendida
conjunto de variaveis que caracterizam o objeto combinatorio+
conjunto de variaveis ”adicionais”+
conjunto de restricoes nas variaveis ”naturais”+
conjunto de restricoes nas variaveis ”adicionais”+
conjunto de restricoes de ligacao das variaveis
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 74 / 132
Problema da Arvore de suporte de custo mınimo
Formulacao nao orientada - Modelo de SUBCIRCUITOS
Uma arvore de suporte
tem n-1 arestas/arcos nao tem ciclos
(USUB)
∑{i ,j}∈E uij = n − 1
∑{i ,j}∈E(S) uij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
uij ∈ {0, 1}
(USUBL) ⇒ uij ∈ [0, 1]
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 75 / 132
Problema da Arvore de suporte de custo mınimo
Formulacoes orientadas
Orientar o grafo:
cada aresta e = {0, j} de E e substituıda pelo arco (0, j)
cada aresta e = {i , j} de E (i 6= 0) e substituıda por dois arcos, arco(i , j) e arco (j , i)
cada arco herda os valores (custo, peso, . . .) associados a cada aresta
grafo orientado completo G = (V ,A), |V | = n, eA = {(i , j), i ∈ V , j ∈ V \ {0}, i 6= j}
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 76 / 132
Problema da Arvore de suporte de custo mınimo
Modelo de SUBCIRCUITOS
Uma arvore de suporte
tem n-1 arestas/arcos nao tem ciclos
(SUB)
∑(i ,j)∈A xij = n − 1
∑(i ,j)∈A(S) xij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
xij ∈ {0, 1}
(SUBL) ⇒ xij ∈ [0, 1]
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 77 / 132
Problema da Arvore de suporte de custo mınimo
Modelo de CORTES
Uma arvore de suporte
tem n-1 arestas/arcos e um grafo conexo
(CORTE)
∑(i ,j)∈A xij = n − 1
∑(i ,j)∈A(S ,S) xij ≥ 1
∀S ⊂ V , V 6= ∅, 0 ∈ S
xij ∈ {0, 1}
(CORTEL) V xij ∈ [0, 1]
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 78 / 132
Problema da Arvore de suporte de custo mınimo
Proposicao
o conjunto de solucoes admissıveis de (SUBL) e o conjunto de solucoesadmissıveis de (CORTEL) caracterizam o envolvente convexo associado aASCM
Teorema
Os pontos extremos do poliedro definido quer pela relaxacao linear domodelo (SUB) quer pela relaxacao linear do modelo (CORTE) sao osvectores de incidencia da arvore de suporte.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 79 / 132
Problema da Arvore de suporte de custo mınimo
Modelo de fluxos
o facto de uma arvore ser um grafo conexo e tratado de uma formadiferente
consideramos o fluxo de uma comodidade do nodo 0 para cada umdos restantes nodos do grafo
usamos variaveis orientadas de fluxo ykij representam a quantidade defluxo enviada pela raiz que passa no arco (i , j) e tem como destino onodo k
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 80 / 132
Problema da Arvore de suporte de custo mınimo
Modelo de fluxos
(MFLUXOS)∑(i ,j)∈A xij = 1,∀j ∈ V \ {0}
∑i∈V ykij −
∑i∈V ykji =
−1, j = 00, j ∈ V \ {0, k}1, j = k
, k ∈ V \ {0}
ykij ≤ xij , ∀i , j , k ∈ V , j , k 6= 0, i 6= k
xij ∈ {0, 1}ykij ≥ 0
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 81 / 132
Problema da Arvore de suporte de custo mınimo
Arvore com restricoes adicionais
melhorar o desempenho da rede e que cumpram os requisitos de algunsdispositivos instalados
restricoes de atraso maximo e restricoes de fiabilidade da rede demodo a evitar a degradacao da qualidade do sinal da rede
−→ restricoes de salto limitam o comprimento do caminho do nodo 0para todos os restantes nodos
−→ restricoes de diametro limitam o comprimento do maior caminhoda arvore
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 82 / 132
Problema da Arvore de suporte de custo mınimo
Arvore com restricoes adicionais
melhorar o desempenho da rede e que cumpram os requisitos de algunsdispositivos instalados
restricoes de capacidade de certos dispositivos instalados em algunsnos−→ restricoes de capacidade limitam o numero de nodos de qualquersubarvore da raiz−→ restricoes de grau limitam o numero de ligacoes dos nodos daarvore
restricoes nos custos de instalacao−→ restricoes de peso (ou saco-mochila como tambem saoconhecidas) limitam o peso da arvore
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 83 / 132
Problema do caminho mais curto
Problema do caminhomais curto
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 84 / 132
Problema do caminho mais curto
Dados
um grafo orientado G = (V ,A) sendo
V = {1, 2, . . . , n} o conjunto de vertices;
A = {(i , j), i , j ∈ V } o conjunto de arcos;
cij o custo unitario associado a cada arco (i , j) ∈ A.
0
1
2
6 3
4
5
3
10
2
1
5
4
5
7
8
9 8
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 85 / 132
Problema do caminho mais curto
Caminho
Um caminho e uma sequencia de vertices [v1, v2, . . . , vk ],v1, v2, . . . , vk ∈ V de tal forma que (vi , vi+1) ∈ A, i = 1, . . . , k − 1,, i.e.um vertice e o seu sucessor na sequencia sao adjacentes, sem qualquerrepeticao de vertices.
0
1
2
6 3
4
5
exemplos de passeios: [0,1,5,3][0,2,6,4]
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 86 / 132
Problema do caminho mais curto
Caminho mais curto (CMC)
caminho cujo custo total das arestas e o menor possıvel
caminho mais curto ≡ caminho de menor custo
0
1
2
6 3
4
5
10
5
39
3
1
8
[0,2,3] custo 15 [0,1,3] custo 12 [0,1,5,3] custo 12
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 87 / 132
Problema do caminho mais curto
Grande variedade de caminhos mais curtos
de um vertice especıfico para outro especıfico
de um vertice especıfico para todos os outros
de cada um dos vertices para todos os outros
de um vertice especıfico para outro especıfico, mas passando por umdeterminado conjunto de vertices
...
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 88 / 132
Problema do caminho mais curto
Requisitos para o problema
Topologia da rede: consideramos apenas grafos/redes orientadose se nao for?
Origem: consideramos que existe um caminho (orientado) da origempara cada um dos restantes verticese se nao tiver?
Custos/Comprimentos: consideramos apenas custos/comprimentosinteirose se nao tiver?
Ciclos: consideramos que a rede nao possui ciclos negativos
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 89 / 132
Problema do caminho mais curto
Representacao poliedrica em PLI
caracterizar um conjunto de arcos satisfazendo uma determinadapropriedade
Propriedade:
caminho mais curto entre os vertices s e t
usamos variaveis binarias orientadas de fluxo yij que representam aquantidade de fluxo enviada pela raiz que passa no arco (i , j) e tem comodestino o vertice t
yij =
{1, se no arco (i , j) passa fluxo de s para t0, c.c.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 90 / 132
Problema do caminho mais curto
Modelo para o problema do CMC
CMC entre o vertice s e o vertice t
min∑
(i ,j)∈A
cijyij
∑i∈V
yij −∑i∈V
yji =
−1, j = s0, j ∈ V \ {s, t}1, j = t
yij ∈ {0, 1}
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 91 / 132
Problema do caminho mais curto
Representacao poliedrica em PLI
Propriedade:
caminho mais curto entre o vertice s e todos os restantes vertices
usamos variaveis inteiras orientadas de fluxo fij que representam aquantidade de fluxo enviada pela raiz que passa no arco (i , j)
fij =
{quantidade de fluxo que passa no arco (i , j)0, se nao passa fluxo
usamos tambem variaveis binarias orientadas xij que indicam se o arco(i , j) esta ou nao na solucao
xij =
{1, se o arco (i , j) esta na solucao0, c.c.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 92 / 132
Problema do caminho mais curto
Modelo para o problema do CMC
CMC entre o vertice s e todos os restantes vertices
min∑
(i ,j)∈A
cijxij
∑i∈V
fij −∑i∈V
fji =
{−(|V | − 1), j = s1, j ∈ V \ {s}
fij ≤ (|V | − 1)xij , (i , j) ∈ A
fij ≥ 0
xij ∈ {0, 1}
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 93 / 132
Problema do caminho mais curto
Modelo para o problema do CMC
CMC entre o vertice s e todos os restantes vertices
min∑
(i ,j)∈A
cij fij
∑i∈V
fij −∑i∈V
fji =
{−(|V | − 1), j = s1, j ∈ V \ {s}
fij ≥ 0
neste modelo o valor da f.o. e a soma dos custos (comprimentos) de todosos caminhosno modelo anterior o valor da f.o. da-nos o valor da soma do custo dosarcos na solucao (o custo de cada arco e contabilizado apenas uma vez)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 94 / 132
Problema do caminho mais curto
Algoritmo de Dijkstra
Requisitos:
Custos inteiros e nao negativos
Existe um vertice origem s
Existe um caminho orientado do vertice origem para todos os outrosvertices
Objectivo
Encontrar o caminho mais curto do vertice origem para cada um dosoutros vertices
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 95 / 132
Problema do caminho mais curto
Algoritmo de Dijkstra
Etiquetas:
Vamos considerar que etiquetamos os vertices
Designamos por d() o vetor das etiquetas
d(i) e a etiqueta do vertice i
d(i) e a distancia/comprimento/custo de algum caminho do verticeorigem para o vertice i
pred() e o vetor dos predecessores, no caminho, de cada vertice
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 96 / 132
Problema do caminho mais curto
Algoritmo de Dijkstra
Passo chave
Passo chave nos algoritmos para o CMC e a actualizacao das etiquetas
O procedimento Etiquetar(i) actualiza a etiqueta dos vertices jadjacentes a i :
Etiquetar(i)
1 para cada (i , j) ∈ A(i) fazer
2 se d(j) > d(i) + cij , entao d(j) := d(i) + cij e pred(j) := i
As etiquetas nao podem aumentar de valor quando se executa umEtiquetar. So podem diminuir.
Apenas executamos novamente Etiquetar(i) se d(i) diminuir de valor.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 97 / 132
Problema do caminho mais curto
Algoritmo de Dijkstra
O algoritmo de Dijkstra determina o caminho mais curto entre umvertice s e todos os outros vertices num grafo com custos naonegativos.
A ideia base consiste em comecar no vertice origem s e ir etiquetandoos vertices, a partir de s, com os respectivos custos/distancias.
Sempre que se tem a certeza de que a etiqueta marca o caminho maiscurto, a etiqueta deixa de ser temporaria e passa a ser permanente.
a etiqueta permanente d∗(j) e o valor da distancia/custo do caminhomais curto do vertice s para o vertice j
o algoritmo de Dijkstra determina d∗(j) para cada j , aumentando asdistancias desde o vertice origem s.
S designa o conjunto de vertices permanentemente etiquetados:d(j) = d∗(j) para j ∈ S .
T designa o conjunto de vertices temporariamente etiquetados:d(j) ≥ d∗(j) para j ∈ T .
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 98 / 132
Problema do caminho mais curto
Algoritmo de Dijkstra
1 S := {s}, d(s) := 0, pred(s) := −1
2 T := V − {s}, d(j) =∞, pred(j) :=∞ para j ∈ T
3 Etiquetar(s)4 Enquanto S 6= V , fazer
1 seleccionar um vertice i ∈ T tal que d(i) = min{d(j), j ∈ T}2 S := S ∪ {i}, T := T − {i}3 Etiquetar(i)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 99 / 132
Problema do caminho mais curto
0
1
2
6 3
4
5
3
10
2
1
5
4
5
7
8
9 8
d = [ 0 ∞ ∞ ∞ ∞ ∞ ∞ ]Etiquetar(0) d = [ × 3 10 ∞ ∞ ∞ 2 ]Etiquetar(6) d = [ 3 7 ∞ 10 ∞ × ]Etiquetar(1) d = [ × 7 12 10 4 ]Etiquetar(5) d = [ 7 12 10 × ]Etiquetar(2) d = [ × 12 10 ]Etiquetar(4) d = [ 12 × ]Etiquetar(3) d = [ × ]
pred = [ −1 ∞ ∞ ∞ ∞ ∞ ∞ ]Etiquetar(0) pred = [ × 0 0 ∞ ∞ ∞ 0 ]Etiquetar(6) pred = [ 0 6 ∞ 6 ∞ × ]Etiquetar(1) pred = [ × 6 1 6 1 ]Etiquetar(5) pred = [ 6 1 6 × ]Etiquetar(2) pred = [ × 1 6 ]Etiquetar(4) pred = [ 1 × ]Etiquetar(3) pred = [ × ]
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 100 / 132
Problema do caminho mais curto
Algoritmo de Dijkstra
Porque e que o algoritmo de Dijkstra funciona?
1 Se j ∈ S , entao d(j) e a distancia/custo mais curta do vertice s parao vertice j .
2 Se i ∈ S e j ∈ T , entao d(i) ≤ d(j).
3 Se j ∈ T , entao d(j) e o custo do caminho mais curto do vertice spara o vertice j ∈ S ∪ {j}.
Complexidade do algoritmo: O(|V |2)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 101 / 132
Problema do caminho mais curto
Algoritmo de Bellman, Moore & FordPermite a existencia de custos negativos nos arcos
Mas nao pode ter ciclos com custo negativo
As etiquetas apenas se tornam permanentes no final do algoritmo.
No alg. Dijkstra quando uma etiqueta e tornada permanente, ja nao pode ser modificada(caso do nodo 2), no entanto a etiqueta pode nao representar o custo do caminho maiscurto
1
2
3
4
2 1
5 3
6−4
Notacao: d(j) = ”etiqueta de custo temporaria”
a cada iteracao, e o custo de um caminho (ou passeio) do vertice spara o vertice jno final do algoritmo, d(j) e o custo mınimo de um caminho do vertices para o vertice j
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 102 / 132
Problema do caminho mais curto
Algoritmo de Bellman, Moore & Ford
1 d(s) := 0, pred(s) := −1
2 d(j) =∞ para j ∈ N − {s}3 Enquanto algum arco (i , j) satisfizer d(j) > d(i) + cij , fazer
1 d(j) := d(i) + cij2 pred(j) := i
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 103 / 132
Problema do caminho mais curto
0
1
2
6 3
4
5
3
10
2
1
5
4
5
7
8
9 8
d = [ 0 ∞ ∞ ∞ ∞ ∞ ∞ ](0, i) d = [ 3 10 2 ](1, i) d = [ 12 4 ](2, i) d = [ 14 ](5, 3) d = [ ](6, 4) d = [ 10 ]
pred = [ −1 ∞ ∞ ∞ ∞ ∞ ∞ ](0, i) pred = [ 0 0 0 ](1, i) pred = [ 1 ](2, i) pred = [ 2 2 ](5, 3) pred = [ ](6, 4) pred = [ 10 ]
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 104 / 132
Problema do caminho mais curto
Algoritmo de Bellman, Moore & Ford
O que acontece se existirem ciclos com custo negativo?O algoritmo pode deixar de ser finito, podemos ter d(j) a decrescerpara −∞contudo podemos parar de d(j) < −nC uma vez que desta formagarantimos a existencia de um ciclo com custo negativo
algoritmo tipo ”label correcting”, enquanto que o alg. Dijkstra e tipo”label setting”
Complexidade do algoritmo: O(|V ||A|) no melhor dos casos, mas pode serpior pois pode examinar um arco varias vezes
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 105 / 132
Problema do caminho mais curto
Algoritmo Floyd-Warshall
Podemos considerar arcos com custos negativos
Obtemos uma matriz de caminhos mais curtos.
Denotamos por d(i , j) o custo do caminhos mais curto do vertice i aovertice j .
Mais precisamente dk(i , j) e o custo do caminho mais curto dovertice i ao vertice j , podendo apenas usar os vertices 1, 2, . . . , k − 1.
Propriedade: dk+1(i , j) = min{dk(i , j), dk(i , k) + dk(k, j)}
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 106 / 132
Problema do caminho mais curto
Algoritmo de Floyd-Warshall
1 Para todos os pares de vertice [i , j ] ∈ V × V fazerd(i , j) :=∞ e pred(i , j) := 0
2 Para todos os vertices i ∈ V fazerd(i , i) := 0
3 Para cada arco (i , j) ∈ A fazerd(i , j) := cij e pred(i , j) := i
4 Para k := 1 a n fazer1 para cada par de vertices [i , j ] ∈ V × V , se d(i , j) > d(i , k) + d(k, j)
fazer2 d(i , j) := d(i , k) + d(k , j)3 pred(i , j) := pred(k , j)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 107 / 132
Problema do caminho mais curto
exemplo: inicializacao e iteracao 1, k = 1
d =
∞ 9 ∞ 15 ∞ ∞∞ ∞ 2 4 ∞ ∞∞ 2 ∞ ∞ ∞ 7∞ ∞ 3 ∞ 35 ∞∞ ∞ 6 16 ∞ 21∞ ∞ ∞ ∞ 5 ∞
pred =
0 1 0 1 0 00 0 2 2 0 00 3 0 0 0 30 0 4 0 4 00 0 5 5 0 50 0 0 0 6 0
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 108 / 132
Problema do caminho mais curto
exemplo: iteracao 2, k = 2
d =
∞ 9 11 13 ∞ ∞∞ ∞ 2 4 ∞ ∞∞ 2 4 6 ∞ 7∞ ∞ 3 ∞ 35 ∞∞ ∞ 6 16 ∞ 21∞ ∞ ∞ ∞ 5 ∞
pred =
0 1 2 2 0 00 0 2 2 0 00 3 2 2 0 30 0 4 0 4 00 0 5 5 0 50 0 0 0 6 0
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 109 / 132
Problema do caminho mais curto
exemplo: iteracao 3, k = 3
d =
∞ 9 11 13 ∞ 18∞ 4 2 4 ∞ 9∞ 2 4 6 ∞ 7∞ 5 3 9 35 10∞ 8 6 12 ∞ 13∞ ∞ ∞ ∞ 5 ∞
pred =
0 1 2 2 0 30 3 2 2 0 30 3 2 2 0 30 3 4 2 4 30 3 5 2 0 30 0 0 0 6 0
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 110 / 132
Problema do caminho mais curto
exemplo: iteracao 4, k = 4
d =
∞ 9 11 13 48 18∞ 4 2 4 39 9∞ 2 4 6 41 7∞ 5 3 9 35 10∞ 8 6 12 47 13∞ ∞ ∞ ∞ 5 ∞
pred =
0 1 2 2 4 30 3 2 2 4 30 3 2 2 4 30 3 4 2 4 30 3 5 2 4 30 0 0 0 6 0
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 111 / 132
Problema do caminho mais curto
exemplo: iteracao 5, k = 5
d =
∞ 9 11 13 48 18∞ 4 2 4 39 9∞ 2 4 6 41 7∞ 5 3 9 35 10∞ 8 6 12 47 13∞ 13 11 17 5 18
pred =
0 1 2 2 4 30 3 2 2 4 30 3 2 2 4 30 3 4 2 4 30 3 5 2 4 30 3 5 2 6 3
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 112 / 132
Problema do caminho mais curto
exemplo: iteracao 6, k = 6
d =
∞ 9 11 13 23 18∞ 4 2 4 14 9∞ 2 4 6 12 7∞ 5 3 9 15 10∞ 8 6 12 18 13∞ 13 11 17 5 18
pred =
0 1 2 2 6 30 3 2 2 6 30 3 2 2 6 30 3 4 2 6 30 3 5 2 6 30 3 5 2 6 3
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 113 / 132
Problema do caminho mais curto
Como detectar ciclos de custo negativo?Se d(i , j) < 0 entao existe um ciclo de custo negativo passando pelovertice i
Se fizer a inicializacao d(i , i) =∞ e possıvel a identificacao de ciclos,com a inicializacao d(i , i) = 0 apenas identifico ciclos de custonegativo.
Complexidade do algoritmo: O(|V |3)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 114 / 132
Problema do fluxo maximo
Problema do fluxo maximo
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 115 / 132
Problema do fluxo maximo
Dados
um grafo orientado G = (V ,A) sendo
V = {1, 2, . . . , n} o conjunto de vertices;
A = {(i , j), i , j ∈ V } o conjunto de arcos;
uij capacidade associado a cada arco (i , j) ∈ A;
nodo s origem do fluxo e nodo t destino do fluxo
s
1
2
6 t
4
5
3
10
2
1
5
4
5
7
8
9 8
s t
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 116 / 132
Problema do fluxo maximo
Objectivo
Numa rede com capacidades nos arcos pretendemos
maximizar o fluxo que sai de s e tem o nodo t como destino
exemplo: s = 0 e t = 3
0
1
2
6 3
4
5
3
10
2
1
5
4
5
7
8
9 83, 1
1, 1
8, 13, 3 9, 3
10, 5
5, 5
exemplos de caminhos e seus fluxos: [0,1,5,3] fluxo = 1 ×[0,1,3] fluxo = 3[0,2,3] fluxo = 5fluxo total de s = 0 para t = 3 e de 8
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 117 / 132
Problema do fluxo maximo
Representacao poliedrica em PLI
caracterizar um conjunto de arcos satisfazendo uma determinadapropriedade
Propriedade:
fluxo que sai de s = fluxo que entra em te
para i ∈ V \{s, t}, fluxo que entra em i = fluxo que sai de i
usamos variaveis orientadas de fluxo yij que representam a quantidade defluxo que passa no arco (i , j)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 118 / 132
Problema do fluxo maximo
Modelo para o problema do fluxo maximo
Modelo para o fluxo maximo entre o vertice s e o vertice tmax v∑i∈V
yij −∑i∈V
yji =
−v , j = s0, j ∈ V \ {s, t}v , j = t
0 ≤ yij ≤ uij para todo (i , j) ∈ A
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 119 / 132
Problema do fluxo maximo
Fluxos
Fluxo admissıvel
Referimo-nos a um fluxo y admissıvel como sendo a quantidade de fluxoque atravessa um arco e nao ultrapassa o valor da capacidade do arco.
um arco diz-se saturado se yij = uij
um caminho diz-se saturado se pelo menos um dos seus arcos estasaturado
um fluxo diz-se saturante se todo o caminho entre s e t esta saturado
Fluxo maximo
Referimo-nos a um fluxo y como sendo maximo se for admissıvel emaximizar a quantidade v que e enviada de s para t.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 120 / 132
Problema do fluxo maximo
Fluxos
Objectivo
No problema do fluxo maximo, o objectivo e o de determinar o maior fluxopossıvel, o fluxo maximo, de s para t.
s
1
2
t
10, 8
6, 5
1, 1
8, 7
10, 6
exemplo de um fluxo nao optimo, num problema de fluxo maximo
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 121 / 132
Problema do fluxo maximo
Rede Residual
s
1
2
t i juij , yij
10, 8
6, 5
1, 1
8, 7
10, 6
s
1
2
t i j
uij − yij
yij
2 1
1 4
8
56
7
1
Rede residual G (y) rij e a capacidade residual de (i , j)rij := uij − yij e rji := yij para (i , j) ∈ A
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 122 / 132
Problema do fluxo maximo
Caminho de aumento
um caminho de aumento e um caminho, na rede residual, de s para t(permite um aumento de fluxo)
a capacidade residual do caminho de aumento P eC (P) = min{rij , (i , j) ∈ P}aumentar ao longo de P e enviar C (P) unidades de fluxo ao longo decada arco do caminho Pdepois e necessario modificar o fluxo y e as capacidades residuais rapropriadamente, i.e. para (i , j) ∈ Prij := rij − C (P) e rji := rji + C (P)
s
1
2
t
2 1
1 4
8
56
7
1 s
1
2
t
2
4
1
8
66
8
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 123 / 132
Problema do fluxo maximo
Algoritmo de Ford e Fulkerson
inicializar o fluxo: y := 0
construir a rede residual
enquanto ”existir algum caminho orientado de s para t em G (y)
seja P um caminho de aumento de s para t em G (y)enviar C (P) unidades de fluxo ao longo de Patualizar as capacidades residuais r
o fluxo y obtido desta forma e maximo
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 124 / 132
Problema do fluxo maximo
Se os dados sao inteiros, em cada iteracao todas as capacidadesresiduais sao inteiras.
Como identificar um caminho de aumento ou constatar que nao existenenhum?
O algoritmo termina num numero finito de iteracoes? O algoritmo efinito, pois o numero de aumentos de fluxo e O(nU) sendo U o valorda maior capacidade da rede.
Quando e que o algoritmo obtem o fluxo maximo?
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 125 / 132
Problema do fluxo maximo
Como sabemos que um fluxo e optimo?
1 Nao existe qualquer caminho de aumento: nao e possıvel atingir t apartir de s.
2 Cortes - Teoria da dualidade
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 126 / 132
Problema do fluxo maximo
Cortes - Teoria da dualidade
Um corte-(s, t) numa rede G = (V ,A) e uma particao de V em doissubconjuntos disjuntos S e T tais que s ∈ S e t ∈ T .
A capacidade de um corte (S ,T ) eCAP(S ,T ) =
∑i∈S, j∈T uij
O fluxo atraves de um corte (S ,T ) eF (S ,T ) =
∑i∈S, j∈T (yij − yji )
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 127 / 132
Problema do fluxo maximo
Fluxos atraves de cortes
s
1
2
t
10, 9
6, 6
1, 1
8, 8
10, 7
Se S = {s} o fluxo atraves de (S ,T ) e 9 + 6 = 15
Se S = {s, 1} o fluxo atraves de (S ,T ) e 8 + 1 + 6 = 15
Se S = {s, 2} o fluxo atraves de (S ,T ) e 9 + 7− 1 = 15
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 128 / 132
Problema do fluxo maximo
Teorema fraco da dualidade, para o problema de fluxo maximo
Se y e um qualquer fluxo admissıvel e se (S ,T ) e um (s, t)-corte, entao ofluxo v(y) da origem s para o destino t e, no maximo, de CAP(S ,T ).
Condicoes de optimalidade para fluxos maximos
As seguintes condicoes sao equivalentes
o fluxo y e optimo
nao ha caminho de aumento em G (y)
existe um (s, t)-corte (S ,T ) cuja capacidade e o fluxo de valor y
Teorema do fluxo maximo corte mınimo
O valor do fluxo maximo e o valor mınimo de um corte.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 129 / 132
Problema do fluxo maximo
Detalhando um pouco mais o algoritmo de Ford-Fulkerson
usar tecnica de procura para encontrar um caminho orientado emG (y):
colocar etiquetas nos vertices alcancaveis atraves de um caminhoorientado em G (y) com origem em s
em cada passo do algoritmo os vertice estao particionados em doissubconjuntos: etiquetados e nao etiquetados
seleccionar iterativamente um vertice etiquetado e pesquisar osvertices adjacentes
quando o nodo destino t e etiquetado e enviada a maior quantidadepossıvel de fluxo de s para t
apagar as etiquetas e repetir o processo
terminar quando todos os nodos etiquetados foram pesquisados e onodo destino t permanece sem ser etiquetado
isto significa que na rede residual G (y) nao existe um caminhoorientado de s para t
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 130 / 132
Problema do fluxo maximo
Algoritmo de Ford e Fulkersonetiquetar tenquanto t esta etiquetado
retirar as etiquetas a todos os nodospred(j) = 0 para todo j ∈ Vetiquetar s e fazer LISTA(s) := {s}enquanto ”LISTA(s) 6= ∅ ou t nao esta etiquetado”
retirar um nodo i da listapara cada arco (i , j) da rede residualse rij > 0 e j nao esta etiquetadoentao
pred(j) := ietiquetar jLISTA := LISTA ∪ {j}
se t esta etiquetado entao aumentaFluxousar vetor pred para encontrar o caminho de aumento P de s para tC (P) := min{rij , (i , j) ∈ P}aumentar o fluxo ao longo de P em C (P) unidades e actualizar ascapacidades residuais
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 131 / 132
Problema do fluxo maximo
Notas sobre o algoritmo
quando o algoritmo termina alem de obter o fluxo maximo obtemtambem o corte mınimo
um fluxo y e maximo se e so se a rede residual G (y) nao possuinenhum caminho de aumento
se as capacidades sao inteiras, o problema do fluxo maximo, tem umfluxo maximo inteiro
o algoritmo pode efetuar demasiadas iteracoes, se U for um valorexponencial U = 2n . . ., como no seguinte exemplo, um exemplosimples, mas muito mau
s
1
2
t
1000
1000
1
1000
1000
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2015-2016 132 / 132