Está en la página 1de 10

UNIVERSIDAD MAYOR DE SAN SIMÓN

Facultad de Ciencias Económicas


Ingeniería Comercial

PROGRAMACION DINAMICA

Investigación Operativa II

Estudiantes:
Buergo Camacho Luis Sebastian
Monzón Pilco Daniel Marcelo
Ordóñez Alejandro Jhasir Noel
Seleme Trigo Monica Romina
Docente: Mgr. Ademar Marcelo Vargas Antezana
Grupo: 01

23 de noviembre de 2022
Cochabamba – Bolivia
INDICE

2 HISTORIA...................................................................................................................2
3 Introducción.................................................................................................................2
4 Características de la programación dinámica..............................................................2
5 Definiciones importantes:............................................................................................3
6 Métodos de solución:...................................................................................................3
6.1 El problema de la mochila...................................................................................3
6.2 Calculo de los Números de Fibonacci.................................................................4
6.3 Calculo de los coeficientes binomiales................................................................4
6.4 La subsecuencia común máxima:........................................................................5
6.5 El problema del camino de mínimo costo...........................................................5
6.6 Asignación de recursos........................................................................................6
7 Problema de ruta más corta resuelto mediante programación dinámica.....................6
8 RESUMEN..................................................................................................................9
9 Aplicación a Reinforcement Learning.........................................................................9
10 CONCLUSIÓN............................................................................................................9

USUARIO 1
PROGRAMACION DINAMICA
1 HISTORIA

El matemático Richard Bellman inventó la programación dinámica en 1953 que se utiliza


para optimizar problemas complejos que pueden ser discretizados y secuencializados.
Una sub estructura óptima significa que se pueden usar soluciones óptimas de
subproblemas para encontrar la solución óptima del problema en su conjunto
2 Introducción

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.
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.
3 Características de la programación dinámica

 Puede utilizarse en problemas lineales o no lineales, determinísticos o


estocásticos, uní o multivariados
 Es útil para resolver un problema donde se debe tomar una serie de decisiones
interrelacionadas
 Formato general: A diferencia de la Programación Lineal, la Programación
Dinámica no tiene formulación matemática estándar. Se trata de un enfoque tipo
general para la solución de problemas y las ecuaciones se derivan de sus
condiciones individuales.
 El problema no se puede dividir por etapas que requieren una decisión en cada
una de ellas
 Cada etapa tiene cierto número de estados asociados a su inicio. Estados son las
diferentes condiciones posibles en las que se puede encontrar el sistema en cada
etapa
 El efecto de la decisión en cada etapa es transformar el estado actual en un estado
asociado con el INICIO de la siguiente etapa

USUARIO 2
Para que un problema pueda ser resuelto con la técnica de Programación Dinámica,
debe cumplir con ciertas características:
 Naturaleza secuencial de las decisiones: El problema puede ser dividido en
etapas.
 Cada etapa tiene un numero de estados asociados a ella.
 La decisión ´optima de cada etapa depende solo del estado actual y no de las
decisiones anteriores.
 La decisión tomada en una etapa determina cual será el estado de la etapa
siguiente.
4 Definiciones importantes:

Etapa: es la parte del problema que posee un conjunto de alternativas mutuamente


excluyentes, de las cuales se seleccionará la mejor alternativa.
Estado: es el que refleja la condición o estado de las restricciones que enlazan las etapas.
Representa la “liga” entre etapas de tal manera que cuando cada etapa se optimiza por
separado la decisión resultante es automáticamente factible para el problema completo.

5 Métodos de solución:

Existe un conjunto de instrucciones o reglas bien definidas que permiten analizar


problemas que se pueden resolver a través de programación dinámica.
Algunos de ellos son:

5.1 El problema de la mochila

Hay un conjunto S de n objetos, en el que cada objeto i tiene un beneficio bi y un peso wi


