Documentos de Académico
Documentos de Profesional
Documentos de Cultura
08 1 Programacion Dinamica
08 1 Programacion Dinamica
SAN PEDRO
FACULTAD DE INGENIERIA
CURSO
INVESTIGACIN OPERATIVA
PROGRAMACION DINAMICA
DOCENTE:
ING. SANTOS GABRIEL BLAS
1
27/10/16
Investigacin Operativa
Modelos de la IO
Modelos de IO
Determinsticos
Optimizacin
Lineal
Hbridos
Optimizacin
no Lineal
Programacin
Programacin
Lineal
Lineal
Mtodos
Clsicos
Transporte y
Asignacin
Mtodos
de bsqueda
Prog Entera
y 0,1
Programacin
no lineal
Redes
Programacin
Dinmica
Estocsticos
Cadenas
de Markov
Teora de
Inventarios
Teora de
Colas
Simulacin
Procesos
Estocsticos
Pert / CPM
Heursticas
Teora de
Decisiones
y Juegos
Programacin Dinmica
Una tarde de verano, siete bandidos que estuvieron
tomando toda la maana tuvieron una discusin sobre quin
era el mejor tirador. Como no pudieron ponerse de acuerdo
se batieron a duelo. Salieron tambalendose y tomaron
posiciones tal como se muestra en el diagrama.
Sus nombres eran Al, Beto, Cuco, Domingo, Esteban,
Franco y Gus.
Como puede observarse en la figura, cada hombre poda
dispararle a otros dos nicamente, de manera que sin
moverse comenzaron a disparar. Domingo fue el primero
en caer muerto debido a un tiro de Al. Cuando termin la
batalla el nico vivo era Al. Con esta informacin descubra
quin y en que orden fueron cayendo los seis hombres.
Programacin Dinmica
B
C
G
D
F
E
Programacin Dinmica
A
Si iniciamos al revs,
es decir, por el ltimo
difunto, tenemos que:
B
C
Al debi liquidar a
Esteban, por que de otra
forma Esteban lo hubiese
ultimado a l.
Entonces,
Esteban
dispar,
previamente,
sobre Beto.
F
E
Programacin Dinmica
La programacin dinmica es una tcnica que se utiliza para
resolver diversos problemas de optimizacin.
Esta tcnica llega a la solucin trabajando hacia atrs
partiendo del final del problema hacia el principio, por lo que
un problema enorme e inmanejable se convierte en una
serie de problemas ms pequeos y manejables.
Programacin Dinmica
Acertijo de las cerillas:
Suponga que hay 30 cerillas sobre una mesa. Yo
empiezo eligiendo 1, 2 3 cerillas. Luego mi
contrincante debe tomar 1, 2 3 cerillas. As
continuamos hasta que alguno de los jugadores
toma la ltima cerilla. Este jugador es el que pierde.
Cmo puedo yo (el primer jugador) estar seguro de
ganar el juego?
Acertijo de las tazas de leche
Tengo una taza de 9 onzas y otra de 4 onzas. Mi
madre me pidi traer a casa exactamente 6 onzas
de leche. Cmo puedo cumplir lo pedido?
Programacin Dinmica
Naturaleza recursiva:
Los clculos de programacin dinmica se hacen en
forma recursiva, ya que la solucin ptima de un
subproblema se usa como dato para el siguiente
subproblema.
Para cuando se resuelve el ltimo subproblema queda
a la mano la solucin ptima de todo el problema.
La forma en la que se hacen los clculos recursivos
dependen de cmo se descomponga el problema
original.
En particular, los subproblemas se vinculan
normalmente mediante restricciones comunes.
Programacin Dinmica
Kansas
City
680
610
580
790
Denver
550
Nueva York
900
Nashville
760
Etapa 1
1050
700
Lousville
10
San
Antonio
790
510
Etapa 2
1390
940
660
Los
ngeles
Omaha
770
1030
540
790
270
Dallas
830
Etapa 3
Etapa 4
Etapa 5
Kansas
City
680
610
580
790
Denver
550
Nueva York
900
Nashville
760
Etapa 1
1050
700
Lousville
10
San
Antonio
790
510
Etapa 2
1390
940
660
Los
ngeles
Omaha
770
1030
540
790
270
Dallas
830
Etapa 3
Etapa 4
Etapa 5
Clculos de la Etapa 4
Determinamos el camino
ms corto desde cada ciudad
de la etapa 4 hasta L. A.
Como hay un solo camino
desde
cada
ciudad,
observamos que:
f4(8) = 1030
f4(9) = 1390
Denver
8
1030
Los
ngeles
1390
San
Antonio
9
Etapa 4
10
Etapa 5
Clculos de la Etapa 3
Kansas
City
5
790
Determinar f3(6)
Omaha
Los
ngeles
1390
940
San
Antonio
790
Determinar f3(7)
C79 + f4(9) = 270 + 1390 = 1660 * (7-9-10)
1030
540
Denver
8
610
Dallas
7
E3
270
E4
10
E5
Clculos de la Etapa 2
Determinar f2(3)
Determinar f2(4)
680
5
610
580
790
760
6
1390
790
510
1050
700
830
E2
10
940
660
1030
540
790
7
E3
270
E4
E5
Clculos de la Etapa 1
Clculos de la Etapa 1
Determinar f1(1):
C12 + f2(2) = 550 + 2320 = 2870
C13 + f2(3) = 900 + 2220 = 3120
C14 + f2(4) = 770 + 2150 = 2920
Kansas
City
680
610
580
790
Denver
550
Nueva York
900
Nashville
760
Etapa 1
1050
700
Lousville
10
San
Antonio
790
510
Etapa 2
1390
940
660
Los
ngeles
Omaha
770
1030
540
790
270
Dallas
830
Etapa 3
Etapa 4
Etapa 5
Programacin Dinmica
Programacin Dinmica
Suponga que se va a llenar una mochila de 10 lb con los
productos de la tabla siguiente:
Peso y beneficio para el ejemplo de la mochila
Producto
Peso(lb)
Beneficio
11
12
Solucin:
As tenemos b1(x1) = 11x1, b2(x2) = 7x2, b3(x3) = 12x3,
p1(x1) = 4x1, p2(x2) = 3x2, p3(x3) = 5x3
Definamos ft(d) como el mximo beneficio que se puede
conseguir con una mochila de d libras que se llena con
productos del tipo t, t+1, ,3
Programacin Dinmica
Clculos de la etapa 3
Peso(lb)
Beneficio
11
12
f3(10) = 24
f3(5) = f3(6) = f3(7) =f3(8) =f3(9) = 12
f3(0) = f3(1) = f3(2) =f3(3) =f3(4) = 0
x3(10) = 2
x3(9) = x3(8) = x3(7) =x3(6) =x3(5) = 1
Programacin Dinmica
Clculos de la etapa 2
Programacin Dinmica
Clculos de la etapa 2
Programacin Dinmica
Programacin Dinmica
Clculos de la etapa 2
Programacin Dinmica
Clculos de la etapa 1: f1 (d) = Max x1 {11x1 + f2 (d 4x1)}
Programacin Dinmica
Clculos de la etapa 1: f1 (d) = Max x1 {11x1 + f2 (d 4x1)}
f2(7) = f2(6) = 14
Programacin Dinmica
Programacin Dinmica