• Nenhum resultado encontrado

Dualidade em Programa¸c˜ao Linear

oRn−1, o que nos permite falar de proje¸c˜ao de um poliedroP ⊆Rn sobre Rk, onde 0< k < n.

Seja P(A, b)⊆ Rn um poliedro e k um inteiro positivo tal que k+p=n. A proje¸c˜ao de P(A, b)sobre Rk ´e definida como sendo o conjunto

Q:=

x∈Rk |existe y ∈Rp com x

y

∈P(A, b)

.

Basicamente, para se obter tal proje¸c˜ao, basta considerar a proje¸c˜ao de P(A, b) sobre Rn, nas dire¸c˜oes {en, en−1, . . . , en−p+1}, e depois considerar o conjunto dos vetores x= (x1, x2, . . . , xk) tal que o vetorn-dmensional (x1, x2, . . . , xk,0, . . . ,0) pertence a essa proje¸c˜ao.

O m´etodo de Fourier–Motzkin pode ser aplicado para resolver problemas de pequeno porte, mas requer muito tempo quando a matriz ´e grande, j´a que o n´umero de opera¸c˜oes pode crescer exponencialmente. O dual do m´etodo de elimina¸c˜ao de Fourier–Motzkin consiste em eliminar uma inequa¸c˜ao por itera¸c˜ao, introduzindo novas vari´aveis. Este m´etodo pode ser usado para achar todos os v´ertices e raios extremais de um cone (veja defini¸c˜oes a seguir). De fato, alguns programas de computador implementam as id´eias descritas aqui, e s˜ao muito ´uteis para se determinar a estrutura de poliedros de dimens˜ao pequena (veja, por exemplo, o programa PORTA, dispon´ıvel por ftp1).

2.4 Dualidade em Programa¸c˜ ao Linear

Um resultado interessante que pode ser obtido como conseq¨uˆencia do m´etodo de elimina¸c˜ao de Fourier–Motzkin ´e o Lema de Farkas.

Lema 2.4.1 Seja A ∈ Rm×n uma matriz e b ∈ Rm um vetor. Ent˜ao, existe um vetor x com Ax≤b se e somente se para cada vetor y≥0 com yA= 0 temos yb ≥0.

Prova. Suponha que P(A, b) seja n˜ao-vazio. Ent˜ao, existe x tal que Ax ≤ b. Tome agora y ≥0 comy′⊤A= 0. Ent˜ao, multiplicando Ax ≤bpory, obtemosy′⊤Ax ≤y′⊤b. Mas, como y′⊤A= 0, obtemosy′⊤b ≥0.

Para provar a implica¸c˜ao reversa, suponha por absurdo que P(A, b) seja vazio. Aplicando o m´etodo de proje¸c˜ao visto na ´ultima se¸c˜ao, esse poliedro ´e vazio se e somente se existe um vetory≥0 emRm comyA= 0 e yb <0 (uma linha da matriz Un), contrariando a hip´otese acima.

Outras vers˜oes do Lema de Farkas podem ser encontradas na literatura. Em alguns textos, esses lemas s˜ao tamb´em chamados de lemas alternativos.

1Endere¸co: http://www.iwr.uni-heidelberg.de/iwr/comopt/soft/PORTA/readme.html

Lema 2.4.2 (Lema de Farkas – caso geral) Para matrizesA, B, C eD e vetoresa e b de dimens˜oes apropriadas temos que

Existem x, y tais que Ax+By ≤a Cx+Dy =b x≥0







 _













Existem u, v tais que uA+vC ≥0 uB+vD = 0 u≥0 ua+vb <0

O s´ımbolo∨(ou exclusivo) indica que uma das alternativas ocorre, mas nunca ambas ao mesmo tempo.

Prova. Segue usando o Lema 2.4.1 (deixamos como exerc´ıcio para o leitor).

Considerando casos especiais do Lema 2.4.2, obtemos os seguintes resultados.

Lema 2.4.3 (Lema de Farkas – casos especiais) Sejam A∈Rm×n e b ∈ Rm. Ent˜ao, va-lem as seguintes afirma¸c˜oes:

(a) Existe x tal que Ax≤b ∨ existe u≥0 tal que uA= 0 e ub <0;

(b) Existe x≥0 tal que Ax≤b ∨ existe u≥0 tal que uA≥0 e ub <0;

(c) Existe x≥0 tal que Ax=b ∨ existe u tal que uA≥0 e ub <0;

