Você está na página 1de 39

MS428 - Programação Linear

MS428-Programação Linear

Professora: Kelly Cristina Poldi


kellypoldi@ime.unicamp.br

Departamento de Matemática Aplicada - DMA


Instituto de Matemática, Estatística e Computação Científica - IMECC
Universidade Estadual de Campinas - UNICAMP

setembro de 2015

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Problema da mistura
composição
desejável
carne vegetais da mistura
proteína 0, 5 0, 2 0, 4
cálcio 0, 4 0, 4 0, 3
custos dos
ingredientes 0, 81 0, 56
Modelo matemático:
minimizar f (x1 , x2 ) = 0, 81x1 + 0, 56x2
sujeito a: 0, 5x1 + 0, 2x2 ≥ 0, 4
0, 4x1 + 0, 4x2 ≥ 0, 3
x1 + x2 = 1
x1 ≥ 0, x2 ≥ 0
... e a solução??
MS428 - Programação Linear
MS428 - Programação Linear
Resolução Gráfica

Problema de otimização linear na forma padrão

minimizar f (x1 , x2 , . . . , xn ) = c1 x1 + c2 x2 + . . . + cn xn (1)


sujeito a: a11 x1 + a12 x2 + . . . + a1n xn = b1
a21 x1 + a22 x2 + . . . + a2n xn = b2
.. (2)
.
am1 x1 + am2 x2 + . . . + amn xn = bm
x1 ≥ 0, x2 ≥ 0, . . . , xn ≥ 0 (3)

→ (1) uma função linear chamada de função objetivo;


→ (2) um sistema de equações lineares que representa matematicamente as
restrições do problema;
→ (3) são as condições de não-negatividade ou restrições de sinal.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Problema de otimização linear na forma padrão

minimizar f (x1 , x2 , . . . , xn ) = c1 x1 + c2 x2 + . . . + cn xn (4)


sujeito a: a11 x1 + a12 x2 + . . . + a1n xn = b1
a21 x1 + a22 x2 + . . . + a2n xn = b2
.. (5)
.
am1 x1 + am2 x2 + . . . + amn xn = bm
x1 ≥ 0, x2 ≥ 0, . . . , xn ≥ 0 (6)

Dados do problema:

→ coeficientes da função objetivo cj , j = 1, . . . , n e da matriz de restrições


aij e bi , i = 1, . . . , m, j = 1, . . . , n.

As incógnitas do problema são chamadas de variáveis de decisão (x1 , x2 , . . . , xn ).

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

... também pode ser escrito na forma matricial

minimizar f (x) = ct x
sujeito a: Ax = b
x ≥ 0,
em que:
 
a11 a12 ... a1n
 a21 a22 ... a2n
 

A=  .. .. .. ..  : matriz dos coeficientes ou matriz
 . . . .


am1 am2 . . . amn
tecnológica;
ct = (c1 , c2 , . . . , cn ) : vetor de custos;
xt = (x1 , x2 , . . . , xn ) : vetor de variáveis ou incógnitas e
b = (b1 , b2 , . . . , bm ) : vetor de recursos.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Conceitos básicos

Definição: Uma solução é factível se atende todas as restrições do


problema.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Conceitos básicos

Definição: Uma solução é factível se atende todas as restrições do


problema.

Definição: O conjunto de todas as soluções factíveis define uma


região no Rn chamada região de factibilidade.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Conceitos básicos

Definição: Uma solução é factível se atende todas as restrições do


problema.

Definição: O conjunto de todas as soluções factíveis define uma


região no Rn chamada região de factibilidade.

Definição: Uma solução é ótima se é factível e fornece o menor


valor para a função objetivo f . Isto é, se uma solução factível
(x1∗ , x2∗ , . . . , xn∗ ) for tal que
f (x1∗ , x2∗ , . . . , xn∗ ) ≤ f (x1 , x2 , . . . , xn ),
para qualquer solução factível (x1 , x2 , . . . , xn ), então
(x1∗ , x2∗ , . . . , xn∗ ) é solução ótima.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Conceitos básicos

Resolver um problema de otimização consiste em determinar uma


(ou mais) solução ótima, isto é, determinar uma solução que
satisfaça todas restrições do problema associando o mínimo valor à
função objetivo.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão


1. Problema de maximização

max c1 x1 + c2 x2 + . . . + cn xn

= min −c1 x1 − c2 x2 − . . . − cn xn

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão


1. Problema de maximização

max c1 x1 + c2 x2 + . . . + cn xn

= min −c1 x1 − c2 x2 − . . . − cn xn
pois,

f (x∗ ) ≥ f (x), para toda solução x factível.

−f (x∗ ) ≤ −f (x), para toda solução x factível,

