Você está na página 1de 24

UNIVERSIDAD PRIVADA SAN PEDRO

FACULTAD DE INGENIERIA

CURSO
INVESTIGACIN DE OPERACIONES II

PROGRAMACION DINAMICA DOCENTE: ING. SANTOS GABRIEL BLAS


Investigacin de Operaciones II 1 13/03/2013 Ing. Santos Gabriel Blas

Modelos de la IO
Modelos de IO
Determinsticos
Optimizacin Lineal Optimizacin no Lineal

Hbridos
Programacin Dinmica Teora de Inventarios Simulacin Pert / CPM Heursticas

Estocsticos Cadenas de Markov


Teora de Colas Procesos Estocsticos Teora de Decisiones y Juegos

Programacin Programacin Lineal Lineal


Transporte y Asignacin Prog Entera y 0,1 Redes

Mtodos Clsicos
Mtodos de bsqueda Programacin no lineal

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

D F E

Programacin Dinmica
A
Si iniciamos al revs, es decir, por el ltimo difunto, tenemos que:

B C

G D F E

Al debi liquidar a Esteban, por que de otra forma Esteban lo hubiese ultimado a l.

Entonces, Esteban dispar, previamente, sobre Beto.


Beto, antes, haba dado cuenta de Franco

El orden de la mortandad fue: 1o Domingo, 2o Gus, 3o Cuco, 4o Franco, 5o Beto, 6o Esteban y el sobreviviente fue Al.

Franco, a su vez, haba disparado, previamente, sobre Cuco


Cuco, finiquit a Gus.

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 - Introduccin


Muchos problemas de programacin matemtica determinan soluciones que repercuten en la formulacin de los problemas a resolver en el prximo perodo o etapa. Una alternativa es construir un nico modelo completo que tenga un gran conjunto de variables indexadas por etapas e iternalizar las relaciones entre etapas como una restriccin del problema. Sin embargo esto pude agrandar mucho el tamao del problema. Surge as Programacin Dinmica (PD) como una alternativa de descomposicin en que resolvemos subproblemas mas pequeos y luego los ligamos. As, programacin dinamia consiste en solucionar el presente suponiendo que en cada etapa futura siempre se tomaran las decisiones correctas.

Programacin Dinmica - Caractersticas


Para que un problema pueda ser resuelto con la tcnica de programacin dinmica, debe cumplir con ciertas caractersticas: Naturaleza secuencial de las decisiones: El problema puede ser dividido en etapas. Cada etapa tiene un numero de estados asociados a ella. La decisin optima de cada etapa depende solo del estado actual y no de las decisiones anteriores. La decisin tomada en una etapa determina cual ser el estado de la etapa siguiente.

En sntesis, la poltica optima es de un estado s de la etapa k a la etapa final esta constituida por una decisin que transforma s en un estado s0 de la etapa k +1 y por la poltica optima desde el estado s0 hasta la etapa final.

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 - Ejemplo


Joe Cougar vive en Nueva York, pero quiere viajar en su automvil hasta Los ngeles en busca de fama y fortuna. Los fondos de Joe son limitados, as que decide pasar cada noche de su viaje en la casa de un amigo. Joe tiene amigos en cada ciudad. Joe sabe que puede viajar un da a la vez y avanzar por etapas. Luego de 4 das de manejar Joe puede llegar finalmente a Los ngeles. Para minimizar la cantidad de millas recorridas, dnde debe Joe pasar cada noche del viaje?

Programacin Dinmica
Columbus 2 Kansas City 5

Denver 8

Nueva York 1

Nashville 3

Omaha 6

Los ngeles 10 San Antonio 9

Lousville 4

Dallas 7

Programacin Dinmica - Solucin


Se determinar yendo hacia atrs (Recursividad) Primero clasificamos todas las ciudades en la que Joe puede estar al principio del n-simo da de su viaje como ciudades de la etapa n. Etapa 1: Nueva York. Etapa 2: Columbus, Nashville, Louisville. Etapa 3: Kansas City, Omaha, Dallas. Etapa 4: Denver, San Antonio. Etapa 5: Los ngeles.

Programacin Dinmica - Solucin


Columbus 2
580 680

Kansas City
610

5
790

550

Denver 8
790

540

1030

Nueva York 1

900

Nashville 3
660

760

Omaha 6
940
1390

Los ngeles
10

Etapa 1
770
510

790 1050
700

San Antonio 9
270

Lousville 4
830

Dallas 7

Etapa 4

Etapa 5

Etapa 2

Etapa 3

Programacin Dinmica - Solucin


