You are on page 1of 212

im

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Pr
el

Programao Linear (e rudimentos de


otimizao no linear)
notas de aula verso 64

Jernimo C. Pellegrini

Ve
r

20 de dezembro de 2014

notas de aula verso 64 - Jernimo C. Pellegrini

Ve
r

Pr
el

im

in
ar

ii

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Apresentao

Ve
r

Pr
el

im

Esta uma introduo Otimizao, com nfase em Programao Linear e


aplicaes, mas expondo tambm alguns rudimentos de Otimizao No
Linear.
Os pr-requisitos para a leitura so lgebra Linear, para as partes I e II, e
Clculo em Vrias Variveis para os Captulos de Programao Quadrtica
e Otimizao no linear.

iii

notas de aula verso 64 - Jernimo C. Pellegrini

Ve
r

Pr
el

im

in
ar

iv

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Sumrio

Programao Linear

Programao Linear
1.1 Forma padro . . . . . . . . . .
1.2 Interpretao geomtrica . . .
1.3 Programao fracionria linear
1.4 Exemplos de aplicao . . . . .
1.4.1
Mistura tima . . . . . .
1.4.2 Fluxo em redes . . . . .

im

Sumrio

1
.
.
.
.
.
.

3
5
7
10
10
10
11

2 Conjuntos Convexos e Solues Viveis


2.1 Conjuntos convexos . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Solues viveis para programas lineares . . . . . . . . . . . .
2.3 Funes Convexas . . . . . . . . . . . . . . . . . . . . . . . . . .

17
17
25
31

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

Pr
el

.
.
.
.
.
.

Ve
r

3 O Mtodo Simplex
3.1 Exemplo inicial . . . . . . . . . . . .
3.2 Formulao . . . . . . . . . . . . . .
3.3 Intuio geomtrica . . . . . . . . .
3.4 Coeficientes reduzidos de custo .
3.4.1 Primeira definio . . . . .
3.4.2 Segunda definio . . . . .
3.4.3 Representao no tableau
3.4.4 Exemplo . . . . . . . . . . .
3.5 A operao de mudana de base .
3.6 Que varivel entra na base? . . . .
3.7 Que varivel sai da base? . . . . . .
v

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

39
39
41
42
44
44
46
47
47
49
49
52

notas de aula verso 64 - Jernimo C. Pellegrini

vi

SUMRIO

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

im

4 Dualidade
4.1 Interpretaes do dual . . . . . . .
4.1.1
Interpretao operacional
4.1.2 Interpretao econmica .
4.2 Lema de Farkas . . . . . . . . . . . .
4.3 Teoremas de dualidade . . . . . . .
4.4 Algoritmo simplex dual . . . . . .

.
.
.
.
.
.
.

Pr
el

5 Anlise de Sensibilidade
5.1 Mudanas no objetivo . . . . . .
5.2 Mudanas no vetor b . . . . . . .
5.3 Mudanas nos coeficientes de A
5.3.1 Caso (i) . . . . . . . . . . .
5.3.2 Caso (ii) . . . . . . . . . . .
5.4 Nova varivel . . . . . . . . . . . .
5.5 Nova restrio . . . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

Ve
r

6 Outros Mtodos
6.1 O mtodo do elipsoide . . . . . . . . . . . . . . . . . . .
6.1.1
O algoritmo . . . . . . . . . . . . . . . . . . . . .
6.1.2 Resolvendo problemas de programao linear
6.2 Pontos interiores . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Affine scaling . . . . . . . . . . . . . . . . . . . .
6.2.2 Mtodos de barreira . . . . . . . . . . . . . . . .

II

Aplicaes

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

53
56
56
59
61
63
67

.
.
.
.
.
.

73
75
75
75
75
80
84

.
.
.
.
.
.
.

89
89
92
93
93
93
94
94

.
.
.
.
.
.

97
97
97
101
103
103
108

in
ar

3.8 Mtodo Simplex (algoritmo) . . . . . . . . .


3.9 Obtendo uma soluo vivel bsica inicial
3.9.1 O mtodo das duas fases . . . . . .
3.9.2 O mtodo do M grande . . . . . . .
3.10 Minimizao e desigualdades do tipo . .
3.11 Solues degeneradas . . . . . . . . . . . .
3.12 Mtodo Simplex Revisado . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

111

7 Problemas de Transporte
113
7.1 Soluo bsica inicial . . . . . . . . . . . . . . . . . . . . . . . . 117
7.2 Soluo inteira . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.3 Algoritmo para soluo do problema de transporte . . . . . 120

notas de aula verso 64 - Jernimo C. Pellegrini

SUMRIO

vii

7.4
7.5

121
121

Bases degeneradas . . . . . . . . . . . . . . . . . . . . . . . . .
O problema de atribuio . . . . . . . . . . . . . . . . . . . . .

III

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

im

.
.
.
.
.
.
.
.
.
.

Pr
el

9 Controle Discreto
9.1 Programao Dinmica . . . . . . . .
9.1.1
Aplicabilidade do Algoritmo
9.2 Processo Markoviano de Deciso . .
9.3 Formulao como Programa Linear
9.4 Horizonte infinito e convergncia .
9.4.1 Convergncia . . . . . . . . .
9.5 Variantes de MDPs . . . . . . . . . . .
9.5.1 Tempo contnuo . . . . . . .
9.5.2 Parmetros imprecisos . . .
9.5.3 Observabilidade parcial . . .

in
ar

8 Teoria dos Jogos


125
8.1 Jogos de soma zero . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.2 Estratgia mista . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.2.1 Formulao como programa linear . . . . . . . . . . . 127
.
.
.
.
.
.
.
.
.
.

Tpicos Relacionados

131
131
133
133
135
135
136
137
137
139
139

143

10 O Algoritmo Primal-Dual e suas Aplicaes


145
10.1 O algoritmo primal-dual . . . . . . . . . . . . . . . . . . . . . . 145
10.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Ve
r

11 Programao Inteira
11.1 Planos de corte . . . . . . . . . . . . . . . . . . . .
11.2 Branch-and-bound . . . . . . . . . . . . . . . . .
11.3 Variantes: branch-and-cut, branch-and-price
11.4 Unimodularidade e poliedros integrais . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

12 Programao Quadrtica
12.1 Problemas modelados como programas quadrticos
12.2 Representao . . . . . . . . . . . . . . . . . . . . . . . .
12.3 Solues timas para programas quadrticos . . . . .
12.4 Mtodo de Beale . . . . . . . . . . . . . . . . . . . . . . .
12.5 Pontos interiores . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.

147
147
152
154
154

.
.
.
.
.

157
157
159
161
162
169

notas de aula verso 64 - Jernimo C. Pellegrini

viii

SUMRIO

IV

Apndices

A Teoria da Utilidade

Ficha Tcnica
Bibliografia

ndice Remissivo

Ve
r

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

171
172
173
177
177
178
179
179
182
182

in
ar

.
.
.
.
.
.
.
.
.

Pr
el

B Respostas e Dicas

.
.
.
.
.
.
.
.
.

im

13 Otimizao No Linear
13.1 Otimizao sem restries . . . . .
13.1.1 Condies de otimalidade
13.1.2 Mtodos . . . . . . . . . . .
13.2 Otimizao com restries . . . .
13.2.1 O Lagrangeano . . . . . . .
13.2.2 Dualidade . . . . . . . . . .
13.2.3 Condies de otimalidade
13.2.4 Mtodos . . . . . . . . . . .
13.3 Otimizao linear e dualidade . .

183
185
187
193
195
200

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Notao

Ve
r

Pr
el

im

Negrito usado para vetores, inclusive colunas de matrizes, quando tratadas isoladamente.
arg maxi {. . .} o ndice, dentre todos os i, que determina o mximo do
conjunto (usamos arg min de forma anloga).
A notao bxc para cho de x, ou maior inteiro menor ou igual a x.
Similarmente, dxe usado para o conceito simtrico (menor inteiro maior
ou igual a x, ou teto de x)1 .
usada a notao s.a. para sujeito a.
Neste texto, o ndice j usado para colunas da matriz A, que descreve
as restries do programa linear. Neste contexto, uso j m e j > m
como formas abreviadas de j pertencente base e j fora da base.

O leitor possivelmente conhece a notao [[x]] e ]]x[[.

notas de aula verso 64 - Jernimo C. Pellegrini

SUMRIO

Ve
r

Pr
el

im

in
ar

Parte I

im

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Ve
r

Pr
el

Programao Linear

Ve
r

Pr
el

im

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Captulo 1

im

Programao Linear

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Pr
el

Problema de programao linear o nome dado a alguns problemas de


otimizao. Um problema deste tipo consiste em encontrar o melhor valor
possvel para uma funo linear de n variveis respeitando uma srie de
restries, descritas como desigualdades lineares.
Como um exemplo inicial, suponha que uma fbrica possa produzir
dois produtos diferentes: jaquetas e calas de polister. Cada lote de jaquetas resulta em lucro de 500 para a empresa, e cada lote de calas resulta
em lucro de 700.

Cada lote de jaquetas custa 10, e cada lote de calas custa 15. O oramento mensal da empresa que pode ser destinado produo
igual a 400. O lucro s realizado muito mais tarde, e cada lote deve
ser pago antes da produo iniciar (isso significa que h um limite
para a quantidade de lotes produzidos em um ms).

Ve
r

Cada lote de jaquetas leva um dia para ser produzido, e cada lote de
calas precisa de dois dias. A fbrica tem 22 dias por ms disponveis
para a produo.
A empresa tem um contrato com o governo que a obriga a produzir
no mnimo 5 lotes de jaquetas por ms.
Alm disso, um contrato de licenciamento de patente limita a produo de calas a 10 lotes por ms.

Passamos agora modelagem deste problema: encontraremos uma


descrio formal dele, que facilitar a obteno da soluo.
3

notas de aula verso 64 - Jernimo C. Pellegrini

CAPTULO 1. PROGRAMAO LINEAR

in
ar

A funo 500x + 700y expressa o lucro de x lotes de jaquetas e y lotes


de calas. Queremos encontrar as quantidades de lotes ou seja, os valore sx e y para os quais esta funo atinge seu mximo, obedecendo as
seguintes restries:
10x + 15y 400 (o custo da produo no ultrapassa 400)

x + 2y 22 (a quantidade de dias usados no ultrapassa 22)

im

x 5 (pelo menos cinco lotes de jaquetas)


y 10 (no mximo dez lotes de calas)

Pr
el

Como tanto a funo objetivo (500x + 700y, a ser maximizada) como as


restries so funes lineares nas variveis x e y, dizemos que este um
problema de otimizao linear (ou de programao linear). Na maior parte
deste livro, trataremos de problemas deste tipo. Em alguns Captulos abordaremos tambm problemas de otimizao no linear, onde a funo objetivo e as restries no precisam ser funes lineares.
Este um exemplo bastante prtico e aplicado. H outros problemas,
completamente diferentes deste, que podem ser modelados como programao linear inclusive problemas mais abstratos e sem uma ligao
aparente to clara com aplicaes prticas. Mais exemplos de aplicao
modelagem sero dados no final deste Captulo.

Ve
r

Definio 1.1 (problema de programao linear). Um problema de programao linear consiste de uma funo objetivo, linear em n variveis, e um
conjunto de restries, representadas por m desigualdades (ou igualdades) lineares.
Uma soluo para o problema um vetor em Rn . Uma soluo vivel
se satisfaz as restries, e invivel caso contrrio.
Um problema pode ser de maximizao ou de minimizao. A soluo
tima para o problema a soluo vivel que d o maior valor possvel
funo objetivo, quando o problema de maximizao, ou aquela que d
o menor valor ao objetivo, se o problema de minimizao.

Problemas de programao linear so normalmente descritos em uma
forma padro, detalhada na prxima seo.

notas de aula verso 64 - Jernimo C. Pellegrini

1.1. FORMA PADRO

1.1

Forma padro

max c1 x1 + c2 x2 + + cn xn
s.a. : a11 x1 + a12 x2 + + a1n xn = b1
a21 x1 + a22 x2 + + a2n xn = b2
..
.

im

am1 x1 + am2 x2 + + amn xn = bm

in
ar

Na maior parte do tempo, presumiremos que o programa linear est na


seguinte forma.

e xi 0 para alguns i.
Mostramos agora como transformar qualquer programa linear em outro equivalente na forma padro.

Pr
el

Maximizao/minimizao: notamos que min cT x o mesmo que


max cT x.
Desigualdades: considere a restrio

ai1 x1 + ai2 x2 + + ain xn bi .


Esta desigualdade pode ser transformada em

ai1 x1 + ai2 x2 + + ain xn si = bi ,


si 0

Ve
r

Chamamos si de varivel de folga quando a desigualdade vale com o


lado direito igual ao esquerdo, temos si = 0. Quando o lado direito
da desigualdade menor que o esquerdo, temos si > 0. Da mesma
forma, podemos transformar
ai1 x1 + ai2 x2 + + ain xn bi .

em

ai1 x1 + ai2 x2 + + ain xn + ui = bi .

Variveis com valores negativos: se, em uma soluo, uma varivel xi


puder ser negativa, usamos duas variveis positivas para representla. Fazemos xi = p q, com p, q 0.

notas de aula verso 64 - Jernimo C. Pellegrini

CAPTULO 1. PROGRAMAO LINEAR

Exemplo 1.2. Ilustramos as tcnicas descritas transformando o seguinte


problema para a forma padro.

s.a. : 4x1 + x2 10
x1 3x3 20
x3 + x2 = 15
x1 , x2 0

in
ar

min x1 3x2 + 5x3

im

Para transformar o problema de minimizao em maximizao, multiplicamos a funo objetivo por 1.


max x1 + 3x2 5x3

Pr
el

Inclumos uma varivel nova a cada desigualdade, obtendo


4x1 + x2 s1 = 10

x1 3x3 + s2 = 20

Finalmente, determinamos x3 = v w, com v, w 0. O programa linear


ento
max x1 + 3x2 5v + 5w

s.a. : 4x1 + x2 s1 = 10

x1 3v + 3w + s2 = 20
v w + x2 = 15
xi , v, w 0

Ve
r

Tambm ser conveniente representar programas lineares usando notao matricial. Claramente, um problema
max c1 x1 + c2 x2 + + cn xn
s.a. : a11 x1 + a12 x2 + + a1n xn = b1
a21 x1 + a22 x2 + + a2n xn = b2
..
.
am1 x1 + am2 x2 + + amn xn = bm
xi 0

notas de aula verso 64 - Jernimo C. Pellegrini

1.2. INTERPRETAO GEOMTRICA

pode ser descrito de forma mais compacta como


max cT x
x0

in
ar

s.a. : Ax = b

x 1 y1
x 2 y2
v y3
w y4
s 1 y5
s 2 y6 ,

im

Exemplo 1.3. Para descrever o problema do exemplo 1.2, renomeamos as


variveis

1.2

Pr
el

e o programa linear pode ser reescrito como max cT y, sujeito a


y 0, com
T

y = y1 y2 y3 y4 y5 y6
4 1
0
0 1
T
3
0
A = 1 0 3
c = 1 3 5 5 0 0
T
0 1
1 1
0
b = 10 20 15

Ay = b,

0
1
0

Interpretao geomtrica

Ve
r

Nesta seo damos a interpretao geomtrica de problemas de programao linear, e um mtodo para soluo de programao linear por inspeo do grfico. Este mtodo no deve ser visto como ferramenta prtica,
j que s vivel para problemas com duas variveis e poucas restries.
Alm disso, Normalmente qualquer ferramenta computacional produzir
resultados mais rapidamente do que este mtodo. Ele , no entanto, til
para aprofundar a compreenso do que um problema de programao
linear e quais so suas solues.
A funo objetivo define um hiperplano (uma reta em R2 , um plano em
3
R ). Note que queremos maximiz-la (ou minimiz-la), portanto no nos
far diferena se a modificarmos adicionando uma constante: maximizar
z = 2c1 + 3c2

o memso que maximizar


z 0 = 2c1 + 3c2 + 50.

notas de aula verso 64 - Jernimo C. Pellegrini

CAPTULO 1. PROGRAMAO LINEAR

in
ar

Geometricamente a funo objetivo, como a definimos, passa pela origem.


Quando somamos a ela um valor constante, ela se afasta dali.

Pr
el

im

Cada restrio define um semiespao: em R2 , um dos lados de uma reta;


em R3 , um dos lados de um plano.

Queremos o maior valor da funo objetivo dentro da regio definida pelas restries. A pequena seta na prxima figura mostra o gradiente da
funo objetivo.

Ve
r

Se nos movermos, a partir da reta definida pela funo objetivo, na direo


de seu gradiente, mantendo-nos dentro da regio vivel, conseguiremos
solues cada vez melhores. Isso o mesmo que mover a reta definida
pela funo objetivo na direo de seu gradiente, at que no possa mais
ser empurrada. O ltimo ponto em que ela tocar a regio vivel a soluo tima para o problema.
Ainda podemos fazer outra observao importante: vemos claramente
que se uma soluo tima existe, ela ocorrer em um dos pontos extremos
(cantos) da regio vivel ou seja, na interseo de duas restries.

notas de aula verso 64 - Jernimo C. Pellegrini

1.2. INTERPRETAO GEOMTRICA

Disso podemos extrair um mtodo para obter a soluo tima de programas lineares por inspeo do grfico, desde que tenhamos apenas duas
variveis (o que no comum em problemas reais).

in
ar

Exemplo 1.4. Resolveremos o seguinte problema de programao linear:


max 2x1 + x2
s.a.: 3x1 + x2 15
x2 6
x1 + x2 7
x1 9/2

im

x0

Plotamos apenas as restries, e verificamos que formam uma regio fechada no plano.
14
12
10

x2

8
6
4

Pr
el

16

x1
3

Ve
r

Notamos que h poucas restries, portanto podemos simplesmente calcular os pontos onde as retas se interceptam e verificar qual desses pontos
nos d o maior valor para a funo objetivo.
ponto
A = (0, 6)
B = (1, 6)
C = (4, 3)
D = (9/2, 3/2)
E = (9/2, 0)

valor
6
8
11
10.5
9

Verificamos que o ponto C nos d o maior valor, portanto a soluo (4, 3)


tima, com valor 11.
J

notas de aula verso 64 - Jernimo C. Pellegrini

10

1.3

CAPTULO 1. PROGRAMAO LINEAR

Programao fracionria linear

No problema a seguir a funo objetivo no linear:

x0

(1.1)

in
ar

cT x + d
eT x + f
s.a.: Ax b

min

im

Este problema pode, no entanto, ser transformado em um programa linear. O problema a seguir equivalente ao primeiro:
min cT y + dz

(1.2)

s.a.: Ay bz 0

eT y + fz = 1

Pr
el

y0

onde as variveis so y e z.
Pode-se mostrar que a soluo tima para o problema 1.2 tima para 1.1,
definindo
x
+f
1
z= T
,
e x+f

y=

eT x

onde x/k evidentemente (1/k)x.

1.4

Exemplos de aplicao

Ve
r

Damos aqui alguns exemplos de modelagem de problemas como Programao Linear.

1.4.1

Mistura tima

comum que se queira determinar a proporo tima de mistura de diferentes ingredientes, insumos, recursos, etc, a fim de otimizar alguma funo. Dizemos que estes so problemas de mistura tima.
Exemplo 1.5.

notas de aula verso 64 - Jernimo C. Pellegrini

1.4. EXEMPLOS DE APLICAO

1.4.2

11

Fluxo em redes

im

in
ar

Tratamos nesta seo de uma aplicao onde a correspondncia entre os


objetos modelados e as variveis do programa linear no so to imediatamente bvias como no caso de mistura tima.
Informalmente, uma rede semelhante a um conjunto de tubos por
onde escoamos algum fluido. Queremos decidir quanto de fluido devemos passar em cada tubo a fim de maximizar o fluxo entre dois pontos.
Para definir redes de fluxo com mais rigor, precisaremos definir grafos dirigidos.
Um grafo um conjunto de ns (ou vrtices) ligado por arestas. Usamos grafos, por exemplo, para representar locais e caminhos entre eles.

Pr
el

Definio 1.6 (grafo dirigido). Um grafo direcionado consiste de um conjunto no vazio de vrtices V e um conjunto de arestas E. O conjunto de
arestas representa ligaes entre os vrtices, de forma que E V 2 . Denotamos por (u, v) a aresta que leva do vrtice u ao vrtice v.
Em um grafo com peso nas arestas, cada aresta tem um valor associado,
dado por uma funo w : E R.

Exemplo 1.7. A seguir mostramos um grafo e sua representao de um
grafo como diagrama.

Ve
r

V = {a, b, c, d, e}


(a, b), (b, c), (c, a)
E =
(d, c), (d, e), (a, e)
e

Note que a disposio dos vrtices e arestas no diagrama arbitrria. O


grafo seria o mesmo se movssemos estes vrtices e arestas de lugar, mantendo as ligaes entre eles.
J
Exemplo 1.8. A seguir mostramos um grafo com pesos nas arestas

notas de aula verso 64 - Jernimo C. Pellegrini

12

CAPTULO 1. PROGRAMAO LINEAR


b

3
1

in
ar

im

Pr
el

Definio 1.9 (Rede de fluxo). Uma rede de fluxo um grafo dirigido acclico onde so identificados dois vrtices: um a fonte e o outro o destino. No h arestas chegando fonte, e no h arestas saindo do destino.
O peso em cada aresta representa uma capacidade.
Um fluxo em uma rede uma atribuio de um nmero (o fluxo) a
cada aresta (o fluxo deve ser menor ou igual capacidade da aresta).


Um problema de fluxo em rede consiste em encontrar, em uma rede,


dentre todos os fluxos possveis, aquele com maior valor total.
Seja xij o fluxo do vrtice vi para o vrtice vj .
O fluxo entrando em um n i deve ser igual ao fluxo saindo dele.
X

xji =

xij

Ve
r

Os fluxos saindo da fonte e chegando ao destino so iguais.


X
j

xjd =

xsj

O fluxo em uma aresta deve ser menor ou igual que a capacidade da aresta.
xij wij

Conclumos portanto que o fluxo timo na rede dado pela soluo tima

notas de aula verso 64 - Jernimo C. Pellegrini

1.4. EXEMPLOS DE APLICAO

13

max
s.a. :

X
X

xij
xji

in
ar

do problema de programao linear a seguir.

(i)

xij = 0

xjd

xsj = 0

im

xij wij

Pr
el

xij 0

Exemplo 1.10. Considere a rede de fluxo a seguir.

v3

v1
5

v4

Ve
r

v2

v5

Sua soluo tima tambm a soluo tima do programa linear a seguir

notas de aula verso 64 - Jernimo C. Pellegrini

14

CAPTULO 1. PROGRAMAO LINEAR

(para simplificar a notao, fazemos x0 = s e x6 = d.


max cT x
x12 x21 = 0
..
.
x56 x65 = 0

in
ar

s.a. : x01 x10 = 0

x01 5
x02 4
x13 5
x24 3
x25 2

Pr
el

x32 1

im

x01 + x02 x36 x46 x56 = 0

x36 4

x43 3

x46 3

x56 3

x0

Notas

Ve
r

Os exemplos dados neste Captulo no foram apresentados de forma detalhada; sua funo aqui apenas ilustrar a utilidade da modelagem de
problemas como programas lineares.
Programao linear no o melhor mtodo para resolver problemas
de fluxo em redes, mas til para entender a estrutura dos problemas e
como para modelagem e soluo rpida de pequenos exemplos. O livro
de Cormen, Leiserson, Rivest e Stein [Cor+09] contm um captulo sobre
fluxo em redes. O livro de Bazaraa, Jarvis e Sherali [BSS06] trata mais extensivamente do assunto.

Exerccios
Ex. 1 Um veculo tem 100 unidades de combustvel, e deve andar por
um labirinto acclico. Caminhos diferentes consomem mais ou menos
combustvel, e do ao veculo recompensas diferentes. Sabendo o mapa e

notas de aula verso 64 - Jernimo C. Pellegrini

1.4. EXEMPLOS DE APLICAO

15

os custos e recompensas, o veculo deve usar da melhor maneira possvel


suas 100 unidades de combustvel. Modele este problema como programa
linear.

in
ar

Ex. 2 No exerccio 1, exigimos que o labirinto (e consequentemente o


grafo que o representa) fosse acclico. Explique porque, e diga o que aconteceria com seu modelo de programa linear se o grafo tivesse ciclos.
Ex. 3 Resolva os programas lineares usando o mtodo grfico.

s.a. : 3x1 + x2 6
2x1 x2 9

min x1 3x2

s.a. : x1 2x2 50

s.a. : x1 + x2 10

2x1 + 4x2 30
x1 + 4x2 15
x1 , x2 0

x1 x2 5

2x1 + 3x2 10

x1 , x2 0

Pr
el

x1 , x2 0

min x1 + 3x2

im

min x1 2x2

Ex. 4 Converta o programa linear a seguir para a forma padro de problema de maximizao.
min x1 3x2 + 5x3

s.a. : 8x1 + x2 x3 100

2x1 x2 + 4x3 120

x1 + x2 x3

x1 , x2 0

Ex. 5 Converta o programa linear apresentado na introduo para a forma


padro de problema de maximizao.

Ve
r

Ex. 6 Demonstre a equivalncia dos dois problemas mostrados na Seo 1.3.


Ex. 7 Como seria a formulao, como programa linear, de uma rede de
fluxo onde (i) no h conservao de fluxo nos ns (ou seja, cada n vi pode
produzir ou consumir uma quantidade fixa fi de fluxo), e (ii) onde cada
canal, alm de ter um fluxo mximo suportado, tem tambm um mnimo?

notas de aula verso 64 - Jernimo C. Pellegrini

CAPTULO 1. PROGRAMAO LINEAR

Ve
r

Pr
el

im

in
ar

16

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Captulo 2

im

Conjuntos Convexos e Solues


Viveis

2.1

Pr
el

O conjunto das solues viveis para um programa linear um conjunto


convexo. Iniciamos este Captulo com uma breve introduo convexidade e depois abordamos algumas propriedades das solues de programas lineares.

Conjuntos convexos

Definio 2.1 (Conjunto aberto). Um conjunto X aberto se para todo ponto


x X h uma distncia  tal que qualquer ponto y cuja distncia de x seja
menor que  tambm pertence a X.


Definio 2.2 (Conjunto fechado). Um conjunto fechado se seu complemento aberto.




Ve
r

Observe que um conjunto pode ser fechado e aberto ao mesmo tempo,


e tambm pode no ser nem fechado e nem aberto.
Trabalharemos com problemas de otimizao que so bem definidos
em conjuntos fechados: no conjunto x (0, 1), por exemplo, no podemos selecionar o maior elemento.
Definio 2.3 (Combinao afim). Uma combinao afim de x1 , x2 , . . . , xn
uma combinao linear dos xi , com a soma dos coeficientes igual a um.

Exemplo 2.4. Sejam x1 , x2 , x3 elementos quaisquer. Ento
0.1x1 + 0.4x2 + 0.7x3
17

notas de aula verso 64 - Jernimo C. Pellegrini

18

CAPTULO 2. CONJUNTOS CONVEXOS E SOLUES VIVEIS

combinao afim de x1 , x2 , x3 .

in
ar

Definio 2.5 (envoltria afim). A envoltria afim de um conjunto X Rn ,


denotada aff(X), o conjunto de todas as combinaes afim dos elementos de X.


Exemplo 2.6. A envoltria afim de dois pontos diferentes a reta passando


por eles: seja A = {x, y}, com x = (1, 2) e y = (1, 1). A envoltria afim dos
dois pontos
aff(X) = {x + (1 )y, R}
aff(X) =



+ (1 ), 2 + (1 ) R

im

ou

= {(1, + 1), R}

Pr
el

A envoltria afim de quatro ou mais pontos no coplanares em R3 todo o


R3 . Seja B = {x, y, z}, com x = (1, 1), y = (1, 2) e z = (3, 1). Temos portanto


aff(B) = x + y + (1 )z, , R
= {(, ) + (, 2) + (3 3( + ), 1 ( + ))}
A envoltria afim de trs ou mais pontos no colineares (afim-independentes)
mas coplanares o plano em que eles esto.
J
Definio 2.7 (Combinao convexa). Uma combinao convexa de x1 , x2 , . . . , xn
uma combinao afim com coeficientes no negativos.


Exemplo 2.8. Sejam x1 , x2 , x3 elementos quaisquer. Ento


0.2x1 + 0.3x2 + 0.5x3

combinao convexa de x1 , x2 , x3 .

Definio 2.9 (Conjunto convexo). X Rn convexo se x, y X, todas


as combinaes convexas de x e y tambm esto em X.


Ve
r

Alternativamente, podemos dizer que um conjunto S de pontos convexo se para toda reta r, S r conexo, ou seja, S r forma um nico
segmento (ou reta).
Exemplo 2.10. Qualquer intervalo fechado [a, b] R convexo. Suponha
que x, y [a, b], e x < y. Claramente, temos a x y. Ento para
qualquer combinao convexa z = x + (1 )y, temos x z y, que
implica que a z b, e a combinao z [a, b].
Lembramos que os intervalos (, b] e [a, ) so fechados.
J

notas de aula verso 64 - Jernimo C. Pellegrini

2.1. CONJUNTOS CONVEXOS

19

im

in
ar

Exemplo 2.11. Damos exemplos de conjuntos convexos e no convexos


em R2 . So convexos:

Pr
el

Os seguintes conjuntos de pontos no so convexos, e em cada um h a


indicao de dois pontos com combinao convexa fora do conjunto.

Ve
r

Definio 2.12 (Envoltria Convexa). A envoltria convexa de um conjunto


X Rn o menor subconjunto convexo de Rn contendo X. Denotamos a
envoltria convexa de X por [X].

Note que em muitos textos de lgebra Linear, usa-se [X] para o subespao gerado por X (todas as combinaes lineares de vetores de X o que
diferente da envoltria convexa).
A figura a seguir ilustra um conjunto de pontos e sua envoltria convexa em R2 .

notas de aula verso 64 - Jernimo C. Pellegrini

CAPTULO 2. CONJUNTOS CONVEXOS E SOLUES VIVEIS

in
ar

20

Teorema 2.13. [X] igual ao conjunto de todas as combinaes convexas


de subconjuntos finitos de X.

Pr
el

im

Demonstrao. Temos C = Yi , onde Yi so conjuntos convexos contendo X.


C 0 o conjunto de combinaes convexas finitas de pontos de X.
(), C C 0 : basta verificar que C 0 convexo, porque X C 0 .
Sejam x, y C 0 . Ento x, y so combinaes convexas de pontos de X.
Seja t [0, 1]. Ento, tx + (1 t)y combinao convexa de pontos de X,
e C 0 convexo.
(), C 0 C : realizamos a prova por induo no nmero de pontos,
que denotaremos por m.
A base pode ser verificada trivialmente para m = 1 e m = 2. Para o
passo, consideramos m 3.
Nossa hiptese de induo diz que todo ponto em C 0 que combinao convexa de m 1 pontos de X tambm est em todos os conjuntos
convexos contendo X (est em C).
Seja x = t1 x1 + . . . + tm xm . (Note que x C 0 )
Se tm = 1, ento x = xm e o resultado vale trivialmente.
Se tm < 1, seja ento

ti0 =

ti
,
1 tm

i = 1, 2, . . . , m 1

Ve
r

Ento temos

Ento

m1
X
i=1

ti0

m1
X
i=1

ti
1 tm

P
( m
i=1 ti ) tm
1 tm
1 tm
=
1 tm
= 1.
=

0
x 0 = t10 x1 + t20 x2 + . . . + tm1
xm1

notas de aula verso 64 - Jernimo C. Pellegrini

2.1. CONJUNTOS CONVEXOS

21

combinao convexa de x1 , x2 , . . . , xm1 . Pela hiptese de induo, x 0


C. Como xm X, ento xm C. Ento

in
ar

x = (1 tm )x 0 + tm xm
combinao convexa de dois pontos em C e, como C convexo, x
C.

Cada restrio de um programa linear define uma regio do espao
que chamamos de semiespao. Definimos a seguir hiperplano e semiespao.

im

Definio 2.14 (hiperplano). Seja X um conjunto de pontos X Rn tal que


para todo x X, existem ai e b, com pelo menos um ai diferente de zero,
a1 x1 + a2 x2 + + an xn = b.

Pr
el

Ento X um hiperplano em Rn .

Exemplo 2.15. Retas so hiperplanos em R2 , e planos so hiperplanos em


R3 . Similarmente, pontos so hiperplanos em R.
J
Definio 2.16 (semiespao). Em Rn , um semiespao a regio de um dos
lados de um hiperplano. Em outras palavras, so os pontos x tais que
a1 x1 + a2 x2 + + an xn b,
para determinados ai , b R.

Exemplo 2.17. O conjunto {x R : x k} com k constante o intervalo


(, k], que um semiespao de R.
J
Exemplo 2.18. As solues para uma desigualdade em Rn definem um
semiespao.
J

Ve
r

Semiespaos so convexos: se S o conjunto de pontos de um dos lados de uma reta, as combinaes convexas de pontos de S tambm estaro
naquele mesmo lado da reta.
Definio 2.19 (Epigrafo). Seja f : Rn R uma funo. O epigrafo de
f o conjunto de pontos (x1 , x2 , . . . , xn , xn+1 ) Rn+1 tais que xn+1
f(x1 , x2 , . . . , xn ).

A figura a seguir mostra o epigrafo da funo f(x) =

x3
30

32 x + 4.

notas de aula verso 64 - Jernimo C. Pellegrini

22

CAPTULO 2. CONJUNTOS CONVEXOS E SOLUES VIVEIS


10

f(x)

in
ar

8
6
4

im

0
x

Pr
el

Definio 2.20 (Ponto extremo de conjunto convexo). Um ponto x S


convexo um ponto extremo de S se no combinao convexa de outros
pontos de S.

Exemplo 2.21. Qualquer ponto de uma parbola ponto extremo de seu
epigrafo.
J

Ve
r

Exemplo 2.22. Ilustramos alguns dos pontos extremos (no todos) nos
conjuntos a seguir.

Teorema 2.23. Sejam


P S1 , S2 , . . . , Sn conjuntos convexos. Ento tambm
so convexos Si , Si e Si , R.

notas de aula verso 64 - Jernimo C. Pellegrini

2.1. CONJUNTOS CONVEXOS

23

a + (1 )b = (a1 + a2 ) + (1 )(b1 + b2 )
= a1 + a2 + (1 )b1 + (1 )b2
= a1 + (1 )b1 + a2 + (1 )b2

in
ar

Demonstrao. Demonstramos apenas o caso da soma. Os outros so pedidos no exerccio 10.


Sejam a, b Si + Sj . Ento a = a1 + a2 e b = b1 + b2 , com a1 , b1 Si e
a2 , b2 Sj . Para 0 1,

= [a1 + (1 )b1 ] + [a2 + (1 )b2 ] ,


que est em Si + Sj .

im

Definio 2.24 (poliedro). A interseo de um nmero finito de semiespaos em Rn um poliedro.



Podemos reescrever esta definio.

Pr
el

Definio 2.25 (poliedro). Um conjunto de pontos P Rn um poliedro


se e somente se pode ser descrito como P = {x Rn : Ax = b}, onde A
uma matriz e b Rn .

Um poliedro pode no ser limitado, como por exemplo o poliedro definido pelas inequaes

5x1 + 2x2 2
27
6x1 + 25x2 ,
2

ilustrado na figura a seguir.

x2

2
+2

x2

5
x1

Ve
r

27

6x 1
-1

-1

x 2
+ 25 2

x1

notas de aula verso 64 - Jernimo C. Pellegrini

24

CAPTULO 2. CONJUNTOS CONVEXOS E SOLUES VIVEIS

Definio 2.26 (Politopo). Um politopo um poliedro limitado.

in
ar

Exemplo 2.27. Semiespaos e epigrafos de funes no so politopos. Um


polgono convexo (tringulo, quadrado, pentgono, etc) em R2 um politopo.
J
A noo de dependncia linear estende-se naturalmente para combinaes afim e convexas.

Definio 2.28 (afim-independente). Um conjunto de pontos afim-independente


quando nenhum deles combinao afim dos outros.


im

Exemplo 2.29. Os pontos (1, 1) e (2, 3) so afim-independentes. Se tentarmos escrever um como combinao afim do outro, teremos
(1, 1) = (2, 3),

Pr
el

o que seria impossvel.


Os pontos (2, 2) e (6, 6) tambm so afim-independentes, mesmo sendo
linearmente dependentes: se
(6, 6) = (2, 2),

deveramos ter = 3, mas para que a combinao fosse afim, teria que
ser um.
J

Exemplo 2.30. Os pontos (1, 2), (2, 2) e (5/4, 1) so afim-dependentes.


Para verificar, mostraremos que existem a, b, com a + b = 1, tais que

(1, 2) = a(2, 2) + b(5/4, 1).

Ve
r

Para obter os coeficientes resolvemos o sistema


5
2a + b = 1
4
2a + b = 2
a+b=1

O sistema tem soluo a = 1/3 e b = 4/3, e portanto (1, 2) combinao


afim de (2, 2) e (5/4, 1).
J
Definio 2.31 (Dimenso de um politopo). Um politopo P tem dimenso
igual a d se d + 1 o maior nmero de pontos afim-independentes que
podem existir em P.


notas de aula verso 64 - Jernimo C. Pellegrini

2.2. SOLUES VIVEIS PARA PROGRAMAS LINEARES

25

in
ar

Exemplo 2.32. Um ponto tem dimenso zero, porque um conjunto de


um (0+1) nico ponto. Uma reta um politopo de dimenso um, porque
um terceiro ponto sempre pode ser descrito como combinao afim de
dois (1+1) outros na mesma reta. Um tringulo tem dimenso dois, porque
um quarto ponto pode ser descrito como combinao afim de outros trs
(2+1) no mesmo plano.
J
Teorema 2.33. Um politopo P tem dimenso igual dimenso de aff(P).

Exemplo 2.34. Sabemos que um tringulo tem dimenso dois. De fato, a


envoltria afim do tringulo R2 , com dimenso dois.
J

Solues viveis para programas lineares

im

2.2

Teorema 2.35. O conjunto S de solues viveis para um programa linear


fechado, convexo e limitado por baixo.

Pr
el

Demonstrao. Pela restrio x 0, S limitado por baixo. Alm disso,


S interseo dos semiespaos definidos pelas restries do problema e
pela restrio de no negatividade. Como os semiespaos so convexos e
fechados, S tambm .

Teorema 2.36. Seja S o conjunto de solues viveis para um programa
linear. Ento, se existe soluo tima para o programa linear, existe um
ponto extremo em S com o valor timo.

Ve
r

Antes de elaborarmos a demonstrao formal deste Teorema, notamos que intuitivamente simples perceber o que est sendo enunciado.
Escolhemos um ponto dentro do poliedro. Traamos neste ponto um hiperplano ortogonal ao gradiente do objetivo e movemos esse hiperplano
na direo do gradiente. H uma distncia mxima que esse movimento
pode ser feito sem que o hiperplano fique completamente fora do poliedro. Quando essa distncia mxima, o hiperplano toca o poliedro em
um ponto extremo (pode tocar em uma aresta ou face, mas ainda assim
ele toca um ponto extremo). A figura a seguir ilustra graficamente esta
intuio.

notas de aula verso 64 - Jernimo C. Pellegrini

26

CAPTULO 2. CONJUNTOS CONVEXOS E SOLUES VIVEIS

A seguir damos uma demonstrao formal desse Teorema.

x S, cT x0 cT x.

in
ar

Demonstrao. (do Teorema 2.36).


S tem um nmero finito de pontos extremos, que denotamos1 x1 , x2 , . . . , xp .
Seja x0 um ponto vivel maximizando cT x em S:

Suponha que x0 no ponto extremo. Ento x0 pode ser descrito como


combinao convexa dos pontos extremos de S.
i xi ,

i 0,

i = 1

im

x0 =

p
X
i=1

Pr
el

Seja ento xr o ponto extremo com maior valor objetivo. Ento,


!
p
X
cT x0 = cT
i xi
i=1

p
X

i=1
p
X



i cT xi



i cT xr

i=1

cT xr

p
X

i=1

= cT xr .

Temos ento cT x0 cT xr . Como x0 timo, cT x0 = cT xr , e existe o ponto


extremo xr onde o valor do objetivo timo.


Ve
r

Representamos as restries de um problema na forma matricial como


Ax = b. A matriz A normalmente ter m linhas e n colunas, com n > m.
Presumiremos que o posto da matriz m caso no seja, sempre podemos
eliminar uma das restries.
Cada coluna de A representa uma varivel. Como a matriz tem posto
m, podemos tomar m colunas LI (ou m variveis), formando uma matriz
quadrada B, de ordem m, e resolver o sistema

BxB = b,

Insistimos em mostrar os pontos como vetores!

notas de aula verso 64 - Jernimo C. Pellegrini

2.2. SOLUES VIVEIS PARA PROGRAMAS LINEARES

27

in
ar

onde xB o vetor composto pelas variveis relacionadas s colunas em B.


A matriz B tem posto completo, portanto o sistema sempre ter soluo. As variveis representadas pelas colunas que usamos para formar B
so chamadas de variveis bsicas, e as outras so as variveis no bsicas.
Ao resolver o sistema, determinamos valores para m variveis. Se fizermos as outras variveis iguais a zero, teremos uma soluo para Ax = b.

im

Definio 2.37 (soluo bsica). Seja Ax = b o conjunto de restries de


um problema de programao linear, onde A tem m linhas e n colunas.
Seja B uma matriz formada por m colunas linearmente independentes de
A. Ento os vetores x tais que Bx = b so chamados de solues bsicas
para o problema.

Suponha que a matriz A tenha posto m. A matriz B com m colunas LI
uma base para o espao-coluna de A da o nome soluo bsica.

Pr
el

Definio 2.38 (soluo vivel bsica). x Rn soluo vivel bsica para


um problema de programao linear se vivel e tambm bsica.

Teorema 2.39. Seja S o conjunto de solues viveis para um programa
linear. Ento uma soluo vivel x S bsica se e somente se um
ponto extremo de S.

Demonstrao. () Seja x ponto extremo de S e, sem perda de generalidade, presuma que x1 , x2 , . . . , xk > 0 e xk+1 , . . . , xn = 0. Mostraremos
que as k primeiras colunas formam um conjunto LI, sendo portanto uma
soluo vivel bsica.
Denotando a j-sima coluna de A por aj , temos
a1 x1 + a2 x2 + . . . + ak xk = b.

(2.1)

Ve
r

Suponha que a1 , . . . , ak so linearmente dependentes. Ento, pela definio de dependncia linear,


X
1 , 2 , . . . , k ,
i ai = 0,
(2.2)
com algum i 6= 0.
Usaremos os coeficientes desta combinao linear para descrever o
ponto xtremo x como combinao linear de outros pontos (o que seria
uma contradio).
Seja > 0. Sejam
x1 = (x1 + 1 , x2 + 2 , . . . , xk + k , 0, 0, . . . , 0)T

x2 = (x1 1 , x2 2 , . . . , xk k , 0, 0, . . . , 0)T

notas de aula verso 64 - Jernimo C. Pellegrini

28

CAPTULO 2. CONJUNTOS CONVEXOS E SOLUES VIVEIS

Temos xj > 0 para j k. Ento existe > 0 tal que os primeiros k elementos de x1 e x2 so maiores que zero:

xj j > 0
Pode-se verificar que

0 < < min
j

xj
, j 6= 0
|j |

in
ar

xj + j > 0

Pr
el

im

satisfaz estas condies.


Temos portanto x1 e x2 viveis (ambos maiores que zero). Mas x =
1 2
1 1
1
2
2 x + 2 x , e x combinao convexa de x e x no pode ser ponto
extremo!
Conclumos que nossa hiptese era falsa: a1 , . . . , ak linearmente independente, e a soluo bsica.
() Suponha que x uma soluo vivel bsica, com componentes

x1 , x2 , . . . , xm , 0, 0, . . . , 0. O valor dos xi dado por


X

aij xj = bi ,

i = 1, 2, . . . , m.

(2.3)

jm

Como a1 , a2 , . . . , am linearmente independente, as solues so nicas.


Suponha que x no ponto extremo de S. Ento deve ser combinao
linear de duas solues viveis x1 e x2 , diferentes entre si.
xj = x1j + (1 )x2j ,

jm

0 = x1j + (1 )x2j ,

j>m

Ve
r

para 0 < < 1.


Como x1j , x2j 0 ento x1j , x2j = 0 para j > m.
Restam os x1j e x2j com j m. Como as solues para o sistema (2.3) so
nicas, necessariamente temos xj = x1j = x2j , mas havamos presumido
x1 6= x2 .
Conclumos ento que x no pode ser descrito como combinao linear de pontos de S um ponto extremo.


Teorema 2.40. O conjunto de solues timas para um programa linear


um conjunto convexo.

notas de aula verso 64 - Jernimo C. Pellegrini

2.2. SOLUES VIVEIS PARA PROGRAMAS LINEARES

29

Demonstrao. Seja K o conjunto de solues timas, x1 , x2 K, e z o


valor timo da funo objetivo. Ento,

Como so viveis, x1 , x2 S e S convexo, portanto


x1 + (1 )x2 S,

0 1.

Temos ento

im

cT (x1 , x2 ) = cT x1 + (1 )cT x2

in
ar

cT x1 = cT x2 = z .

= z + (1 )z = z .

Assim, x1 + (1 )x2 K, para 0 1, e K convexo.

Pr
el

Corolrio 2.41. Se h mais de uma soluo tima para um programa linear,


h uma quantidade infinita e no enumervel delas.
Claramente, o conjunto de solues timas contm um nico ponto
se for um ponto extremo isolado, ou infinitos pontos, se for a envoltria
convexa de alguns pontos extremos.

Teorema 2.42. Se existe soluo vivel para um programa linear, ento


tambm existe soluo vivel bsica.

Demonstrao. Sejam a1 , a2 , . . . , an as colunas de A, e x = (x1 , x2 , . . . , xn )


vivel:
x1 a1 + x2 a2 + . . . = b.

Ve
r

Suponha, sem perda de generalidade, que as k primeiras variveis de x,


so maiores que zero, e portanto x1 a1 + x2 a2 + . . . + xk ak = b.
Trataremos dois casos: no primeiro, a1 , . . . , ak so linearmente independente. No segundo, so linearmente dependentes.
Primeiro caso (colunas L.I.): nesta situao, k m, porque A tem posto
completo.
Se k = m a soluo , por definio, bsica.
Se k < m, ento m k colunas podem ser obtidas de A para formar
uma matriz m m com colunas a1 , . . . , ak , . . . , am , todas L.I.

notas de aula verso 64 - Jernimo C. Pellegrini

30

CAPTULO 2. CONJUNTOS CONVEXOS E SOLUES VIVEIS

Multiplicamos a equao por :


k
X

j aj = 0

j=1

in
ar

Segundo caso (colunas L.D.): se a1 , . . . , ak so L.D., ento existem 1 , . . . , k ,


com pelo menos um j > 0 tais que
X
j aj = 0

(2.4)

Temos tambm, da definio do programa linear, que

j=1

Calculamos agora (2.5) (2.4):

(2.5)

xj aj j aj = b

Pr
el

k
X

xj aj = b

im

k
X

j=1

k
X

aj (xj j ) = b

j=1

e portanto os (xj j ) formam uma soluo para o sistema Ax = b.


Para garantir que a soluo vivel escolhemos


xi
, i > 0
= min
j
i

Ve
r

Seja p o ndice do mnimo definido acima, de forma que = xp /p . Para


p,
xp p
(xp p ) = xp
=0
p
Para i 6= p,
xp i
(xi i ) = xi
.
p
x

Como xi > 0 e p p i xi , temos xi 0 (no teremos uma soluo invivel).


A varivel de ndice p torna-se zero, e a nova soluo
x 0 = (x1 1 , . . . , xk1 k1 , 0, . . . , 0)

tem ento no mximo k 1 variveis positivas. Se as colunas associadas


com estas k 1 variveis ainda forem L.D. repetimos a operao; seno, o
primeiro caso se aplica.


notas de aula verso 64 - Jernimo C. Pellegrini

2.3. FUNES CONVEXAS

2.3

31

Funes Convexas

Nesta seo tratamos brevemente de funes convexas, que so importantes para o desenvolvimento da teoria de otimizao no linear.

in
ar

Definio 2.43 (Funo convexa). Uma funo convexa se seu epigrafo


convexo. Uma funo f cncava se f convexa.

A figura a seguir mostra o epigrafo da funo convexa f(x) = x2 3x+3.
4

im

f(x)

0
0

Pr
el

2
x

Teorema 2.44. Se f : Rn R convexa e Dom(f) convexo, ento


f(x) + (1 )f(y) f(x + (1 )y)

para todos x, y Dom(f) e todo [0, 1].

Ve
r

Teorema 2.45. Se f1 , f2 , . . . , fm : Rn R so convexas, ento tambm so


convexas
g(x) = max{fi (x)}
X
h(x) =
fi (x)

O teorema 2.46 nos d uma segunda caracterizao de funes convexas.


Teorema 2.46. Uma funo f com domnio D Rn convexa se e somente se, para todos x1 , x2 D, e para todo [0, 1],
f(x1 + (1 )x2 ) f(x1 ) + (1 )f(x2 ).

notas de aula verso 64 - Jernimo C. Pellegrini

32

CAPTULO 2. CONJUNTOS CONVEXOS E SOLUES VIVEIS

in
ar

Definio 2.47. Seja A uma matriz quadrada simtrica. A semidefinida


positiva se xT Ax 0 para todo x. A definida positiva se xT Ax 0 para
todo x 6= 0. E A indefinida se xT Ax assume valores positivos e negativos.

Alternativamente, uma matriz semidefinida positiva se todos seus
autovalores so no-negativos.

ou

2 f
(x)
x21

...

2 f
x1 xn (x)

2 f
(x)
x22

...
..
.

2 f
x2 xn (x)

2 f
xn x2 (x)

...

2 f
(x)
x2n

2 f
x1 x2 (x)

Pr
el

2
f (x)
x x
2 f(x) = 2 1 .

..

2 f
xn x1 (x)

im

Definio 2.48 (Matriz Hessiana). Seja f : Rn R duas vezes diferencivel. A matriz Hessiana de f em x, denotada por Hf (x) ou 2 f(x) a forma
bilinear
2 f(x)
2 (x)i,j =
,
xi xj

..
.

Lema 2.49. Seja S um subconjunto no vazio, aberto e convexo de Rn .


Seja f : S R diferencivel. Ento f convexa se e somente se, para todos
x, x 0 Rn ,
f(x 0 ) f(x) + (f(x))T (x 0 x).

O Lema 2.49 nos diz que f convexa se e somente se seu grfico est
sempre acima de qualquer plano tangente a ele ou seja, que seu epigrafo
convexo.

Ve
r

Exemplo 2.50. A funo f(x) = 2x2 + 1 convexa, j que sua Hessiana


2 f(x) = ( 4 ). Verificamos que, de fato,
f(x) + (f(x))T (x 0 x) = f(x) + 4x(x 0 x)


= 2x2 + 4x x 0 x
= 2x2 + 4x(x 0 x)
= 2x2 + 4xx 0 4x2

2(x 0 )2

Alm de verificar algebricamente, observamos o grfico de f(x) e percebemos que realmente, os planos tangentes sempre ficam abaixo do grfico.

notas de aula verso 64 - Jernimo C. Pellegrini

2.3. FUNES CONVEXAS

33

0
0

2
x

im

f(x)

in
ar

Pr
el

Exemplo 2.51. A funo f(x) = x3 x2 x + 1 no convexa. Vemos que o


plano tangente nofica sempre acima de todos os pontos do grfico, como
possvel perceber na figura a seguir.

f(x)

Ve
r

0
0
x
J

Teorema 2.52. Seja f : D R, com D Rn no vazio aberto e convexo, e


f contnua e duas vezes diferencivel. f convexa se e somente se 2 f(x)
semidefinida positiva para todo x Dom(f).

notas de aula verso 64 - Jernimo C. Pellegrini

34

CAPTULO 2. CONJUNTOS CONVEXOS E SOLUES VIVEIS

in
ar

Exemplo 2.53. Seja f(a, b) = a4 + b2 . Temos




12a2 0
2
f(a, b) =
0
2

portanto f convexa em R2 .

im

J podemos perceber que os autovalores da Hessiana so a constante dois


e 12a2 , que so sempre positivos, e a funo convexa.
Podemos tambm verificar que xT (2 f(a, b))x sempre positivo. Para
qualquer x R2 ,
 
 x1
T 2
2
= 12a2 x21 + 2x22 > 0,
x f(a, b)x = 12a x1 2x2
x2
J

Pr
el

Exemplo 2.54. Seja f(a, b) = ea + eb . Ento



 a
e
0
2
f(a, b) =
0 eb

Novamente notamos que os autovalores so positivos a funo convexa.


Para qualquer x R2 ,
 
 x1
T 2
a
b
x f(a, b)x = x1 e x2 e
= x21 ea + x22 eb > 0,
x2

portanto f convexa em R2 .
Poderamos tambm ter observado que f a soma de ea com eb , duas
funes convexas e a soma de funes convexas sempre convexa. J

Ve
r

Exemplo 2.55. Seja f(a, b) = (a + b)2 . Ento




2 2
2 f(a, b) =
2 2

Para qualquer x R2 ,
T

x f(a, b)x = 2x1 + 2x2

 
 x1
2x1 + 2x2
= 2x21 + 2x22 + 4x1 x2 .
x2

A funo quadrtica 2x21 + 2x22 + 4x1 x2 sempre positiva, portanto f convexa em R2 .


Os autovalores da Hessiana so 0 e 4.
J

notas de aula verso 64 - Jernimo C. Pellegrini

2.3. FUNES CONVEXAS

35

in
ar

Exemplo 2.56. Seja f(a, b) = a3 + b2 . Construmos a Hessiana no ponto


(a, b),


6a 0
2
f(a, b) =
0 2
Os autovalores so 6a e 2. Quando a for menor que zero, o primeiro autovalor ser negativo, e f no convexa.
No entanto, podemos dizer que f convexa se tiver seu domnio restrito a a 0.
J

im

Notas

Exerccios

Pr
el

Normalmente livros abordando Otimizao Convexa (inclusive Programao Linear) tratam de Anlise Convexa e sua relao com otimizao. Por
exemplo, os livros de Sinha [Sin06], Matousek [MG06] e Luenberger [Lue10]
tratam do assunto.
O Teorema 2.52 demonstrado em diversos livros de otimizao no
linear por exemplo nos livros de Mokhtar Bazaraa, Hanif Sherali e C. M.
Shetty [BSS06] e de Andrzej Ruszczyski [Rus06].
Os livros de Alexander Barvinok [Bar02] e de Steven Lay [Lay07] abordam detalhadamente o tpico de Convexidade. O livro de Dimitri Bertsekas e Angelia Nedic [BN03] tambm aborda convexidade e sua relao
com otimizao. Uma discusso em maior densidade de conjuntos e funes convexas encontrada no livro de Rockafellar [Roc96].


Ex. 8 Mostre como construir um poliedro com nk
m vrtices, para qualquer 1 k n e quaisquer m, n, com n m, descrevendo o poliedro
como interseo de semiespaos.

Ve
r

Ex. 9 Dissemos que um conjunto S de pontos convexo se e somente


se para toda reta r, S r um nico segmento de reta (ou seja, conexo).
Demonstre que esta definio equivalente definio 2.9.
Ex. 10 Demonstre o que falta do Teorema 2.23.
Ex. 11 Mostre que para quaisquer a, b, c, , , , com a, > 0, a interseo dos conjuntos {(x, y) : y < ax2 + bx + c} e {(x, y) : y > x2 + x + }
em R2 convexa.

notas de aula verso 64 - Jernimo C. Pellegrini

36

CAPTULO 2. CONJUNTOS CONVEXOS E SOLUES VIVEIS

Ex. 12 Sejam a e b dois pontos. O conjunto de pontos que no so mais


prximos de b do que a {x| dist(x, a) dist(x, b)}. Este conjunto convexo?

in
ar

Ex. 13 Determine precisamente quando um subconjunto de R2 definido por um conjunto de inequaes quadrticas {(x, y) : y ax2 + bx + c}
convexo. Generalize para mais que duas dimenses.
Ex. 14 Prove o lema 2.49.

im

Ex. 15 Mostre que o conjunto de todas as matrizes semidefinidas positivas convexo.

Ex. 16 Mostre que uma funo f em Rn linear se e somente se f convexa e cncava.

Pr
el

Ex. 17 Mostre que nenhuma funo polinomial de grau mpar maior ou


igual a 3 e em uma varivel convexa.
Ex. 18 Determine se so convexas:
i) f(a, b) = ea + log(b)

ii) g(a, b) = ea log(b)


iii) h(a, b) = ea eb

