Sunteți pe pagina 1din 111

Investigação Operacional II

1
Fundamentos de Investigação Operacional

• Investigação Operacional = investigação das operações.

• Operação = conjunto de actos necessários para obter


determinado resultado.

• Investigação = pesquisa que conduz a resultados que são


imediatamente utilizáveis fora do domínio da ciência.

2
Investigação Operacional X Gestão

• Pesquisa Operacional e a Relação com o Processo


Decisório:

• Decisão pode ser descrita como o curso de ação


escolhido por alguém (pessoa, instituição) para alcançar
os objetivos desejados, ou seja, para resolver um
problema que incomoda (Andrade, 2000).

3
Investigação Operacional X Gestão

• CARACTERÍSTICAS DO PROCESSO DECISÓRIO


• Andrade (2000) destaca quatro características principais
do processo decisório.

• O processo de decisão é sequencial:


• É um processo complexo;
• É um processo que envolve valores subjetivos;
• É um processo desenvolvido dentro do ambiente
institucional com regras mais ou menos definidas e, até
certo ponto, inflexíveis.

4
Investigação Operacional X Gestão

CLASSIFICAÇÃO DAS DECISÕES

• Nível estratégico: decisões de nível estratégico


envolvem alto risco, e grandes montantes financeiros.
São de grande importância e abrangência;
• Nível tático: decisões de nível tático envolvem risco
médio e montantes financeiros menores que os
envolvidos nas decisões de nível estratégico;
• Nível operacional: decisões de nível operacional
envolvem baixos riscos e pequenos montantes
financeiros;

5
Investigação Operacional X Gestão

• QUALIDADE DAS DECISÕES

• O que significa ter qualidade nas decisões?


• É possível afirmar que existem decisões ótimas?
• O que é uma decisão de alta qualidade?
• É possível se obter o consenso sobre decisões
instituídas?
• Decisões irracionais podem ter sucesso?

6
Investigação Operacional X Gestão

• OBSTÁCULOS A UMA DECISÃO DE QUALIDADE

• Vários são os obstáculos que surgem para complicar o


processo de tomada de uma decisão. Alguns deles
dizem respeito ao caráter pessoal do administrador,
como a força do hábito e valores pessoais

7
Investigação Operacional X Gestão

• É o caso da seguinte desculpa: “Sempre fizemos dessa


forma”.
• Outro obstáculo que se apresenta relaciona-se às
questões políticas e às relações de poder no ambiente
empresarial: “Não podemos descontentar o Joãzinho
porque ele tem muito poder”.

• É o caso da seguinte desculpa: “Sempre fizemos dessa


forma”.
• Outro obstáculo que se apresenta relaciona-se às
questões políticas e às relações de poder no ambiente
empresarial: “Não podemos descontentar o Joãzinho
porque ele tem muito poder”.

8
Programação Dinâmica

9
Motivação

• Problema: determinar o caminho mais curto de 1 a 12 no


grafo abaixo
Trajetória ótima de
7 cada
4nó ao destino final
2 4 7
9 6
9 2 6 9
5 4
16 7 3 2
5 4 2 0
1 7 2
3 18 7 1 12
1 3
4 11 0
7 5 5 5
2 8 11
15 11
6
5
8
• Procedimento backwards
10
Motivação

• Problema: determinar o caminho mais curto de 1 a 12 no


grafo abaixo

9
Trajetória ótima do
2 4 nó inicial até cada nó
9 15
9 6
7 2 6 9
5 4
0 7 3 2
7 11 4 14 16
1 7 2 12
3 3 1
1 3 0
4 11
10 5 16 5
2 8 11
2 11
6
5
8
• Procedimento forward
11
Motivação

• Problema: determinar o caminho mais curto de 1 a 12 no


grafo abaixo
Trajetória ótima
através de cada nó
2 4 9+7
9 6
7+9 2 6 9
5 4
0+1 7 3 2
7 4 14+2 16+0
16 7 2 12
3 1
1 3 0
4 11
5 5
2 8 11
11
6
5
8
• Combinação das trajetórias ótimas
12
Motivação

• Problema: determinar o caminho mais curto de 1 a 12 no


