Programación Dinámica

Documentos relacionados
Jueves, 30 de abril. Ejemplo de recursión. Ejemplo de PD. Ejemplo de programación dinámica. Programación dinámica

Introducción a Programación Lineal

Pasos en el Método Simplex

PROGRAMACIÓN DINÁMICA. Idalia Flores

Tema 3: El Método Simplex. Algoritmo de las Dos Fases.

SISTEMAS DE APOYO A LA TOMA DE DECISIONES : DSS y EIS

Programación entera: Ejemplos, resolución gráfica, relajaciones lineales. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Introducción a la Programación Dinámica. El Problema de la Mochila

Teoría de juegos Andrés Ramos Universidad Pontificia Comillas

Universidad del Rosario Economía Matemática II Taller 8 - Kuhn Tucker

Universidad de Managua Curso de Programación Lineal

Prof. Pérez Rivas Lisbeth Carolina

IN34A - Optimización

ALGORITMO MINIMAX. o Nodo: Representa una situación del juego. o Sucesores de un nodo: Situaciones del juego a las que se

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut

Tema 4: Aplicaciones del equilibrio de Nash

Algoritmos glotones. mat-151

Tema 5: Análisis de Sensibilidad y Paramétrico

RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA

n-1 n (número del período)

EJERCICIO DE MAXIMIZACION

Capítulo 9 Estructura y Administración de Portafolios de Inversión

Programación Dinámica 1

RESOLUCIÓN INTERACTIVA DEL SIMPLEX

Universidad Nacional de Ingeniería Facultad de Ciencias. Física Computacional CC063. Algebra Lineal. Prof: J. Solano 2012-I

CI-6675 Algoritmos y Estructuras Optimizadas para Videojuegos

Funciones y Condicionales Introducción a la Programación

UNIDAD 6.- PROGRAMACIÓN LINEAL

Pauta Clase Auxiliar: Indicadores

PROBLEMA 1. Considere el siguiente problema de programación lineal:

Universidad Tec Milenio: Profesional IO04001 Investigación de Operaciones I. Tema # 9

MICROECONOMÍA AVANZADA II Lista 4 de ejercicios Curso 2009/10 Universidad de Alicante

PASO 1: Poner el problema en forma estandar.

Capítulo 2: Inducción y recursión Clase 2: El principio de Inducción Fuerte

Teoría de grafos y optimización en redes

Ejercicios resueltos de probabilidad

Descubrimos cómo ganar en la serpiente numérica

Introducción a la unidad 4:

Inteligencia Artificial. Integrantes Equipo # 1:

Dirección de operaciones. SESIÓN # 2: Programación lineal

Ecuaciones Diofánticas

PROGRAMACIÓN LINEAL PROGRAMACIÓN LINEAL.

(d) Puede haber estrategias que funcionan mejor que Minimax si el contrincante es

Optimización y Programación Lineal

Ingeniería del Conocimiento

Olimpiada Mexicana de Matemáticas Guanajuato

CAPITULO III. Determinación de Rutas de Entregas

El Juego como Problema de Búsqueda

MODELOS DE INVESTIGACION DE OPERACIONES

Trabajo Práctico Optativo

5.- Problemas de programación no lineal.

Departamento de Matemáticas, CCIR/ITESM. 9 de febrero de 2011

PROGRAMACIÓN LINEAL. Su empleo es frecuente en aplicaciones de la industria, la economía, la estrategia militar, etc.

T7. PROGRAMACIÓN LINEAL

Interpretar la equivalencia entre fracciones y decimales. 4to. Grado Universidad de La Punta

Clase 1 Números Reales. Instituto de Ciencias Básicas Facultad de Ingeniería Universidad Diego Portales

Algoritmos y Programas

Tablas de frecuencias con datos agrupados

Apunte Docente. Modelo de Beranek (Efectivo) Yolanda Reyes Fernández

Definición de Memoria

q c q m R 2 q 1+q 2 =q m

Algebra lineal y conjuntos convexos

Soluciones básicas factibles y vértices Introducción al método símplex. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Problemas de Transbordo

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013

Respuestas al examen final de 2000: a efectos de calificación

Algoritmos para determinar Caminos Mínimos en Grafos

IN Guía de Problemas Resueltos de Geometría de Programación Lineal v1.0

POST-OPTIMIZACIÓN Y SENSIBILIDAD EN PROBLEMAS LINEALES.

Universidad de Montevideo Macroeconomía II. Optimización Dinámica: Aplicación al Modelo de Crecimiento Óptimo

Depletion (Economía Molecular)

Concurso Escolar de Programación 2014

Resolución. Resolución gráfica de problemas de optimización

UNIDAD 2: ECUACIONES E INECUACIONES. SISTEMAS DE ECUACIONES

Práctica N 6 Modelos de Programación Lineal Entera

Programación dinámica p. 1

Contenido: Solución algebraica a los problemas de programación lineal con el método simplex.

