Análisis Cuantitativo con WINQSB

Víctor Manuel Quesada Ibarguen y  Juan Carlos Vergara Schmalbach

Esta página puede carecer de formato, fórmulas, notas, gráficos o tablas. Puede bajarse el libro completo en formato PDF comprimido ZIP (156 páginas, 1342 Kb)
pulsando aquí

 

10. PROGRAMACIÓN DINÁMICA

La programación dinámica es un enfoque general para la solución de problemas en los que es necesario tomar decisiones en etapas sucesivas. Las decisiones tomadas en una etapa condicionan la evolución futura del sistema, afectando a las situaciones en las que el sistema se encontrará en el futuro (denominadas estados), y a las decisiones que se plantearán en el futuro.

Conviene resaltar que a diferencia de la programación lineal, el modelado de problemas de programación dinámica no sigue una forma estándar. Así, para cada problema será necesario especificar cada uno de los componentes que caracterizan un problema de programación dinámica.

El procedimiento general de resolución de estas situaciones se divide en el análisis recursivo de cada una de las etapas del problema, en orden inverso, es decir comenzando por la última y pasando en cada iteración a la etapa antecesora. El análisis de la primera etapa finaliza con la obtención del óptimo del problema.

10.1 MODELOS DE PROGRAMACIÓN DINÁMICA

Existen tres modelos diferentes manejados por WINQSB.

* Problema de la diligencia (Stagecoach Problem)

* Problema de la mochila (Snapsack Problem)

* programación de producción e inventarios (Production and Inventory Scheduling)

10.2 EL PROBLEMA DE LA DILIGENCIA

Ejemplo 10-1:

Considérese el gráfico que contempla las rutas posibles para ir desde la ciudad 1 hasta la ciudad 10. Cada nodo representa una ciudad y los arcos la infraestructura vial disponible. La tabla recoge el costo asociado al desplazamiento entre cada par de nodos para cada una de las etapas. Supondremos que todos los desplazamientos tienen la misma duración, y que el viaje ha de realizarse en cuatro etapas. Cada una de ellas se corresponde con un único desplazamiento entre un par de nodos del grafo, así al finalizar la primera etapa estaremos en una de las ciudades 2, 3 ó 4. La segunda etapa finalizará en la ciudad 5, la número 6 ó la número7. La tercera jornada nos llevará a la ciudad 8 o a la número 9. La cuarta etapa permite finalizar el viaje en la ciudad 10.

10.3 TERMINOLOGÍA Y NOTACIÓN BÁSICA

Períodos o etapas: Sea N= {1, 2,....., n} un conjunto finito de elementos. Mediante el índice , representamos cada uno de ellos. N es el conjunto de períodos o etapas del proceso. En la ilustración anterior N= {1, 2, 3, 4}, las cuatro etapas del viaje, cada una de ellas es un período y se representa mediante un valor del índice n, así cuando n =1 nos estamos refiriendo a la primera etapa del proceso.

Espacio de estados: { } es una familia de conjuntos, uno para cada período n. S se denomina espacio de estados en el período n. Cada uno de sus elementos, que se representa mediante Sn, es un estado, que describe una posible situación del proceso en ese período. En nuestro ejemplo, S1 = {1}, S2= {2, 3, 4}, S3= {5, 6, 7}, S4= {8, 9}.

La función recursiva: Dados unos nodos y unos arcos que conectan estos nodos, el problema de la diligencia intenta encontrar la ruta más corta que conecta un nodo de arranque con el nodo final (el destino).

Sea s: el estado de inicio; j: estado destino

* n: la fase, normalmente representa el número de arcos hasta el destino.

* C(s,j): costo o distancia de ir desde s hasta j.

* f(n,s): la política de costo mínimo cuando se encuentra en el estado s de la etapa n.

La relación recursiva dinámica se expresa como

f(n,s) = mínimo [C(s,j) + f(n-1,,j)] para todos los arcos ( s,j) en la red

10.4 INGRESANDO EL PROBLEMA AL WINQSB

El problema contiene 10 nodos claramente identificados:

Al pulsar OK podremos ingresar el resto de información, el cual se basa en las relaciones existentes entre los nodos:

Los valores van de acuerdo a la red establecida en el problema:

Para resolver el problema pulsamos la opción Resolver el problema (Solve the Problem) del menú Resolver y analizar (Solve and Analyze).

La ventana siguiente permite identificar los nodos de inicio y fin:

Al pulsar SOLVE generamos la solución al problema:

Si queremos una solución detallada debemos pulsar sobre Mostrar solución detallada (Show Solution Detail) en el menú Resultados (Results):

10.5 PROBLEMA DE LA MOCHILA O CANASTA DE EQUIPAJE

La idea básica es que existen N tipos distintos de artículos que pueden cargarse en una mochila; cada artículo tiene asociados un peso y un valor. El problema consiste en determinar cuántas unidades de cada artículo se deben colocar en la mochila para maximizar el valor total. Nótese que este enfoque resulta útil para la planificación del transporte de artículos en algún medio, por ejemplo: carga de un buque, avión, camión etc. También es utilizable este modelo en planificación de producción, por ejemplo enrutamiento de la producción a través de varias máquinas.