grafo abaixo
Trajetória ótima através
de cada nó
2 4
9 6
6 9
2 5 4
7 3 2
7 4
1 7 2 12
3 1
1 3 0
4 11
10+7 5 5
2 8 11
11
6
5
8
• Combinação das trajetórias ótimas
13
Programação dinâmica

• Aplicação a problemas de decisões seqüenciais: cada decisão


aplicada a um estado em determinado estágio leva a um estado
do estágio imediatamente seguinte.

• Princípio da otimalidade: uma seqüência ótima de decisões tem


a propriedade de que quaisquer que sejam o estado e a decisão
inicial, as decisões remanescentes constituem uma seqüência
ótima de decisões com relação ao estado decorrente da primeira
decisão.

• Alternativamente: “toda subtrajetória da trajetória ótima é ótima


com relação a suas extremidades inicial e final”.

14
Programação dinâmica

• Método exato para resolver problemas de progamação inteira que


envolvem apenas decisões seqüenciais, nos quais cada nova decisão
depende apenas do estado do sistema, mas não das decisões
anteriores (isto é, da forma como este estado foi atingido).

• Principais conceitos envolvidos:


– estágios (etapas)
– estados
– decisões
– função critério a ser otimizada

15
Programação dinâmica
• Roteiro de aplicação:

– Identificar um modelo de decisões seqüenciais através de seus estágios.

– Assegurar-se de que cada solução viável (ou trajetória) pode ser vista
como uma seqüência de decisões tomadas a cada estágio, de modo tal
que seu custo seja igual à soma dos custos das decisões individuais.

– Definir o conceito de estado como a resultante de todas as decisões


relevantes tomadas no passado (caso forward).
(alternativamente, definir o conceito de estado como a resultante de todas
as decisões relevantes tomadas no futuro no caso backwards)

16
Programação dinâmica

• Roteiro de aplicação (continuação):

– Determinar as transições de estado possíveis.

– Atribuir o custo de cada transição de estado à decisão


correspondente.

– Escrever uma recursão que defina o custo ótimo do estado


inicial até o estado final.

• Exemplo de aplicação: problema da mochila

17
Problema da mochila

• Caso (1): os itens não podem ser fracionados e no


máximo uma unidade de cada item pode ser selecionada

• Problema de programação inteira


n

• As variáveis inteiras binárias (0- cjxj


maximizar
j 1
1) representam a decisão de
selecionar um objeto ou não. n
sujeitoa:  a j x j  b
• Solução não trivial! j 1

x j  0,1, j  1,..., n
• Ordenar as variáveis pelo índice
lucro/volume resolve o problema
linear apenas, mas não o de
programação inteira.
18
Problema da mochila

• Decomposição do problema em estágios

• Em vez se considerar uma solução (x1,x2,...,xn) completa de uma só


vez, visualizar o problema como se as decisões fossem tomadas para
um item de cada vez.

• Após k decisões, terão sido determinados quais dos primeiros k itens


devem ser selecionados e, conseqüentemente, terão sido
determinados os valores das variáveis x1,x2,...,xk.
k
• Neste ponto, o valor acumulado é
k
c x j j e o volume acumulado é

a x
j 1
j j .
j1

19
Problema da mochila
• Estágio:
cada variável do problema

• Estado:
volume total ocupado com as decisões já tomadas

• Decisão:
selecionar ou não um item (isto é, fazer xk=1)

• Custo da decisão de selecionar o item k:


aumento de ck unidades no lucro parcial acumulado

• Efeito da decisão de selecionar o item k:


aumento do volume ocupado (estado) em ak unidades

20
Problema da mochila
• Definição:
yk(u) = lucro máximo que pode ser obtido com volume total igual a u e
usando apenas itens do conjunto {1,...,k}

• Quanto vale y0(0)?


– y0(0) = 0 (sem objetos selecionados, o peso e o lucro são nulos)

• Definir yk(u) = - se é impossível obter um volume total igual a u


apenas com itens dentre os do conjunto {1,...,k}.

• Quanto valem y0(u) e yk(0)?


– y0(u) = - para u > 0 (impossível acumular peso sem itens)
– yk(0) = 0 para k = 1,2,...,n (nenhum item selecionado)

• Calcular yk(u) para k = 1,...,n e u = 0,...b, a partir de y0(0).