iv) j(a, b) = log(a) log(b)

Ex. 19 Prove que f(x) = x21 /x2 convexa em R2 onde x2 > 0.

Ex. 20 Identifique subdomnios onde as funes so convexas:


i) f(x, y) = sen(x) + cos(y)

ii) g(x, y) = sen(x) cos(y)

iii) h(x) = x log(x)

Ve
r

iv) j(x, y, z) = ex z log(y)


v) k(x, y, z) = ex log(xy) + z2

Ex. 21 Prove o Teorema 2.44.


Ex. 22 Prove o Teorema 2.45.
Ex. 23 Suponha que queiramos otimizar uma funo linear, sujeita a
restries estritamente no lineares. Se soubermos que a regio vivel

notas de aula verso 64 - Jernimo C. Pellegrini

2.3. FUNES CONVEXAS

37

convexa, quantas solues timas podemos ter, no mximo? E se a regio


vivel no for convexa?

in
ar

Ex. 24 Suponha que saibamos que um problema de programao linear


vivel e limitado, e portanto tem soluo tima. Sem tentar resolv-lo,
h como verificar se ele tem somente uma ou infinitas solues timas?

Ve
r

Pr
el

im

Ex. 25 Seja R[x] o conjunto de todos os polinmios em x com coeficientes reais. Seja S o subconjunto de R[x] que so positivos no intervalo
[0, 1]. Mostre que S convexo.

notas de aula verso 64 - Jernimo C. Pellegrini

CAPTULO 2. CONJUNTOS CONVEXOS E SOLUES VIVEIS

Ve
r

Pr
el

im

in
ar

38

Captulo 3

im

O Mtodo Simplex

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

3.1

Pr
el

Neste Captulo tratamos do mtodo mais conhecido para resolver problemas de Programao Linear o mtodo Simplex.

Exemplo inicial

Considere o problema de programao linear:


max x1 + 2x2

sujeito a:

x1 + x2 10
3
2x1 + x2 5
4
x1 x2 3

Ve
r

Transformamos o problema para que as restries fiquem na forma de


igualdades:
x1
+x2 +x3
= 10
3
2x1 + 4 x2
+x4
=
5
x1
x2
+x5 = 3

e usaremos agora alguns passos do algoritmo Simplex.


Temos cinco variveis, e queremos inicialmente uma soluo bsica
vivel. Olhando para o problema, notamos que podemos usar x3 = 10,
x4 = 5, e x5 = 3, com as outras variveis iguais a zero. Temos ento trs
variveis no zero, e a soluo claramente vivel. Temos uma soluo
39

notas de aula verso 64 - Jernimo C. Pellegrini

40

CAPTULO 3. O MTODO SIMPLEX

in
ar

vivel bsica. Note que os coeficientes das variveis no zero um, e os


manteremos assim durante toda a execuo do algoritmo Simplex.
Representaremos o sistema de equaes na forma de matriz:
b
x2 x3 x4 x5
x1
1 1 0 0 10
1
2 3/4 0 1 0
5
1 1 0 0 1 3

Ve
r

Pr
el

im

e podemos ento reescrever as variveis da forma como quisermos simplesmente usando operaes elementares, semelhante aos passos de eliminao de Gauss, exceto que nosso objetivo no transformar a matriz
em forma triangular. O objetivo escrever as variveis bsicas como funo das no bsicas: No tableau anterior a segunda linha, por exemplo,
significa
3
2x1 + x2 + 0x3 + x4 + x5 = 5.
4
Isolando x4 , que a nica varivel bsica com coeficiente diferente de zero
nesta linha,
3
x4 = 5 2x1 x2
4
Neste momento, a soluo atual d o valor 5 0 0 = 0 para x4 , mas a
representao da linha nesta forma nos ajuda a compreender o que acontecer quando dermos valores positivos a x1 e x2 .
Todo tableau Simplex pode ser lido, portanto, como uma expresso
das variveis bsicas (ou da soluo atual) em funo das no-bsicas.
Agora introduzimos x2 na base, retirando x5 . Reescreveremos o sistema de forma que a coluna relativa a x2 torne-se igual coluna que agora
representa x5 .
Conceitualmente, tomaremos a linha onde tnhamos x5 representada
como funo das outras, e isolaremos x2 , que passar a ser ento representada como funo das no bsicas. Para isso, usamos eliminao de
Gauss de forma a tornar a32 = 1 e a12 = a22 = 0. Primeiro, dividimos a
linha 3 por a32 = 1, e obtemos

1 1 0 0 1 3
Somamos mltiplos desta linha s outras, para obter zeros no resto da coluna dois (somamos -3/4 da linha 3 linha 2, e somamos -1 vezes a linha 3
linha 1):

2 0 1 0
1
7
5/4 0 0 1 3/4 11/4
1 1 0 0 1
3

notas de aula verso 64 - Jernimo C. Pellegrini

3.2. FORMULAO

41

in
ar

Temos agora x1 = x5 = 0, x2 = 3, x3 = 7, e x4 = 11/4. O valor do objetivo para esta soluo x1 + 2x2 = 6. Representamos tambm a funT
o objetivo como um vetor coluna c = 1 2 0 0 0 , e a soluo
T
x = 0 3 7 11/4 0 . Assim, podemos expressar

 3
T

c x= 1 2 0 0 0 7
= 6.
11/4
0

3.2

Formulao

Pr
el

im

Conseguimos uma soluo, com x2 = 3, melhor que a inicial. Se incluirmos x1 tambm na base, a soluo ser ainda melhor. O algoritmo Simplex
determina quais variveis devemos incluir e excluir da base a cada passo
de forma que cada soluo seja melhor que a anterior, e que todas sejam
viveis (garantindo assim que aps um nmero finito de passos, obtenhamos a soluo tima).

No resto do texto, usaremos uma matriz A, m n, e vetores coluna b com


m elementos e c com n elementos, de forma que programas lineares sejam
descritos como
max cT x

s.a.: Ax = b
x 0,

Ve
r

sendo x um vetor coluna com n elementos representando as variveis


para as quais queremos obter valores que maximizem cT x.
Ser til dividir estes objetos (matriz A e vetores c e x) em duas partes:
as que se referem s variveis da base (AB , cB , xB ) e as que se referem s
variveis fora da base (AN , cN , xN ). Presumimos que as colunas de A e os
elementos de x e c sempre so reordenados de forma que as variveis da
base estejam esquerda das outras isso nos garante que a base representada por uma submatriz m m no lado esquerdo de A (isso apenas
facilita a exposio do assunto, no interferindo em nada mais):

A = AB , AN
cT = (cTB , cTN )
x = (xB , xN )

notas de aula verso 64 - Jernimo C. Pellegrini

42

CAPTULO 3. O MTODO SIMPLEX

Isto significa que a matriz AN e os vetores cN e xN tem ndices iniciando


em m + 1:

in
ar



AN = am+1 , am+2 , . . . , an ,
cTN = (cm+1 , cm+2 , . . . , cn ),

3.3

Intuio geomtrica

im

xN = (xm+1 , xm+2 , . . . , xn ).

Pr
el

No captulo 2, verificamos que as solues viveis bsicas para um problema de programao linear so os pontos extremos do poliedro definido pelas restries. Nas prximas sees desenvolveremos o mtodo
Simplex, que verifica uma sequncia de pontos extremos (ou de solues
viveis bsicas) para o problema at chegar soluo tima.

Damos aqui uma intuio simples de como o funcionamento do Simplex: Saindo de alguma soluo vivel bsica (ponto extremo), o Simplex
procura outra soluo que possa obter trocando uma nica coluna da base
(portanto algum ponto extremos adjacente ao atual), e que oferea vantagem, ou seja, cujo valor objetivo seja melhor que o da soluo atual. Prossegue assim at o momento em que no haja pontos extremos adjacentes
com valor melhor que o atual que portanto deve ser timo.

Ve
r

Exemplo 3.1. Ilustraremos esta idia com o seguinte problema com duas
variveis.
max 2x1 + x2
s.a.: x2 3
2x1 + x2 4
3x1 x2 1
x 0.

A representao grfica da regio vivel deste problema dada a seguir.

notas de aula verso 64 - Jernimo C. Pellegrini

43

im

in
ar

3.3. INTUIO GEOMTRICA

Pr
el

