Você está na página 1de 13

Programação dinâmica

- Introdução

- Definição de programação dinâmica

- Princípios de programação dinâmica

- Princípio da optimabilidade
Programação dinâmica 2

4. Programação dinâmica
4.1. Introdução

A essência da programação dinâmica é a sua eficiência na optimização de


processos com várias etapas em série e demonstra-se na resolução de problemas
combinatórias.
Supohamos um processo com N etapas em série. Cada etapa tem n estados fixos
e de qualquer estado da etapa i-1 é possível passar a qualquer dos n estados da
etapa i.

1 1

2 2

3 3
i-1 i

Fig.4.1 Processo com 3 estados fixos

Admitimos que o efeito (função objectiva para a etapa) da passagem do estado p


da etapa i se avalia pela grandeza ri, função dos números inteiros p e q, podemos
escrever:

ri = ri (p,q) (4.1)

O problema consiste em tomar uma sequência de decisões em cada etapa, tal que
o valor final do resultado atinja o seu valor máximo.

N
R n = ∑ ri ( q i −1 , q i ) (4.2)
i =1

Existem duas formas de resolução


a. Resolução directa
b. programação dinâmica

Resolução directa
Consiste em calcular o efeito de n passagens possíveis da etapa i-1 para a etapa
i e escolher a estratégia óptima. Para o processo em estudo haveria n N variantes
de passagens do ponto inicial até ao final.
Programação dinâmica 3

Para n=3 e N=10 seria nN=310

Se se analisar uma variante por segundo seriam necessários 16 h!!

4.2. Programação dinâmica

Consiste em analisar as passagens possíveis de n estados da etapa N. Então é


necessário avaliar n2 passagens possíveis para cada etapa e no total ter-se-à de
avaliar N.m2 passagens possíveis. De notar que a decisão tomada para a etapa
N-1 é sempre óptima para qualquer estratégia de comando tomada para as etapas
anteriores. Então as passagens da etapa N-1 para N, de N-2 para N-1,..., 1 para 2
dão a estratégia óptima de comando.

Exemplo de cálculo 4.1


Consideremos um sistema com 4 etapas e com 3 estados possíveis em cada
etapa. O objectivo é determinar a estratégia óptima (determinado pelo valor
máximo da função objectiva) da passagem da etapa N=1 até N=4. O valor da
função para cada passagem está representado na figura.

1 1 1 1 1

2 2 2 2 2

3 3 3 3 3

N=1 N=2 N=3 N=4

Figura 4.2. Sistema com 4 etapas e com 3 estados possíveis em cada etapa

As matrizes de valores da função para cada passagem são as seguintes:

Matriz 1 (N = 1)
estados 1 2 3
1 4 3 3
2 3 5 4
3 4 6 3
Programação dinâmica 4
Matriz 2 (N = 2)
estados 1 2 3
1 5 4 3
2 4 3 6
3 4 5 5

Matriz 3 (N = 3)
estados 1 2 3
1 5 6 3
2 3 6 3
3 3 5 2

Matriz 4 (N = 4)
estados 1 2 3
1 4 6 7
2 5 2 3
3 5 7 9

Para optimizar é necessário calcular o valor da função objectiva para cada valor
da variável de entrada, determinada pelo comando da última etapa e determina-se
o valor máximo dessa função objectiva.
A programação dinâmica recomenda a resolução da última etapa tendo como
dados os valores do sistema na etapa imediatamente anterior.

Para N = 4.
1 1

2 2

3 3

N=4

Fig.4.3. Etapa do processo representando a passagem da etapa N-1 para N.

Da matriz 4 temos os seguintes valores:


qN(1) = 3  R = 7
qN(2) = 1  R = 5
qN(3) = 3  R = 9
Programação dinâmica 5
Para a análise das etapas seguintes ficamos apenas com as passagens óptimas.

Para N = 3

1 1 1

2 2 2
7

3 3 9 3

N=3 N=4

Fig.4.4. Passagens óptimas da etapa N-1 para N.

Da matriz 3 temos os seguintes valores:

qN-1(1) = 1 R = 5 + 7 = 12
qN-1(1) = 3 R = 9 + 3 = 12

qN-1(2) = 3 R = 9 + 3 = 12
qN-1(3) = 3 R = 9 + 2 = 11

De notar que o caminho na etapa N-2 → N-1 é obtida pela soma do valor actual da
função objectiva da passagem N-1 → N e o novo valor da passagem da etapa N-2
→ N-1 em cada estado possível e no fim escolhe-se o óptimo.

Para N = 2
Programação dinâmica 6

1 1 12 1 1

12
2 2 2 7 2

12

3 3 11 3 9 3

N=2 N=3 N=4

Fig.4.5. Passagens óptimas da etapa N-2 pra N-1 e de N-1 para N.

Da matriz 2 temos os seguintes valores:

qN-2(1) = 1 R = 12 + 5 = 17
qN-2(2) = 3 R = 6 + 11 = 17
qN-2(3) = 2 R = 5 + 12 = 17