21
Problema da mochila
• yk(u) = lucro máximo que pode ser obtido com volume total igual a u e
usando apenas itens do conjunto {1,...,k}

• Calcular yk(u) para k = 1,...,n e u = 0,...b:

0, u  0; k  0

yk (u )   , u  1,..., b;k  0
max y (u ), y (u  a )  c , u  0,..., b; k  1,..., n
 k 1 k 1 k k

• Interpretação: há duas alternativas para se obter yk(u), dependendo do


item k ser selecionado ou não
– yk(u) = yk-1(u), se o item k não é usado
– yk(u) = yk-1(u-ak)+ck, se o item k é usado

22
Problema da mochila

0, u  0; k  0

yk (u )   , u  1,..., b;k  0
max y (u ), y (u  a )  c , u  0,..., b; k  1,..., n
 k 1 k 1 k k

• Observar que o lucro associado ao estado resultante de uma decisão


depende apenas do valor desta decisão e do estado atual, mas não
depende da forma como este último foi atingido.

23
Problema da mochila

y5(4) = max 3x1  2 x2  2 x3  x4  3x5


sujeito a : 3x1  3x2  x3  x4  2 x5  4
x j {0,1}, j  1,...,5

24
Problema da mochila

max 3x1  2 x2  2 x3  x4  3x5


sujeito a : 3x1  3x2  x3  x4  2 x5  4
x j {0,1}, j  1,...,5

y5(b) = max 3x1  2 x2  2 x3  x4  3x5


sujeito a : 3x1  3x2  x3  x4  2 x5  b
x j {0,1}, j  1,...,5

Valor ótimo = maxb=0,...,4 {y5(b)}


25
Problema da mochila

u=4 y0(4) y5(4)

u=3 y0(3) y5(3)

u=2 y0(2) y5(2)

u=1 y0(1) y5(1)

u=0 y0(0) y1(0) y2(0) y3(0) y4(0) y5(0)

k=0 k=1 k=2 k=3 k=4 k=5


26
Problema da mochila

u=4 y0(4)

u=3 y0(3)

u=2 y0(2)

u=1 y0(1)

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


27
Problema da mochila

u=4 -

u=3 -

u=2 -

u=1 -

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


28
Problema da mochila

u=4 - ?

u=3 - ?

u=2 - ?

u=1 - ?

u=0 0 ?

k=0 k=1 k=2 k=3 k=4 k=5


29
Problema da mochila

u=4 -

u=3 -

u=2 - -

u=1 - -

u=0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


30
Problema da mochila

u=4 -

u=3 - 3

u=2 - -

u=1 - -

u=0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


31
Problema da mochila

u=4 - -

u=3 - 3

u=2 - -

u=1 - -

u=0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


32
Problema da mochila

u=4 - -

u=3 - 3

u=2 - -

u=1 - -

u=0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


33
Problema da mochila

u=4 - - ?

u=3 - 3 ?

u=2 - - ?

u=1 - - ?

u=0 0 0 ?

k=0 k=1 k=2 k=3 k=4 k=5


34
Problema da mochila

u=4 - -

u=3 - 3

u=2 - -

u=1 - -

u=0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


35
Problema da mochila

u=4 - -

u=3 - 3

u=2 - - -

u=1 - - -

u=0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


36
Problema da mochila

u=4 - -

u=3 - 3

u=2 - - -
2
u=1 - - -

u=0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


37
Problema da mochila

u=4 - -

0
u=3 - 3

u=2 - - -
2
u=1 - - -

u=0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


38
Problema da mochila

u=4 - -

0
u=3 - 3 3

u=2 - - -
2
u=1 - - -

u=0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


39
Problema da mochila

u=4 - - -

u=3 - 3 3

u=2 - - -

u=1 - - -

u=0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


40
Problema da mochila

u=4 - - -

u=3 - 3 3

u=2 - - -

u=1 - - -

u=0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


41
Problema da mochila

u=4 - - - ?

u=3 - 3 3 ?

u=2 - - - ?

u=1 - - - ?

u=0 0 0 0 ?

k=0 k=1 k=2 k=3 k=4 k=5


42
Problema da mochila

u=4 - - -

u=3 - 3 3

