SlideShare una empresa de Scribd logo
1 de 33
Programación
Dinámica
REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA
EDUCACIÓN SUPERIOR
INSTITUTO UNIVERSITARIO POLITÉCNICO
“SANTIAGO MARIÑO”
EXTENSIÓN - MARACAY
ALUMNO:
JOSÉ MANUEL DÁVILA
C.I: V-26.866.696
PROGRAMACIÓN NO NUMÉRICA II
MARACAY, JULIO DE 2020.
Introducción
La Programación Dinámica es un método de optimización de
extraordinaria versatilidad. Si bien fue desarrollada especialmente para
la resolución de problemas en Procesos de Decisión en Múltiples Pasos,
diferentes investigaciones han mostrado que las mismas ideas pueden
utilizarse en otro tipo de problemas de matemática aplicada, e incluso
pueden ser útiles en el planteo de algunas cuestiones teóricas.
Habiendo surgido en los inicios de la época de las computadoras, la
Programación Dinámica fue, además, concebida con un ojo puesto en
esta potente herramienta. La Ecuación Funcional que se obtiene, para
cada problema, a través del uso del Principio de Optimalidad de
Bellman permite, con mayor o menor esfuerzo dependiendo del caso,
establecer una recurrencia que es, en sí misma, un algoritmo que
resuelve el problema en cuestión.
Programación
Dinámica
Definición
En informática, la programación dinámica es un método para
reducir el tiempo de ejecución de un algoritmo mediante la
utilización de subproblemas superpuestos y subestructuras óptimas.
La programación dinámica es una técnica matemática que se
utiliza para la solución de problemas matemáticos seleccionados,
en los cuales se toma un serie de decisiones en forma secuencial.
Proporciona un procedimiento sistemático para encontrar la
combinación de decisiones que maximice la efectividad total, al
descomponer el problema en etapas, las que pueden ser completadas por
una o más formas (estados), y enlazando cada etapa a través de cálculos
recursivos.
Dividir un problema en subproblemas más sencillos para poder resolverlos y luego
combinar sus soluciones para obtener la solución general, es una técnica que usamos para
resolver problemas, como por ejemplo en los recursivos. Pero a veces los subproblemas se
solapan o se calcula lo mismo en varios subproblemas, restando eficiencia a la ejecución de
la solución final.
Programación Dinámica: Definiciones básicas
Es la parte del problema que posee un conjunto de
alternativas mutuamente excluyentes, de las cuales se
seleccionará la mejor alternativa.01
Etapa:
02
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.
Estado:
Esquema de una etapa
La representación gráfica de una etapa sería de la
siguiente manera:
E
S
T
A
D
O
S
𝑞𝑖
REST
O
𝑋𝑖
…
𝑋𝑖𝑗
…
𝑋𝑖𝐽
𝑋𝑖*
Donde:
𝑞𝑖 = Variable de
estado en etapa i
𝑋𝑖𝑗 = Uno de los
valores que
puede
adoptar la
variable de
decisión “Xi” en la
etapa i
𝑋𝑖* = Decisión
óptima de la
etapa i.
01
02
03
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).
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. Esta teoría establece que:
“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”
Para resolver problemas de
programación dinámica se necesita:
Un grado de creatividad: es un método
de resolución de problemas, que aunque
mantiene algunas características comunes
entre unos y otros, cada aplicación
requiere un grado de práctica, creatividad
y conocimientos para lograr dividir el
problema grande en muchos pequeños
lógicos y que se encuentren relacionados
entre sí.
01
02
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.
Características de la Programación Dinámica
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.
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 esta diseñado para
encontrar una política óptima para el problema
completo.
Dado un estado actual, una
política óptima para las etapas
restantes es independiente de
la política adoptada en las
etapas anteriores (principio de
optimalidad).
El procedimiento de
solución se inicia al
encontrar la política
optima para la ultima
etapa.
Se dispone de una relación recursiva que
identifica la política óptima par la etapa n
dada la política optima para la etapa (n+1)
Recursividad
Podemos definir a la recursividad como un método de definir un
proceso a través del uso de premisas que no dan más información que el
método en sí mismo o que utilizan los mismos términos que ya aparecen
en su nombre, por ejemplo cuando se dice que la definición de algo es
ese algo mismo.
La recursividad tiene como característica principal la sensación de
infinito, de algo que es continuo y que por tanto no puede ser
delimitado en el espacio o el tiempo porque se sigue replicando y
multiplicando de manera lógica y matemática.
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
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.
Este problema se refiere a un vendedor mítico que tuvo que
viajar hacia el oeste por diligencia, a través de tierras indias
hostiles, aproximadamente hace 125 años. Aun cuando su punto
de partida y destino eran fijos, tenía un número considerable de
opciones para elegir, qué estados recorrer en su ruta.
El Problema de la Diligencia
01
El Problema de la
Diligencia: Ejemplo
Un caza fortunas de Missouri decide irse al oeste a unirse
a la fiebre del oro en California . Tiene que hacer el viaje en
diligencia a través de territorios sin ley donde existían serios
peligros de ser atacados por merodeadores. Aún cuando su
punto de partida y destino eran fijos, tenia muchas opciones
en cuanto a que estados debía elegir como puntos
intermedios. Se desea estimar la ruta mas segura, como el
costo de la póliza para cualquier jornada de la diligencia esta
basada en una evaluación de seguridad del recorrido, la ruta
mas segura debe
ser aquella que tenga el costo total mas barato.
¿Cuál es la ruta que minimiza el costo total de la póliza ?
Sistema de caminos y los costos del
problema de la diligencia
Dividir el
problema
Considerar
cada uno
Encontrar
solución óptima
Resolver el
problema
original
0
1
0
2
0
3
0
4
Solución del Problema
En cada problema aumentado se puede encontrar la solución
óptima tomando en cuenta los resultados obtenidos en la
interacción anterior.
Los cálculos se realizan en etapas dividiendo el problema en subproblemas.
Después, se considera por separado cada subproblema con el fin de reducir el
número de operaciones de cálculo.
Se comienza con una pequeña porción del problema original y se encuentra la
solución optima.
Luego, se agranda gradualmente el problema y se encuentra la
solución óptima actual a partir de la que le precede, hasta
resolver el problema original completo.
0
5
Procedimiento
de Solución
Para este caso se empleará el desarrollo del problema con un
recorrido hacia atrás.
Cuando el cazafortunas tiene una sola etapa por recorrer (n=4), su
ruta de ahí en adelante esta perfectamente determinada por su estado
actual (ya sea H o I) y su destino final, X4 = J, de manera que la ruta
para esta ultima jornada en diligencias es S = J.
La solución al problema es:
𝑓4 𝐻 = 3 𝑓4 𝐼 = 4
Procedimiento de Solución
Cuando se tienen dos etapas por recorrer (n=3), se
analiza de la siguiente manera:
Supóngase que se encuentra en el estado F,
entonces como se ve en la figura, se debe ir al estado
H o al estado I. a un costo de CF,H = 6 o CF,I =3.
Si se elige el estado H, el costo adicional mínimo al
llegar ahí es 3, por tanto el costo de decisión es 6+3=9,
de igual manera si se elige el estado I, el costo total es
3+4=7 que es menor por lo tanto se escogerá el
estado I.
Se trabaja de manera similar con los otros dos estados posibles S = E y S = G, cuando
quedan dos jornadas por viajar, los resultados son:
Procedimiento de Solución
𝑓3 𝐸 = 4 𝑓3 𝐹 = 7 𝑓3 𝐺 = 6
Procedimiento de Solución
La solución para el problema de tres etapas
(n=2) se obtiene en forma parecida.
Por ejemplo supóngase que el agente se
encuentra en el estado C, como se muestra el
diagrama.
Ahora deberá ir al estado E, F o G con un
costo inmediato de:
CC,E = 3 ; CC,F = 2 ; CC,G = 4
respectivamente.
Procedimiento de Solución
Al llegar aquí el costo adicional mínimo hasta llegar a su
destino esta dado de la siguiente manera:
El mínimo de estos tres números es 7, por lo que el
costo mínimo
desde el estado C al final es:
f * 2(C) = 7
y el destino inmediato debe ser X*2 = E.
Se realizan cálculos similares cuando se comienza
desde el estado B o D. Los resultados son:
f * 2(B) = 11 f * 2(C) = 7 f * 2(D) = 8
Si se pasa al problema de cuatro etapas (n=1), los
cálculos son parecidos a los que se acaban de mostrar
para el problema de tres etapas (n=2), excepto que
ahora hay solo un inicio posible, S=A , como se
muestra el diagrama.
Los resultados se resumen de la siguiente manera:
Como el mínimo costo es 11, por tanto los caminos
pueden ser C o D. En este punto se puede identificar la
solución óptima. Los resultados indican los caminos
óptimos a seguir:
A  D  E  H  J o también sería A  D  F  I
 J, las dos tienen un costo total de 11.