Consideremos finalmente a passagem da etapa N-4 até N (N=1).

1 1 17 1 12 1 1
5

12

2 2 2 2 7 2
17 17
12

3 3 3 11 3 9 3

N=1 N=2 N=3 N=4


Figura 4.6. Passagens óptimas da etapa N-3 até N.

Da matriz 1 temos os seguintes valores:


Programação dinâmica 7
qN-3(1) = 1 R = 17 + 4 = 21
qN-3(2) = 2 R = 17 + 5 = 22
qN-3(3) = 2 R = 17 + 6 = 23

Estas variantes seleccionadas são óptimas independemente do estado em que o


sistema se encontra na etapa anterior.
Admitindo que N-4 corresponde à entrada da 1ª etapa

1 21
1 17 1 12 1 1
5

12

2 22 2 2 2 7 2
17 17
12
23

3 3 3 11 3 9 3

N=1 N=2 N=3 N=4

Figura 4.7. Passagens óptimas da etapa N-4 até N.

Se na etapa N-4 a variável à entrada é fixa no estado (1), a estratégia óptima a


tomar será:

Estado 1: 1→1→1→3 R = 21
1→1→3→3 R = 21
Se é fixa no estado (2),
Estado 2: 2→3→3→3 R = 22
Se é fixa no estado (3),
Estado 3: 2→3→3→3 R = 23

4.3. Princípios de Programação Dinâmica

Os métodos de programação dinâmica aplicam-se com eficiência a processos com


várias etapas em série e são frequentes em Engenharia Química.

Etapa:
É um elemento do processo em estudo, que se obtém por decomposição do
processo num certo intervalo de tempo, ao longo da evolução do processo, ou
numa área ao longo do espaço do processo. No primeiro caso corresponde a um
certo intervalo de desenvolvimento do processo no segundo caso corresponde a
Programação dinâmica 8
um aparelho ou um seu elemento.
O estado de cada etapa caracteriza-se pelas suas variáveis de saída ou de
estado. Sendo um processo com várias etapas em série, as variáveis de saída da
etapa anterior são as variáveis de entrada da etapa seguinte.

Definições Básicas
Si - Possível estado de partida do sistema numa etapa.
xj - Possível estado de chegada do sistema numa etapa - decisão a tomar Xj(s)
Fj(s,x) Valor da função objectiva na passagem do estado s até ao estado de
chegada x.
Cs,x - Valor da função objectiva na passagem de estado inicial "s" ao estado final
"x" considerando apenas dois estados adjacentes.

fj(s,x) = fi+1*(s,x) + Cs,x

Exemplo de cálculo 4.2


Resolver o exercício 4.1 usando o Método Matricial

Assim começamos a optimização pela última etapa

Etapa n=4
x4 f4 = Cs,x Decisão ptimo
s4 1 2 3 x4*(s) f4*(s,x)
1 4 6 3 3 7
2 5 2 3 1 5
3 5 7 9 3 9

Nesta etapa, o valor da funcao objectiva e dado apenas pelo valor da passagem
entre os estados de partida e de chegada.

Etapa n=3
x3 f3 = Cs,x+ f4*(s,x) Decisão Optimo
s3 1 2 3 x3*(s) f3*(s,x)
1 5+7 6+5 3+9 1;3 12
2 3+7 6+5 3+9 3 12
3 3+7 5+5 2+9 3 11

Etapa n=2
x2 f2 = Cs,x+ f3*(s,x) Decisão Optimo
Programação dinâmica 9
s2 1 2 3 x2*(s) f2*(s,x)
1 5+12 4+12 3+11 1 17
2 4+12 3+12 6+11 3 17
3 4+12 5+12 5+11 2 17

Etapa n=1
x1 f1 = Cs,x+ f2*(s,x) Decisão Optimo
s1 1 2 3 x1*(s) f1*(s,x)
1 4+17 3+117 3+17 1 21
2 3+117 5+17 4+17 2 22
3 4+17 6+17 3+17 2 23

Assim temos:
Estratégia óptima global consegue-se partindo do estado inicial (3):

(3,2,3,3,3) → R = 23

Exemplo de cálculo 4.3


A figura 4.8 mostra um novo método de dessalinização da água. O sal é absorvido
num adsorvente sólido num processo de três estágios em equilíbrio.yi = kg sal/kg
H2O
xi = kg sal/kg adsorvente
Lsi = kg do adsorvente puro
O equilíbrio é definido pela equação de Freundlich
yi = xi /10

│ │ │
│LS1 │LS2 │LS3
│ │ │
│ ↓ │
água salgada┌──────┐ ┌──────┐ ┌──────┐
│ │ y1 │ │ y2 │ │ y3=0.0001
───────────→│ ├────────→│ ├───────→│ ├─────────→
y0=0.03 │ │ │ │ │ │G=1000kg/h
G=1000kg/h └──┬───┘ └──┬───┘ └──┬───┘
│ │ │
│x1 │ x2 │ x3
│Ls1 │ Ls2 │ Ls3
│ │ │