(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados

Desarrollo de las condiciones de optimalidad y factibilidad. El problema lineal general se puede plantear como sigue:

Usamos billetes y monedas para representar el precio de un producto

Capítulo 2 Juegos estáticos con información asimétrica

Lógica y Conteo. Elaborado por: Jeff Maynard Guillén. Eliminatoria III

Álgebra Lineal y Estructuras Matemáticas. J. C. Rosales y P. A. García Sánchez. Departamento de Álgebra, Universidad de Granada

May 4, 2012 CAPÍTULO 5: OPTIMIZACIÓN

Unidad I Introducción a las Finanzas Corporativas

Facultad de Farmacia. Grado en Nutrición Humana y Dietética. Depto. de Estadística e Investigación Operativa ESTADÍSTICA

Integración indefinida y definida. Aplicaciones de la integral: valor medio de una función continua.

SESIÓN 11 DERIVACIÓN DE FUNCIONES TRIGONOMETRICAS INVERSAS

PRÁCTICA No. 2 FORMA POLAR DE UN NUMERO COMPLEJO. Otra forma de expresar un número complejo es la forma polar o forma módulo-argumento,

INVESTIGACIÓN OPERATIVA

Espacios vectoriales

Notación Asintótica 2

EXAMEN DE SEPTIEMBRE, MATEMÁTICAS I. 1. (2.5 ptos) Sean f y g funciones con derivadas primeras y segundas continuas de las que se sabe que

DERIVACIÓN DE LAS FUNCIONES ELEMENTALES

4ta. Práctica. Búsqueda en árbol con contrincante: MiniMax con poda Alfa-Beta. Inteligencia Artificial Prácticas 2004/2005

2 = 1 0,5 + = 0,5 c) 3 + = = 2

10.4 Sistemas de ecuaciones lineales

Transcripción:

Pontificia Universidad Católica Escuela de Ingeniería Departamento de Ingeniería Industrial y de Sistemas Clase 30 Programación Dinámica ICS 1102 Optimización Profesor : Claudio Seebach 20 de noviembre de 2006 Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 2 Programación Dinámica Transforma un problema de optimización complejo en una secuencia de problemas más simples Generalmente se comienza con el final y se trabaja hacia atrás Es aplicable a un rango muy amplio de problemas Está basado en la recursión y en el principio de optimalidad Fue desarrollado por Richard Bellman en 1953 Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 3

El juego de los fósforos Supongamos que hay 30 fósforos en una mesa. Yo comienzo eligiendo 1, 2 o 3 fósforos. Luego mi contrincante debe elegir 1, 2 o 3 fósforos. Se sigue de esta forma hasta que alguien saca el último fósforo. El jugador que toma el último fósforo pierde el juego. como puedo yo (el primer jugador) asegurarme de ganar el juego? se podrá? Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 4 El juego de los fósforos Yo gano si le dejo un fósforo en la mesa a mi contrincante Retrocediendo un paso, yo gano si me toca jugar y quedan 2, 3 o 4 fósforos en la mesa Retrocediendo otro paso, yo gano si dejo 5 fósforos a mi contrincante Retrocediendo otro paso, yo gano si me toca jugar y quedan 6, 7 u 8, para dejarle 5 a mi contrincante. Retrocediendo otro paso, yo gano si dejo 9 fósforos a mi contrincante Conclusión: Yo gano si dejo 1, 5, 9,..., 4n + 1 fósforos en la mesa al jugar. Si hay 30 fósforos, y juego yo, basta sacar uno y dejarle 29 (4 7 + 1) fósforos para ganar Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 5

El problema de la diligencia Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 6 El problema de la diligencia Observación: Escoger siempre el arco más barato no es necesariamente lo mejor: A B F I J A D F? cómo modelar el problema con las metodologías ya vistas? Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 7

El problema de la diligencia Si estamos en H la decisión es obvia (y única) Si estamos en F : c F,H + c H,J o c F,I + c I,J o bien: c F,H + costo óptimo de H a J o c F,I + costo óptimo de I a J Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 8 El problema de la diligencia En el problema hay 4 decisiones que tomar para las etapas: 1, 2, 3,4 En cada etapa estaremos en un estado posible y deberemos tomar una decisión Sea: v n (s) = el costo mínimo para las etapas n, n + 1,..., N si en la etapa n estamos en el estado s Supongamos que d representa el siguiente destino escogido. Sea c(s, d) el costo asociado al arco s d. Entonces: v n (s) = min {c(s, d) + v n+1(d)} d factibles Esta es la recursión básica de programación dinámica. Se resuelve de atrás hacia adelante. Condición de borde: v 5 (J) = 0. Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 9