(d) Existe x tal que Ax=b ∨ existe u tal que uA= 0 e ub <0.

Prova. Imediata a partir do Lema 2.4.2.

Em alguns casos ´e conveniente formular a vers˜ao poli´edrica dos lemas alternativos. No pr´oximo lema mostramos dois desses exemplos.

Lema 2.4.4 (Lema de Farkas – vers˜ao poli´edrica) As seguintes asser¸c˜oes s˜ao v´alidas:

(i) P(A, b)6=∅ ∨ P=

A b

,

0

−1

6=∅;

(ii) P=(A, b)6=∅ ∨ P

−A b

,

0

−1

6=∅.

Prova. O item (i) Segue do Lema 2.4.3, fazendo uma mudan¸ca de escala do valor dos vetores solu¸c˜ao da alternativa do lado direito (precisamos transform´a-los em 1). A prova do item (ii)

´e an´aloga `a do item (i).

Exerc´ıcio 2.4.5 Dˆe a vers˜ao poli´edrica do Lema 2.4.3 (b) e (d).

Exerc´ıcio 2.4.6 Dˆe a vers˜ao pol´edrica do Lema 2.4.2.

2.4. DUALIDADE EM PROGRAMAC¸ ˜AO LINEAR 27 Observe que o Lema de Farkas nos d´a um certificado para a n˜ao-existˆencia de solu¸c˜ao de sistemas de inequa¸c˜oes (ou equa¸c˜oes) lineares. Podemos, por exemplo, ler o Lema 2.4.3 (d) da seguinte forma: para provar que um sistemaAx =b n˜ao tem solu¸c˜ao, basta exibir um vetoru tal que uA= 0 e ub <0.

Vamos usar esse resultado para demonstrar algumas propriedades a respeito de dualidade em programa¸c˜ao linear. Como veremos, dualidade em programa¸c˜ao linear pode ser visto como a vers˜ao de otimiza¸c˜ao do Lema de Farkas.

Considere o seguinte problema de programa¸c˜ao linear (P) max cx

Ax≤b

Dizemos que um vetor x ´e uma solu¸c˜ao vi´avel do problema acima, se x satisfaz Ax ≤ b.

Uma solu¸c˜ao vi´avel x tal que cx ≥ cx para toda solu¸c˜ao vi´avel x ´e chamada de solu¸c˜ao

´

otima do problema.

Podemos reescrever o problema (P) da seguinte maneira:

max z

z ≤cx Ax≤b Ou seja,

max z 1 −c

0 A

z x

≤ 0

b

Ou ainda, transpondo z para o lado direito da desigualdade, max z

−c A

x≤

−z b

Paraz ∈Rfixo, o conjunto solu¸c˜ao do problema acima ´e um poliedro emRn. Para cada z ∈R, seja

Pz :=

x∈Rn

−c A

x≤

−z b

.

Com isso, resolver o problema acima ´e equivalente a resolver max{z |Pz 6=∅}.

Note que Pz pode ser vazio para todo z ∈ R. Nesse caso (P) n˜ao tem solu¸c˜ao ´otima. Caso contr´ario, podemos tentar limitar superiormente o valor da solu¸c˜ao resolvendo o seguinte pro-blema:

min{z |Pz =∅}.

Aplicando o Lema de Farkas (Lema 2.4.3(a)),Pz =∅se e somente se o sistema yA = λc

yb < λz y ≥ 0 λ ≥ 0

tem solu¸c˜ao. Sob a hip´otese de que (P) tem solu¸c˜ao, ´e f´acil ver (podemos dividir as equa¸c˜oes porλ) que o sistema acima tem solu¸c˜ao se e somente se

yA = c yb < z

y ≥ 0

tem solu¸c˜ao. Assim, determinar o menorz tal que Pz ´e vazio ´e equivalente a resolver o seguinte problema:

(D)

min yb yA=c y≥0.

Note que, partimos de um problema de programa¸c˜ao linear — o problema (P) — e reca´ımos em um outro problema de programa¸c˜ao linear — o problema (D). Esses dois pares de problemas s˜ao chamados de primal e dual, respectivamente. Mais especificamente, (D) ´e o dual do problema (P). ´E imediato que se x ´e uma solu¸c˜ao vi´avel de (P) e y ´e uma solu¸c˜ao vi´avel de (D), ent˜ao y′⊤b≥y′⊤Ax ≥cx.

O fato de que“se (P) e (D) tˆem solu¸c˜oes vi´aveis, ent˜ao o valor ´otimo de (D) ´e sempre maior ou igual ao valor ´otimo de (P)”, ´e referido como Teorema Fraco de Dualidade. Podemos, na verdade, mostrar um resultado mais forte do que esse. Se (P) e (D) tˆem solu¸c˜oes ´otimas, ent˜ao os valores ´otimos dos dois problemas s˜ao iguais. Vamos mostrar esse resultado usando o Lema de Farkas.

Teorema 2.4.7 (Teorema Forte de Dualidade Linear) Sejam (P) e (D) os problemas primal e dual enunciados acima. Ent˜ao, ambos os problemas tˆem solu¸c˜ao ´otima e os valores

´otimos s˜ao iguais se e somente se esses problemas tˆem solu¸c˜oes vi´aveis.

Prova. Claramente, se (P) e (D) tˆem solu¸c˜oes ´otimas, ent˜ao tamb´em tˆem solu¸c˜oes vi´aveis.

Para mostrar o outro sentido da implica¸c˜ao, observe que se (P) e (D) s˜ao vi´aveis, ent˜ao o valor ´otimo de (D) ´e maior do que ou igual ao valor ´otimo de (P), como observamos acima.

Resta mostrar que existem x e y tais que Ax ≤ b, y ≥ 0, yA = c e ainda cx ≥ y′⊤b.

Reescrevendo utilizando a linguagem de poliedros, devemos mostrar que o poliedroP(A, b) ´e n˜ao-vazio, onde,

A :=







A 0

0 −I 0 A 0 −A

−c b







e b :=





 b 0 c

−c 0





 .

2.4. DUALIDADE EM PROGRAMAC¸ ˜AO LINEAR 29 Aplicando o Lema de Farkas, isso ocorre se e somente se para cada vetor-linha w ≥ 0 com wA = 0, temos wb ≥ 0. Tome w = (w1, w2, w3, w4, w5) que satisfaz w ≥ 0 e wA = 0, ou seja, w1A−w5c = 0 e w5b+w3A−w4A ≥ 0 (eliminando w2). Queremos mostrar que w1b+ (w3 −w4)c≥ 0. Supondo w5 >0, w1b =bw1 =w−15 w5bw1 ≥ w5−1(w4−w3)Aw1 = w5−1(w4−w3)w1A=w5−1(w4−w3)w5c= (w4−w3)c.

Caso w5 = 0, tome x e y pontos vi´aveis de (P) e (D), respectivamente. Ent˜ao, w1b ≥ w1Ax = 0≥(w4−w3)Ay = (w4−w3)c.

A seguir enunciamos um resultado que caracteriza completamente a rela¸c˜ao entre o valor

´otimo primal e dual, mesmo quando algum dos problemas ´e ilimitado ou n˜ao tem solu¸c˜ao vi´avel.

A demonstra¸c˜ao fica por conta dos leitores.

Teorema 2.4.8 Sejam (P) e (D) os problemas primal e dual como enunciados acima. Al´em disso, sejam P e z o conjunto de solu¸c˜oes vi´aveis de (P) e o valor ´otimo primal, respectiva-mente. Defina, D e u analogamente. Caso (P) n˜ao tenha solu¸c˜ao vi´avel, defina z =−∞, e caso (P) n˜ao tenha solu¸c˜ao ´otima (seja ilimitado), z = +∞ (an´alogo para (D)). Assim, (P) e (D) tˆem solu¸c˜oes ´otimas com o mesmo valor se e somente se P 6=∅ e D6=∅. Al´em disso,

(a) Se z = +∞ ent˜ao D=∅;

(b) Se u =−∞ ent˜ao P =∅;

(c) Se P =∅, ent˜ao D=∅ ou u =−∞;

(d) Se D=∅, ent˜ao P =∅ ou z = +∞.

No teorema a seguir, caracterizamos quando duas solu¸c˜oes vi´aveis para o problema primal e dual s˜ao ´otimas.

Teorema 2.4.9 (Teorema de Folgas Complementares) Sejam (P) e (D) os problemas primal e dual como enunciados acima e suponha que x e y s˜ao solu¸c˜oes vi´aveis de (P) e (D), respectivamente. Ent˜ao, as solu¸c˜oes s˜ao ´otimas se e somente se, para todo j,

yj >0 implica que Aj∗x=bj.

Exerc´ıcio 2.4.10 Repita o racioc´ınio mostrado nesta se¸c˜ao para construir o problema dual do seguinte problemamin{cx |Ax≥b}.