Tema 2. Fundamentos Teóricos de la. programación dinámica Teorema de Optimalidad de Mitten

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

Programación NO Lineal (PNL) Optimización sin restricciones

Clase 10: Extremos condicionados y multiplicadores de Lagrange

Tema 2 Resolución de EcuacionesNo Lineales

UNIDAD II. INTEGRAL DEFINIDA Y LOS MÉTODOS DE INTEGRACIÓN. Tema: LA INTEGRAL DEFINIDA

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

UNIDAD 6.- PROGRAMACIÓN LINEAL

Tema 2.- Formas Cuadráticas.

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

Teorema del Valor Medio

Teoremas de Convergencia

Formulación del problema de la ruta más corta en programación lineal

Continuidad y monotonía

CONTENIDOS. 1. Procesos Estocásticos y de Markov. 2. Cadenas de Markov en Tiempo Discreto (CMTD) 3. Comportamiento de Transición de las CMTD

un conjunto cuyos elementos denominaremos vectores y denotaremos por es un espacio vectorial si verifica las siguientes propiedades:

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

Algebra lineal y conjuntos convexos

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

TEMA 5: INTERPOLACION NUMERICA

Programación Lineal. El modelo Matemático

Funciones Inversas. Derivada de funciones inversas

Problemas de VC para EDVC elaborados por C. Mora, Tema 4

Unidad 2: Ecuaciones, inecuaciones y sistemas.

Derivadas Parciales (parte 2)

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

Tema 11: Integral definida. Aplicaciones al cálculo de áreas

PROGRAMACIÓN LINEAL ENTERA

PROBLEMAS RESUELTOS DE PREPARACIÓN PARA OPOSICIONES. Problemas 02

sobre un intervalo si para todo de se tiene que. Teorema 1 Sean y dos primitivas de la función en. Entonces,

CONCEPTOS BASICOS DE LA TRANSFORMADA DE LAPLACE LA TRANSFORMADA DE LAPLACE

Derivada de la función compuesta. Regla de la cadena

Órdenes de la convergencia de sucesiones. Condiciones de la convergencia lineal y cuadrática del método de iteración simple

Semana03[1/17] Funciones. 16 de marzo de Funciones

Terminaremos el capítulo con una breve referencia a la teoría de cardinales.

Sistemas de ecuaciones lineales

Funciones de Clase C 1

1 Método de la bisección. 1.1 Teorema de Bolzano Teorema 1.1 (Bolzano) Contenido

Teoría de la Probabilidad Tema 2: Teorema de Extensión

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

Flujos de redes (Network Flows NF)

1 ÁLGEBRA DE MATRICES

5.- Problemas de programación no lineal.

Ecuaciones Diofánticas

GIMNASIO VIRTUAL SAN FRANCISCO JAVIER Valores y Tecnología para la Formación Integral del Ser Humano UNIDAD I FUNCIONES

Algoritmos para determinar Caminos Mínimos en Grafos

DEPARTAMENTO DE MATEMATICAS Y FISICA Matemáticas Discreta

Diferenciales de Orden Superior

Complejidad computacional (Análisis de Algoritmos)

SESIÓN 11 DERIVACIÓN DE FUNCIONES TRIGONOMETRICAS INVERSAS

Cálculo Diferencial en una variable

Unidad 3: Razones trigonométricas.

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

Espacios vectoriales reales.

Apéndice sobre ecuaciones diferenciales lineales

Conjuntos, relaciones y funciones Susana Puddu

Es claro que es una relación de equivalencia. Para ver que tener la misma cardinalidad y la cardinalidad están bien definidas queremos ver que

Integrales múltiples

Teoría de Números. Divisibilidad. Olimpiada de Matemáticas en Tamaulipas

Espacios Vectoriales Asturias: Red de Universidades Virtuales Iberoamericanas 1

Práctica IV: Métodos de Newton-Raphson y de la secante, para encontrar las raíces de una función.

Sistemas de Ecuaciones Lineales y Matrices

Funciones Exponenciales y Logarítmicas

Descomposición en forma canónica de Jordan (Segunda versión)

Funciones integrables en R n

Base y Dimensión de un Espacio Vectorial

8.4. CRITERIO DE ESTABILIDAD POR EL METODO DIRECTO DE LIAPUNOV

1. Convergencia en medida

Fracciones Algebraicas


2. Continuidad y derivabilidad. Aplicaciones

