• Nenhum resultado encontrado

Teorema de Dilworth

No documento Curso de Otimização Combinatória (páginas 63-71)

Uma cobertura de um digrafo G por dicaminhos (= dipath cover) é uma coleção de dica- minhos tal que todo nó de G está em pelo menos um dos dicaminhos da coleção. (Não confunda com o conceito de cobertura da seção4.1.) Uma cobertura por dicaminhos é mínima se usa o menor número possível de dicaminhos.

Nosso problema: Dado um digrafo G, encontrar uma cobertura mínima de G por dicaminhos.

O seguinte conceito pode ajudar a provar a minimalidade de uma cobertura por dica- minhos. Um conjunto A de nós de um digrafo G é uma anticadeia se não existe dica- minho com origem e término em dois nós distintos de A. Para qualquer cobertura P por dicaminhos e qualquer anticadeia A,

uma vez que todo dicaminho contém no máximo um dos nós de A.

Segue daí imediatamente que se |P| = |A| então P uma cobertura mínima (e A é uma anticadeia máxima). R.P. Dilworth mostrou (1950) que a recíproca dessa afirmação vale se G for um DAG:

Teorema 4.13 (Dilworth) Em qualquer DAG, uma cobertura mínima por dicaminhos tem o mesmo tamanho que uma anticadeia máxima:

min

P |P| = maxA |A| ,

sendo maxP tomado sobre todas as coberturas P por dicaminhos e minAtomado sobre

todas as anticadeias A.

ESBOÇO DA PROVA: Já observamos acima que toda cobertura por dicaminhos é pelo menos tão grande quanto uma anticadeia. Suponha agora que A é uma anticadeia máxima; mostraremos que existe uma cobertura por dicaminhos P tal que |P| ≤ |A|. (Como “<” é impossível, teremos “=”.) Faremos isso por uma redução ao teorema de fluxo mínimo (teorema4.12).

Seja G o DAG em discussão. Seja G0 o digrafo construído a partir de G da seguinte maneira. Para cada v em V (G), há dois nós, v1e v2, em V (G0)e um arco v1v2em E(G0);

diremos que esses arcos são especiais. Para cada vw em E(G), há um arco v2w1

em E(G0). Além disso, há dois novos nós, r e s, em V (G0) e, para cada v em V (G), os arcos rv1 e v2sestão em E(G0).

Defina uma função l de E(G0) em {0, 1}: se e é especial então l

e = 1 senão le = 0.

Mostraremos em seguida que a rede (G0, l)satisfaz as condições do teorema4.12. Seja Rum subconjunto de V (G0)que separa r de s e tem ∂0+(R) = ∅

. Seja B o conjunto de nós v de G tais que R separa v1 de v2 em G0. É claro que l−(R) = |B|. O conjunto B é

uma anticadeia de G e portanto |B| ≤ |A|, donde l−(R) ≤ |A|

. O teorema4.12garante agora que G0tem um fluxo inteiro x de r a s tal que x ≥ l e int(x) ≤ |A|.

O fluxo x pode ser decomposto em dicaminhos simples P10, . . . , P 0

j, sendo j = int(x),

todos de r a s. Como G0 é um DAG, podemos supor que |{i : P0

i 3 e}| = xe para

cada arco e. Todo arco especial pertence a pelo menos algum Pi0. Cada P 0

i induz um

dicaminho Pi no digrafo original G. O conjunto {P1, . . . , Pj} cobre todos os nós de G.

Ademais, j ≤ |A|.

Exercícios

4.48 Dê condições necessárias para que um digrafo tenha uma cobertura por dicaminhos com ≤ k dicaminhos. Em que tipo de digrafo essas condições valem?

4.49 Seja P uma cobertura mínima de um digrafo por dicaminhos. Podemos supor que todos os dicaminhos são simples? Podemos supor que P é disjunta, ou seja, que cada nó de G pertence a apenas um dos dicaminhos de P?

4.50 Mostre que num digrafo com dicircuitos uma anticadeia máxima pode ser menor que uma cober- tura mínima por dicaminhos.