u=2 - - -

u=1 - - -

u=0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


43
Problema da mochila

u=4 - - -

u=3 - 3 3

u=2 - - -

u=1 - - - 2

u=0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


44
Problema da mochila

u=4 - - -

u=3 - 3 3

u=2 - - - -

u=1 - - - 2

u=0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


45
Problema da mochila

u=4 - - -

u=3 - 3 3

2
u=2 - - - -

u=1 - - - 2

u=0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


46
Problema da mochila

u=4 - - -

u=3 - 3 3
0

2
u=2 - - - -

u=1 - - - 2

u=0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


47
Problema da mochila

u=4 - - -

u=3 - 3 3
0 3

2
u=2 - - - -

u=1 - - - 2

u=0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


48
Problema da mochila

u=4 - - - 5

2
u=3 - 3 3 3

u=2 - - - -

u=1 - - - 2

u=0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


49
Problema da mochila

u=4 - - - 5

u=3 - 3 3 3

u=2 - - - -

u=1 - - - 2

u=0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


50
Problema da mochila

u=4 - - - 5 ?

u=3 - 3 3 3 ?

u=2 - - - - ?

u=1 - - - 2 ?

u=0 0 0 0 0 ?

k=0 k=1 k=2 k=3 k=4 k=5


51
Problema da mochila

u=4 - - - 5

u=3 - 3 3 3

u=2 - - - -

u=1 - - - 2

u=0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


52
Problema da mochila

u=4 - - - 5

u=3 - 3 3 3

u=2 - - - -

0
u=1 - - - 2

1
u=0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


53
Problema da mochila

u=4 - - - 5

u=3 - 3 3 3

u=2 - - - -

u=1 - - - 2 2

u=0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


54
Problema da mochila

u=4 - - - 5

u=3 - 3 3 3

u=2 - - - - 3

u=1 - - - 2 2

u=0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


55
Problema da mochila

u=4 - - - 5

u=3 - 3 3 3
0 3

u=2 - - - - 3

u=1 - - - 2 2

u=0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


56
Problema da mochila

u=4 - - - 5

u=3 - 3 3 3 3

u=2 - - - - 3

u=1 - - - 2 2

u=0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


57
Problema da mochila

u=4 - - - 5

1
u=3 - 3 3 3 3

u=2 - - - - 3

u=1 - - - 2 2

u=0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


58
Problema da mochila

0
u=4 - - - 5

1
u=3 - 3 3 3 3

u=2 - - - - 3

u=1 - - - 2 2

u=0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


59
Problema da mochila

0
u=4 - - - 5 5

1
u=3 - 3 3 3 3

u=2 - - - - 3

u=1 - - - 2 2

u=0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


60
Problema da mochila

u=4 - - - 5 5

u=3 - 3 3 3 3

u=2 - - - - 3

u=1 - - - 2 2

u=0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


61
Problema da mochila

u=4 - - - 5 5 ?

u=3 - 3 3 3 3 ?

u=2 - - - - 3 ?

u=1 - - - 2 2 ?

u=0 0 0 0 0 0 ?

k=0 k=1 k=2 k=3 k=4 k=5


62
Problema da mochila

u=4 - - - 5 5

u=3 - 3 3 3 3

u=2 - - - - 3

u=1 - - - 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


63
Problema da mochila

u=4 - - - 5 5

u=3 - 3 3 3 3

u=2 - - - - 3

0
u=1 - - - 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


64
Problema da mochila

u=4 - - - 5 5

u=3 - 3 3 3 3

u=2 - - - - 3

0
u=1 - - - 2 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


65
Problema da mochila

u=4 - - - 5 5

u=3 - 3 3 3 3

u=2 - - - - 3

u=1 - - - 2 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


66
Problema da mochila

u=4 - - - 5 5

u=3 - 3 3 3 3

u=2 - - - - 3 0

3
u=1 - - - 2 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


67
Problema da mochila

u=4 - - - 5 5

u=3 - 3 3 3 3

u=2 - - - - 3 0 3

3
u=1 - - - 2 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


68
Problema da mochila

u=4 - - - 5 5

u=3 - 3 3 3 3

u=2 - - - - 3 3

u=1 - - - 2 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


