benedito c. silva universidade federal de itajubá – unifei instituto de recursos naturais - irn
Post on 18-Apr-2015
106 Views
Preview:
TRANSCRIPT
Programação Linear
Benedito C. Silva
Universidade Federal de Itajubá – UNIFEI
Instituto de Recursos Naturais - IRN
Vamos ver algumas questões importantes em relação às inequações de restrição:
0 C :casos os ambos em
variable)(surplus excesso de variávelé C caso neste
B C -A
B A
de caso No
maior slackmenor
B C A
variable)(slack folga de variávelchamada é C onde
B C A
:igualdade em expressão estar transforma posso eu
B A
inequação a suponha
Vamos supor o seguinte problema
0 X2
0 X1
18 2X2 3X1
10 X22 X1
a sujeito
X2 X1 ZMax
0s
0r
0 X2
0 X1
18 s 2X2 3X1
10 r X22 X1
a sujeito
X2 X1 ZMax
Vamos transformá-lo na sua forma slack (com folga)
Graficamente, tem-se:
Observem cada vértice da área hachurada...
O que acontece em cada ponto?
Observem que em cada reta limite uma das variáveis X1, X2, r ou s é igual a zero!!!
Como é que podemos identificar os vértices desta figura?
Simples....
Se observarmos a figura:
cada vértice é um ponto onde duas das quatro variáveis X1, X2, r e s são zeros....
Portanto: se eu fizer duas variáveis iguais a zero, determinando as demais (garantindo a unicidade e a não negatividade), encontro um vértice.....mas atenção.....não esquecer da não negatividade.
Atenção este vérticenão é válido
s = -12
Essa regra de procura de vértices pode ser generalizada:
Se o problema tiver seis variáveis, faço três variáveis iguais a zero e determino as demais, garantindo a não negatividade e a unicidade..( na forma slack)
Se o problema tiver oito...idem......e assim por diante
Lembrete importante: sabemos que o máximo ou o mínimo é um desses vértices.......portanto.....temos um caminho para chegar ao ótimo.....
Vamos ver agora o Método Simplex
Os problemas que serão resolvidos possuem a seguinte forma:
envolvidas variáveisdas denegativida não a ,finalmente e,
ou
ou
:tipo do restrições
u
:tipo do função umaminimizar oumaximizar
ibnxinaxiaxiaibnxinaxiaxiaibnxinaxiaxia
dnxncxcxc
.........................2211
.........................2211
.........................2211
............2211
Atenção (problema padrão):
• em geral vamos max u e as restrições são do tipo menor igual;
• a não negatividade pode não ser necessária, mas isso é um caso especial...
Vamos supor o seguinte problema:
0,
1832
122
43]max[
0,
1832
122
.
43min
yx
yx
yx
yxu
yx
yx
yx
as
yxu
:padrão forma na problema mesmo o
0,
1832
122
43]max[
0,
1832
122
.
43min
yx
yx
yx
yxu
yx
yx
yx
as
yxu
:padrão forma na problema mesmo o
Não está na forma padrão
Suponhamos agora o problema
0,,,
1832
122
43max
0,,,
1832
122
.
43max
0,
1832
122
.
43max
sryx
syx
ryx
yxu
sryx
syx
ryx
as
yxu
yx
yx
yx
as
yxu
:ainda ou
:como escritoser pode padrão slack forma na problema este
0,,,
1832
122
43max
0,,,
1832
122
.
43max
0,
1832
122
.
43max
sryx
syx
ryx
yxu
sryx
syx
ryx
as
yxu
yx
yx
yx
as
yxu
:ainda ou
:como escritoser pode padrão slack forma na problema este
0,,,
1832
122
43max
0,,,
1832
122
.
43max
0,
1832
122
.
43max
sryx
syx
ryx
yxu
sryx
syx
ryx
as
yxu
yx
yx
yx
as
yxu
:ainda ou
:como escritoser pode padrão slack forma na problema este
Este formato, como será visto, é muito prático para aplicação do método Simplex, além de servir para a análise da dualidade e análise de sensibilidade
Este formato nos diz que as variáveis do lado esquerdo podem tomar qualquer valor, definindo as variáveis do lado direito
variáveis do lado esquerdo são chamadas de independentes
variáveis do lado direito de dependentes
se as variáveis do lado esquerdo forem iguais a zero:
x=0 e y=0 implica que r=12 e s=18
Vamos supor uma PL com m restrições e n variáveis, onde:
nm
A PL está na forma canônica (padrão, regra..) se todas as restrições forem equações e se cada restrição possuir uma variável que ocorre somente nela, com coeficiente igual a 1
• essas variáveis com coeficiente 1 são chamadas de básicas (variáveis dependentes)
• as demais variáveis são chamadas de não básicas
No exemplo anterior:
básicas são folga) (de slack variáveisas
0,,,
1832
122
.
43max
sryx
syx
ryx
as
yxu
Entretanto, podem existir variáveis que não são slack’s e que podem ser básicas, imaginem o problema:
)slack! é não (e básica é z e canônico é sistema este
:slack forma na
0,,,
192
122
.
343max
0,,
192
122
.
343max
szyx
zyx
syx
as
zyxu
zyx
zyx
yx
as
zyxu
Considera-se em geral que:
• variável básica = variável dependente = variável slack
• variável independente é sinônimo de não básica
A forma canônica facilita a solução da PL:
Qualquer problema de PL possui uma forma canônica!
Definição: qualquer ponto que satisfaça as restrições e a não negatividade de uma PL é um ponto viável (feasible point)
Um ponto viável básico é obtido quando fazemos as variáveis não básicas iguais a zero e calculamos as demais variáveis e obtém-se valores não negativos;
Teorema Importante:
O máximo ou um mínimo de uma PL na forma canônica, se existir, é um ponto viável básico
Vamos ver mais alguns conceitos importantes....
Vamos ver um CONCEITO MUITO IMPORTANTE
Uma PL está no formato canônico perfeito se:
• a Função Objetivo é do tipo maximizar U
• os valores dos b’s (lado direito das restrições) são todos positivos
• a função objetivo é expressa somente em função de variáveis não básicas
Vamos sempre procurar esta forma canônica perfeita!
Vamos supor o seguinte problema:
básicas variáveissãot e s
0,,,
192
122
.
max
tsyx
tyx
syx
as
yxu
Forma canônica perfeita
Outro fato importante: este sistema pode ser transformado numa outra forma canônica perfeita
Pontos básicos vinculados a formas canônicas perfeitas são viáveis e portanto candidatos para o ÓTIMO...
Vamos ver agora o que se chama de pivoteamento (pivoting):
é o procedimento usado para ir de uma forma canônica para outra, mudando uma variável não básica para variável básica
Para isso, vamos ver o “tableau” Simplex:
Considere:
0........2,1,......,2,1
,.................22,11,
.
.
22,2.................22,211,2
11,1.................22,111,1
.....................2211
msssnxxx
mbmsnxnmaxmaxma
bsnxnaxaxa
bsnxnaxaxa
asujeito
udxcxc
Maximizar
Vamos passar as variáveis básicas s para o lado direito e as variáveis b’s para a esquerda...
0........2,1,......,2,1
,..............22,11,
.
.
22,2.................22,211,2
11,1...................22,111,1
.....................2211
msssnxxx
msmbnxnmaxmaxma
sbnxnaxaxa
sbnxnaxaxa
asujeito
udxcxc
Maximizar
Em forma de tableau temos.......
tableau
AS RESTRIÇÕES DE NÃO NEGATIVIDADE NÃO ESTÃO NO tableau PORQUE SE CONSIDERA QUE ELAS ESTÃO ATENDIDAS
Como fazer o pivoteamento...xj por si
lkajka
isliaji
a
jx
,,
.*,
),/(),)(,(,),/(,
,/).(,/1
jialiajkalkajiajka
jxjialiajia
is
O método Simplex para PL na forma canônica perfeita (estágio 2)
Vamos considerar o seguinte exemplo:
denegatividanão
tzyx
szyx
rzyx
as
uzyx
Max
643
932
122
.
234
U
u 0 2 3- 4
t- 6- 1- 4 3
s- 9- 3 2 1-
r- 12- 1 1 2
1 z y x
Coeficientesda FO
Variáveis básicas
Variáveis não básicas
Primeiro passo: escolher qualquer coeficiente positivo cj da função objetivo....p.e. o valor 4
u 0 2 3- 4
t- 6- 1- 4 *3
s- 9- 3 2 1-
r- 12- 1 1 2
1 z y x
Segundo passo: procurar na coluna do 4 todos valores positivos de ai,j..no caso 2 e 3....calculo para cada um o valor de bi/ai,j
para 2 temos 12/2 = 6
para 3 temos 6/3 = 2 (menor valor...escolho este...por isso o *....).....
Próximo passo....pivotar a3,1...ou seja vou x por t....
Obtenho:
Observem que o valor da FO é igual a 8
Mas este valor é o ótimo?...
NÃO.....ainda existe um coeficiente positivo na FO...10/3....vamos fazer um novo pivoting.......
O novo tableau é:
Solução: t=0, y=0 e s=0
FO=87/4 e r=9/8 z=33/8 e x=27/8
Como transformar problemas de PL na sua forma canônica perfeita......
0 z ey x,
7 3z2y 4x
5- y -2x
3 z-2y x
s.a
2z3y4xuMax
:exemplopor
Primeiro passo é colocar o sistema na sua forma slack...
0 z ey x,
7 3z2y 4x
5- sy -2x
3 r z-2y x
s.a
2z3y4xu
Max
Vamos multiplicar a segunda restrição por -1
0 z ey x,
7 3z2y 4x
5- y -2x
3 z-2y x
s.a
2z3y4xuMax
:exemplopor
0 z ey x,
7 3z2y 4x
5 sy 2x -
3 r z-2y x
s.a
2z3y4xu
Max
Estas duas restrições não possuem
variáveis básicas
0 z ey x,
7 A2 3z2y 4x
5 A1 s-y 2x -
3 r z-2y x
s.a
2z3y4xu
Max
solução
A1 e A2 são variáveis artificiais.....
Duas questões importantes:
• as variáveis artificiais precisam ser iguais a zero para validade das inequações
• caso apareçam variáveis básicas (VB’s) na FO o Método Simplex não se aplica, neste caso deve-se resolver um problema equivalente, sem VB na FO
0ts,r,y,x,
11 t 2y -4x
10 s y 2x
9 r y x
s.a
sr x UMax
:exemplopor
Vamos resolver?
solução
0t s,r,y,x,
11t2y-4x
10sy2x
9ryx
s.a
192y-2x- uMax
As variáveis artificiais precisam ser iguais a zero, isso pode ser feito de duas maneiras:
O Método do Grande M (Big M): quando for necessário o emprego de variáveis artificiais, elas entram na FO com coeficientes grandes para induzir o valor zero das mesmas..exemplo...
0BA,s,r,y, x,com 4Bs-y-3x
2Ar-2yx
s.a
MB-MA-2y-3xU-Max
:para problema nosso omodificar vamoszero, a iguais
B e A queremos como caso 4...nesteBs-y-3x
2Ar-2yx
2y--3xU-Max
:necessário é portanto básicas, são não s er
0sr,y, x,com 4s-y-3x
2r-2yx
2y--3xU-Max
:slack forma na problema ocolocar vamos
0yx,
4y-3x
2yx
s.a
2y3x U Min
2
0BA,s,r,y, x,com 4Bs-y-3x
2Ar-2yx
s.a
MB-MA-2y-3xU-Max
:para problema nosso omodificar vamoszero, a iguais
B e A queremos como caso 4...nesteBs-y-3x
2Ar-2yx
2y--3xU-Max
:necessário é portanto básicas, são não s er
0sr,y, x,com 4s-y-3x
2r-2yx
2y--3xU-Max
:slack forma na problema ocolocar vamos
0yx,
4y-3x
2yx
s.a
2y3x U Min
2
0BA,s,r,y, x,com 4Bs-y-3x
2Ar-2yx
s.a
MB-MA-2y-3xU-Max
:para problema nosso o modificar vamos zero, a iguais
B e A queremos como caso neste
4Bs-y-3x
2Ar-2yx
2y--3xU-Max
:necessário é portanto básicas, são não s e r
0sr,y, x,com 4s-y-3x
2r-2yx
2y--3xU-Max
:slack forma na problema o colocar vamos
0yx,
4y-3x
2y2x
s.a
2y3x U Min
Dois casos podem ocorrer:• A e B são variáveis não básicas iguais a zero ou• A, ou B ou ambas são básicas com valores iguais a zero• se A ou B ou ambas forem diferente de zero o problema não
tem solução (infeasible)
0BA,s,r,y, x,com 4Bs-y-3x
2Ar-2yx
s.a
MB-MA-2y-3xU-Max
:para problema nosso o modificar vamos zero, a iguais
B e A queremos como caso neste
4Bs-y-3x
2Ar-2yx
2y--3xU-Max
:necessário é portanto básicas, são não s e r
0sr,y, x,com 4s-y-3x
2r-2yx
2y--3xU-Max
:slack forma na problema o colocar vamos
0yx,
4y-3x
2y2x
s.a
2y3x U Min
0BA,s,r,y, x,com 4Bs-y-3x
2Ar-2yx
s.a
MB-MA-2y-3xU-Max
:para problema nosso o modificar vamos zero, a iguais
B e A queremos como caso neste
4Bs-y-3x
2Ar-2yx
2y--3xU-Max
:necessário é portanto básicas, são não s e r
0sr,y, x,com 4s-y-3x
2r-2yx
2y--3xU-Max
:slack forma na problema o colocar vamos
0yx,
4y-3x
2y2x
s.a
2y3x U Min
Solução:
primeiro devemos retirar da FO as variáveis básicas A e B
U- 6M- M- M- M2- 4M3-
B- 4- 1- 0 1- 3
A- 2- 0 1- 2 1
1 s r y x
Maior coeficiente
Primeiro tableau:
O tableau final será:
U- 34/7- 4/7- 9/7- M-9/7 M-4/7
x- 10/7- 2/7- 1/7- 1/7 2/7
y- 2/7- 1/7 3/7- 3/7 1/7-
1 s r A B
Portanto, A=0, B=0, r=0, s=0 e y=2/7 e x=10/7
valor de U = 34/7
Vejam que curioso: sem saber o valor de M resolvemos o problema!!!
Tentem resolver o seguinte problema:
0yx,
12y2x
122yx
s.a
2y4x UMax
O que aconteceu no tableau?
Todos os pontos nesta reta são
solução
top related