SlideShare una empresa de Scribd logo
Republica Bolivariana de Venezuela
Ministerio del Poder Popular Para la Educación
Politécnico Universitario Santiago Mariño
Materia: Programación no Numérica II
Alumno:
Javier Velásquez
26.346.340
Barcelona, 08/07/2020.
Introducción
Contenido
•Programación Dinámica
•Estado y Etapa
•Esquema de una Etapa
•Formulación y Solución de Problemas
•Para Resolver Problemas de Programación Dinámica se
Necesita…
•Características de los Problemas de Programación
Dinámica
•Recursividad
•El Problema de la Diligencia
•Sistemas de Caminos y los Costos del Problema de la
Diligencia
•Arboles Binarios de Búsqueda Óptimos
•El Problema del Vendedor Viajero
Conclusión
Bibliografía
•En la programación se busca optimizar y buscar
alguna de las mejores soluciones de entre muchas
alternativas posibles. Este es una secuencia de
decisiones que nos permiten obtener una solución
correcta, y a su vez pueden ser subsecuencias de
decisiones.
•Dicho esto la programación dinámica se puede ver
como todo método que busca reducir el tiempo de
ejecución de cualquier algoritmo.
Introducción
Que es?
• 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.
• Una sub estructura óptima significa que se pueden
usar soluciones óptimas de subproblemas para
encontrar la solución óptima del problema en su
conjunto. Por ejemplo, el camino más corto entre dos
vértices de un grafo se puede encontrar calculando
primero el camino más corto al objetivo desde todos
los vértices adyacentes al de partida, y después
usando estas soluciones para elegir el mejor camino
de todos ellos.
En general, se pueden resolver problemas con subestructuras óptimas
siguiendo estos tres pasos:
• Dividir el problema en subproblemas más pequeños.
• Resolver estos problemas de manera óptima usando este proceso de tres pasos recursivamente.
• Usar estas soluciones óptimas para construir una solución óptima al problema original.
En resumen, la programación hace uso de:
• Subproblemas superpuestos
• Subestructuras óptimas
• Memorización
La programación toma normalmente uno de los dos siguientes enfoques:
• Top-down: El problema se divide en subproblemas, y estos se resuelven recordando las soluciones
por si fueran necesarias nuevamente. Es una combinación de memorización y recursión.
• Bottom-up: Todos los problemas que puedan ser necesarios se resuelven de antemano y después
se usan para resolver las soluciones a problemas mayores. Este enfoque es ligeramente mejor en
consumo de espacio y llamadas a funciones, pero a veces resulta poco intuitivo encontrar todos
los subproblemas necesarios para resolver un problema dado.
Elementos que intervienen en un
problema de programación dinámica:
ETAPAS:
•Se pueden definir
como cada uno
de los pasos que
se deben seguir
para llegar
al objetivo. Las
representamos
por líneas
discontinuas.
ESTADOS:
•Son las diversas
condiciones
posibles en la
que
el sistema podría
estar en esa
etapa del
problema. Se
representan por
círculos.
POLÍTICA:
•Es cualquiera de
los caminos que
llevan de la
primera a la
última etapa.
SUBPOLÍTICA:
•Es un
subconjunto de
la política.
qi Variable de estado en la etapa i
xij Uno de los valores que puede
adoptar la variable de decisión xi en
la etapa i
Xi* Decisión optima de la etapa i
Resolución: Debemos optimizar cada subproblema por etapas en función de los resultados de la resolución del subproblema
siguiente. Notar que para las recurrencias estén bien definidas requerimos de condiciones de borde.
Descripción de ecuaciones de recurrencia: Nos deben indicar como se acumula la función de beneficios a optimizar (función
objetivo) y como varían las funciones de estado de una etapa a otra
Muchos de los algoritmos de resolución de problemas lineales simples, son de origen exponencial por lo que resolver m cantidad
de problemas de un tamaño n es mas rápido que resolver un problema de tamaño m . N
Cada etapa debe tener asociado una o mas decisiones, cuya
dependencia de las decisiones anteriores esta dada
exclusivamente por las variables de estado.
Cada estado debe contener toda la información relevante
para la toma de decisión asociada al período.
Las variables de decisión son aquellas sobre las cuales
debemos definir su valor de modo de optimizar el beneficio
acumulado y modificar el estado de la próxima etapa.
Para resolver un problema de programación dinámica se debe:
Identificar las etapas, estados y variables de decisión
Creatividad
Pensamiento
Lógico
Orden de las
Ideas
Pleno
Conocimiento
de la Estructura
del Problema
Buscar
Diferentes Tipos
de Soluciones al
Problema.
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 óptima 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.
Para que un problema pueda ser
resuelto con la técnica de
programación dinámica, debe
cumplir con ciertas características:
Programación
Dinámica
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 ultima etapa hacia la
primera
Recursividad de Avance: el
problema se resuelve partiendo
de la primera etapa hacia la
ultima.
Las formulaciones de avance y
retroceso son en realidad
equivalentes en términos de calculo.
Sin embargo, hay situaciones donde
habría alguna diferencia, en la
eficiencia del calculo, según la
formulación que se utilice. Esto
sucede en particular en problemas
donde interviene la toma de
decisiones conforme transcurre el
tiempo.
En este 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.
•Los costos de la póliza
estándar para el viaje en
diligencia del estado i al j, el
cual se denotará Cij, es:
Seguros de Pólizas
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 numero de
operaciones de calculo.
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 una
solución optima actual a partir de
la que le precede, hasta resolver el
problema original completo.
En cada problema aumentado se
puede encontrar la solución óptima
tomando en cuenta los resultados
obtenidos en la interacción
anterior.
Para este caso se empleara el
desarrollo del problema con un
recorrido hacia atrás.
Cuando el viajero 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:
•F4 (H) = 3
•F4 (I) = 4
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 ó al
estado I, a un costo de Cf,h=6 ó 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 l.
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:
•F3 ( E ) = 4
•F3 ( F ) = 7
•F3 ( G ) = 6
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
demuestra en el diagrama. Ahora deberá ir
al estado E, F o G con un costo inmediato
de Cc,e=3 o Cc,f=2 o Cc,g=4, respectivamente.
Al llegar aquí el costo
adicional mínimo hasta
llegar a su destino esta dado
de la siguiente manera:
x2 = E f2(C,E) = CC,E + f3( E ) = 3 + 4 = 7
x2 = F f2(C,F) = CC,F + f3( F ) = 2 + 7 = 9
x2 = G f2(C,G) = CC,G + f3( G ) = 4 + 6 = 10
El mínimo de estos tres
numero es 7, por lo que el
costo mínimo desde el
estado C al final es f2(C) = 7,
y el destino inmediato debe
ser x2 = E
Se realizan los cálculos
similares cuando se comienza
desde el estado B o D. Los
resultados son:
f2(B) = 11 f2(C) = 7 f2(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
solo hay un inicio posible, S=A,
como se demuestra el diagrama
Los resultados se resumen de la
siguiente manera:
•X1 = B f1(A,B) = CA,B + f2(B) = 2 + 11
= 13
•X1 = C f1(A,C) = CA,C + f2(C) = 4 + 7 =
11
•X1 = D f1(A,D) = CA,D + f2(D) = 3 + 8 =
11
Como el mínimo de costo es 11,
por lo 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 A>D>F>I>J, las dos tienen
un costo total de 11
Un árbol binario no es más que una estructura de datos cuyos nodos pueden tener un hijo a la izquierda o a la
derecha ( no más de 2). Por lo tanto un árbol binario de búsqueda no es más que un tipo de árbol binario cuya
estructura de árbol se representa en informática.
Árbol Binario
•Estos árboles pueden realizar operaciones 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.
•Insertado: 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.
•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.
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.
Árboles de búsqueda
binario óptimos
•Incluso si sólo tenemos estimaciones de los costos de búsqueda, este sistema puede acelerar considerablemente las búsquedas en promedio.
•Nosotros vamos a abordar la solución al mismo tanto mediante programación dinámica como con bottom-up.
A la hora de abordar el problema mediante programación dinámica, hay que tener en cuenta el principio de
optimización, y este nos dice que : Todos los subárboles de un árbol óptimo son
óptimos con respecto a las claves que contienen.”
ALGORITMOS
Programación dinámica
•De esta forma, abordaremos nuestro problema de la siguiente forma:
•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.
El problema del 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 dij = ∞, el modelo del agente
o vendedor viajero corresponde a:
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, x12 = x23 = x34 = x45
= x51 = 1.
•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, x15 = x54 = x41 = x32 = x23 = 1, lo
que naturalmente no es una solución factible para el problema que se
busca resolver.
El modelo del vendedor viajero se caracteriza por su
versatilidad para representar otros casos prácticos en
optimización. Uno de ellos es el Problema de
Secuenciamiento de la Producción como el que se
presenta a continuación:
El programa de producción diaria de una empresa de
pinturas incluye lotes de color Blanco (B), Amarillo
(A), Negro (N) y Rojo (R). Como la empresa utiliza las
mismas instalaciones en las cuatro clases de pintura, es
necesario hacer una limpieza entre los lotes. La siguiente
tabla resume el tiempo de limpieza, en minutos, donde al
color de la fila sigue el color de la columna. Por ejemplo,
cuando después de la pintura Blanca sigue la Amarilla, el
tiempo de limpieza en 10 minutos. Como un color no
puede seguir a sí mismo, a los elementos
correspondientes se les asigna un tiempo de setup
infinito. Se desea determinar la secuencia óptima para la
producción diaria de los cuatro colores, que minimice el
tiempo total de limpieza necesario.
Se puede hacer una analogía con el problema
del vendedor viajero, asumiendo que cada
pintura es una “ciudad” y que
las “distancias” representan el tiempo de
limpieza necesario para cambiar de un lote
de pintura al siguiente. En consecuencia, el
problema se reduce a determinar el circuito
más corto que se inicie en un lote de pintura y
pase exactamente una vez por cada uno de
los tres lotes restantes, para regresar al punto
de partida.
En este contexto dada la cantidad de
pinturas, la secuencia óptima se puede
encontrar por enumeración exhaustiva de los
6 circuitos posibles (n-1)! , es decir, (4-1)! = 3!
= 6 . En el ejemplo dicha secuencia óptima
corresponde a Blanco, Amarillo, Rojo, Negro,
Blanco, con un tiempo total de setup de 98
minutos. Naturalmente esta estrategia no es
eficiente y queda limitada a problemas muy
pequeños.
Alternativamente se puede utilizar implementar en Solver el modelo
de asignación presentado anteriormente, haciendo uso de los
parámetros descritos en el ejemplo del secuenciamiento de la
producción de pinturas. A continuación un extracto de los resultados
donde se observa que no se alcanza una solución de circuito.
En la actualidad existen programas computacionales que permiten
enfrentar estas dificultades que establece el problema del vendedor
viajero. Uno de ellos es el software TSPSG (TSP Solver and Generator)
que se caracteriza por una interfaz intuitiva y que a continuación se
detalla la implementación de nuestro problema (recordar que la
Ciudad 1 correspondería al color Blanco, y así sucesivamente).
Una vez ingresado los datos al seleccionar “Solve” el programa se
ejecuta entregando los resultados alcanzados que por cierto coincide
con aquellos que identificamos por enumeración.
•Dando uso a la programación dinámica, el
algoritmo se vuelve bastante eficiente, es
importante saber cuando usar las técnicas bottom-
up o top-down, ya que esto puede ayudar a reducir
la mitad del tiempo para resolver un problema en la
menor cantidad de iteraciones posibles.
•Aporta mayor entendimiento a la hora de resolver
los problemas dividiendo las etapas de un problema
y resolver uno por uno.
Conclusión
•Programación Dinámica. Runestone. Link:
https://runestone.academy/runestone/static/pythoned/Recursion/ProgramacionDinamica.html
•Programación Dinámica. Monografías. Link: https://www.monografias.com/trabajos104/la-programacion-
dinamica/la-programacion-dinamica.shtml
•Idalia F. Programación Dinámica Link:
https://www.ingenieria.unam.mx/sistemas/PDF/Avisos/Seminarios/S.eminarioV/Sesion6_IdaliaFlores_20abr15.pdf
•Wordpress. Problema de la Diligencia. 2011. Link: https://albertoindustrial.wordpress.com/2011/10/06/problema-
de-la-diligencia/
•Bertsekas, D.P. ‘‘Dynamic Programing; 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
•Wikipedia. Árbol Binario de Busqueda. Link:
https://es.wikipedia.org/wiki/%C3%81rbol_binario_de_b%C3%BAsqueda
•Gestióndeoperaciones. Problema del Vendedor. Link: https://www.gestiondeoperaciones.net/programacion-
entera/solucion-del-problema-del-vendedor-
viajero/#:~:text=El%20Problema%20del%20Vendedor%20Viajero,se%20visita%20exactamente%20una%20vez.
Fuentes de Información

Más contenido relacionado

La actualidad más candente

Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
Juan Esteban Puerta Cano
 
PROGRAMACION DINAMICA
PROGRAMACION DINAMICAPROGRAMACION DINAMICA
PROGRAMACION DINAMICA
JOSEPHBADRA3
 
Programación dinámica
Programación dinámica Programación dinámica
Programación dinámica
Juan Esteban Puerta Cano
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
Daniel Gomez Jaramillo
 
Programacion Dinamica Intro
Programacion Dinamica IntroProgramacion Dinamica Intro
Programacion Dinamica Intro
folken22
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
Alvaro Avendaño Arias
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
Salvador Fernández Fernández
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
Alejandro Domínguez Torres
 
Programación dinámica
Programación  dinámicaProgramación  dinámica
Programación dinámica
Elmer Gabriel Chan Pech
 
Asignacion
AsignacionAsignacion
Asignacion
William Cp
 
61178886 i-o-ii-principal
61178886 i-o-ii-principal61178886 i-o-ii-principal
61178886 i-o-ii-principal
daniel malpica
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
Xavi2701
 
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
JURYMAR CAROLINA COLMENARES ORTIZ
 
Programacion dinamica jesus plaza
Programacion dinamica jesus plazaProgramacion dinamica jesus plaza
Programacion dinamica jesus plaza
Jesus Plaza Aguilera
 
Capitulo 9
Capitulo 9Capitulo 9
Programacion Lineal
Programacion LinealProgramacion Lineal
Programacion Lineal
marciams
 
0208
02080208
1.3.2 la programación lineal y su uso en la programación de operaciones
1.3.2 la programación lineal y su uso en la programación de operaciones1.3.2 la programación lineal y su uso en la programación de operaciones
1.3.2 la programación lineal y su uso en la programación de operaciones
HumbertoCarlosGalleg
 
Computacion Numerica
Computacion NumericaComputacion Numerica
Computacion Numerica
alex buenaño
 
I programacion lineal
I programacion linealI programacion lineal
I programacion lineal
bkike
 

La actualidad más candente (20)

Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
PROGRAMACION DINAMICA
PROGRAMACION DINAMICAPROGRAMACION DINAMICA
PROGRAMACION DINAMICA
 
Programación dinámica
Programación dinámica Programación dinámica
Programación dinámica
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Programacion Dinamica Intro
Programacion Dinamica IntroProgramacion Dinamica Intro
Programacion Dinamica Intro
 
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
 
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
 
Asignacion
AsignacionAsignacion
Asignacion
 
61178886 i-o-ii-principal
61178886 i-o-ii-principal61178886 i-o-ii-principal
61178886 i-o-ii-principal
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
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
 
Capitulo 9
Capitulo 9Capitulo 9
Capitulo 9
 
Programacion Lineal
Programacion LinealProgramacion Lineal
Programacion Lineal
 
0208
02080208
0208
 
1.3.2 la programación lineal y su uso en la programación de operaciones
1.3.2 la programación lineal y su uso en la programación de operaciones1.3.2 la programación lineal y su uso en la programación de operaciones
1.3.2 la programación lineal y su uso en la programación de operaciones
 
Computacion Numerica
Computacion NumericaComputacion Numerica
Computacion Numerica
 
I programacion lineal
I programacion linealI programacion lineal
I programacion lineal
 

Similar a Programacion

Programación Dinamica
Programación DinamicaProgramación Dinamica
Programación Dinamica
Rafael Brito
 
Presentación: Programación Dinámica
Presentación: Programación DinámicaPresentación: Programación Dinámica
Presentación: Programación Dinámica
William Snow
 
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
OscarGuarimata
 
Sesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdfSesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdf
CARLOSVALBUENA36
 
Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion Dinamica
LuisCabanerio
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog dinamica
Ruben Gonzalez
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
KimLinares
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
Alvaro Avendaño Arias
 
Programación deterministica
Programación deterministicaProgramación deterministica
Programación deterministica
Daniel Segundo Araujo Alcalde
 
programaciondinamica-150128212619-conversion-gate01.pdf
programaciondinamica-150128212619-conversion-gate01.pdfprogramaciondinamica-150128212619-conversion-gate01.pdf
programaciondinamica-150128212619-conversion-gate01.pdf
GabyGabyValbuena
 
Clase 7 IO Programación Dinamica_MÓNICA.pdf
Clase 7 IO Programación Dinamica_MÓNICA.pdfClase 7 IO Programación Dinamica_MÓNICA.pdf
Clase 7 IO Programación Dinamica_MÓNICA.pdf
NekoRojas3
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamica
ManuelStreck
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamica
ManuelStreck
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamica
ManuelStreck
 
Programación lineal y pert. do
Programación lineal y pert. doProgramación lineal y pert. do
Programación lineal y pert. do
John Leyton
 
Plantilla ensayo
Plantilla ensayoPlantilla ensayo
Plantilla ensayo
Silvia Michay
 
Plantilla ensayo
Plantilla ensayoPlantilla ensayo
Plantilla ensayo
Silvia Michay
 
Plantilla ensayo
Plantilla ensayoPlantilla ensayo
Plantilla ensayo
Silvia Michay
 
Plantilla ensayo
Plantilla ensayoPlantilla ensayo
Plantilla ensayo
Silvia Michay
 
Unidad 3. Programación dinámica
Unidad 3. Programación dinámicaUnidad 3. Programación dinámica
Unidad 3. Programación dinámica
Universidad del golfo de México Norte
 

Similar a Programacion (20)

Programación Dinamica
Programación DinamicaProgramación Dinamica
Programación Dinamica
 
Presentación: Programación Dinámica
Presentación: Programación DinámicaPresentación: Programación Dinámica
Presentación: Programación Dinámica
 
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
 
Sesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdfSesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdf
 
Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion Dinamica
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog 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
 
Programación deterministica
Programación deterministicaProgramación deterministica
Programación deterministica
 
programaciondinamica-150128212619-conversion-gate01.pdf
programaciondinamica-150128212619-conversion-gate01.pdfprogramaciondinamica-150128212619-conversion-gate01.pdf
programaciondinamica-150128212619-conversion-gate01.pdf
 
Clase 7 IO Programación Dinamica_MÓNICA.pdf
Clase 7 IO Programación Dinamica_MÓNICA.pdfClase 7 IO Programación Dinamica_MÓNICA.pdf
Clase 7 IO Programación Dinamica_MÓNICA.pdf
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamica
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamica
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamica
 
Programación lineal y pert. do
Programación lineal y pert. doProgramación lineal y pert. do
Programación lineal y pert. do
 
Plantilla ensayo
Plantilla ensayoPlantilla ensayo
Plantilla ensayo
 
Plantilla ensayo
Plantilla ensayoPlantilla ensayo
Plantilla ensayo
 
Plantilla ensayo
Plantilla ensayoPlantilla ensayo
Plantilla ensayo
 
Plantilla ensayo
Plantilla ensayoPlantilla ensayo
Plantilla ensayo
 
Unidad 3. Programación dinámica
Unidad 3. Programación dinámicaUnidad 3. Programación dinámica
Unidad 3. Programación dinámica
 

Último

Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Juan Martín Martín
 
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJELA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
jecgjv
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
H4RV3YH3RN4ND3Z
 
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT   en el Aula Ccesa007.pdfDocentes y el uso de chatGPT   en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Demetrio Ccesa Rayme
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
Armando920824
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
Jose Luis Jimenez Rodriguez
 
Sesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdfSesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdf
https://gramadal.wordpress.com/
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Demetrio Ccesa Rayme
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
israelsouza67
 
Radicación con expresiones algebraicas para 9no grado
Radicación con expresiones algebraicas para 9no gradoRadicación con expresiones algebraicas para 9no grado
Radicación con expresiones algebraicas para 9no grado
perezducasaarmando
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Demetrio Ccesa Rayme
 
Maristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdfMaristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdf
belbarcala
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
acgtz913
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
josseanlo1581
 
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdfLas Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Demetrio Ccesa Rayme
 
Planificación Ejemplo con la metodología TPACK
Planificación Ejemplo con la metodología  TPACKPlanificación Ejemplo con la metodología  TPACK
Planificación Ejemplo con la metodología TPACK
ssusera6697f
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
lautyzaracho4
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
RAMIREZNICOLE
 

Último (20)

Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
 
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJELA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
 
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT   en el Aula Ccesa007.pdfDocentes y el uso de chatGPT   en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
 
Sesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdfSesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdf
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
 
A VISITA DO SENHOR BISPO .
A VISITA DO SENHOR BISPO                .A VISITA DO SENHOR BISPO                .
A VISITA DO SENHOR BISPO .
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
 
Radicación con expresiones algebraicas para 9no grado
Radicación con expresiones algebraicas para 9no gradoRadicación con expresiones algebraicas para 9no grado
Radicación con expresiones algebraicas para 9no grado
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
 
Maristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdfMaristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdf
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
 
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdfLas Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
 
Planificación Ejemplo con la metodología TPACK
Planificación Ejemplo con la metodología  TPACKPlanificación Ejemplo con la metodología  TPACK
Planificación Ejemplo con la metodología TPACK
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
 

Programacion

  • 1. Republica Bolivariana de Venezuela Ministerio del Poder Popular Para la Educación Politécnico Universitario Santiago Mariño Materia: Programación no Numérica II Alumno: Javier Velásquez 26.346.340 Barcelona, 08/07/2020.
  • 2. Introducción Contenido •Programación Dinámica •Estado y Etapa •Esquema de una Etapa •Formulación y Solución de Problemas •Para Resolver Problemas de Programación Dinámica se Necesita… •Características de los Problemas de Programación Dinámica •Recursividad •El Problema de la Diligencia •Sistemas de Caminos y los Costos del Problema de la Diligencia •Arboles Binarios de Búsqueda Óptimos •El Problema del Vendedor Viajero Conclusión Bibliografía
  • 3. •En la programación se busca optimizar y buscar alguna de las mejores soluciones de entre muchas alternativas posibles. Este es una secuencia de decisiones que nos permiten obtener una solución correcta, y a su vez pueden ser subsecuencias de decisiones. •Dicho esto la programación dinámica se puede ver como todo método que busca reducir el tiempo de ejecución de cualquier algoritmo. Introducción
  • 4.
  • 5. Que es? • 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. • Una sub estructura óptima significa que se pueden usar soluciones óptimas de subproblemas para encontrar la solución óptima del problema en su conjunto. Por ejemplo, el camino más corto entre dos vértices de un grafo se puede encontrar calculando primero el camino más corto al objetivo desde todos los vértices adyacentes al de partida, y después usando estas soluciones para elegir el mejor camino de todos ellos.
  • 6. En general, se pueden resolver problemas con subestructuras óptimas siguiendo estos tres pasos: • Dividir el problema en subproblemas más pequeños. • Resolver estos problemas de manera óptima usando este proceso de tres pasos recursivamente. • Usar estas soluciones óptimas para construir una solución óptima al problema original. En resumen, la programación hace uso de: • Subproblemas superpuestos • Subestructuras óptimas • Memorización La programación toma normalmente uno de los dos siguientes enfoques: • Top-down: El problema se divide en subproblemas, y estos se resuelven recordando las soluciones por si fueran necesarias nuevamente. Es una combinación de memorización y recursión. • Bottom-up: Todos los problemas que puedan ser necesarios se resuelven de antemano y después se usan para resolver las soluciones a problemas mayores. Este enfoque es ligeramente mejor en consumo de espacio y llamadas a funciones, pero a veces resulta poco intuitivo encontrar todos los subproblemas necesarios para resolver un problema dado.
  • 7.
  • 8. Elementos que intervienen en un problema de programación dinámica: ETAPAS: •Se pueden definir como cada uno de los pasos que se deben seguir para llegar al objetivo. Las representamos por líneas discontinuas. ESTADOS: •Son las diversas condiciones posibles en la que el sistema podría estar en esa etapa del problema. Se representan por círculos. POLÍTICA: •Es cualquiera de los caminos que llevan de la primera a la última etapa. SUBPOLÍTICA: •Es un subconjunto de la política.
  • 9.
  • 10. qi Variable de estado en la etapa i xij Uno de los valores que puede adoptar la variable de decisión xi en la etapa i Xi* Decisión optima de la etapa i
  • 11.
  • 12. Resolución: Debemos optimizar cada subproblema por etapas en función de los resultados de la resolución del subproblema siguiente. Notar que para las recurrencias estén bien definidas requerimos de condiciones de borde. Descripción de ecuaciones de recurrencia: Nos deben indicar como se acumula la función de beneficios a optimizar (función objetivo) y como varían las funciones de estado de una etapa a otra Muchos de los algoritmos de resolución de problemas lineales simples, son de origen exponencial por lo que resolver m cantidad de problemas de un tamaño n es mas rápido que resolver un problema de tamaño m . N Cada etapa debe tener asociado una o mas decisiones, cuya dependencia de las decisiones anteriores esta dada exclusivamente por las variables de estado. Cada estado debe contener toda la información relevante para la toma de decisión asociada al período. Las variables de decisión son aquellas sobre las cuales debemos definir su valor de modo de optimizar el beneficio acumulado y modificar el estado de la próxima etapa. Para resolver un problema de programación dinámica se debe: Identificar las etapas, estados y variables de decisión
  • 13.
  • 14. Creatividad Pensamiento Lógico Orden de las Ideas Pleno Conocimiento de la Estructura del Problema Buscar Diferentes Tipos de Soluciones al Problema.
  • 15.
  • 16. 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 óptima 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. Para que un problema pueda ser resuelto con la técnica de programación dinámica, debe cumplir con ciertas características:
  • 17.
  • 18. Programación Dinámica 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 ultima etapa hacia la primera Recursividad de Avance: el problema se resuelve partiendo de la primera etapa hacia la ultima. Las formulaciones de avance y retroceso son en realidad equivalentes en términos de calculo. Sin embargo, hay situaciones donde habría alguna diferencia, en la eficiencia del calculo, según la formulación que se utilice. Esto sucede en particular en problemas donde interviene la toma de decisiones conforme transcurre el tiempo. En este 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.
  • 19.
  • 20. 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. •Los costos de la póliza estándar para el viaje en diligencia del estado i al j, el cual se denotará Cij, es: Seguros de Pólizas
  • 21.
  • 22. 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 numero de operaciones de calculo. 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 una solución optima actual a partir de la que le precede, hasta resolver el problema original completo. En cada problema aumentado se puede encontrar la solución óptima tomando en cuenta los resultados obtenidos en la interacción anterior. Para este caso se empleara el desarrollo del problema con un recorrido hacia atrás. Cuando el viajero 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: •F4 (H) = 3 •F4 (I) = 4
  • 23. 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 ó al estado I, a un costo de Cf,h=6 ó 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 l. 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: •F3 ( E ) = 4 •F3 ( F ) = 7 •F3 ( G ) = 6 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 demuestra en el diagrama. Ahora deberá ir al estado E, F o G con un costo inmediato de Cc,e=3 o Cc,f=2 o Cc,g=4, respectivamente.
  • 24. Al llegar aquí el costo adicional mínimo hasta llegar a su destino esta dado de la siguiente manera: x2 = E f2(C,E) = CC,E + f3( E ) = 3 + 4 = 7 x2 = F f2(C,F) = CC,F + f3( F ) = 2 + 7 = 9 x2 = G f2(C,G) = CC,G + f3( G ) = 4 + 6 = 10 El mínimo de estos tres numero es 7, por lo que el costo mínimo desde el estado C al final es f2(C) = 7, y el destino inmediato debe ser x2 = E Se realizan los cálculos similares cuando se comienza desde el estado B o D. Los resultados son: f2(B) = 11 f2(C) = 7 f2(D) = 8
  • 25. 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 solo hay un inicio posible, S=A, como se demuestra el diagrama Los resultados se resumen de la siguiente manera: •X1 = B f1(A,B) = CA,B + f2(B) = 2 + 11 = 13 •X1 = C f1(A,C) = CA,C + f2(C) = 4 + 7 = 11 •X1 = D f1(A,D) = CA,D + f2(D) = 3 + 8 = 11 Como el mínimo de costo es 11, por lo 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 A>D>F>I>J, las dos tienen un costo total de 11
  • 26.
  • 27. Un árbol binario no es más que una estructura de datos cuyos nodos pueden tener un hijo a la izquierda o a la derecha ( no más de 2). Por lo tanto un árbol binario de búsqueda no es más que un tipo de árbol binario cuya estructura de árbol se representa en informática. Árbol Binario •Estos árboles pueden realizar operaciones 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. •Insertado: 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. •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. 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. Árboles de búsqueda binario óptimos •Incluso si sólo tenemos estimaciones de los costos de búsqueda, este sistema puede acelerar considerablemente las búsquedas en promedio. •Nosotros vamos a abordar la solución al mismo tanto mediante programación dinámica como con bottom-up. A la hora de abordar el problema mediante programación dinámica, hay que tener en cuenta el principio de optimización, y este nos dice que : Todos los subárboles de un árbol óptimo son óptimos con respecto a las claves que contienen.” ALGORITMOS Programación dinámica •De esta forma, abordaremos nuestro problema de la siguiente forma: •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.
  • 28.
  • 29. El problema del 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 dij = ∞, el modelo del agente o vendedor viajero corresponde a:
  • 30. 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, x12 = x23 = x34 = x45 = x51 = 1. •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, x15 = x54 = x41 = x32 = x23 = 1, lo que naturalmente no es una solución factible para el problema que se busca resolver. El modelo del vendedor viajero se caracteriza por su versatilidad para representar otros casos prácticos en optimización. Uno de ellos es el Problema de Secuenciamiento de la Producción como el que se presenta a continuación: El programa de producción diaria de una empresa de pinturas incluye lotes de color Blanco (B), Amarillo (A), Negro (N) y Rojo (R). Como la empresa utiliza las mismas instalaciones en las cuatro clases de pintura, es necesario hacer una limpieza entre los lotes. La siguiente tabla resume el tiempo de limpieza, en minutos, donde al color de la fila sigue el color de la columna. Por ejemplo, cuando después de la pintura Blanca sigue la Amarilla, el tiempo de limpieza en 10 minutos. Como un color no puede seguir a sí mismo, a los elementos correspondientes se les asigna un tiempo de setup infinito. Se desea determinar la secuencia óptima para la producción diaria de los cuatro colores, que minimice el tiempo total de limpieza necesario.
  • 31. Se puede hacer una analogía con el problema del vendedor viajero, asumiendo que cada pintura es una “ciudad” y que las “distancias” representan el tiempo de limpieza necesario para cambiar de un lote de pintura al siguiente. En consecuencia, el problema se reduce a determinar el circuito más corto que se inicie en un lote de pintura y pase exactamente una vez por cada uno de los tres lotes restantes, para regresar al punto de partida. En este contexto dada la cantidad de pinturas, la secuencia óptima se puede encontrar por enumeración exhaustiva de los 6 circuitos posibles (n-1)! , es decir, (4-1)! = 3! = 6 . En el ejemplo dicha secuencia óptima corresponde a Blanco, Amarillo, Rojo, Negro, Blanco, con un tiempo total de setup de 98 minutos. Naturalmente esta estrategia no es eficiente y queda limitada a problemas muy pequeños.
  • 32. Alternativamente se puede utilizar implementar en Solver el modelo de asignación presentado anteriormente, haciendo uso de los parámetros descritos en el ejemplo del secuenciamiento de la producción de pinturas. A continuación un extracto de los resultados donde se observa que no se alcanza una solución de circuito. En la actualidad existen programas computacionales que permiten enfrentar estas dificultades que establece el problema del vendedor viajero. Uno de ellos es el software TSPSG (TSP Solver and Generator) que se caracteriza por una interfaz intuitiva y que a continuación se detalla la implementación de nuestro problema (recordar que la Ciudad 1 correspondería al color Blanco, y así sucesivamente). Una vez ingresado los datos al seleccionar “Solve” el programa se ejecuta entregando los resultados alcanzados que por cierto coincide con aquellos que identificamos por enumeración.
  • 33. •Dando uso a la programación dinámica, el algoritmo se vuelve bastante eficiente, es importante saber cuando usar las técnicas bottom- up o top-down, ya que esto puede ayudar a reducir la mitad del tiempo para resolver un problema en la menor cantidad de iteraciones posibles. •Aporta mayor entendimiento a la hora de resolver los problemas dividiendo las etapas de un problema y resolver uno por uno. Conclusión
  • 34. •Programación Dinámica. Runestone. Link: https://runestone.academy/runestone/static/pythoned/Recursion/ProgramacionDinamica.html •Programación Dinámica. Monografías. Link: https://www.monografias.com/trabajos104/la-programacion- dinamica/la-programacion-dinamica.shtml •Idalia F. Programación Dinámica Link: https://www.ingenieria.unam.mx/sistemas/PDF/Avisos/Seminarios/S.eminarioV/Sesion6_IdaliaFlores_20abr15.pdf •Wordpress. Problema de la Diligencia. 2011. Link: https://albertoindustrial.wordpress.com/2011/10/06/problema- de-la-diligencia/ •Bertsekas, D.P. ‘‘Dynamic Programing; 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 •Wikipedia. Árbol Binario de Busqueda. Link: https://es.wikipedia.org/wiki/%C3%81rbol_binario_de_b%C3%BAsqueda •Gestióndeoperaciones. Problema del Vendedor. Link: https://www.gestiondeoperaciones.net/programacion- entera/solucion-del-problema-del-vendedor- viajero/#:~:text=El%20Problema%20del%20Vendedor%20Viajero,se%20visita%20exactamente%20una%20vez. Fuentes de Información