Arboles binarios de búsqueda
Un árbol es un Árbol Binado de Búsqueda (ABB) si éste es binario y
sus nodos son subárboles de búsqueda binarios y contienen información
ordenada de tal que todos los elementos a la izquierda de la raíz son
menores a la raíz y todos lo elementos a la derecha de la raíz son
mayores a la raíz.
Características:
 Todos los nodos a la izquierda son menores al padre.
 Todos los nodos a la derecha son mayores al padre.
 Y solo pueden tener 2 hijos a lo mucho.
1
2
3
Operaciones de los Arboles Binarios de Búsqueda
Inserción
La inserción es similar a la búsqueda y se puede
dar una solución tanto iterativa como recursiva. Si
tenemos inicialmente como parámetro un árbol
vacío se crea un nuevo nodo como único
contenido el elemento a insertar. Si no lo está, se
comprueba si el elemento dado es menor que la
raíz del árbol inicial con lo que se inserta en el
subárbol izquierdo y si es mayor se inserta en el
subárbol derecho.
Búsqueda
La búsqueda en un árbol binario de búsqueda consiste en acceder a la raíz del árbol, si el elemento a
localizar coincide con éste la búsqueda ha concluido con éxito, si el elemento es menor se busca en el
subárbol izquierdo y si es mayor en el derecho. Si se alcanza un nodo hoja y el elemento no ha sido
encontrado es que no existe en el árbol. Estas búsquedas son bastantes eficientes teniendo un máximo
de comparaciones en el rango de [log2(N+1)] y N.
Borrado
Esta operación es más compleja y hay
que tener en cuenta a borrar un nodo hija
o padre el impacto que tendrá en la
estructura del mismo. Al eliminar un nodo,
el árbol binario de búsqueda tienda a
reestructurarse en base al dato eliminado y,
en caso de requerirlo, se ordena
nuevamente como un árbol binario de
búsqueda.
Nosotros vamos a abordar la solución al mismo, tanto
mediante programación dinámica como con Bottom_up. Algoritmos
Arboles binarios de búsqueda óptimos
Si no vamos a modificar un árbol de búsqueda, y sabemos exactamente con qué frecuencia cada artículo
será accesible, podemos construir un árbol binario de búsqueda óptimo, que es un árbol de búsqueda donde
el coste medio de buscar un artículo (el esperado coste de búsqueda) se reduce al mínimo.
Incluso si sólo tenemos estimaciones de los costos de búsqueda, este sistema puede acelerar
considerablemente las búsquedas en promedio.
Consideraciones
Aspectos básicos
 Todos los subárboles de un árbol
óptimo son óptimos con respecto
a las claves que contienen.
Entonces:
 Consideremos un subárbol óptimo
que contenga las claves wi+1,
wi+2, …, wj.
 Denotemos por Cij el número
medio de comparaciones
efectuadas en un subárbol óptimo
que contiene las claves wi+1, wi+2,
…, wj durante la búsqueda de una
clave en el árbol principal (y
convenimos en que Cii=0).
 Supongamos ahora que wk ocupa