Comeamos com a soluo vivel bsica x1 = 0, x2 = 0 (ou seja, x = 0,


e mudamos uma coluna da base por vez, primeiro para (1/3, 0) e depois
para a soluo tima (1, 2).

Ve
r

Tnhamos inicialmente uma base com variveis de folga. Na primeira mudana, de (0, 0) para (1/3, 0), retiramos a folga da restrio 3x1 x2 1, e
determinamos para x1 o maior valor possvel respeitando a restrio: chegamos a uma nova base, onde a folga desta restrio zero, e o valor de x1
1/3. Depois retiramos a folga da restrio 2x1 + x2 4, e aumentamos o
valor de x2 , chegando soluo tima (1, 2).
As derivadas parciais do objetivo no ponto (1, 2) e na direo de seus
pontos extremos vizinhos so todas negativas, portanto no h como melhorar a soluo.
J

notas de aula verso 64 - Jernimo C. Pellegrini

44

CAPTULO 3. O MTODO SIMPLEX

3.4

Coeficientes reduzidos de custo

3.4.1

in
ar

Embora possamos facilmente identificar a restrio (e consequentemente


a coluna) que deve entrar na base no prximo passo do Simplex, esta intuio visual no suficiente para implementar o algoritmo que deve funcionar para dimenses arbitrrias. Para cada varivel no bsica em um
tableau Simplex existe um nmero que usaremos para decidir se ela deve
ou no entrar na base. Daremos duas definies diferentes (mas equivalentes) para estes nmeros, chamados de coeficientes reduzidos de custo.

Primeira definio

Pr
el

im

Nossa primeira definio para coeficiente reduzido de custo como a derivada do objetivo na direo de cada varivel no bsica, porque com elas
poderemos determinar exatamente quais variveis melhoraro o objetivo
se as incluirmos na base.
O valor do objetivo usando apenas as variveis bsicas dado por
z0 = cTB xB .

Agora partimos do sistema Ax = b:

Ax = b

AB xB + AN xN = b

Como estamos considerando AB = I,


xB
T
cB xB

= b AN xN
= cTB b cTB AN xN

Ve
r

Seja z = cTB AN , de forma que zj = c1 a1j + c2 a2j + . . . + cn amj , para j > m


(lembre-se que os ndices das colunas de AN comeam com m + 1).

cTB AN

= (c1 , c2 , . . . , cm )

a1,m+1
..
.
am,m+1

a1,m+2 ,
..
.

a1,n

am,n

zm+1
zm+2

= . ,
..
zn

P
onde zj = im ci aij . Indexamos z a partir de m + 1, porque tambm tem
n m elementos (um para cada varivel no bsica).

notas de aula verso 64 - Jernimo C. Pellegrini

3.4. COEFICIENTES REDUZIDOS DE CUSTO

45

Ento,

cTB xB = z0 zxN ,

in
ar

cTB xB = cTB b zxN

porque zxN = 0 (o vetor xN , com variveis no bsicas, vale zero). Mesmo


que esta expresso valha zero, a manteremos ali, porque posteriormente
ela ser importante quando quisermos saber o que acontece quando mudamos o valor de alguma varivel no bsica. Assim,
cj xj = z0

jm

z j xj .

j>m

im

Temos somente as variveis bsicas no lado esquerdo.


Se somarmos as
P
no bsicas obteremos cT x. Assim, somamos j>m cj xj aos dois lados da
equao, obtendo
X

Pr
el

cT x =z0 +

cj x j

j>m

=z0 +

zj xj

j>m

(cj zj )xj

j>m

j>m

Podemos ento descrever o valor da funo objetivo usando apenas z0 (o


valor calculado usando as variveis bsicas) e os valores das variveis no
bsicas:
X
cT x = z 0 +
(cj zj )xj

Ve
r

Esta equao importante porque mostra o quanto o valor da funo objetivo aumenta se aumentarmos o valor de uma das variveis no bsicas:
se aumentarmos uma varivel no bsica xj de zero para k, o objetivo aumentar em k(cj zj ). Esta informao ser usada para determinar que
variveis devem ter seu valor aumentado pelo algoritmo Simplex.
Observe tambm que
cT x
= cj zj ,
xj

e que os valores de (cj zj ) nos dizem as direes em que podemos melhorar o valor da funo objetivo.

notas de aula verso 64 - Jernimo C. Pellegrini

46

CAPTULO 3. O MTODO SIMPLEX

Definio 3.2 (Coeficiente reduzido de custo). Em um programa linear, os


valores
cT x
rj =
= cj zj
xj

3.4.2

Segunda definio

in
ar

so chamados de coeficientes reduzidos (ou relativos) de custo, e determinam em quanto cada varivel no bsica melhora o objetivo quando
seu valor aumentado em uma unidade.


Pr
el

im

A segunda definio de coeficiente reduzido de custo (equivalente primeira) como a diferena de valor que uma coluna tem na base e fora dela
(ou seja, quanto ganhamos se a incluirmos na base).
Tambm podemos definir o coeficiente reduzido de custo de outra
maneira. Chamamos AB de base porque ela de fato base para o espao
coluna de A. Qualquer coluna de A pode, portanto, ser escrita como combinao linear das colunas de AB . Podemos facilmente calcular o valor de
uma varivel quando ela est na base basta olhar para seu coeficiente
cj no objetivo. Quando a varivel no est na base, podemos calcular o
valor de sua coluna se a escrevermos como combinao linear da base e
usarmos os valores das colunas bsicas. Por exemplo, suponha que uma
coluna aj esteja fora da base. Ento

aj = 1 a1 + + 1 am

a11
a1m

= 1 ... + + m ...
am1
amm

Ve
r

Quando multiplicamos cada coluna da base por seu valor para obter o valor de aj , temos
c1 1 a1 + + cm 1 am

a11
a1m

= c1 1 ... + + cm m ...
amm
am1
= cTB AB ,

que o valor de uma coluna de AN . Quando fazemos o mesmo com todas


as colunas, temos
z = cTB AB AN ,

notas de aula verso 64 - Jernimo C. Pellegrini

3.4. COEFICIENTES REDUZIDOS DE CUSTO

47

e se mantivermos a base representada como identidade, temos


z = cTB AN .

Representao no tableau

im

3.4.3

in
ar

Assim, enquanto cj nos d o valor de uma varivel quando ela est na base,
zj nos d seu valor quando a construmos sinteticamente quando ela no
est na base. O coeficiente reduzido de custo, rj = cj zj a diferena entre os dois, e nos informa quanto poderemos ganhar incluindo a varivel
na base. Claramente, quando todos os rj forem negativos, no h como
melhorar a soluo.

Adicionamos a equao que d o valor do objetivo ao sistema Ax = b:


a12 x2 + . . . +
a22 x2 + . . . +

a1n xn
a2n xn

=
=

b1
b2
..
.

Pr
el

a11 x1 +
a21 x1 +
..
.

am1 x1 + am2 x2 + . . . + amn xn


= bm
c1 x1 +
c2 x2 + . . . +
cn xn z = z0
Reescrevendo a ltima linha usando apenas as variveis no bsicas,
z = z0 + rm+1 x1 + rm+2 x2 + . . . + rn xn

a1m x2 +
a2m x2 +

a11 x1 + . . .
a21 x1 + . . .
..
.

obtemos

a1m+1 xm+1 + . . . +
a2m+1 xm+1 + . . . +

a1n xn
a2n xn

0 =
0 =
..
.

b1
b2

am1 x1 + . . . amm x2 + amm+1 xm+1 + . . . + amn xn


0 = bm
0 + ...
0 +
rm+1 xm+1 + . . . +
rn xn z = z0

Ve
r

onde rj = (cj zj ). A coluna contendo zeros e z nunca ser parte de uma


base, e no a representaremos nos tableaux.

3.4.4

Exemplo

Damos agora um exemplo do clculo dos coeficientes reduzidos de custo.


Exemplo 3.3. Suponha que um programa linear tenha como objetivo maximizar a funo 2x1 + 3x2 + x3 . Duas variveis, x4 e x5 , foram adicionadas
para transformar restries de desigualdade em igualdade. Suponha que

notas de aula verso 64 - Jernimo C. Pellegrini

48

CAPTULO 3. O MTODO SIMPLEX

in
ar

o seguinte tableau tenha sido encontrado durante a execuo do mtodo


Simplex:
x1 x2 x3 x4 x5 b
3 0 1 0 4
1
0 1 0 2 1 5
0
4 1
3 0 12

A base formada por x1 , x3 e x5 , mas a ordem das colunas da base


x1 , x5 , x3 , e portanto consideramos cTB = (2, 0, 1). Os coeficientes reduzidos de custo da base so zero. Para obter os coeficientes reduzidos de
custo de x2 e x4 , calculamos zT = cTB AN , e r = c z.

3
1


cTB An = 2 0 1 1 2 = 10 1 .
4
3

im

Pr
el

Temos portanto

z2 = 10
z4 = 1,

e os coeficientes so

r2 = c2 z2 = 3 10 = 7

r4 = c4 z4 = 0 1 = 1.

Ve
r

O tableau completo tem os coeficientes reduzidos de custo das variveis


no bsicas na ltima linha, e o valor do objetivo na ltima posio (com
sinal trocado).
x1 x2 x3 x4 x5 b
1
3 0 1 0 4
0 1 0 2 1 5

0
4 1
3 0 12
0 7 0 1 0 20
Ps coeficientes reduzidos de custo so
z
= c2 z2 = 7,
x2

z
= c4 z4 = 1.
x4

Como os coeficientes reduzidos de custo so todos negativos (-7 e -1), a


soluo j tima: no h variveis que possam ser incluidas na base aumentando o valor da soluo.
J

notas de aula verso 64 - Jernimo C. Pellegrini

3.5. A OPERAO DE MUDANA DE BASE

A operao de mudana de base

Outra maneira de visualizar o tableau Simplex:

AB AN
b

cTB cTN z0

in
ar

3.5

49

Pr
el

im

Queremos percorrer diferentes bases do programa linear, sempre aumentando o valor da funo objetivo. Manteremos as colunas da base sempre
formando uma matriz identidade m m. Como j vimos antes, isto representa a descrio de cada uma das variveis bsicas em funo das no
bsicas.
Suponha agora que queiramos incluir uma varivel xq na base, retirando xp . Podemos escrever xq em funo das variveis no bsicas (inclusive xp ). Para isso basta operarmos as linhas do tableau, forando a coluna
aq a ficar igual a ap . Para isso pode-se usar a operao definida a seguir.
A fim de simplificar as referncias ao tableau, usaremos ain+1 para bi
e am+1j para rj .

Proposio 3.4. Seja um tableau Simplex representando o programa linear


definido por A, b e c. Seja ap uma coluna da base e aq uma coluna fora da
base. Ento a seguinte operao modifica a coluna aq de forma que fique
idntica a ap , podendo substitu-la na base e modifica tambm todas as
colunas de AN , inclusive ap , de maneira que as solues de Ax = b sejam
as mesmas. Para todo elemento aij , inclusive na coluna b e na linha do
objetivo, faa:

0
apj
=

apj
apq

aij0 = aij

apj aiq
(i 6= p).
apq

Ve
r

Demonstrao. A coluna ap tinha zeros exceto em app , onde tinha um.


0 = a /a
Para aq , temos apq
pq
pq = 1, e pode-se verificar que para todo i 6= p,
0
aiq = 0. A operao no muda as solues: a primeira multiplicao de
linha por escalar, e a segunda soma de mltiplo de linha a outra.


3.6

Que varivel entra na base?

Sabemos como retirar uma coluna ap da base, trocando-a por outra coluna aq . Agora tratamos de como escolher a coluna (ou seja, a varivel) que
deve ser includa na base.

notas de aula verso 64 - Jernimo C. Pellegrini

50

CAPTULO 3. O MTODO SIMPLEX

in
ar

J sabemos que os coeficientes reduzidos de custo, dados por rj =


cj zj , nos informam quanto uma unidade de cada varivel no bsica xj
aumenta a funo objetivo, e podemos portanto escolher alguma varivel
com rj > 0 (presumindo que estamos maximizando se estivermos minimizando escolhemos rj < 0), tendo assim a garantia de que melhoraremos
a soluo.
Este raciocnio formalizado no teorema 3.5.

im

Teorema 3.5. Seja x uma soluo vivel no degenerada para um problema de programao onde queiramos maximizar o objetivo, sendo z o
valor de x. Se o programa linear limitado e existe j tal que (cj zj ) > 0
ento h uma soluo vivel x 0 com valor z 0 > z, e x 0 pode ser obtida incluindo aj na base.

Demonstrao. Temos x = (x1 , x2 , . . . , xm , 0, . . . , 0). Suponha, sem perda


de generalidade, que j = m + 1. Seja ento

Pr
el

0
0
x 0 = (x10 , x20 , . . . , xm
, xm+1
, 0, . . . , 0),

0
> 0 uma soluo vivel. Temos
com xm+1

z0 = z +

(cj zj )xj

j>m

Como nesta soma somente xm+1 > 0,

z 0 z = (cm+1 zm+1 )xm+1

Mas tanto (cm+1 zm+1 ) como xm+1 so positivos, portanto z z0 > 0 e


z 0 > z.

Ve
r

Os dois corolrios a seguir so consequncias simples do teorema 3.5.

Corolrio 3.6. Se cj zj 0 para todo j, a soluo representada no tableau


tima.

Corolrio 3.7. Se cj zj = 0 para alguma varivel no bsica xj , ento h


mais de uma soluo vivel bsica tima (e consequentemente infinitas
solues timas).
Proposio 3.8. Se aij 0 para todos i e j, o problema ilimitado.

notas de aula verso 64 - Jernimo C. Pellegrini

3.6. QUE VARIVEL ENTRA NA BASE?

51

Pode haver mais de um j tal que (cj zj ) > 0, e nem sempre o maior
deles a melhor opo. Precisamos de um critrio de escolha. Dentre os
critrios que podem ser usados merecem ser mencionados os seguintes:

in
ar

Maior coeficiente reduzido de custo, a regra proposta originalmente


por George Dantzig.

Maior aumento absoluto no objetivo. Verifica-se quanto uma unidade de cada varivel xj valeria, e multiplica-se por cj . O maior valor
escolhido.

im

Aresta mais ngreme, com o maior aumento no valor do objetivo


para cada unidade de distncia. Se a soluo vivel bsica atual
x e estamos considerando outra, x 0 , ento a diferena entre os valores de objetivo cT x 0 cT x, ou cT (x 0 x). A distncia percorrida de
x at x 0 a norma de x 0 x. Assim, escolhemos
cT (x 0 x)
.
||x 0 x||

Pr
el
max
0
x

Regra de Bland: escolha a varivel com menor ndice. A nica vantagem desta regra a de garantir que no haver ciclos.

Escolha aleatria, que pode ser uma boa escolha por resultar em
baixa probabilidade de ciclos, usualmente convergindo mais rpido
que quando a regra de Bland usada.

Estritamente falando, nenhuma das regras melhor que as outras: podese construir exemplos onde cada uma delas leva a convergncia mais lenta
que alguma outra regra.
Exemplo 3.9. Considere o seguinte tableau:
x1

Ve
r

1
1/2

1/2
3/2

x2

x3

0
6
1 1
0 1
0
6

x4

0
0
1
0

x4
x4
b
1
2
1 10
0 1/2
1/2 0

0 1/2 1/2 10
0 5/2
1/2 20

x5

A base formada por x5 , x2 e x4 . Dentre as no bsicas, somente x3 e x6 tem


coefciente reduzido de custo positivo, portanto uma destas que deve
entrar na base.
J

notas de aula verso 64 - Jernimo C. Pellegrini

52

3.7

CAPTULO 3. O MTODO SIMPLEX

Que varivel sai da base?

in
ar

Sabendo a coluna que entrar na base, nos resta escolher uma coluna da
base para remover. Como estaremos retirando um valor que contribui
para o objetivo, devemos escolher uma varivel que, ao ser removida, remover do objetivo o menor valor possvel (para problemas de maximizao; para minimizao todo o raciocnio simtrico).
Seja x = (x1 , x2 , . . . , xm , 0, . . . , 0) uma soluo vivel bsica.
a1 x1 + a2 x2 + . . . + am xm = b

(3.1)

im

Queremos introduzir aq na base. Quem sai?


Observamos que, como AB base para o espao-coluna de A, aq pode
ser descrita como combinao linear de colunas de AB :
a1q a1 + a2q a2 + . . . + amq am = aq

Pr
el

Seja 0. Calculamos (3.1)(3.2):

(3.2)

a1 (x1 a1q ) + . . . + am (xm amq ) = b aq

aq + a1 (x1 a1q ) + . . . + am (xm amq ) = b


e portanto

aq +

ai (xi aiq ) = b

im

Ve
r

Para suficientemente pequeno mas no zero, xi aiq uma soluo


vivel, mas no bsica (com = 0 temos a soluo bsica da qual partimos, x). Queremos aumentar tanto quanto pudermos, mas sem tornar
nenhum xi aiq negativo, porque assim tornaramos a soluo invivel.
Queremos ento que, i m,
xi aiq 0
xi aiq
xi

aiq

Assim, escolhemos para deixar a base a coluna ap tal que p seja o ndice
que minimiza xi /aiq :


xi
: aiq > 0
p = min
im
aiq

Se todos os aiq forem negativos, o programa linear ilimitado.

notas de aula verso 64 - Jernimo C. Pellegrini

3.8. MTODO SIMPLEX (ALGORITMO)

53

x1 x2
3
1
0 1

0 2
0
3

x3

x4

0 1
0
2
1
3
0 7

x5

0
1
0
0

4
5

12
20

in
ar

Exemplo 3.10. Suponha que cT = (1, 1, 2), e considere o seguinte tableau.

4 3 = 4/3
5 1 = 5
12 2 = 6

im

A coluna a2 entrar na base; verificaremos qual coluna dever sair. Dividimos cada xi pelos elementos de a4 :

3.8

Pr
el

Descartamos os valores negativos e determinamos que a primeira varivel


bsica (x1 ) deve sair da base.
J

Mtodo Simplex (algoritmo)

O algoritmo Simplex mostrado a seguir em pseudocdigo. Nesta descrio o critrio de seleo de varivel a entrar na base no explicitado. Ao
escolher a coluna a sair da base, usamos bi , j que por enquanto representamos a base como identidade, e nesta situao xi = bi .

Ve
r

construa tableau para uma solu o vi vel b sica


enquanto existe rj > 0:
selecione q tal que rq > 0 // xq entrar na base
calcule bi /aiq para aiq 6= 0 e i m
se todo bi /aiq negativo : PARE -- problema ilimitado

p minim abiqi , aiq 0


fa a xq entrar na base , retirando xp :
0 apj
apj
apq
a

iq
aij0 aij apj apq
(i 6= p)

retorne xB // solu o tima

notas de aula verso 64 - Jernimo C. Pellegrini

54

CAPTULO 3. O MTODO SIMPLEX

max 2x1 + x2
x2
s.a.: x1
3
2
2x1 + 3x2 20
x 0.

in
ar

Exemplo 3.11. Considere o problema a seguir.

Adicionamos variveis de folga para transformar as desigualdades em igualdades, obtendo

Pr
el

x 0.

im

max 2x1 + x2
x2
s.a.: x1
+ x3 = 3
2
2x1 + 3x2 + x4 = 20

Montamos ento o tableau Simplex.

1 1/2 1 0 3
2
3 0 1 20
2
1 0 0 0

Todas as variveis no bsicas tem coeficientes reduzidos positivos, portanto podemos escolher qualquer uma delas. Escolhemos x1 . Para determinar a coluna a sair, dividimos cada xi bsica pelos elementos correspondentes da coluna que entrar (a1 ):
3/1 = 3

20/2 = 10

Ve
r

O menor deles o primeiro, portanto retiraremos ento a coluna atualmente ocupada pela primeira varivel bsica (x3 ).

1 1/2 1 0 3
2
3 0 1 20
2
1 0 0 0
As setas indicam as colunas a entrar e sair da base. Usamos operaes
elementares nas linhas do tableau para tornar a primeira coluna igual
coluna a3 : como a11 (que est marcado no tableau) j um, s precisamos

notas de aula verso 64 - Jernimo C. Pellegrini

3.8. MTODO SIMPLEX (ALGORITMO)

55

tornar a21 igual a zero. Ento subtramos da segunda linha duas vezes a
primeira. O tableau resultante

1 1/2
1 0 3
0
4 2 1 14
0
2 2 0 6

in
ar

Note que agora temos apenas uma varivel com coeficiente reduzido positivo. Ela entrar na base. Para determinar a coluna a sair, calculamos

14/4 = 7/2

( 0)

im

3/(1/2) = 6

A segunda varivel no bsica (x3 ), portanto, entra na base.

1 1/2
1 0 3
0
4 2 1 14
0
2 2 0 6

Pr
el

O elemento marcado (a22 = 4) ser transformado em um usando operaes elementares. O tableau resultante :

1 0
3/4
1/8 19/4
0 1 1/2
1/4 7/2
0 0
1 1/2 13

Como agora os coeficientes reduzidos de custo so todos negativos, chegamos a uma soluo tima, com x1 = 19/4, x2 = 7/2, e valor do objetivo
igual a 13.
J

Ve
r

Exemplo 3.12. Mostramos agora que quando no seguimos o mtodo de


escolha da varivel a sair da base, podemos chegar a uma soluo invivel.
No exemplo 3.11, a primeira varivel que escolhemos para entrar na
base foi x1 . O tableau era

1 1/2 1 0 3
2
3 0 1 20
2
1 0 0 0
Para escolher a varivel a sair calculamos 3/1 = 1 e 20/2 = 10, devendo
portanto escolher a primeira coluna da base. Se fizermos o contrrio e

notas de aula verso 64 - Jernimo C. Pellegrini

56

CAPTULO 3. O MTODO SIMPLEX

escolhermos a segunda coluna, teremos que multiplicar a segunda linha


por 1/2, e depois subtra-la da primeira. O resultado ser
0 2 1 1/2 7
1 3/2 0
1/2 10

in
ar

No entanto, esta soluo invivel, porque determina x3 = 7. A varivel


x3 de folga, e se atribuirmos a ela valor negativo, estaramos violando
uma desigualdade.
J

3.9

im

Teorema 3.13. Se aps a execuo do mtodo Simplex uma soluo tima


tiver sido encontrara e houver coeficientes reduzidos de custo com valor
zero, ento h mltiplas (infinitas) solues timas para o problema.

Obtendo uma soluo vivel bsica inicial

3.9.1

Pr
el

Para problemas do tipo max cT x s.a. Ax b, as variveis de folga nos


permitiram formar facilmente uma soluo bsica inicial. Nem todo problema ter uma varivel de folga para cada restrio que nos permita obter
de maneira simples uma soluo inicial.

O mtodo das duas fases

Considere agora o problema

(3.3)

s.a.: Ax = b
x0

max : cT x

Ve
r

Uma maneira de obter uma soluo vivel bsica criar variveis artificiais (no de folga variveis sem qualquer significado, cuja nica razo de
existir permitir-nos encontrar uma soluo inicial para o tableau Simplex). Veja por exemplo o problema a seguir.
min :

yi

(3.4)

s.a.: Ax + y = b
x, y 0

Proposio 3.14. O problema 3.3 vivel se e somente se 3.4 tem timo


com y = 0.

notas de aula verso 64 - Jernimo C. Pellegrini

3.9. OBTENDO UMA SOLUO VIVEL BSICA INICIAL

57



a11 x1 + a12 x2 + + a1n xn + a1n+1 y1 = b1 ,

in
ar

Demonstrao. Trivialmente, se 3.3 vivel 3.4 tambm tem timo com


y = 0. Se y = 0, claramente podemos desprezar y obtendo soluo vivel
para 3.3.
Se 3.4 tem timo com y > 0, no h como diminuir y mantendo a
soluo vivel: note que as variveis yi funcionam como variveis de folga
para o problema original, 3.3:

im

e se houver algum yi > 0, temos uma varivel de folga sendo usada. Isso
significa que o lado esquerdo de uma das restries deve ser estritamente
menor que o direito:
a11 x1 + a12 x2 + + a1n xn < b1 ,

Pr
el

mas o problema original, 3.3, no tem estas variveis de folga, e portanto


invivel.

Resolver 3.4 fcil, com soluo bsica inicial y = b. A soluo final,
se houver, no ter variveis yi na base (porque o mnimo do objetivo se
d com y = 0), e portanto serve para 3.3.
Exemplo 3.15.

max : 2x1 + 5x2 + 3x3 + x4


s.a.: 2x1 2x2 + x3 + 2x4 = 2

x2 + x3 x4 = 4
4x1 + 2x2 8x3 + 4x4 = 8

x0

Ve
r

Como no conseguimos facilmente uma soluo vivel bsica, usamos o


mtodo das duas fases. Inicialmente resolvemos o problema a seguir.
min : y1 + y2 + y3
s.a.: 2x1 2x2 + x3 + 2x4 + y1 = 2
x2 + x3 x4 + y2 = 4
4x1 + 2x2 8x3 + 4x4 + y3 = 8
x, y 0

notas de aula verso 64 - Jernimo C. Pellegrini

58

CAPTULO 3. O MTODO SIMPLEX

in
ar

Note que este problema tem uma soluo vivel bsica trivial, com as novas variveis artificiais na base. Depois de resolv-lo, chegamos ao seguinte tableau:

1 0 0 9/16 5/16 7/16


3/32 25/8
0 0 1 3/8
1/8 3/8 1/16 5/4

0 1 0 5/8 5/4 1/16


1/16 11/4
0 0 0
0
1
1
1 0

Pr
el

im

O problema tem soluo tima com y = 0 e x = (25/8, 11/4, 5/4)T . Estes


valores para os xi no so timos para o problema original, mas so uma
soluo vivel bsica, e podem ser usados como ponto de partida. Removemos as variveis yi do tableau e passamos a usar os custos originais,
c = (2, 5, 3, 1)T .

1 0 0 9/16 25/8
0 0 1 3/8 5/4

0 1 0 5/8 11/4
0 0 0 33/8 95/4
O valor atual do objetivo 95/4, mas esta soluo no tima, porque h
um coeficiente reduzido de custo maior que zero. Temos

9/16
z = (2, 3, 5) 3/8 = (25/8),
5/8

e portanto c4 z4 = 1 (25/8) = 33/8. A varivel x4 entrar na base, e a


primeira bsica (x1 ) deve sair. O piv 9/16. Aps um passo do Simplex,
obtemos um novo tableau:

16/9 0 0 1 50/9
2/3 0 1 0 10/3

10/9 1 0 0 56/9
22/3 0 0 0 140/3

Ve
r

Agora sim, temos a soluo tima com x = (0, 56/9, 10/3, 50/9)T e valor
140/3.
J

Exemplo 3.16. Temos agora o seguinte problema.


max x1 + x2
s.a. : x1 + 2x2 2
3x1 + 4x2 12
x0

notas de aula verso 64 - Jernimo C. Pellegrini

3.9. OBTENDO UMA SOLUO VIVEL BSICA INICIAL

59

in
ar

Ao montarmos o tableau, percebemos que no h uma base bvia que


possamos usar:

1 2 1
0 2
3 4 0 1 12
Adicionamos uma varivel extra y1 (porque no precisamos de duas podemos usar a folga da primeira linha), e minimizamos y, obtendo o tableau

1 2 1
0 0 2
3 4 0 1 1 12

Pr
el

im

Como estamos minimizando y, podemos simplesmente maximizar y. O


vetor c ser (0, 0, 0, 1).

1 2 1
0 0 2
3 4 0 1 1 12
3 4 0 1 0
incluiremos x1 na base. Verificamos quem deveria sair:
2 1 =2

12 3 =4

Retiramos a primeira bsica, s1 .

1
2
1
0 0 2
0 2 3 1 1 6
0 2 3 1 0

O mtodo do M grande

Ve
r

3.9.2

A soluo para este problema tima, mas com y1 = 6. Isto significa que
no h soluo para Ax = b, e o problema original no tem soluo vivel.
J

O mtodo do grande M realiza a mesma coisa que o mtodo das duas fases
de uma nica vez.
max : cT x
s.a.: Ax = b
x0

(3.5)

notas de aula verso 64 - Jernimo C. Pellegrini

60

CAPTULO 3. O MTODO SIMPLEX

No objetivo, subtramos do vetor x um outro vetor, y, com coeficientes


muito grandes. Multiplicaremos um valor grande M por um vetor de variveis artificiais y.
s.a.: Ax + y = b
x, y 0
Exemplo 3.17.
max x1 + 2x2

im

s.a.: x1 1

(3.6)

in
ar

max : cT x M(1T y)

x1 + x2 3
x0

Pr
el

A representao grfica deste problema mostrada na prxima figura.

Ve
r

Observe que a origem no vivel, por isso no podemos usar (0, 0) como
soluo vivel bsica.
Usando o mtodo do M grande com M = 10, obtemos um novo problema.
max x1 + 2x2 10(y1 + y2 )
s.a.: x1 + y1 1
x1 + x2 + y2 3
x, y 0

Observe que as variveis yi aparecem no objetivo com sinal negativo e


multiplicadas pelo valor M, muito grande assim, quando M for suficientemente grande, teremos a soluo tima com y = 0, e o problema
torna-se equivalente ao problema original, de onde partimos.
J

notas de aula verso 64 - Jernimo C. Pellegrini

3.10. MINIMIZAO E DESIGUALDADES DO TIPO

61

O funcionamento do mtodo do M grande garantido pelas proposies a seguir.


Proposio 3.18. Se 3.6 ilimitado e 3.5 vivel, ento 3.5 ilimitado.

in
ar

Proposio 3.19. Se 3.5 vivel e tem soluo tima finita, ento existe um
M > 0 tal que o tableau final do Simplex para 3.6 ter as variveis artificiais
fora da base.
Proposio 3.20. Se 3.5 invivel ento no existe M > 0 para o qual o
tableau final do Simplex para 3.6 ter as variveis artificiais fora da base.
Exemplo 3.21.

im

max : 2x1 + 5x2 + 3x3 + x4

s.a.: 2x1 2x2 + x3 + 2x4 = 2


x2 + x3 x4 = 4

Pr
el

4x1 + 2x2 8x3 + 4x4 = 8


x0

Usando o mtodo do M grande, com M = 500, reescrevemos o problema


da forma a seguir.
min : 2x1 + 5x2 + 3x3 + x4 500y1 500y2 500y3
s.a.: 2x1 2x2 + x3 + 2x4 + y1 = 2
x 2 + x 3 x 4 + y2 = 4

4x1 + 2x2 8x3 + 4x4 + y3 = 8

x, y 0

3.10

Obtemos a soluo tima x = (0, 56/9, 10/3, 50/9)T e y = 0.

Minimizao e desigualdades do tipo

Ve
r

At agora mantivemos o foco em problemas de maximizao com desigualdades do tipo . Era simples obter para esses problemas um tableau
Simplex inicial, porque as variveis de folga de das restries formavam
no tableau uma submatriz identidade. Em problemas de minimizao,
que usualmente tem restries do tipo , esta soluo no seria possvel,
porque as variveis de folga tem coeficiente 1, e o que surge no tableau
a identidade multiplicada por 1. Na ltima seo mostramos como lidar com esta situao, adicionando variveis artificiais. Agora ilustraremos
aquelas tcnicas em problemas de minimizao.

notas de aula verso 64 - Jernimo C. Pellegrini

62

CAPTULO 3. O MTODO SIMPLEX

in
ar

O simplex funciona da mesma forma em problemas de maximizao


e minimizao. A nica diferena na execuo do algoritmo que, como
queremos minimizar o objetivo, escolheremos os coeficientes reduzidos
de custo com valor negativo ao escolher a coluna a entrar na base, e teremos uma soluo tima quando s houver coeficientes reduzidos de
custo positivos.
Exemplo 3.22. Resolveremos o seguinte problema de minimizao.
min 2x1 + x2 + x3
s.a.: x1 + x2 2

im

x2 + x3 3
x0

Com as variveis de folga, o problema reescrito da seguinte maneira.


min 2x1 + x2 + x3

Pr
el

s.a.: x1 + x2 x4 = 2
x2 + x3 x5 = 3

x0

Se montarmos o tableau Simplex, no teremos uma escolha simples de


base inicial.

1 1 0 1
0 2
1 0 1
0 1 3

Ve
r

No podemos usar as variveis de folga, porque elas tem coeficientes negativos no tableau, e portanto seus valores so negativos (x4 = 2, x5 =
3). Tambm no podemos usar as colunas 2 e 3, que formam uma submatriz identidade (referentes s variveis x2 e x3 ), porque a soluo seria
invivel: teramos x2 = 2, x3 = 3, e x2 +x3 = 5, violando a segunda restrio.
Usamos portanto o mtodo das duas fases. Minimizamos a funo y1 +
y2 , e o tableau inicial

1
1
0 1
0 1 0 2
1
0
1
0 1 0 1 3
2 1 1
1
1 0 0 5
No clculo dos coeficientes de custo, temos


1 1 0 1 0
z = (1, 1)
= (2, 1, 1, 1, 1),
1 0 1 0 1

notas de aula verso 64 - Jernimo C. Pellegrini

3.11. SOLUES DEGENERADAS

63

e portanto cTN z (2, 1, 1, 1, 1). Incluiremos x1 na base, e y1 sair. O


prximo tableau

1
1
0 1
0
1 0 2
0 1
1
1 1 1 1 1
0
1 1 1 1
0 0 1


1 0 1 0
1
z = (0, 1)
1 1 1 1 1

in
ar

= (1, 1, 1, 1, 1),

im

e cTN z (1, 1, 1, 1, 0). Escolhemos x3 para entrar na base. A coluna


a sair da base a segunda (y2 ). A parte superior do tableau no mudar.
Apenas recalculamos os coeficientes reduzidos de custo.

Pr
el

1
1 0 1
0
1 0 2
0 1 1
1 1 1 1 1
0
0 0
0
0
0 0 0
z = (0, 0),

AN = (0, 0, 0, 0, 0).

Temos ento cTN z = 0, e a soluo nos d y = 0 o que significa que


o problema original vivel. Retiramos y do tableau e mudamos para a
funo objetivo original, cT = (2, 1, 1).

1
1 0 1
0 2
0 1 1
1 1 1
0
0 0
1
1 3

Ao calcularmos novamente os coeficientes reduzidos de custo, temos




0 1 0
z = (2, 1)
= (1, 1, 1).
1 1 1

Ve
r

Assim, cTN z = (0, 1, 1). A soluo j tima.

3.11

Solues degeneradas

Definio 3.23 (soluo degenerada). Seja um problema de programao


linear com n variveis e m restries. Uma soluo vivel bsica degenerada se uma de suas variveis bsicas igual a zero.
Um problema de programao linear degenerado se uma de suas solues viveis bsicas degenerada.


notas de aula verso 64 - Jernimo C. Pellegrini

64

CAPTULO 3. O MTODO SIMPLEX

Exemplo 3.24. Considere o seguinte problema.


max x1 + x2 + x3
s.a. : x1 + x2 1
x3 1
x1 + x3 2

im

x 0.

in
ar

Equivalentemente, um tableau representa uma soluo degenerada se


a coluna das constantes (b) contm algum valor igual a zero.

Pr
el

Quando usamos o mtodo Simplex para resolv-lo, chegamos ao seguinte


tableau:

1
0 0
1
0 0 1
0
0 1
0
1 0 1

0 1 0 1 1 1 0
0
0 0 1 1 0 2
com x1 = 1, x2 = 0 e x3 = 1. Esta soluo degenerada porque x2
zero.
J

Solues degeneradas acontecem quando uma restrio redundante


toca o politopo.

Ve
r

Exemplo 3.25. Temos a seguir um exemplo de problema degenerado.


max x1 + x2
s.a.: x1 x2 3
x1 + x2 3
x1 6
3x1 x2 15
x 0.

A ltima restrio redundante, tocando apenas no ponto (6, 3) do poliedro.

notas de aula verso 64 - Jernimo C. Pellegrini

65

im

in
ar

3.11. SOLUES DEGENERADAS

Pr
el

A seguir temos o mesmo problema, trocadas as desigualdades por igualdades.


max x1 + x2

s.a.: x1 x2 + x3 = 3

x1 + x2 + x4 = 3

x1 + x5 = 6

3x1 x2 + x6 = 15

x 0.

Ve
r

Montamos o tableau Simplex para o problema:

1 1 1 0 0 0 3
1
1 0 1 0 0 3

1
0 0 0 1 0 6

3 1 0 0 0 1 15
1
1 0 0 0 0 0
Podemos escolher tanto x1 como x2 para entrar na base. Escolhemos x1 .
Para determinar a varivel a sair, calculamos
31 =3
3 1 = 3
61 =6
15 3 = 5

notas de aula verso 64 - Jernimo C. Pellegrini

66

CAPTULO 3. O MTODO SIMPLEX

in
ar

e escolhemos a primeira varivel no bsica (x3 ). O novo tableau

1 1
1 0 0 0 3
0
0
1 1 0 0 6

1
1
0
1
0
3

0
2 3 0 0 1 6
0
2 1 0 0 0 3

Agora s podemos incluir x2 na base, porque a nica no bsica com


coeficiente reduzido de custo acima de zero. Para determinar a varivel a
sair da base, novamente calculamos

im

3 1 = 3
3 0 = ...

31 =3
62 =3

Pr
el

Temos um empate entre x5 e x6 . Estas so as variveis de folga das duas


restries que tocam o ponto (3, 6), uma delas redundante. O fato de podermos retirar qualquer uma destas variveis da base significa que podemos retirar a folga de qualquer uma das duas restries para incluir x2 .
Escolhemos x6 para sair, e o novo tableau

1 0 1/2 0 0
1/2 6
0 0
1 1 0
0 6

0 0
1/2 0 1 1/2 0

0 1 3/2 0 0
1/2 3
0 0
2 0 0
1 9

Ve
r

O valor de x5 zero, e a soluo degenerada.


Agora incluiremos x3 , porque nossa nica opo.
6 1/2 = 12
61 =6
0 1/2 = 0
3 3/2 = 2

A varivel a sair x5 , e o novo tableau

1 0 0 0
1
0 6
0 0 0 1 2
1 6

0 0 1 0
2 1 0

0 1 0 0
3 1 3
0 0 0 0 4
1 9

notas de aula verso 64 - Jernimo C. Pellegrini

3.12. MTODO SIMPLEX REVISADO

67

1
0

0
0

0
0
0
1
0

0
0
1 0 6
0
1 2 1 6

1
1
0 0 6

0
1
1 0 9
0 1 2 0 15

in
ar

O valor de x3 zero, e temos outra soluo degenerada. Observe que o


valor do objetivo no mudou.
Agora incluiremos x6 . A varivel a sair ser x4 , e o tableau final

im

Todos os coeficientes reduzidos de custo so negativos, portanto temos


uma soluo tima, com x1 = 6, x2 = 9 e valor 15.
J
Teorema 3.26. Um problema de programao linear tem uma restrio
redundante que toca o politopo degenerado.

3.12

Pr
el

Teorema 3.27. O uso da regra de Bland para escolher a coluna a entrar na


base elimina a possibilidade de ciclos.

Mtodo Simplex Revisado

Ve
r

O mtodo Simplex mantm em memria e percorre a cada passo uma


matriz com n colunas e m linhas. Quando n muito maior que m, muitas
dessas colunas no so usadas durante a execuo do algoritmo. Geometricamente, o caminho da soluo inicial at a tima no percorre todos
os pontos extremos, mas um pequeno nmero deles e isto particularmente relevante quando a dimenso do politopo alta. Cada vez que uma
coluna entra na base, todas as colunas de AN so atualizadas, mesmo que
nunca venham a ser usadas. O mtodo Simplex revisado foi desenvolvido
como uma forma de evitar o armazenamento e processamento dessa informao desnecessria.
Antes de mais nada, listamos a informao de que o Simplex precisa
para cada operao:
Coeficientes reduzidos de custo para selecionar a coluna a entrar na
base e para verificar otimalidade de solues;

A coluna que entra na base e os valores de xB para selecionar a coluna a sair da base;
Os valores das variveis bsicas, para que possamos reportar a soluo tima quando a encontrarmos.

notas de aula verso 64 - Jernimo C. Pellegrini

68

CAPTULO 3. O MTODO SIMPLEX

in
ar

Tudo mais desnecessrio.


Como j fizemos antes na seo 3.2, representaremos o tableau simplex dividindo A, x e c em duas partes cada um uma parte relativa s
variveis bsicas e outra relativa s no bsicas. Como denotamos

A = AB AN

cT = cTB cTN

x = xB xN ,

im

a descrio de problemas de programao linear pode ser feita da seguinte


maneira:
max cTB xB + cTN xN

s.a.: AB xB + AN xN b
xB , xN 0.

Pr
el

O tableau simplex

!
b

cT

AB AN b

=
cTB cTN 0

Usamos operaes elementares para obter coeficientes 1 nas variveis bsicas, de forma que a base seja a identidade. Multiplicamos a parte superior por A1
B , obtendo

1
1
I AB AN AB b

T
T
cN
0
cB

Ve
r

Finalmente, subtramos da ltima linha cTB multiplicado pela parte superior:

1
1
I
A B AN
AB b

1
1
T
T
T
0 cN cB AB AN cB AB b
Observe na ltima linha que rTN = cTN cTB A1
B AN representa os coeficientes
1
T
reduzidos de custo (cj zj ). J cB AB b igual a cTB xB , ou z0 , e portanto
o tableau

1
I A1
A
A
b
N
B
B

T
0
rN
z0

notas de aula verso 64 - Jernimo C. Pellegrini

3.12. MTODO SIMPLEX REVISADO

69

in
ar

Temos no tableau original n + 1 colunas, e cada vez que trocarmos uma


varivel da base, modificaremos todas elas.
O algoritmo para o mtodo Simplex revisado guarda apenas A1
B , porque ela nos permite gerar qualquer informao do tableau que precisemos, inclusive os valores de cj e xj :

1
1
AB AB b

1
T
cB AB z0

Pr
el

im

Temos agora um tableau com m + 1 colunas. Detalhamos a seguir as ope0


raes que o Simplex far usando esta representao. Denotamos por aiq
o i-simo elemento do vetor coluna aq0 :

a1 q
a2 q

aq0 = . .
.
.
am q
Coeficientes reduzidos de custo: para a varivel xj , observamos que
cj zj = cj cTB A1
B aj .

A coluna da varivel xq a entrar na base: basta escrev-la usando a


nova base, A1
B :
aq0 = A1
B aq

Atualizao do tableau: para atualizar todos os valores, efetuamos


0 (o elemento na p-sima linha do vetor coluna
pivoteamento em apq
aq ).

Ve
r

calcule A1
B
repita :
T cTB A1
B
calcule rTN , um de cada vez , parando ao encontrar ri > 0:
rj cj T aj
T
se rN 0 PARE : xB timo
aq escolh e_coluna_a_ entrar ()
aq0 A1
B aq
se aq0 0 PARE : problema ilimitado
0
calcule bi /aiq
e determine ap
1
atualize AB e a solu o A1
B b

notas de aula verso 64 - Jernimo C. Pellegrini

70

CAPTULO 3. O MTODO SIMPLEX

in
ar

comum que implementaes no armazenem A1


B explicitamente,
1
mas sim por sua fatorao LU. A fatorao LU de AB apenas atualizada,
sendo recalculada apenas de tempos em tempos. Isso traz um equilbrio
entre eficincia e preciso numrica.

Exerccios

im

Ex. 26 Coloque os problemas na forma padro para que possam ser resolvidos pelo mtodo Simplex, e depois use o Simplex para resolv-los,
mostrando os tableaux intermedirios. Resolva cada um usando a regra
de Bland e tambm alguma outra regra.
(i) max 2x1 + x2 + 3x3
s.a. : x1 x2 = 5
2x1 + x3 = 10

s.a. : x1 1
x1 2
x2 1

Pr
el

x2 + 2x3 9

(ii) max 3x1 + 2x2

x0

(iii) max 2x1 + x2 x3


s.a. : x1 + x2 3

2x2 + x3 = 5

x1 3x3 = 4

x0

(iv) max 2x1 + x2


s.a. : x1 + x2 3
2x2 + x3 = 5
x0

x0

x2 2

Ve
r

Ex. 27 Coloque os problemas na forma padro para que possam ser resolvidos pelo mtodo Simplex, e depois use o Simplex para resolv-los,
mostrando os tableaux intermedirios. Use o mtodo das duas fases em
dois problemas, e o do M grande em dois outros.
(i) min 2x1 + 4x2 + 8x3
s.a. : x1 + x2 = 5
x1 + x3 4
3x2 + x3 5
x0

(ii) min 2x1 x2


s.a. : x1 2
x1 4
x2 2
x2 4
x0

notas de aula verso 64 - Jernimo C. Pellegrini

3.12. MTODO SIMPLEX REVISADO

s.a. : x1 + x2 5
x2 + 3x3 = 8
x1 x3 4
x0

(iv) min 8x1 + 3x2


s.a. : 5x1 x2 = 3
x2 + 3x3 = 5
x0

in
ar

(iii) min x1 x2 + 2x3

71

im

Ex. 28 Implemente o mtodo Simplex: primeiro, apenas para restries


na forma de desigualdade, Ax b. Depois permitindo igualdades, usando
a tcnica descrita neste Captulo para obter solues viveis bsicas iniciais. Posteriormente, experimente com diferentes mtodos para escolher
a coluna a entrar na base.
Ex. 29 Demonstre rigorosamente os Corolrios 3.6 e 3.7.

Pr
el

Ex. 30 Demonstre a Proposio 3.8. realmente necessrio verificar


todos os aij em A? Explique.
Ex. 31 Prove que quando usamos o mtodo Simplex em um problema
no degenerado, uma coluna que sai da base nunca mais reinserida.

Ve
r

Ex. 32 O que acontece quando usamos o mtodo do M grande em um


problema invivel? E em um problema ilimitado?

notas de aula verso 64 - Jernimo C. Pellegrini

CAPTULO 3. O MTODO SIMPLEX

Ve
r

Pr
el

im

in
ar

72

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Captulo 4

im

Dualidade

Pr
el

A todo problema de maximizao pode-se associar um problema de minimizao, chamado de dual do problema. Neste Captulo estudamos a
dualidade em programas lineares.
Definio 4.1 (Primal e dual). Considere o seguinte programa linear:
max cT x

s.a.: Ax b
x 0.

Damos o nome a este P.L. de primal, e dizemos que o P.L. a seguir seu
dual.

min bT y
s.a.: AT y c
y 0.

Ve
r

Se um problema tem restries em forma de igualdade, podemos construir seu dual primeiro passando o problema para a forma de desigualdade, observando que a restrio
ai1 x1 + . . . + ain xn = bi

pode ser reescrita como


ai1 x1 + . . . + ain xn bi
ai1 x1 . . . ain xn bi .
73

notas de aula verso 64 - Jernimo C. Pellegrini

74

CAPTULO 4. DUALIDADE

Exemplo 4.2. Determinaremos o dual do seguinte problema.


max x1 + 2x2 + x3
x1 + 2x2 x3 3
x 0.

in
ar

s.a.: x1 3x2 = 5

im

A primeira restrio uma igualdade, portanto a transformamos em duas


desigualdades,

x1 3x2
5
x1 3x2 = 5
=
x1 + 3x2 5,
obtendo

max x1 + 2x2 + x3
s.a.: x1 3x2 5

Pr
el

x1 + 3x2 5

x1 + 2x2 x3 3

x 0.

Agora podemos obter o dual do problema:

min 5y1 5y2 + 3y3

s.a.: y1 y2 y3 1

3y1 + 3y2 + 2y3 2

y3 1
y 0.

No entanto, este programa linear tem tres variveis, e o primal do qual


partimos originalmente tem duas restries apenas.
J

Ve
r

O Exerccio 38 pede a demonstrao do Teorema 4.3, que consiste na


formalizao do que foi visto no exemplo anterior.
Teorema 4.3. Considere um programa linear de maximizao. possvel
obter um programa linear dual a este, mas com o nmero de variveis do
dual exatamente igual ao nmero de restries do primal. Se a i-sima
restrio do primal uma
igualdade: ento a varivel correspondente yi no dual ser livre (ou
seja, poder assumir valores negativos)

desigualdade : ento a varivel yi do dual assumir valores 0.

notas de aula verso 64 - Jernimo C. Pellegrini

4.1. INTERPRETAES DO DUAL

4.1

75

Interpretaes do dual

4.1.1

Interpretao operacional

in
ar

H duas interpretaes importantes para o dual de um programa linear: a


operacional e a econmica.

4.1.2

Pr
el

im

Os coeficientes reduzidos de custo (na ltima linha do tableau Simplex)


representam, para cada varivel no bsica, o quanto poderamos melhorar a funo objetivo se ela fosse includa na base. Esses coeficientes mudam medida que o Simplex tenta encontrar solues que se mantenham
viveis, mas mais prximas do timo. O vetor b representa o limite da viabilidade que no muda durante a execuo do Simplex.
No problema dual, a funo a ser otimizada bT y ou seja, procuramos otimizar a distncia at a viabilidade. J as restries so da forma
Ay Q c e como c no muda, estamos mantendo a condio de otimalidade. Assim, o dual de um programa linear representa o problema de,
dada uma soluo qualquer que tenha valor timo, encontrar aquela mais
prxima possvel da viabilidade, mantendo o mesmo valor.

Interpretao econmica

Ve
r

Considere o problema de mistura a seguir: uma empresa produz refeies prontas para companhias areas. Em cada refeio podem ser usadas
quantidades diferentes de alguns ingredientes.
Ao resolver o problema primal, maximizamos o lucro total obtido com
a produo das refeies escolhendo quanto usar de cada ingrediente. Resolvendo o problema dual, minimizamos o custo de cada recurso (e para
isso diminumos a quantidade usada, claro), de forma a manter o valor
timo de lucro.
Em outras palavras, resolver o primal significa partir de quantidades
de recursos menor que a tima e aument-las at chegar ao timo, nunca
usando mais recursos que o possvel; resolver o dual significa partir de
uma quantidade de recursos maior que o disponvel, e diminu-las (diminuindo o custo) at chegar ao mnimo possvel.

4.2

Lema de Farkas

Nesta seo tratamos do Lema de Farkas. Para uma melhor compreenso deste Lema, usaremos as definies de combinas positivas e cones
gerados por vetores.

notas de aula verso 64 - Jernimo C. Pellegrini

76

CAPTULO 4. DUALIDADE

Definio 4.4 (combinao positiva). Uma combinao positiva de um conjunto de vetores uma combinao linear destes vetores, tendo coeficientes no negativos.


in
ar

Definio 4.5 (cone convexo). O cone convexo gerado por um conjunto de


vetores o conjunto de todas as combinaes positivas daquele conjunto.


im

Exemplo 4.6. Seja V = {(2, 0)T , (1, 1)T }. O cone gerado por estes dois vetores


a(2, 0) + b(1, 1) : a, b 0 = (2a, 0)T + (b, b)T : a, b 0


= (2a + b, b)T : a, b 0


= (x, y)T : x > y 0 .

Pr
el

Os dois vetores so mostrados na figura a seguir; o cone formado por eles


composto de todos os vetores na rea sombreada.
v2

v1

Observe que para descrever um vetor de R2 fora do cone como combinao linear de v1 e v2 , teramos que usar coeficientes negativos:

v2 w
v1

Ve
r

O vetor w = (1.5, 1) est contido no cone, e sua descrio


1
w = (2, 0)T + (1, 1)T ,
4

com coeficientes positivos 1/4, 1. J o vetor fora do cone, (1, 2)T


1
z = (2, 0)T + 2(1, 1)T ,
2

com um coeficiente negativo.

notas de aula verso 64 - Jernimo C. Pellegrini

4.2. LEMA DE FARKAS

77

x1

 x2

Ax = a1 , a2 , . . . , an .
..

xn
1

= x1 a + x2 a + + xn an .

in
ar

Relembramos que a multiplicao de uma matriz por um vetor coluna


descreve a combinao linear das colunas com os coeficientes dados no
vetor:

im

Assim, o cone gerado pelas colunas de A o conjunto de combinaes


positivas de suas colunas, ou

Pr
el


Ax, x 0 .

O Lema de Farkas (Lema 4.7) representa a essncia da dualidade em


programao linear. O Lema diz, geometricamente, que dados n vetores,
um vetor qualquer x pode estar dentro do cone (e neste caso ser combinao positiva dos outros) ou fora do cone (quando combinao no
positiva dos outros) e nunca ambos ao mesmo tempo.
Em essencia, o Lema de Farkas diz que o vetor b pode pertencer ao
cone gerado por A ou no.
Seja S a revio vivel, definida por um programa linear Ax = b. Ento
exatamente uma das duas situaes ocorre:

Ve
r

i) b pertence ao cone gerado por A, portanto temos Ax = b, com x 0