Ejemplo asignación de recursos a proyectos Hay 3 proyectos en los cuales invertir. Si invierto x i pesos (en millones) en el proyecto i, recibo un Valor Presente Neto (VPN) de r i (x i ): r 1 (x 1 ) = 7x 1 + 2 x 1 > 0 r 2 (x 2 ) = 3x 2 + 7 x 2 > 0 r 3 (x 3 ) = 4x 3 + 5 x 3 > 0 r 1 (0) = r 2 (0) = r 3 (0) = 0 El monto invertido en cada proyecto debe ser un múltiplo entero de 1 millón. Se tiene en la actualidad un presupuesto de $ 6 millones (6 unidades de un millón), cuánto y cómo debo invertir para maximizar el retorno? Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 10 Asignación de recursos a proyectos Matemáticamente el retorno, con N proyectos, está dado por: N max r i (x i ) s. a i=1 N x i = X i=1 x i = 0, 1, 2,..., X En el ejemplo max{r 1 (x 1 ) + r 2 (x 2 ) + r 3 (x 3 )} s. a x 1 + x 2 + x 3 = 6 x i N i = 1, 2, 3 Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 11

Asignación de recursos a proyectos Podemos usar programación dinámica Si solo queda una etapa, el problema sería facil de resolver. retrocediendo, cuando queden dos etapas, tres etapas, etc. Luego, Podemos definir la etapa n como el momento cuando tengo que asignar recursos a las etapas n, n + 1,..., 3. Sea: v n (x) = máximo retorno que puedo obtener de los proyectos n, n + 1,..., N si dispongo de x unidades de capital para ellos. v n (x) = max {r n(x n ) + v n+1 (x x n )} x n =0,1,...,X x n (x) = arg max {r n(x n ) + v n+1 (x x n )} x n =0,1,...,X v N (x) = r N (x) Condición de borde (i.e. un dato) El valor óptimo del problema es v 1 (X). En nuestro ejemplo v 1 (6). Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 12 Asignación de recursos a proyectos Como son multiplos enteros de 1 millón y no podemos tener más de 6 para invertir, los estados posibles son 0, 1, 2, 3, 4, 5 y 6. Determinemos v 3 (x) y x 3 (x): v 3 (0) = 0 x 3 (0) = 0 v 3 (1) = 9 x 3 (1) = 1 v 3 (2) = 13 x 3 (2) = 2 v 3 (3) = 17 x 3 (3) = 3 v 3 (4) = 21 x 3 (4) = 4 v 3 (5) = 25 x 3 (5) = 5 v 3 (6) = 29 x 3 (6) = 6 Esto es, siempre conviene invertir todo el capital si hay un solo proyecto Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 13

Asignación de recursos a proyectos Determinemos v 2 (x) y x 2 (x): x x 2 r 2 (x 2 ) v 3 (x x 2 ) r 2 + v 3 0 0 0 0 0 1 0 0 9 9 1 1 10 0 10 2 0 0 13 13 2 1 10 9 19 2 2 13 0 13 3 0 0 17 17 3 1 10 13 23 3 2 13 9 22 3 3 16 0 16 4 0 0 21 21 4 1 10 17 27 4 2 13 13 26 4 3 16 9 25 x x 2 r 2 (x 2 ) v 3 (x x 2 ) r 2 + v 3 4 4 19 0 19 5 0 0 25 25 5 1 10 21 31 5 2 13 17 30 5 3 16 13 29 5 4 19 9 28 5 5 22 0 22 6 0 0 29 29 6 1 10 25 35 6 2 13 21 34 6 3 16 17 33 6 4 19 13 32 6 5 22 9 31 6 6 25 0 25 Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 14 Asignación de recursos a proyectos De la tabla anterior obtenemos los v 2 (x) y x 2 (x) óptimos: v 2 (0) = 0 x 2 (0) = 0 v 2 (1) = 10 x 2 (1) = 1 v 2 (2) = 19 x 2 (2) = 1 v 2 (3) = 23 x 2 (3) = 1 v 2 (4) = 27 x 2 (4) = 1 v 2 (5) = 31 x 2 (5) = 1 v 2 (6) = 35 x 2 (6) = 1 Si hay capital, siempre conviene invertir un millón en el proyecto 2 y el resto siempre en el 3. Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 15

Asignación de recursos a proyectos Finalmente buscamos v 1 (6) y x 1 (6) óptimo: x x 1 r 1 (x 1 ) v 2 (6 x 1 ) r 1 + v 2 6 0 0 35 35 6 1 9 31 40 6 2 16 27 43 6 3 23 23 46 6 4 30 19 49 6 5 37 10 47 6 6 44 0 44 El retorno óptimo es v 1 (6) = 49 y la inversión óptima de los $ 6 mill. es $ 4 en el primero, $ 1 en el segundo y $ 1 en el tercer proyecto. v 1 (6) = 30 + 10 + 9 = 49 x 1 (6) = 4 v 2 (2) = 10 + 9 = 19 x 2 (2) = 1 v 3 (1) = 9 x 3 (1) = 1 Apuntes de Clases Optimización Claudio Seebach Programación Dinámica 16