la raíz de ese subárbol.
 Sea el número medio de
comparaciones efectuadas en ese
subárbol durante la búsqueda de
una clave en el árbol principal.
Pasos a seguir
En nuestro algoritmo, los pasos a
realizar son:
1. Creamos una matriz auxiliar en la
que ir guardando los valores.
2. Tratamos según el número de
keys / nodos.
 Si solo tenemos una key el
coste es igual a la
frecuencia de la key.
 Si tenemos más de una, se
irán calculando el
respectivo coste.
3. Teniendo en cuenta longitudes 2,
3, … (L), la fila de la matriz(i), la
columna(j), hacer todas las claves en
un intervalo de [i…j] ® y el coste de
cuando una key® es la raíz del
subárbol ©, procedemos a realizar
nuestro algoritmo.
Algoritmo de Solución
Partiendo del algoritmo
principal, a la izquierda, un
pseudocódigo para nuestra
función SUM sería:
Complejidad
El tiempo de complejidad
es O(n⁴). Pero este tiempo se
puede reducir a O(n³) pre-
calculando la suma de las
frecuencias en lugar de
llamar a SUM una y otra vez.
Comprobaciones
Hay que tener en cuenta que
el tiempo depende del hardware
del ordenador de pruebas y
también de las frecuencias que le
pases en relación a cada nodo /
key.
Algoritmo con
Buttom Up
Bottom-up es una técnica que
se basa en ir resolviendo los
subproblemas desde los de
menor tamaño a los de más. De
tal modo que al final nos de un
resultado global de todo nuestro
problema a resolver.
En nuestro algoritmo, iremos
iterando e insertando en una
matriz los resultados de cada
subárbol, es decir, la suma de del
árbol(i,j). De tal forma que al final
nos quedará el subárbol de coste
medio mínimo.
El Pseudocódigo:
Comprobaciones
Como pudimos observar en la resolución
mediante programación dinámica, el
algoritmo es bastante efectivo, y aunque para
cierta cantidad de nodos con sus respectivos
frecuencias, el número de iteraciones sea
mayor, sigue aportando una buena solución al
problema planteado. Comparado con la
técnica bottom-up, el algoritmo de
programación dinámica resuelve nuestro
problema en la mitad de iteraciones.
El Problema del Vendedor Viajero
El Problema del Vendedor Viajero (conocido también como Travelling
Salesman Problem o simplemente TSP) consiste en encontrar el circuito
óptimo (en términos del viaje más corto) que deberá seguir un vendedor en
un caso con n ciudades, en el que cada
ciudad se visita exactamente una vez.
Básicamente es una adaptación del Problema de Asignación que
considera restricciones adicionales que garantiza la exclusión de
subcircuitos en la solución óptima.
Específicamente en el caso de n ciudades se define las variables de decisión de
la siguiente forma:
Sea dij la distancia de la ciudad i a la
ciudad j, donde , el modelo del
agente o vendedor viajero corresponde
a:
El Problema del
Vendedor Viajero
El conjunto de restricciones (1) y (2) definen un modelo de
asignación tradicional. Lamentablemente en general, el problema de
asignación producirá soluciones de subcircuito más que circuitos
completos que abarque las n ciudades.
Para ilustrar los conceptos de circuito y subcircuito en el contexto del
Problema del Vendedor Viajero, consideremos un agente de venta que vive
en la ciudad 1. Miami (Florida) en Estados Unidos y debe visitar a
importantes clientes en las siguientes ciudades: 2. Chicago (Illinois), 3.
Houston (Texas), 4. Las Vegas (Nevada) y 5. San Francisco (California). Para
mayor claridad se han destacado los estados mencionados anteriormente
con un color distintivo.
Un circuito factible sería viajar en el siguiente orden:
Miami (FL), Chicago (IL), Houston (TX), Las Vegas (NV), San
Francisco (CA), Miami (FL). Es decir:
Por otra parte un subcircuito correspondería, por ejemplo,
a Miami (FL), San Francisco (CA), Las Vegas (NV), Miami (FL),
junto a Houston (TX), Chicago (IL), Houston (TX). Es decir:
lo que naturalmente no es una solución factible para el
problema que se busca resolver.
Descripción del Problema del Vendedor Viajero
Se tiene un número de nodos (ciudades, localidades, tiendas, empresas, etc.) que
deben ser visitador por una entidad (personas, agente viajero, automotor, avión,
autobús, etc.) sin visitar dos veces el mismo nodo. Si tenemos 3 nodos (a, b y c) por
visitar, entonces tendríamos una función de combinación de combinaciones sin
repetición C(3, 2), es decir, tendríamos 6 posibles soluciones: abc, acb, bac, bca, cab,
cba. Para el caso de 4 nodos tendríamos 12 combinaciones, para 10 nodos serían 90
combinaciones, para 100 habrían 9,900, y así sucesivamente.
02
Está clasificado como Problema de Optimización combinatoria, donde intervienen cierto
número de variables, donde cada variable puede tener N diferentes valores, y cuyo número es de
carácter exponencial, lo que da lugar a múltiples soluciones óptimas.
Características:
Es un problema considerado difícil
de resolver, denominándose en
lenguaje computacional NP
Completo, es decir, es un problema
para que el no que no se puede
garantizar que se encontrará la
mejor solución en un tiempo de
cómputo razonable.
Emplea 3 tipos de variables:
 Tiempo de recorrido entre
ciudades: horas minutos,
semanas, etcétera.
 Distancia de recorrido por
ciudades: metros, kilómetros,
millas, milímetros.
 Costo de traslado: dinero,
desgaste de las piezas, gasto de
energía, etcétera.
Entre las distintas variables que se
pueden adoptar en los problemas
destacan:
 Circuitos electrónicos.
 Control de semáforos.
 Previsión del tránsito terrestre.
 Entrega de productos.
 Estaciones de trabajo.
 Edificación.
 Entre otras variables.
