M etodos de Investiga˘c~ao Operacionalsweet.ua.pt/crequejo/teach/mio_or.pdf · 2019. 12. 10. ·...

196
etodos de Investiga¸ ao Operacional Cristina Requejo gabinete: 11.3.11 email: [email protected] MIO 2019-2020 C. Requejo (UA) etodos de Investiga¸c˜ ao Operacional MIO 2019-2020 1 / 138

Transcript of M etodos de Investiga˘c~ao Operacionalsweet.ua.pt/crequejo/teach/mio_or.pdf · 2019. 12. 10. ·...

  • 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