Ecuaciones e inecuaciones. Sistemas de ecuaciones e inecuaciones

EL PROBLEMA GENERAL DE OPTIMIZACION

ETS Minas: Métodos matemáticos Ejercicios resueltos Tema 1 Preliminares

4. ANÁLISIS DE FUNCIONES DE UNA VARIABLE

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados.

CONTINUIDAD DE FUNCIONES. SECCIONES A. Definición de función continua. B. Propiedades de las funciones continuas. C. Ejercicios propuestos.

Profesorado de Nivel Medio y Superior en Biología Matemática - 1º Cuatrimestre Año 2013 FUNCIÓN CUADRÁTICA

T0. TRANSFORMADAS DE LAPLACE

2. SEÑALES Y SISTEMAS DISCRETOS EN EL TIEMPO. Una señal puede ser definida como una portadora física de información. Por ejemplo,

Identificación de inecuaciones lineales en los números reales

Espacios topológicos. 3.1 Espacio topológico

MÉTODOS DE INTEGRACION

4. Resolución de indeterminaciones: la regla de L Hôpital.

Clase 9 Programación No Lineal

INTERVALOS Y SEMIRRECTAS.

Límites y continuidad. Cálculo 1

DIVISIBILIDAD: Resultados

PROGRAMACIÓN LINEAL PROGRAMACIÓN LINEAL.

TEORÍA DE LA EMPRESA. ADOLFO GARCÍA DE LA SIENRA Instituto de Filosofía Facultad de Economía Universidad Veracruzana

Definición 1.1 Sea G = (V, A) un grafo no dirigido. G se denomina árbol si es conexo y no contiene ciclos.

Semana 09 [1/28] Sucesiones. 29 de abril de Sucesiones

Esta expresión polinómica puede expresarse como una expresión matricial de la forma; a 11 a 12 a 1n x 1 x 2 q(x 1, x 2,, x n ) = (x 1, x 2,, x n )

Lección 4. Ecuaciones diferenciales. 1. Ecuaciones diferenciales de primer orden. Trayectorias ortogonales.

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

SISTEMAS DE ECUACIONES LINEALES

Introducción a la Lógica

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

Notas sobre el teorema minimax

Fundamentos matemáticos. Tema 8 Ecuaciones diferenciales

Límites y continuidad

Transcripción:

Tema 2 Fundamentos Teóricos de la Programación Dinámica 2.1. Teorema de Optimalidad de Mitten El objetivo básico en la programación dinámica consiste en descomponer un problema de optimización en k variables a una serie de problemas con menor número de variables más fáciles de resolver. Precisamente esto es lo que se ha hecho en el problema de la mochila; reducir un problema inicial de n variables a n problemas de 1 variable. En este sentido, se podría decir que la programación dinámica se basa en un método de descomposición. Cualquier problema puede ser resuelto mediante la programación dinámica? NO. En el problema de la mochila se verifican diversas condiciones necesarias para que se cumpla el teorema de optimalidad, que enseguida veremos y que es la base de la programación dinámica. 9

10 Tema 2. Fundamentos Teóricos de la Programación Dinámica Ejemplo 2.1. Supongamos que la función objetivo del problema es la siguiente: f(x, y, z) = xy + xz + yz Aquí, claramente, no es posible aplicar la misma idea que en el problema de la mochila, porque, a diferencia de la función objetivo de [KP], en esta no se pueden separar las variables, y por tanto no es posible dividir el problema en etapas. 2.1.1. Caso sin restricciones Supongamos que estamos interesados en minimizar una cierta función de k + 1 variables f(x, y 1, y 2,..., y k ). Si fuésemos capaces de separar f en dos funciones f 1 y f 2 de modo que f(x, y) = f 1 (x, f 2 (y)) verificándose que Min (x,y) f(x, y) = Min x f 1 (x, Min y f 2 (y)), habríamos reducido el problema original de k + 1 variables en dos problemas con menor número de variables. Definición 2.2. Una función f se dice que es descomponible en f 1 y f 2 si: f es separable en f 1 y f 2, i.e., f(x, y) = f 1 (x, f 2 (y)) f 1 es monótona no-decreciente respecto de su segundo argumento. Teorema 2.3. (Teorema de Optimalidad de Mitten, 1964) Sea f(x, y) una función real con x R, y R k. Si f es descomponible con f(x, y) = f 1 (x, f 2 (y)), entonces se verifica que: Opt (x,y) f(x, y) = Opt x f 1 (x, Opt y f 2 (y)) Demostración. Supondremos que Opt=Min; el teorema se demuestra de forma análoga si Opt=Max.