Aplicación del Problema
El problema del vendedor viajero se puede emplear en
cualquier situación que requiere seleccionar nodos en cierto
orden que reduzca los cortos:
Reparto de
productos: Mejorar
una ruta de entrega
para seguir la más
corta
Transporte: Mejorar
el recorrido de
caminos buscando
la menor longitud.
Robótica: Resolver
problemas de
fabricación para
minimizar el número de
desplazamientos al
realizar una serie de
perforaciones en un
circuito impreso.
Inspecciones a sitios
remotos: Ordenar
los lugares que
deberá visitar un
inspector en el
menor tiempo.
Turismo y agencias de
viaje: A pesar de no
tener conocimiento
explícito de este
problema, las
compañías utilizan
softwares para sus
recorridos.
Horarios de transportes
laborales/escolares:
Utilizan el TSP para sus
rutas óptimas en un
determinado plazo de
tiempo
Secuencias: Se refiere a l
orden en el cual N
trabajos tienen que ser
procesados de tal forma
que se minimice el
costo total de
producción.
El problema del agente viajero (TSP), es considerado como un conjunto de
grafos cuyas aristas son los posibles caminos que puede seguir la entidad para
visitar todos los nodos. (Öncan et al., 2009), y cuyo algoritmo se puede
representar de la siguiente manera:
Este problema puede resolverse por diferentes formas:
 Enumeración de todas las soluciones factibles: Comparar todas las soluciones
posibles y determinar la más conveniente en costo.
 Métodos exactos: También llamados algoritmos óptimos, intentan descartar
familias enteras de posible soluciones tratando así de acelerar la búsqueda y
llegar a una óptima.
 Heurísticas: Son métodos que obtienen buenas soluciones en tiempo de
cómputo muy cortos , aunque sin garantizar la solución única.
Algoritmo básico y métodos de resolución
Conclusiones
Finales
Un problema de
optimización que se
pueda dividir en etapas y
que sea dinámico en el
tiempo puede resolverse
por programación
dinámica.
Si es posible se validan
los resultados usando
otros métodos de
solución como
programación lineal, no
lineal, entera o teoría de
redes.
El problema del agente
viajero es una
herramienta muy
oportuna que permite
elegir la solución de
mejor beneficio y de esta
manera disminuir costos
de producción o traslado.
La programación
dinámica permite
estudiar problemas
comunes para establecer
la forma más eficiente u
óptima de resolver una
problemática establecida.
Es muy abarcador la
programación dinámica,
desde un viajero, a un
empresario, hasta la
posibilidad de combinar
objetos en una mochila o
espacio determinado
para ahorrar espacio y
costos.
El modelado de
problemas de
programación dinámica
no tienen una forma
estándar, así que resulta
indispensable especificar
los componentes que
caracterizan el problema
Bibliografía
 Maurette Manuel, Ojeda Ignacio, Programación Dinámica, 2016.
 Sasieni, M., Yaspan, A., Friedman L.; Investigación de Operaciones. Métodos y
Problemas; AID, México, 1967.
 López Julio Cesar, Programación Dinámica, Universidad del Valle 2008.
 Ventsel, Elena; Investigación de Operaciones. Problemas, principios,
metodología; Editorial Mir, Moscú, 1983.
 Vicentini, Fabio, Notas de Optimización, 2012
 Bertsekas,D.P., Dynamic Programming: Deterministic and Stochastic Models,
Academic Press, 1987.
 Dreyfus S.E. y Law A.M., The Art and Theory of Dynamic Programming,
Academic Press, 1977.
 Hiller, F. S. Introducción a la Investigación de Operaciones. 2008
 Taha, H. A. Investigación de Operaciones. 2005
 Fuentes P. Alejandro, Problema del Agente Viajero (2016). Boletín oficial UAEH.
 Prawda W. Juan, Métodos y modelos de investigación operativa, Edit. Limusa
1976.

Más contenido relacionado

La actualidad más candente

Conjunto ortonormal
Conjunto ortonormal Conjunto ortonormal
Conjunto ortonormal algebragr4
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoJosé Antonio Sandoval Acosta
 
Algoritmo divide y vencerás
Algoritmo divide y vencerásAlgoritmo divide y vencerás
Algoritmo divide y vencerásloco8888
 
Aplicaciones de las derivadas
Aplicaciones de las derivadasAplicaciones de las derivadas
Aplicaciones de las derivadasNoelyBueno
 
Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en CAbraham
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosAngel Vázquez Patiño
 
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Kiim Kerrigan
 
Extremos de funciones de dos variables
Extremos de funciones de dos variablesExtremos de funciones de dos variables
Extremos de funciones de dos variablesEliana Acurio Mendez
 
Ecuaciones Diferenciales
Ecuaciones  DiferencialesEcuaciones  Diferenciales
Ecuaciones DiferencialesRicardo
 
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Juan Carlos Martinez Garcia
 
Base y dimension de los espacios vectoriales
Base y dimension de los espacios vectorialesBase y dimension de los espacios vectoriales
Base y dimension de los espacios vectorialesManuel Alejandro Garza
 

La actualidad más candente (20)

Recursividad
RecursividadRecursividad
Recursividad
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Programacion no lineal
Programacion no linealProgramacion no lineal
Programacion no lineal
 
El concepto del limite (Cálculo I)
El concepto del limite (Cálculo I)El concepto del limite (Cálculo I)
El concepto del limite (Cálculo I)
 
Unidad 3. Programación dinámica
Unidad 3. Programación dinámicaUnidad 3. Programación dinámica
Unidad 3. Programación dinámica
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Conjunto ortonormal
Conjunto ortonormal Conjunto ortonormal
Conjunto ortonormal
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
Algoritmo divide y vencerás
Algoritmo divide y vencerásAlgoritmo divide y vencerás
Algoritmo divide y vencerás
 
Aplicaciones de las derivadas
Aplicaciones de las derivadasAplicaciones de las derivadas
Aplicaciones de las derivadas
 
Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en C
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
 
