70 likes | 948 Views
PROGRAMACION DINÁMICA. Transforma un problema de optimización complejo en una secuencia de problemas simples Suele empezar por el final y es una técnica descendente. Puede calcular una amplia gama de problemas. Se basa en la recursión y en el principio de optimalidad
E N D
PROGRAMACION DINÁMICA • Transforma un problema de optimización complejo en una secuencia de problemas simples • Suele empezar por el final y es una técnica descendente. • Puede calcular una amplia gama de problemas. • Se basa en la recursión y en el principio de optimalidad • Creado por Richard Bellman • Ejemplo de programación dinámica • Supongamos que hay 30 cerillas en una mesa, y la persona que toma la ultima gana. En cada turno, mi oponente y yo podemos escoger 1, 2 o 3 cerillas. Si empiezo yo, ¿Cómo puedo estar seguro de ganar el juego? • - Gano si hay 1, 2 ó 3 cerillas. • - Retrocediendo un paso, pierdo si hay 4 cerillas • - Retrocediendo otro paso, gano si hay 5 , 6 ó 7 cerillas. • - Retrocediendo otro paso, pierdo si hay 8 cerillas. • Conclusión : Pierdo si hay 4k cerillas, de lo contrario gano.
PROGRAMACION DINÁMICA Modelo de la mochila / equipo de vuelo / carga de contenedor. El modelo de la mochila tiene que ver clásicamente con el hecho de determinar los artículos más valiosos que un combatiente carga en una mochila. El problema representa un modelo de asignación de recursos general en el cual se utilizan recursos limitados por varias actividades económicas. EL OBJETIVO ES MAXIMIZAR EL RENDIMIENTO TOTAL. Maximizar Z = r1m1 + r2m2 + … + rnmn Sujeto a w1m1 + w2m2 + … + wnmn <= W m1 ,m2 , … , mn enteros no negativos Donde : mi = cantidad de unidades del artículo i. ri = ingreso unitario y wi = peso del artículo i. Los elementos del Modelo: La etapa i está representada por el artículo i, i = 1,2,…n. Las alternativas en la etapa i son la cantidad de unidades del artículo i, mi = 0,1,….W/wi, donde W/wi es el mayor entero que es menor o igual a W/wi. Esta definición permite que la solución distribuya algunos, ninguna o todos los recursos W a cualquiera de los m artículos. El rendimiento para mi es rimi. El estado en la etapa i está representado por xi, el peso total asignado a las etapas (artículos) i, i + 1, … y n. Esta definición reconoce que el límite de peso es la única restricción que liga a todas las en etapas.
PROGRAMACION DINÁMICA Modelo de la mochila / equipo de vuelo / carga de contenedor. Defina: fi(xi) = rendimiento máximo para las etapas i, i+1, y n dado el estado xi Paso 1. Exprese fi(xi) como una función de como sigue: fn+1(xn+1) = 0 fi(xi) = min {rimi, + fi+1(xi+1) }, i = 1,2,.. n Paso 2. Exprese la xi+1 como una función de xi para asegurar la consistencia con el lado izquierdo de la ecuación recursiva. Por definición, xi – xi+1 = wimi representa el peso utilizado en la etapa i. Por lo tanto, xi+1 = xi – wimi, y la ecuación recursiva apropiada se da como: fi(xi) = max { rimi, + fi+1(xi - wimi ) }, i = 1,2,.. n
PROGRAMACION DINÁMICA Ejemplo.. Un barco de 4 toneladas puede cargarse con uno o más de tres artículos. La siguiente tabla da el peso unitario, wi, en toneladas y el ingreso unitario en miles de dólares, ri, para el artículo i.El objetivo es determinar la cantidad de unidades de cada artículo que maximizará el rendimiento total.