08.02.2015 Views

Programação Linear (e rudimentos de otimização não-linear)

Programação Linear (e rudimentos de otimização não-linear)

Programação Linear (e rudimentos de otimização não-linear)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

notas <strong>de</strong> aula – versão 64 - Jerônimo C. Pellegrini<br />

4.3. TEOREMAS DE DUALIDADE 83<br />

Observamos também que o tableau simplex para o dual é exatamente<br />

o tableau transposto do primal:<br />

⎛<br />

( )<br />

AB A N b<br />

−→ ⎝<br />

c T B<br />

c T N<br />

A T B<br />

A T N<br />

b T<br />

O Teorema das folgas complementares, enunciado a seguir, é usado no<br />

<strong>de</strong>senvolvimento do algoritmo primal-dual. Informalmente, o Teorema<br />

<strong>de</strong>termina que quando há solução ótima para um par <strong>de</strong> problemas duais,<br />

se a i-ésima variável da solução do primal é não zero, a solução do dual<br />

torna sua i-ésima linha uma igualda<strong>de</strong> (sem folga); e quando a i-ésima<br />

linha do dual é <strong>de</strong>sigualda<strong>de</strong> estrita, a i-ésima variável do primal tem valor<br />

zero. Ou seja, se x j ≠ 0, então a j-ésima linha do dual é satisfeita sem folga,<br />

(a j ) T y = c j .<br />

Teorema 4.17 (das folgas complementares). Sejam um programa <strong>linear</strong> e<br />

seu dual,<br />

max c T x, s.a.: Ax ≤ b<br />

min b T y, s.a.: A T y ≥ c<br />

Duas soluções x e y para o primal e dual são ótimas se e somente se<br />

y T (Ax − b) = 0<br />

x T (c − A T y) = 0.<br />

Demonstração. Sejam x e y soluções viáveis para o primal e dual. Temos<br />

Ax ≤ b<br />

b − Ax ≥ 0<br />

y T ( b − Ax ) ≥ 0,<br />

porque y é viável (y ≥ 0). Similarmente,<br />

c B<br />

c N<br />

Versão Preliminar<br />

A T y ≥ c<br />

A T y − c ≥ 0<br />

x T ( A T y − c ) ≥ 0.<br />

⎞<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!