Está en la página 1de 32

Sesión 3

UNIDAD 2. PROGRAMACIÓN DINÁMICA DETERMINÍSTICA

Docente: Vidal Armas Torres


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.

También podría gustarte