(porque para pertencer ao cone deve ser combinao positiva das
colunas de A).
an

b
a1

ii) b no pertence ao cone gerado por A. Neste caso, deve haver algum
z, formando ngulo menor que 90o com b, mas formando mais de
90o com o cone definido por A.

notas de aula verso 64 - Jernimo C. Pellegrini

78

CAPTULO 4. DUALIDADE
a1
b

in
ar

an

im

Pr
el

Mostramos na figura apenas a1 e an ; os outros vetores ai esto entre


eles; o semiespao determinado pela linha leve consiste dos vetores
com ngulo menor que 90o com b; o cone esquerda e abaixo
formado pelos vetores com ngulo maior ou igual que 90o com o
cone de A.
Assim, existe z tal que

o ngulo entre colunas de A e z maior que 90o , logo AT z 0;


o ngulo entre b e z menor que 90o , logo bT z > 0.

Se tomarmos y = z, teremos ento AT y 0 para algum y tal que


bT y < 0.

Embora a discusso geomtrica at este ponto possa ser convincente


para o caso em que tratamos de vetores em R2 , enunciamos e demonstramos algebricamente a seguir o Lema de Farkas.

Ve
r

Lema 4.7 (de Farkas). Sejam A uma matriz e b um vetor, sendo que o nmero de linhas de A igual quantidade de elementos de b. Ento exatamente um dos dois sistemas a seguir tem soluo.
i) Ax = b, para algum x 0.

ii) yT A 0 para algum y tal que bT y < 0.

Esta demonstrao est incompleta. Outra demonstrao diferente


ser usada em uma futura verso do texto.

notas de aula verso 64 - Jernimo C. Pellegrini

4.2. LEMA DE FARKAS

79

Demonstrao. (i no ii) Suponha que (i) valha, e Ax = b tenha


soluo positiva. Se existe y tal que yT A 0, ento
yT A 0T
yT Ax 0T x = 0

in
ar

(porque x, Ay 0)
(Ax = b)

yT b 0
e o sistema (ii) no pode ter soluo.
(no i ii) esta parte omitida por ora.

Exemplo 4.8. Sejam

b = 5 .
1

Pr
el

1
3 2
A = 0 1 4 ,
2
1 5

im

Fica claro, do enunciado do Lema de Farkas, que ele tem forte relao com o conceito de dualidade o produto AT y, com y no restrito a
positivos, parte da descrio do dual de Ax = b.

O sistema Ax = b s tem a soluo x = (3, 5, 30/19)T , portanto o sistema


AT y 0 deve ter soluo para algum y com bT y < 0. E realmente, a
soluo y = (2, 3, 4)T nos d
AT y = (10, 13, 12)T , yb = 3(2) + 5(3) + 1(4) = 5.

Exemplo 4.9. O Lema de Farkas vale para quaisquer matrizes, no apenas


quadradas. Por exemplo, sejam


 
1 3 1
4
A=
, b=
.
0 1 2
1

Ve
r

As solues deste sistema so da forma


x1 2x3 = 1,

o que inclui a soluo x = 5, 2)T . O sistema AT y 0 portanto no pode


ter soluo com yT b < 0. Realmente,


1 0
y1
0
3 1 y2 = 0
y3
0
1 2

s tem a soluo trivial, com y = 0.

notas de aula verso 64 - Jernimo C. Pellegrini

80

4.3

CAPTULO 4. DUALIDADE

Teoremas de dualidade

in
ar

As solues timas para o primal e o dual tem o mesmo valor, como mostraremos nos prximos teoremas.
Teorema 4.10 (dualidade fraca). Sejam x e y solues para o primal e o
dual de um programa linear. Ento cT x bT y.
Demonstrao.
c AT y
cT y T A

im

cT x yT Ax
yT b
= bT y

Pr
el

Corolrio 4.11. Se x0 e y0 so solues para o primal e o dual, e cT x0 =


bT y0 ento ambas so solues timas.
Demonstrao. Seja x soluo vivel para o primal. Ento cT x bT y0 =
cT x0 .


Ve
r

As restries de um programa linear max cT x, s.a Ax b so da forma


ai x bi , onde ai a i-sima linha de A. Estas restries podem ser visualizadas como hiperplanos, cada um definindo um semiespao. A soluo
tima est exatamente na interseo das restries.

a1

a2
a3

Na figura anterior, a soluo tima a interseo das restries a1 x =


b1 e a2 x = b2 , e a3 redundante.

Lema 4.12. Se o ponto timo de um programa linear no pertence ao hiperplano definido por uma das restries, ela redundante e pode ser
removida sem que a soluo tima mude.

notas de aula verso 64 - Jernimo C. Pellegrini

4.3. TEOREMAS DE DUALIDADE

81

Teorema 4.13 (dualidade forte). Se o primal ou o dual de um programa


linear tem soluo tima, o outro tambm tem, e os valores das solues
timas so iguais.

in
ar

Demonstrao. Sejam max cT x s.a Ax b o primal de um programa linear


e min bT y s.a AT y c seu dual. Suponha que o primal tem soluo tima
x , com valor v = cT x .
O hiperplano cT x = v toca no poliedro apenas no ponto timo x (ou
nos pontos timos, se houver mais de um).

cT x = v

Pr
el

a1 x = b1

im

a2 x = b2

Aqui denotamos por ai a i-sima linha de A. Sejam a1 x b1 , a2 x b2 , . . .


as restries do primal, e considere os hiperplanos a1 x = b1 , a2 x = b2 , que
definem a borda do poliedro. J o hiperplano cT x = v, ortogonal a c e que
toca o poliedro em x , claramente uma combinao linear no negativa
dos hiperplanos definidos pelos ai x = bi . Temos portanto

1 (a1 x)
1 b1
+2 (a2 x)
+2 b2
+3 (a3 x) = +3 b3
..
..
.
.
X
X
i ai x =
i bi

Ve
r

E consequentemente,

Ento,

cT =
v=

X
X

i ai
i bi


X
max cT x|Ax b, x 0 = v =
i bi ,

mas temos tambm


X


i bi min bT y|AT y c, y 0 ,

notas de aula verso 64 - Jernimo C. Pellegrini

82

CAPTULO 4. DUALIDADE

in
ar

e o valor mximo para o primal maior ou igual que o valor mnimo para
o dual.
Mostramos que cT x bT y, mas tambm sabemos pelo teorema 4.10
que cT x bT y, e portanto os dois valores devem ser iguais.

Teorema 4.14. Se o primal de um programa linear vivel e seu dual no
ento o primal ilimitado.
Demonstrao. Seja x vivel para o primal. Como o dual invivel, o sistema a seguir no tem soluo.
AT y c

im

y0

Como no h soluo para este sistema, pelo Lema de Farkas deve existir
soluo para

Pr
el

Az 0
cT z > 0

z0

Tomemos um z, soluo do sistema acima. Observamos que z + vivel


para o primal se 0:
A(x + z) = Ax + Az

e como Az 0, x + z b. Mas temos tambm

cT (x + z) = cT x + cT z,

e como > 0, cT z > 0, temos que cT (x + z) quando , e x


no timo. Mais ainda, para qualquer x supostamente timo podemos
determinar x 0 dando valor maior para o objetivo.


Ve
r

Corolrio 4.15. Se o primal de um programa linear vivel e f(x) = cT x


limitada por cima ento o dual vivel.
Se o dual de um programa linear vivel e g(y) = bT y limitada por
baixo ento o primal vivel.
Se tanto o primal como o dual forem viveis, tanto f como g so limitadas, f por cima e g por baixo.
Teorema 4.16. Se tanto o primal como o dual so viveis, ambos tem (a
mesma) soluo tima.

notas de aula verso 64 - Jernimo C. Pellegrini

4.3. TEOREMAS DE DUALIDADE

83

Observamos tambm que o tableau simplex para o dual exatamente


o tableau transposto do primal:
AB AN
cTB cTN


b

ATB cB
ATN cN
bT

in
ar

im

O Teorema das folgas complementares, enunciado a seguir, usado no


desenvolvimento do algoritmo primal-dual. Informalmente, o Teorema
determina que quando h soluo tima para um par de problemas duais,
se a i-sima varivel da soluo do primal no zero, a soluo do dual
torna sua i-sima linha uma igualdade (sem folga); e quando a i-sima
linha do dual desigualdade estrita, a i-sima varivel do primal tem valor
zero. Ou seja, se xj 6= 0, ento a j-sima linha do dual satisfeita sem folga,
(aj )T y = cj .

Pr
el

Teorema 4.17 (das folgas complementares). Sejam um programa linear e


seu dual,
max cT x, s.a.: Ax b

min bT y, s.a.: AT y c

Duas solues x e y para o primal e dual so timas se e somente se

yT (Ax b) = 0

xT (c AT y) = 0.

Ve
r

Demonstrao. Sejam x e y solues viveis para o primal e dual. Temos


Ax b
b Ax 0

yT b Ax 0,

porque y vivel (y 0). Similarmente,


AT y c
AT y c 0

xT AT y c 0.

notas de aula verso 64 - Jernimo C. Pellegrini

84

CAPTULO 4. DUALIDADE


Sejam p = yT (b Ax) e q = xT AT y c . Ento,

in
ar



p + q = yT (b Ax) + xT AT y c


= yT b + yT Ax + xT AT y xT c
= yT b xT c
0,

im

porque yT b xT c, pelo Teorema 4.10.


() Se as duas solues forem timas, temos p + q 0 e tambm
p = q, e necessariamente p = q = 0. Portanto,
yT (b Ax) = 0


xT AT y c = 0

Pr
el

() Suponha p = q = 0. Ento



yT (b Ax) + xT AT y c = 0
yT b xT c = 0
yT b = xT c

Algoritmo simplex dual

4.4

e, como as solues tem o mesmo valor objetivo e so viveis para o primal


e para o dual, so ambas timas.


Ve
r

Considere o primal e o dual de um programa linear, como os que so dados a seguir.


maximize cT x
s.a.: Ax b
x 0.
minimize bT y
s.a.: AT y c
y 0.

notas de aula verso 64 - Jernimo C. Pellegrini

4.4. ALGORITMO SIMPLEX DUAL

85

cj zj .

im

in
ar

O mtodo Simplex, quando aplicado ao primal, procura por vrias solues viveis (sempre obedecendo as restries) e bsicas, cada uma com
valor objetivo maior, at encontrar a soluo tima. Observando a formulao do dual, podemos imaginar que se executarmos nele o mesmo
algoritmo, o que sempre se mantm a condio de otimalidade (porque
c agora est no lugar de b), e que o que buscamos uma soluo cada vez
mais prxima da viabilidade. Isto o que faz o algoritmo dual-simplex.
Suponha que tenhamos uma soluo bsica para o primal que tenha
valor melhor que qualquer ponto do politopo, mas que no seja vivel.
Representamos esta soluo pela base AB , tal que xB = A1
B b.
Como a soluo tima, cj zj 0 para todo j, e

Seja y a soluo correspondente para o dual. y = cT A1


B vivel:

Pr
el

AT (cT A1
B )c

Se y tima para o dual, ento x tima para o primal.


Seno, xB tem algum elemento xi negativo.
Seja B = A1
B , Bi a i-sima linha de B e
y
^ T = yT + Bi

com > 0 (ou seja, se AB fosse a identidade, mudaramos somente o valor


de xi ). Ento

y
^ T b = yT b + Bi b
= yT b + xi .

(4.1)

Ve
r

Como > 0 e xi < 0,

y
^ T b < yT b,

o que significa que y


^ uma soluo melhor para o dual (que um problema de minimizao), para qualquer > 0. Nos resta saber como escolher de forma que y
^ seja vivel.
Observe que Bi aj , para j > m, igual a aij . Para j m, Bi aj = ij (este
o de Kronecker1 ).
1

ij = 1 se i = j, e zero caso contrrio.

notas de aula verso 64 - Jernimo C. Pellegrini

86

CAPTULO 4. DUALIDADE
Assim, para j > m,
y
^ T aj = (yT + Bi )aj
= yT aj + aij
= zj + aij .

Se aij 0,

y
^ T aj > zj > cj ,

im

e a soluo vivel para o dual.


Para j m e i = j,

in
ar

= yT aj + Bi aj

y
^ T aj = (yT + Bi )aj
= yT aj + Bi aj
= yT aj + .

Pr
el

Assim,

y
^ T aj > zj > cj ,

e novamente a soluo vivel para o dual.


No entanto, se aij 0 para todo j > m, por 4.1 o dual ilimitado, porque
yT b quando .
Se aij < 0 para algum j > m, podemos escolher de forma a manter a
soluo vivel. Queremos

j > m,

e portanto escolhemos

min
j

zi aij cj


zj cj
: j > m, aij < 0 .
aij

Ve
r

Como aumentando melhoramos a funo objetivo do dual, escolhemos




zj cj
= min
: j > m, aij < 0 .
j
aij
Seja k o ndice que minimiza a expresso. Podemos verificar que melhorou o objetivo do dual tanto quanto era possvel:
y
^ T ak = zk aik
(zk ck )
= zk
aik
aik
= ck .

notas de aula verso 64 - Jernimo C. Pellegrini

4.4. ALGORITMO SIMPLEX DUAL

87

in
ar

Agora retiramos a coluna ai da base e inclumos ak , obtendo uma soluo mais prxima de ser vivel para o primal (porque tem valor melhor
para o dual).
O algoritmo dual-Simplex mostrado a seguir.

im

obtenha AB , base do primal com cj zj < 0 j


/B
1
calcule xB = B b
enquanto xB tem elementos negativos :
n {i : xi < 0}
se aij 0 para algum i n e todo j > m:
PARE -- primal ilimitado
se aij < 0 para algum i n e todo j > m:
r arg mini {xi < 0}


z c
k arg minj jarj j : j > m, arj < 0

Pr
el

retire ar da base e inclua ak


calcule a nova base AB
PARE -- xB tima

Notas

Exerccios

A demonstrao do teorema forte da dualidade (Teorema 4.13) dada neste


texto semelhante quela apresentada por Alexander Schrijver [Sch98].

Ex. 33 Mostre o dual dos problemas a seguir.


(i) max x1 + x2 + 3x3

(ii) min 3x1 + 2x2


s.a. : x1 + x2 1

x1 + x3 10

x1 x2 2

Ve
r

s.a. : x1 2x2 = 5
3x2 + 4x3 9

(iii) max 2x1 + 2x2 3x3


s.a. : 2x1 + 3x2 3
5x2 + 5x3 5
9x1 + 2x3 4

(iv) min 2x1 + 5x2


s.a. : 2x1 + 7x2 5
2x2 x3 = 1

notas de aula verso 64 - Jernimo C. Pellegrini

88

CAPTULO 4. DUALIDADE

Ex. 34 Mostre que o problema


max cT x
x0

in
ar

s.a: Ax = b
tem soluo se e somente se cT combinao linear das linhas de A.
Ex. 35 Implemente o algoritmo Simplex dual e o primal-dual

Ex. 37 Prove o Lema 4.12.

Pr
el

Ex. 38 Prove o Teorema 4.3.

im

Ex. 36 Antes do Lema 4.12, mencionamos que uma condio necessria para que um programa linear tenha soluo tima que o gradiente
do objetivo possa ser expresso como combinao linear no negativa das
restries. Demonstre rigorosamente isto.

Ve
r

Ex. 39 Se a soluo tima do dual degenerada, o que se pode dizer


sobre a soluo tima do primal?

Captulo 5

im

Anlise de Sensibilidade

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Pr
el

Este captulo ser reescrito


Suponha que tenhamos encontrado a soluo x , tima para o programa linear
max cT x s.a.: Ax b.
Verificaremos o quanto podemos mudar no problema sem mudar sua soluo tima, que j encontramos. A isso damos o nome de anlise de sensibilidade.

5.1

Mudanas no objetivo

Mudar coeficientes no vetor que define a funo objetivo ter um nico


efeito importante: o gradiente mudar de direo. Se o ngulo for suficientemente grande, a soluo tima pode mudar.

Ve
r

Teorema 5.1. Suponha que um valor tenha sido somado ao coeficiente


ck . Se xk estiver na base, a soluo tima ser a mesma, x , do problema
original se
(cj zj )
se akj > 0
akj
(cj zj )

se akj < 0
akj

Se xk no estiver na base, a soluo continuar sendo tima se


(ck zk ).
89

notas de aula verso 64 - Jernimo C. Pellegrini

90

CAPTULO 5. ANLISE DE SENSIBILIDADE

cj zj 0,

j.

in
ar

Demonstrao. Como a descrio da regio vivel dada somente por A


e b, a soluo x continua vivel. Resta determinarmos se continua tima
ou no.
A condio de otimalidade para uma soluo
Analisaremos dois casos: o primeiro, em que xk era bsica na soluo
tima, e o segundo caso, em que xk no era bsica.
Primeiro caso (xk bsica): o novo valor zj0 ser igual ao anterior (porque
somente os cj para j fora da base compe zj ), mas ck0 passa a ser ck + .
Primeiro observamos que

im

cj zj = cj cTB AN
X
= cj
ci aij .
im

Pr
el

Assim, queremos

cj zj0 0
X
cj
ci0 aij 0
im

cj ck0 akj

ci0 aij 0

(tirando k do somatrio)

im,i6=k

cj ck0 akj

ci aij 0

(para i 6= k, ci = ci0 )

im,i6=k

cj (ck + )akj

ci aij 0

im,i6=k

cj ck akj akj

Ve
r

ci aij 0

im,i6=k

cj akj

ci aij 0 (devolvendo ck ak ao somatrio)

im

cj akj zj 0
(cj zj ) akj 0
akj (cj zj )

notas de aula verso 64 - Jernimo C. Pellegrini

5.1. MUDANAS NO OBJETIVO

91

Multiplicamos a inequao por akj , e o resultado depende do sinal de akj :


(cj zj )
se akj > 0
akj
(cj zj )

se akj < 0
akj

in
ar

Assim, se respeitar essa restrio, x continua sendo tima.


Segundo caso (xk fora da base): o coeficiente ck0 modificado no altera
o vetor z, portanto somente o coeficiente reduzido de custo da prpria
varivel xk modificado. Assim, queremos

im

ck0 zk 0
(ck + ) zk 0

Pr
el

(ck zk ).

Exemplo 5.2. Considere o problema ??:

max 3x + 4y

s.a.: 2x + y <= 7
x + 2y <= 8

x y <= 6

1
0

0
0

0
2/3 1/3
1 1/3
2/3
0
1
1
0 2/3 5/3

O tableau final

x, y 0.

0
2
0
3

1
7
0 18

Ve
r

Suponha que queiramos mudar o primeiro coeficiente, tal que a funo


objetivo passe a ser
z0 = (3 + )x + 4y.

Aplicando o Teorema,
Para j = 3: como a13 = 2/3 > 0, temos

2/3
= 1.
2/3

notas de aula verso 64 - Jernimo C. Pellegrini

92

CAPTULO 5. ANLISE DE SENSIBILIDADE


Para j = 4: como a14 = 1/3 < 0, temos
5/3
= +5.
1/3

in
ar

Assim, com [1, +5] garantimos a otimalidade da soluo que j tnhamos. De fato, para qualquer funo objetivo entre 2x + 4y e 8x + 4y
(ou seja, da forma [2, 8]x + 4y), a soluo x = 2 e y = 3 continua tima, mas
fora desse intervalo no.

5.2

Mudanas no vetor b

im

Teorema 5.3. Suponha que um valor k tenha sido somado ao coeficiente


bk , resultando em b 0 . A soluo tima continuar sendo a mesma se
xi
, se Bik > 0
Bik
x
k i , se Bik < 0
Bik

Pr
el

Demonstrao. Observamos que no temos somente uma soluo x . Temos uma base AB , e calculamos nossa soluo
x = A1
B b.

A mudana em b mudana no afeta o critrio de otimalidade (cj zj 0)


para nossa base se ela continuar representando uma soluo vivel, ser
ainda tima. Seja

0
x = A1
B b
T
1
= A1
B b + AB (0, 0, . . . , k , . . . , 0)

Ve
r

Se denotarmos B = A1
B , temos

x
i = xi + Bik k .

Ento queremos
x
i 0
xi + Bik k 0,

o que nos leva diretamente ao enunciado do Teorema.

notas de aula verso 64 - Jernimo C. Pellegrini

5.3. MUDANAS NOS COEFICIENTES DE A

5.3

93

Mudanas nos coeficientes de A

in
ar

Consideramos agora o que acontece se um dos coeficientes de A modi0 =a


ficado. Supomos ento que apq
pq + .
H dois casos importantes a considerar: (i) q era coluna da base; e (ii) q
no era coluna da base.

5.3.1

Caso (i)

Caso (ii)

Pr
el

5.3.2

im

Se q pertencia base, necessrio verificar se a condio de viabilidade e


a de otimalidade continuam sendo satisfeitas.

Se q no pertencia base, a condio de viabilidade no violada, e precisamos apenas observar a condio de otimalidade,
cj zj0 0,

j.

Ve
r

Denotamos o novo valor de zq por zq0 , e o novo valor da coluna aq por aq0 .
A coluna aq0 igual a aq + ep , onde ep o p-simo vetor da base cannica
de Rn :

0
0

..
.

aq + ep = aq +
.
..
.

0
0
Tambm sabemos que zq = cTB Baq , e que, consequentemente,
zq0 = cTB Baq0 .

notas de aula verso 64 - Jernimo C. Pellegrini

94

CAPTULO 5. ANLISE DE SENSIBILIDADE

Assim, a condio de otimalidade


cq cTB Baq0 0

cq + zq +

!
ci Bip

im

in
ar

cq cTB B(aq + ep ) 0


cq zq cTB Bep 0
!
X
cq zq
ci Bip 0

Pr
el

Isolamos , levando em considerao dois casos:


X
(zq cq )
, se
ci Bip > 0
P
i ci Bip
i
X
(zq cq )
, se
ci Bip < 0.
P
i ci Bip
i

5.4

Nova varivel

Se uma nova varivel xn+1 adicionada ao problema, sem mudanas nos


coeficientes j existentes em A, b e c, teremos uma nova coluna an+1 em
A e um novo elemento cn+1 em c.
Podemos tomar o tableau que usamos para obter x e adicionar a nova
coluna com an+1 e cn+1 . Teremos tambm que calcular cn+1 zn+1 . Isso
j nos dar a informao que queremos: a soluo x continuar sendo
tima somente se cn+1 zn+1 0. Caso no seja, podemos imediatamente
incluir an+1 na base e usar o algoritmo Simplex para obter uma nova soluo tima.

Nova restrio

Ve
r

5.5

Suponha agora que uma nova restrio tenha sido adicionada ao problema.
Se a soluo tima x satisfizer a restrio, ela claramente continuar sendo
tima. Trataremos ento do que acontece quando nossa antiga soluo
no obedece a nova restrio (no mais vivel).
Representamos a nova restrio por
X
am+1 xj = bm+1 ,
jn

notas de aula verso 64 - Jernimo C. Pellegrini

5.5. NOVA RESTRIO

95

e o novo tableau simplex ser

in
ar



AB 0
1
onde a linha com os coeficientes da nova restrio, e 1 o coeficiente
de uma nova varivel, que j inclumos na base. A nova soluo

im

xB0 = (AB0 )1 b 0


 1
0
b
AB
=
bm+1
A1
1
B


xB
0
=
xB bm+1

Pr
el

Como adicionamos uma varivel artificial sem participao na funo objetivo, a nova soluo tem cj zj 0 para todo j (a condio de otimalidade no mudou). Se a nova varivel de folga for negativa (e portanto a
nova soluo no vivel), podemos usar o mtodo dual simplex para obter uma nova soluo tima. Se for positiva, podemos atribuir um valor
muito grande para a posio do tableau onde teramos cm+1 zm+1 e usar
o simplex para obter uma nova soluo tima.

Notas

Sinha [Sin06] e Vanderbei [Van07] discutem tambm Programao Paramtrica, que trata de problemas de programao linear onde as mudanas no so discretas como as de que tratamos aqui, mas contnuas: por
exemplo, o vetor c pode variar continuamente com uma funo
c = c0 + d,

Ve
r

onde c0 e d so vetores.

Exerccios

Ex. 40 Faa a anlise de sensibilidade dos problemas apresentados no


primeiro Captulo.
Ex. 41 Suponha que tenhamos resolvido um problema de maximizao,
e encontrado a soluo tima x , com valor v. Em que situao possvel
multiplicar uma linha i inteira da matriz A por 1 mantendo a otimalidade
da soluo?

notas de aula verso 64 - Jernimo C. Pellegrini

96

CAPTULO 5. ANLISE DE SENSIBILIDADE

