Escolar Documentos
Profissional Documentos
Cultura Documentos
n
Minimizar f ( x) = c1 x 1 + c 2 x 2 + ... + c n x n = a i x i ;
i =1
x
tal que h k ( x) = b 1 x 1 + b 2 x 2 + ... + b n x n = 0, j = 1,.., n g
g j ( x) = d 1 x 1 + d 2 x 2 + ... + d n x n 0, j = 1,..., n e
Existem uma grande gama de problemas de otimizao nas diversas reas do conhecimento
(engenharia, economia, biologia, etc.) que se encaixam nessa formulao, e por essa razo
existe uma vasta literatura disponvel sobre programao linear (PL), bem como softwares
disponveis para a sua soluo.
1
a menos que o problema somente possua um nico mnimo em que nesse caso ser o mnimo global.
44
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
f o
x2
Ponto timo
x1
Fig.4.2.1: Soluo de um problema de otimizao linear no espao tridimensional.
J Fig.4.2.2 ilustra uma situao que pode ocorrer devido a natureza da soluo do problema de
otimizao linear. A curva de nvel de f paralela a uma das restries causando uma soluo
degenerada, ou seja, inmeras solues.
x3 g i ( x) = 0
o x2
Soluo Degenerada
x1
Fig.4.2.2: Caso em que ocorre uma soluo degenerada num problema de otimizao linear.
45
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
f=3,5
f=3,0
f=2,5
f=2,0
0,5
o
0,5 x1
Fig.4.2.3: Soluo grfica do problema de PL.
Nesse caso a soluo tima (obtida graficamente) vale x1=x2=1/2 com fmin=3/2. Note que a
soluo se encontra num vrtice do domnio em que todas as restries esto ativas com
exceo das duas primeiras. Para verificar se um certo ponto (x1,x2) est no domnio vivel,
basta substitu-lo na equao e verificar se as restries so respeitadas. Essa soluo foi obtida
simplesmente calculando o valor da funo objetivo nos vrtices do contorno do domnio
vivel, uma vez que j se sabe, como discutido acima, que a soluo tima ser um desses
pontos. Os vrtices do domnio so determinados resolvendo-se a interseco das equaes de
restrio.
46
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
Min f = c x
T
x
tal que Ax = b
x0
onde c um vetor n1, A uma matriz mn e b um vetor m1. A princpio essa formulao
parece no representar o exemplo resolvido acima, no entanto fazendo uso de variveis
auxiliares (ou "slack", em ingls), qualquer problema pode ser representado. Assim, por
exemplo, considere as inegualdades abaixo:
4x 2 1
2 x1 + 2 x 2 1
x1 + x 2 1
,
elas podem ser facilmente transformadas em igualdades atravs da subtrao de trs variveis
auxiliares no negativas x3, x4, x5, assim:
4x 2 - x 3 = 1
2x 1 + 2x 2 - x 4 = 1
x1 + x 2 - x 5 = 1
x i 0, i = 1,...,5
,
onde a condio de no negatividade est prevista na formulao padro acima. Se as restries
fossem opostas (0), ento as variveis auxiliares seriam adicionadas e no subtradas. J
restries do tipo xi0 podem ser convertidas na forma padro atravs de expresses do tipo:
x1 = u1 - v1 e x 2 = u 2 - v 2 e : u1 , u 2 , v1 , v 2 0
ou adicionando uma constante positiva de valor suficientemente alto:
x1 = M + x1
de forma que a nova varivel nunca fique negativa durante a otimizao. Esse tipo de artifcio
tem a vantagem de no aumentar a dimenso do problema, pois no cria novas variveis, no
entanto, pode ser difcil conhecer com antecedncia o valor da constante M que far com que a
varivel fique positiva na soluo do problema. A utilizao de valores muito altos de M pode
resultar em mau condicionamento numrico do problema.
Uma vez transformado o problema inicial de PL que se deseja resolver na forma padro acima,
o algoritimo inicia a soluo do problema atravs do mtodo Simplex. Note no problema da
forma padro que se m=n e todas as equaes so linearmente independentes, h uma nica
soluo para o sistema; se m>n no h soluo (a menos que as equaes sejam linearmente
dependentes), pois o sistema de equaes inconsistente; somente quando m<n que temos
vrias solues possveis para o problema e entre todas essas solues o Simplex procura a
soluo que satisfaz a restrio de no negatividade (x0) e minimize a funo objetivo f. Para
isso, o Simplex segue o seguinte procedimento:
47
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
A = [[D m x m ] K] n
m colunas linearmente
independentes
Essa matriz mm denominada D e no singular. Assim podemos resolver o sistema:
Dx D = b D x D = D 1 bD
m x1 m x m m x1
onde xD um vetor de variveis independentes. Verifica-se que
x D
x = L
0
soluo do sistema Ax=b. Tal soluo denominada soluo bsica, e xD chamado de
vetor de variveis bsicas. Uma soluo bsica, no entanto, no necessariamente satisfaz a
restrio x0. As solues bsicas que satisfazem essa restrio so chamadas solues
bsicas viveis e demonstra-se que representam os "cantos" da poltope (ver definio acima
e Fig.4.2.4).
O nmero total de solues bsicas do sistema Ax=b dado pelo nmero de possibilidades
de se selecionar arbitrariamente m colunas de um nmero de n, ou seja, da teoria das
permutaes e combinaes:
n n!
=
m m!(n - m )!
onde somente algumas solues sero viveis.
Muda o conjunto de variveis bsicas (mas o novo conjunto deve ser vivel) melhorando a
funo objetivo ao mesmo tempo;
Repete essa operao at que no consiga mais reduzir o valor da funo objetivo;
Assim a idia do algoritimo Simplex continuamente reduzir o valor da funo objetivo indo
de uma soluo bsica vivel para outra, e portanto percorrendo os extremos (ou "cantos") da
poltope como mostrado na Fig.4.2.4.
x3 poltope
0
Solues bsicas
1
viveis
2 o x2
3 Ponto timo
x1
Fig.4.2.4: Caminho seguido pelo mtodo Simplex para a soluo.
48
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
Uma descrio mais detalhada do algoritimo numrico do Simplex encontra-se nas referncias
da bibliografia dessa apostila.
Nota-se que quanto maior o nmero de variveis de projeto (n) ou de restries (m), maior ser
o nmero de solues bsicas viveis ( e portanto "cantos" da poltope), e portanto maior ser o
custo computacional (e portanto tempo) para o Simplex encontrar a soluo. De fato, o nmero
de operaes aritmticas cresce exponencialmente com o nmero de variveis, o que torna a
utilizao do Simplex invivel para problemas com grande nmero de restries ou variveis
(ordem de milhares).
Nesse caso, so utilizados algoritimos denominados mtodos interiores, uma vez que ao invs
de percorrerem os extremos da poltope, movem-se no seu interior. Essencialmente, a cada
passo, esses algoritimos calculam uma direo a ser seguida no interior da poltope de forma a
minimizar a funo objetivo. Utilizam conceitos similares aos que sero descritos adiante nos
algoritimos para a soluo de problemas de otimizao no-lineares com ou sem restrio. Isso
torna o tempo de soluo mais independente do nmero de variveis e restries. Em alguns
casos a soluo pode ser obtida em apenas uma iterao.
Esses algoritimos chegam a ser at 50 vezes mais rpido do que o Simplex. Um mtodo interior
clssico o algoritimo de Kamarkar (AT&T Bell Labs), descrito em detalhe na referncia [1] da
bibliografia. A Fig.4.2.4 ilustra o caminho seguido pelo algoritimo de Kamarkar na soluo do
problema anterior.
x3
f o
x2
Ponto timo
x1
Fig.4.2.4: Caminho seguido pelo algoritimo de Kamarkar para a soluo.
x
tal que C1x = b1
(mi n )
C2x b 2
(m d n )
ci x cs
49
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
C = [C1 , C 2 ]
(m i + m d ) n
b = [b1 , b 2 ]
1 (m i + m d )
A sua sintaxe dada por:
[x,lagr,f]=linpro(p,C,b,ci,cs,mi,x0)
onde:
x - vetor da soluo tima;
lagr - vetor de multiplicadores de Lagrange (dimenso n+mi+md) associado a cada uma das
restries. Se o valor de um multiplicador zero, a restrio correspondente est inativa,
caso contrrio est ativa no ponto timo;
f - valor timo da funo;
mi - nmero de restries de igualdade;
md - nmero de restries de inegualdade;
x0 - chute inicial de x; ou se x0=v o clculo iniciado num vrtice do domnio; ou se
x0=g o valor inicial arbitrrio;
Para soluo de problemas de PL com variveis discretas utilizado uma tcnica denominada
programao linear inteira que no ser abordado nesse curso.
Assim o procedimento seguido por esses mtodos em cada passo resumido a seguir:
Para melhor entendermos a idia desses mtodos, podemos fazer uma analogia com a
subida de uma montanha. Suponha que a forma da montanha a funo em questo e
queremos atingir o seu pico mximo (pico da montanha). Num ato intuitivo, a cada
passo dado, inicialmente procuramos uma direo a seguir e depois decidimos o quanto
andar. O quanto andamos num passo, vai depender de quo bem comportado o terreno
da montanha no local. Por exemplo, se h um buraco adiante (ponto de mnimo) no
vamos querer pisar nele ao final do passo, ento devemos reduzir o passo, e escolher
uma nova direo a seguir no passo seguinte, e assim por diante.
Nos mtodos de ordem zero somente o valor da funo objetivo utilizado. So usados
quando a funo no diferencivel ou quando a funo altamente no-linear, sendo
difcil obter as derivadas de forma precisa. Entre um dos mais importantes mtodos
temos o mtodo das direes conjugadas de "Powell", descrito abaixo.
Esses mtodos so usados quando o valor da funo obtido com preciso pobre, e
portanto os valores das derivadas (ou gradientes) no so confiveis e no devem ser
utilizados.
51
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
Nesse mtodo, a cada passo a funo a ser minimizada aproximada localmente por
uma funo quadrtica, dada por:
1
f (x) = x T Qx + b T x + c
2
Considere agora um conjunto de direes si, i=1,2 Q-conjugadas linearmente
independentes, ou seja:
s iTQs j = 0 para i j
Pode ser mostrado que: "Se f for minimizada ao longo de cada direo s definida
acima, ento o mnimo de f ser encontrado no (ou antes) do nsimo passo
independentemente do ponto inicial, dado que erros de arredondamento no sejam
acumulados", onde n o nmero de variveis. importante que as direes sejam
linearmente independentes (como definido acima) caso contrrio no h
convergncia para o mnimo.
( ) ( )
1
f x k f x 0k +1 2
4) Se < k0
( ) ( ) k
f x m 1 f x m
ento utilize as mesmas direes para a prxima
52
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
2 l 3
Agora, definindo: f = ; x1 = v 2 ; x 2 = 2l a funo acima fica:
EI
53
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
f = 12x 1 + 4x 2 12x 1x 2 + 2x 1
2 2
Soluo:
Todo mtodo numrico exige um "chute inicial" para iniciar as iteraes. Nesse caso
ser adotado: x10 = ( 1,2) f(x10 ) = 2 . Para efeito de comparao final a soluo
T
tima do problema pode ser obtida por clculo diferencial sendo igual :
x* = ( 1 / 3,1 / 2 ) .
T
2
0 2
12(1 + )(2) + 2(1 + ) (busca univariada) Min f = -1/12
13 / 12
x11 = e f(x1 ) = 1,9166;
1
2
13 / 12 0 13 / 12
s12 = (0,1) x12 = + = (busca univariada) Min f
T
2 1 2 +
13 / 12 1 / 12
= 3/8 x12 = e f(x 2 ) = 1,3541 s p = x 2 - x 0 =
1 1 1 1
13 / 8 3/8
1 1 / 12 1 / 12
x 02 = + = (busca univariada) Min f
2 3 / 8 2 + 3 / 8
157 / 147
= 40/49 x 02 = e f(x 0 ) = 1,31972
2
83 / 49
1
40 2 1,31972 2
e = <
49 1,9166 1,3541
A tabela abaixo descreve os resultados nos ciclos de iteraes seguintes.
54
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
um dos mtodos mais antigos, sendo proposto em 1847. Nesse mtodo a direo s
a ser seguida obtida resolvendo-se o problema de otimizao:
n
f
Min f T s = s i
s i =1 x i
s 2
f
s=
f
onde a norma Euclideana. Assim, segue-se para prxima etapa que a busca
unidimensional, substituindo x k +1 = x k + s na expresso de f.
A Fig.4.3.3 ilustra o caminho seguido pelo "Steepest Descent" para uma funo no
espao bidimensional. Note que a cada passo, o mtodo segue na direo do
gradiente da funo.
55
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
=
* (
xk Q + bT s
T
)
s T Qs
O desempenho do mtodo nesse caso vai depender do nmero de condicionamento
da matriz Q. O nmero de condicionamento (CN) dado pela razo entre o maior e
o menor autovalores da matriz Q, ou seja:
CN = max
min
Se CN alto, o mtodo caminha de forma lenta e seguindo o padro "zig-zag", o que
conhecido como fenmeno de "hemstitching", como mostrado nas Fig.4.3.3.
56
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
Assim, demonstra-se que o "Steepest Descent" apresenta apenas uma taxa linear de
convergncia sem a transformao de variveis. No entanto, como dficil na maior
parte dos casos encontrar a transformao de variveis correta foi proposto o mtodo
de Direes Conjugadas ou de "Fletcher-Reeves" descrito a seguir.
Na primeira iterao, a direo a ser seguida nesse mtodo (s0) segue o mtodo
"Steepest Descent". A partir da segunda iterao, a direo s1 obtida tal que seja Q
conjugada a s0, e assim por diante, ou seja:
57
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
s T k -1Qs k = 0, k = 1,2,...
onde Q a matriz Hessiana da funo quadrtica f. Assim, as iteraes prosseguem
at que ocorra a convergncia. Devido ao teorema de "Powell" das direes
conjugadas (veja seo 4.3.1.1) a convergncia para o mnimo de uma funo
quadrtica teoreticamente garantida na direo correspondente iterao n-1 (sn-1),
onde n o nmero de variveis.
df ( k +1 )
1. Calcular x k +1 = x k + k +1s k onde k +1 determinado tal que = 0;
d k +1
s k = g k = f (x k ) se k = 0 e s k = g k + k s k -1 se k > 0 com
T
2.
e g k = -f (x k )
gk gk
k = T
g k -1 g k -1
58
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
Soluo:
24 x 12 x2 + 2 2
x 0 = (1,2) f (x 0 ) = 1 s 0 = f (x 0 ) =
T
8 x2 12 x1 x=x 0
4
1 2
x1 = + 1 f (1 ) = 12(1 21 ) 2 + 4(1 + 41 ) 2 +
2
2
4
df
12(1 21 )(2 + 41 ) + 2(1 21 ) (busca unidimensional) =0
d1
1,0961 2,6154
1 = 0,048077 x1 = e f(x1 ) = s1 =
1,8077 1,3077
(2.6154) 2 + (1.3077) 2 2,6154
= f(x1 ) + 1s 0 1 = = 0,4275 s1 = +
(2) + (4) 1,3077
2 2
Esses mtodos utilizam os valores da funo objetivo, suas derivadas e sua matriz
Hessiana. Os mtodos mais antigos e clssicos so os mtodos de Newton e Quasi-
Newton, descritos a seguir.
a) Mtodo de Newton
59
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
L Q 1f
= f + 2Qs = 0 s = s = Q 1f Qs = f
s 2
e a matriz Q deve ser positiva-definida. Assim, segue-se para prxima etapa que a
1
busca unidimensional, substituindo x k +1 = x k + k +1s k = x k k +1Q k f ( x k ) na
expresso de f.
b) Mtodo de Quasi-Newton
Considere o mesmo exempo anterior, mas agora sendo resolvido pelo mtodo de
Quasi-Newton com aproximao BFGS.
Min f = 12x 1 + 4x 2 12x 1x 2 + 2x 1 e x 0 = (1,2) e B0=I
2 2 T
60
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
Soluo:
O primeiro passo igual ao do "Steepest Descent"
- 1.0961 2.6154 - 1.0961 1
x1 = e f(x1 ) = p0 = =
- 1.8077 1.3077 - 1.8077 2
- 0.0961 2
= e como s 0 = -B 0f(x 0 ) = -If(x 0 ) = y 0 =
0.1923 4
2.6154 2 4.6154
= = p 0 y 0 = 0.96127 e
T
1.3077 4 2.6923
- 0.0961 0.44354 0.25873
p0 y 0 = { 4.6154 2.6923} =
T
onde:
costf - funo a ser minimizada
xopt - vetor da soluo tima;
x0 - chute inicial de x;
f - valor timo da funo;
61
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
2
A vantagem de resolver esse problema de minimizao ao invs de resolver Ax=b
numa anlise estrutural no-linear que permite obter no somente as configuraes
de equilbrio estveis da estrutura, mas tambm as configuraes de equilbrio
instveis, dado que no haja convergncia da minimizao para um mnimo local.
No caso de convergncia para um mnimo local, algumas tcnicas numricas so
utilizadas para forar a convergncia para o mnimo global.
Alm disso, o mtodos descritos acima, mesmo que iterativos, se mostram mais
eficientes na soluo de sistemas Ax=b (formulados como minimizao), com
grande nmero de variveis, do que os mtodos diretos (como Eliminao de
Gauss), sendo por isso (e pela razo acima) utilizados na maior parte dos softwares
comerciais de MEF atualmente.
62
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
encontra no terreno do vizinho que limitado por uma cerca. Nesse ltimo caso, a
mxima altura que conseguiramos subir est situada em algum ponto da cerca. As
diversas situaes de localizao do ponto timo esto descritas na seo 1.4. Ou seja, o
ponto de mnimo (ou de mximo) no mais est associado com a condio de que o
gradiente de f deva ser nulo (estacionaridade).
Existem essencialmente, dois tipos de mtodos para soluo desses problemas: mtodos
diretos e indiretos. Os mtodos diretos verificam as restries aps seguirem o
procedimento do algoritimo de otimizao sem restrio. J os mtodos indiretos
transformam o problema com restrio em um problema sem restrio e resolvem.
63
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
1. x* vivel g j (x* ) 0 j = 1, n g
ng
2. f(x ) * jg j (x* ) = 0;
*
j=1
* j 0;
3. * jg j (x* ) = 0 se j = 0
g j no est ativo
onde o superescrito * indica o ponto timo. A condio 1 indica que a soluo seja
vivel, a condio 2 a condio de estacionaridade da funo Lagrangeana, com a
novidade que os multiplicadores de Lagrange devem ser positivos no ponto timo, e
a condio 3 a condio de complementaridade j discutida na seo 3.2.
- 1g1
- g1 - 2g 2
- g 2
- f
Fig.4.3.6: Interpretao geomtrica das condies KKT.
Assim nota-se que no possvel ter uma direo til ( s T f < 0 ) e vivel
( s T g j 0 ) se j 0 . Ou seja, no possvel encontrar uma direo s saindo de A
64
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
( )
s T 2 L s > 0 para todo s tal que s Tg j = 0 (restries ativas com j > 0)
65
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
Soluo:
Agora, a tabela abaixo descreve todos os casos possveis que podem ocorrer com as
restries (representadas pelos seus multiplicadores de Lagrange) na soluo tima.
Um valor de j =0 indica restrio inativa e j 0 indica restrio ativa.
1 2 3
Caso 1 0 0 0
Caso 2 0 0 0
Caso 3 0 0 0
Caso 4 0 0 0
Caso 5 0 0 0
Caso 6 0 0 0
Caso 7 0 0 0
Caso 8 0 0 0
66
Otimizao em Engenharia Mecnica Prof. Dr. Emlio Carlos Nelli Silva
x x = 10 1 = 13,24
1 2
f = 73,08
a princpio as condies KKT so satisfeitas, mas como o nmero de restries
ativas (e gradientes linearmente independentes) (1) diferente do nmero de
variveis (2), devemos verificar a matriz Hessiana da funo L, que vale:
23,08 13,24
2L =
13,24 35,19
Novamente, negativa-definida indicando ser um ponto de mximo.
67