Extremos de funciones de dos variables
Extremos de funciones de dos variablesExtremos de funciones de dos variables
Extremos de funciones de dos variables
 
Modelo E R
Modelo E RModelo E R
Modelo E R
 
Ecuaciones Diferenciales
Ecuaciones  DiferencialesEcuaciones  Diferenciales
Ecuaciones Diferenciales
 
Shell exposición
Shell exposiciónShell exposición
Shell exposición
 
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Base y dimension de los espacios vectoriales
Base y dimension de los espacios vectorialesBase y dimension de los espacios vectoriales
Base y dimension de los espacios vectoriales
 

Similar a Presentación: Programación Dinámica

Programación Dinamica
Programación DinamicaProgramación Dinamica
Programación DinamicaRafael Brito
 
PROGRAMACION DINAMICA
PROGRAMACION DINAMICAPROGRAMACION DINAMICA
PROGRAMACION DINAMICAJOSEPHBADRA3
 
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059OscarGuarimata
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog dinamicaRuben Gonzalez
 
Sesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdfSesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdfCARLOSVALBUENA36
 
Programacion dinamica final
Programacion dinamica finalProgramacion dinamica final
Programacion dinamica finalWalter Toledo
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamicagenesisptc_
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeDanny Quintero
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeAndreina Arteaga
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeAndreina Arteaga
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación DinámicaKimLinares
 
Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion DinamicaLuisCabanerio
 
Presentacion programacion dinamica
Presentacion programacion dinamicaPresentacion programacion dinamica
Presentacion programacion dinamicaVINAYOCANDO13
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámicaliisab04
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamicaJosé Padrón
 

Similar a Presentación: Programación Dinámica (20)

Programación Dinamica
Programación DinamicaProgramación Dinamica
Programación Dinamica
 
PROGRAMACION DINAMICA
PROGRAMACION DINAMICAPROGRAMACION DINAMICA
PROGRAMACION DINAMICA
 
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
 
Programacion
ProgramacionProgramacion
Programacion
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog dinamica
 
Presentación de investigación de operaciones II
Presentación de investigación de operaciones IIPresentación de investigación de operaciones II
Presentación de investigación de operaciones II
 
Programacion dinamica jesus plaza
Programacion dinamica jesus plazaProgramacion dinamica jesus plaza
Programacion dinamica jesus plaza
 
Sesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdfSesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdf
 
Programacion dinamica final
Programacion dinamica finalProgramacion dinamica final
Programacion dinamica final
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrange
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrange
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrange
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion Dinamica
 
Presentacion programacion dinamica
Presentacion programacion dinamicaPresentacion programacion dinamica
Presentacion programacion dinamica
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
Programación dinámica
Programación  dinámicaProgramación  dinámica
Programación dinámica
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Unidad 3. Programación dinámica
Unidad 3. Programación dinámicaUnidad 3. Programación dinámica
Unidad 3. Programación dinámica
 

Último

Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirPaddySydney1
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 

Último (20)

Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartir
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 

