Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Métodos de Investigação Operacional
Cristina Requejo
gabinete: 11.3.11 email: [email protected]
MIO 2019-2020
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 1 / 138
Otimização em Redes
Otimização em Redes
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 2 / 138
Problema de Transportes
Problema de Transportes
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 3 / 138
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 unitário de transporte entre cada origem i e cada destino j .
Pretende-se determinar a forma admisśıvel de transportar o produto entreas origens e os destinos com custo ḿınimo.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 4 / 138
Problema de Transportes
Sendoxij n
o de unidades transportadas entre a origem i e o destino j .e assumindo que (com ai e bj não 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
∑mi=1 ai <
∑nj=1 bj cria-se uma origem fict́ıcia;
em ambos os casos os custos de transporte associados serão nulos.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 5 / 138
Problema de Transportes
A formulação em P.L. do problema de transportes (P.T.) é:
minm∑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) Métodos de Investigação Operacional MIO 2019-2020 6 / 138
Problema de Transportes
em notação matricial é:
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) Métodos de Investigação Operacional MIO 2019-2020 7 / 138
Problema de Transportes
A é uma matriz (m + n)× (mn) em que cada coluna (i , j) éAij = ei + em+j , i.e. tem a forma especial
A =
1 0 · · · 00 1 · · · 0...
.... . .
...0 0 · · · 1I I · · · I
em que1 é um vector linha de 1′s com dimensão n0 é um vector linha de 0′s com dimensão nI é a matriz identidade n × nQualquer submatriz básica de A é triangular
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 8 / 138
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 unitários de transporte dados por C = [cij ] =
1 2 3 44 3 2 00 2 2 1
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 9 / 138
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) Métodos de Investigação Operacional MIO 2019-2020 10 / 138
Problema de Transportes
minx11 + 2x12 + 3x13 + 4x14 + 4x21 + 3x22 + 2x23 + 2x32 + 2x33 + x34s. a: x11 + x12 + x13 + x14 = 6
x21 + 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) Métodos de Investigação Operacional MIO 2019-2020 11 / 138
Problema de Transportes
Propriedades do Problema de Transportes
O problema de transportes tem sempre uma solução admisśı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 soluçãoóptima limitada
A matriz A tem caracteŕıstica igual a m + n − 1A matriz A é totalmente unimodular (o det. de qq submat. quadradatem valor 0, 1 ou −1)Se os ai (∀i) e os bj (∀j) são inteiros, então qualquer solução básicaadmisśıvel tem valores inteiros
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 12 / 138
Problema de Transportes
o prob. de transportes é facilmente representado pelo quadro seguinte comm linhas e n colunas para além da coluna dos ai e da linha dos bj
x11 x12 · · · x1j · · · x1n a1x21 x22 · · · x2j · · · x2n a2
......
......
xi1 xi2 · · · xij · · · xin ai...
......
......
xm1 xm2 · · · xmj · · · xmn amb1 b2 · · · bj · · · bn
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 13 / 138
Problema de Transportes
Representação e caracterização de uma base
Sendo B uma submatriz básica de A, como A é totalmente unimodulardet(B) = ±1, det(B−1) = ±1 e os elementos de B−1 são 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 adição e subtracção de colunas básicas.
Esse facto pode ser visto no quadro do P.T. através de um ciclo.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 14 / 138
Problema de Transportes
No quadro do P.T. um ciclo é uma sequência de variáveis tais que
cada par de variáveis adjacentes está na mesma linha ou na mesmacoluna;
nenhum conjunto de 3 ou mais variáveis consecutivas está na mesmalinha ou na mesma coluna;
a primeira e a última variável da sequência estão 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) Métodos de Investigação Operacional MIO 2019-2020 15 / 138
Problema de Transportes
Qualquer ciclo tem um número par de variáveis.
Se T for um subconjunto das colunas da matriz A, as colunas de Tsão linearmente dependentes se e só se as var. corresp., ou umsubconj. delas, formam um ciclo.
Uma base pode ser representada por uma árvore de suporte (grafoconexo e sem ciclos) com pelo menos uma célula 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) Métodos de Investigação Operacional MIO 2019-2020 16 / 138
Problema de Transportes
a cada célula básica no quadro corresponde um arco no grafo do P.T.
Uma base possui m + n − 1 arcos básicos ou cél. e não possui cicloscada célula não básica forma um ciclo com um subconjunto de cél.básicas
as células básicas desse ciclo podem ser usadas para representar a nãobásica (nem sp são necess. todas as cél. bás. desse ciclo, apenas os’cantos’)Ex: base 1: a32 = a36 − a16 + a12
base 2: a32 = a22 − a24 + a34as cél. básicas podem ser representadas por uma árvore de suporte
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 17 / 138
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 condições de complementaridade de slacks são
(cij − ui − vj)xij = 0, i = 1, . . . ,m, j = 1, . . . , n
Se determinarmos um par de sol. admisśıveis para o primal e dual, queverifiquem as cond. de complementaridade, elas serão óptimas.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 18 / 138
Problema de Transportes
O método simplex para o P.T.
1 Determinar uma sol. bás. admiss. inicial.
2 Testar a optimalidade da sol. actual.Para isso calcular os custos reduzidos zij − cij para cada var. nãobásica. Se todos zij − cij ≤ 0, então STOP a sol. é óptima, casocontrário continuar no Passo 3.
3 Seleccionar as variáveis de entrada e de sáıda da base.
4 Obter a nova sol. bás. admiss. e repetir o Passo 2.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 19 / 138
Problema de Transportes
Passo 1. Obtenção de uma sol. bás. admiss. inicial
Como escolher o valor para exactamente m + n − 1 var. bás. ?
1. Método do canto superior esquerdo ou do canto noroeste (NW)
tornar bás. a var. x11 atribuindo-lhe o maior valor posśıvelx11 = min{a1, b1} esgotando ou a origem 1 ou o destino 1no caso 1, a linha 1 deixa de ser considerada e tornamos bás. a var.x21 atribuindo-lhe o maior valor posśı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 bás. a var.x12 atribuindo-lhe o maior valor posśıvel x12 = min{(a2 − x11), b2}esgotando ou a origem 1 ou o destino 2
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 20 / 138
Problema de Transportes
em cd passo do mét. 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 máx. obtemos n + m − 1 var. positivas que não formam ciclose esgotarmos simultaneamente uma origem e um destino, podemosatribuir um zero à próxima var. da mesma linha ou da mesma colunae continuar como anteriormente
Desvantagem: não tem em conta a matriz dos custos.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 21 / 138
Problema de Transportes
Exemplo
5 3 2 100
4 2 1 50
80 30 40
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 22 / 138
Problema de Transportes
2. Método do ḿınimo da matriz de custosem cd passo do mét. torna-se bás. a var. a que corresponde omenor custo da matrizconsidere o exemplo anterior
3. Método de VögelEm cada passo do mét. torna-se bás. a var. a quecorresponde o menor custo da linha ou coluna associada àmaior das diferenças entre os dois menores custos de cadalinha e cada coluna.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 23 / 138
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) Métodos de Investigação Operacional MIO 2019-2020 24 / 138
Problema de Transportes
Passo 2. Testar a optimalidade da sol. bás. admiss. actual
cálculo dos custos reduzidos zij − cij para cd var. não básicase zij − cij ≤ 0 para todas as var., STOP a sol. actual é óptima, senãocontinuar no Passo 3.
há dois modos de cálculo dos custos reduzidos
(use o exemplo usado no mét. de Vögel, mas det. a sol. bás. admiss. inicialatravés do mét. canto noroeste)
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 25 / 138
Problema de Transportes
1. Método de Stepping-Stonebaseia-se no mét. simplex
construção do ciclo associado a cd var. não bás.cálculo dos custos reduzidos zij − cij para cd var. nãobásica em que
zij − cij =∑
xk1k2v .b.ciclo
−(⊕/ ck1k2)− cij
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 26 / 138
Problema de Transportes
2. Método 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 equações: se xij é var.bás. então ui + vj = cijcomo uma das m + n rest. do prob. primal éredundante, este sistema é indeterminado, pelo que sefixa o valor de uma das var. duais a zeroresolução do sist.
cálculo dos custos reduzidos zij − cij para cd var. nãobásica em que
zij − cij = ui + vj − cij
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 27 / 138
Problema de Transportes
Passo 3. Seleccionar as var. de entrada e sáı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 à 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) Métodos de Investigação Operacional MIO 2019-2020 28 / 138
Problema de Transportes
Passo 4. Obter a nova sol. bás. admisśı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. éz = z − θ(zkl − ckl)
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 29 / 138
Problema de Transportes
Degenerescência - Método da Perturbação
a degenerescência no P.T. é frequente e manifesta-se sp que surjamempates no processo de obtenção de uma sol. bás. admiss. inicial ouquando da escolha da var. a ser substitúıda na base
em caso de empate a escolha pode ser arbitrária, contudo existe a técnicada perturbação que permite identificar as var. a tomar como básicas deforma a evitar a posśıvel entrada em ciclo
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 30 / 138
Problema de Transportes
o mét. da perturbação consiste em formular um novo P.T. semdegenerescência, modificando ligeiramente os valores de ai e bj da seguinteforma
ai = ai + � i = 1, . . . ,mbj = bj j = 1, . . . , n − 1bn = bn + m�
para � > 0 e arbitrariamente pequeno, para que a sol. obtida seja muitopróxima da sol. correcta.
Nota: tb podemos usar
ai = ai i = 1, . . . ,m − 1am = am + n�bj = bj + � j = 1, . . . , n
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 31 / 138
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 mét. canto noroeste para obtenção de uma sol. bás. admiss.inicial.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 32 / 138
Problema de Transhipment
Problema de Transhipment
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 33 / 138
Problema de Transhipment
Problema de Transhipment
o P.T. pode ser visto como um caso particular do prob. geral que é oprob. de Transhipment (transfega, trans-expedição)
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 é igual à soma total dasnecessidades nos destinos
qualquer que seja o nodo é posśıvel transportar o produto de e paraele
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 34 / 138
Problema de Transhipment
Problema de Transhipment
se o nodo é
origemquant. dispońıvel = quant. sai - quant. entra
destinoquant. necessária = quant. entra - quant. sai
entrepostoquant. sai = quant. entra
resolução através da sua transformação num prob. transportes
como transformar?
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 35 / 138
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
então∑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) Métodos de Investigação Operacional MIO 2019-2020 36 / 138
Problema de Transhipment
Problema de Transhipment
considerando
cij = custo unitário de transporte de i para jci = custo unitário de transhipment em iti = quant. sujeita a transhipment em i
a f.o. ficamin
∑i
∑j ,j 6=i
cijxij +∑i
ci ti
(o último termo é um modo de penalizar o que não é necessário:se é origem: porque entra?
se é destino: porque sai?)
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 37 / 138
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) Métodos de Investigação Operacional MIO 2019-2020 38 / 138
Problema de Transhipment
Problema de Transhipment
definindo {xii = C − ticii = −ci
para i = 1, . . . , n e onde C é uma constante arbitrariamente grande quegaranta xii ≥ 0
podemos usar esta def. para eliminar ti nas expressões anteriores
a nova f.o. ficamin
∑i
∑j
cijxij −∑i
ciiC
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 39 / 138
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) Métodos de Investigação Operacional MIO 2019-2020 40 / 138
Problema de Afectação (Assignment)
Problema de Afectação(Assignment)
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 41 / 138
Problema de Afectação (Assignment)
Problema de Afectação (Assignment)
Dados
n indiv́ıduos
n tarefas
e sendo cij o custo de afectar o indiv́ıduo i à tarefa j
pretendemos afectar cada indiv́ıduo a uma e uma só tarefa de forma a queo custo total de execução das tarefas seja ḿınimo.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 42 / 138
Problema de Afectação (Assignment)
A formulação em P.L. do problema de afectação (P.A.) é:
minn∑
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) Métodos de Investigação Operacional MIO 2019-2020 43 / 138
Problema de Afectação (Assignment)
em notação matricial é:
min cxs. a: Ax = 1
xij ∈ {0, 1}
em quex = (x11, . . . , x1n, x21, . . . , x2n, . . . , xnn)
t
c = (c11, . . . , c1n, c21, . . . , c2n, . . . , cnn)
1 é um vector de 1s com 2n componentes
A é uma matriz (2n)× (n2) em que cada coluna (i , j) é aij = ei + en+j
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 44 / 138
Problema de Afectação (Assignment)
Exemplo
Consideremos uma Fábrica com 3 secções (montagem (M), pintura (P) eembalagem (E))e 3 candidatos (C1, C2, C3)
e os custos de afectação dados por
M P E
C1 4 5 3C2 1 4 2C3 3 1 5
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 45 / 138
Problema de Afectação (Assignment)
min4x11 + 5x12 + 3x13 + x21 + 4x22 + 2x23 + 3x31 + x32 + 5x33s. a: x11 + x12 + x13 = 1
x21 + 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) Métodos de Investigação Operacional MIO 2019-2020 46 / 138
Problema de Afectação (Assignment)
Propriedades do Problema de Afectação
o politopo do P.A. possui n! pontos extremos; cd sol. inteira admiss. éuma afectação e cd afectação é um ponto extremo
trata-se de um problema de P.L. com variáveis 0− 1para cd afectação escolhemos as correspond. var. xij com valor 1 comovar. bás., obtemos n var. bás. com valor unitário; para completar abase precisamos de escolher mais n − 1 var. (degeneradas)é um caso particular do P.T. em que m = n e ai = bj = 1, como talqq sol. bás. admiss. tem valores inteiros e podemos substituir as cond.de integralidade por simples cond. de não negatividade
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 47 / 138
Problema de Afectação (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 condições de complementaridade de slacks são
(cij − ui − vj)xij = 0, i = 1, . . . , n, j = 1, . . . , n
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 48 / 138
Problema de Afectação (Assignment)
Se determinarmos um par de sol. admisśıveis para o primal e dual, queverifiquem as cond. de complementaridade, elas serão óptimas.
uma sol. admiss. para o dual é
{ūi = minj cij i = 1, . . . , nv̄j = mini{cij − ūi} j = 1, . . . , n
e seja x̄ definido por x̄ij =
{1 se ūi + v̄j − cij = 00 se ūi + v̄j − cij 6= 0
se x̄ for admisśıvel para o primal, então é uma sol. óptima e (ū, v̄) éóptima do dual
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 49 / 138
Problema de Afectação (Assignment)
Algumas considerações
o problema de afectação fica completamente determinado pela suamatriz de custos
num prob. afectação em que todos os custos são não negativos, seexistir uma afectação admisśıvel com custos nulos, trata-se daafectação óptima
TeoremaSe adicionarmos uma constante a cada linha e/ou coluna da matriz decustos de um prob. de afectação, o problema obtido tem a mesma soluçãoóptima que o problema original.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 50 / 138
Problema de Afectação (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 nãonegativos
2 escolhendo adequadamente os valores a somar às linhas/colunas,podemos introduzir zeros na matriz de custos e procurar umaafectação de custo nulo que será óptima
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 51 / 138
Problema de Afectação (Assignment)
os valores subtráıdos às 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. admisśıvel para o P.A. diz-se uma afectação completa
uma afectação completa consiste num e um só zero afecto em cdlinha e cd coluna
uma afectação diz-se maximal se não é posśıvel afectar mais zeros namatriz
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 52 / 138
Problema de Afectação (Assignment)
TeoremaSe k é o número máx. de zeros afectáveis, então existe um conjunto de kriscos que cobrem todos os zeros da matriz, de forma que nenhum zeroafecto está na intersecção de dois riscos.
se k = n temos a sol. do problema
se k < n vamos introduzir mais zeros na matriz
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 53 / 138
Problema de Afectação (Assignment)
TeoremaSupondo que os zeros da matriz de custo são cobertos por k < n riscos,seja θ o ḿınimo dos elementos não cobertos. Se subtrairmos θ a todas aslinhas não cobertas e somarmos θ a todas as colunas cobertas, obtém-seuma nova matriz de custos cuja soma de todos elementos é inferior emθn(n − k) à soma de todos os elementos da matriz anterior.
a convergência finita do algoritmo húngaro (Kuhn, 1955/56) que vamosdescrever resulta do teorema anterior
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 54 / 138
Problema de Afectação (Assignment)
Método húngaro, Kuhn (1955)
Passo 1 Redução da matriz de custos: reduzir a matriz de custos demodo a que todos os elementos sejam não negativos e cdlinha e cd coluna contenha pelo menos um zero
1 subtrair aos elementos de cada linha da matriz de custoso ḿınimo dessa linha
2 na matriz resultante, subtrair a cada coluna o respectivoḿınimo
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 55 / 138
Problema de Afectação (Assignment)
Passo 2 Determinar uma afectação maximal associada apenas a zerosna matriz de custos
1 desenhar o número ḿınimo de traços que cobrem todosos zeros da matriz, seja k o número ḿınimo de traçosque cobrem todos os zeros (ou o número de zerosafectos)
2 se k = n, STOP a afectação óptima foi encontrada,enquadrar n zeros, um por linha e um por coluna
3 se k < n, então efectuar a redução da matriz de custos
1 seja θ o ḿınimo dos elementos não riscados2 subtrair θ a todos os elementos não riscados3 somar θ a todos os elementos duplamente riscados4 considerar de novo todos os zeros livres e voltar ao
Passo 2.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 56 / 138
Problema de Afectação (Assignment)
Interpretação do algoritmo
No final do Passo 1 uma sol. admiss. inicial para o dual é obtida daseguinte forma{
ūi = minj cij i = 1, . . . , nv̄j = mini{cij − ūi} j = 1, . . . , n
a correspondente solução primal pode também ser determinada
Os Passos 2.1 e 2.2 correspondem à verificação da optimalidade da solução
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 57 / 138
Problema de Afectação (Assignment)
O Passo 2.3 corresponde à actualização da solução, a solução dual podeser actualizada da seguinte forma{
ūi = ūi + θ, ∀i linha não cobertav̄j = v̄j − θ, ∀j coluna coberta
exemplo
5 4 2 6
3 5 4 1
7 8 6 2
2 1 1 3
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 58 / 138
Problema de Afectação (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) Métodos de Investigação Operacional MIO 2019-2020 59 / 138
Problema de Afectação (Assignment)
a solução primal pode também ser obtida tentando ”enquadrar”um zero emcada linha e em cada coluna
por exemplo, ”enquadrar”os zeros nas posições
(1, 3), (2, 4), (4, 2)
ainda não foi posśıvel ”enquadrar”n = 4 zeros, por isso a solução aindanão é óptima
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 60 / 138
Problema de Afectação (Assignment)
Passo 21. desenhar traços 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 traços (notar que foram também apenas”enquadrados”3 zeros)portanto, ainda não obtivemos uma afectação completa
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 61 / 138
Problema de Afectação (Assignment)
3. determinar θ o menor dos elementos não riscados, i. e.
θ = min{2, 2, 1, 4, 4, 6} = 1
e actualizar
a solução dual passa a seru1 = 2 + 1 v1 = 1u2 = 1 + 1 v2 = 0u3 = 2 + 1 v3 = 0− 1u4 = 1 v4 = 0− 1
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 62 / 138
Problema de Afectação (Assignment)
a matriz é actualizada para1 1 0 4
0 3 3 0
3 5 4 0
0 0 1 3
podemos ”enquadrar os zeros nas posições (1, 3), (3, 4), (4, 2), (2, 1)já obtivemos uma afectação completa, portanto a solução já é óptima ouentão (no Passo 2.1) desenhar traços sobre a linha 4, a coluna 4, a coluna3 e a linha 2,foram desenhados 4 traços, portanto a solução já é óptima
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 63 / 138
Problema da Árvore de suporte de custo ḿınimo
Problema da Árvore desuporte de custo ḿınimo
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 64 / 138
Problema da Árvore de suporte de custo ḿınimo
Topologias de ligação para diversos tipos de redes
Diversos tipos de redes:de telecomunicações, de transportes, de electricidade, de gás
Diversas topologias de ligação:
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 65 / 138
Problema da Árvore de suporte de custo ḿınimo
Dados
um grafo G = (V ,E ) sendo
V = {1, 2, . . . , n} o conjunto de vértices;E = {{i , j}, i , j ∈ V } o conjunto de arestas;cij o custo unitário 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) Métodos de Investigação Operacional MIO 2019-2020 66 / 138
Problema da Árvore de suporte de custo ḿınimo
Dados
um grafo G = (V ,E ) sendo
V = {1, 2, . . . , n} o conjunto de vértices;E = {{i , j}, i , j ∈ V } o conjunto de arestas;cij o custo unitário 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) Métodos de Investigação Operacional MIO 2019-2020 66 / 138
Problema da Árvore de suporte de custo ḿınimo
Dados
um grafo G = (V ,E ) sendo
V = {1, 2, . . . , n} o conjunto de vértices;E = {{i , j}, i , j ∈ V } o conjunto de arestas;cij o custo unitário 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) Métodos de Investigação Operacional MIO 2019-2020 66 / 138
Problema da Árvore de suporte de custo ḿınimo
Dados
um grafo G = (V ,E ) sendo
V = {1, 2, . . . , n} o conjunto de vértices;E = {{i , j}, i , j ∈ V } o conjunto de arestas;cij o custo unitário 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) Métodos de Investigação Operacional MIO 2019-2020 66 / 138
Problema da Árvore de suporte de custo ḿınimo
Árvore de suporte
Uma árvore de suporte T de G é o menor subgrafo conexo e aćıclico (semciclos) com todos os vértices de G .
0
1
2
6 3
4
5
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 67 / 138
Problema da Árvore de suporte de custo ḿınimo
Árvore de suporte
Uma árvore de suporte T de G é o menor subgrafo conexo e aćıclico (semciclos) com todos os vértices de G .
0
1
2
6 3
4
5
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 67 / 138
Problema da Árvore de suporte de custo ḿınimo
Árvore de suporte de custo ḿınimo (ASCM)
árvore - o menor subgrafo conexo sem ciclos - cujo custo total das arestasé o menor posśıvel
0
1
2
6 3
4
5
custo = 20
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 68 / 138
Problema da Árvore de suporte de custo ḿınimo
Árvore de suporte de custo ḿınimo (ASCM)
árvore - o menor subgrafo conexo sem ciclos - cujo custo total das arestasé o menor posśıvel
0
1
2
6 3
4
53
2
1
5
45
custo = 20
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 68 / 138
Problema da Árvore de suporte de custo ḿınimo
Seja T = (V ,ET ) uma árvore de suporte.
Ciclo numa árvore
Seja a uma qualquer aresta “não na árvore”, isto é, a ∈ E\ET .Juntando a a T formamos um único ciclo C .Se, de seguida, removermos qualquer outra aresta de C formamos umaoutra árvore de suporte.
0
1
2
6 3
4
5
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 69 / 138
Problema da Árvore de suporte de custo ḿınimo
Seja T = (V ,ET ) uma árvore de suporte.
Ciclo numa árvore
Seja a uma qualquer aresta “não na árvore”, isto é, a ∈ E\ET .Juntando a a T formamos um único ciclo C .Se, de seguida, removermos qualquer outra aresta de C formamos umaoutra árvore de suporte.
0
1
2
6 3
4
5
C = { {0, 1}, {0, 6}, {1, 5}, {2, 6}, {2, 5}}C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 69 / 138
Problema da Árvore de suporte de custo ḿınimo
Seja T = (V ,ET ) uma árvore de suporte.
Ciclo numa árvore
Seja a uma qualquer aresta “não na árvore”, isto é, a ∈ E\ET .Juntando a a T formamos um único ciclo C .Se, de seguida, removermos qualquer outra aresta de C formamos umaoutra árvore de suporte.
0
1
2
6 3
4
5
C = { {0, 1}, {0, 6}, {1, 5}, {2, 6}, {2, 5}}C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 69 / 138
Problema da Árvore de suporte de custo ḿınimo
Seja T = (V ,ET ) uma árvore de suporte.
Ciclo numa árvore
Seja a uma qualquer aresta “não na árvore”, isto é, a ∈ E\ET .Juntando a a T formamos um único ciclo C .Se, de seguida, removermos qualquer outra aresta de C formamos umaoutra árvore de suporte.
0
1
2
6 3
4
5
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 69 / 138
Problema da Árvore de suporte de custo ḿınimo
Seja T = (V ,ET ) uma árvore de suporte.
CORTE numa árvore
Seja {i , j} uma qualquer aresta na árvore, isto é, {i , j} ∈ ET .Removendo a aresta {i , j} da árvore T , formamos duas componentesconexas com conjuntos de vértices S e V \S .As arestas que unem vértices de S a vértices de V \S formam um corteCORTE (S ,V \S).
0
1
2
6 3
4
5
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 70 / 138
Problema da Árvore de suporte de custo ḿınimo
Seja T = (V ,ET ) uma árvore de suporte.
CORTE numa árvore
Seja {i , j} uma qualquer aresta na árvore, isto é, {i , j} ∈ ET .Removendo a aresta {i , j} da árvore T , formamos duas componentesconexas com conjuntos de vértices S e V \S .As arestas que unem vértices de S a vértices de V \S formam um corteCORTE (S ,V \S).
0
1
2
6 3
4
5
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 70 / 138
Problema da Árvore de suporte de custo ḿınimo
Seja T = (V ,ET ) uma árvore de suporte.
CORTE numa árvore
Seja {i , j} uma qualquer aresta na árvore, isto é, {i , j} ∈ ET .Removendo a aresta {i , j} da árvore T , formamos duas componentesconexas com conjuntos de vértices S e V \S .As arestas que unem vértices de S a vértices de V \S formam um corteCORTE (S ,V \S).
0
1
2
6 3
4
5
CORTE ({0, 1, 5, 6}, {2, 3, 4}) ={{0, 2}, {1, 3}, {5, 2}, {5, 3}, {6, 2}, {6, 4}}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 70 / 138
Problema da Árvore de suporte de custo ḿınimo
Condições de Otimalidade
Condições de Otimalidade de CORTE
Para qualquer aresta {i , j} na árvore T , isto é, {i , j} ∈ ET , temos cij ≤ ck`para qualquer aresta {k, `} do corte formado quando se remove a aresta{i , j} de T .
0
1
2
6 3
4
5
3
10
2
1
5
4
5
7
8
9 8
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 71 / 138
Problema da Árvore de suporte de custo ḿınimo
Condições de Otimalidade
Condições de Otimalidade de CORTE
Para qualquer aresta {i , j} na árvore T , isto é, {i , j} ∈ ET , temos cij ≤ ck`para qualquer aresta {k, `} do corte formado quando se remove a aresta{i , j} de T .
0
1
2
6 3
4
5
3
10
2
1
5
4
5
7
8
9 8
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 71 / 138
Problema da Árvore de suporte de custo ḿınimo
Condições de Otimalidade
Condições de Otimalidade de CAMINHO
Para toda a aresta {k, `}“não na árvore”T , isto é, {k, `} 6∈ ET , temoscij ≤ ck` para toda a aresta {i , j} do CAMINHO formado pelas arestas{i , j} de T que unem o vértice k ao vértice `.
0
1
2
6 3
4
5
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 72 / 138
Problema da Árvore de suporte de custo ḿınimo
Condições de Otimalidade
Condições de Otimalidade de CAMINHO
Para toda a aresta {k, `}“não na árvore”T , isto é, {k, `} 6∈ ET , temoscij ≤ ck` para toda a aresta {i , j} do CAMINHO formado pelas arestas{i , j} de T que unem o vértice k ao vértice `.
0
1
2
6 3
4
5
C = [2, 6, 0, 1, 5]
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 72 / 138
Problema da Árvore de suporte de custo ḿınimo
Condições de Otimalidade
Condições de Otimalidade de CAMINHO
Para toda a aresta {k, `}“não na árvore”T , isto é, {k, `} 6∈ ET , temoscij ≤ ck` para toda a aresta {i , j} do CAMINHO formado pelas arestas{i , j} de T que unem o vértice k ao vértice `.
0
1
2
6 3
4
5
3
2
1
5
7
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 72 / 138
Problema da Árvore de suporte de custo ḿınimo
Teoremas de Otimalidade
Otimalidade de CORTE
Uma árvore de suporte T é uma árvore de suporte de custo ḿınimo se e sóse satisfaz as condições de otimalidade de CORTE.
Otimalidade de CAMINHO
Uma árvore de suporte T é uma árvore de suporte de custo ḿınimo se e sóse satisfaz as condições de otimalidade de CAMINHO.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 73 / 138
Problema da Árvore de suporte de custo ḿınimo
problema de optimização combinatória
algoritmos de resolução polinomiais
1 Algoritmo de Kruskal
2 Algoritmo de Prim
→ algoritmos ’greedy’ (gulosos)
estes algoritmos satisfazem as condições de optimalidade do corte edo caminho
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 74 / 138
Problema da Árvore de suporte de custo ḿınimo
Algoritmo de Kruskal
1 Ordenar as arestas por ordem não decrescente do seu custo
2 Inicializar T := {}3 Enquanto E 6= {}, fazer
1 seleccionar uma aresta a = {i , j} ∈ E2 se T ∪ {a} não formar um ciclo, então T := T + {a}3 E := E − {a}
Nota: também podeŕıamos continuar o ciclo ”Enquanto |T | < n − 1”
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 75 / 138
Problema da Árvore de suporte de custo ḿınimo
Determine a árvore de custo ḿınimo para o seguinte exemplo.
0
1
2
6 3
4
5
3
10
2
1
5
4
5
7
8
9 8
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 76 / 138
Problema da Árvore de suporte de custo ḿınimo
Determine a árvore de custo ḿınimo para o seguinte exemplo.
0
1
2
6 3
4
5
3
10
2
1
5
4
5
7
8
9 8
1
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 76 / 138
Problema da Árvore de suporte de custo ḿınimo
Determine a árvore de custo ḿı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
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 76 / 138
Problema da Árvore de suporte de custo ḿınimo
Determine a árvore de custo ḿı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
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 76 / 138
Problema da Árvore de suporte de custo ḿınimo
Determine a árvore de custo ḿı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
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 76 / 138
Problema da Árvore de suporte de custo ḿınimo
Determine a árvore de custo ḿı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
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 76 / 138
Problema da Árvore de suporte de custo ḿınimo
Determine a árvore de custo ḿı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) Métodos de Investigação Operacional MIO 2019-2020 76 / 138
Problema da Árvore de suporte de custo ḿı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) Métodos de Investigação Operacional MIO 2019-2020 77 / 138
Problema da Árvore de suporte de custo ḿınimo
Representação poliédrica em PLI
caracterizar um conjunto de arestas satisfazendo uma determinadapropriedade
Como?
formulações naturais e estendidas
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 78 / 138
Problema da Árvore de suporte de custo ḿınimo
Representação poliédrica em PLI
caracterizar um conjunto de arestas satisfazendo uma determinadapropriedade
Como?
formulações naturais e estendidas
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 78 / 138
Problema da Árvore de suporte de custo ḿınimo
Representação poliédrica em PLI
caracterizar um conjunto de arestas satisfazendo uma determinadapropriedade
Como?
formulações naturais e estendidas
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 78 / 138
Problema da Árvore de suporte de custo ḿınimo
Formulação natural
conjunto de variáveis uij , para toda a aresta {i , j} ∈ E , ou xij , para todo oarco (i , j) ∈ A, que caracterizam o objeto combinatório
uij =
{1, se aresta {i , j} está na solução0, c.c.
ou
xij =
{1, se arco (i , j) está na solução0, c.c.
+conjunto de restrições nas variáveis uij ou xij
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 79 / 138
Problema da Árvore de suporte de custo ḿınimo
Formulação estendida
conjunto de variáveis que caracterizam o objeto combinatório+
conjunto de variáveis ”adicionais”+
conjunto de restrições nas variáveis ”naturais”+
conjunto de restrições nas variáveis ”adicionais”+
conjunto de restrições de ligação das variáveis
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 80 / 138
Problema da Árvore de suporte de custo ḿınimo
Formulação não orientada - Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não tem ciclos
(USUB)
∑{i ,j}∈E uij = n − 1
∑{i ,j}∈E(S) uij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
uij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 81 / 138
Problema da Árvore de suporte de custo ḿınimo
Formulação não orientada - Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não tem ciclos
(USUB)
∑{i ,j}∈E uij = n − 1
∑{i ,j}∈E(S) uij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
uij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 81 / 138
Problema da Árvore de suporte de custo ḿınimo
Formulação não orientada - Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não tem ciclos
(USUB)
∑{i ,j}∈E uij = n − 1
∑{i ,j}∈E(S) uij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
uij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 81 / 138
Problema da Árvore de suporte de custo ḿınimo
Formulação não orientada - Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não tem ciclos
(USUB)
∑{i ,j}∈E uij = n − 1
∑{i ,j}∈E(S) uij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
uij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 81 / 138
Problema da Árvore de suporte de custo ḿınimo
Formulação não orientada - Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não tem ciclos
(USUB)
∑{i ,j}∈E uij = n − 1
∑{i ,j}∈E(S) uij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
uij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 81 / 138
Problema da Árvore de suporte de custo ḿınimo
Formulação não orientada - Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não 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) Métodos de Investigação Operacional MIO 2019-2020 81 / 138
Problema da Árvore de suporte de custo ḿınimo
Formulações orientadas
Orientar o grafo:
cada aresta e = {0, j} de E é substitúıda pelo arco (0, j)
cada aresta e = {i , j} de E (i 6= 0) é substitúı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) Métodos de Investigação Operacional MIO 2019-2020 82 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não tem ciclos
(SUB)
∑(i ,j)∈A xij = n − 1
∑(i ,j)∈A(S) xij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
xij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 83 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não tem ciclos
(SUB)
∑(i ,j)∈A xij = n − 1
∑(i ,j)∈A(S) xij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
xij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 83 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não tem ciclos
(SUB)
∑(i ,j)∈A xij = n − 1
∑(i ,j)∈A(S) xij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
xij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 83 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não tem ciclos
(SUB)
∑(i ,j)∈A xij = n − 1
∑(i ,j)∈A(S) xij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
xij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 83 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não tem ciclos
(SUB)
∑(i ,j)∈A xij = n − 1
∑(i ,j)∈A(S) xij ≤ |S | − 1
∀S ⊆ V , |S | ≥ 2
xij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 83 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de SUBCIRCUITOS
Uma árvore de suporte
tem n-1 arestas/arcos não 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) Métodos de Investigação Operacional MIO 2019-2020 83 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de CORTES
Uma árvore de suporte
tem n-1 arestas/arcos é 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}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 84 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de CORTES
Uma árvore de suporte
tem n-1 arestas/arcos é 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}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 84 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de CORTES
Uma árvore de suporte
tem n-1 arestas/arcos é 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}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 84 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de CORTES
Uma árvore de suporte
tem n-1 arestas/arcos é 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}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 84 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de CORTES
Uma árvore de suporte
tem n-1 arestas/arcos é 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}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 84 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de CORTES
Uma árvore de suporte
tem n-1 arestas/arcos é 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) Métodos de Investigação Operacional MIO 2019-2020 84 / 138
Problema da Árvore de suporte de custo ḿınimo
Proposição
o conjunto de soluções admisśıveis de (SUBL) e o conjunto de soluçõesadmisśıveis de (CORTEL) caracterizam o envolvente convexo associado aASCM
Teorema
Os pontos extremos do poliedro definido quer pela relaxação linear domodelo (SUB) quer pela relaxação linear do modelo (CORTE) são osvectores de incidência da árvore de suporte.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 85 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de fluxos
o facto de uma árvore ser um grafo conexo é tratado de uma formadiferente
consideramos o fluxo de uma comodidade do nodo 0 para cada umdos restantes nodos do grafo
usamos variáveis 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) Métodos de Investigação Operacional MIO 2019-2020 86 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de fluxos
(MFLUXOS)∑(i ,j)∈A xij = 1, ∀j ∈ V \ {0}
∑i∈V y
kij −
∑i∈V y
kji =
−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= kxij ∈ {0, 1}ykij ≥ 0
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 87 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de fluxos
(MFLUXOS)∑(i ,j)∈A xij = 1, ∀j ∈ V \ {0}
∑i∈V y
kij −
∑i∈V y
kji =
−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= kxij ∈ {0, 1}ykij ≥ 0
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 87 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de fluxos
(MFLUXOS)∑(i ,j)∈A xij = 1, ∀j ∈ V \ {0}
∑i∈V y
kij −
∑i∈V y
kji =
−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= kxij ∈ {0, 1}ykij ≥ 0
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 87 / 138
Problema da Árvore de suporte de custo ḿınimo
Modelo de fluxos
(MFLUXOS)∑(i ,j)∈A xij = 1, ∀j ∈ V \ {0}
∑i∈V y
kij −
∑i∈V y
kji =
−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= kxij ∈ {0, 1}ykij ≥ 0
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 87 / 138
Problema da Árvore de suporte de custo ḿınimo
Árvore com restrições adicionais
melhorar o desempenho da rede e que cumpram os requisitos de algunsdispositivos instalados
restrições de atraso máximo e restrições de fiabilidade da rede demodo a evitar a degradação da qualidade do sinal da rede
−→ restrições de salto limitam o comprimento do caminho do nodo 0para todos os restantes nodos
−→ restrições de diâmetro limitam o comprimento do maior caminhoda árvore
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 88 / 138
Problema da Árvore de suporte de custo ḿınimo
Árvore com restrições adicionais
melhorar o desempenho da rede e que cumpram os requisitos de algunsdispositivos instalados
restrições de atraso máximo e restrições de fiabilidade da rede demodo a evitar a degradação da qualidade do sinal da rede
−→ restrições de salto limitam o comprimento do caminho do nodo 0para todos os restantes nodos
−→ restrições de diâmetro limitam o comprimento do maior caminhoda árvore
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 88 / 138
Problema da Árvore de suporte de custo ḿınimo
Árvore com restrições adicionais
melhorar o desempenho da rede e que cumpram os requisitos de algunsdispositivos instalados
restrições de capacidade de certos dispositivos instalados em algunsnós−→ restrições de capacidade limitam o número de nodos de qualquersubárvore da raiz−→ restrições de grau limitam o número de ligações dos nodos daárvore
restrições nos custos de instalação−→ restrições de peso (ou saco-mochila como também sãoconhecidas) limitam o peso da árvore
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 89 / 138
Problema da Árvore de suporte de custo ḿınimo
Árvore com restrições adicionais
melhorar o desempenho da rede e que cumpram os requisitos de algunsdispositivos instalados
restrições de capacidade de certos dispositivos instalados em algunsnós−→ restrições de capacidade limitam o número de nodos de qualquersubárvore da raiz−→ restrições de grau limitam o número de ligações dos nodos daárvore
restrições nos custos de instalação−→ restrições de peso (ou saco-mochila como também sãoconhecidas) limitam o peso da árvore
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 89 / 138
Problema da Árvore de suporte de custo ḿınimo
Árvore com restrições adicionais
melhorar o desempenho da rede e que cumpram os requisitos de algunsdispositivos instalados
restrições de capacidade de certos dispositivos instalados em algunsnós−→ restrições de capacidade limitam o número de nodos de qualquersubárvore da raiz−→ restrições de grau limitam o número de ligações dos nodos daárvore
restrições nos custos de instalação−→ restrições de peso (ou saco-mochila como também sãoconhecidas) limitam o peso da árvore
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 89 / 138
Problema do caminho mais curto
Problema do caminhomais curto
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 90 / 138
Problema do caminho mais curto
Dados
um grafo orientado G = (V ,A) sendo
V = {1, 2, . . . , n} o conjunto de vértices;A = {(i , j), i , j ∈ V } o conjunto de arcos;cij o custo unitário 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) Métodos de Investigação Operacional MIO 2019-2020 91 / 138
Problema do caminho mais curto
Dados
um grafo orientado G = (V ,A) sendo
V = {1, 2, . . . , n} o conjunto de vértices;A = {(i , j), i , j ∈ V } o conjunto de arcos;cij o custo unitário 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) Métodos de Investigação Operacional MIO 2019-2020 91 / 138
Problema do caminho mais curto
Dados
um grafo orientado G = (V ,A) sendo
V = {1, 2, . . . , n} o conjunto de vértices;A = {(i , j), i , j ∈ V } o conjunto de arcos;cij o custo unitário 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) Métodos de Investigação Operacional MIO 2019-2020 91 / 138
Problema do caminho mais curto
Dados
um grafo orientado G = (V ,A) sendo
V = {1, 2, . . . , n} o conjunto de vértices;A = {(i , j), i , j ∈ V } o conjunto de arcos;cij o custo unitário 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) Métodos de Investigação Operacional MIO 2019-2020 91 / 138
Problema do caminho mais curto
Caminho
Um caminho é uma sequência de vértices [v1, v2, . . . , vk ],v1, v2, . . . , vk ∈ V de tal forma que (vi , vi+1) ∈ A, i = 1, . . . , k − 1,, i.e.um vértice e o seu sucessor na sequência são adjacentes, sem qualquerrepetição de vértices.
0
1
2
6 3
4
5
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 92 / 138
Problema do caminho mais curto
Caminho
Um caminho é uma sequência de vértices [v1, v2, . . . , vk ],v1, v2, . . . , vk ∈ V de tal forma que (vi , vi+1) ∈ A, i = 1, . . . , k − 1,, i.e.um vértice e o seu sucessor na sequência são adjacentes, sem qualquerrepetição de vértices.
0
1
2
6 3
4
5
exemplos de passeios: [0,1,5,3]
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 92 / 138
Problema do caminho mais curto
Caminho
Um caminho é uma sequência de vértices [v1, v2, . . . , vk ],v1, v2, . . . , vk ∈ V de tal forma que (vi , vi+1) ∈ A, i = 1, . . . , k − 1,, i.e.um vértice e o seu sucessor na sequência são adjacentes, sem qualquerrepetição de vértices.
0
1
2
6 3
4
5
exemplos de passeios: [0,1,5,3][0,2,6,4]
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 92 / 138
Problema do caminho mais curto
Caminho mais curto (CMC)
caminho cujo custo total das arestas é o menor posśıvel
caminho mais curto ≡ caminho de menor custo
0
1
2
6 3
4
5
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 93 / 138
Problema do caminho mais curto
Caminho mais curto (CMC)
caminho cujo custo total das arestas é o menor posśıvel
caminho mais curto ≡ caminho de menor custo
0
1
2
6 3
4
5
10
5
[0,2,3] custo 15
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 93 / 138
Problema do caminho mais curto
Caminho mais curto (CMC)
caminho cujo custo total das arestas é o menor posśıvel
caminho mais curto ≡ caminho de menor custo
0
1
2
6 3
4
53
9
[0,1,3] custo 12
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 93 / 138
Problema do caminho mais curto
Caminho mais curto (CMC)
caminho cujo custo total das arestas é o menor posśıvel
caminho mais curto ≡ caminho de menor custo
0
1
2
6 3
4
53
1
8
[0,1,5,3] custo 12
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 93 / 138
Problema do caminho mais curto
Grande variedade de caminhos mais curtos
de um vértice espećıfico para outro espećıfico
de um vértice espećıfico para todos os outros
de cada um dos vértices para todos os outros
de um vértice espećıfico para outro espećıfico, mas passando por umdeterminado conjunto de vértices
...
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 94 / 138
Problema do caminho mais curto
Requisitos para o problema
Topologia da rede: consideramos apenas grafos/redes orientadose se não for?
Origem: consideramos que existe um caminho (orientado) da origempara cada um dos restantes vérticese se não tiver?
Custos/Comprimentos: consideramos apenas custos/comprimentos inteirose se não tiver?
Ciclos: consideramos que a rede não possui ciclos negativos
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 95 / 138
Problema do caminho mais curto
Representação poliédrica em PLI
caracterizar um conjunto de arcos satisfazendo uma determinadapropriedade
Propriedade:
caminho mais curto entre os vértices s e t
usamos variáveis binárias orientadas de fluxo yij que representam aquantidade de fluxo enviada pela raiz que passa no arco (i , j) e tem comodestino o vértice t
yij =
{1, se no arco (i , j) passa fluxo de s para t0, c.c.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 96 / 138
Problema do caminho mais curto
Modelo para o problema do CMC
CMC entre o vértice s e o vértice t
min∑
(i ,j)∈Acijyij
∑i∈V
yij −∑i∈V
yji =
−1, j = s0, j ∈ V \ {s, t}1, j = t
yij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 97 / 138
Problema do caminho mais curto
Representação poliédrica em PLI
Propriedade:
caminho mais curto entre o vértice s e todos os restantes vértices
usamos variáveis 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 não passa fluxo
usamos também variáveis binárias orientadas xij que indicam se o arco(i , j) está ou não na solução
xij =
{1, se o arco (i , j) está na solução0, c.c.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 98 / 138
Problema do caminho mais curto
Modelo para o problema do CMC
CMC entre o vértice s e todos os restantes vértices
min∑
(i ,j)∈Acijxij
∑i∈V
fij −∑i∈V
fji =
{−(|V | − 1), j = s1, j ∈ V \ {s}
fij ≤ (|V | − 1)xij , (i , j) ∈ Afij ≥ 0xij ∈ {0, 1}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 99 / 138
Problema do caminho mais curto
Modelo para o problema do CMC
CMC entre o vértice s e todos os restantes vértices
min∑
(i ,j)∈Acij fij
∑i∈V
fij −∑i∈V
fji =
{−(|V | − 1), j = s1, j ∈ V \ {s}
fij ≥ 0
neste modelo o valor da f.o. é a soma dos custos (comprimentos) de todosos caminhosno modelo anterior o valor da f.o. dá-nos o valor da soma do custo dosarcos na solução (o custo de cada arco é contabilizado apenas uma vez)
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 100 / 138
Problema do caminho mais curto
Algoritmo de Dijkstra
Requisitos:
Custos inteiros e não negativos
Existe um vértice origem s
Existe um caminho orientado do vértice origem para todos os outrosvértices
Objectivo
Encontrar o caminho mais curto do vértice origem para cada um dosoutros vértices
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 101 / 138
Problema do caminho mais curto
Algoritmo de Dijkstra
Etiquetas:
Vamos considerar que etiquetamos os vértices
Designamos por d() o vetor das etiquetas
d(i) é a etiqueta do vértice i
d(i) é a distância/comprimento/custo de algum caminho do vérticeorigem para o vértice i
pred() é o vetor dos predecessores, no caminho, de cada vértice
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 102 / 138
Problema do caminho mais curto
Algoritmo de Dijkstra
Passo chave
Passo chave nos algoritmos para o CMC é a actualização das etiquetas
O procedimento Etiquetar(i) actualiza a etiqueta dos vértices jadjacentes a i :
Etiquetar(i)
1 para cada (i , j) ∈ A(i) fazer2 se d(j) > d(i) + cij , então d(j) := d(i) + cij e pred(j) := i
As etiquetas não podem aumentar de valor quando se executa umEtiquetar. Só podem diminuir.
Apenas executamos novamente Etiquetar(i) se d(i) diminuir de valor.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 103 / 138
Problema do caminho mais curto
Algoritmo de Dijkstra
O algoritmo de Dijkstra determina o caminho mais curto entre umvértice s e todos os outros vértices num grafo com custos nãonegativos.
A ideia base consiste em começar no vértice origem s e ir etiquetandoos vértices, a partir de s, com os respectivos custos/distâncias.
Sempre que se tem a certeza de que a etiqueta marca o caminho maiscurto, a etiqueta deixa de ser temporária e passa a ser permanente.
a etiqueta permanente d∗(j) é o valor da distância/custo do caminhomais curto do vértice s para o vértice j
o algoritmo de Dijkstra determina d∗(j) para cada j , aumentando asdistâncias desde o vértice origem s.
S designa o conjunto de vértices permanentemente etiquetados:d(j) = d∗(j) para j ∈ S .T designa o conjunto de vértices temporariamente etiquetados:d(j) ≥ d∗(j) para j ∈ T .
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 104 / 138
Problema do caminho mais curto
Algoritmo de Dijkstra
1 S := {s}, d(s) := 0, pred(s) := −12 T := V − {s}, d(j) =∞, pred(j) :=∞ para j ∈ T3 Etiquetar(s)4 Enquanto S 6= V , fazer
1 seleccionar um vértice i ∈ T tal que d(i) = min{d(j), j ∈ T}2 S := S ∪ {i}, T := T − {i}3 Etiquetar(i)
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 105 / 138
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) Métodos de Investigação Operacional MIO 2019-2020 106 / 138
Problema do caminho mais curto
Algoritmo de Dijkstra
Porque é que o algoritmo de Dijkstra funciona?
1 Se j ∈ S , então d(j) é a distância/custo mais curta do vértice s parao vértice j .
2 Se i ∈ S e j ∈ T , então d(i) ≤ d(j).3 Se j ∈ T , então d(j) é o custo do caminho mais curto do vértice s
para o vértice j ∈ S ∪ {j}.
Complexidade do algoritmo: O(|V |2)
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 107 / 138
Problema do caminho mais curto
Algoritmo de Bellman, Moore & FordPermite a existência de custos negativos nos arcos
Mas não pode ter ciclos com custo negativo
As etiquetas apenas se tornam permanentes no final do algoritmo.
No alg. Dijkstra quando uma etiqueta é tornada permanente, já não pode ser modificada(caso do nodo 2), no entanto a etiqueta pode não representar o custo do caminho maiscurto
1
2
3
4
2 1
5 3
6−4
Notação: d(j) = ”etiqueta de custo temporária”
a cada iteração, é o custo de um caminho (ou passeio) do vértice spara o vértice jno final do algoritmo, d(j) é o custo ḿınimo de um caminho do vértices para o vértice j
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 108 / 138
Problema do caminho mais curto
Algoritmo de Bellman, Moore & Ford
1 d(s) := 0, pred(s) := −12 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) Métodos de Investigação Operacional MIO 2019-2020 109 / 138
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) Métodos de Investigação Operacional MIO 2019-2020 110 / 138
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 existência de um ciclo com custo negativo
algoritmo tipo ”label correcting”, enquanto que o alg. Dijkstra é tipo”label setting”
Complexidade do algoritmo: O(|V ||A|) no melhor dos casos, mas pode serpior pois pode examinar um arco várias vezes
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 111 / 138
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 vértice i aovértice j .
Mais precisamente dk(i , j) é o custo do caminho mais curto dovértice i ao vértice j , podendo apenas usar os vértices 1, 2, . . . , k − 1.Propriedade: dk+1(i , j) = min{dk(i , j), dk(i , k) + dk(k, j)}
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 112 / 138
Problema do caminho mais curto
Algoritmo de Floyd-Warshall
1 Para todos os pares de vértice [i , j ] ∈ V × V fazerd(i , j) :=∞ e pred(i , j) := 0
2 Para todos os vértices 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 vértices [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) Métodos de Investigação Operacional MIO 2019-2020 113 / 138
Problema do caminho mais curto
exemplo: inicialização e iteração 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) Métodos de Investigação Operacional MIO 2019-2020 114 / 138
Problema do caminho mais curto
exemplo: iteração 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) Métodos de Investigação Operacional MIO 2019-2020 115 / 138
Problema do caminho mais curto
exemplo: iteração 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) Métodos de Investigação Operacional MIO 2019-2020 116 / 138
Problema do caminho mais curto
exemplo: iteração 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) Métodos de Investigação Operacional MIO 2019-2020 117 / 138
Problema do caminho mais curto
exemplo: iteração 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) Métodos de Investigação Operacional MIO 2019-2020 118 / 138
Problema do caminho mais curto
exemplo: iteração 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) Métodos de Investigação Operacional MIO 2019-2020 119 / 138
Problema do caminho mais curto
Como detectar ciclos de custo negativo?Se d(i , j) < 0 então existe um ciclo de custo negativo passando pelovértice i
Se fizer a inicialização d(i , i) =∞ é posśıvel a identificação de ciclos,com a inicialização d(i , i) = 0 apenas identifico ciclos de custonegativo.
Complexidade do algoritmo: O(|V |3)
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 120 / 138
Problema do fluxo máximo
Problema do fluxo máximo
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 121 / 138
Problema do fluxo máximo
Dados
um grafo orientado G = (V ,A) sendo
V = {1, 2, . . . , n} o conjunto de vértices;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
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 122 / 138
Problema do fluxo máximo
Dados
um grafo orientado G = (V ,A) sendo
V = {1, 2, . . . , n} o conjunto de vértices;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
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 122 / 138
Problema do fluxo máximo
Dados
um grafo orientado G = (V ,A) sendo
V = {1, 2, . . . , n} o conjunto de vértices;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
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 122 / 138
Problema do fluxo máximo
Dados
um grafo orientado G = (V ,A) sendo
V = {1, 2, . . . , n} o conjunto de vértices;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
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 122 / 138
Problema do fluxo máximo
Dados
um grafo orientado G = (V ,A) sendo
V = {1, 2, . . . , n} o conjunto de vértices;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) Métodos de Investigação Operacional MIO 2019-2020 122 / 138
Problema do fluxo máximo
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 8
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 123 / 138
Problema do fluxo máximo
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
10
2
5
4
5
7
8
93, 1
1, 1
8, 1
exemplos de caminhos e seus fluxos: [0,1,5,3] fluxo = 1
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 123 / 138
Problema do fluxo máximo
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
10
2
1
5
4
5
7
8
83, 3 9, 3
exemplos de caminhos e seus fluxos: [0,1,5,3] fluxo = 1 ×[0,1,3] fluxo = 3
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 123 / 138
Problema do fluxo máximo
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
2
1
4
5
7
8
83, 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 = 5
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 123 / 138
Problema do fluxo máximo
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
2
1
4
5
7
8
83, 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 é de 8
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 123 / 138
Problema do fluxo máximo
Representação poliédrica 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 variáveis orientadas de fluxo yij que representam a quantidade defluxo que passa no arco (i , j)
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 124 / 138
Problema do fluxo máximo
Modelo para o problema do fluxo máximo
Modelo para o fluxo máximo entre o vértice s e o vértice 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) Métodos de Investigação Operacional MIO 2019-2020 125 / 138
Problema do fluxo máximo
Fluxos
Fluxo admisśıvel
Referimo-nos a um fluxo y admisśıvel como sendo a quantidade de fluxoque atravessa um arco e não 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 estásaturado
um fluxo diz-se saturante se todo o caminho entre s e t está saturado
Fluxo máximo
Referimo-nos a um fluxo y como sendo máximo se for admisśıvel emaximizar a quantidade v que é enviada de s para t.
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 126 / 138
Problema do fluxo máximo
Fluxos
Objectivo
No problema do fluxo máximo, o objectivo é o de determinar o maior fluxoposśıvel, o fluxo máximo, de s para t.
s
1
2
t
10, 8
6, 5
1, 1
8, 7
10, 6
exemplo de um fluxo não óptimo, num problema de fluxo máximo
C. Requejo (UA) Métodos de Investigação Operacional MIO 2019-2020 127 / 138
Problema do fluxo máximo
Rede Residual
s
1
2
t i juij , yij
10, 8
6, 5
1, 1
8, 7
10, 6
s