2.1. Teorema de Optimalidad de Mitten 11 Sea (x, y ) el mínimo de f(x, y). Entonces, por definición de mínimo, se cumple que: f(x, y ) f(x, y) = f 1 (x, f 2 (y)), (x, y) En particular, tomando y tal que f 2 (y) = Min y f 2 (y), se tiene que f(x, y ) f 1 (x, f 2 (y)), x y la desigualdad anterior se sigue verificando si particularizamos en el punto x, que minimiza f 1 (x, f 2 (y)). Por lo tanto, Min (x,y) f(x, y) = f(x, y ) f 1 (x, f 2 (y)) = Min x f 1 (x, Min y f 2 (y)). Comprobemos, a continuación, la desigualdad contraria. Por la hipótesis de descomponibilidad de la función f se tiene que f 1 es monótona no decreciente respecto de su segundo argumento, luego f 1 (x, f 2 (y)) f 1 (x, f 2 (y)), (x, y), con f 2 (y) = Min y f 2 (y). La anterior relación se sigue verificando si particularizamos en el valor y x que minimiza f 1 (x, f 2 (y)) para cada x. Luego, f 1 (x, f 2 (y)) f 1 (x, f 2 (y x )), x Tomando ahora el valor x que minimiza la expresión f 1 (x, f 2 (y x )), se tiene que f 1 (x, f 2 (y)) f 1 (x, f 2 (y x )) = Min (x,y) f 1 (x, f 2 (y)) y por otro lado, claramente Min x f 1 (x, Min y f 2 (y)) = Min x f 1 (x, f 2 (y)) f 1 (x, f 2 (y))

12 Tema 2. Fundamentos Teóricos de la Programación Dinámica de donde se sigue que Min x f 1 (x, Min y f 2 (y)) Min (x,y) f 1 (x, f 2 (y)) = Min (x,y) f(x, y). Ejemplo 2.4. Supongamos que deseamos minimizar la función f(x, y) = x 2 y 2. Puedo separar esta función en f 1 (x, z) = x 2 z y f 2 (y) = y 2. De esta forma, f 1 (x, f 2 (y)) = x 2 f 2 (y) = x 2 y 2 = f(x, y). Vamos a calcular el mínimo utilizando el teorema de optimalidad, evaluando Min x f 1 (x, Min y f 2 (y)). Observemos que Min y f 2 (y) = Min y y 2 = 0 que se alcanza en y = 0. Por lo tanto, f 1 (x, Min y f 2 (x)) = f 1 (x, 0) = x 2, y consecuentemente, Min x f 1 (x, Min y f 2 (y)) = Min x x 2 = 0, que también se alcanza en x = 0. En definitiva, se tendría que Minf(x, y) = 0 y dicho mínimo se alcanza en (0, 0). Sin embargo, esto es falso; es fácil ver que el mínimo de esta función no es cero. El fallo se produce porque con la separación que hemos hecho, la función f 1 no es monótona creciente respecto del segundo argumento, y por lo tanto f no es descomponible en f 1 y f 2. Probemos de la siguiente manera. Consideremos f 1 (y, z) = z y 2 y f 2 (x) = x 2. De nuevo, f(x, y) = f 1 (y, f 2 (x)), pero ahora la función f 1 sí es monótona nodecreciente respecto de su segundo argumento, luego podemos calcular el mínimo evaluando Min y f 1 (y, Min x f 2 (x)). Observemos que Min x f 2 (x) = Min x x 2 = 0 que se alcanza en x = 0. Por lo tanto, f 1 (y, Min x f 2 (x)) = f 1 (y, 0) = y 2, y consecuentemente, Min y f 1 (y, Min x f 2 (x)) = Min y y 2 =. Por lo tanto, Min (x,y) x 2 y 2 =.