4.51 Seja G um digrafo bipartido com bipartição (P, Q) (todos os arcos vão de P para Q). Mostre que um subconjunto A de V (G) é uma anticadeia se e somente se V (G)rA é uma cobertura no sentido da seção4.1. Que aparência tem uma cobertura mínima de G por dicaminhos?

4.52 Mostre uma anticadeia máxima e um cobertura mínima por dicaminhos no DAG da figura.

[CCPS fig 2.5]

4.53 ? Complete os detalhes da prova do teorema de Dilworth.

4.54 ? Escalonamento de aviões. Uma companhia de aviação quer servir p rotas (= flight legs) com o menor número possível de aviões. Para isso, ela precisa combinar essas rotas da maneira mais eficiente possível. O voo da rota i deve começar na hora ai e terminar na hora bi. Um avião precisa de

rijhoras para retornar do destino da rota i à origem da rota j. Sugira uma maneira de resolver o

problema.[AMO 6.32, CCPS 3.39]

4.55 Seja D a coleção de todos os dicaminhos de um digrafo G. Seja (Av,P : v ∈ V (G), P ∈ D)a matriz

binária tal que Av,P = 1se e somente se v está em P . Use A para formular o pl que corresponde

ao problema da cobertura mínima por dicaminhos. Qual o dual do pl? Qual a relação do dual com anticadeias máximas?

4.56 Deduza o teorema de Dilworth (teorema4.13) do teorema de K˝onig (teorema4.3).

Exercícios adicionais

4.57 ? Escalonamento em máquinas paralelas uniformes. Suponha dadas n tarefas (= jobs) J1, J2, . . . , Jne k

processadores idênticos. Cada tarefa Jjprecisa ser processada durante pjdias em qualquer dos

processadores. O processamento permite preemption, ou seja, o processamento de Jj num certo

processador pode ser interrompido e depois retomado em outro (ou o mesmo) processador. Em cada instante, cada processador só pode cuidar de uma tarefa e cada tarefa só pode estar sendo cuidada por um processador. Cada tarefa Jjestá disponível para processamento a partir de uma

certa data (= release date) rj e deve estar concluída até uma certa data (= due date) dj. (Suponha

que dj≥ rj+ pj.) Exemplo:

j 1 2 3 4 pj 25 31 50 18

rj 10 50 0 20

dj 30 70 60 50

Formule um problema de fluxo máximo que resolva o escalonamento. (Dica: Coloque o conjunto {r1, d1, r2, d2, . . . , rn, dn} de datas em ordem crescente. Seja t1< t2< · · · < tm+1, com m + 1 ≤ 2n,

o conjunto ordenado de datas. Agora, basta decidir que parte do processamento de cada tarefa Jj

será feita durante o intervalo (ti, ti+1).)[CCPS 3.41, AMO 6.17]

4.58 É dado um digrafo G, um nó r, e, para cada arco e, um número não-negativo ceque mede o custo

de destruir o arco. Se um atacante destrói um conjunto A de arcos, recebe um prêmio bvpara cada

nó v que não pode mais ser alcançado por um dicaminho a partir de r. O atacante quer escolher Ade modo a minimizar custos menos prêmios. Sugira um algoritmo.[CCPS 3.44]

Fluxo viável de custo mínimo

Este capítulo generaliza o problema de Gale da seção 4.3 e procura um fluxo que satisfaz demandas dos nós, respeita capacidades dos arcos, e faz tudo isso ao menor custo possível.

Para resolver o problema, o capítulo usa as duas ferramentas discutidas nos capítulos anteriores: dicaminhos de custo mínimo (capitulo 2) e fluxos de intensidade máxima (capitulo3).

Os ingredientes do problema são os mesmos dos capítulos anteriores: um digrafo G := (V, E), uma função-demanda (bv : v ∈ V )com valores em Q, uma função-capacidade

(ue : e ∈ E)com valores em Q+∪ {∞}, e uma função-custo (ce : e ∈ E)com valores

em Q. Note que u ≥ 0 mas b e c não têm restrição de sinal.

5.1

O problema

Como nos capítulos anteriores, um fluxo é qualquer vetor (xe : e ∈ E) com valores