ou seja, maximizar f (x) corresponde a minimizar −f (x).

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão


Por exemplo,
maxf (x1 , x2 , x3 ) = 2x1 − x2 + 4x3
 x1 + 2x2 + x3 = 3

s a: x2 + 2x3 = 4
 x ≥ 0, x ≥ 0, x ≥ 0

1 2 3

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão


Por exemplo,
maxf (x1 , x2 , x3 ) = 2x1 − x2 + 4x3
 x1 + 2x2 + x3 = 3

s a: x2 + 2x3 = 4
 x ≥ 0, x ≥ 0, x ≥ 0

1 2 3

é equivalente ao problema na forma padrão:


min − f (x1 , x2 , x3 ) = −2x1 + x2 − 4x3
 x1 + 2x2 + x3 = 3

s a: x2 + 2x3 = 4
 x ≥ 0, x ≥ 0, x ≥ 0

1 2 3

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão


2. Restrições de desigualdade

ai1 x1 + ai2 x2 + . . . + ain xn ≤ bi

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão


2. Restrições de desigualdade

ai1 x1 + ai2 x2 + . . . + ain xn ≤ bi

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



variável de folga
com xk ≥ 0, k ≥ (n + 1).

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão


2. Restrições de desigualdade

ai1 x1 + ai2 x2 + . . . + ain xn ≤ bi

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



variável de folga
com xk ≥ 0, k ≥ (n + 1).

E se a restrição de desigualdade fosse ≥ ?

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão


Por exemplo,
f (x1 , x2 , x3 ) = 2x1 − 3x2 + 3x3
min 
 x1 + 2x2 − x3 ≥ 3

s a: −2x1 + x2 + x3 ≤ −1
 x ≥ 0, x ≥ 0, x ≥ 0

1 2 3

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão


Por exemplo,
f (x1 , x2 , x3 ) = 2x1 − 3x2 + 3x3
min 
 x1 + 2x2 − x3 ≥ 3

s a: −2x1 + x2 + x3 ≤ −1
 x ≥ 0, x ≥ 0, x ≥ 0

1 2 3

Introduzindo as variáveis de folga, temos:


f (x1 , x2 , x3 , x4 , x5 ) = 2x1 − 3x2 + 3x3
min 
 x1 + 2x2 − x3 − x4 = 3

s a: −2x1 + x2 + x3 + x5 = −1
 x ≥ 0, x ≥ 0, x ≥ 0, x ≥ 0, x ≥ 0

1 2 3 4 5

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão

3. Variáveis livres
xi irrestrita

xi = xi+ − xi− , com xi+ ≥ 0, xi− ≥ 0.

Qualquer número (seja positivo, negativo ou nulo) pode ser sempre


escrito como uma diferença de dois outros não-negativos.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão

Exemplo:
f (x1 , x2 , x3 , x4 , x5 ) = 2x1 − 3x2 + 3x3
min 
 x1 + 2x2 − x3 − x4 = 3

s a: −2x1 + x2 + x3 + x5 = −1
 x livre , x ≥ 0, x ≥ 0, x ≥ 0, x ≥ 0

1 2 3 4 5

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Transformação de um PL na forma padrão

Exemplo:
f (x1 , x2 , x3 , x4 , x5 ) = 2x1 − 3x2 + 3x3
min 
 x1 + 2x2 − x3 − x4 = 3

s a: −2x1 + x2 + x3 + x5 = −1
 x livre , x ≥ 0, x ≥ 0, x ≥ 0, x ≥ 0

1 2 3 4 5

Como a variável x1 é livre, podemos escrevê-la como diferença de


duas variáveis não-negativas: x1 = x1+ − x1− , x1+ ≥ 0, x1− ≥ 0
f (x1+ , x1− , x2 , x3 , x4 , x5 ) = 2x1+ − 2x1− − 3x2 + 3x3
min 
+ −
 x1 − x1 + 2x2 − x3 − x4 = 3

s a: −2x1+ + 2x1− + x2 + x3 + x5 = −1
 x + ≥ 0, x − ≥ 0, x ≥ 0, x ≥ 0, x ≥ 0, x ≥ 0

1 1 2 3 4 5

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Hipóteses

o número de variáveis seja maior que o número de restrições


(n > m, em geral, n é muito maior que m)
o posto(A) = m, ou seja, que as m linhas de A sejam
linearmente independentes (isto é, que não hajam equações
redundantes)

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Geometria da Otimização Linear

Um poliedro é um conjunto que pode ser descrito da forma