2.2. El espacio de estados y la ecuación funcional 13 2.1.2. Caso con restricciones El teorema de optimalidad se puede generalizar a problemas con restricciones. Consideremos el problema Opt (x,y) Ω f(x, y), donde Opt=Max o Min y Ω R k+1, Ω. Para cada x R, sea Ω x = {y R k ; (x, y) Ω}. Puesto que es posible que Ω x = para algún x, convendremos que + si Ω x = y Opt = Min Opt y Ωx f 2 (y) = si Ω x = y Opt = Max y también que para todo x, f 1 (x, + ) = + f 1 (x, ) = Teorema 2.5. (Teorema de Optimalidad de Mitten. Caso con restricciones) Sea f(x, y) una función real con x R, y R k. Si f es descomponible con f(x, y) = f 1 (x, f 2 (y)), entonces se verifica que: Opt (x,y) Ω f(x, y) = Opt x f 1 (x, Opt y Ωx f 2 (y)) 2.2. El espacio de estados y la ecuación funcional Consideremos de nuevo un problema con restricciones del tipo Opt (x,y) Ω f(x, y). Siguiendo el teorema de optimalidad de Mitten, se puede evaluar el óptimo de f en Ω mediante la descomposición Opt x f 1 (x, Opt y Ωx f 2 (y)). En general, para un conjunto arbitrario Ω, el teorema de optimalidad no ofrece ninguna ventaja práctica, pues la optimización de la expresión anterior equivale a evaluar f(x, y) listando los elementos (x, y) Ω en un orden determinado. Como

14 Tema 2. Fundamentos Teóricos de la Programación Dinámica veremos posteriormente, el interés del teorema de optimalidad depende de la estructura del dominio de soluciones Ω, más concretamente, en la posibilidad de considerar Ω como un elemento de una familia de dominios Ω i (E) parametrizados por un vector E que denominaremos vector de estados. Consideremos un problema de optimización con restricciones de la forma Optimizar f(x 1, x 2,..., x n ) g(x 1, x 2,..., x n ) E t R m Nuestra intención es descomponer el problema en muchos problemas de una variable. Para ello necesitamos que f sea descomponible en la forma: f(x 1, x 2,..., x n ) = f 1 (x 1, f 2 (x 2,..., x n )), con f 2 igualmente descomponible en la forma f 2 (x 2, x 3,..., x n ) = f 2 (x 2, f 3 (x 3,..., x n )), y sucesivamente f i (x i, x i+1,..., x n ) = f i (x i, f i+1 (x i+1,..., x n )), y finalmente, f n 1 (x n 1, x n ) = f n 1 (x n 1, f n (x n )), La idea es empezar desde el final optimizando x n y en cada paso resolver un problema de una variable, pero cómo se interpreta la restricción g(x 1, x 2,..., x n ) E t en cada una de las etapas? Necesito poder descomponer g de una forma análoga a la que he descompuesto f. Supongamos que existe un espacio de estados E R m de forma que podemos