Presentación: Programación Dinámica

  • 1. Programación Dinámica REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN SUPERIOR INSTITUTO UNIVERSITARIO POLITÉCNICO “SANTIAGO MARIÑO” EXTENSIÓN - MARACAY ALUMNO: JOSÉ MANUEL DÁVILA C.I: V-26.866.696 PROGRAMACIÓN NO NUMÉRICA II MARACAY, JULIO DE 2020.
  • 2. Introducción La Programación Dinámica es un método de optimización de extraordinaria versatilidad. Si bien fue desarrollada especialmente para la resolución de problemas en Procesos de Decisión en Múltiples Pasos, diferentes investigaciones han mostrado que las mismas ideas pueden utilizarse en otro tipo de problemas de matemática aplicada, e incluso pueden ser útiles en el planteo de algunas cuestiones teóricas. Habiendo surgido en los inicios de la época de las computadoras, la Programación Dinámica fue, además, concebida con un ojo puesto en esta potente herramienta. La Ecuación Funcional que se obtiene, para cada problema, a través del uso del Principio de Optimalidad de Bellman permite, con mayor o menor esfuerzo dependiendo del caso, establecer una recurrencia que es, en sí misma, un algoritmo que resuelve el problema en cuestión.
  • 3. Programación Dinámica Definición En informática, la programación dinámica es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestos y subestructuras óptimas. La programación dinámica es una técnica matemática que se utiliza para la solución de problemas matemáticos seleccionados, en los cuales se toma un serie de decisiones en forma secuencial. Proporciona un procedimiento sistemático para encontrar la combinación de decisiones que maximice la efectividad total, al descomponer el problema en etapas, las que pueden ser completadas por una o más formas (estados), y enlazando cada etapa a través de cálculos recursivos. Dividir un problema en subproblemas más sencillos para poder resolverlos y luego combinar sus soluciones para obtener la solución general, es una técnica que usamos para resolver problemas, como por ejemplo en los recursivos. Pero a veces los subproblemas se solapan o se calcula lo mismo en varios subproblemas, restando eficiencia a la ejecución de la solución final.
  • 4. Programación Dinámica: Definiciones básicas Es la parte del problema que posee un conjunto de alternativas mutuamente excluyentes, de las cuales se seleccionará la mejor alternativa.01 Etapa: 02 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. Estado:
  • 5. Esquema de una etapa La representación gráfica de una etapa sería de la siguiente manera: E S T A D O S 𝑞𝑖 REST O 𝑋𝑖 … 𝑋𝑖𝑗 … 𝑋𝑖𝐽 𝑋𝑖* Donde: 𝑞𝑖 = Variable de estado en etapa i 𝑋𝑖𝑗 = Uno de los valores que puede adoptar la variable de decisión “Xi” en la etapa i 𝑋𝑖* = Decisión óptima de la etapa i.
  • 6. 01 02 03 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). 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. Esta teoría establece que: “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”
  • 7. Para resolver problemas de programación dinámica se necesita: Un grado de creatividad: es un método de resolución de problemas, que aunque mantiene algunas características comunes entre unos y otros, cada aplicación requiere un grado de práctica, creatividad y conocimientos para lograr dividir el problema grande en muchos pequeños lógicos y que se encuentren relacionados entre sí. 01 02 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.
  • 8. Características de la Programación Dinámica 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. 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 esta diseñado para encontrar una política óptima para el problema completo. Dado un estado actual, una política óptima para las etapas restantes es independiente de la política adoptada en las etapas anteriores (principio de optimalidad). El procedimiento de solución se inicia al encontrar la política optima para la ultima etapa. Se dispone de una relación recursiva que identifica la política óptima par la etapa n dada la política optima para la etapa (n+1)
  • 9. Recursividad Podemos definir a la recursividad como un método de definir un proceso a través del uso de premisas que no dan más información que el método en sí mismo o que utilizan los mismos términos que ya aparecen en su nombre, por ejemplo cuando se dice que la definición de algo es ese algo mismo. La recursividad tiene como característica principal la sensación de infinito, de algo que es continuo y que por tanto no puede ser delimitado en el espacio o el tiempo porque se sigue replicando y multiplicando de manera lógica y matemática. 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.
  • 10. Recursividad 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.
  • 11. Este problema se refiere a un vendedor mítico que tuvo que viajar hacia el oeste por diligencia, a través de tierras indias hostiles, aproximadamente hace 125 años. Aun cuando su punto de partida y destino eran fijos, tenía un número considerable de opciones para elegir, qué estados recorrer en su ruta. El Problema de la Diligencia
  • 12. 01 El Problema de la Diligencia: Ejemplo Un caza fortunas de Missouri decide irse al oeste a unirse a la fiebre del oro en California . Tiene que hacer el viaje en diligencia a través de territorios sin ley donde existían serios peligros de ser atacados por merodeadores. Aún cuando su punto de partida y destino eran fijos, tenia muchas opciones en cuanto a que estados debía elegir como puntos intermedios. Se desea estimar la ruta mas segura, como el costo de la póliza para cualquier jornada de la diligencia esta basada en una evaluación de seguridad del recorrido, la ruta mas segura debe ser aquella que tenga el costo total mas barato. ¿Cuál es la ruta que minimiza el costo total de la póliza ?
  • 13. Sistema de caminos y los costos del problema de la diligencia
  • 14. Dividir el problema Considerar cada uno Encontrar solución óptima Resolver el problema original 0 1 0 2 0 3 0 4 Solución del Problema En cada problema aumentado se puede encontrar la solución óptima tomando en cuenta los resultados obtenidos en la interacción anterior. Los cálculos se realizan en etapas dividiendo el problema en subproblemas. Después, se considera por separado cada subproblema con el fin de reducir el número de operaciones de cálculo. Se comienza con una pequeña porción del problema original y se encuentra la solución optima. Luego, se agranda gradualmente el problema y se encuentra la solución óptima actual a partir de la que le precede, hasta resolver el problema original completo. 0 5
  • 15. Procedimiento de Solución Para este caso se empleará el desarrollo del problema con un recorrido hacia atrás. Cuando el cazafortunas tiene una sola etapa por recorrer (n=4), su ruta de ahí en adelante esta perfectamente determinada por su estado actual (ya sea H o I) y su destino final, X4 = J, de manera que la ruta para esta ultima jornada en diligencias es S = J. La solución al problema es: 𝑓4 𝐻 = 3 𝑓4 𝐼 = 4
  • 16. Procedimiento de Solución Cuando se tienen dos etapas por recorrer (n=3), se analiza de la siguiente manera: Supóngase que se encuentra en el estado F, entonces como se ve en la figura, se debe ir al estado H o al estado I. a un costo de CF,H = 6 o CF,I =3. Si se elige el estado H, el costo adicional mínimo al llegar ahí es 3, por tanto el costo de decisión es 6+3=9, de igual manera si se elige el estado I, el costo total es 3+4=7 que es menor por lo tanto se escogerá el estado I.
  • 17. Se trabaja de manera similar con los otros dos estados posibles S = E y S = G, cuando quedan dos jornadas por viajar, los resultados son: Procedimiento de Solución 𝑓3 𝐸 = 4 𝑓3 𝐹 = 7 𝑓3 𝐺 = 6
  • 18. Procedimiento de Solución La solución para el problema de tres etapas (n=2) se obtiene en forma parecida. Por ejemplo supóngase que el agente se encuentra en el estado C, como se muestra el diagrama. Ahora deberá ir al estado E, F o G con un costo inmediato de: CC,E = 3 ; CC,F = 2 ; CC,G = 4 respectivamente.
  • 19. Procedimiento de Solución Al llegar aquí el costo adicional mínimo hasta llegar a su destino esta dado de la siguiente manera: El mínimo de estos tres números es 7, por lo que el costo mínimo desde el estado C al final es: f * 2(C) = 7 y el destino inmediato debe ser X*2 = E. Se realizan cálculos similares cuando se comienza desde el estado B o D. Los resultados son: f * 2(B) = 11 f * 2(C) = 7 f * 2(D) = 8
  • 20. Si se pasa al problema de cuatro etapas (n=1), los cálculos son parecidos a los que se acaban de mostrar para el problema de tres etapas (n=2), excepto que ahora hay solo un inicio posible, S=A , como se muestra el diagrama. Los resultados se resumen de la siguiente manera: Como el mínimo costo es 11, por tanto los caminos pueden ser C o D. En este punto se puede identificar la solución óptima. Los resultados indican los caminos óptimos a seguir: A  D  E  H  J o también sería A  D  F  I  J, las dos tienen un costo total de 11.
  • 21. Arboles binarios de búsqueda Un árbol es un Árbol Binado de Búsqueda (ABB) si éste es binario y sus nodos son subárboles de búsqueda binarios y contienen información ordenada de tal que todos los elementos a la izquierda de la raíz son menores a la raíz y todos lo elementos a la derecha de la raíz son mayores a la raíz. Características:  Todos los nodos a la izquierda son menores al padre.  Todos los nodos a la derecha son mayores al padre.  Y solo pueden tener 2 hijos a lo mucho.
  • 22. 1 2 3 Operaciones de los Arboles Binarios de Búsqueda Inserción La inserción es similar a la búsqueda y se puede dar una solución tanto iterativa como recursiva. Si tenemos inicialmente como parámetro un árbol vacío se crea un nuevo nodo como único contenido el elemento a insertar. Si no lo está, se comprueba si el elemento dado es menor que la raíz del árbol inicial con lo que se inserta en el subárbol izquierdo y si es mayor se inserta en el subárbol derecho. Búsqueda La búsqueda en un árbol binario de búsqueda consiste en acceder a la raíz del árbol, si el elemento a localizar coincide con éste la búsqueda ha concluido con éxito, si el elemento es menor se busca en el subárbol izquierdo y si es mayor en el derecho. Si se alcanza un nodo hoja y el elemento no ha sido encontrado es que no existe en el árbol. Estas búsquedas son bastantes eficientes teniendo un máximo de comparaciones en el rango de [log2(N+1)] y N. Borrado Esta operación es más compleja y hay que tener en cuenta a borrar un nodo hija o padre el impacto que tendrá en la estructura del mismo. Al eliminar un nodo, el árbol binario de búsqueda tienda a reestructurarse en base al dato eliminado y, en caso de requerirlo, se ordena nuevamente como un árbol binario de búsqueda.
  • 23. Nosotros vamos a abordar la solución al mismo, tanto mediante programación dinámica como con Bottom_up. Algoritmos Arboles binarios de búsqueda óptimos Si no vamos a modificar un árbol de búsqueda, y sabemos exactamente con qué frecuencia cada artículo será accesible, podemos construir un árbol binario de búsqueda óptimo, que es un árbol de búsqueda donde el coste medio de buscar un artículo (el esperado coste de búsqueda) se reduce al mínimo. Incluso si sólo tenemos estimaciones de los costos de búsqueda, este sistema puede acelerar considerablemente las búsquedas en promedio.
  • 24. Consideraciones Aspectos básicos  Todos los subárboles de un árbol óptimo son óptimos con respecto a las claves que contienen. Entonces:  Consideremos un subárbol óptimo que contenga las claves wi+1, wi+2, …, wj.  Denotemos por Cij el número medio de comparaciones efectuadas en un subárbol óptimo que contiene las claves wi+1, wi+2, …, wj durante la búsqueda de una clave en el árbol principal (y convenimos en que Cii=0).  Supongamos ahora que wk ocupa la raíz de ese subárbol.  Sea el número medio de comparaciones efectuadas en ese subárbol durante la búsqueda de una clave en el árbol principal. Pasos a seguir En nuestro algoritmo, los pasos a realizar son: 1. Creamos una matriz auxiliar en la que ir guardando los valores. 2. Tratamos según el número de keys / nodos.  Si solo tenemos una key el coste es igual a la frecuencia de la key.  Si tenemos más de una, se irán calculando el respectivo coste. 3. Teniendo en cuenta longitudes 2, 3, … (L), la fila de la matriz(i), la columna(j), hacer todas las claves en un intervalo de [i…j] ® y el coste de cuando una key® es la raíz del subárbol ©, procedemos a realizar nuestro algoritmo.
  • 25. Algoritmo de Solución Partiendo del algoritmo principal, a la izquierda, un pseudocódigo para nuestra función SUM sería: Complejidad El tiempo de complejidad es O(n⁴). Pero este tiempo se puede reducir a O(n³) pre- calculando la suma de las frecuencias en lugar de llamar a SUM una y otra vez. Comprobaciones Hay que tener en cuenta que el tiempo depende del hardware del ordenador de pruebas y también de las frecuencias que le pases en relación a cada nodo / key.
  • 26. Algoritmo con Buttom Up Bottom-up es una técnica que se basa en ir resolviendo los subproblemas desde los de menor tamaño a los de más. De tal modo que al final nos de un resultado global de todo nuestro problema a resolver. En nuestro algoritmo, iremos iterando e insertando en una matriz los resultados de cada subárbol, es decir, la suma de del árbol(i,j). De tal forma que al final nos quedará el subárbol de coste medio mínimo. El Pseudocódigo: Comprobaciones Como pudimos observar en la resolución mediante programación dinámica, el algoritmo es bastante efectivo, y aunque para cierta cantidad de nodos con sus respectivos frecuencias, el número de iteraciones sea mayor, sigue aportando una buena solución al problema planteado. Comparado con la técnica bottom-up, el algoritmo de programación dinámica resuelve nuestro problema en la mitad de iteraciones.
  • 27. El Problema del Vendedor Viajero El Problema del Vendedor Viajero (conocido también como Travelling Salesman Problem o simplemente TSP) consiste en encontrar el circuito óptimo (en términos del viaje más corto) que deberá seguir un vendedor en un caso con n ciudades, en el que cada ciudad se visita exactamente una vez. Básicamente es una adaptación del Problema de Asignación que considera restricciones adicionales que garantiza la exclusión de subcircuitos en la solución óptima. Específicamente en el caso de n ciudades se define las variables de decisión de la siguiente forma: Sea dij la distancia de la ciudad i a la ciudad j, donde , el modelo del agente o vendedor viajero corresponde a:
  • 28. El Problema del Vendedor Viajero El conjunto de restricciones (1) y (2) definen un modelo de asignación tradicional. Lamentablemente en general, el problema de asignación producirá soluciones de subcircuito más que circuitos completos que abarque las n ciudades. Para ilustrar los conceptos de circuito y subcircuito en el contexto del Problema del Vendedor Viajero, consideremos un agente de venta que vive en la ciudad 1. Miami (Florida) en Estados Unidos y debe visitar a importantes clientes en las siguientes ciudades: 2. Chicago (Illinois), 3. Houston (Texas), 4. Las Vegas (Nevada) y 5. San Francisco (California). Para mayor claridad se han destacado los estados mencionados anteriormente con un color distintivo. Un circuito factible sería viajar en el siguiente orden: Miami (FL), Chicago (IL), Houston (TX), Las Vegas (NV), San Francisco (CA), Miami (FL). Es decir: Por otra parte un subcircuito correspondería, por ejemplo, a Miami (FL), San Francisco (CA), Las Vegas (NV), Miami (FL), junto a Houston (TX), Chicago (IL), Houston (TX). Es decir: lo que naturalmente no es una solución factible para el problema que se busca resolver.
  • 29. Descripción del Problema del Vendedor Viajero Se tiene un número de nodos (ciudades, localidades, tiendas, empresas, etc.) que deben ser visitador por una entidad (personas, agente viajero, automotor, avión, autobús, etc.) sin visitar dos veces el mismo nodo. Si tenemos 3 nodos (a, b y c) por visitar, entonces tendríamos una función de combinación de combinaciones sin repetición C(3, 2), es decir, tendríamos 6 posibles soluciones: abc, acb, bac, bca, cab, cba. Para el caso de 4 nodos tendríamos 12 combinaciones, para 10 nodos serían 90 combinaciones, para 100 habrían 9,900, y así sucesivamente. 02 Está clasificado como Problema de Optimización combinatoria, donde intervienen cierto número de variables, donde cada variable puede tener N diferentes valores, y cuyo número es de carácter exponencial, lo que da lugar a múltiples soluciones óptimas. Características: Es un problema considerado difícil de resolver, denominándose en lenguaje computacional NP Completo, es decir, es un problema para que el no que no se puede garantizar que se encontrará la mejor solución en un tiempo de cómputo razonable. Emplea 3 tipos de variables:  Tiempo de recorrido entre ciudades: horas minutos, semanas, etcétera.  Distancia de recorrido por ciudades: metros, kilómetros, millas, milímetros.  Costo de traslado: dinero, desgaste de las piezas, gasto de energía, etcétera. Entre las distintas variables que se pueden adoptar en los problemas destacan:  Circuitos electrónicos.  Control de semáforos.  Previsión del tránsito terrestre.  Entrega de productos.  Estaciones de trabajo.  Edificación.  Entre otras variables.
  • 30. Aplicación del Problema El problema del vendedor viajero se puede emplear en cualquier situación que requiere seleccionar nodos en cierto orden que reduzca los cortos: Reparto de productos: Mejorar una ruta de entrega para seguir la más corta Transporte: Mejorar el recorrido de caminos buscando la menor longitud. Robótica: Resolver problemas de fabricación para minimizar el número de desplazamientos al realizar una serie de perforaciones en un circuito impreso. Inspecciones a sitios remotos: Ordenar los lugares que deberá visitar un inspector en el menor tiempo. Turismo y agencias de viaje: A pesar de no tener conocimiento explícito de este problema, las compañías utilizan softwares para sus recorridos. Horarios de transportes laborales/escolares: Utilizan el TSP para sus rutas óptimas en un determinado plazo de tiempo Secuencias: Se refiere a l orden en el cual N trabajos tienen que ser procesados de tal forma que se minimice el costo total de producción.
  • 31. El problema del agente viajero (TSP), es considerado como un conjunto de grafos cuyas aristas son los posibles caminos que puede seguir la entidad para visitar todos los nodos. (Öncan et al., 2009), y cuyo algoritmo se puede representar de la siguiente manera: Este problema puede resolverse por diferentes formas:  Enumeración de todas las soluciones factibles: Comparar todas las soluciones posibles y determinar la más conveniente en costo.  Métodos exactos: También llamados algoritmos óptimos, intentan descartar familias enteras de posible soluciones tratando así de acelerar la búsqueda y llegar a una óptima.  Heurísticas: Son métodos que obtienen buenas soluciones en tiempo de cómputo muy cortos , aunque sin garantizar la solución única. Algoritmo básico y métodos de resolución
  • 32. Conclusiones Finales Un problema de optimización que se pueda dividir en etapas y que sea dinámico en el tiempo puede resolverse por programación dinámica. Si es posible se validan los resultados usando otros métodos de solución como programación lineal, no lineal, entera o teoría de redes. El problema del agente viajero es una herramienta muy oportuna que permite elegir la solución de mejor beneficio y de esta manera disminuir costos de producción o traslado. La programación dinámica permite estudiar problemas comunes para establecer la forma más eficiente u óptima de resolver una problemática establecida. Es muy abarcador la programación dinámica, desde un viajero, a un empresario, hasta la posibilidad de combinar objetos en una mochila o espacio determinado para ahorrar espacio y costos. El modelado de problemas de programación dinámica no tienen una forma estándar, así que resulta indispensable especificar los componentes que caracterizan el problema
  • 33. Bibliografía  Maurette Manuel, Ojeda Ignacio, Programación Dinámica, 2016.  Sasieni, M., Yaspan, A., Friedman L.; Investigación de Operaciones. Métodos y Problemas; AID, México, 1967.  López Julio Cesar, Programación Dinámica, Universidad del Valle 2008.  Ventsel, Elena; Investigación de Operaciones. Problemas, principios, metodología; Editorial Mir, Moscú, 1983.  Vicentini, Fabio, Notas de Optimización, 2012  Bertsekas,D.P., Dynamic Programming: Deterministic and Stochastic Models, Academic Press, 1987.  Dreyfus S.E. y Law A.M., The Art and Theory of Dynamic Programming, Academic Press, 1977.  Hiller, F. S. Introducción a la Investigación de Operaciones. 2008  Taha, H. A. Investigación de Operaciones. 2005  Fuentes P. Alejandro, Problema del Agente Viajero (2016). Boletín oficial UAEH.  Prawda W. Juan, Métodos y modelos de investigación operativa, Edit. Limusa 1976.