{x ∈ Rn |Ax ≥ b}, em que A é uma matriz m × n e b é um vetor
m × 1.
O conjunto das soluções factíveis de um problema de otimização
linear pode ser descrito por restrições da forma Ax ≥ b e portanto
é um poliedro (mesmo na forma padrão Ax = b, x ≥ 0).
Seja a um vetor n × 1 não-nulo. Então:
• O conjunto {x ∈ Rn |at x = b} é um hiperplano.
• O conjunto {x ∈ Rn |at x ≥ b} é um semi-espaço.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Geometria da Otimização Linear


Um conjunto S é convexo se para qualquer par de elementos
x , y ∈ S e qualquer λ ∈ [0, 1], então λx + (1 − λ)y ∈ S.

A região factível de um problema de programação linear é um


conjunto convexo.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Solução gráfica
Significado geométrico de uma desigualdade linear
(inequação linear).

Uma inequação divide um espaço n−dimensional em um


subespaço no qual a inequação é satisfeita e em um
subespaço no qual não é.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Solução gráfica

visualização geométrica de problemas de otimização linear é


importante para a compreensão de conceitos e teoremas,
problemas muito pequenos.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Solução gráfica
Para um problema de otimização linear:
minimizar f (x) = ct x
sujeito a: Ax = b
x ≥ 0, x ∈ R2
temos a região de factibilidade:S = {x ∈ R2 |Ax = b, x ≥ 0}

x ∈ R2 tal que (ai )t x = bi


x ∈ R2 tal que (ai )t x < bi
x ∈ R2 tal que (ai )t x > bi

O vetor gradiente ∇f (x)


(dado pelos coeficientes da equação) é perpendicular à reta que o
define e aponta no sentido que a função cresce.
MS428 - Programação Linear
MS428 - Programação Linear
Resolução Gráfica

Região de factibilidade
Considere o seguinte problema de otimização linear:
max f (x1 , x2 ) = x1 + 2x2
sujeito a: x1 + x2 ≤ 4
x1 ≤2
x2 ≤ 3
x1 ≥ 0, x2 ≥ 0
S = {(x1 , x2 ) tal que x1 + x2 ≤ 4, x1 ≤ 2, x2 ≤ 3, x1 ≥ 0, x2 ≥ 0}

Região definida por x1 ≥ 0, x2 ≥ 0.


MS428 - Programação Linear
MS428 - Programação Linear
Resolução Gráfica

Região de factibilidade
Considere o seguinte problema de otimização linear:
max f (x1 , x2 ) = x1 + 2x2
sujeito a: x1 + x2 ≤ 4
x1 ≤2
x2 ≤ 3
x1 ≥ 0, x2 ≥ 0
S = {(x1 , x2 ) tal que x1 + x2 ≤ 4, x1 ≤ 2, x2 ≤ 3, x1 ≥ 0, x2 ≥ 0}

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Região de factibilidade

S = {(x1 , x2 ) tal que x1 + x2 ≤ 4, x1 ≤ 2, x2 ≤ 3, x1 ≥ 0, x2 ≥ 0}

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Curvas de nível

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Ponto Extremo

Se um problema de otimização linear tem uma solução ótima,


então existe um vértice ótimo.

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Região factível ilimitada

Região de factibilidade ilimitada e solução ótima única (problema


de minimização).

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Região factível ilimitada

Região de factibilidade ilimitada e não existe solução ótima,


ct x → −∞(problema minimização).

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Múltiplas soluções ótimas

Região factível limitada, infinitas (múltiplas) soluções ótimas,


conjunto limitado de soluções ótimas (problema de minimização).

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Múltiplas soluções ótimas

Região factível ilimitada, infinitas (múltiplas) soluções ótimas,


conjunto ilimitado de soluções ótimas (problema de minimização).

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Região Infactível

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica

Solução degenerada

MS428 - Programação Linear


MS428 - Programação Linear
Resolução Gráfica - Exercício

Exercícios
Resolver graficamente os seguintes problemas de programação
linear:
maxz = 4x1 + 5x2
min 
z = 3x1 + 4x2
2x1 + 3x2 ≥ 6
 x1 + x2 ≤ 1



 3x − x ≤ 9 
(a) 1 2 (b)
s a: s a: 2x1 + x2 ≥ 4
 x1 + 4x2 ≤ 16
  x ≥ 0, x ≥ 0

 1 2

x1 ≥ 0, x2 ≥ 0

maxz = 25x1 + 30x2


maxz = 4x + 5y
5x1 + 6x2 ≤ 420
 x +y ≥8



 x ≤ 60 
(c) 1 (d)
s a: s a: 3x + 5y ≥ 30
 2 ≤ 45


x  x ≥ 0, y ≥ 0


x1 ≥ 0, x2 ≥ 0

MS428 - Programação Linear

Você também pode gostar