69
Problema da mochila

u=4 - - - 5 5

u=3 - 3 3 3 3
0

3
u=2 - - - - 3 3

u=1 - - - 2 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


70
Problema da mochila

u=4 - - - 5 5

u=3 - 3 3 3 3
0 5

3
u=2 - - - - 3 3

u=1 - - - 2 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


71
Problema da mochila

u=4 - - - 5 5

u=3 - 3 3 3 3 5

u=2 - - - - 3 3

u=1 - - - 2 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


72
Problema da mochila

0
u=4 - - - 5 5

3
u=3 - 3 3 3 3 5

u=2 - - - - 3 3

u=1 - - - 2 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


73
Problema da mochila

0
u=4 - - - 5 5 6

3
u=3 - 3 3 3 3 5

u=2 - - - - 3 3

u=1 - - - 2 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


74
Problema da mochila

u=4 - - - 5 5 6

u=3 - 3 3 3 3 5

u=2 - - - - 3 3

u=1 - - - 2 2 2

u=0 0 0 0 0 0 0

k=0 k=1 k=2 k=3 k=4 k=5


75
Problema da mochila

u=4 - - - 5 5 6 y5(4) = 6

u=3 - 3 3 3 3 5 y5(3) = 5

u=2 - - - - 3 3 y5(2) = 3

u=1 - - - 2 2 2 y5(1) = 2

u=0 0 0 0 0 0 0 y5(0) = 0

k=0 k=1 k=2 k=3 k=4 k=5


76
Problema da mochila

u=4 - - - 5 5 6 y5(4) = 6

u=3 - 3 3 3 3 5 y5(3) = 5

u=2 - - - - 3 3 y5(2) = 3

u=1 - - - 2 2 2 y5(1) = 2

u=0 0 0 0 0 0 0 y5(0) = 0

k=0 k=1 k=2 k=3 k=4 k=5


77
Problema da mochila

u=4 - - - 5 5 6 y5(4) = 6

u=3 - 3 3 3 3 5 y5(3) = 5

u=2 - - - - 3 3 y5(2) = 3

u=1 - - - 2 2 2 y5(1) = 2

u=0 0 0 0 0 0 0 y5(0) = 0

k=0 k=1 k=2 k=3 k=4 k=5


78
Problema da mochila
x5=1

u=4 - - - 5 5 6 y5(4) = 6

u=3 - 3 3 3 3 5 y5(3) = 5

u=2 - - - - 3 3 y5(2) = 3

u=1 - - - 2 2 2 y5(1) = 2

u=0 0 0 0 0 0 0 y5(0) = 0

k=0 k=1 k=2 k=3 k=4 k=5


79
Problema da mochila
x4=1 x5=1

u=4 - - - 5 5 6 y5(4) = 6

u=3 - 3 3 3 3 5 y5(3) = 5

u=2 - - - - 3 3 y5(2) = 3

u=1 - - - 2 2 2 y5(1) = 2

u=0 0 0 0 0 0 0 y5(0) = 0

k=0 k=1 k=2 k=3 k=4 k=5


80
Problema da mochila
x3=1 x4=1 x5=1

u=4 - - - 5 5 6 y5(4) = 6

u=3 - 3 3 3 3 5 y5(3) = 5

u=2 - - - - 3 3 y5(2) = 3

u=1 - - - 2 2 2 y5(1) = 2

u=0 0 0 0 0 0 0 y5(0) = 0

k=0 k=1 k=2 k=3 k=4 k=5


81
Problema da mochila
x2=0 x3=1 x4=1 x5=1

u=4 - - - 5 5 6 y5(4) = 6

u=3 - 3 3 3 3 5 y5(3) = 5

u=2 - - - - 3 3 y5(2) = 3

u=1 - - - 2 2 2 y5(1) = 2

u=0 0 0 0 0 0 0 y5(0) = 0

k=0 k=1 k=2 k=3 k=4 k=5


82
Problema da mochila
x1=0 x2=0 x3=1 x4=1 x5=1

u=4 - - - 5 5 6 y5(4) = 6

u=3 - 3 3 3 3 5 y5(3) = 5

u=2 - - - - 3 3 y5(2) = 3

u=1 - - - 2 2 2 y5(1) = 2