Figura 4.8. Sistema de dessalinização da água.


Resolução:
- Variáveis do estado: xi; yi
- Variáveis de comando: Lsi
Programação dinâmica 10
- Função objectiva: minimizar a quantidade do adsorvente puro a usar:

Z = Lsi + Ls2 + Ls3

A optimização aplicando a programação dinâmica começa na última etapa. Assim


definimos a equação do balanço mássico do processo na etapa 3:

G.(y2 - y3) = Ls3.x3

A quantidade de sal extraída na corrente da água salgada é igual a quantidade de


sal adsorvida pelo adsorvente sólido.
A quantidade do adsorvente sólido necessário é dado por:

X3 = Ls3

y2 − y3
Ls 3 = G ⋅
X3
de acordo com a relação de equilíbrio x3 = 10.y3
e substituindo na relação anterior tomando em conta que y3 = 0.0001 resulta:

 y2 
L s 3 = G − 0.1 = 10 6 y 2 − 100
 10 ∗ 0.0001 

com G = 1000 kg/h


O valor óptimo da função objectiva nesta etapa é dado por:

L*s 3 = Z 3 * = 10 6 ⋅ y 2 − 100

Passamos agora a optimizar a etapa N=2


Assim definimos a função objectiva nesta etapa:

Z2 = Ls2 + Ls3*

A quantidade Ls2 define-se pela equação do balanço mássico:

G(y1 - y2) = Ls2 .x2

Da relação de equilíbrio temos:

G.y1 = G.y2 + Ls2.10.y2

É preciso encontrar a relação y2=f(Ls2). Assim da última equação do balanço


mássico obtém-se y2:
Programação dinâmica 11
y1 ⋅ G 10 3 ⋅ y1 y1
y2 = = 3 =
G + 10 ⋅ Ls 2 10 + 10 ⋅ Ls 2 1 + 0.01Ls 2

E substituindo esta relação na função objectiva obtém-se:


10 6 ⋅ y1
F2 = Ls 2 + − 100
1 + 0.01Ls 2

e assim temos a função objectiva na 2ª equação em função apenas d variável de


comando Ls2. É necessário determinar o óptimo desta função.
Aplicando o método analítico, cálculo das derivadas tem-se:
dF2 0.01 ∗ 10 6 ⋅ y1
=1− =0
dLs 2 (1 + 0.01Ls 2 ) 2
A resolução desta equação obtém-se:

L*s 2 = 10 4 y1 − 100

y 2 = 0.01 y1

Optimização da etapa N=1

A função objectiva desta etapa define-se como:

F = Ls1+ Ls2* + Ls3*

= L s1 + 10 4 y1 + 10 6 y 2 − 200

= L s1 + 2.10 4 y1 − 200

Temos a função objectiva em função de y1. É preciso encontrar a relação y1 = f(Ls1)


Da equação do balanço mássico na etapa 1 temos:

Gy0 = Ls1.x1 + Gy1

Gy0= 10.y1.Ls1 + G.y1

Resultando que:
Gy 0 y0
y1 = =
G + 10 L s1 1 + 0.01Ls1
Programação dinâmica 12

e substituindo na função objectiva obtemos:


1

 y0 
2

F1 = Ls1 + 2,10 4   − 200


 1 + 0 . 01L s1 

Aplicando o método analítico de optimização determina-se o óptimo nesta etapa:

dF1 10 4 − 0.01y 0
= 1+ ⋅ =0
dL s1 y0 1 + 0.01L s1
1 + 0 L s1

A resolução desta equação resulta em:


L*s1 = 10 2 3 10 4 ⋅ y0 − 100
e
F1* = 102 3 10 4 y0 + 2.104 y1 − 300 = 1708.3kg

Solução final:

1ª etapa: y1 = 0.0045
L*s1 = 569.4 kg de solvente puro

2ª Etapa 2: y2 = 0.00067
Ls2* = 569.4 kg de solvente puro

3ª Etapa: y3 = 0.0001
Ls3* = 569.4 kg de solvente puro

Optimo Global: 1708.3 kg de solvente puro

Conclusão:
Fazendo uma análise dos dois exemplos apresentados anteriormente pode-se
chegar-se às seguintes conclusões:

A aplicação do método de programação dinâmica implica que:

- A decomposição do processo se faça de tal modo que cada uma das


etapas tenha variáveis de comando.
- A função objectiva global seja uma função aditiva das funções objectivas de
cada uma das etapas.

4.4. Princípio da Optimabilidade:

A estratégia óptima tem a propriedade de que qualquer que seja o estado inicial
Programação dinâmica 13
(0)
X 1 do processo com várias etapas em série, bem como o comando para a
primeira etapa X (1) 2, o conjunto de comandos das etapas posteriores X (1) 3
(i=1,2,3,...) corresponde à estratégia óptima UN-1 relativamente ao estado da 1ª
etapa.

Você também pode gostar