Enfoques

24
INSTITUTO UNIVERSITARIO POLITÉCNICO “SANTIAGO MARIÑO” EXTENSIÓN PORLAMAR ESCUELA DE INGENIERÍA DE SISTEMAS ENFOQUES Autor: TSU. Joanna Martínez V.-8.436.777 Porlamar, Julio de 2014

Transcript of Enfoques

Page 1: Enfoques

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

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

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

TSU. Joanna Martínez

Page 5: Enfoques

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

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

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

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

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

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

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

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

• 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

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

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

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

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

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

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

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

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

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

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

TSU. Joanna Martínez

“Nuestra recompensa se encuentra en el esfuerzoY no en el resultado, un

esfuerzo total es una victoria completa.”

Mahatma Gandhi