positivo.
Se deben seleccionar los elementos que garanticen un beneficio maximo, pero con un
peso global menor o igual que W.
Dado el conjunto S de n objetos, sea Sk el conjunto de los k primeros objetos (de 1 a k):
Se puede definir B(k,w) como la ganancia de la mejor solución obtenida a partir de los
elementos de Sk para una mochila de capacidad w.
La mejor selección de elementos del conjunto Sk para una mochila de tamaño w se puede
definir en función de selecciones de elementos de Sk-‐1 para mochilas de menor
capacidad.
Dado el conjunto S de n objetos, sea Sk el conjunto de los K primeros objetos (de 1 a k):
Se puede definir B(k,w) como la ganancia de la mejor solución obtenida a partir de los
elementos de Sk para una mochila de capacidad w.

USUARIO 3
La mejor selección de elementos del conjunto Sk para una mochila de tamaño w se puede
definir en función de selecciones de elementos de Sk-‐1 para mochilas de menor
capacidad.

Para resolver el problema se puede hallar el máximo de ambos valores:

5.2 Calculo de los Números de Fibonacci

La Sucesión o Algoritmo de Fibonacci se caracteriza por el hecho de que cada número en


ella es igual a la suma de los anteriores:

0, 1, 1, 2, 3, 5, 8, 13, 21….. 

Es decir que:

(0+1=1 / 1+1=2 / 1+2=3 / 2+3=5 / 3+5=8 / 5+8=13 / 8+13=21 / 13+21=34…)

Así sucesivamente, hasta el infinito. Por regla, la sucesión de Fibonacci se escribe así:

n = n-1 + n-2.

5.3 Calculo de los coeficientes binomiales

Los coeficientes binomiales se utilizan en combinatoria para calcular combinaciones de


elementos, es decir, el número de formas en que se pueden extraer distintos subconjuntos
a partir de un conjunto dado, sin importar su orden.

El algoritmo que implementa directamente la ecuación recursiva anterior tiene


complejidad exponencial, ya que repite numerosos cálculos.

Conseguiremos un algoritmo más eficiente almacenando los coeficientes que se van


calculando.
USUARIO 4
En esta estructura cada coeficiente se obtiene sumando los dos elementos superiores a él,
y la complejidad temporal para calcular un coeficiente es de orden O(nk).

5.4 La subsecuencia común máxima:

La subsucesión común máxima de dos arreglos (pueden ser cadenas), es la subsucesión


que se encuentra tanto en el primer arreglo, como en el segundo, y es de longitud
máxima. Al igual que en el problema anterior, los elementos de la subsucesión no
necesariamente son adyacentes.

5.5 El problema del camino de mínimo costo

Este problema trata de descubrir los caminos mínimos de todas las parejas de nodos de un
un grafo con n nodos.

Se puede ver el camino mínimo entre el nodo 1 y el 3. Entre los tres caminos posibles
tenemos 1→3 con valor 20, 1→4→3 con valor 13+2=15 y, finalmente, 1→2→4→3 con
valor 3+8+2=13, siendo este último el de menor valor.

USUARIO 5
5.6 Asignación de recursos

El modelo de asignación es un tipo especial de problema de programación lineal en el


que los asignados son recursos que se destinan a la realización de tareas. Por ejemplo, los
asignados pueden ser empleados a quienes se tiene que dar trabajo. La asignación de
personas a trabajos es una aplicación común del problema de asignación. Sin embargo,
los asignados no tienen que ser personas. También pueden ser máquinas, vehículos o
plantas, o incluso periodos a los que se asignan tareas.

 Para que se ajuste a la definición de un problema de asignación, es necesario que este


tipo de aplicaciones se formule de manera tal que se cumplan los siguientes supuestos:

1. El número de asignados es igual al número de tareas. (Este número se denota por


n.)
2. A cada asignado se le asigna sólo una tarea.
3. Cada tarea debe realizarla sólo un asignado.
4. Existe un costo cij asociado con el asignado i (i 5 1, 2, . . . , n) que realiza la tarea
j ( j 1, 2, . . . , n).
5. El objetivo es determinar cómo deben hacerse las n asignaciones para minimizar
los costos totales.

6 Problema de ruta más corta resuelto mediante programación dinámica

Suponga que se desea seleccionar la ruta por carretera más corta entre dos ciudades. La
red que se muestra en la figura proporciona las posibles rutas entre la ciudad de inicio en
el nodo 1 y la ciudad de destino en el nodo 7