Ex. 42 Suponha que um programa linear tenha uma nica soluo tima
x . Quanto podemos mudar um coeficiente da funo objetivo de forma
que x continue sendo a nica soluo tima?

Ve
r

Pr
el

im

in
ar

Ex. 43 O que acontece com a soluo tima se removermos uma varivel ou uma restrio de um problema de programao linear?

Captulo 6

im

Outros Mtodos

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

6.1

Pr
el

O algoritmo Simplex e suas variantes trabalham iterando solues bsicas (pontos extremos do poliedro definido pelas solues viveis do problema). possvel, embora muito raro na prtica, que a quantidade
 de
n
bases visitada pelo Simplex seja exponencial (lembramos que h m
delas).

O mtodo do elipsoide

Ve
r

O russo1 Khachiyan mostrou em 1979 como usar um algoritmo para resolver problemas de programao linear em tempo polinomial.
O algoritmo apresentado por Khachiyan na verdade resolve o problema
das desigualdades estritas, que consiste em determinar, dados uma matriz
A e um vetor b, se existe x tal que Ax < b. Nesta apresentao usaremos
desigualdades no estritas, Ax b.
Comeamos apresentando o algoritmo do elipsoide para sistemas de
desigualdades estritas, e em seguida mostramos como resolver problemas de programao linear apenas encontrando solues para sistemas
de desigualdades.

6.1.1

O algoritmo

Um elipsoide uma generalizao de elipse para muitas dimenses. Em


R3 , um elipside definido pela forma quadrtica

x2
y2 z2
+
+
= k,
a2 b2 c2

Na poca, tambm Sovitico.

97

notas de aula verso 64 - Jernimo C. Pellegrini

98

CAPTULO 6. OUTROS MTODOS

ou seja,
0
1
b2


0
x
0 y .
1
z
c2

in
ar

1
 a2
x y z 0
0

Assim, podemos representar um elispide por uma matriz quadrada simtrica, e a definio extende-se naturalmente para Rn .
Definio 6.1 (Elipsoide). Um elipsoide o conjunto de pontos definido
por


x : (x x 0 )M1 (x x 0 ) 1

Pr
el

im

onde x e x 0 so vetores com n elementos e M uma matriz quadrada definida positiva e simtrica de ordem n. O vetor x 0 o centro do elipsoide. 

Ve
r

O algoritmo inicia com um elipsoide centrado na origem e tendo interseo com parte da regio vivel (se ela existir). Em cada iterao o algoritmo verifica se o centro do elipsoide vivel. Se for, obviamente a soluo foi encontrada; seno, troca o elipsoide por outro, menor, que contm
a interseo do anterior com a regio vivel. Pode-se demonstrar que se
nenhuma soluo for encontrada aps um certo nmero de iteraes, no
h solues viveis para o sistema.
A cada iterao, uma desigualdade violada usada para determinar o
novo elipsoide (calcula-se novo centro xk+1 e nova matriz Mk+1 ), resultando em um novo elipside.
A cada iterao, se a soluo atual (o centro do elipside) no vivel,
h uma desigualdade violada ai x bi . O algoritmo usa o hiperplano ai x =
bi .

notas de aula verso 64 - Jernimo C. Pellegrini

6.1. O MTODO DO ELIPSOIDE

99

in
ar

A prxima Figura ilustra o comportamento do algoritmo. A soluo


corrente era x, e a restrio violada representada por (x est abaixo de
, mas a restrio determina que a regio vivel acima dela). Se movermos paralelamente a si mesma at tornar-se tangente no elipsoide, na
direo da viabilidade (ou seja, para cima e direita no exemplo dado), obtemos um ponto y. A nova soluo x 0 estar entre x e y. O novo elipsoide,
menor, ser tangente a y e conter toda a rea vivel que estava contida
antes no primeiro elipsoide. Neste exemplo, x 0 vivel e o algoritmo pode
parar.

im

x0

Pr
el

Ve
r

O primeiro elipsoide deve ser grande o suficiente para conter pelo menos
uma soluo para o sistema, se alguma existir. Para determinar o tamanho
deste elipsoide usamos o nmero de bits que o problema ocupa quando
representado em um computador. Cada nmero pode ser representado
por b1 + log2 |n|c bits mais um bit para o sinal. Para representar a matriz A,
o vetor b e os nmeros n e m usamos L bits, onde

XX
X
L =
1 + b1 + log |aij |c +
1 + b1 + log |bi |c
2

im jn

im

+ (b1 + log2 nc) + (b1 + log2 mc)


XX
X

dlog2 |aij |e +
dlog2 |bi |e
im jn

im

+ dlog2 ne + dlog2 me + 2m(n + 1) + 2

(Representamos n e m como inteiros sem sinal.)

notas de aula verso 64 - Jernimo C. Pellegrini

100

CAPTULO 6. OUTROS MTODOS

Podemos portanto usar

M0 = 2L I

inicialmente.

in
ar

Teorema 6.2. Uma hiperesfera centrada na origem e com raio 2L inclui


pelo menos uma soluo para Ax b, se alguma existir.

Lema 6.3. Se o volume do elipsoide na k-sima iterao Vk , ento


Vk+1 < Vk e1/(2n+2) < 1.

im

Temos portanto Vk V0 ek/(2n+2) , e com isso podemos demostrar que


o algoritmo roda em tempo polinomial.

Teorema 6.4. O algoritmo do elipsoide tem complexidade de tempo polinomial.

Pr
el

Demonstrao. Como o volume da esfera inicial C(n)(2L )n , onde C(n)


0 quando n , o algoritmo pode parar emm



C(n)2nL
k = (2n + 2) log

&
!'
(n+1)L
2
(2n + 2) log




2L
n+1
= (2n + 2) log + log(2 ) + log

iteraes. Cada iterao realiza O(n2 ) operaes, portanto a complexiL


dade do algoritmo O(n4 + n3 log 2 ).
possvel mostrar que o nmero de iteraes que calculamos menor
que 6n(n + 1)L, e este o critrio de parada que usamos no algoritmo.


Ve
r

Se a inequao violada por x era ai e o elipsoide era definido por M


com centro em x, ento um novo elipsoide com centro em


1
Mai
q
x0 = x
n+1
aTi Mai

e com

n2
M = 2
n 1
0


T !
Mai Mai
2
M
n + 1 (ai )T Mai

notas de aula verso 64 - Jernimo C. Pellegrini

6.1. O MTODO DO ELIPSOIDE

101

conter a interseo do elipsoide anterior com o semiespao definido pela


inequao ai . O pseudocdigo do algoritmo do elipsoide dado a seguir.

im

in
ar

x0
M 2L I
repita 6n(n + 1)L vezes :
se Ax < b PARE -- retorne x
senao
determine inequa o violada por x ((ai )T x > bi )
 Mai
1
T i
x x n+1
ai Ma


i
i T
2
2 (Ma )(Ma )
n
M n2 1 M n+1 (ai )T Mai
PARE -- n o h solu o

6.1.2

Resolvendo problemas de programao linear

Pr
el

Descrevemos o mtodo do elipsoide como uma maneira de encontrar um


ponto que satisfaa um sistema de inequaes Ax b. Nesta seo mostramos que com isto podemos resolver quaisquer problemas de programao linear.
Considere o seguinte programa linear:
max cT x

s.a.: Ax b
x0

Ve
r

Para resolv-lo usando o mtodo do elipsoide, usaremos seu dual:


min bT y
s.a.: AT y c
y0

Sabemos que as solues timas para estes problemas so tais que


Ax b
T

A y c

(restries do primal)
(restries do dual)

cT x + bT y 0

(dualidade: cT x = bT x)

x 0

(no-negatividade)

y 0

(no-negatividade)

notas de aula verso 64 - Jernimo C. Pellegrini

102

CAPTULO 6. OUTROS MTODOS

Exemplo 6.5. Considere o problema a seguir:


max 3x1 + 2x2
s.a.: x1 3x2 4
4x1 + x2 12

im

x 0.

in
ar

Usamos o mtodo do elipsoide para obter uma soluo para este sistema,
e teremos assim uma soluo x tima para o problema de programao
linear.

O dual deste problema

min 4y1 + 12y2

Pr
el

s.a.: y1 + 4y2 3

3y1 + y2 2

y 0.

O problema, para ser resolvido pelo mtodo do elipside, posto na seguinte forma:
x1 3x2 4

4x1 + x2 12

Ve
r

y1 4y2 3

3y1 y2 2
3x1 2x2 + 4y1 + 12y2 0
x0
y0

O algoritmo do elipsoide precisa de 6n(n + 1)L iteraes no pior caso.


Infelizmente, o pior caso o que quase sempre acontece na prtica. O mtodo Simplex, cujo pior caso roda em tempo exponencial, quase sempre
mais rpido que o elipsoide.

notas de aula verso 64 - Jernimo C. Pellegrini

6.2. PONTOS INTERIORES

6.2

103

Pontos interiores

6.2.1 Affine scaling


Suponha que o problema esteja na forma

im

max cT x s.a.: Ax = b

in
ar

O mtodo Simplex percorre diferentes pontos extremos do poliedro at


encontrar a soluo tima para um programa linear.
H mtodos para resoluo de problemas de programao linear que
trabalham somente com pontos interiores do poliedro.

Pr
el

O algoritmo comea com um ponto vivel, muda a escala de forma que


o ponto passe a ser um vetor unitrio e o move na direo do gradiente
do objetivo, garantindo que o valor da nova soluo ser melhor e que o
novo ponto tambm ser vivel. Em cada iterao, temos um ponto vivel
x. Mostraremos como obter o prximo ponto x 0 . Primeiro mudamos a
escala do problema para que o ponto passe a ser o vetor unitrio: se x =
(x1 , x2 , . . . , xn ), ento definimos

x1 0 . . . 0
0 x2 . . . 0

D=.
.
..
..
. ..
0 0 . . . xn

O ponto modificado y = D1 x, de forma que

Ve
r


1
1

y = D1 x = . = e.
..
1

Dizemos que o algoritmo trabalhar tanto no espao-x como no espao-y.


Temos portanto o problema A(Dy) = b, ou (AD)y = b. Fazemos S =
AD, e o novo programa linear
max cT y
s.a: Sy = b
y0

notas de aula verso 64 - Jernimo C. Pellegrini

104

CAPTULO 6. OUTROS MTODOS

in
ar

E neste novo problema temos y = e, que evidentemente um ponto vivel.


Moveremos y na direo do gradiente do objetivo. No entanto, no
queremos sair da regio vivel. Uma maneira de permanecer na regio
vivel modificar a funo objetivo, projetando-a no espao nulo de S.
Teorema 6.6. Se x 0 soluo vivel para um problema cujas restries so
Ax = b, e y pertence ao espao nulo de A, ento x 0 + y tambm vivel.
Demonstrao. Trivialmente, temos

Ay = 0

(y est no espao nulo de A)

im

Ax 0 = b

Ao somarmos y soluo vivel x 0 , obtemos outra soluo vivel:

Pr
el

A(x 0 + y) = Ax 0 + Ay = b + 0 = b.

O operador de projeo no espao nulo de S 2

(D = DT ( diagonal))

1

S
P = I ST SST
h
i1
= I (AD)T AD(AD)T
AD
i1
h
AD
= I DAT AD2 AT

Ve
r

A projeo do gradiente cT T no espao nulo de AD


cp = P(cT D)T
= PDc
h
i1
= I DAT AD2 AT
AD (Dc)
h
i1
= I DAT AD2 AT
AD2 c.

Se cp (que o gradiente do objetivo, projetado) for igual a zero, no h


direo vivel que melhore a soluo, que portanto tima.
2
Uma demonstrao de que este de fato o projetor no espao nulo pode ser encontrada no livro de Harry Dym [Dym07].

notas de aula verso 64 - Jernimo C. Pellegrini

6.2. PONTOS INTERIORES

105

Se cp 6= 0, moveremos y em sua direo. Nos falta ento determinar


quanto mov-lo. Seja ento > 0. A nova soluo ser

D1 y 0 = D1 x + cp
x 0 = x + Dcp .
Assim,
d = Dcp

in
ar

y 0 = y + cp

im

o gradiente projetado, mas no espao-x.


J garantimos que a nova soluo respeitar as restries do problema,
porque projetamos o gradiente no espao nulo de S. No entanto, ainda
falta garantir que a soluo seja no-negativa: precisamos que x 0 0 (ou
seja, todos os componentes de x 0 devem ser positivos). Como x 0 = Dy 0 ,

Pr
el

x0 0

Dy 0 0

D(y + cp ) 0

D(e + cp ) 0

(y = e)

De + Dcp ) 0

(D tem x na diagonal)

x + d 0

d x.

Para os componentes positivos de di esta condio trivialmente satisfeita. Quando di < 0, precisamos de

Ve
r

Podemos ento tomar

xi
.
di


xj
= min : dj < 0 .
jn
dj

Note que estamos minimizando em um conjunto de nmeros positivos


(xj /dj , com dj < 0, xj > 0).
Para termos x 0 ponto interior (e no na fronteira do poliedro), podemos
escolher um valor um pouco aqum do que o calculado acima nos daria
(por exemplo, , com = 0.95).

notas de aula verso 64 - Jernimo C. Pellegrini

106

CAPTULO 6. OUTROS MTODOS


Conclumos ento com
(0, 1).

in
ar

x 0 = x + d,

Observe que, estritamente falando, o algoritmo nunca chega soluo


tima, mas a uma aproximao dela. Note no entanto que o gradiente do
objetivo ser cada vez menor, e o critrio de parada pode ser portanto
||cp || <

im

para algum suficientemente pequeno.

Exemplo 6.7. Considere o problema a seguir


max x1 + x2 + x3

Pr
el

s.a.: x1 + 2x2 + x3 = 2

2x1 + 4x2 x3 = 1

x 0.

Comeamos com a soluo vivel (mas no bsica)

x = (1/2, 1/4, 1)T .

O valor do objetivo para esta soluo


cT x =

1 1
7
+ + 1 = = 1.75.
2 4
4

Ve
r

Assim, temos




 
1
1 2 1
2

A=
b=
c = 1
2 4 1
1
1

Calculamos

1/2 0 0
D = 0 1/4 0 ,
0
0 1

1/4
0
0
D2 = 0 1/16 0 .
0
1

(6.1)

notas de aula verso 64 - Jernimo C. Pellegrini

6.2. PONTOS INTERIORES

107

im

in
ar



cp = I DAT [AD2 AT ]1 AD Dc


1 

1/2
1 
1/2 0 0
1
3/2
0
1/2
1/2
1
0 1/4 0 1
1
= I 1/2
0 3
1
1 1
1 1
0
0 1
1




1/2
1 
1/2 0 0
1
2/3
0
1/2
1/2
1
0 1/4 0 1
1
= I 1/2
0 1/3
1
1 1
1 1
0
0 1
1


1/4 1/8 0
1
1/8 0 1
= 1/4
0
0 0
1

1/8

= 1/8
0
Calculamos tambm

Determinamos

Pr
el

1/2 0 0
1/8
1/16
d = Dcp = 0 1/4 0 1/8 = 1/32
0
0 1
0
0

xj
1/4
= 8.
= min : dj < 0 =
jn
dj
1/32

x 0 = x + d

1/2
1/16
= 1/4 + (8) 1/32
1
0

1/2
1/2
= 1/4 + 1/4
1
0

1/2 + /2
= 1/4 /4
1

Ve
r

O novo ponto ser

Se fizermos = 0.95, teremos

0.5 + 0.95
0.975
x 0 = 0.25 0.2375 = 0.0125
1
1

notas de aula verso 64 - Jernimo C. Pellegrini

108

CAPTULO 6. OUTROS MTODOS

A nova soluo vivel: alm de ser positiva,


E seu valor

in
ar

cT x 0 = 0.975 + 0.0125 + 1 = 1.19875,


maior que o que tnhamos antes (1.75, conforme a equao 6.1).
Continuamos at que a norma de cp seja suficientemente pequena (por
exemplo, menor que 0.001).
J
Descrevemos a seguir o algoritmo em pseudocdigo.

Pr
el

im

repita :
D diag(x)
P I DAT [AD2 AT ]1 AD2 c
se ||cp || <
PARE -- solu o suficientemente boa
d D.cp
se di < 0 para todo i
PARE -- problema ilimitado


x
minj djj : dj < 0
x x + d

6.2.2

Mtodos de barreira

Notas

Ve
r

Descries do algoritmo do elipsoide podem ser encontradas nos livros de


Griva, Nash e Sofer [GNS09] e de Papadimitriou e Steiglitz [PS98], que discutem inclusive a representao computacional (o algoritmo calcula razes
quadradas, sendo necessrio representar irracionais).
O algoritmo usando affine scaling apresentado neste texto uma simplificao do algoritmo de Karmarkar, elaborado por Narendra Karmarkar [Kar84].

Exerccios
Ex. 44 Mostre como obter uma soluo vivel inicial para o algoritmo
affine scaling.

Ex. 45 O algoritmo affine scaling poderia ser usado em um problema


de otimizao com funo objetivo no-linear, j que s precisa do vetor

notas de aula verso 64 - Jernimo C. Pellegrini

6.2. PONTOS INTERIORES

109

gradiente do obejtivo. Determine que funes no-lineares poderiam ser


otimizadas por este algoritmo.

Ve
r

Pr
el

im

in
ar

Ex. 46 Implemente o algoritmo affine scaling.

notas de aula verso 64 - Jernimo C. Pellegrini

CAPTULO 6. OUTROS MTODOS

Ve
r

Pr
el

im

in
ar

110

Parte II

im

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Ve
r

Pr
el

Aplicaes

111

Ve
r

Pr
el

im

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Captulo 7

im

Problemas de Transporte

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Pr
el

Neste Captulo abandonamos o uso da conveno de notao dos Captulos anteriores, onde usvamos b, c, m e n sempre com o mesmo significado.
Temos m fontes e n destinos; a produo da i-sima fonte ai e a demanda do j-simo destino bj . O custo para levar cada unidade de ai at
bj cij . A oferta total (somando a oferta de cada fonte) igual demanda
total. O problema consiste em conseguir enviar toda a produo, satisfazendo toda a demanda, mas minimizando o custo total.
A oferta total igual demanda total, portanto temos
X
X
ai =
bj
j

O problema ento

XX

min

Ve
r

s.a. :

cij xij

xij = ai ( i m)

xij = bj ( j n)

(7.1)

Exemplo 7.1. Suponha que tenhamos as fontes e destinos a seguir, com as


respectivas ofertas e demandas:
a1 = 4 b1 = 12
a2 = 10 b2 = 8
a3 = 6
113

notas de aula verso 64 - Jernimo C. Pellegrini

114

CAPTULO 7. PROBLEMAS DE TRANSPORTE

O custos de transporte so

in
ar

4 7
9 5
5 4
Modelamos este problema como

s.a. : x11 + x12 = 4


x21 + x22 = 10
x31 + x32 = 6

im

min 4x11 + 7x12 + 9x21 + 5x22 + 5x31 + 4x32

x11 + x21 + x31 = 12

Pr
el

x12 + x22 + x32 = 8

x 0,

ou como min cT x, Ax = b, com

x11
x12

x21

x=
x22 ,

x31
x32


4
7

9

c=
5

5
4,

Ve
r

1
0

A=
0
1
0

1
0
0
0
1

0
1
0
1
0

0
1
0
0
1

0
0
1
1
0

0
0

1
,
0
1


4
10

b=
6 .
12
8

Ao escrevermos o problema na forma matricial, observamos que a ma-

notas de aula verso 64 - Jernimo C. Pellegrini

115
triz das restries tem a seguinte estrutura:

x21 + . . . + x2n

..

= a1
= a2

xm1 + . . . + xmn
x11

+x21
x12

..

+x22
.

..

= am
= b1
= b2
..
.

x2n . . . xmn = bn
(7.2)

im

x1n

in
ar

x11 + . . . + x1n

Ou seja,
T
1

A=

Pr
el

1T

T
1
I I
..

A matriz do exemplo 7.1, por exemplo,


1
0
0
0
1

1
0

A=
0
1
0

0
1
0
1
0

0
1
0
0
1

0
0
1
1
0

0
0

0
1

Ve
r

Qualquer problema que possa ser descrito dessa forma chamado de problema de transporte. Mostramos agora que todo problema de transporte
tem soluo tima, porque todos tem soluo vivel e todos so limitados.

Teorema 7.2. Todo problema de transporte tem uma soluo vivel.


Demonstrao. Seja X a demanda total (igual oferta total). Ento xij =

notas de aula verso 64 - Jernimo C. Pellegrini

116
vivel, j que

X
j

xij =

X ai bj

X
X
ai
=
bj
X
j

ai
= X
X
= ai ,
P

i xij

= bj .

im

e semelhantemente para

in
ar

ai b j
X

CAPTULO 7. PROBLEMAS DE TRANSPORTE

Exemplo 7.3. No exemplo 7.1, temos X = 20, e uma soluo vivel


x11 = a1 b1 /20 = 12/5
x12 = a1 b2 /20 = 8/5

Pr
el

x21 = a2 b1 /20 = 6
x22 = a2 b2 /20 = 4

x31 = a3 b1 /20 = 18/5

x32 = a3 b2 /20 = 12/5.

Teorema 7.4. Todo problema de transporte limitado.

Demonstrao. Como cada xij limitado por ai e bj , o problema tambm limitado.




A seguir mostramos alguns outros Teoremas a respeito de problemas


de transporte.
Teorema 7.5. A matriz A de um problema de transporte, da maneira como
descrita anteriormente, tem posto m + n 1.

Ve
r

Demonstrao. Como a soma das primeiras m linhas igual soma das


outras n linhas, claramente o posto no pode ser m+n (podemos escrever
uma das linhas como combinao linear das outras).
Mostramos agora que retirando uma das linhas, o conjunto torna-se linearmente independente e que o posto de A deve ser m + n 1. Denotamos
P as linhas por li quando representam uma das m restries do
tipo j xij = ai (que convencionamos posicionar na parte superior da
matriz) e por Lj quando representam uma das outras n restries do tipo
P
i xij = bj .

notas de aula verso 64 - Jernimo C. Pellegrini

7.1. SOLUO BSICA INICIAL

117

Suponha, sem perda de generalidade, que retiramos a linha Ln da matriz (a ltima). Agora suponha, por absurdo, que ainda h uma combinao
linear das linhas, com nem todos os coeficientes nulos, igual a zero:

in
ar

1 l1 + 2 l2 + . . . + m lm + 1 L1 + 2 L2 + . . . + n1 Ln1 = 0

Pr
el

im

Voltamos a ateno para a parte superior da matriz veja (7.2). Cada xin
s aparece na linha li (de fato, x1n s aparece na linha l1 , uma vez que no
estamos utilizando a linha Ln ), e a nica maneira de termos a combinao
linear igual a zero ter o coeficiente i = 0 (de outra forma teramos i xik
no somatrio). Como isso vale para todo i, ento todos os i devem ser
zero.
Como os coeficientes k so zero, nos interessam os coeficientes j .
Mas na parte inferior da matriz, cada xlj aparece uma nica vez, e portanto
precisamos tambm que todos os j sejam zero.
Assim, a nica combinao linear que resulta em zero com i = 0 e
j = 0, i, j portanto as m + n 1 linhas so linearmente independentes
e o posto da matriz de restries m + n 1.

Observe que isto significa que durante a execuo do mtodo Simplex
teramos tambm m + n 1 variveis bsicas.

7.1

Soluo bsica inicial

a b

Ve
r

A soluo vivel que determinamos anteriormente, xij = iX j , no bsica. Nesta seo tratamos de como obter uma soluo vivel inicial que
tambm seja bsica.
Podemos representar o sistema como uma tabela com m
P linhas e n
colunas, onde cada linha da tabela correspondeP
a uma linha j xij = ai e
cada coluna da tabela corresponde a uma linha i xij bj .
x11
x21
..
.

x12
x22

. . . x1n
x2n

a1
a2
..
.

(7.3)

xm1 xm2
xmn am
b1
b2
. . . bn

A regra do canto noroeste permite obter uma soluo vivel bsica inicial.
O algoritmo comea com a clula no canto superior esquerdo. Alocamos tanto quanto puder (isso significa que estamos determinando quanto
da fonte a1 vai para o destino b1 ), sem violar a viabilidade da soluo. Se

notas de aula verso 64 - Jernimo C. Pellegrini

118

CAPTULO 7. PROBLEMAS DE TRANSPORTE

in
ar

h oferta sobrando, passamos para uma clula para a direita (porque j


saturamos a capacidade de b1 ). Seno, vamos para a de baixo (porque a
capacidade de a1 foi completamente usada). Se no sobrou oferta ou demanda, vamos para uma clula para baixo e uma para a direita. Repetimos
enquanto for possvel mover-se para as clulas de baixo ou da esquerda.
Exemplo 7.6. Considere um problema de transporte com a e b mostrados
a seguir.

im


a = 22 4 17

b = 9 27 7

Pr
el

Comeamos montando uma tabela 3 3 representando as variveis xij .


Alocamos o mximo que podemos em x11 : como a1 = 22 e b1 = 9, alocamos 9 e movemos para a direita. Ainda faltam 13 unidades de a1 para
alocar. Como b2 = 27, terminamos alocando todas as 13 em a12 .

bj

13

27

ai
22
4
17

Ve
r

Continuamos agora descendo para a linha debaixo, mas ainda na coluna


2. a2 = 4 e ainda sobram 14 da demanda de b2 , portanto alocamos todos
os 4 e movemos novamente para a linha debaixo (ainda podemos alocar
10 em b2 . Das 17 unidades de a3 , 10 podem ser enviadas para b2 . As outras
7 vo para b3 . A tabela final mostrada a seguir.
9

bj

13
4
10
27

7
7

ai
22
4
17

Temos agora uma soluo vivel bsica: as somas das linhas resultam nos
ai , e as somas das colunas resultam nos bj . As variveis bsicas so x11 = 9,
x12 = 13, x21 = 4, x32 = 10, e x33 = 7. Todos os outros xij ficam fora da base
e valem zero.
J
H mtodos diferentes para obter solues viveis bsicas.

notas de aula verso 64 - Jernimo C. Pellegrini

7.2. SOLUO INTEIRA

7.2

119

Soluo inteira

in
ar

O ltimo Teorema desta seo importante porque identifica os problemas de transporte como uma classe de problemas para as quais podemos
obter solues inteiras de forma eficiente (isto relevante porque de maneira geral, obter solues inteiras para problemas de otimizao linear
difcil veja o Captulo 11).
Uma matriz A triangular se puder ter suas linhas reordenadas de
forma que aij = 0 sempre que i > j.
Teorema 7.7. A base para um problema de transporte triangular.

Pr
el

im

Demonstrao. Considere a tabela de transporte (7.3). Ela mostra claramente a soluo vivel bsica que estivermos trabalhando, portanto podemos us-la para representar uma base.
Suponha que tenhamos alocado valores em um conjunto de clulas,
obtendo uma soluo vivel bsica.
Mostraremos que cada linha ou coluna tem o valor de exatamente uma
varivel bsica: primeiro mostramos que deve haver pelo menos uma varivel bsica em cada linha/coluna, e depois argumentamos que deve haver ao menos uma linha ou coluna onde no h mais que uma varivel
bsica alocada e que o resultado deve valer para o sistema que resulta
de sua remoo.
Primeiro, notamos que no h linha ou coluna sem varivel bsica (ou
seja, sem clula alocada), porque os ai e bj so positivos.
Suponha, por absurdo, que cada linha e cada coluna tenham pelo menos duas variveis bsicas alocadas. O nmero de variveis bsicas ento

k 2m
k 2n.

Ve
r

E portanto k m + n mas temos somente m + n 1 variveis bsicas


(porque este o posto da matriz de restries). Assim, existe ao menos
uma linha ou coluna onde h somente uma varivel bsica alocada. Se
removermos esta linha ou coluna, obteremos um sistema reduzido e o
argumento pode ser repetido.
Como podemos obter os valores de cada varivel bsica, uma a uma,
neste processo, por simples substituio, conclumos que a matriz triangular.

Alm do fato da base ser triangular, os coeficientes nela so unitrios,
e disso conclumos o Teorema a seguir.

notas de aula verso 64 - Jernimo C. Pellegrini

120

CAPTULO 7. PROBLEMAS DE TRANSPORTE

Teorema 7.8. Quando todos os ai e bj so inteiros, os valores das variveis


bsicas para qualquer base sero tambm inteiros.

Algoritmo para soluo do problema de transporte

in
ar

7.3

O mtodo Simplex revisado pode ser adaptado para explorar o fato da base
ser triangular.
O dual do problema de transporte descrito em (7.1)
X
im

ai u i +

bj vj

im

max

jn

s.a. : ui + vj cij
u Rm

Pr
el

v Rn

Note que o vetor objetivo no dual foi particionado, para refletir mais claramente a estrutura do problema. As variveis do dual so os ui (associados
s linhas superiores da matriz de restries do primal) e os vj (associados s
linhas inferiores). As variveis do dual so, como j vimos anteriormente,
os coeficientes reduzidos de custo do primal.
Considere (7.2). Se xij bsica, ento a coluna correspondente em A
ter exatamente duas entradas +1: uma na linha i e uma na linha j.
ui + vj = cij

Ve
r

Ou seja, os coeficientes reduzidos de custo so ui + vj cij .


Se cij ui vj < 0, podemos melhorar a soluo aumentando o valor
da varivel no bsica que viola o critrio de otimalidade. Suponha que
esta seja xpq , e que cpq up vq < 0. Aumentamos xpq em uma quantidade . Com isso a soluo torna-se invivel, j que as somas de linhas e
colunas devem ser iguais aos ai e bj . Alguma varivel na mesma linha ou
na mesma coluna que xpq deve ser reduzida em . Mas suponha que tenhamos retirado de uma varivel na mesma linha que xpq . Agora haver
uma outra coluna onde falta . Modificamos esta coluna, e assim sucessivamente at que tenhamos chegado novamente linha p, formando um
ciclo.

notas de aula verso 64 - Jernimo C. Pellegrini

7.4. BASES DEGENERADAS

121

7.4

im

in
ar

encontre uma solu o vi vel b sica x


repita :
resolva cij ui vj = 0 para i, j na base , fixando u1 = 0
calcule cij0 = cij ui vj para i, j fora da base
se cij0 < 0 para algum par (i, j)
seja (p, q) a posi o com menor cij0
aumente xpq , corrigindo a viabilidade fechando o ciclo
uma vari vel deixar a base
senao PARE -- solu o tima

Bases degeneradas

7.5

Pr
el

possvel, durante a execuo do algoritmo para problemas de transporte,


encontrar bases degeneradas. Se isto acontecer, podemos usar o mtodo
da perturbao: quando uma varivel com valor zero entra na base, modificamos seu valor para algum > 0, suficientemente pequeno. Quando
a varivel sair da base, mudamos novamente seu valor para zero.

O problema de atribuio

Ve
r

Suponha que h n pessoas disponveis para realizar n trabalhos. Cada pessoa se adequa de maneira diferente a trabalhos diferentes, portanto h um
custo cij para atribuir a j-sima tarefa i-sima pessoa. Queremos designar cada pessoa para um trabalho, minimizando o custo total. Este o
problema da atribuio (ou da designao ou ainda, problema de emparelhamento de custo mnimo) que pode ser modelado como programa
linear da seguinte maneira.
X
min
cij xij
s.a.:

i,j
n
X

xij = 1 i n

j
n
X

xij = 1 j n

xij 0

O problema da atribuio claramente um caso especial de problema de


transporte.

notas de aula verso 64 - Jernimo C. Pellegrini

122

CAPTULO 7. PROBLEMAS DE TRANSPORTE

Teorema 7.9. Seja x uma soluo vivel bsica para um problema de designao. Ento as variveis bsicas em x tem valor zero ou um.

in
ar

Demonstrao. A soluo inteira por se tratar de um problema de transporte; e composta de zeros e uns porque o lado direito das restries
um e os xij no podem ser negativos.


O algoritmo para problemas de transporte descrito anteriormente neste


Captulo no a melhor opo para problemas de atribuio, porque neste
tipo de problema as solues so naturalmente degeneradas (cada xij
igual a zero ou um). H um algoritmo melhor, chamado de mtodo Hngaro.

im

Teorema 7.10. Se uma constante for somada a uma das linhas ou colunas da matriz de custos de um problema de designao, a soluo tima
permanece a mesma.

Pr
el

Demonstrao. Demonstramos o fato para linhas, sendo que para colunas


o desenvolvimento semelhante.
Seja C a matriz de custos do problema original com valor timo z. Somamos a uma linha de C, obtendo a matriz C 0 . Ao calcularmos o valor
timo, a nica mudana ser na linha i, onde teremos
(ci1 + )xi1 + (ci2 + )xi2 + . . . = ci1 xi1 + xi1 + ci1 xi2 + xi2 + . . .
X
= ci1 xi1 + ci1 xi2 + . . . +
xij

=z+

xij

= z + .

Ve
r

O ltimo passo segue de j xij = 1.


Como o valor objetivo apenas aumentado por uma constante para
qualquer soluo, a soluo tima permanece a mesma.

subtraia o m nimo de cada linha de todos elementos da linha
subtraia o m nimo de cada coluna de todos elementos da coluna
repita :
cubra os zeros com o menor n mero de tra os
se L = n PARE
seja x a menor quantidade n o coberta pelos tra os
subtraia x das linhas n o cobertas
some x s colunas cobertas

notas de aula verso 64 - Jernimo C. Pellegrini

7.5. O PROBLEMA DE ATRIBUIO

123

Notas

in
ar

O mtodo Hngaro foi desenvolvido por Kuhn [Kuh55] a partir do trabalho


dos matemticos Hngaros Egervry e Knig.
O livro de Mokhtar Bazaraa e John Jarvis [BJ77] trata de programao
linear relacionada a problemas em redes.

Exerccios

im

Ex. 47 Use a regra do canto noroeste para obter solues viveis bsicas
iniciais para os problemas de transporte a seguir.


a) a = 100 100 200 , b = 50 300 50


b) a = 3 4 5 6 1 , b = 6 2 2 7 2


c) a = 10 10 20 20 30 , b = 15 15 40 4 16

Pr
el

Ex. 48 Resolva o problema de transporte a seguir usando o algoritmo


elaborado neste Captulo.

a = 10 21 7 27

b = 10 50 5

3 2 4 5
C = 4 3 3 2
2 5 5 1

Ve
r

Ex. 49 Aplique o algoritmo de transporte no seguinte problema. H trs


origens, com oferta igual a 20, 50 e 10; quatro destinos, com demandas 30,
5, 15 e 35. Os custos so dados abaixo.
b1
b2
b3
b4

a1 a2 a3
1 3 2
3 2 1
2 1 3
1 3 2

Ex. 50 Implemente o algoritmo descrito neste Captulo para problemas


de transporte.

Ex. 51 O Teorema 7.5 pode ser mostrado extraindo de A uma matriz


quadrada de ordem m + n 1 e observando seu determinante. Elabore
esta demonstrao.

notas de aula verso 64 - Jernimo C. Pellegrini

124

CAPTULO 7. PROBLEMAS DE TRANSPORTE

Ex. 52 Prove que a regra do canto noroeste sempre resulta em uma soluo vivel bsica.

in
ar

Ex. 53 Mencionamos que o Teorema 7.8 consequncia da base ser triangular e ter coeficientes unitrios, mas no mostramos que os coeficientes so de fato sempre unitrios. Elabore a demonstrao.

im

Ex. 54 Dissemos que possvel contornar o problema de bases degeneradas usando o mtodo da perturbao (transformando zeros em > 0
em variveis bsicas). Se, ao invs disso, nada fizermos de especial em relao a solues degeneradas, haveria a possibilidade do algoritmo entrar
em um loop infinito ou ele poderia apenas ficar mais lento?
Ex. 55 Mostre como transformar um problema de transporte com alguns custos negativos em outro com todos os custos positivos.