2.2. El espacio de estados y la ecuación funcional 15 descomponer g en funciones h 1, h 2,..., h n de modo que: h 1 (x 1 ) = E 1 E h 2 (x 2, E 1 ) = E 2 E h 3 (x 3, E 2 ) = E 3 E...... h n 1 (x n 1, E n 2 ) = E n 1 E h n (x n, E n 1 ) = E n E y g(x 1,..., x n ) = E n E t, para que se alcance una solución factible. Las funciones h i se denominan funciones de transición. De esta forma, para cada (x 1,..., x n ), f y g se pueden calcular recursivamente como: f(x 1,..., x n ) = f 1 (x 1, f 2 (x 2, f 3 (x 3,..., f n 1 (x n 1, f n (x n ))... ) g(x 1,..., x n ) = h n (x n, h n 1 (x n 1, h n 2 (x n 2,..., h 2 (x 2, h 1 (x 1 ))... ) y por lo tanto, el problema original quedaría como (P) Optimizar f 1 (x 1, f 2 (x 2, f 3 (x 3,..., f n 1 (x n 1, f n (x n ))... ) g(x 1,..., x n ) = h n (x n, h n 1 (x n 1, h n 2 (x n 2,..., h 2 (x 2, h 1 (x 1 ))... ) E t Para cada i = 1, 2,..., n, definamos h i (x i,..., x n, E) = h n (x n, h n 1 (x n 1, h n 2 (x n 2,..., h i+1 (x i+1, h i (x i, E))... ) obsérvese que se verifica que h i (x i,..., x n, E) = h i+1 (x i+1,..., x n, h i (x i, E)).

16 Tema 2. Fundamentos Teóricos de la Programación Dinámica Entonces, el problema (P) quedaría como (P) Optimizar f 1 (x 1, f 2 (x 2, x 3,..., x n )) h 2 (x 2,..., x n, h 1 (x 1 )) E t Aplicando el teorema de Mitten, podríamos resolver en primer lugar el problema (P 2 (E 1 )) Optimizar f 2 (x 2, x 3,..., x n ) h 2 (x 2,..., x n, E 1 ) E t cuyo valor óptimo denotamos por f2 (E 1 ) y después obtener f optimizando f 1 (x 1, f2 (h 1 (x 1 )). Igualmente, para resolver (P 2 (E 1 )), puesto que f 2 (x 2, x 3,..., x n ) = f 2 (x 2, f 3 (x 3,..., x n )), aplicando el teorema de optimalidad, debemos resolver primero el problema (P 3 (E 2 )) Optimizar f 3 (x 3,..., x n ) h 3 (x 3,..., x n, E 2 ) E t cuyo valor óptimo denotamos por f3 (E 2 ), y posteriormente obtener f2 (E 1 ) optimizando f 2 (x 2, f3 (h 2 (x 2, E 1 )). De esta manera, los valores fi (E i 1 ), para 2 i n 1, se pueden obtener recursivamente, para todo E i 1 E, mediante fi (E i 1 ) = Opt xi f i (x i, fi+1(h i (x i, E i 1 ))) (2.1) y para i = n, obtener, para cada E n 1 E, fn(e n 1 ) como el valor óptimo del problema (P n (E n 1 )) Optimizar f n (x n ) h n (x n, E n 1 ) E t

2.2. El espacio de estados y la ecuación funcional 17 De este modo, es posible resolver el problema (P ) por recurrencia, encontrando en cada paso los valores fi (E i 1 ), para i = n, n 1,..., 2 finalmente obteniendo f a partir de f2. La expresión 2.1 se denomina ecuación fundamental de la programación dinámica. Algoritmo de retroceso (Algoritmo backward ) Etapa n E E, calcular (P n (E)) Optimizar f n (x n ) h n (x n, E) E t Si para algún E E el problema anterior es infactible, tomar + si Opt = Min fn(e) = si Opt = Max Etapa i = n 1, n 2,..., 2 E E, calcular f i (E) = Opt xi f i (x i, f i+1(h i (x i, E))) Etapa 1 Obtener f mediante f 1 = Opt x1 f 1 (x 1, f 2 (h i (x 1 ))) Como se observa a partir del anterior algoritmo, al igual que ocurría en la resolución de los problemas tipo mochila, la metodología general de la programación dinámica

18 Tema 2. Fundamentos Teóricos de la Programación Dinámica consiste en: considerar el problema dado dentro de una familia de problemas de la misma naturaleza vincular, mediante una relación de recurrencia, los valores óptimos de los problemas de esta familia resolver tal relación de recurrencia (la ecuación funcional) para encontrar el valor óptimo del problema dado El siguiente ejemplo pone de manifiesto la necesidad de la condición de monotonía en la descomponibilidad de la función para asegurar la validez de la ecuación fundamental de la Programación Dinámica. Ejemplo 2.6. Consideramos el siguiente problema: Maximizar x y 3 x + y 3, x 2, 2 y 0 Ahora la función es separable, f(x, y) = f 1 (x, f 2 (y)) con f 1 (x, w) = x w, f 2 (w) = w 3. ξ = [ 2, + ) Etapa 2 F2 (E)=Max y 3 E + y 3 2 y 0 Si E > 5 E + y > 3 para todo y; 2 y 0 F 2 (E) =

2.3. El principio de optimalidad 19 Si 3 E 5, y = 3 E ( para que se verifique la restricción ) F2 (E) = (3 E) 3 Si 2 E < 3, entonces para todo valor de y; 2 y 0, se verifica la restricción, y por tanto y = 0 F2 (E) = 0 Etapa 1 F 1 (0)=Max x F 2 (x) x 2 Si x > 5 F2 (x) = Si 3 x 5 x F2 (x) = x (3 x) 3. Como esta función es decreciente en el intervalo [3, 5], el mejor valor sería x = 3; F 1 (0) = 0 Si 2 x < 3 F2 (x) = 0 F 1 (0) = 0 Por tanto se obtiene que el valor óptimo del problema es F1 (0) = 0. Sin embargo, se ve claramente que el valor óptimo del problema es en realidad 16 correspondiente a la solución ( 2, 2). Esto es consecuencia de que la función objetivo a pesar de ser separable no es descomponible. 2.3. El principio de optimalidad El algoritmo backward cuya validez se deriva del teorema de optimalidad, se puede interpretar como la construcción de una solución óptima a partir de soluciones óptimas parciales. Cuando llegamos a la etapa i con estado E, de todas las posibles soluciones (x i, x i+1,..., x n ) que conducen a estamos terminales (h i (x i, x i+1,..., x n, E) E t ) sólo guardamos la correspondiente a la solución óptima (la correspondiente a fi (E)).

20 Tema 2. Fundamentos Teóricos de la Programación Dinámica La solución óptima obtenida se ajusta al principio de optimalidad establecido por R. Bellman en 1957. Una política óptima tiene la propiedad de que, cualquiera que sea el estado inicial y las decisiones iniciales, las restantes decisiones deben constituir una política óptima con respecto al estado resultante de la primera decisión 2.4. Ejemplos de funciones descomponibles Las funciones descomponibles más usuales son: f(x 1,..., x n ) = f 1 (x 1 ) + f 2 (x 2 ) + + f n (x n ) f(x 1,..., x n ) = f 1 (x 1 ) f 2 (x 2 ) f n (x n ) f i (x i ) 0, i f(x 1,..., x n ) = Opt{f 1 (x 1 ),..., f n (x n )} 2.5. Conjunto de estados finito y la búsqueda del camino más corto en un grafo Supongamos que el conjunto de estados ξ es finito, ξ = p y que la función f es descomponible en la forma f(x 1,..., x n ) = f 1 (x 1 ) + + f n (x n ) Se considera el grafo G = [X, A] definido del siguiente modo: El conjunto de nodos X consta de los siguientes elementos: Un nodo inicial que denotaremos por I

2.5. Conjunto de estados finito y la búsqueda del camino más corto en un grafo 21 np nodos de la forma (E, i), con E ξ y 1 i n Un conjunto de nodos terminales X t X que son aquellos de la forma (E, n) con E E t (conjunto de estados terminales). El conjunto de arcos A consiste en: Los arcos de la forma [I, (E, 1)], donde E = h 1 (x 1 ) para todos los posibles valores de x 1 tales que h 1 (x 1 ) ξ. A cada arco de este tipo se le considera longitud f 1 (x 1 ). Para cada i = 2,..., n, y para todo E ξ, se consideran los arcos de la forma [(E, i 1), (E, i)], donde E = h i (x i, E) para todos los valores posibles de x i tales que h i (x i, E) ξ. A cada arco de este tipo se le considera longitud f i (x i ). De esta forma, cada camino entre I y X t es una solución factible del problema (por cuanto satisface la restricción g(x 1,..., x n ) E t y la longitud de tal camino es f 1 (x 1 ) +... + f n (x n ). Por lo tanto, la resolución del problema por programación dinámica es equivalente a la búsqueda del camino más corto (o más largo, en caso de maximizar) entre I y X t en el grafo G. A partir de esta equivalencia entre la programación dinámica y la búsqueda del camino más corto se puede definir un segundo algoritmo de programación dinámica, en el cual, a diferencia del anterior, los cálculos se llevan a cabo en orden creciente de los subíndices de las variables inmersas en el problema. Para llevar a cabo el algoritmo se asocia a cada vértice (E, i) un número P (E, i). Al final de la etapa i 1, P (E, i 1) representa la longitud de un camino óptimo entre el vérice inicial I y el vértice (E, i 1). En la etapa i, se toma, para todo E, P (E, i) = (+) (según la el sentido de optimización del problema). La etapa i consiste en, a partir de los valores óptimo P (E, i 1), actualizar los valores (E, i) de forma que al final de

22 Tema 2. Fundamentos Teóricos de la Programación Dinámica la etapa i, P (E, i) represente efectivamente la longitud del camino más corto (o más largo) entre I y (E, i). Algoritmo de avance (Algoritmo Forward) Etapa 1 Para todo E ξ, se establece: P (E, 1) = + si Opt=Min P (E, 1) = si Opt=Max Para todos los posibles valores de x 1 tales que h 1 (x 1 ) ξ calcular E = h 1 (x 1 ). Hacer P (E, 1) = f 1 (x 1 ). Etapa i i = 2,..., n Para todo E ξ, se establece: P (E, i) = + si Opt=Min P (E, i) = si Opt=Max Para todo E tal que P (E, i 1) < y para todos los posibles valores de x i tales que h i (x i, E) ξ calcular: E = h i (x i, E) P (E, i) = Opt{P (E, i), P (E, i 1) + f i (x i )} Etapa n F = Opt E Et P (E, n)

2.5. Conjunto de estados finito y la búsqueda del camino más corto en un grafo 23 De esta manera se obtiene el valor óptimo del problema, pero no la solución óptima x que lo alcanza. Para ello se define, para cada i = 1,..., n y para cada E ξ la cantidad x i(e) que contiene el valor de la variable x i para la que se ha obtenido el valor óptimo P (E, i). En la etapa 1, x 1(E) = x 1 (siendo E = h 1 (x 1 ) ) y en cada etapa general i (1 i n) se actualiza x i(e) = x i, cada vez que una etiqueta P (E, i) sea mejorada y reemplazada por P (E, i 1) + f i (x i ). Con esta notación, se obtiene una solución óptima mediante el siguiente algoritmo: a) E = E, donde E es tal que F = Opt E Et P (E, n) = P (E, n) b) Para cada i = n, n 1,..., 1 sucesivamente: x i = x i(e) Hacer E = E, donde E es tal que E = h i (x i, E ). Ejemplo 2.7. Considérese el siguiente problema de mochila para resolverlo por el algoritmo Forward. Maximizar f(x 1, x 2, x 3, x 4 ) = 4x 1 + 5x 2 + 3x 3 + 2x 4 4x 1 + 3x 2 + 2x 3 + x 4 8 x i {0, 1} La función f se descompone en las siguientes funciones: f 1 (x 1 ) = 4x 1 f 2 (x 2 ) = 5x 2 f 3 (x 3 ) = 3x 3 f 4 (x 4 ) = 2x 4

24 Tema 2. Fundamentos Teóricos de la Programación Dinámica Las funciones de transición son: h 1 (x 1 ) = 4x 1 h 2 (x 2, E) = 3x 2 + E h 3 (x 3, E) = 2x 3 + E h 4 (x 4, E) = x 4 + E El espacio de estados es ξ = {0, 1, 2,..., 8} Etapa 1 P (E, 1) = E ξ Los posibles valores de x 1 tales que h 1 (x 1 ) = 4x 1 ξ son x 1 = 0 y x 1 = 1 P (0, 1) = f 1 (0) = 0 x 1 (0) = 0 Etapa 2 P (4, 1) = f 1 (1) = 4 x 1 (4) = 1 P (E, 2) = E ξ P (0, 1) = 0 <. Tanto para x 2 = 0 como para x 2 = 1, h 2 (x 2, 0) ξ 0 = h 2 (0, 0) P (0, 2) = Max{, P (0, 1) + f 2 (0) = 0} = 0 x 2 (0) = 0 3 = h 2 (1, 0) P (3, 2) = Max{, P (0, 1) + f 2 (1) = 5} = 5 x 2 (3) = 1 De la misma forma, cogiendo P (4, 1): P (4, 2) = 4 x 2 (4) = 0 P (7, 2) = 9 x 2 (7) = 1 Etapa 3 Repitiendo el proceso anterior se obtienen los siguientes resultados: P (0, 3) = 0 x 3 (0) = 0

2.5. Conjunto de estados finito y la búsqueda del camino más corto en un grafo 25 P (2, 3) = 3 x 3 (2) = 1 P (3, 3) = 5 x 3 (3) = 0 P (5, 3) = 8 x 3 (5) = 1 P (4, 3) = 4 x 3 (4) = 0 P (6, 3) = 7 x 3 (6) = 1 P (7, 3) = 9 x 3 (7) = 0 Nótese que al partir de E = 7 el único valor posible para x 3 es cero, pues h 3 (1, 7) = 9 ξ. Etapa 4 En la última etapa se obtienen los siguientes resultados: P (0, 4) = 0 x 4 (0) = 0 P (1, 4) = 2 x 4 (1) = 1 P (2, 4) = 3 x 4 (2) = 0 P (3, 4) = 5 x 4 (3) = 1 a través de P(2,3) o x 4 (3) = 0 a través de P (3, 3) P (4, 4) = 7 x 4 (4) = 1 P (5, 4) = 8 x 4 (5) = 0 P (6, 3) = 10 x 4 (6) = 1 P (7, 4) = 9 x 4 (7) = 1 a través de P(6,3) o x 4 (7) = 0 a través de P (7, 3) P (8, 4) = 11 x 4 (8) = 1 Por tanto, el valor óptimo del problema es F = 11

26 Tema 2. Fundamentos Teóricos de la Programación Dinámica Etapa Solución óptima El óptimo se alcanza en P (8, 4). Por tanto se parte de E = 8. x 4 (8) = 1, por tanto x 4 = 1. Encontrar E tal que h 4 (1, E ) = 8. E = 7. Hacer E = E E = 7, entonces, x 3 = x 3 (7) = 0. Encontrar E tal que h 3 (0, E ) = 7. E = 7. Hacer E = E. E = 7, entonces, x 2 = x 2 (7) = 1. Encontrar E tal que h 2 (1, E ) = 7. E = 4. Hacer E = E. E = 4, entonces, x 1 = x 1 (4) = 1. Por tanto la solución óptima es: (x 1, x 2, x 3, x 4 ) = (1, 1, 0, 1) 2.6. Ejercicios 1. Resolver, mediante programación dinámica, el siguiente problema no lineal entero: Max x 1 x 2 2 x 3 3 x 1 + 2x 2 + 3x 3 10 x 1, x 2, x 3 1 x 1, x 2, x 3 Z + 2. Resolver el siguiente problema mediante programación dinámica Max 3x 2 1 x 3 1 + 5x 2 2 x 3 2

2.6. Ejercicios 27 x 1 + 2x 2 4 x 1, x 2 0 3. Resolver, mediante programación dinámica, el siguiente problema no lineal entero: Max 18x 1 x 2 1 + 20x 2 + 10x 3 2x 1 + 4x 2 + 3x 3 11 x 1, x 2, x 3 Z + 4. Resolver el siguiente problema no lineal mediante programación dinámica Max 36x 1 + 9x 2 1 6x 3 1 + 36x 2 3x 3 2 x 1 + x 2 3 x 1, x 2 0 5. Utilizar programación dinámica para resolver el siguiente problema: Max x 2 1 x 2 x 2 1 + x 2 2

28 Tema 2. Fundamentos Teóricos de la Programación Dinámica 6. Resolver el siguiente problema mediante programación dinámica Max 2x 2 1 + 2x 2 + 4x 3 x 2 3 2x 1 + x 2 + x 3 4 x 1, x 2, x 3 0 7. Utilizar programación dinámica para resolver el siguiente problema: Max 2x 1 + x 2 2 x 2 1 + x 2 2 4 x 1, x 2 0 8. Resolver el siguiente problema utilizando programación dinámica: Max x 3 1 + 4x 2 2 + 16x 3 x 1 x 2 x 3 = 4 x i 1 i = 1, 2, 3 Resolverlo también añadiendo la restricción x j N.

2.6. Ejercicios 29 9. Resolver el siguiente problema mediante programación dinámica Max (x 1 + 2) 2 + x 2 x 3 + (x 4 5) 2 x 1 + x 2 + x 3 + x 4 5 x i Z + i = 1, 2, 3, 4 10. Resolver con programación dinámica el siguiente problema de programación lineal: Max 2x 1 + 5x 2 2x 1 + x 2 430 2x 2 460 x 1, x 2 0 11. Resolver el siguiente problema mediante programación dinámica Max 5x 1 + x 2 2x 2 1 + x 2 13 x 2 1 + x 2 9 x 1, x 2 0

30 Tema 2. Fundamentos Teóricos de la Programación Dinámica 12. Resolver el siguiente problema de la mochila mediante el algoritmo de avance: Max 5x 1 + 3x 2 + x 3 + x 4 4x 1 + 2x 2 + 3x 3 + 2x 4 5 x i {0, 1, 2} i = 1, 2, 3, 4 Representar gráficamente el grafo sobre el cual el cálculo del camino más largo es equivalente a la resolución por programación dinámica de este problema. 13. Resolver el siguiente problema de la mochila mediante el algoritmo de avance: Max 3x 1 + 5x 2 + x 3 + x 4 x 5 2x 1 + 4x 2 + 3x 3 + 2x 4 + x 5 = 5 x i {0, 1} i = 1, 2, 3, 4, 5 Representar gráficamente el grafo sobre el cual el cálculo del camino más largo es equivalente a la resolución por programación dinámica de este problema.