Algoritmo para recursividad: La idea de trabajar hacia atrs implica que debemos empezar por resolver un problema fcil que con el tiempo nos servir para resolver uno ms complejo. Empezamos por determinar la trayectoria ms corta a Los ngeles desde cada ciudad de dnde hay slo un da de viaje en automvil (ciudades de la etapa 4). Luego usamos esta informacin para encontrar el camino ms corto hasta Los ngeles desde cada ciudad donde hay 2 das de manejo (ciudades de la etapa 3). Con esta informacin ya somos capaces de hallar el camino ms corto desde cada ciudad que est a 3 das de viaje (ciudades de la etapa 2). Encontramos, por ltimo, la trayectoria ms corta a Los ngeles desde cada ciudad que est a 4 das de viaje (hay slo una: Nueva York).

Programacin Dinmica - Solucin


Criterios bsicos:

Con el fin de simplificar la exposicin usamos los nmeros 1, 2, 3,, 10 dados en la figura para nombrar las 10 ciudades. Definimos tambin cij como las millas entre la ciudad i y la ciudad j. Por ejemplo, c35 = 580 son las millas entre Nashville y Kansas City. Hacemos ft(i) la distancia del camino ms corto desde la ciudad i hasta Los ngeles, dado que la ciudad i es una ciudad de la etapa t.

Programacin Dinmica - Solucin


Columbus 2
580 680

Kansas City
610

5
790

550

Denver 8
790

540

1030

Nueva York 1

900

Nashville 3
660

760

Omaha 6
940
1390

Los ngeles
10

Etapa 1
770
510

790 1050
700

San Antonio 9
270

Lousville 4
830

Dallas 7

Etapa 4

Etapa 5

Etapa 2

Etapa 3

Programacin Dinmica - Solucin

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

10 Etapa 5

San Antonio 9 Etapa 4

Programacin Dinmica - Solucin

Clculos de la Etapa 3

Determinamos el camino ms corto desde cada ciudad de la etapa 3 hasta L. A. Determinar f3(5) C58 + f4(8) = 610 + 1030 = 1640 * (5-8-10) C59 + f4(9) = 790 + 1390 = 2180 Determinar f3(6) C68 + f4(8) = 540 + 1030 = 1570 * (6-8-10) C69 + f4(9) = 940 + 1390 = 2330 Determinar f3(7) C78 + f4(8) = 790 + 1030 = 1820 C79 + f4(9) = 270 + 1390 = 1660 * (7-9-10)

Kansas City 5
790

610

Denver 8
1030

540

Omaha
6
1390 940 790

Los ngeles
10

San Antonio 9
270

E5

Dallas 7

E4

E3

Programacin Dinmica - Solucin

Clculos de la Etapa 2

Determinamos el camino ms corto desde cada ciudad de la etapa 2 hasta L. A. Determinar f2(2)
C25 + f3(5) = 680 + 1640 = 2320* (2-5-8-

680 580

5
610
790

Determinar f2(3)

10) C26 + f3(6) = 790 + 1570 = 2360 C27 + f3(7) = 1050 + 1660 = 2710 10) C36 + f3(6) = 760 + 1570 = 2330 C37 + f3(7) = 660 + 1660 = 2320 10) C46 + f3(6) = 700 + 1570 = 2270 C47 + f3(7) = 830 + 1660 = 2490

8
790

540

1030

C35 + f3(5) = 580 + 1640 = 2220* (3-5-8-

760

6
940
1390

10

660
510 700

E5

790
1050

9
270

Determinar f2(4)

E4

C45 + f3(5) = 510 + 1640 = 2150* (4-5-8-

4
830

7
E3

E2

Programacin Dinmica - Solucin

Clculos de la Etapa 1

Como ya conocemos f2(2), f2(3) y f2(4), podemos ir hacia atrs una etapa ms para determinar f1(1) y, por lo tanto, el camino ms corto de la ciudad 1 a la 10. Obsrvese que el camino ms corto desde la c1 a la c10 debe empezar por ir a la ciudad 2, 3 a la 4. Esto significa que el camino ms corto desde la c1 hasta la c10 tiene que ser uno de los siguientes: Camino 1. Ir desde la 1 hasta la 2, luego seguir el camino ms corto desde la 2 hasta la 10. [C12 + f2(2) ] Camino 2. Ir desde la 1 hasta la 3, luego seguir el camino ms corto desde la 3 hasta la 10. [C13 + f2(3) ] Camino 3. Ir desde la 1 hasta la 4, luego seguir el camino ms corto desde la 4 hasta la 10. [C14 + f2(4) ]

Programacin Dinmica - Solucin

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 Camino ptimo: 1-2-5-8-10 Desde Nueva York hasta Los ngeles pasar por: Nueva York, Columbus, Kansas City, Denver y Los ngeles. Este camino tiene una distancia de f1(1) = 2870 millas

Programacin Dinmica - Solucin


Columbus 2
580 680

Kansas City
610

5
790

550

Denver 8
790

540

1030

Nueva York 1

900

Nashville 3
660

760

Omaha 6
940
1390

Los ngeles
10

Etapa 1
770
510

790 1050
700

San Antonio 9
270

Lousville 4
830

Dallas 7

Etapa 4

Etapa 5

Etapa 2

Etapa 3

Programacin Dinmica

Você também pode gostar