em Q+. Numa rede (G, b, u), um fluxo x é viável se satisfaz b (ou seja, se x+− = b) e

respeita u (ou seja, se x ≤ u). A rede (G, b, u) é viável se tem um fluxo viável. Como já vimos na seção4.3, a rede é viável se e somente se b(V ) = 0 e b(A) ≤ u+(A)

para todo subconjunto A de V .

Numa rede (G, b, u, c), o custo de um fluxo x é o número cx. O problema do fluxo viável de custo mínimo (= minimum-cost flow problem) consiste no seguinte:

Problema 5.1 (fluxo de custo mínimo) Encontrar um fluxo viável de custo mínimo numa rede (G, b, u, c).

Muitas vezes, dizemos simplesmente “fluxo de custo mínimo”, deixando o “viável” subentendido. (Mas não é uma boa ideia omitir “de custo” e dizer “fluxo mínimo” pois isso pode ser confundido com fluxo de intensidade mínima, como na seção4.5, página53.) Dizemos também que um fluxo é ótimo se for viável e tiver custo mínimo. Dizemos ainda que uma rede (G, b, u, c) é ilimitada se for viável mas não tiver um fluxo ótimo.

EXEMPLO1: Seja G o digrafo com nós p v w q descrito abaixo por sua matriz de adjacências. À direita da matriz temos as demandas b. Mais à direita, as capacidades e os custos dos arcos e dois diferentes fluxos viáveis, x e x0. Verifique que cx = 240 e cx0= 180. Observe como é fácil conferir

a viabilidade e o custo de um fluxo percorrendo as linhas da tabela à direita. p v w q b p − 1 1 − −2 v − − 1 1 −1 w − − − 1 +1 q − − − − +2 pv pw vw vq wq u 3 3 3 3 3 x 0 2 0 1 1 x0 0 2 1 0 2 c −30 +80 +40 +90 −10

EXEMPLO2: Seja G o digrafo descrito abaixo por sua matriz de adjacências. À direita da matriz temos as demandas b. Mais à direita, as capacidades, os custos, e um fluxo viável x. Não existe fluxo ótimo pois, para qualquer número α, existe um fluxo viável de custo menor que α. Logo, a rede é ilimitada. p v w q b p − 1 − − 0 v − − 1 1 0 w 1 − − 1 0 q − − − − 0 pv wp vw vq wq u ∞ ∞ ∞ 3 3 c −10 −10 −10 −10 −10 x 1 1 1 0 0

Exercícios

5.1 Mostre que o problema do fluxo de intensidade máxima de r a s numa rede capacitada (veja o capitulo3) é um caso particular do problema do fluxo de custo mínimo.[CCPS 4.7]

5.2 Seja (G, b, u, c) uma rede viável tal que ue< ∞para todo arco e. Mostre que a rede não é ilimitada,

ou seja, tem um fluxo ótimo.

5.3 Considere o problema de encontrar um emparelhamento perfeito de custo mínimo em um grafo bipartido. (Um emparelhamento é perfeito se incide em todos os nós.) Formule esse problema como um problema de fluxo de custo mínimo.[CCPS 4.2]

5.4 Seja G um digrafo tal que |∂+(v)| + |∂(v)|

é par para cada nó v. Para cada arco vw, seja cvw o

custo de inverter vw (isto é, trocar vw por wv). Queremos encontrar um conjunto de arcos de custo mínimo cuja inversão faz com que G tenha um ciclo euleriano dirigido. Formule esse problema como um problema de fluxo de custo mínimo.[CCPS 4.5]

5.5 Atribuição de terminais a concentradores. Uma rede de teleprocessamento tem um grande número de terminais geograficamente dispersos e uma CPU. É dado um conjunto de concentradores, instalados em certos lugares, sendo cada um ligado à CPU por uma linha de grande capacidade e velocidade. Cada terminal precisa ser ligado à CPU. A ligação pode ser direta ou pode passar por um concentrador. Cada concentrador pode cuidar de no máximo K terminais. Para cada terminal i, o custo de uma ligação direta com a CPU é cioe o custo de uma ligação com um con-