u=0 0 0 0 0 0 0 y5(0) = 0

k=0 k=1 k=2 k=3 k=4 k=5


83
Problema da mochila

• Os estados em verde e as transições possíveis (arcos com setas)


definem um grafo multiestágio para a aplicação da recursão de
programação dinâmica.

• Número de operações (tempo de processamento) diretamente


proporcional ao produto do tamanho da mochila pelo número de
variáveis (preencher inteiramente a matriz de dimensões (b+1)x(n+1)):
aplicabilidade limitada aos valores de n e de b

• Caso seja possível levar múltiplas cópias de cada item, aumenta o


número de decisões e a complexidade do problema.

84
Programação dinâmica

• Redução no número total de operações: p “linhas”


1 2 ... n-1 n B
Cálculo da menor
trajetória de A a B
Total de adições?
Total de
trajetórias
de A a B: p n
Cálculo exaustivo:
n.pn
Programação
A dinâmica:
p + p.p.(n-1) + p 85 n.p2
Programação dinâmica
• Observar que o valor da função objetivo associado a um estado
depende apenas dele, mas não depende da forma como foi atingido.

• O fato de serem implicitamente descartadas sub-trajetórias não-ótimas


é que leva à redução significativa do número de operações.

86
Programação dinâmica

• Identificar decisões e estágios

• Identificar o critério de otimização

• Construir a função critério


– Identificar o critério de otimalidade
– Para cada decisão relacionar recursivamente os valores do critério
definindo as variáveis de estado necessários

• Considerando as variáveis de estado, fornecer condições de


contorno para a função critério.

• Determinar a política ótima para cada estágio e estado.

87
Programação dinâmica

• (I) Problema de otimização de investimentos: Considere-se um


conjunto de n possíveis investimentos, nos quais é possível
aplicar no máximo um total de M unidades monetárias. Seja cj(k)
o retorno obtido com a aplicação de 0  k  M unidades
monetárias no investimento j = 1,...,n. Determinar a aplicação
ótima a ser feita em cada investimento, de modo a maximizar o
retorno total. Resolver o problema para n = 3 e M = 4,
considerando a matriz de retornos fornecida a seguir:

88
Programação dinâmica

k c1(k) c2(k) c3(k)

0 0 0 0

1 3 1 2

2 7 2 4

3 11 4 6

4 12 8 8

89
Programação dinâmica

• Estágio:
– cada investimento k = 1, 2, 3 considerado

• Estado:
– total ainda disponível para ser aplicado nos investimentos k, k+1, …, n
– outra alternativa: total aplicado nos investimentos 1, 2, …, k

• Decisão:
– quanto aplicar no investimento k

• Recursão:
– Rk(x) = max0yx {ck(y) + Rk+1(x-y)}

90
Programação dinâmica

• Condições de contorno:
– R4(0) = 0
Todos os recursos devem ser usados nos três investimentos.

• Valor máximo do retorno obtido:


– R1(4) = ?
Maximizar o retorno obtido com a aplicação de um total de quatro
unidades nos investimentos 1, 2, 3.

91
Programação dinâmica

Estado
inicial:
R1(4) = ?

Estado
final:
Investimento Investimento Investimento R4(0) = 0
92
1 2 3
Programação dinâmica

4
Estado
inicial:
R1(4) = ?

Estado
0 final:
Investimento Investimento Investimento R4(0) = 0
93
1 2 3
Programação dinâmica

4 4
Estado
inicial: 3
R1(4) = ?
2

1
Estado
0 0 final:
Investimento Investimento Investimento R4(0) = 0
94
1 2 3
Programação dinâmica

4 4 4
Estado
inicial: 3 3
R1(4) = ?
2 2

1 1
Estado
0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
95
1 2 3
Programação dinâmica
0 4 4
4
Estado 3
inicial: 3 3
7
R1(4) = ?
11 2 2

