02 de abril de 2024 2.1. Aplicaciones de la programación dinámica determinística Programación dinámica determinística Formulación y solución de problemas ❑La programación dinámica determinística (PDD) es una técnica matemática que resuelve una serie de decisiones secuenciales, cada una de las cuales afecta las decisiones futuras.
❑Proporciona un procedimiento sistemático para
determinar la combinación de decisiones que maximiza la efectividad total Programación dinámica determinística Formulación y solución de problemas ❑La programación dinámica no cuenta con una formulación matemática estándar, sino que se trata de un enfoque de tipo general para la solución de problemas, y las ecuaciones específicas que se usan se deben desarrollar para que representen cada situación individual.
❑Comúnmente resuelve el problema por etapas, en donde
cada etapa interviene exactamente una variable de optimización (u optimizadora) Programación dinámica determinística Formulación y solución de problemas ❑La teoría unificadora fundamental de la programación dinámica es el Principio de Optimalidad, que nos indica básicamente como se puede resolver un problema adecuadamente descompuesto en etapas utilizando cálculos recursivos.
❑Una política óptima tiene la propiedad de que,
independientemente de las decisiones tomadas para llegar a un estado particular, en una etapa particular, las decisiones restantes deben constituir una política óptima para abandonar ese estado. Programación dinámica determinística Para la resolución de problemas ❑Un grado de creatividad
❑Un buen conocimiento de la estructura general de los
problemas de programación dinámica para reconocer cuando un problema se puede resolver por medio de estos procedimientos y como esto se puede llevar a cabo. Programación dinámica determinística Características ❑El problema se puede dividir en etapas que requieren una política de decisión en cada una.
❑Cada etapa tiene cierto número de estados
asociados a ella. Programación dinámica determinística Características ❑El efecto de la política de decisión en cada etapa es transformar el estado actual en un estado asociado con la siguiente etapa.
❑El procedimiento de solución está diseñado para
encontrar una política óptima para el problema completo. Programación dinámica determinística ❑La programación dinámica determinística es un enfoque de resolución de problemas que implica descomponer un problema en subproblemas más pequeños y resolver cada subproblema solo una vez, almacenando sus soluciones para evitar recálculos innecesarios.
❑La palabra "determinística" se refiere a que, dado un estado
inicial, la secuencia de decisiones y subproblemas a resolver es única, es decir, no hay incertidumbre en la elección de qué subproblemas resolver o en qué orden resolverlos. Programación dinámica determinística
❑Este enfoque se utiliza para resolver problemas de
optimización o de toma de decisiones donde la solución óptima se puede encontrar mediante la combinación de soluciones óptimas a subproblemas más pequeños.
❑Se utiliza principalmente en situaciones donde hay
solapamiento entre los subproblemas, lo que permite reutilizar las soluciones previamente calculadas. Programación dinámica determinística ❑La programación dinámica determinística puede aplicarse en una variedad de campos, como la optimización de rutas en logística, la planificación financiera, la resolución de problemas de ingeniería, entre otros.
❑Un ejemplo clásico de aplicación de programación
dinámica es el algoritmo de búsqueda de la ruta más corta en grafos, como el algoritmo de Dijkstra, que encuentra la ruta más corta desde un nodo de origen a todos los demás nodos en un grafo dirigido con pesos no negativos. Programación dinámica determinística Clasificación de problemas ❑Función objetivo: El objetivo puede ser tanto minimizar como maximizar la suma de las contribuciones en cada etapa, o también minimizar o maximizar el producto de los términos, etc. ❑Estados: Estos pueden ser discretos o continuos. También se puede dar que necesitemos un vector de estado. ❑Naturaleza de las variables de decisión: De la misma forma que los estados, las variables de decisión pueden ser discretas o continuas. Programación dinámica determinística Clasificación de problemas
❑ En el contexto de la logística, la programación
dinámica determinística se refiere a un enfoque para optimizar la planificación y la gestión de la cadena de suministro, teniendo en cuenta la secuencia temporal de decisiones y eventos. ❑Este enfoque implica descomponer un problema logístico en subproblemas más pequeños y resolverlos de manera secuencial para alcanzar una solución óptima global. Algunos ejemplos de aplicaciones de programación dinámica determinística en logística podrían incluir:
1.Gestión de inventario: Determinar la cantidad óptima de
productos a mantener en inventario en diferentes puntos de la cadena de suministro para minimizar costos de almacenamiento y rupturas de stock.
2. Planificación de rutas y transporte: Asignar
eficientemente vehículos y rutas para la entrega de productos, minimizando los costos de transporte y maximizando la utilización de los recursos disponibles. 3. Programación de producción: Planificar la secuencia de producción en una fábrica para satisfacer la demanda de productos de manera eficiente, minimizando los costos de producción y los tiempos de espera.
4. Gestión de la cadena de suministro: Coordinar y
sincronizar las actividades de aprovisionamiento, producción, almacenamiento y distribución para optimizar el flujo de productos a lo largo de toda la cadena de suministro. En resumen, la programación dinámica determinística en logística se utiliza para resolver problemas de optimización relacionados con la planificación y la gestión de la cadena de suministro, teniendo en cuenta la secuencia temporal de decisiones y eventos para alcanzar una solución óptima global. 2.2. Revisión del problema de la ruta más corta, para ejemplificar la recursividad Revisión del problema de la ruta más corta ¿Qué es? ❑El Problema del Camino más Corto (o ruta más barata) consiste en encontrar una ruta o camino óptimo entre un nodo fuente y un nodo destino, los cuales están enlazados a través de una red con arcos que poseen un cierto atributo, el cual puede ser costo, distancia, tiempo, etc. Revisión del problema de la ruta más corta ¿Qué es? ❑El problema de la ruta más corta es un problema clásico en la teoría de grafos y la optimización combinatoria. ❑El objetivo es encontrar la ruta más corta entre dos nodos específicos en un grafo ponderado, donde los nodos representan ubicaciones y las aristas representan conexiones entre estas ubicaciones, cada una con un peso que indica el costo o la distancia asociada con viajar de un nodo a otro. Revisión del problema de la ruta más corta Programación Entera ❑La Programación Entera permite abordar de forma eficiente este tipo de problemas, en especial cuando la cantidad de nodos y rutas posibles resulta ser un número significativo.
❑Utilizar en estos casos un enfoque intuitivo de resolución
es tedioso y de no ser exhaustivo no garantiza la identificación de la mejor alternativa o ruta. Revisión del problema de la ruta más corta Ejemplo ❑Consideremos el siguiente diagrama donde los números asignados a cada uno de los arcos representan la distancia en kilómetros de un nodo a otro. Se desea encontrar la ruta con la distancia mínima para ir del nodo 1 al nodo 8. Revisión del problema de la ruta más corta Ejemplo ❑El tamaño reducido de la red anterior permite encontrar el camino más corto simplemente enumerando las distintas alternativas que comenzando en el nodo 1 permita llegar al nodo 8. Revisión del problema de la ruta más corta Ejemplo De esta forma las rutas posibles son: ❑Ruta 1-2-5-7-8: 4+8+17+9=38[km] ❑Ruta 1-3-4-7-8: 3+12+20+9=44[km] ❑Ruta 1-3-4-6-8: 3+12+2+22=39[km] ❑Ruta 1-3-4-8: 3+12+15=30[km] ❑Ruta 1-3-6-8: 3+4+22=29[km] ❑La ruta o camino más corto está dada por la secuencia 1-3-6-8 con una distancia total de 29[km]. ❑En la logística, el problema de la ruta más corta puede aplicarse, por ejemplo, para encontrar la ruta más eficiente para la entrega de productos entre un almacén y un cliente, minimizando los costos de transporte o el tiempo de viaje.
❑También puede utilizarse para optimizar la planificación de
rutas de vehículos de entrega o para determinar la mejor secuencia de paradas en una ruta de distribución 2.3. Recursividad hacia adelante y recursividad hacia atrás Recursividad hacia adelante y recursividad hacia atrás Existen dos formas de plantear la fórmula de recursividad en los problemas de programación dinámica:
❑Recursividad de Retroceso: el problema se resuelva
partiendo de la última etapa hacia la primera.
❑Recursividad de Avance: el problema se resuelve
partiendo de la primera etapa hacia la última. Recursividad hacia adelante y recursividad hacia atrás ❑Las formulaciones de avance y retroceso son en realidad equivalentes en términos de cálculo. Sin embargo, hay situaciones donde habría alguna diferencia, en la eficiencia del cálculo, según la formulación que se utilice.
❑Esto sucede en particular en problemas donde intervine la
toma de decisiones conforme transcurre el tiempo. En esto caso las etapas se designan con base en el estricto orden cronológico de los periodos que ellas representan y la eficiencia de los cálculos dependerá de si se utiliza formulación de avance o retroceso. 2.4. Aplicaciones de Programación Dinámica Determinística Aplicaciones de Programación Dinámica Determinística En logística y transporte, la programación dinámica determinística se aplica en una variedad de áreas para optimizar la eficiencia y reducir costos. Aquí hay algunas aplicaciones específicas:
1.Enrutamiento de vehículos: La programación dinámica puede utilizarse
para determinar las rutas óptimas para vehículos de transporte, minimizando la distancia recorrida, el tiempo de viaje y los costos operativos, al mismo tiempo que se cumplen las restricciones específicas, como ventanas de tiempo de entrega y capacidades de carga de vehículos. 2. Gestión de flotas: Se utiliza para asignar eficientemente vehículos a tareas y optimizar la distribución de recursos en una flota de vehículos, maximizando la utilización de la flota y minimizando los tiempos de inactividad. 3. Planificación de la red de transporte: La programación dinámica puede ayudar en la planificación y optimización de la infraestructura de transporte, incluyendo la ubicación de centros de distribución, terminales de carga y puntos de transbordo, para minimizar los costos de transporte y mejorar la eficiencia de la red. 4. Programación de entregas: Se utiliza para planificar la secuencia de entregas de productos a clientes, optimizando el horario de entrega y minimizando los costos de transporte, mientras se cumplen los requisitos de tiempo de entrega y las restricciones de capacidad. 5. Gestión de inventario y almacenamiento: La programación dinámica puede ayudar en la gestión de inventario y almacenamiento, optimizando los niveles de inventario en diferentes ubicaciones y minimizando los costos asociados con el almacenamiento y la gestión de existencias.
6. Planificación de rutas de transporte público: Se utiliza para
optimizar las rutas y horarios de transporte público, maximizando la cobertura del servicio y minimizando los tiempos de espera y los tiempos de viaje para los usuarios. En resumen, la programación dinámica determinística se utiliza en logística y transporte para resolver una variedad de problemas, desde la planificación de rutas y la gestión de flotas hasta la optimización de la red de transporte y la programación de entregas, con el objetivo de mejorar la eficiencia operativa y reducir los costos.