centrador j é cij. (O custo da ligação de cada concentrador à CPU é nulo.) Queremos determinar

a maneira mais barata de ligar os terminais à CPU. Formule esse problema como um problema de fluxo de custo mínimo.[AMO 9.7]

5.2

Programas lineares

No jargão da programação linear, o problema do fluxo de custo mínimo pode ser for- mulado assim: encontrar um vetor (xv : v ∈ V )que

minimize cx sob as restrições x+ −(v) = bv para cada v ∈ V xe ≤ ue para cada e ∈ E xe ≥ 0 para cada e ∈ E. (1)

O dual desse programa linear consiste em encontrar vetores (yv : v ∈ V )e (ze : e ∈ E)

que

maximizem yb + zu sob as restrições −yv+ yw + zvw ≤ cvw para cada vw ∈ E

zvw ≤ 0 para cada vw ∈ E.

(2)

O teorema fraco da dualidade garante que cx ≥ yb + zu para qualquer solução viável x de (1) e qualquer solução viável (y, z) de (2). Se cx = yb + zu então as soluções x e (y, z) são ótimas. O teorema forte da dualidade garante a recíproca: se os dois pl’s forem viáveis então existe x viável no primal e existe (y, z) viável no dual tais que cx = yb + zu. A igualdade cx = yb + zu equivale às seguintes condições de folgas complementares: para cada arco vw,

xvw> 0implica −yv+yw+zvw = cvw e xvw < uvwimplica zvw= 0.1 (3)

(Essas condições poderiam ser escritas de maneira mais simétrica: para cada arco vw, xvw = 0ou −yv+yw+zvw= cvw e xvw = uvw ou zvw = 0.2)

Capacidades infinitas. A rigor, o programa linear (1) só representa o problema5.1se todos os arcos têm capacidade finita. Para os arcos e de capacidade infinita, a restrição xe ≤ ue deveria ser ignorada. Com isso, desapareceria a componente ze de z no dual.

Feito isso, as condições de folgas complementares para os arcos vw de capacidade infinita seriam apenas

xvw > 0implica −yv+ yw = cvw.

Podemos dizer que as condições (3) também se aplicam aos arcos de capacidade infi- nita se convencionarmos que

zvw = 0 e zvwuvw = 0 quando uvw = ∞. (4)

Segue daí que, para qualquer solução viável (y, z) do pl dual (2), temos yv + cvw ≥ yw

quando uvw = ∞. Assim, do ponto de vista dos arcos de capacidade infinita, y é um

potencial viável no sentido da seção2.2.

Feitas essas convenções e considerações, podemos supor que o pl (1) representa corre- tamente o problema 5.1. Em outras palavras, podemos nos comportar como se todos os arcos tivessem capacidade finita.

1Nessa expressão, o “implica” tem precedência sobre o “e”.

Exercícios

5.6 Verifique que o pl (2) é dual do pl (1).

5.7 ? Capacidades infinitas. Escreva as versões dos pl’s (1) e (2) que representam corretamente os arcos de capacidade infinita. Verifique que um é dual do outro. Escreva as condições de folgas complementares (tratando em separado dos arcos de capacidade finita e infinita). Mostre que cx = yb + zuse e somente se valem as condições de folgas complementares.

5.8 Suponha que uma rede (G, b, u, c) tem um fluxo ótimo. Para cada arco de capacidade infinita, queremos impor uma capacidade finita U tal que qualquer fluxo ótimo na nova rede seja ótimo na rede original. Mostre que U = P(ue : e ∈ E, ue < ∞) +P(bv : v ∈ V, bv > 0) tem a

propriedade desejada.[CCPS 4.11]

5.9 Se b(V ) 6= 0, o pl (1) é inviável. Mostre que o pl dual (2) é ilimitado nesse caso.

5.10 Se b(A) > u+(A)para algum A ⊆ V , o pl (1) é inviável. Mostre que o pl dual (2) é ilimitado nesse

caso.

5.3

Condições de otimalidade

Obtida uma solução x do problema5.1, que certificado podemos apresentar para com- provar a minimalidade de cx?