12
1 1
Estado
0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
96
1 2 3
Programação dinâmica
0 0
4 4 4
Estado 3 1
inicial: 3 3
7
R1(4) = ? 2
11 2 2
4
12
1 1
8 Estado
0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
97
1 2 3
Programação dinâmica
0 0
4 4 4
Estado 3 1
inicial: 0
3 3
7
R1(4) = ? 4 1 2
11 2 2
4
2
12
1 1
8 Estado
0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
98
1 2 3
Programação dinâmica
0 0
4 4 4
Estado 3 1
inicial: 0
3 3
7
R1(4) = ? 4 1 2
11 2 0 2
4
21 2
12
1 1
8 Estado
0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
99
1 2 3
Programação dinâmica
0 0
4 4 4
Estado 3 1
inicial: 0
3 3
7
R1(4) = ? 4 1 2
11 2 0 2
4
21 2
12 0
1 1
1
8 Estado
0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
100
1 2 3
Programação dinâmica
0 0
4 4 4
Estado 3 1
inicial: 0
3 3
7
R1(4) = ? 4 1 2
11 2 0 2
4
21 2
12 0
1 1
1
8 Estado
0 0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
101
1 2 3
Programação dinâmica
0 0
4 4 4
Estado 3 1 8
inicial: 0
3 3
7
R1(4) = ? 6
4 1 2
11 2 0 2
4
21 2 4
12 0
1 1
1 2
8 Estado
0 0 0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
102
1 2 3
Programação dinâmica
0 0
4 4 4
Estado 3 1 8
inicial: 0
3 3
7
R1(4) = ? 6
4 1 2
11 2 0 2
4
21 2 4
12 0
1 1
1 2
8 0 Estado
0 0 0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
103
1 2 3
Programação dinâmica
0 0 8
4 4 4
Estado 3 1 8
6
inicial: 0
3 3
7
R1(4) = ? 6
4 1 2
4
11 2 0 2
4
21 2 2 4
12 0
1 1
1 2
8 0 Estado
0
0 0 0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
104
1 2 3
Programação dinâmica
0 8 0 8
4 4 4
Estado 3 1 8
6
inicial: 0
3 3
7
R1(4) = ? 6
4 1 2
4
11 2 0 2
4
21 2 2 4
12 0
1 1
1 2
8 0 Estado
0
0 0 0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
105
1 2 3
Programação dinâmica
0 8 0 8
4 4 4
Estado 3 1 8
6 6
inicial: 0
3 3
7
R1(4) = ? 6
4 1 2
4
11 2 0 2
4
21 2 2 4
12 0
1 1
1 2
8 0 Estado
0
0 0 0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
106
1 2 3
Programação dinâmica
0 8 0 8
4 4 4
Estado 3 1 8
6 6
inicial: 0
3 3
7
R1(4) = ? 6
4 1 2
4 4
11 2 0 2
4
21 2 2 4
12 0
1 1
1 2
8 0 Estado
0
0 0 0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
107
1 2 3
Programação dinâmica
0 8 0 8
4 4 4
Estado 3 1 8
6 6
inicial: 0
3 3
7
R1(4) = ? 6
4 1 2
4 4
11 2 0 2
4
1 2 2 4
2 2
12 0
1 1
1 2
8 0 Estado
0
0 0 0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
108
1 2 3
Programação dinâmica
0 8 0 8
4 4 4
Estado 3 1 8
6 6
inicial: 0
3 3
7
R1(4) = ? 6
4 1 2
4 4
11 2 0 2
4
1 2 2 4
2 2
12 0
1 1
1 2
8 0 Estado
0 0
0 0 0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
109
1 2 3
Programação dinâmica
13 0 8 0 8
4 4 4
Estado 3 1 8
6 6
inicial: 0
3 3
7
R1(4) = ? 6
4 1 2
4 4
11 2 0 2
4
1 2 2 4
2 2
12 0
1 1
1 2
8 0 Estado
0 0
0 0 0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
110
1 2 3
Programação dinâmica
13 0 8 0 8
4 4 4
Estado 3 1 8
6 6 Solução ótima:
inicial: 0
7 3 3 projeto 1: 3 unidades
R1(4) = ? 6 projeto 2: 0 unidades
4 1 2
4 4
11 2 0 projeto 3: 1 unidade
2
4 Retorno total = 13
1 2 2 4
2 2
12 0
1 1
1 2
8 0 Estado
0 0
0 0 0 0 0 final:
Investimento Investimento Investimento R4(0) = 0
111
1 2 3

S-ar putea să vă placă și