Pr
el

Ex. 56 Se todos os valores que definem um problema de transporte forem inteiros, a soluo do dual tambm ser, em todas as etapas do algoritmo?
Ex. 57 MostrePcomo P
transformar um problema de transporte no balanceado (com ai 6=
bj ) em um problema de transporte balanceado
equivalente.

Ex. 58 Considere um problema de transporte com uma restrio adicional: cada fonte no pode mandar toda sua produo para um nico
destino (a produo de cada fonte deve ser dividida em pelo menos dois
destinos). Formule este problema. Tente mostrar como usar o algoritmo
elaborado neste Captulo para problemas de transporte pode ser usado
para esta variante do problema, adaptando o algoritmo ou formulando o
problema como um problema de transporte comum.

Ve
r

Ex. 59 Explique brevemente o significado do dual de um problema de


transporte: o que so as variveis e que significam as restries? E os coeficientes de cada varivel no objetivo?

Captulo 8

im

Teoria dos Jogos

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

8.1

Pr
el

O objeto de estudo da Teoria dos Jogos so situaes envolvendo conflito


de interesse entre diversas partes.

Jogos de soma zero

Ve
r

Uma categoria importante de jogo a dos jogos de soma zero


Um jogo dito de soma zero se o pagamento de um jogador sempre
implica em perda da mesma quantidade pelos outros jogadores, de tal maneira que ao somarmos o saldo de todos os jogadores ao final do jogo, obteremos zero (presumindo, claro, que o saldo inicial de cada um tambm
era zero). Como exemplos de jogos de soma zero temos diversos jogos recreativos entre duas pessoas, como xadrez, damas, pquer e outros jogos
semelhantes.
Os jogos de soma zero no tem, no entanto, sua relevncia limitada
a jogos recreativos diversas situaes diferentes podem ser modeladas
como jogos de soma zero.
Descrevemos um jogo de soma zero com dois participantes por uma
matriz de pagamentos: as linhas representam as possveis estratgias do
jogador A e as colunas representam as possveis estratgias do jogador B.
A posio i, j da matriz descreve o quanto o jogador A recebe (e consequentemente quanto B paga) quando A escolhe a estratgia i e B escolhe
a estratgia j.
Em uma verso simples de jogo com soma zero, os dois jogadores no
se comunicam, conhecem a matriz de pagamentos, e cada um escolhe sua
estratgia sem conhecimento da estratgia do oponente. Aps a escolha
das estratgias, os jogadores recebem ou pagam, de acordo com o resul125

notas de aula verso 64 - Jernimo C. Pellegrini

126

CAPTULO 8. TEORIA DOS JOGOS

im

preto branco
preto
+1
1
branco
1
+1

in
ar

tado.
O jogo a seguir nos d um primeiro exemplo. O jogador A e o jogador
B devem escolher entre duas cores preto e branco em cada rodada.
Quando as cores coincidem, o jogador A ganha. Quando no coincidem, o
jogador B ganha. A matriz de pagamentos mostrada a seguir. Chamamos
o jogador A de jogador linha, porque suas opes esto esquerda, uma
por linha. O jogador B o jogador coluna, porque suas escolhas esto
acima, uma por coluna.

Um exemplo mais elaborado dado a seguir. O jogador A tem quatro opes de estratgia, e o jogador b tem trs.

Pr
el

b1 b2 b3 min
a1 2
4 8
2
a2
1
3 4
1
a3 3 6 5
6
a4 1
3 2
1

O menor valor em cada linha o menor valor que resulta daquela estratgia e portanto f(i) = minj cij representa o valor mnimo assegurado pela
estratgia i. A estratgia a1 garante retorno de no mnimo 2; a2 garante
retorno mnimo de 1; e assim por diante. Jogando de forma pessimista, o
jogador A claramente quer o maior dos retornos mnimos ou seja,
arg max min aij .
i

Ve
r

A estratgia a2 a que garante o maior retorno mnimo para A. O menor valor que o jogador-linha pode garantir para si, ento, maxi minj aij ,
chamado de valor maxinmin. Presumindo que A sempre usar a mesma
estratgia, sua melhor opo escolher sempre a estratgia a2 .
O jogador B realiza a mesma anlise, e escolhe sua estratgia, mini maxj aij
garantindo um retorno mnimo que chamaremos de valor minimax:
b1 b2 b3 min
a1 2
4 8
2
a2
1
3 4
1
a3 3 6 5
6
a4 1
3 2
1
max
1
4 8

notas de aula verso 64 - Jernimo C. Pellegrini

8.2. ESTRATGIA MISTA

127

Presumimos tambm que B escolher uma nica estratgia, que neste


exemplo deve ser b1 , que minimiza sua perda.

Estratgia mista

in
ar

8.2

Formulao como programa linear

Pr
el

8.2.1

im

Quando o valor maximin diferente do valor minimax, os dois jogadores


devem ter como aproximar seus nveis de segurana como h um espao
entre os nveis de segurana de cada jogador, podemos imaginar que deveria ser possvel a ambos garantir retorno melhor. Isso no possvel, no
entanto, usando estratgia fixa.
Se o jogador A usar estratgias diferentes e maneira previsvel, o jogador B poder usar esta informao e obter vantagem sobre A. Idealmente,
ento, A deve escolher sua estratgia aleatoriamente, mas com uma distribuio de probabilidades determinada e a distribuio tima chamada
de estratgia mista tima.

Seja xi a probabilidade de uso da estratgia i por A e yj a probabilidade de


uso da estratgia j por B. A esperana de retorno de A
XX
xi cij yj = yT Cx
i

Presumimos que B queira minimizar este valor, escolhendo a estratgia y


tal que
min yT Cx
y

O jogador A, j supondo que esta ser a estratgia de B, pretende escolher


a estratgia x que maximize este valor:
max min yT Cx
x

Ve
r

Para formular este problema como um programa linear, observamos que


a estratgia de A ser tal que, para qualquer estratgia escolhida por B, A
ter retorno de no mnimo v e ento temos, para cada coluna,
X
cij xi v
j

E maximizamos x. Alm disso precisamos da restrio adicional


uma vez que x representa uma distribuio de probabilidades.

xi = 1,

notas de aula verso 64 - Jernimo C. Pellegrini

128

CAPTULO 8. TEORIA DOS JOGOS

max v
s.a. : CT x v
X
xi = 1
x0

in
ar

Assim, se o jogo descrito por uma matriz de pagamentos C, a estratgia mista tima para o jogador linha dada pela soluo do programa
linear a seguir.

Pr
el

im

O dual deste programa linear o problema equivalente para o jogador B


(veja o Exerccio 63).
Como exemplo, considere o jogo definido pela matriz de pagamentos
a seguir.
1
2
3
4
1 500 600
500
0
2
600
500 700 400

As estratgia tima para o jogador linha pode ser obtida a partir do programa linear a seguir.
max v

s.a. : 500x1 + 600x2 v


600x1 + 500x2 v

500x1 700x2 v
400x2 v

x1 + x2 = 1
x0
vR

Ve
r

Note que a varivel v livre (queremos permitir valores negativos para v).
A soluo tima para este programa linear
x = 0.6 0.4

T

com valor timo v = 160. Isto significa que a estratgia tima para o
jogador linha usar a estratgia 1 com probabilidade 0.6 e a estratgia 2
com probabilidade 0.4.
O dual do programa linear define a estratgia tima para o adversrio (jogador coluna), portanto podemos simplesmente usar os coeficientes

notas de aula verso 64 - Jernimo C. Pellegrini

8.2. ESTRATGIA MISTA

129

reduzidos de custo para obter sua estratgia tima. Neste exemplo, temos
T
y = 0 0.2666 0 0.7333

in
ar

e evidentemente, o valor timo para o jogador coluna +160.


Teorema 8.1 (Minimax). Em um jogo de soma zero com dois participantes, sempre existem um valor v e estratgias mistas x, y que garantem o
retorno esperado de v para um dos jogadores e v para o outro.

Pr
el

im

Demonstrao. O programa linear que representa o problema de A vivel,


P porque x = (1, 0, . . . , 0) soluo; alm disso, limitado (a restrio
x = 1 nos garante isso). Assim, de acordo com o Corolrio 4.15 tanto
este programa linear como seu dual tem soluo tima.
O programa linear correspondente ao problema de otimizao para o
jogador A o dual daquele correspondente ao problema do jogador B. O
valor timo para os dois programas lineares o mesmo, e com isso a prova
est concluda.


Notas

John von Neumann e Oskar Morgenstern publicaram em 1944 o livro Theory of Games and Economic Behavior [NM07], onde desenvolvem sistematicamente a Teoria dos Jogos, inclusive o Teorema minimax e a Teoria
da Utilidade.
H diversos outras categorias de jogos alm dos que descrevemos neste
Captulo, com duas pessoas e soma zero. Apenas como exemplo, jogos podem ser classificados de acordo com os seguintes critrios, dentre outros.

o resultado das aes pode ser perfeitamente determinado; probabilstico; ou indeterminado (h um conjunto de possveis resultados
para cada estratgia, mas no se conhece probabilidades sobre eles).

Ve
r

pode-se ter um s jogador (em um jogo contra a natureza) ou diversos jogadores


h jogos com informao imperfeita, onde a informao a respeito
dos movimentos anteriores no completo
quanto aos pagamentos, alm de soma zero h jogos com soma constante e jogos com soma varivel.

Uma exposio mais ampla da Teoria dos Jogos pode ser encontrada
no livro de Martin Osborne e Ariel Rubinstein [OR94] ou, em uma segunda
leitura, no livro de Drew Fudenberg e Jean Tirole [FT91].

notas de aula verso 64 - Jernimo C. Pellegrini

130

CAPTULO 8. TEORIA DOS JOGOS

Exerccios
Ex. 60 seria possvel caracterizar o jogo de par-ou-mpar como jogo de
soma zero? Se no for possvel, o que deveria ser modificado?

im

in
ar

Ex. 61 Sabemos que no jogo-da-velha, aps os dois jogadores escolherem suas primeiras jogadas (o primeiro X e o primeiro O), o resultado do
jogo j estar determinado, se nenhum deles cometer nenhum erro dali
para a frente. Mostre a matriz de pagamentos para este jogo, levando em
considerao apenas a primeira escolha de cada um dos jogadores, e presumindo que esta jogada inicial feita simultaneamente pelos dois jogadores (sem que um saiba a jogada do outro).

Pr
el

Ex. 62 No jogo de palitinho (ou porrinha1 ), dois jogadores tem sua


disposio trs palitos para cada um. Cada jogador pe as mos atrs do
corpo e esconde zero, um, dois ou trs palitos em uma das mos, e depois que cada jogador escondeu seus palitos, ambos do seus palpites a
respeito da quantidade total de palitos que existe em suas mos (que ser
um nmero entre zero e seis). Ambos abrem as mos e o jogador que tiver
acertado o palpite ganha. Normalmente um jogador d o primeiro palpite
e o outro d seu palpite em seguida. Supondo que ambos dessem seus
palpites sem conhecer o palpite do outro, como seria a matriz de pagamentos do jogo?

Ve
r

Ex. 63 Verifique que o dual do programa linear que define a estratgia


de um jogador em um jogo de soma zero o programa linear que define
a estratgia de seu oponente.

1
Muito provavelmente derivado do jogo romano morra, onde os jogadores usam os
dedos das mos ao invs de palitos.

Captulo 9

im

Controle Discreto

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

9.1

Pr
el

Este Captulo trata de problemas de controle em tempo discreto um problema que pode ser naturalmente modelado como programa linear. Uma
vez que o problema tambm pode ser resolvido usando a tcnica de programao dinmica, esta tambm explorada. Em algumas reas da Matemtica Aplicada, controle discreto e programao dinmica so tratados
como um s tpico.

Programao Dinmica

Ve
r

Programao Dinmica o nome de uma tcnica geral de resoluo de


problemas. Iniciamos com um subproblema pequeno, achamos a soluo
tima para esta subproblema e depois a usamos para construir solues
para subproblemas maiores.
Considere a seguinte situao: temos diversos itens, x1 , x2 , . . . , xn cada
um com um peso w1 , . . . , wn e um valor v1 , . . . , vn . Temos uma mochila com
capacidade C e queremos incluir na mochila itens que maximizem o valor,
sem exceder a capacidade da mochila.
O problema da mochila pode ser formulado como um programa linear:
max vT x
s.a : wT x C

Esta formulao s faz sentido, no entanto, se os diversos itens puderem


ser fracionados. Se exigirmos que as quantidades sejam inteiras teremos
um problema de programao inteira.
Denotamos por mi,k o valor que podemos incluir em uma mochila de
capacidade k usando somente os i primeiros itens (e claramente, mi,0 = 0
131

notas de aula verso 64 - Jernimo C. Pellegrini

132

CAPTULO 9. CONTROLE DISCRETO

in
ar

para qualquer i).


Se sabemos o valor mximo que conseguimos acomodar na mochila
usando apenas os i 1 primeiros itens, podemos calcular o valor mximo
usando tambm o i-simo item. Se o novo item cabe em alguma das
solues timas para capacidade k anteriores, temos uma nova soluo.
A seguinte equao recursiva expressa este mtodo.
mi,k = max {mi1,k , mi1,kwi + vi }

im

Comeamos com mi,0 = m0,k = 0, para todo i e k. Os valores para os mi,j


podem ser obtidos por programao dinmica, e o valor timo mn,C . O
algoritmo para determinar mn,C mostrado a seguir.

Pr
el

mochila (v, w, C):


mi,0 0
m0,k 0
para i de 1 a n:
para k de 1 a C:
se wi k: // item i cabe
mi,k max {mi1,k , mi1,kwi + vi }
sen o :
mi,k mi1,k
retorne mn,C

O algoritmo tem complexidade de tempo O(nC). O tamanho de C


codificado em bits, portanto a complexidade O(2k ), onde k o nmero
de bits usado para representar C.

Exemplo 9.1. Suponha que os pesos, valores e a capacidade sejam w, v e


C dados a seguir.

w= 3 1 4 2

v= 4 3 8 2
C =8

Ve
r

A tabela com os mi,k mostra o valor timo de 15.


0 1 2 3 4 5 6 7 8
0 0 0 0 0 0 0 0 0 0
1 0 0 0 4 4 4 4 4 4
2 0 3 3 4 7 7 7 7 7
3 0 3 3 4 8 11 11 12 15
4 0 3 3 4 8 11 11 12 15
J

notas de aula verso 64 - Jernimo C. Pellegrini

9.2. PROCESSO MARKOVIANO DE DECISO

9.1.1

133

Aplicabilidade do Algoritmo

A tcnica de programao dinmica interessante quando o problema a


ser resolvido apresenta as duas caractersticas a seguir.

in
ar

Subestrutura tima: uma soluo tima para o problema pode ser


construda a partir de solues timas para subproblemas. No exemplo do problema da mochila, os subproblemas consistiam em maximizar o valor dos itens que poderamos acomodar em mochilas
menores.

9.2

Pr
el

im

Subproblemas no completamente isolados: uma soluo para um


subproblema pode ser usada mais de uma vez, porque h diferentes
subproblemas maiores que a usam. No exemplo da mochila, aps
calcularmos o valor mximo para uma mochila de tamanho 3, usamos este dado na construo das solues para mochilas de tamanho 4, 5, etc.

Processo Markoviano de Deciso

Ve
r

H problemas de otimizao que podem ser formulados como programas


lineares, mas que tambm podem ser resolvidos por programao dinmica. No restante deste Captulo analisamos os processos Markovianos de
deciso.
O seguinte problema frequentemente usado para ilustrar o conceito
de processo Markoviano de deciso: um empresrio produz um nico tipo
de produto. O empresrio deve, todo ms, verificar seu estoque e decidir
quantas unidades adicionais deve encomendar para a fbrica, sabendo,
alm da quantidade que tem em estoque, a probabilidade de que cada
unidade seja vendida, e o custo de armazenamento por unidade. O empresrio quer maximizar o lucro nos prximos meses.
O estoque no comeo do ms t st , que chamamos de estado do sistema. A quantidade de unidades encomendada at . A quantidade de
pedidos aleatria (com distribuio conhecida), e a denotamos por dt .
Ento
st+1 = max {0, st + at dt }
O empresrio poder pedir mais ou menos unidades, dependendo do estoque. O problema descrito envolve um sistema com estado interno. O estado do sistema muda de forma probabilstica a cada intervalo de tempo,
dependendo de aes escolhidas e o que se quer a reduo do custo ao

notas de aula verso 64 - Jernimo C. Pellegrini

134

CAPTULO 9. CONTROLE DISCRETO

longo do tempo (a minimizao de uma funo). Esta uma instncia de


um problema mais geral, chamado de processo Markoviano de deciso.

poltica

s (novo estado)

a (ao executada)

in
ar

ambiente

Pr
el

im

Definio 9.2 (Processo Markoviano de Deciso). Um processo Markoviano de deciso consiste de um sistema com estado interno, um agente
controlador, uma funo de transio para o prximo estado e uma funo que d a recompensa para cada estado. Define-se o processo Markoviano de deciso, ento, por (S, A, T, R), onde S o conjunto de possveis estados do sistema; A o conjunto de possveis aes (ou controles);
T : S A S [0, 1] a funo de transio: T (s, a, s 0 ) d a probabilidade
do sistema passar ao estado s 0 dado que estava no estado s e a ao a foi
executada; R : S R a funo recompensa: R(s) a recompensa por
estar no estado s.
Tambm se deve associar ao problema um horizonte h, que consiste no
nmero de decises a serem tomadas e um critrio de otimalidade, que
determina o que se quer otimizar ao longo das pocas de deciso.


Ve
r

Este processo de decises em sequncia chamado de Markoviano


porque a deciso tomada em um dado momento depende apenas do estado do sistema naquele momento, e no das decises ou estados anteriores esta a propriedade de Markov.
Ao definirmos um critrio de otimalidade, definimos um valor para
cada estado s em cada poca de deciso k, que denotamos vk (s), de forma
que em cada deciso a melhor ao aquela que maximiza o critrio de
otimalidade. Por exemplo, podemos
decidir maximizar a recompensa
P
P mdia nas pocas de deciso (1/z t Vt (s)) ou a recompensa total, t Vt (s),
e neste ltimo caso os valores de cada estado sero timos quando

Vt (s) = max R(s) +
aA


T (s, a, s 0 )Vt+1 (s 0 )

s 0 S

Note que esta equao pode ser usada diretamente na elaborao de um


algoritmo recursivo para a soluo do problema: parte-se de vz (s) e calculase os valores da poca anterior, at chegar primeira poca.

notas de aula verso 64 - Jernimo C. Pellegrini

9.3. FORMULAO COMO PROGRAMA LINEAR

9.3

135

Formulao como Programa Linear

in
ar

Embora a equao do princpio da otimalidade j seja ela mesma a expresso de um algoritmo recursivo para a resoluo do problema, ele pode
tambm ser modelado como programa linear.


Vt (s) = max R(s, a) + T (s, a, s 0 )Vt+1 (s 0 )
a

im

A equao de Bellman determina o valor timo que queremos. De todos


os valores maiores ou iguais a este timo, tomamos ento o menor. Da
temos as restries Vt (s) R(s, a) + Vt+1 (T (s, a)), e extramos agora o
mnimo: basta definir ento o problema de minimizao
X
min
Vt (s)
t,s

s.a. : Vt (s) R(s, a) + T (s, a, s 0 )Vt+1 (s 0 )

9.4

Pr
el

O programa linear, no entanto, teria |S||A|z restries, e |S|z variveis,


onde z o horizonte (o nmero de estgios). O dual teria |S| z restries.
Para horizontes muito longos, este mtodo no bom.

Horizonte infinito e convergncia

Ve
r

Podemos estender estas noes para horizonte infinito. Claramente, no


possvel usar o critrio de otimalidade da recompensa total, porque o
somatrio no necessariamente convergiria. Podemos, no entanto, multiplicar a deciso na poca k por k , com 0 < < 1, garantindo assim
que o problema continuar tendo soluo. A interpretao deste fator a
seguinte: valorizamos mais as recompensas obtidas num horizonte mais
prximo e menos aquelas obtidas em um horizonte distante. Este critrio de otimalidade o da recompensa total esperada, e nos leva seguinte
verso da equao de Bellman.


X
v(s) = max R(s) +
T (s, a, s 0 )v(s 0 ) .
aA

s 0 S

Sua formulao como programa linear


X
min
V(s)
s

s.a. : V(s) R(s, a) + T (s, a, s 0 )V(s 0 )

notas de aula verso 64 - Jernimo C. Pellegrini

136

CAPTULO 9. CONTROLE DISCRETO

9.4.1

in
ar

O programa linear tem |S| variveis e |S|2 |A| restries.


Da mesma forma que com horizonte finito, podemos extrair da equao de otimalidade um algoritmo recursivo. Partimos de um ponto qualquer e calculamos os valores da poca anterior at que os valores entre
duas iteraes estejam suficientemente prximos.

Convergncia

im

Para demonstrar que o algoritmo de programao dinmica converge para


MDPs de horizonte infinito com 0 < < 1, precisamos mostrar que cada
passo do algoritmo aplica uma contrao na funo valor.
O que o algoritmo de programao dinmica para MDPs faz essencialmente aproximar uma funo, e para garantir que o algoritmo converge
mostramos que cada passo dele aplica uma contrao sobre V.

Pr
el

Definio 9.3 (Sequncia de Cauchy). Uma sequncia de elementos em


um espao mtrico dita de Cauchy quando a distncia entre dois elementos an , an+1 consecutivos da sequncia tende a zero quando n
.

Definio 9.4 (Espao de Banach). Um espao vetorial V com uma norma
um espao de Banach se toda sequncia de Cauchy de elementos de V
tem limite em V.

Teorema 9.5. Seja ||.|| a norma obtida tomando o maior valor absoluto dos
elementos de um vetor. Rn com esta norma um espao de Banach.

Definio 9.6 (Contrao). Seja V um espao de Banach. Um operador


F : V V uma contrao se para todos u, v V, ||Fv Fu|| ||v u||,
com 0 1.


Ve
r

Teorema 9.7. Seja V um espao de Banach e F : V V uma contrao


em V. Ento F tem um nico ponto fixo x tal que Fx = x . Alm disso,
se x0 um elemento qualquer de V, e x0 , x1 , . . . , xk uma sequncia tal que
xi = Fxi1 , ento esta sequncia converge para x .
Observamos agora que podemos reescrever a equao de otimalidade
de forma a ficar claro que se trata de um operador linear.
vi (s) = Hvi1 (s)

Hv(s) = max R(s, a) +
aA

X
s 0 S


0

T (s, a, s )v(s ) .

notas de aula verso 64 - Jernimo C. Pellegrini

9.5. VARIANTES DE MDPS

137

Teorema 9.8. O operador H uma contrao em Rn com a norma ||v|| =


maxi |vi |.


X
T (s, a, s 0 )v(s 0 ) .
as arg max R(s, a) +
a

Ento
Lv(s) Lu(s) R(s, as ) +

T (s, a, s 0 )v(s 0 )

s0

T (s, a, s 0 )||v u||

Pr
el

s0

im

X
R(s, as ) +
T (s, a, s 0 )u(s 0 )
X
=
T (s, a, s 0 )(v(s) u(s))

in
ar

Demonstrao. Sejam u, v Rn duas funes valor, com Hu(s) Hv(s).


Seja as uma ao tima para a funo valor v ou seja,

= ||v u|| ||v u||.

Variantes de MDPs

9.5

Pode-se definir diferentes critrios de otimalidade, como minimizar


a varincia da recompensa, sujeitando a soluo a uma recompensa mdia mnima, ou minimizar a recompensa mdia, limitando a varincia da
recompensa.

Ve
r

Esta seo discute algumas variantes de MDPs, sem no entanto detalhar


os mtodos para sua resoluo. A Seo de Notas ao final do Captulo traz
indicaes de leitura adicional para o leitor interessado.

9.5.1

Tempo contnuo

Pode-se definir MPDs em tempo contnuo, mas com estados e aes discretos.
Os conjuntos de estados e aes (S e A) e a funo de transio T em
um SMDP so semelhantes s de um MDP.
R : S A R composta de duas outras funes;

notas de aula verso 64 - Jernimo C. Pellegrini

138

CAPTULO 9. CONTROLE DISCRETO


F : R+ S A [0, 1] d a probabilidade da prxima poca de
deciso acontecer antes do tempo t, sendo que o processo est no
estado s e a ao a ser executada.

in
ar

A funo de recompensa composta por duas outras,

r : S A R d a recompensa imediata aps uma deciso a em um


estado s.
R : S S A R d a recompensa por permanecer em um estado
s 0 dado que o estado anterior era s e a ao executada foi a.

im

Como essa descrio abre a possibilidade de termos infinitas pocas


de deciso em tempo finito, presumimos que para todos s S, a A,
existem , > 0 tais que
F(s, a, ) 1

Pr
el

O fator de desconto usado para horizonte infinito > 0, e a recompensa no tempo t multiplicada por et (o que equivalente a usar t ,
com 0 < < 1).
A recompensa entre duas pocas de deciso acontecendo nos tempos
uk e uk+1
Z
uk+1

e(tuk ) R(s, st , a)dt.

uk

st o estado no tempo t.



Z uk+1
X
uk
(tuk )
V(s) = E
e
r(s, a) +
e
R(s, st , a)dt
uk

k=0

A recompensa R(s, a) pode ser calculada a partir de r e F.



Z X Z u
t
0
0
R(s, a) = r(s, a) +
e R(s, s , a)T (s, a, s )dt F(du, s, a)
0

s0

Ve
r

Q(s 0 , t, s, a) a probabilidade da prxima poca de deciso acontecer


antes do tempo t e do prximo estado ser s 0 , dado que o estado atual era
s e a ao executada foi a.
Q(s 0 , t, s, a) = T (s 0 , s, a)F(t, s, a).

Denotamos por m(s 0 , s, a) a probabilidade do prximo estado ser s 0 dado


que o estado atual s e a ao executada a.
Z
0
m(s , s, a) =
et Q(dt, s 0 , s, a)
0

notas de aula verso 64 - Jernimo C. Pellegrini

9.5. VARIANTES DE MDPS

139

A equao de otimalidade para SMDPs mostrada a seguir. Com ela


podemos usar programao dinmica na soluo destes problemas.
Vk (s) = max R(s, a) +
a

#
0

m(s , s, a)Vk+1 (s )

s0

in
ar

"

Diversos outros mtodos para soluo de MDPs tambm funcionam


para SMDPs, inclusive a formulao como programa linear.

9.5.2

Parmetros imprecisos

9.5.3

Pr
el

im

Suponha que alguns dos parmetros de um MDP foram especificados com


impreciso: sabemos apenas que algumas probabilidades de transio e
valores de recompensa esto situados em determinados intervalos. Um
MDP especificado desta forma chamado de MDP com parmetros imprecisos (MDPIP)

Observabilidade parcial

Em um Processo de Deciso de Markov Parcialmente Observvel (POMDP1 ),


no presumimos que o tomador de decises conhece o estado do sistema.
Ele conhece apenas uma distribuio de probabilidades sobre os estados
na primeira poca de deciso. Depois disso, a cada poca de deciso ele
percebe, alm de sua recompensa, uma observao vinda do ambiente (o
conjunto de observaes finito). Aps obter a recompensa e verificar a
observao, o tomador de decises atualiza internamente uma estatstica
suficiente a respeito do sistema. Esta estatstica representa, de certa forma,
sua crena, e chamada de estado de informao, porque no representa
o estado do sistema, e sim o estado da informao que se tem a respeito
do sistema.

Ve
r

o (observao)

estimador
de estados

ambiente

nova
estatstica

Partially Observable Markov Decision Process

poltica

a (ao executada)

notas de aula verso 64 - Jernimo C. Pellegrini

140

CAPTULO 9. CONTROLE DISCRETO

Um POMDP pode ser descrito da mesma forma que um MDP, pelos


conjuntos S, A e funes T , R, alm de:

in
ar

: o conjunto de possveis observaes.


O : S A [0, 1] : d a probabilidade da observao o ser
recebida aps a ao a ser executada em um estado s.
H dois exemplos relevantes de estatstica suficiente.

im

Histrico completo: a sequncia completa de aes, observaes e


recompensas desde o primeiro momento uma estatstica suficiente.

Pr
el

Distribuio de probabilidades sobre estados: o tomador de decises pode, tambm, manter uma distribuio de probabilidade sobre os estados, e atualiz-la aps cada estgio.

A representao de polticas para POMDPs no pode ser feita diretamente, porque seria necessrio mapear uma quantidade infinita e no
enumervel de distribuies em valores. Pode-se definir, no entanto, um
MDP sobre um conjunto infinito de estados de crena, e a funo valor
torna-se convexa e linear por partes. O nmero de hiperplanos usado em
cada poca de deciso) exponencial em ||, e portanto a quantidade de
vetores para z pocas de deciso duplamente exponencial em z. O algoritmo de programao dinmica, quando aplicado diretamente a POMDPs,
z
tem complexidade de tempo O(|S||A||| ). O problema P-ESPAO completo.
H outras formas de representar polticas para POMDPs, como por exemplo controladores (autmatos de Buchi) estocsticos.

Ve
r

Notas

O problema de Programao Dinmica foi popularizado por Richard Bellman [Bel03] e Ronald Howard [How60].
O livro de Martin Puterman trata detalhadamente do problema de decises em sequncia [Put05], inclusive a formulao como programa linear. A abordagem moderna para programao dinmica envolve mtodos diferentes da programao linear Bertsekas aborda o mesmo tema,
de forma diferente [Ber07] [BT96]; o livro de Sutton e Barto apresenta mtodos biologicamente inspirados [SB98]; o livro de Warren Powell trata de

notas de aula verso 64 - Jernimo C. Pellegrini

9.5. VARIANTES DE MDPS

141

im

in
ar

mtodos para a resoluo de grandes problemas de programao dinmica [Pow11]. O livro de Robert Stengel uma boa introduo Teoria do
Controle timo [Ste94], tambm indicado ao leitor interessado no assunto.
O algoritmo de programao dinmica, elaborado para resolver um
problemas de Controle timo, mostrou-se til tambm em outros contextos, tornando-se tpico obrigatrio de estudo em Cincia da Computao [Cor+09; DPV06].
Os SMDPs foram estudados inicialmente por W. S. Jewell [Jew63], Howard [How71]
e deCani [Can64], e so discutidos nos livros de Martin Puterman [Put05]
e de Dimitri Bertsekas [Ber07].
A demonstrao de que o problema de resolver POMDPs P-ESPAOdifcil foi dada por Christos Papadimitriou e John Tsitsiklis [PT87].
MDPIPs so discutidos em diversos artigos [SL70; IE94; Fil+07], e h
tambm POMDPs com parmetros imprecisos, chamados de POMDPIPs [IN07].

Pr
el

Exerccios

Ex. 64 Implemente o algoritmo de programao dinmica para o problema da mochila.


Ex. 65 Implemente o algoritmo de programao dinmica para MDPs.

Ex. 66 Se os pesos wi e a capacidade C em uma instncia do problema


da mochila so todos muito grandes, possvel reescrever o problema de
forma que exija tempo de execuo menor do algoritmo de programao
dinmica?

Ex. 67 Mostre como resolver as seguintes do problema da mochila usando


programao dinmica (k N parmetro de entrada):
i) que funcione permitindo repetio de itens;

Ve
r

ii) que permita at k itens do mesmo tipo;


iii) que permita que at 1/k do peso total seja de itens do mesmo tipo;
iv) que permita que at 1/k do valor total seja de itens do mesmo tipo.
v) que maximize a quantidade de itens, e no seus valores.

Diga como fica a complexidade de cada um dos seus algoritmos.


Ex. 68 Tente formular os algoritmos do Exerccio 67 como programas
lineares.

notas de aula verso 64 - Jernimo C. Pellegrini

142

CAPTULO 9. CONTROLE DISCRETO

in
ar

Ex. 69 O algoritmo dado neste Captulo usando programao dinmica


para o problema de mochila apenas determina o valor mximo que pode
ser acomodado na mochila, e no os itens. Mostre como modific-lo para
que inclua tambm os itens. Mostre como fica a complexidade do seu
algoritmo modificado.

Pr
el

im

Ex. 70 Uma fbrica usa uma mquina que se comporta da seguinte maneira: quando a mquina est em perfeito estado, ela produz $200 por semana. A mquina pode apresentar um problema tpico que a far produzir
apenas $100 por semana. A manuteno preventiva da mquina custa $10
por semana. A cada semana sem manuteno preventiva, a probabilidade
da mquina apresentar esse defeito 0.2. A cada semana com manuteno preventiva, a probabilidade da mquina apresentar o defeito 0.1. Se a
mquina estiver com esse defeito, pode-se pagar $300 a um tcnico para
consert-la. Se a mquina estiver com defeito, ela tambm pode quebrar
completamente na semana seguinte com probabilidade 0.08. Nesse caso
uma nova mquina precisa ser comprada por $10000. Um gerente da fbrica precisa decidir quando realizar manuteno preventiva e quando
consertar mquinas defeituosas.
Ex. 71 Usando a formalizao de SMDPs dada neste Captulo, descreva
MDPs, possivelmente modificando pequena parte daquele formalismo.

Ex. 72 Descreva claramente a relao entre o algoritmo para o problema


da mochila e o princpio da induo matemtica (a verso forte).

Ve
r

Ex. 73 Imagine um processo de deciso de Markov com horizonte finito


onde a recompensa definida probabilisticamente em funo do tempo:
temos R(s, a, t, h) onde t o tempo e h o horizonte (fixo) ao invs
de R(s, a). Voc ainda pode determinar a equao de otimalidade? Ela
poderia ser usada para modelar este problema como programa linear?

Parte III

im

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Ve
r

Pr
el

Tpicos Relacionados

143

Ve
r

Pr
el

im

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Captulo 10

im

O Algoritmo Primal-Dual e
suas Aplicaes

10.1

Pr
el

Neste Captulo descrevemos o algoritmo Primal-Dual para resoluo de


programas lineares. A importncia deste mtodo est no em sua aplicabilidade em programas lineares comuns, mas sim no seu uso para o desenvolvimento de algoritmos de otimizao combinatria.

O algoritmo primal-dual

Ve
r

Exerccios

10.2

145

notas de aula verso 64 - Jernimo C. Pellegrini

CAPTULO 10. O ALGORITMO PRIMAL-DUAL E SUAS APLICAES

Ve
r

Pr
el

im

in
ar

146

Captulo 11

im

Programao Inteira

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Pr
el

Muitas vezes queremos resolver um problema de otimizao linear onde


s nos interessam as solues inteiras. Um problema de programao inteira semelhante a um problema de programao linear, mas restringindo parte das variveis a valores inteiros:
max cT x

s.a. : Ax = b
x0

xj Z, se j K

onde o conjunto K contm os ndices das variveis inteiras.

Ve
r

Neste texto trataremos de dois mtodos para resolver programas inteiros. O primeiro o mtodo dos planos de corte, que consiste em determinar novas desigualdades que reduzam o poliedro das solues viveis, facilitando a obteno de uma soluo inteira. O segundo o mtodo
branch-and-bound, que enumera de forma inteligente as solues.

11.1

Planos de corte

Suponha que queiramos resolver um programa linear inteiro de minimizao e que a regio vivel seja como a que mostrada na prxima figura.
A seta mostra a direo para a qual o valor da funo objetivo f decresce.
147

notas de aula verso 64 - Jernimo C. Pellegrini

148

CAPTULO 11. PROGRAMAO INTEIRA


x2

in
ar