Em vista da convenção (4), o problema5.1é equivalente ao programa linear (1) e por- tanto qualquer solução viável (y, z) do pl dual (2) que satisfaça a igualdade yb+zu = cx é um excelente certificado. Mas é possível apresentar esse certificado na forma de folgas complementares que não envolvem z mas apenas um potencial3y:

Teorema 5.2 (condições de otimalidade) Um fluxo viável x numa rede (G, b, u, c) é ótimo se existe um potencial y tal que

xvw> 0implica yv+cvw ≤ yw e xvw < uvwimplica yv+cvw≥ yw (5)

para cada arco vw.

PROVA DO TEOREMA: Seja y um potencial com as propriedades (5). Seja z o vetor definido por

zvw := min (0, yv+ cvw− yw) (6)

para cada arco vw. (Essa definição é consistente com a convenção (4).) Então o par (y, z)é solução viável do pl (2). Além disso, (5) garante que

xvw > 0implica zvw= yv+cvw−yw e xvw < uvw implica zvw= 0

para cada arco vw. Mas essas são, sem tirar nem por, as condições (3) de folgas comple- mentares do par dual (1,2) de pl’s. Como (y, z) é solução viável do dual e as condições de folgas complementares estão satisfeitas, temos cx = yb + zu. Portanto, x é solução ótima de (1), como queríamos provar.

3Convém lembrar que um potencial é qualquer vetor (y

O número yv + cvw − yw que aparece na prova do teorema é conhecido como custo reduzidodo arco vw. Se adotarmos a notação4

¯

cvw := yv + cvw− yw,

podemos apresentar as condições de otimalidade (5) de forma mais memorável: xe> 0implica ¯ce≤ 0 e xe < ueimplica ¯ce ≥ 0 (7)

para cada arco e.

EXEMPLO 3: Considere a rede (G, b, u, c) do exemplo 1. Veja novamente a matriz de adjacências de G e o vetor de demandas b. À direita de b temos um potencial y. Mais à direita, um fluxo viável x (diferente dos fluxos do exemplo 1), o custo c dos arcos, e o custo reduzido ¯cassociado a y.

p v w q b y p − 1 1 − −2 −10 v − − 1 1 −1 −40 w − − − 1 +1 0 q − − − − +2 −10 pv pw vw vq wq u 3 3 3 3 3 x 2 0 3 0 2 c −30 +80 +40 +90 −10 ¯ c 0 +70 0 +60 0

O fluxo x e o potencial y satisfazem as condições de otimalidade (7). (Observe como é fácil conferir as condições percorrendo as linhas x e ¯cda tabela.) Portanto, x é um fluxo ótimo e y é um certificado de otimalidade, conforme o teorema5.2. (Embora isso seja supérfluo, verifique que cx = +40 = yb + zu, supondo que z é definido por (6).)

Exercícios

5.11 Recíproca do teorema5.2. Seja x uma solução ótima do pl (1). Prove que existe um vetor y que satisfaz (5) para cada arco vw.

5.12 Seja x um fluxo viável numa rede (G, b, u, c) e y um potencial que satisfaz (5). Para um arvo vw tal que uvw= 0, quais são os possíveis valores da diferença yw− yw?

5.13 Custo vs. custo reduzido. Seja x um fluxo que satisfaz b e y é um potencial arbitrário. Seja ¯co custo reduzido associado a y. Mostre que ¯cx = cx − yb.

5.14 Seja r um nó de um digrafo G com n nós. Suponha que br = −n + 1e bv = +1para cada v 6= r.

Suponha que ue= ∞para cada arco e e c ≥ 0. Dê um algoritmo para resolver o problema do fluxo

de custo mínimo na rede (G, b, u, c). Como calcular um vetor y que tenha as propriedades (5)? 5.15 ? Enuncie a versão do teorema 5.2apropriado para redes em que as capacidades de todos os

arcos são infinitas. Mostre que o vetor y dessa versão do teorema é tal que cx = yb. Mostre que, para qualquer constante β, o vetor y + β tem as mesmas propriedades de y. Explique por que (y + β)b = yb.

No documento Curso de Otimização Combinatória (páginas 63-71)