USUARIO 6
Para resolver el problema por PD, primero lo descomponemos en etapas como se indica
mediante las líneas de rayas verticales

La idea general para calcular la ruta más corta es calcular las distancias acumulativas más
cortas a todos los nodos terminales de una etapa, y luego utilizarlas como dato de entrada
a la etapa subsiguiente.
Partiendo del nodo 1, la etapa 1 llega a tres nodos terminales (2, 3 y 4)
ETAPA 1
– Del nodo 1 al nodo 2 hay 7 km
– Del nodo 1 al nodo 3 hay 8km
– Del nodo 1 al nodo 4 hay 5 km
La distancia más corta es de 1 à 4 con 5 km

La Etapa 2 tiene dos nodos terminales (5 y 6). Se puede llegar al nodo 5 desde los nodos
2,3,4 Se puede llegar al nodo 6 desde los nodos 2, 3
Nodo terminal 5

USUARIO 7
Se puede llegar al nodo 6 sólo desde los nodos 3 y 4. Por lo tanto

Resumen de la etapa 2. Distancia más corta del nodo 1 al nodo 5 5 12 millas (desde el
nodo 4) Distancia más corta del nodo 1 al nodo 6 5 17 millas (desde el nodo 3)

El último paso es considerar la etapa 3. Se puede llegar al nodo de destino 7 desde el


nodo 5 o desde el 6. Utilizando los resultados resumidos desde la etapa 2 y las distancias
de los nodos 5 y 6 al nodo 7, obtenemos

Resumen de la etapa 3. La distancia más corta desde el nodo 1 al nodo 7 5 21 millas


(desde el nodo 5)
El resumen de la etapa 3 muestra que la distancia más corta entre los nodos 1 y 7 es de
21 millas. Para determinar la ruta óptima comenzamos con el resumen de la etapa 3,
donde el nodo 7 se conecta al nodo 5; en el resumen de la etapa 2 el nodo 4 se conecta al
nodo 5, y en el resumen de la etapa 1 el nodo 4 se conecta al nodo 1. Por lo tanto, la ruta
más corta es 1 S 4 S5 S7. El ejemplo revela las propiedades básicas de los cálculos de
PD.
1. Los cálculos en cada etapa son una función de las rutas factibles de dicha etapa, y sólo
de esa etapa.

USUARIO 8
2. Una etapa actual está conectada a la etapa inmediatamente precedente sólo (sin tener
en cuenta las etapas anteriores) con base en el resumen de distancias más cortas de la
etapa inmediatamente precedente.

7 RESUMEN

Se aplica la programación dinámica al aprendizaje por refuerzo, que es una ´área de la


inteligencia artificial que está centrada en determinar qué acciones debe escoger un
agente de software en un entorno dado con el fin de encontrar la máxima recompensa.

8 Aplicación a Reinforcement Learning

El aprendizaje por refuerzo (conocido como Reinforcement Learning) es una de las


categorías principales de Machine Learning. El aprendizaje automático o Machine
Learning es una disciplina del campo de la inteligencia artificial que, a través de
algoritmos,
dota a los ordenadores de la capacidad de identificar patrones en datos masivos y elaborar
predicciones. Este aprendizaje permite a los ordenadores realizar tareas específicas de
forma autónoma, es decir, sin necesidad de ser programados. Las técnicas de aprendizaje
automático son actualmente una parte fundamental del Big Data. Algunos sistemas de
Machine Learning intentan eliminar toda necesidad de intuición o conocimiento experto
de los procesos de análisis de datos, mientras otros tratan de establecer un marco de
colaboración entre el experto y el ordenador.

9 CONCLUSIÓN

Finalmente hemos hablado del aprendizaje por refuerzo (reinforcement learning, RL)
como una extensión de la programación dinámica. Esta es un ´área de la inteligencia ´
artificial centrada en determinar qué acciones debe escoger un agente de software en un
entorno dado con el fin de encontrar la máxima recompensa. Para acabar, hemos
presentado dos de los principales algoritmos de RL: SARSA y Q-learning

USUARIO 9

También podría gustarte