6
5
4

x1

Pr
el

im

Suponha que queiramos tentar resolver o problema relaxando a restrio de integralidade e usando, por exemplo, o mtodo Simplex. Obtemos
uma soluo no inteira. A partir dela, temos duas opes:
Se tentarmos usar a soluo inteira mais prxima, chegaremos ao
ponto (5, 1) fora do politopo (e portanto invivel).

Se tentarmos percorrer o politopo procurando uma soluo inteira


vivel, teremos que andar uma grande distncia, j que a soluo inteira vivel tima, (2, 5), est longe de (5, 1).

Ve
r

Podemos tentar adicionar restries ao programa linear, de forma que a


regio vivel fique menor, mas que nenhuma soluo inteira seja removida. Essas restries so chamadas de planos de corte, ou simplesmente
cortes.
Suponha que tenhamos usado o mtodo Simplex para resolver a verso relaxada do programa linear inteiro. O tableau ter a descrio das
variveis bsicas em funo das no bsicas (que valem zero) e de b.
X
xi +
aij xj = bi i m
(11.1)

Como xj no negativo,

j>m

X
j>m

baij c xj

X
j>m

aij xj ,

notas de aula verso 64 - Jernimo C. Pellegrini

11.1. PLANOS DE CORTE

149

e portanto
xi +

baij c xj bi

j>m

j>m

Subtraindo 11.2 de 11.1, obtemos


X
(aij baij c) xj bi bbi c

im

j>m

in
ar

Como procuramos um valor inteiro para xi , e esta soluo determina que


xi = bi , podemos usar bbi c sem alterar a soluo inteira.
X
xi +
baij c xj bbi c i m
(11.2)

j>m

Pr
el

Observe que a varivel xi bsica desaparece. Esta desigualdade o corte


de Gomory para a i-sima linha, e a adicionamos diretamente ao tableau
Simplex, aps multiplic-la por 1 e adicionar uma varivel de folga s, que
passa a ser bsica, com valor bbi c:
X
(aij baij c) xj + s = bi + bbi c

Desta discusso fica claro o Teorema a seguir.

Teorema 11.1. O corte de Gomory no exclui soluo inteira.

O prximo Teorema tambm parte da essncia do mtodo dos planos


de corte.

Teorema 11.2. Aps a adio de um corte de Gomory, o tableau torna-se


invivel para o primal e vivel para o dual.

Ve
r

Demonstrao. Se bi no era inteiro, ento bbi c > 0, e o tableau agora tem


a linha s = bbi c, e portanto invivel para o primal.
A viabilidade para o dual segue trivialmente do fato de no termos modificado a ltima linha do tableau, onde esto os coeficientes relativos de
custo cj zj (que so a soluo para o dual).

Podemos ento prosseguir com o mtodo Simplex dual, obtendo uma
nova soluo. Se a nova soluo for inteira, encontramos o timo. Se for
fracionria, recomeamos e adicionamos um novo corte. Se no houver
soluo vivel, porque no h soluo inteira para o problema original.
possvel garantir que o mtodo dos planos de corte sempre termine
em tempo finito, usando determinada disciplina nas escolhas feitas durante a execuo do mtodo Simplex. No faremos a demonstrao neste
texto.

notas de aula verso 64 - Jernimo C. Pellegrini

150

CAPTULO 11. PROGRAMAO INTEIRA

Exemplo 11.3. Mostraremos neste exemplo a adio de um plano de corte


ao programa linear a seguir, que exige soluo inteira.

s.a: x2 6
0.5x1 + 2x2 6.4
1.1x1 + x2 6.7
x0
x Z2

in
ar

min x1 + 5x2

im

Quando resolvemos o problema sem as restries de integralidade, obtemos a soluo (4.117, 2.110). No entanto, como podemos ver na figura a
seguir, esta soluo est longe da nica soluo inteira para o problema.

Pr
el

x2
6
5
4

Ve
r

x1

Escolhemos uma varivel para adicionar o corte de Gomory. O tableau


Simplex

x1 x2 w1
w2
w3
bi
0 0
1
0.323529
0.294118 3.82941

0 1
0
0.323529
0.294118
2.17059

1 0
0
0.294118
1.17647 4.11765
0 0
0
1.91176
2.64706 6.73529

notas de aula verso 64 - Jernimo C. Pellegrini

11.1. PLANOS DE CORTE

151

A linha de x1 no tableau
x1 0.294118w2 1.176472w3 = 4.11765

in
ar

Construimos o corte de Gomory:


(0.294118 b0.294118c)w2 + (1.17647 b1.17647c)w3 4.11765 b4.11765c
0.294118w2 + 0.17647w3 0.11765

(*)

0.294118w2 + 0.17647w3 s = 0.11765

0.294118w2 0.17647w3 + s = 0.11765

im

A nova varivel de folga


s = 0.11765 + 0.294118w2 + 0.17647w3

Podemos visualizar a nova restrio (marcada com (*)) se pudermos escrevla usando apenas x1 e x2 . Usando o problema original, substitumos

Pr
el

w2 = 6.4 + 0.5x1 + 2x2


w3 = + 6.7 1.1x1 x2
Assim obtemos a restrio

0.411766x2 + 0.047058x1 + 0.7000062 0.11765.


mostrada no grfico da regio vivel a seguir.

x2

6
5

Ve
r

4
3
2
1

x1

notas de aula verso 64 - Jernimo C. Pellegrini

152

CAPTULO 11. PROGRAMAO INTEIRA

in
ar

Observe que, como j demonstramos, o corte de Gomory no exclui soluo inteira da regio vivel. Por outro lado, ele exclui a soluo tima no
inteira.
Agora adicionamos a restrio ao tableau. Com isso, adicionamos a
varivel s, bsica, com valor 0.11765, tornando a soluo invivel para o
primal:

im

x1 x2 w1
w2
w3 s
bi
0 0
1
0.323529
0.294118 0
3.82941

0 1

0
0.323529
0.294118
0
2.17059

1 0
0
0.294118
1.17647 0
4.11765

0 0
0 0.294118 0.17647 1 0.11765
0 0
0
1.91176
2.64706 0
6.73529

Pr
el

Para continuar, observamos que o tableau ainda vivel para o dual,


mas que no timo para ele, porque se fosse seria timo para o primal,
e portanto vivel aos dois.
Aps obter nova soluo (usando o dual), verificamos se inteira. Se
no for, obtemos um novo corte de Gomory e repetimos o processo. J

11.2 Branch-and-bound

Ve
r

Suponha que tenhamos resolvido a verso relaxada de um programa inteiro, e que a soluo obtida, x
^ , tem um elemento no inteiro x
^i . Resolvemos ento dois problemas, um presumindo que xi b^
xi c + 1 e outro
presumindo que xi b^
xi c.
max cT x s.a : Ax b
x0
xj Z, se j K
xi b^
xi c

max cT x s.a : Ax b
x0
xj Z, se j K
xi b^
xi c + 1

notas de aula verso 64 - Jernimo C. Pellegrini

11.2. BRANCH-AND-BOUND

153

x2

x2

in
ar

Exemplo 11.4. As duas figuras a seguir ilustram como a regio vivel dividida em duas. Na primeira figura, a soluo fracionria (4.3, 2.4) obtida.
A varivel x2 escolhida para criar uma ramificao, e na segunda figura
temos as regies viveis para os dois programas lineares um com x3 2
e outra com x2 3.

im

x2 3

x2 2

x1

Pr
el

x1

Cada vez que dividimos o problema, criamos dois outros, derivados do


primeiro. Isto naturalmente representado como uma rvore binria,
onde cada n um problema de programao linear. A ramificao do
exemplo que demos representada como rvore a seguir.

x2 2

x2 3

Ve
r

Um limite superior para o valor do objetivo do problema original obtido facilmente da soluo de qualquer um dos problemas relaxados.
Um limite inferior para o valor do objetivo do problema original obtido quando um dos problemas relaxados tem soluo inteira (pode-se
ainda usar diversas tcnicas para obter uma soluo inteira vivel a partir
de uma soluo fracionria).
Suponha que para um n a da rvore tenhamos determinado que a
melhor soluo possvel , e que para outro n b tenhamos verificado
que a pior soluo ter valor no mnimo > . Podemos evidentemente

notas de aula verso 64 - Jernimo C. Pellegrini

154

CAPTULO 11. PROGRAMAO INTEIRA

abandonar o n , j que qualquer soluo que pudesse ser obtida ali ser
pior (ou no mximo to boa quanto) as solues obtidas a partir de .
H escolhas que podem interferir na eficincia do algoritmo:

in
ar

Tendo uma rvore com vrios ns, a partir de qual deles faremos a
prxima ramificao;

Uma vez que tenhamos escolhido um n da rvore, deveremos escolher uma das variveis com valor no inteiro para criar a prxima
ramificao.

Variantes: branch-and-cut, branch-and-price

im

11.3

11.4

Pr
el

O nome branch-and-cut dado combinao das tcnicas descritas anteriormente (planos de corte e branch-and-bound. Aps resolver uma verso relaxada do problema, pode-se adicionar um corte ou uma ramificao.
Um corte gera uma nova linha no tableau Simplex. Pode-se tambm
gerar novas colunas este o mtodo chamado de pricing, que quando
combinado com branch-and-bound chamado de branch-and-price.

Unimodularidade e poliedros integrais

Os problemas de transporte com restries inteiras abordados no Captulo 7 sempre tem soluo tima inteira, sendo assim possvel usarmos
algoritmos eficientes como o Simplex na obteno dessas solues. H
tambm uma classe de problemas com a mesma caracterstica que apresentamos brevemente nesta Seo.

Definio 11.5. Um poliedro em Rn integral se seus pontos extremos pertencem a Zn .



Definio 11.6. Uma matriz totalmente unimodular se todos os seus subdeterminantes so iguais a +1, 1 ou 0.


Ve
r

Claramente, todos os elementos de uma matriz totalmente unimodular devem ser +1, 1 ou 0, caso contrrio a submatriz 1 1 com cada elemento no seria unimodular. No entanto, nem toda matriz com elementos
+1, 1 e 0 totalmente unimodular: por exemplo, a matriz a seguir tem
determinante igual a 2.

1 0 1
1 1 0
0 1 1

notas de aula verso 64 - Jernimo C. Pellegrini

11.4. UNIMODULARIDADE E POLIEDROS INTEGRAIS

155

Teorema 11.7. Se A totalmente unimodular, ento tambm o so:


A transposta de A.

in
ar

As matrizes obtidas removendo linhas ou colunas inteiras de A.

As matrizes obtidas multiplicando linhas ou colunas inteiras por 1.


As matrizes obtidas por reordenao de linhas ou colunas.

As matrizes obtidas por operao de pivoteamento (passo do Simplex).

im

(A, I).

Lema 11.8. Se A e b tem apenas valores inteiros ento Ax = b tem soluo


integral quando det(A) = 1.

Pr
el

Demonstrao. Usamos a regra de Cramer: seja Aj a matriz A onde a jj)


sima coluna foi trocada pelo vetor b. ento xj = det(A
det(A) .

Quando det(A) 1, xj tem o mesmo valor absoluto que det(Aj ). Como


os elementos de A e de b so inteiros, det(Aj ) inteiro, e tambm o sero
todos os xj .

Teorema 11.9. Se A totalmente unimodular e b Zn , ento os pontos
extremos do poliedro {x : Ax b} so inteiros.

Demonstrao. Os vrtices de Ax b so definidos por A 0 , uma submatriz quadrada de A. Como A totalmente unimodular, A 0 tambm .
A 0 x = b 0 tem soluo inteira quando det(A 0 ) = 1, e portanto x integral.


Ve
r

Notas

O livro de Papadimitriou e Steiglitz [PS98] d uma boa introduo Programao Linear Inteira, incluindo os mtodos de planos de corte e branchand-bound. H tambm o livro de Laurence Wolsey [Wol98], o de Wolsey
e Nemhauser [WN99] e o de Korte [KV12]. Para uma viso mais completa
da rea veja o livro de Schriver [Sch03]. O livro de Goldbarg e Luna [GL00]
cita numerosas tcnicas usadas no desenvolvimento dos detalhes do algoritmo de branch-and-bound.
O mtodo dos planos de corte foi desenvolvido por R. Gomory [Gom58].

notas de aula verso 64 - Jernimo C. Pellegrini

156

CAPTULO 11. PROGRAMAO INTEIRA

in
ar

O mtodo de branch-and-bound, no contexto de Otimizao Combinatria, foi proposto por Land e Doig [LD60] semelhante tcnica de
busca usando cortes , usada em Inteligncia Artificial [NR10].
O mtodo de branch-and-price foi descrito por Barnhart, Johnson, Nemhauser, Savelsbergh e Vance [Bar+98].
O livro de Alexander Schriver [Sch03] elabora o tpico da unimodularidade de matrizes e sua conexo com programao inteira.
Politopos relacionados a diferentes classes de problemas so estudados no volume editado por David Avis, David Bremner e Antoine Deza [ABD09].

Exerccios

im

Ex. 74 Implemente o algoritmo dos planos de corte.

Ex. 75 Mostre que uma matriz totalmente unimodular se e somente


se invertvel sobre os inteiros.

Pr
el

Ex. 76 Prove a recproca do Teorema 11.9.


Ex. 77 Prove o Teorema 11.7.

Ex. 78 Suponha que um poliedro P definido por um programa linear


seja integral (ou seja, b inteiro e A totalmente unimodular). Prove que
aps a execuo do mtodo Simplex os coeficientes reduzidos de custo
do programa linear so inteiros.

Ve
r

Ex. 79 Suponha que A no totalmente unimodular, mas tem coeficientes inteiros, e que b seja integral. Quando a soluo para Ax = b
integral? Responda para matrizes quadradas de ordem 2 e 3.

Captulo 12

im

Programao Quadrtica

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

12.1

Pr
el

Um problema de programao quadrtica semelhante a um problema de


programao linear, exceto que a funo objetivo quadrtica e no linear
(mas as restries continuam sendo lineares). O objetivo deste Captulo
meramente o de ilustrar conceitos relacionados a Programao Quadrtica e apresentar um algoritmo para soluo deste tipo de problema, sem
a pretenso de compor um estudo detalhado do assunto.

Problemas modelados como programas quadrticos

Esta seo ilustra brevemente a utilidade da programao quadrtica atrvs de alguns exemplos.

Ve
r

Exemplo 12.1 (regresso por mnimos quadrados). Um primeiro exemplo


de problema de programao quadrtica o de regresso por mnimos
quadrados. Suponha que tenhamos um conjunto de dados (xi , yi ), onde
xi um vetor com k elementos. Queremos obter coeficientes ai para a
funo
f(xi ) = a0 + a1 xi,1 + a2 xi,2 + . . . + ak xi,k
de forma a minimizar a soma dos quadrados dos erros
X

(yi f(xi ))2 .

Queremos tambm impor algumas restries lineares aos coeficientes, e


as descrevemos como Ra = b. Este um problema de programao qua157

notas de aula verso 64 - Jernimo C. Pellegrini

158

CAPTULO 12. PROGRAMAO QUADRTICA

drtica:
X

min

(yi a0 a1 xi,1 a2 xi,2 . . . ak xi,k )2

in
ar

s.a. : Ra = b
a 0.

im

Exemplo 12.2 (maximizao de lucro). Em um segundo exemplo, um empresrio pretende maximizar o lucro que provm da fabricao de diferentes produtos. O preo pi de cada produto decai linearmente com a
quantidade xi produzida:
pi = ki i xi

onde ki > 0 e i > 0.


Para maximizar o lucro, o empresrio resolve o programa quadrtico
X

Pr
el
min

(ki i xi ) xi

s.a. : Ax = b
x 0.

onde A e b determinam restries advindas da quantidade de recursos


para a fabricao de cada tipo de produto.
J

Ve
r

Exemplo 12.3 (otimizao de portflio). O terceiro exemplo o de um investidor procurando construir uma carteira de ativos. O investidor conhece a varincia ii e as covarincias ij dos ativos, alm da esperana de
retorno (i ) de cada um. Ele quer fixar um retorno mnimo esperado M e
minimizar seu risco. Este um problema de programao quadrtica:
min

XX
i

s.a. :

ij xi xj

xi = 1

i x i M

x 0.

notas de aula verso 64 - Jernimo C. Pellegrini

12.2. REPRESENTAO

12.2

159

Representao
1
min z(, x) = cT x + xT Qx.
2
s.a. : Ax b
x0

in
ar

Na forma mais geral, um programa quadrtico usualmente definido por

onde um parmetro escalar e x um vetor com n elementos.


cT x descreve a parte linear da funo quadrtica;

im

Q uma matriz quadrada de ordem n descrevendo uma funo quadrtica;

Pr
el

A e b descrevem as restries. A uma matriz m n, e b um vetor


com m elementos.
comum exigir que Q seja semidefinida positiva, para garantir que a
funo sendo otimizada convexa.
Exemplo 12.4. A funo

f(vex) = 2x21 + x23 + x1 x2 4x2 x3 x1 + 3x2


descrita por = 1 e

1
c = 3 ,
0

4
1
0
0 4 ,
Q = 1
0 4
2

j que

1
cT x + xT Qx = 2x21 + x23 + x1 x2 4x2 x3 x1 + 3x2 .
2

Ve
r

Pode-se tambm adotar uma descrio mais compacta:


1
min z(x) = xT Qx.
2
s.a. : Ax b
x0

Proposio 12.5. Qualquer funo quadrtica com n1 variveis pode ser


descrita por uma nica matriz simtrica Q de ordem n.

notas de aula verso 64 - Jernimo C. Pellegrini

160

CAPTULO 12. PROGRAMAO QUADRTICA

Demonstrao. Basta que a varivel xn seja igual a um.


Mais detalhadamente: sejam

1

x = x1
x2

Ento


q11 q12 q13
1
T

q21 q22 q23


x1
x Qx = 1 x1 x2
q31 q23 q33
x2


q11 q12 q13 


1

x1
= +x1 q21 q22 q23 
x2
+x2 q31 q32 q33
T

1
q11 + x1 q21 + x2 q31

x1
= q12 + x1 q21 + x2 q32
x2
q13 + x1 q23 + x2 q33

Pr
el

im

in
ar

q11 q12 q13


Q = q21 q22 q23 ,
q31 q23 q33

q11 + x1 q21 + x2 q31


= +x1 (q12 + x1 q22 + x2 q32 )
+x2 (q13 + x1 q23 + x2 q33 )

= q11 + (q21 + q12 )x1 + (q31 + q13 )x2 + (q32 + q23 )x1 x2 + q22 x21 + q33 x22

Note a presena de termos constantes e de grau um. Descrevemos a forma


geral de uma funo de grau dois em duas variveis com uma matriz de
ordem tres.

Exemplo 12.6. A funo dada no exemplo 12.4,

Ve
r

f(vex) = 2x21 + x23 + x1 x2 4x2 x3 x1 + 3x2

descrita por

0
0 3/2
0
1/2
2 1/2
0
,
Q=
3/2 1/2
0 2
0
0 2
2

j que

xT Qx = 2x21 + x23 + x1 x2 4x2 x3 x1 + 3x2 .

notas de aula verso 64 - Jernimo C. Pellegrini

12.3. SOLUES TIMAS PARA PROGRAMAS QUADRTICOS

12.3

161

Solues timas para programas quadrticos

in
ar

Observamos que, como somente a funo objetivo quadrtica, a regio


vivel continua sendo um poliedro da mesma forma que em programao linear. E similarmente, podemos usar o gradiente da funo objetivo
para determinar a soluo tima.
A prxima figura mostra um exemplo de programa quadrtico: o poliedro da regio vivel tem arestas slidas, e as curvas de nvel da funo
objetivo z(x) so pontilhadas.

Pr
el

im

x2

Ve
r

(z)

x1

Se a funo objetivo de um problema de minimizao convexa e o


vrtice do parabolide est dentro da regio vivel, ele a soluo tima.
Se a funo objetivo de um problema de minimizao cncava (ou
seja, z(x) convexa), a soluo tima estar na borda do poliedro, mas
no necessariamente em um ponto extremo.
Observamos tambm que a funo pode no ser convexa e nem cncava (e neste caso ter pontos de sela).

notas de aula verso 64 - Jernimo C. Pellegrini

162

Mtodo de Beale

in
ar

12.4

CAPTULO 12. PROGRAMAO QUADRTICA

Pr
el

im

As restries impostas ao problema so lineares (e portanto descritas como


Ax = b, como em um proglema de programao linear). S temos uma
funo quadrtica no objetivo cujas derivadas direcionais podemos calcular, de forma semelhante ao que fizemos no mtodo Simplex. No entanto,
para cada funo quadrtica de uma varivel, o gradiente aponta para direes opostas em lados diferentes do vretice da parbola (no caso linear,
o gradiente do obejtivo constante porque uma funo linear e a
direo de maior aumento fixa. J no caso quadrtico a direo muda,
porque o gradiente de uma funo quadrtica linear.). Isto significa que
seguir cegamente o gradiente pode no levar ao timo.

Ve
r

Exemplo 12.7. Para um primeiro exemplo minimalista, temos o seguinte


problema.

min (x 1)2
s.a.: x 2
x0

A figura a seguir mostra a regio vivel e a funo objetivo.

notas de aula verso 64 - Jernimo C. Pellegrini

12.4. MTODO DE BEALE

163

in
ar

2
x

1
ff

2
x

Pr
el

im

Observe que neste exemplo o poliedro tem dimenso um, como mostra
parte de baixo da figura: ele o segmento de reta entre x = 0 e x = 2.
Na parte superior da figura usamos o plano para representar somente a
funo objetivo.
Os pontos 0 e 2 so os nicos pontos extremos do poliedro, e claramente o ponto timo, x = 1, no um deles.
J

Ve
r

O que ocorre no exemplo 12.7 pode acontecer cada vez que uma varivel no bsica (e que portanto valia zero) selecionada para entrar na
base.
O mtodo de Beale uma adaptao simples do algoritmo Simplex que
leva em considerao esta situao. Comeamos em um vrtice da regio
vivel (que um poliedro, exatamente como em problemas de programao linear). Depois, seguimos por diferentes solues viveis bsicas.
Quando observarmos que uma derivada muda de sinal entre dois pontos
extremos, modificamos o problema de forma a garantir que a soluo encontrada no estar em nenhum dos dois pontos extremos, mas sim onde
aquela derivada zero.

notas de aula verso 64 - Jernimo C. Pellegrini

164

CAPTULO 12. PROGRAMAO QUADRTICA

H duas diferenas importantes, portanto, entre o mtodo Simplex e o


de Beale:

in
ar

As derivadas direcionais das variveis no bsicas no so mais dadas por c z, porque a funo objetivo no linear. Para a funo
objetivo xT Qx, calculamos a derivada de xi :
z
xi


=
q22 x22 + q33 x23 + + qii x2i +
| {z }
xi

im

2qii

+ q23 x2 x3 + q24 x2 x4 + + qi2 xi x2 + qi3 xi x3 +

Pr
el

+ q21 x2 + + qi1 xi + + q1i xi +


| {z }
| {z }
qi1
q1i

+ q11

= 2qii xi + qi1 + q1i


= 2qii xi + 2qi1 .

Fica portanto claro agora porque conveniente usarmos metade desta


derivada:
1 z
= qii xi + qi1 .
2 xi

Ve
r

Podemos ter que parar entre um ponto extremo e outro, se uma derivada parcial mudar de sinal naquele intervalo. Isso feito incluindose no tableau uma varivel e uma restrio adicionais:
ut =

1 z
= qii xi + qi1 .
2 xi

nesta situao, para determinar o valor que deveremos atribuir a xi ,


igualamos a derivada ut a zero:
1 z
=0
2 xi
qii xi + qi1 = 0

ut =

xi =

qi1
.
qii

notas de aula verso 64 - Jernimo C. Pellegrini

12.4. MTODO DE BEALE

165

Ao escolher a varivel a sair da base em otimizao linear, tomamos o


menor dos valores
bi
aij

in
ar

Em um problema com funo objetivo quadrtica, devemos alm disso


garantir que a derivada da varivel xj no mude de sinal.

im

Teorema 12.8. Seja min xT Cx s.a. Ax b, x 0 um problema de programao quadrtica e suponha que uma soluo vivel bsica para o problema seja tal que a varivel xj deve entrar na base em um prximo passo
do Simplex.
Para que a nova soluo seja vivel e que sua derivada no mude de
sinal, seu valor deve ser o menor dentre

bi
qi1
min
e
.
i
aij
qii

Pr
el

Demonstrao. Seja g(xj ) a funo quadrtica definida quando fixamos


todas as variveis do objetivo exceto xj . Temos
g(xj ) = qjj x2j + qj1 xj + k.
O vrtice da parbola1 descrita por g est em
xj =

qj1
,
2qjj

Ve
r

j que os coeficientes de x2j e xj so qjj e qj1 .


Como xj era no bsica, tinha valor zero; como j sabemos que vale a
pena incluir xj na base, a derivada direcional do objetivo em relao a xj
negativa (aponta para o vrtice da parbola). Ao mudarmos continuamente o valor de xj , uma de duas coisas acontecer primeiro:


O valor de xj chegar a mini abiji
A derivada

g
xj

mudar de sinal ao atingirmos o vrtice da parbola.




1) Comece com uma soluo vivel bsica, da mesma forma que no


mtodo Simplex;

1
O vrtice da parbola descrita por ax2 + bx + c (b/2a, /4a), onde = b2 4ac
o discriminante.

notas de aula verso 64 - Jernimo C. Pellegrini

166

CAPTULO 12. PROGRAMAO QUADRTICA

2) Escreva as variveis bsicas em funo das no bsicas (no tableau,


isto o mesmo que usar a matriz identidade como base).

in
ar

3) Expresse a funo objetivo em funo das variveis no bsicas.


4) Verifique as derivadas parciais de cada varivel no bsica xk .

5) Se nenhuma derivada parcial indica que poderia haver melhora no


objetivo, a soluo tima.

im

6) Se h alguma derivada parcial que indica que h vantagem em introduzir uma varivel no-bsica na base, aumentamos a varivel no
bsica, at que uma das duas situaes a seguir se concertize:
a) uma das bsicas chega em zero;

b) a derivada parcial f/zk muda de sinal.

Pr
el

Se (a) acontecer, escolha uma coluna para deixar a base, como no


mtodo Simplex. Se (b) ocorrer, insira na base a varivel
ui =

1 zk
2 f

7) Repita o processo at que as derivadas parciais das variveis originais


do problema indiquem otimalidade, e que as variveis artificiais introduzidas sejam todas zero.

Ve
r

Exemplo 12.9. Considere o problema


min x1 2x2 + 2x22
s.a.: x1 + x2 2
2x1 + x2 4
x0

Pomos o problema na forma padro,


min x1 2x2 + 2x22
s.a.: x1 + x2 + x3 = 2
2x1 + x2 + x4 = 4
x 0.

notas de aula verso 64 - Jernimo C. Pellegrini

12.4. MTODO DE BEALE

167

. Temos

0 1/2 1
0
0
Q = 1/2
1
0
2

in
ar

Neste problema, podemos comear com a base x3 = 2, x4 = 4. Temos


portanto
x3 = 2 x1 x2
z = x22 2x2 x1

im

x4 = 4 2x1 x2

As derivadas parciais nas direes das no-bsicas so

Pr
el

1 z
1
=
2 x1
2
1 z
= 1 + 4x2
| {z }
2 x2
zero

= 1.

O tableau correspondente

1
1 1 1 2
2
1 0 0 4
1
2 1

Ve
r

interessante portanto incluir x2 na base. Verificamos agora que


2/1 = 2
4/2 = 2

(1)/2 = 1/2

(vrtice da parbola 2x22 2x2 )

Criamos a nova varivel


u1 =

1 z
= 1 2x2
2 x2

notas de aula verso 64 - Jernimo C. Pellegrini

168

CAPTULO 12. PROGRAMAO QUADRTICA

1
1
x2 = u1 +
2
2
3
1
s1 = x1 u1
2
2
1
7
s2 = 2x1 u1
2
2


in
ar

e reescrevemos as bsicas em funo das no bsicas:

2

im

1
1
z = x1 u1 1 +
u1 +
2
2
3
1
1
= x1 u1 + u21
4
2
4

O tableau correspondente, j com as derivadas parciais

z
u1

1 0 1 0
1/2 3/2
2 0 0 1
1/2 7/2

0 1 0 0 1/2 1/2
1
1/2

Pr
el

z
x1

Incluimos portanto x1 na base.

(3/2)/1 = 1.5

(7/2)/2 = 1.75

Ve
r

A varivel s1 sair da base. Como a funo objetivo linear em x1 , no


h parbola cujo vrtice exija nossa ateno. Simplesmente procedemos
como no mtodo Simplex, obtendo o tableau a seguir.

1 0
1 0
1/2 3/2
0 0 2 1 1/2 7/2

0 1
0 0 1/2 1/2
+1
0

Como a derivada de s1 positiva e a de u1 zero, encontramos a soluo


tima
x1 = 3/2
x2 = 1/2.

A base tambm inclui a varivel de folga s2 , com valor 1/2.

notas de aula verso 64 - Jernimo C. Pellegrini

12.5. PONTOS INTERIORES

12.5

169

Pontos interiores

im

in
ar

Mtodos de pontos interiores podem ser usados na resoluo de problemas de programao quadrtica. O mtodo de affine scaling, descrito na
seo 6.2.1, adapta-se programao quadrtica: o gradiente do objetivo,
projetado no espao nulo de A, muda a cada iterao porque depende do
ponto. Alm disso, no basta que projetemos no espao nulo de A, porque
se o timo for ponto interior, o algoritmo andar de lado a lado da regio
vivel, sem chegar ao timo.

Pr
el

Notas

Os primeiros mtodos para resoluo de programas quadrticos foram


desenvolvidos por Wolfe [Wol59], Dantzig [Dan61], e Beale [Bea55]. Mtodos modernos para otimizao de funes convexas em geral so descritos por Luenberger [Lue10].

O mtodo do elipsoide pode ser usado para programas quadrticos


quando a funo objetivo convexa. Quando a funo objetivo no convexa, o problema NP-difcil [PS91].

Exerccios

Ve
r

Ex. 80 Converta os problemas do incio do Captulo para a forma min xT Qx,


s.a. : Ax = b.
Ex. 81 Desenvolva um programa que leia uma expresso quadrtica e
mostre Q tal que xT Qx seja equivalente expresso dada (este poderia ser
um mdulo de entrara para um sistema de otimizao).
Ex. 82 Use o mtodo de Beale para obter uma soluo tima para os

notas de aula verso 64 - Jernimo C. Pellegrini

170

CAPTULO 12. PROGRAMAO QUADRTICA

seguintes problemas.
(i)
s.a.: x1 + 2x2 4
3x1 + 2x2 6
x 0.
(ii)

in
ar

min x1 2x2 + x22

im

max 3x1 + 6x2 4x21 + 4x1 x2 x22


s.a.: x1 + 4x2 9
x1 + x2 3

Pr
el

x 0.

Ex. 83 Implemente o mtodo de Beale

Ex. 84 O mtodo de Beale pode ser usado com qualquer funo objetivo convexa. Mostre como us-lo com funes diferenciveis convexas
no quadrticas.

Ve
r

Ex. 85 Implemente o mtodo de affine scaling para programao quadrtica.

Captulo 13

im

Otimizao No Linear

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Pr
el

Neste Captulo abordamos otimizao no linear. Alm de ser um tpico


importante por sua aplicabilidade, tambm permite compreender melhor
os casos mais restritos de programao linear e quadrtica.
Um problema de programao no linear consiste em minimizar uma
funo qualquer f(x), sujeito a restries quaisquer gi (x):
min f(x)

s.a. : gi (x) 0

i = 1, . . . , k

hj (x) = 0,

j = 1, . . . , l

onde f : Rn R, gi : Rn R e hj : Rn R so funes quaisquer.


Podemos tambm descrever um problema de otimizao no linear
apenas com as restries de desigualdade, j que cada igualdade equivalente a duas desigualdades.
Definimos a seguir os conceitos de timo local e global.

Ve
r

Definio 13.1 (timo local). Seja f : Rn R. O ponto x um mnimo local


de f se f(x) f(x 0 ) para todo x 0 em alguma vizinhana de x. Um mximo
local definido de forma anloga.

Definio 13.2 (timo global). Seja f : Rn R. O ponto x o mnimo
global de f se f(x) f(x 0 ) para todo x 0 Dom(f). O mximo global
definido de forma anloga.

Tratamos neste Captulo de dois casos diferentes: otimizaes sem restries (quando as restries no existem) e com restries. Em ambos os
casos, tratamos primeiro da caracterizao dos pontos timos (as condies de otimalidade), e depois dos mtodos.
171

notas de aula verso 64 - Jernimo C. Pellegrini

172

13.1

CAPTULO 13. OTIMIZAO NO LINEAR

Otimizao sem restries

in
ar

Quando as restries gi e hj no existem, temos um problema de otimizao sem restries.

Exemplo 13.3. A funo a seguir,

im

1
((x 1)2 + y2 ) + 2
2

Pr
el

f(x, y) =

 p

1 + cos 12 (x 1)2 + y2

uma variante da funo drop wave1 , usada como teste prtico para algoritmos de otimizao. Seu mnimo global f(1, 0) = 1.

Ve
r

0.5

0.5

0.6

0.8

0
1

1.2

1.4 0.5

1
Esta funo pode ser transformada na drop wave original trocando x + 1 por x. O
mnimo global passar a ser no ponto (0, 0).

notas de aula verso 64 - Jernimo C. Pellegrini

173

0.5

in
ar

13.1. OTIMIZAO SEM RESTRIES

2
0

im

1
1

3 2

13.1.1

Pr
el

O grfico da funo mostra que pode haver uma grande quantidade de timos locais em uma funo no convexa o que uma grande dificuldade
para os mtodos de otimizao.
J

Condies de otimalidade

Nesta seo abordamos as condies necessrias e suficientes para que


um ponto seja timo local. Tratamos separadamente de condies de primeira ordem (que envolve o gradiente do objetivo) e de segunda ordem
(onde a matriz Hessiana usada).
Para demonstrar as condies necessrias de otimalidade usamos o
Teorema de Taylor.

Teorema 13.4 (de Taylor). Seja f : Rn R contnua e diferencivel, e seja


y Rn . Ento existe t (0, 1) tal que
f(x + y) = f(x) + f(x + ty)T y.

Alm disso, se f duas vezes diferencivel,

Ve
r

1
f(x + y) = f(x) + f(x)T y + yT 2 f(x + ty)y.
2

Teorema 13.5 (Condio necessria de otimalidade de primeira ordem).


Seja f : Rn R. Se f diferencivel em x e x timo (mximo ou mnimo)
local de f, ento f(x) = 0.
Intuitivamente, o gradiente em x deve ser zero, de outra forma ele
indicaria uma direo para onde f teria valores ainda melhores. Este raciocnio formalizado a seguir.

notas de aula verso 64 - Jernimo C. Pellegrini

174

CAPTULO 13. OTIMIZAO NO LINEAR

Demonstrao. Suponha que x seja um mnimo local em um problema


de minimizao com funo objetivo f : Rn R. Suponha tambm, por
contradio, que f(x ) 6= 0. Ento seja

in
ar

d = (x).

Temos portanto dT f(x ) igual a ||f(x)||2 , que menor que zero. Como
o gradiente de f contnuo perto de x , deve existir algum k R tal que
para todo t (0, k],
dT f(x + td) < 0.

im

No entanto, pelo teorema de Taylor, para qualquer s (0, k] existe algum


r tal que
f(x + sd) = f(x ) + sdT f(x + rd),

Pr
el