Ejemplo 10-2:

La carga de un avión se distribuye con el propósito de maximizar el ingreso total. Se consideran 5 elementos y sólo se necesita uno de cada uno. La compañía gana 5000 u.m. por elemento más una bonificación por elemento. El avión puede transportar 2000 libras.

Elemento Peso, lb Volumen, pies3 Valor bonificación 1 1000 70 700 2 1100 100 800 3 700 100 1100 4 800 80 1000 5 500 50 700a) ¿Cuáles elementos deben transportarse?

b) Si se considera un volumen máximo de 200 pies cúbicos. ¿cuáles elementos deben transportarse?

El problema se desarrolla bajo las dos consideraciones, primero teniendo en cuenta el peso y luego el volumen. Como puede apreciarse este es un problema que bien podría resolverse por programación lineal entera teniendo en cuenta la función objetivo y restricciones siguientes:

Siendo xj el elemento j a transportar.

Para el caso del volumen se reformaría la primera restricción cambiando los coeficientes por los volúmenes de los ítems.

Sea j: la variable que representa el artículo:

* x(j): el número de unidades el número de unidades cargadas del artículo j

* w(j): el espacio o el peso que demanda cada unidad del artículo j

* R(j,x(j)): la función del retorno del artículo j si se llevan x(j) unidades en la mochila, del artículo j

* g(j,w): retorno del total acumulativo dado el espacio w disponible para el artículo j

La relación recursiva dinámica se expresa como:

g(j,w) = máximo {R(j,x(j)) + g[j-1,w-w(j)x(j)]} para todo posible x(j)

Ahora ingresemos los datos al WINQSB:

La entrada de datos queda como sigue.

Al resolver el problema tenemos:

La solución nos indica que se deben transportar los ítems 3, 4 y 5 con un retorno total de 17800 u.m. y utilización plena de la capacidad (en peso), disponible del avión. Teniendo en cuenta sólo el volumen, el nuevo modelo es:

La solución es:

10.6 PROGRAMACIÓN DE PRODUCCIÓN E INVENTARIOS

El problema consiste en determinar un programa de producción para un periodo de tiempo con el fin de minimizar los costos totales relacionados. Hay demandas conocidas para cada periodo, límites de capacidad tanto para la producción como para los inventarios (almacenamiento). Cuando hay más producción que demanda, se acumula inventario, y cuando la producción es menor que la demanda, se generarán retrasos en el cumplimiento de pedidos (backorder). Para cada periodo, una producción no-cero incurre en un costo de preparación. En programación dinámica, el costo variable se expresa como una función de la producción (P), el inventario (H), y backorder (B).

Sea:

* P(n): el número de unidades producidas en el periodo n

* D(n): la demanda en el periodo n

* H(n): el inventario disponible al final del periodo n

* B(n): el backorder al final del periodo n

* I(n): la posición del inventario al final del periodo n, es decir, I(n) = H(n) o I(n) =B(n)

I(n) = I(n-1) + P(n) - D(n)

* S(n): el costo de preparación en el periodo n

* V (P(n), I(n)): el costo variable = función de P(n), H(n), y/o B(n)

* C(n,P(n),I(n)): = S(n) + V(P(n),I(n)) si P(n)>0, = V(P(n),I(n)) si P(n)=0

* f(n,i): costo total acumulativo dado el nivel del inventario inicial i para el periodo n

La relación recursiva dinámica se expresa como:

f(n,i) = máximo {C(n,P(n),i+P(n)-D(n)) + f(n-1,i+P(n)-D(n))} para todo posible P(n).

Ejemplo 10-3:

La tabla muestra los datos del siguiente problema de producción e inventario: la demanda para los meses de enero, febrero, marzo y abril es de 4, 5, 3 y 4 unidades, respectivamente. Las capacidades de producción son de 6, 4, 7, y 5 unidades; las capacidades de almacenaje son 4, 3, 2 y 4 unidades respectivamente. Los costos de preparación varían de un mes a otro y son: 500, 450, 500 y 600 u.m. para enero, febrero, marzo y abril.

Mes Costos Demanda Capacidad de producción Capacidad de Almacenamiento Enero 500 4 6 4 Febrero 450 5 4 3 Marzo 500 3 7 2 Abril 600 4 5 4Determinar un programa de producción con el fin de minimizar los costos totales relacionados.

Al igual que en los ejercicios anteriores, se procede a ingresar los datos:

La tabla inicial permite ingresar los datos expuestos en el ejemplo.

La ventana debería quedar como sigue:

La solución del problema es:

Las cantidades a producir mostradas en la tabla son de tal forma que permiten un costo mínimo en la planeación: se deben producir 5, 4, 3 y 4 unidades para los meses de enero, febrero, marzo y abril respectivamente. El costo total es de $7080, dividido en $2050 por concepto de costos de preparación y $5030 de costos variables. La tabla también muestra el juego de inventarios resultante de la producción y la demanda mensuales.


Google
 
Web eumed.net

 

Volver al índice de Análisis Cuantitativo con WINQSB

Volver a "Libros Gratis de Economía"

Volver a la "Enciclopedia y Biblioteca de Economía EMVI"