Enfoques
-
Upload
joamarbet -
Category
Engineering
-
view
155 -
download
9
Transcript of Enfoques
![Page 1: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/1.jpg)
INSTITUTO UNIVERSITARIO POLITÉCNICO“SANTIAGO MARIÑO”
EXTENSIÓN PORLAMARESCUELA DE INGENIERÍA DE SISTEMAS
ENFOQUES
Autor: TSU. Joanna Martínez
V.-8.436.777
Porlamar, Julio de 2014
![Page 2: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/2.jpg)
Introducción
TSU. Joanna Martínez
Se necesita cierto grado de ingenio y un buen conocimiento de la estructura general de los problemas de programación dinámica para reconocer cuando y como se puede resolver un problema por medio de estos procedimientos.
En contraste con la programación lineal, no se cuenta con una formulación matemática estándar para el problema de programación dinámica, 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.
Una subestructura óptima significa que se pueden usar soluciones óptimas de subproblemas para encontrar la solución óptima del problema en su conjunto.
![Page 3: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/3.jpg)
Programación dinámica
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.
El matemático Richard Bellman inventó la programación dinámica en 1953 que se utiliza para optimizar problemas complejos que pueden ser discretizados y secuencializados.
TSU. Joanna Martínez
![Page 4: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/4.jpg)
TSU. Joanna Martínez
![Page 5: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/5.jpg)
Una etapa en PD se define como la parte del problema que posee un conjunto de alternativas
mutuamente excluyente, de las cuales se seleccionara la mejor alternativa.
La idea básica de PD consiste prácticamente en eliminar el efecto de la interdependencia entre
etapas, asociando una definición de estado con cada etapa. Un estado se define normalmente como aquel
que refleja la condición de las restricciones que enlazan las etapas.
Modelo del PD
TSU. Joanna Martínez
![Page 6: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/6.jpg)
Avances Recursividad
hacia Delante de la etapa 1 a la
etapa n
Enfoques
RetrocesoRecursividad
hacia Atrás de la etapa n a la
etapa 1
TSU. Joanna Martínez
![Page 7: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/7.jpg)
Avance y Retroceso
TSU. Joanna Martínez
Este método de cálculo se conoce como procedimiento de avance porque los cálculos avanzan de la primera hasta la última etapa. Sin embargo, cuando el lector estudie la mayoría de las obras dedicadas a la programación dinámica, advertirá que la ecuación recursiva se construye de manera que los cálculos comienzan en la última etapa y después “regresan” hacia la etapa 1.
Este método recibe el nombre de procedimiento de retroceso.La diferencia principal entre los métodos de avance y de retroceso ocurre en la forma como definimos el estado del sistema.
![Page 8: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/8.jpg)
La recursión hacia adelante es el método en la cual los cálculos avanzan de la etapa 1 a la etapa n
Existe la recursión en avance y la recursión en reversa; ambas recursiones producen la misma solución y no es otra cosa que el orden en el que se han de realizar los cálculos, es decir, si se va a resolver primero la etapa inicial, o si se empezará por la etapa final. Al visualizar la
recursión en avance, ésta parece más lógica, sin embargo, en las publicaciones sobre programación dinámica se usa la recursión en reversa de modo invariable. La razón de
ésta preferencia es que, en general, la recursión en reversa es más eficiente desde el punto de vista computacional.
Método o enfoque de ir hacia adelante
TSU. Joanna Martínez
![Page 9: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/9.jpg)
Programación de hacia adelante: es aquel que empieza tan pronto se conocen los requerimientos del trabajo. sus
principales características son: 1. Los Trabajo se realizan a petición del cliente 2. El programa puede lograrse aun si falta tiempo para la fecha establecida de entrega. 3. Frecuentemente causa acumulación de Inventario en proceso.
Condiciones del uso del método de ir hacia adelante.
TSU. Joanna Martínez
![Page 10: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/10.jpg)
Método recursivo de retroceso
TSU. Joanna Martínez
Esta técnica llega a la solución trabajando hacia atrás partiendo del final del problema hacia el principio, por lo que un problema enorme e inimaginable se convierte en una serie de problemas más pequeños y manejables.
La idea de trabajar hacia atrás se introduce mediante la resolución de acertijos conocidos, luego se muestra cómo la programación dinámica es útil para solucionar redes, inventarios y problemas de asignación de recursos.
![Page 11: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/11.jpg)
Recursión: formaliza, en esencia, el procedimiento de ir hacia atrás.La programación dinámica es una técnica que se utiliza para resolver diversos problemas de optimización. Esta técnica llega a la solución
trabajando hacia atrás partiendo del final del problema hacia el principio, por lo que un problema enorme e inimaginable se convierte
en una serie de problemas más pequeños y manejables.La idea de trabajar hacia atrás se introduce mediante la resolución de acertijos conocidos, luego se muestra cómo la programación dinámica es útil para solucionar redes, inventarios y problemas de asignación de
recursos.
Método o enfoque de ir hacia atrás
TSU. Joanna Martínez
![Page 12: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/12.jpg)
Condiciones de uso del método de ir hacia atrás.
El procedimiento general de resolución de estas situaciones se divide en el análisis recursivo de cada una de las etapas del
problema, en orden inverso, es decir comenzando por la última y pasando en cada iteración a la etapa antecesora. El
análisis de la primera etapa finaliza con la obtención del óptimo del problema.
TSU. Joanna Martínez
![Page 13: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/13.jpg)
• El problema se puede dividir en etapas, donde cada una de ellas requiere una política de decisión.• Cada etapa tiene cierto número de estados asociados a su inicio.• El efecto de cada política es transformar el estado actual en un estado asociado con el inicio de la segunda etapa.• El procedimiento de solución está diseñado para encontrar una política óptima para manejar el problema completo.• Una política óptima para las etapas restantes es independiente de la política adoptada en etapas anteriores.• El proceso de solución comienza cuando se determina la política óptima para la última etapa.• Se dispone de una política recursiva que identifica la política óptima para la etapa n, dada la política óptima para la etapa n+1.• Cuando se usa esta etapa recursiva, el procedimiento de solución comienza al final y se mueve etapa por etapa hacia atrás hasta que encuentre la política optima desde la etapa inicial.
Los problemas de programación dinámica poseen las siguientes características:
TSU. Joanna Martínez
![Page 14: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/14.jpg)
Tengo una taza de 9 onzas y otra de 4 onzas. Mi madre me pidió traer a casa exactamente 6 onzas de leche. ¿Cómo puedo cumplir lo pedido?
Solución:Al empezar cerca del final del problema, me doy cuenta sagazmente de que el problema se puede resolver si soy capaz de poner de alguna manera una onza de leche en la tasa de 4 onzas. Luego lleno la tasa de 9 onzas y vierto 3 onzas de la leche de la tasa de 9 onzas en la taza parcialmente llena de 4 onzas. En este momento me quedo con 6 onzas de leche.La solución del problema se podría describir como en la tabla anterior (la situación inicial se escribe al último, y la final se escribe primero).
Ejemplo:
A continuación se mostrara como trabajar hacia atrás para hacer de un problema aparentemente difícil uno casi trivial.
TSU. Joanna Martínez
![Page 15: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/15.jpg)
Problema de las 8 Reinas
El problema de las ocho reinas se trata de un acertijo en el que
se colocan ocho reinas sin que se amenacen. Fue propuesto por el ajedrecista alemán Max Bezzel en 1848. En el juego de ajedrez
la reina amenaza a aquellas fichas que se encuentren en su misma fila, columna o diagonal. Las 8 reinas consiste en colocar sobre un tablero de ajedrez ocho
reinas sin que estas se den jaques entre ellas.
PROBLEMA DE LAS N REINAS
TSU. Joanna Martínez
![Page 16: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/16.jpg)
Planteamiento: Las reinas en el ajedrez se pueden atacar horizontalmente, verticalmente y en diagonal. Se busca encontrar el acomodo de 8 reinas en un tablero de 8 por 8, donde ninguna reina de jaque a otra.
El problema 8-Queens en el ajedrez es colocar 8 reinas en un tablero de ajedrez de tal manera que ninguna de las reinas es una amenaza cualquiera de las otras. El problema es que a la entrada de las 8 columnas de las reinas en las filas de un tablero de ajedrez, donde 1 es la primera columna y 8 la última, por ejemplo, 1 2 3 4 5 6 7 8 significa que las reinas están a lo largo de la diagonal, lo cual no sería una solución válida.
TSU. Joanna Martínez
![Page 17: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/17.jpg)
Las reinas en el ajedrez se pueden atacar horizontalmente,
verticalmente y en diagonal.
Se busca encontrar el acomodo de las 8
reinas en un tablero de 8 por 8, donde ninguna reina de jaque a otra
Colocar la reina n en la primera casilla valida de
la fila n.Si una reina no puede llegar a colocarse en
ninguna casilla, se vuelve atrás y se cambia la
posición de la reina n-1.Intentar colocar las reinas restantes en las filas que
quedan
TSU. Joanna Martínez
![Page 18: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/18.jpg)
Colocar la reina n en la primera casilla válida de la fila n - Si una reina no puede llegar a colocarse en ninguna casilla, se vuelve atrás y se cambia la posición de la reina n-1 - Intentar colocar las reinas restantes en las filas que quedan
El problema de las ocho Reinas es generalizado por el problema de las n Reinas. El problema consiste en colocar n Reinas en un tablero de ajedrez de de tal manera que ninguna de las Reinas quede atacando a otra. El tamaño del tablero de ajedrez para este problema es de tamaño n*n. Existe un algoritmo que resuelve este problema generalizado usando la recursión.
Planteamiento Algoritmo:
AlgoritmoEsta es la función recursiva para
encontrar el orden para acomodar a las Reinas. Vemos que cuando se llama a si misma se tiene que incrementar el número de la fila en 1.
TSU. Joanna Martínez
![Page 19: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/19.jpg)
Algoritmo Del código anterior tenemos una condición antes de la llamada recursiva que es "comprobar". Lo que hace es verificar si ya hay alguna colocada en la fila, la columna y su diagonal.
Ejemplo En el ejemplo de corrida cuando colocamos como argumento el valor de 8, que es tomado como el número de reinas, nos imprime como queda la tabla.
TSU. Joanna Martínez
![Page 20: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/20.jpg)
Así quedara el tablero para el caso
clásico de las 8 reinas.
Visualmente se comprueba que
ninguna da jaque a otra
TSU. Joanna Martínez
PROBLEMA DE LAS N REINAS
![Page 21: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/21.jpg)
La recursión puede evitarse si pensamos en la estrategia de backtracking como una búsqueda en profundidad en un árbol implícito en el que cada nodo interno es un arreglo A con una asignación
parcial de valores para k variables. El parámetro k es el nivel de cada nodo y los nodos
hoja consisten en asignaciones completas de variables para A, esto es k = n = length[A].Una
búsqueda iterativa puede hacerse bajando a través de los nodos siempre que sean prometedores, si
nos topamos con uno que no sea prometedor subimos de nivel restando uno a k.
TSU. Joanna Martínez
Existe forma iterativa
![Page 22: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/22.jpg)
La programación dinámica es un método de optimización del cálculo de problemas. La programación dinámica es utilizada en compiladores, que consiste en solucionar cierto problema diviendolo en subproblemas más sencillos, calculando sus resultados y almacenándolos. Estos resultados posteriormente se utilizan para la resolución del problema final.
Almacenar resultados de subproblemas es una gran ventaja en cálculos dónde se repiten las mismas operación múltiples veces, mediante el método de la programación dinámica estas operaciones sólo se realizan una vez y se guarda la solución.
Por ello se dice de la programación dinámica, que es un método para resolver problemas que exhiben propiedades de problemas sobrepuestos y estructura óptima.
Existe una serie de problemas cuyas soluciones pueden ser expresadas recursivamente en términos matemáticos, y posiblemente la manera más natural de resolverlos es mediante un algoritmo recursivo. Sin embargo, el tiempo de ejecución de la solución recursiva, normalmente de orden exponencial y por tanto impracticable, puede mejorarse substancialmente mediante la Programación Dinámica La recursividad es una técnica ampliamente utilizada en matemáticas, y que básicamente consiste en realizar una definición de un concepto en términos del propio concepto que se está definiendo.
Conclusión
TSU. Joanna Martínez
![Page 23: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/23.jpg)
Fuentes Bibliográficas
Libro: Investigación de Operaciones (Aplicaciones y Algoritmos) Capitulo 18 Pág. 961- 968
Inv. Operaciones, ISC Cuarto Semestre y etiquetada Investigación de operaciones, INVESTIGACION DE OPERACIONES - TAHA HANDY, INVESTIGACION DE OPERACIONES - TAHA HANDY - PDF.
Hamdy A Taha. 7ª edición (2004). Investigación de Operaciones. México: Editorial. Pearson educación
http://es.wikipedia.org/wiki/Problema_de_las_ocho_reinasCódigo del algoritmo:http://elvex.ugr.es/decsai/c/#problemas
TSU. Joanna Martínez
![Page 24: Enfoques](https://reader036.fdocuments.es/reader036/viewer/2022062420/55b88b0ebb61ebed558b4770/html5/thumbnails/24.jpg)
TSU. Joanna Martínez
“Nuestra recompensa se encuentra en el esfuerzoY no en el resultado, un
esfuerzo total es una victoria completa.”
Mahatma Gandhi