e f(x + sd) < f(x ) para todo s (0, k), e portanto h uma direo a
partir de x na qual f decresce mas como presumimos inicialmente que
x mnimo local, conclumos que nossa suposio (de que f(x ) 6= 0)
falsa.

Para problemas de maximizao o raciocnio semelhante.
A recproca do Teorema 13.5 no vale: se estivermos minimizando, poderemos encontrar f(x) = 0 em um mximo local ou ponto de sela.
Exemplo 13.6. A figura a seguir mostra a funo f(x) = x3 3x2 + 3x + 1.

f(x)

6
4
2
x

Ve
r

No ponto x = 1 temos o gradiente igual a zero:


f(x) = (f 0 (x)) = (3x2 6x + 3)
= (3 6 + 3)
= 0.

(substituindo x = 1)

notas de aula verso 64 - Jernimo C. Pellegrini

13.1. OTIMIZAO SEM RESTRIES

175

No entanto, no se trata de um mnimo local. De fato, como esta funo


estritamente crescente2 , ela no tem mnimos (locais ou globais)!
J

in
ar

Se a funo convexa, todo mnimo local mnimo global, e o teste do


gradiente, enunciado nas condies de primeira ordem tambm suficiente. Em outros casos, precisamos de testes adicionais.
Teorema 13.7 (Condio necessria de otimalidade de segunda ordem).
Seja f : Rn R. Ento:
Se x mnimo local ento 2 f(x ) semidefinida positiva.

im

Se x mximo local ento 2 f(x ) semidefinida negativa.

Demonstrao. Suponha que 2 f(x ) no semidefinida positiva. Ento


deve haver algum d Rn tal que
dT 2 f(x )d < 0.

Pr
el

Como 2 f contnua perto de x , deve haver algum k R tal que para


todo r [0, k],
dT 2 f(x + rd)d < 0.
Fazendo uma expanso de Taylor, para todo s (0, k], existe algum r tal
que

1
f(x + sd) = f(x ) + sdT f(x ) + s2 dT 2 f(x + rd)d
2
1
= f(x ) + s2 dT 2 f(x + rd)d
(f(x = 0), Teorema 13.5)
2
< f(x ),
e encontramos uma direo a partir de x na qual f decresce.

Ve
r

Se f convexa, a matriz hessiana de f ser positiva definida para todo


o domnio de f.
O Teorema 13.8 d condies suficientes para que um ponto seja timo
local. A demonstrao pedida no Exerccio 87.
Teorema 13.8 (Condies suficientes de otimalidade de segunda ordem).
Seja f : Rn R uma funo contnua e duas vezes diferencivel; suponha
que 2 f contnua em uma vizinhana aberta de x , e que f(x ) = 0.
Ento,
2
Verifica-se facilmente: trata-se de f(x) = (x1)3 +2, que x3 transladada para a direita
em 1 e para cima em 2.

notas de aula verso 64 - Jernimo C. Pellegrini

176

CAPTULO 13. OTIMIZAO NO LINEAR


Se 2 f(x ) definida positiva ento x mnimo local.
Se 2 f(x ) definida negativa ento x mximo local.

in
ar

Note que exigimos que a Hessiana seja definida positiva (e no apenas


semidefinida).

im

Exemplo 13.9. Seja f(x, y) = 2 sen(x) + cos(y), cujo grfico mostramos a


seguir.

Pr
el

0
2

Temos

f(x, y) = (2 cos x, sin(x)) ,

5
0

f(x, y) =


2 sen(x)
0
.
0
cos(x)

Queremos determinar se um dos pontos a seguir mnimo local:


 
 
2
2
,
.
0

Ve
r

Tomando o primeiro ponto, temos

f( , 0) = (2 cos , sin(0))T
2
2
= (2(0) 0)T = 0.

No entanto,
2

f(x, y) =

2 sen(x)
0
0
cos(x)



2 0
=
,
0 1

notas de aula verso 64 - Jernimo C. Pellegrini

13.2. OTIMIZAO COM RESTRIES

177

f( , 0) = (2 cos , sin())T
2
2
= (2(0) 0)T = 0.
E a Hessiana

in
ar

portanto no podemos concluir que se trata de um ponto timo (de fato,


um ponto de sela!)
Agora, para o segundo ponto,


 

2 sen(x)
0
2 0
f(x, y) =
=
,
0
cos(x)
0 1

im

13.1.2

Mtodos

Pr
el

e como a Hessiana definida positiva (seus autovalores so estritamente


maiores que zero), temos um mnimo local.
J

H uma grande quantidade de mtodos para otimizao no linear sem


restries. Apresentamos brevemente aqui algumas categorias de mtodos.

Ajuste de curvas

Busca linear

13.2

Busca pelo gradiente (descida mais ngreme)

Otimizao com restries

Ve
r

Exemplo 13.10. Considere o seguinte problema.


max 1T x
s.a. : x21 + 4x1 4 x2
4x21 + 16x1 4 x2
x R2

A prxima figura mostra a regio vivel deste problema, o gradiente do


objetivo e o hiperplano perpendicular a ele.

notas de aula verso 64 - Jernimo C. Pellegrini

178

CAPTULO 13. OTIMIZAO NO LINEAR

12

in
ar

x2

8
4
0

im

4
1

2
x1

13.2.1

Pr
el

A soluo tima para este problema x = (2.125, 11.9375)T , e o valor da


funo objetivo neste ponto 14.0625.
J

O Lagrangeano

Do Clculo, relembramos o mtodo dos multiplicadores de Lagrange para


otimizao.
Dada uma funo diferencivel F(x1 , x2 , . . . , xn ) e restries gi (x1 , x2 , . . . , xn ) =
0, se x um ponto extremo (mximo ou mnimo local) de f, ento existem
1 , 2 , . . . , n no negativos tais que
X
f(x ) =
i i gi (x ),
i

Ve
r

ou seja, o gradiente de f combinao linear dos gradientes das gi com


coeficientes i .
Primeiro observamos que podemos escrever
X
f(x )
i i gi (x ) = 0.
i

Notamos tambm que se o ponto x satisfaz de maneira estrita uma desigualdade gi (x) 0 ou seja,
gi (x ) > 0

ento podemos ignor-la, usando i = 0. Desta forma podemos presumir que, quando o multiplicador i > 0, a restrio satisfeita como
igualdade, gi (x ) = 0.

notas de aula verso 64 - Jernimo C. Pellegrini

13.2. OTIMIZAO COM RESTRIES

179

Disso obtemos a definio do Lagrangeano:

13.2.2

in
ar

Definio 13.11 (Lagrangeano). Seja o vetor (1 , . . . , m )T . O Lagrangeano


para o problema a funo
X
L(x, ) = f(x)
i gi (x).


Dualidade

Elaboramos agora o conceito de dualidade para problemas de otimizao


no linear.

min f(x)

a funo dual

i = 1, . . . , k

Pr
el

s.a. : gi (x) 0

im

Definio 13.12 (Dual de problema de otimizao no linear). Para o problema de otimizao no linear

L() = inf L(x, )


x

e o problema dual

sem restries.

Condies de otimalidade

13.2.3

max L(),

Ve
r

Nesta seo tratamos das condies de otimalidade de Karush-Kuhn-Tucker.


Estas so, basicamente, uma aplicao do mtodo dos multiplicadores de
Lagrange para a determinao de timos locais.
Enunciamos as condies necessrias de primeira ordem para otimalidade, sem demonstrao.
Teorema 13.13 (Condies necessrias de primeira ordem (Karush-Kuhn-Tucker) para otimalidade). Se a funo objetivo e todas as restries so
diferenciveis em um timo local x , ento existe = (1 , . . . , m ) tal que
i) ponto estacionrio: x L(x , ) = 0

ii) viabilidade dual: i 0

notas de aula verso 64 - Jernimo C. Pellegrini

180

CAPTULO 13. OTIMIZAO NO LINEAR

iii) folgas complementares: i gi (x ) = 0


iv) viabilidade primal: gi (x ) 0.

in
ar

Alm das condies necessrias de Karush-Kuhn-Tucker, h tambm


uma condio suficiente, de segunda ordem, para otimalidade.

Teorema 13.14 (Condies suficientes de segunda ordem para otimalidade).


Se as condies de Karush-Kuhn-Tucker so satisfeitas e 2xx L(x , ) positiva definida, ento x timo local.

im

No conhecemos mtodo para resolver para um problema de otimizao no linear analiticamente usando apenas as condies de otimalidade. Estas condies so usadas por algoritmos para direcionar a busca
pelo timo. No exemplo a seguir apenas verificamos que as condies so
verdadeiras para a soluo do exemplo 13.10.

Pr
el

Exemplo 13.15. Suponha que tenhamos o ponto (2.125, 11.9375) como candidato a soluo do problema descrito no exemplo 13.10. Verificaremos
primeiro se este ponto pode ser uma soluo tima usando as condies
necessrias de primeira ordem. Se forem, verificaremos a condio de
segunda ordem.
O Lagrangeano
X
L(x, ) =f(x)
i gi (x)

 

=(x1 + x2 ) 1 (x21 + 4x1 x2 4) 2 (4x21 16x1 + x2 + 4) ,

Ve
r

Precisamos ento calcular x L(x, ):




2
2
x L(x, ) =x x1 + x2 1 (x1 + 4x1 x2 4) 2 (4x1 16x1 + x2 + 4)


= 2 (8x1 16) 1 (4 2x1 ) + 1, 1 2 + 1

As condies KKT so, portanto:


i) 2 (8x1 16) 1 (4 2x1 ) + 1 = 0
1 2 + 1 = 0

ii) 1 , 2 0

iii) 1 (x21 + 4x1 x2 4) = 0


2 (4x21 16x1 + x2 + 4) = 0

notas de aula verso 64 - Jernimo C. Pellegrini

13.2. OTIMIZAO COM RESTRIES

181

iv) x21 + 4x1 x2 4 0


4x21 16x1 + x2 + 4 0
i) Temos
2 (8x1 16) 1 (4 2x1 ) + 1 =0
1 2 + 1 =0

in
ar

Pode-se inferir destas condies que 1 = 0 e 2 = 1.

A segunda condio trivialmente satisfeita. Verificamos a primeira:

ii) Trivialmente, os dois so 0.

im

(8x1 16) + 1 = (17 16) + 1 = 0.

Pr
el

iii) Como 1 = 0 a primeira equao satisfeita. Para a segunda, com


2 = 1, temos
4x21 16x1 + x2 + 4 = 0
iv) Para a primeira inequao,

x21 + 4x1 x2 4 = 11.953125 0.


A segunda j verificamos no item anterior.

J verificamos as condies necessrias. Agora usamos a condio de segunda ordem, que pode nos garantir que de fato a soluo tima. O
problema de maximizao, por isso verificamos agora que a hessiana
2xx L(x, ) negativa semidefinida. A Hessiana

x L(x, ) = (2 (8x1 16) 1 (4 2x1 ) + 1, 1 2 + 1)




21 82 0
2
.
xx L(x, ) =
0
0

Ve
r

Para qualquer vetor v = (v1 , v2 )T ,






21 82 0 T
2
T
v xx L(x, ) v = v
v
0
0

Substituindo os valores de , temos




v 2xx L(x, ) vT = 8v21 0,

o que nos garante que a soluo realmente um timo local.


Observe que a Hessiana no depende de x1 ou x2 . ela ser semidefinida
negativa independente do ponto onde estivermos.
J

notas de aula verso 64 - Jernimo C. Pellegrini

182

CAPTULO 13. OTIMIZAO NO LINEAR

13.2.4

Mtodos

13.3

Otimizao linear e dualidade

in
ar

Claramente, um problema de programao linear um caso particular de


otimizao no linear.

Notas

Pr
el

Exerccios

im

A demonstrao do Teorema 13.4 (de Taylor) pode ser encontrada em livros


de Clculo de Vrias Variveis [CJ99; Apo69].
Os livros de Luenberger [Lue10], Boyd e Vandenberghe [BV04] e de
Nocedal [NW06] so boas introdues ao assunto e contm demonstraes detalhadas das condies de Karush-Kuhn-Tucker. Os livros de Bazaraa [BSS06] e Griva [GNS09] so bons como segunda leitura.

Ex. 86 Reescreva o primeiro exemplo como problema de minimizao


e mostre as condies de otimalidade para o problema modificado.
Ex. 87 Demonstre o Teorema 13.8.

Ex. 88 Mostre como foram obtidos 1 e 2 no exemplo 13.15.

Ex. 89 Considere novamente o exemplo 13.10. Suponha que tenhamos


mudado o problema, mantendo a mesma funo objetivo e as mesmas
restries, mas agora queremos minimizar. Faa uma anlise semelhante
quela feita no exemplo 13.15, mostrando a soluo tima, os multiplicadores de Lagrange e o valor da Hessiana.
Ex. 90 Considere o seguinte problema:

Ve
r

min x2 + y2
s.a: x2 + y2 (x + y + 1) cos(x) + xy

i) Mostre o dual do problema.

ii) Descreva o Lagrangeano e as condies de Karush-Kuhn-Tucker.

iii) Determine se (0, 0)T soluo tima.

Ex. 91 Mostre a forma geral do dual de um programa quadrtico.

Parte IV

im

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Ve
r

Pr
el

Apndices

183

Ve
r

Pr
el

im

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Apndice A

im

Teoria da Utilidade

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Ve
r

Pr
el

No Captulo 8 descrevemos uma matriz de pagamentos, que determina


quanto cada jogador ganha ou perde em um jogo. As entradas da matriz
de pagamentos no precisam necessariamente representar valor monetrio ou qualquer quantidade mapeada diretamente do mundo real. Estes
valores podem tambm indicar preferncias dos jogadores. Dizemos que
cada valor na matriz representa a utilidade do retorno para o jogador. Por
exemplo, no jogo de par ou mpar, a utilidade dos dois retornos pode ser
modelada como +1 e 1 ou +k r k, para qualquer k 6= 0, importando
apenas que a utilidade de uma vitria igual utilidade de uma derrota,
multiplicada por 1.
Em Microeconomia, as preferncias dos indivduos so modeladas como
utilidade: dado um conjunto X de opes, as preferncias de um indivduo
so descritas como uma funo u : X R, sendo que quando o indivduo
prefere x a y, ento u(x) > u(y).
Sejam A um conjunto de opes; X, Y A duas opes com utilidades
x e y respectivamente. Supomos que o indivduo pode obter X ou Y com
diferentes probabilidades: Pr(X) = p e Pr(Y) = 1 p. Esta distribuio de
probabilidades sobre as opes chamada de loteria. Podemos calcular a
utilidade esperada para esta loteria, sabendo as utilidades das duas opes:
L = pX + (1 p)Y

Teorema A.1 (da utilidade esperada). Seja A um conjunto de opes para o


qual a relao  de preferncias de um indivduo sejam conhecidas. Sejam
as loterias a seguir todas definidas sobre elementos de A. Se
i) Completude: dadas duas loterias L e M, ento L  M, M  L ou
ambos;
185

notas de aula verso 64 - Jernimo C. Pellegrini

186

APNDICE A. TEORIA DA UTILIDADE

ii) Transitividade: dadas trs loterias L, M, N, se L  M eM  N ento


L  N;

in
ar

iii) Convexidade: dadas loterias L  M  N, ento M pode ser escrita


como combinao convexa de L e M;

iv) Independncia: dadas trs loterias L, M, N, ento L  M se e somente se pL + (1 p)N  pM + (1 p)N,

Ve
r

Pr
el

im

ento existe uma funo utilidade u : A R que modela a relao de


preferncias e que pode ser multiplicada e somada por nmeros reais (e
portanto pode-se calcular utilidade esperada para qualquer loteria envolvendo elementos de A).

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Apndice B

im

Respostas e Dicas

Pr
el

Este Apndice traz respostas e dicas para alguns dos exerccios propostos
no texto.

Resp. (Ex. 1) (Dica) No um problema de fluxo em redes, embora a restrio de conservao de fluxo possa ser usada.
Tente representar o mapa como grafo. Se o veculo passar pelo caminho
de vi para vj , denota xij = 1. Depois, represente os custos como cij , recompensas como rij , e formule o objetivo
restries. Uma das restries
P e asP
deve determinar que, para todo i, j xji j xij . Outra, xij 1 para todos
i e j.

Resp. (Ex. 3) Primeiro problema, x = (0, 6), com valor do objetivo 12.
Segundo problema, x = (5, 5), com valor do objetivo igual a 20. Terceiro
problema, x = (15/2, 5/2), com objetivo igual a zero.

Ve
r

Resp. (Ex. 7) (i) Basta mudar as restries de conservao de fluxo,


X
X
xji
xij = 0
(i)
j

para que levem em conta o fluxo F consumido no n:


X
X
xji
xij = F
j

(Se o n gera mais fluxo, usa-se valor negativo para F)


187

(i)

notas de aula verso 64 - Jernimo C. Pellegrini

188

APNDICE B. RESPOSTAS E DICAS

Resp. (Ex. 18) (i) No:


2

im

in
ar

Resp. (Ex. 9) (Dica) Prove que cada uma das definies tem a outra como
consequncia. () Presuma que a definio a ser usada a primeira (a que
fala de combinaes convexas). (i) uma reta um conjunto convexo (ii) S
convexo (iii) interseo de convexos convexa (iv) um conjunto de pontos
colineares mas no no mesmo segmento no poderia ser convexo - ento
a interseo um segmento.
() Presuma que a definio a segunda (a que fala de interseo ao invs
de combinaes convexas) (i) para quaisquer pontos a e b em S, considere
a reta que passa por a e b. (ii) a interseo com S um segmento contendo
a e b. (iii) ssim, as combinaes convexas de a e b (que ficam no caminho
entre eles) pertencem a S.

1
b2

Pr
el

f(a, b) =

 a
e

xT 2 f(a, b)x = ea x21

x22
.
b2

x2

Com x1 = 0, temos b22 negativo para todos x2 e b.


Ou ainda, geometricamente, se fixarmos a temos a funo log(b), que no
convexa.
(ii) g(a, b) = ea log(b) convexa, porque soma de duas funes convexas. Ou ainda, porque
xT 2 g(a, b)x = ea x21 +

Ve
r

sempre positivo.
(iii) Sim: a Hessiana

 a+b a+b 
e
e
,
a+b
e
ea+b

com autovalores 0 e 2ea+b .

Resp. (Ex. 20) Em (iv), os autovalores so


p
z z2 + 4y2
.
2y2

x22
b2

notas de aula verso 64 - Jernimo C. Pellegrini

189

p
z2 + 4y2
,
2y2

portanto a funo seria convexa onde


p
z z2 + 4y2
z2 z2 + 4y2 ,

in
ar

O autovalor relevante

im

ou seja, onde y = 0. No entanto, a funo original toma log(y), e no existe,


portanto, subdomnio onde a funo convexa.
Em (v), a Hessiana

x
e + x2 0 0

0
y2 0 ,
0
0 2

Pr
el

com todos autovalores positivos e portanto convexa em todo domnio.


Resp. (Ex. 24) Sim. Verifique se o gradiente do objetivo ortogonal aos
hiperplanos definidos pelas restries.

Resp. (Ex. 26) (i) x = (5, 0, 0)T , z0 = 10. (ii) x = (2, 2)T . (iii) invivel. (iv)
ilimitado.

Resp. (Ex. 34) Escreva o dual, e observe que Mv = w significa que w


combinao linear das colunas de M, com coeficientes em v.

Ve
r

Resp. (Ex. 38) O Exemplo 4.2 mostra como obter o dual com uma varivel a mais. Tente fazer uma troca de variveis no dual obtido daquela
forma.
Resp. (Ex. 39) No ser nica.

Resp. (Ex. 62) As opes de cada jogador so a quantidade de palitos


(0 p 3) a esconder e seu palpite (0 a 6). Uma formulao ingnua usaria 4 7 = 28 linhas e colunas para ambos os jogadores, mas se
notarmos que, sabendo quantos palitos tem em sua prpria mo, sobram

notas de aula verso 64 - Jernimo C. Pellegrini

190

APNDICE B. RESPOSTAS E DICAS

quatro possibilidades para o palpite (n + 0, n + 1, . . . , n + 3), chegamos


seguinte matriz 16 16:
0, 1
+

0, 2
+

0, 3
+

1, 1

1, 2

1, 3

1, 4

2, 3

2, 4

2, 5

2, 2

3, 5

3, 6

im

3, 4

3, 3

in
ar

0, 0
0, 0
0, 1
0, 2
0, 3
1, 1
1, 2
1, 3
1, 4
2, 2
2, 3
2, 4
2, 5
3, 3
3, 4
3, 5
3, 6

Pr
el

Resp. (Ex. 66) Sim: divida os wi e C pelo seu mdc (o algoritmo tem complexidade O(nC), portanto se diminuirmos C diminumos o tempo de execuo).


1
F(s, a, t) =
0

se t < t 0
se t t 0

Resp. (Ex. 71) Use

Resp. (Ex. 78) O poliedro definido pelo dual tambm integral.


Resp. (Ex. 82) (i) x1 = 14/9, x2 = 2/3.

Ve
r

Resp. (Ex. 86)

min x1 + x2
s.a. : x21 4x1 + 4 x2
4x21 16x1 + 4 x2
x R2

notas de aula verso 64 - Jernimo C. Pellegrini

191

v21
2

in
ar

Resp. (Ex. 89) Pode-se inferir, do grfico da regio vivel, que o mnimo
ocorre no ponto onde as restries se encontram, no lado esquerdo. Com
isso obtm-se x = (0, 4)T , com valor 4. Com algumas contas simples
1
chega-se em = 12
(5, 17). A Hessiana ser tal que vT Hv sempre igual a
0, portanto semidefinida positiva.

Assim, as condies KKT so:

im

Resp. (Ex. 90) Seja v = (x, y)T . Ento L(v, ) = x2 +y2 (x2 +y2 (x+y+
1) cos(x) xy). (i) max inf x2 + y2 (x2 + y2 (x + y + 1) cos(x) xy), 0
(ii) O gradiente do lagrangeano


v (v, ) = 2x [y + cos(x) sin(x)(y + x + 1)] , 2y [cos(x) + x]

2x [y + cos(x) sin(x)(y + x + 1)]] =0

Pr
el

2y [cos(x) + x] =0

(x2 + y2 (x + y + 1) cos(x) xy) =0

x2 + y2 (x + y + 1) cos(x) xy 0
0

(iii) No, porque

Ve
r

x2 + y2 (x + y + 1) cos(x) xy = 1 cos(0) < 0.

notas de aula verso 64 - Jernimo C. Pellegrini

APNDICE B. RESPOSTAS E DICAS

Ve
r

Pr
el

im

in
ar

192

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Ficha Tcnica

Ve
r

Pr
el

im

Este texto foi produzido inteiramente em LATEX em um sistema Linux. Os


diagramas foram criados sem editor grfico, usando diretamente o pacote
TikZ. O ambiente Emacs foi usado para edio do texto LATEX.

193

notas de aula verso 64 - Jernimo C. Pellegrini

FICHA TCNICA

Ve
r

Pr
el

im

in
ar

194

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Bibliografia

David Avis, David Bremner e Antoine Deza. Polyhedral Computation. AMS, 2009. ISBN: 978-0-8218-4633-9.

[Apo69]

Tom M. Apostol. Calculus, Vol. 2: Multi-Variable Calculus and


Linear Algebra with Applications to Differential Equations and
Probability. Wiley, 1969. ISBN: 978-0471000075.

[Bar+98]

Cynthia Barnhart et al. Branch-and-Price: column generation


for solving huge integer programs. Em: Operations Research
46.3 (1998), pp. 316329.

[Bar02]

Alexander Barvinok. A Course in Convexity. AMS, 2002. ISBN:


978-0821829684.

[Bea55]

E. M. L Beale. On Minimizing a Convex Function Subject to Linear Inequalities. Em: Journal of the Royal Statistics Society. B
17 (1955), pp. 173184.

[Bel03]

Richard Bellman. Dynamic Programming. Dover, 2003. ISBN:


978-0486428093.

[Ber07]

Dimitri P. Bertsekas. Dynamic Programming and Optimal Control. 2007. ISBN: 978-1886529083.

[BJ77]

Mokhtar S. Bazaraa e John J. Jarvis. Linear Programming and


Network Flows. Wiley, 1977. ISBN: 0-471-06015-1.

Pr
el

im

[ABD09]

Dimitri Bertsekas e Angelia Nedic. Convex Analysis and Optimization. Athena Scientific, 2003. ISBN: 978-1886529458.

[BSS06]

Mokhtar S. Bazaraa, Hanif D. Sherali e C. M. Shetty. Nonlinear


Programming: Theory and Algorithms. Wiley-Insterscience, 2006.
ISBN: 978-0471486008.

[BT96]

Dimitri P. Bertsekas e John Tsitsiklis. Neuro-Dynamic Programming. Athena Scientific, 1996. ISBN: 978-1886529106.

Ve
r

[BN03]

195

notas de aula verso 64 - Jernimo C. Pellegrini

196

BIBLIOGRAFIA
Stephen Boyd e Lieven Vandenberghe. Convex Optimization.
Cambridge, 2004. ISBN: 978-0521833783.

[Can64]

J. S. De Cani. A dynamic programming algorithm for embedded Markov chains when the planning horizon is at infinity.
Em: Management Science 10 (1964), p. 716.

[CJ99]

Richard Courant e Fritz John. Introduction to Calculus and Analysis, Vol. II/1. Springer, 1999. ISBN: 978-3540665694.

[Cor+09]

Thomas Cormen et al. Introduction to Algorithms. 3 ed. MIT


Press, 2009.

[Dan61]

George B. Dantzig. Quadratic Programming, A Variant of the WolfeMarkovitz Algorithms. Rel. tc. OCR 61-2. Operations Research
Center, University of California, Berkeley, 1961.

[DPV06]

Sanjoy Dasgupta, Christos Papadimitriou e Umesh Vazirani. Algorithms. McGraw-Hill, 2006. ISBN: 0073523402.

[Dym07]

Harry Dym. Linear Algebra in Action. AMS, 2007. ISBN: 978-08218-3813-6.

[Fil+07]

Ricardo Shirota Filho et al. Multilinear and Integer Programming for Markov Decision Processes with Imprecise Probabilities. Em: Proceedings of the 5th International Symposium on
Imprecise Probability: Theories and Applications. 2007.

[FT91]

Drew Fudenberg e Jean Tirole. Game Theory. MIT Press, 1991.


ISBN: 978-0262061414.

[GL00]

Marco Cesar Goldbarg e Henrique Pacca L. Luna. Otimizao


Combinatria e Programao Linear: modelos e algoritmos. Campus, 2000. ISBN: 85-352-0541-1.

Pr
el

im

in
ar

[BV04]

Igor Griva, Stephen G. Nash e Ariela Sofer. Linear and Nonlinear


optimization. SIAM, 2009. ISBN: 978-0898716610.

[Gom58]

R. E. Gomory. Outline of an Algorithm for Integer Solution to


Linear Programs. Em: Bulletin of the American Mathematical
Society 64.5 (1958).

Ve
r

[GNS09]

[How60]

Ronald A. Howard. Dynamic Programming and Markov Processes. MIT Press, 1960.

[How71]

R. A. Howard. Semi-Markovian decision processes. Proc. Intern.


Stat. Inst. (Ottawa, Canada, 1963). 1971.

notas de aula verso 64 - Jernimo C. Pellegrini

BIBLIOGRAFIA

197

C. C. White III e H. K. El-Deib. Markov decision processes with


imprecise transition probabilities. Em: Operations Research 42.4
(1994), pp. 739749.

[IN07]

Hideaki Itoh e Kiyohiko Nakamura. Partially observable Markov decision processes with imprecise parameters. Em: Artificial Intelligence 171.8-9 (2007), pp. 453490.

[Jew63]

W. S. Jewell. Markov-renewal programming I: Formulation, finite return models; Markov-renewal programming II, infinite
return models, example. Em: Operations Research 11 (1963), pp. 938
971.

[Kar84]

Narendra Karmarkar. A New Polynomial Time Algorithm for


Linear Programming. Em: Combinatorica 4.4 (1984), pp. 373
395.

[Kuh55]

H. W. Kuhn. The Hungarian Method for the Assignment Problem. Em: Naval Research in Logistic Quarterly 2 (1955), pp. 83
97.

[KV12]

Bernhard Korte e Jens Vygen. Combinatorial Optimization: Theory and Algorithms. Springer, 2012. ISBN: 978-3642244872.

[Lay07]

Steven R. Lay. Convex Sets and Their Applications. Dover, 2007.


ISBN: 978-0486458038.

[LD60]

A. H. Land e A. G. Doig. An automatic method of solving discrete programming problems. Em: Econometrica 28.3 (1960),
pp. 497520.

[Lue10]

David G. Luenberger. Linear and Nonlinear Programming. Springer, 2010. ISBN: 978-1441945044.

Pr
el

im

in
ar

[IE94]

Jiri Matousek e Bernd Grtner. Understanding and Using Linear


Programming. Springer, 2006. ISBN: 978-3540306979.

[NM07]

John von Neumann e Oskar Morgenstern. Theory of Games and


Economic Behavior. Princeton University Press, 2007. ISBN: 9780691130613.

Ve
r

[MG06]

[NR10]

Peter Norvig e Stuart Russel. Artificial Intelligence: a modern


approach. Pearson, 2010. ISBN: 0-13-604259-7.

[NW06]

Jorge Nocedal e Stephen Wright. Numerical Optimization. Springer, 2006. ISBN: 978-0387303031.

[OR94]

Martin J. Osborne e Ariel Rubinstein. A Course in Game Theory.


MIT Press, 1994. ISBN: 978-0262650403.

notas de aula verso 64 - Jernimo C. Pellegrini

198

BIBLIOGRAFIA
Warren B. Powell. Approximate Dynamic Programming: Solving the Curses of Dimensionality. Wiley, 2011. ISBN: 978-0470604458.

[PS91]

Panos M. Pardalos e Vavasis Stephen A. Quadratic programming with one negative eigenvalue is NP-hard. Em: Journal of
Global Optimization 1.1 (1991), pp. 1522.

[PS98]

Christos Papadimitriou e Kenneth Steiglitz. Combinatorial Optimization. Dover, 1998. ISBN: 0-486-40258-4.

[PT87]

Christos H. Papadimitriou e John N. Tsitsiklis. The complexity


of Markov decision processes. Em: Mathematics of Operations
Research 12.3 (1987), pp. 441450.

[Put05]

Martin L. Puterman. Markov Decision Processes: Discrete Stochastic Dynamic Programming. Wiley-Interscience, 2005. ISBN:
978-0471727828.

[Roc96]

Ralph Tyrell Rockafellar. Convex Analysis. Princeton University


Press, 1996. ISBN: 978-0691015866.

[Rus06]

Andrzej Ruszczyski. Nonlinear Optimization. Princeton University Press, 2006. ISBN: 978-0-691-11915-1.

[SB98]

Richard S. Sutton e Andrew G. Barto. Reinforcement Learning:


An Introduction. MIT Press, 1998. ISBN: 978-0262193986.

[Sch03]

Alexander Schrijver. Combinatorial Optimization. Springer, 2003.


ISBN: 978-3540443896.

[Sch98]

Alexander Schrijver. Theory of Linear and Integer Programming.


Wiley, 1998. ISBN: 978-0471982326.

[Sin06]

S. M. Sinha. Mathematical Programming: theory and methods.


Elsevier, 2006. ISBN: 978-8131203767.

Pr
el

im

in
ar

[Pow11]

Ve
r

[SL70]

J. K. Satia e R. E. Lave. Markovian decision processes with uncertain transition probabilities. Em: Operations Research 21 (1970),
pp. 728740.

[Ste94]

Robert F. Stengel. Optimal Control and Estimation. Dover, 1994.


ISBN: 978-0486682006.

[Van07]

Robert J. Vanderbei. Linear Programming: foundations and extensions. Springer, 2007. ISBN: 978-0387743875.

[WN99]

Laurence A. Wolsey e George L. Nemhauser. Integer and Combinatorial Optimization. Wiley-Insterscience, 1999. ISBN: 9780471359432.

notas de aula verso 64 - Jernimo C. Pellegrini

BIBLIOGRAFIA

199

Philip Wolfe. The Simplex Method for Quadratic Programming.


Em: Econometrica 27.3 (1959).

[Wol98]

Laurence Wolsey. Integer Programming. Wiley-Insterscience,


1998. ISBN: 978-0471283669.

Ve
r

Pr
el

im

in
ar

[Wol59]

ndice Remissivo

Pr
el

aberto, 17
affine scaling, 103
afim-independente, 24
anlise de sensibilidade, 89
aresta, 11
atribuio
problema de, 121

soluo, 63
degenerado
problema, 63
dual, 73
dual de problema no linear, 179
dualidade, 73
em otimizao no linear, 179

im

timo global, 171


timo local, 171

in
ar

notas de aula verso 64 - Jernimo C. Pellegrini

Ve
r

elipsoide
mtodo do, 97
envoltria afim, 18
branch-and-bound, 152
envoltria convexa, 19
branch-and-cut, 154
epigrafo, 21
branch-and-price, 156
espao de Banach, 136
estratgia mista em jogos de soma
coeficiente reduzido de custo, 44, 46
zero, 127
combinao afim, 17
combinao convexa, 18
fechado, 17
condies de otimalidade, otimiza- fluxo em redes, 11
o no linear sem restries173,
folgas complementares, 82
otimizao no linear com funo cncava, 31
restries179
funo convexa, 31
contrao, 136
grafo dirigido, 11
controle discreto, 131
convexo
Hessiana (matriz), 32
conjunto, 18
hiperplano, 21
corte de Gomory, 149
cortes , 156
indefinida (matriz), 32
interpretao do dual, 75
definida positiva (matriz), 32
jogo de soma zero, 125
degenerada
200

notas de aula verso 64 - Jernimo C. Pellegrini

NDICE REMISSIVO

201

mtodo das duas fases (para obter


tableau Simplex inicial), 56
mtodo do M grande (para obter tableau Simplex inicial), 59
matriz triangular, 119
maximizao, 4
MDPIP, 139
minimizao, 4
mistura tima, 10
mochila
problema da, 131
multiplicadores de Lagrange, 178

im

in
ar

jogos de soma zero


POMDPIP, 141
formulao como programa li- ponto extremo, 22
pontos interiores
near, 127
mtodo de, 103
Karush-Kuhn-Tucker (condies de portflio
otimalidade), 179
otimizao de, 158
primal, 73
Lagrangeano, 178, 179
processo Markoviano de deciso, 133
loteria, 185
programao dinmica, 131
programao fracionria, 10
mnimo global, 171
programao inteira, 147
mnimo local, 171
programao linear
mnimos quadrados, 157
problema de, 4
mximo global, 171
programao
quadrtica, 157
mximo local, 171
rede de fluxo, 12

Ve
r

Pr
el

s.a., 1
semidefinida positiva (matriz), 32
semiespao, 21
sequncia de Cauchy, 136
simplex
mtodo, 39
simplex dual
algoritmo, 84
simplex revisado
mtodo, 67
SMDP, 137
objetivo, 4
soluo
otimizao no linear, 171
tima, 4
otimizao no linear com restries,
bsica, 27
177
vivel, 4
otimizao no linear sem restries,
vivel bsica, 27
172
teoria os jogos, 125
peso em arestas, 11
totalmente unimodular
planos de corte, 147
matriz, 154
poliedro, 23
transporte
politopo, 24
problema de, 113
dimenso de, 24
POMDP, 139
unimodularidade, 154

notas de aula verso 64 - Jernimo C. Pellegrini

202

NDICE REMISSIVO

utilidade, 185

Ve
r

Pr
el

im

in
ar

vrtice, 11
varivel de folga, 5