Documente Academic
Documente Profesional
Documente Cultură
1
Fundamentos de Investigação Operacional
2
Investigação Operacional X Gestão
3
Investigação Operacional X Gestão
4
Investigação Operacional X Gestão
5
Investigação Operacional X Gestão
6
Investigação Operacional X Gestão
7
Investigação Operacional X Gestão
8
Programação Dinâmica
9
Motivação
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
14
Programação dinâmica
15
Programação dinâmica
• Roteiro de aplicação:
– 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.
16
Programação dinâmica
17
Problema da mochila
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
a x
j 1
j j .
j1
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)
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}
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}
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
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
23
Problema da mochila
24
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
u=4 -
u=3 -
u=2 -
u=1 -
u=0 0 0 0 0 0 0
u=4 - ?
u=3 - ?
u=2 - ?
u=1 - ?
u=0 0 ?
u=4 -
u=3 -
u=2 - -
u=1 - -
u=0 0 0
u=4 -
u=3 - 3
u=2 - -
u=1 - -
u=0 0 0
u=4 - -
u=3 - 3
u=2 - -
u=1 - -
u=0 0 0
u=4 - -
u=3 - 3
u=2 - -
u=1 - -
u=0 0 0
u=4 - - ?
u=3 - 3 ?
u=2 - - ?
u=1 - - ?
u=0 0 0 ?
u=4 - -
u=3 - 3
u=2 - -
u=1 - -
u=0 0 0 0
u=4 - -
u=3 - 3
u=2 - - -
u=1 - - -
u=0 0 0 0
u=4 - -
u=3 - 3
u=2 - - -
2
u=1 - - -
u=0 0 0 0
u=4 - -
0
u=3 - 3
u=2 - - -
2
u=1 - - -
u=0 0 0 0
u=4 - -
0
u=3 - 3 3
u=2 - - -
2
u=1 - - -
u=0 0 0 0
u=4 - - -
u=3 - 3 3
u=2 - - -
u=1 - - -
u=0 0 0 0
u=4 - - -
u=3 - 3 3
u=2 - - -
u=1 - - -
u=0 0 0 0
u=4 - - - ?
u=3 - 3 3 ?
u=2 - - - ?
u=1 - - - ?
u=0 0 0 0 ?
u=4 - - -
u=3 - 3 3
u=2 - - -
u=1 - - -
u=0 0 0 0 0
u=4 - - -
u=3 - 3 3
u=2 - - -
u=1 - - - 2
u=0 0 0 0 0
u=4 - - -
u=3 - 3 3
u=2 - - - -
u=1 - - - 2
u=0 0 0 0 0
u=4 - - -
u=3 - 3 3
2
u=2 - - - -
u=1 - - - 2
u=0 0 0 0 0
u=4 - - -
u=3 - 3 3
0
2
u=2 - - - -
u=1 - - - 2
u=0 0 0 0 0
u=4 - - -
u=3 - 3 3
0 3
2
u=2 - - - -
u=1 - - - 2
u=0 0 0 0 0
u=4 - - - 5
2
u=3 - 3 3 3
u=2 - - - -
u=1 - - - 2
u=0 0 0 0 0
u=4 - - - 5
u=3 - 3 3 3
u=2 - - - -
u=1 - - - 2
u=0 0 0 0 0
u=4 - - - 5 ?
u=3 - 3 3 3 ?
u=2 - - - - ?
u=1 - - - 2 ?
u=0 0 0 0 0 ?
u=4 - - - 5
u=3 - 3 3 3
u=2 - - - -
u=1 - - - 2
u=0 0 0 0 0 0
u=4 - - - 5
u=3 - 3 3 3
u=2 - - - -
0
u=1 - - - 2
1
u=0 0 0 0 0 0
u=4 - - - 5
u=3 - 3 3 3
u=2 - - - -
u=1 - - - 2 2
u=0 0 0 0 0 0
u=4 - - - 5
u=3 - 3 3 3
u=2 - - - - 3
u=1 - - - 2 2
u=0 0 0 0 0 0
u=4 - - - 5
u=3 - 3 3 3
0 3
u=2 - - - - 3
u=1 - - - 2 2
u=0 0 0 0 0 0
u=4 - - - 5
u=3 - 3 3 3 3
u=2 - - - - 3
u=1 - - - 2 2
u=0 0 0 0 0 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
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
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
u=4 - - - 5 5
u=3 - 3 3 3 3
u=2 - - - - 3
u=1 - - - 2 2
u=0 0 0 0 0 0
u=4 - - - 5 5 ?
u=3 - 3 3 3 3 ?
u=2 - - - - 3 ?
u=1 - - - 2 2 ?
u=0 0 0 0 0 0 ?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
84
Programação dinâmica
86
Programação dinâmica
87
Programação dinâmica
88
Programação dinâmica
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) = max0yx {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.
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