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 y⊤A= 0 temos y⊤b ≥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 comy⊤A= 0 e y⊤b <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 u⊤A+v⊤C ≥0 u⊤B+v⊤D = 0 u≥0 u⊤a+v⊤b <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 u⊤A= 0 e u⊤b <0;
(b) Existe x≥0 tal que Ax≤b ∨ existe u≥0 tal que u⊤A≥0 e u⊤b <0;
(c) Existe x≥0 tal que Ax=b ∨ existe u tal que u⊤A≥0 e u⊤b <0;
(d) Existe x tal que Ax=b ∨ existe u tal que u⊤A= 0 e u⊤b <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 u⊤A= 0 e u⊤b <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 c⊤x
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 c⊤x∗ ≥ c⊤x 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 ≤c⊤x 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 y⊤A = λc⊤
y⊤b < λ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
y⊤A = c⊤ y⊤b < 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 y⊤b y⊤A=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′ ≥c⊤x′.
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, y′A = c e ainda c⊤x′ ≥ 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 =b⊤w1⊤ =w−15 w5b⊤w⊤1 ≥ w5−1(w4−w3)A⊤w1⊤ = 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)A⊤y′ = (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{c⊤x |Ax≥b}.