Presentaci - PowerPoint PPT Presentation

About This Presentation
Title:

Presentaci

Description:

Problema de la mochila, valores enteros. Camino m s corto en grafo por etapas ... Se tienen n objetos y una mochila (cada objeto i tiene un peso y un valor ;la ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 21
Provided by: erida
Category:
Tags: la | mochila | presentaci

less

Transcript and Presenter's Notes

Title: Presentaci


1
Diseño y análisis de algoritmos
Técnica de diseño Programación Dinámica I
2
Temario
  • Técnica de diseño Programación Dinámica
  • Introducción
  • Aplicaciones
  • Problema de la mochila, valores enteros
  • Camino más corto en grafo por etapas

3
Técnica de diseño Programación Dinámica
Introducción
  • Estos algoritmos se usan típicamente en problemas
    de optimización, donde hay
  • que encontrar un máximo o un mínimo.
  • Al igual que los algoritmos greedy, permite
    resolver problemas, tomando
  • una secuencia de decisiones.
  • A diferencia de esquema greedy que toma
    localmente la decisión,
  • en forma prematura, PD, produce varias secuencias
    de decisiones y sólo al final,
  • se sabe cuál es la mejor de ellas.
  • Ejemplos
  • Dado un conjunto dado de monedas de distinta
    denominación, cuál es la
  • Mínima cantidad de monedas necesarias para pagar
    x pesos?
  • Problema de la mochila, con valores enteros.
  • Encontrar el camino más corto en un grafo.
  • Multiplicación de una secuencia de matrices.
  • Arboles de búsqueda óptimos.

4
Técnica de diseño Programación Dinámica
Introducción
  • Es similar al esquema dividir y conquistar en
    cuanto a que PD determina la
  • solución óptima de un problema de n variables
    descomponiéndola en n etapas o
  • subproblemas.
  • Está basada en el principio de optimalidad de
    Bellman
  • Cualquier subsecuencia de decisiones de una
    secuencia óptima de decisiones que
  • resualeve un problema, también debe ser óptima
    respecto del subproblema que
  • resuelve.
  • Suponienedo que un problema se resuelve, tras
    tomar una secuencia de d1, d2,
  • .. dn de decisiones. Si hay d opciones posibles,
    para cada una de las decisiones, una
  • técnica de fuerza bruta, debería explorar
    secuencias posibles de decisiones.
  • (explosión combinatoria)
  • La técnica de PD, evita explorar , todas las
    secuencias posibles , por medio de
  • la resolución de subproblemas de tamaño
    creciente y el almacenamiento en una
  • tabla de soluciones óptimas de esos subproblemas,
    facilitando la solución de los
  • problemas más grandes. Usa un enfoque Bottom UP.

5
Técnica de diseño Programación Dinámica
Introducción
  • Debido a que la naturaleza de los subproblemas
    depende de cada problema de
  • optimización , los detalles de la resolución
    deben ser adecuados a cada problema, sin
  • embargo se pueden definir los pasos generales a
    seguir
  • Sea Eo , el estado inicial del problema.
  • Sea , el
    conjunto de valores de decisión posibles para la
  • decisión d1.
  • Sea el estado del problema tras la
    elección del valor
  • Sea una secuencia óptima de decisiones
    respecto al estado
  • Principio de Optimalidad
  • Una secuencia óptima de desiciones respecto a Eo
    es la mejor de las
  • secuencias de decisión
  • Generlizando, se puede aplicar el mismo
    procdimiento, a cualquier
  • subsecuencia de decisiones
    , partiendo como
  • estado inicial Ek-1.
  • Una solución dinámica para este problema,
    simbolizado como (k,l) , debe
  • expresarse en términos de los valores de decisión
    existentes, para la
  • decisión dk y el subproblema (k1,l) ,resultante
    de aplicar cada valor de
  • decisión.

6
Técnica de diseño Programación Dinámica Problema
de la mochila valores 0-1
Recordando, problema Se tienen n objetos y una
mochila (cada objeto i tiene un peso y un
valor la mochila tiene una capacidad W).
Se pretende encontrar la manera de cargar la
mochila de forma que maximice el valor de lo
transportado, respetando su capacidad
máxima. Esta vez, los objetos x van completos o
no van. Es decir encontrar valores
tal que, se maximice
sujeto a la restricción Los
pesos y la capacidad son
enteros positivos.
Los beneficios , pueden ser
reales positivos. Ejemplo n3 y W15, Tomando
la estrategia greedy del mayor beneficio/peso. Se
obtiene la solución
, con beneficio 64. Sin embargo,
la mejor solución es
,con beneficio 78 La estrategia
greedy no encuentra la solución óptima para el
problema de la mochila 0-1

7
Técnica de diseño Programación Dinámica Problema
de la mochila valores 0-1
  • El nuevo problema es mochila (k,l,W)
  • Encontrar valores tal que,
  • se maximice
    sujeto a la restricción
  • con
  • El problema de la mochila 0-1 es mochila(1,n,W)
  • Principio de optimalidad
  • Sea una secuencia óptima de
    valores 0-1 para
  • Si entonces
    forman una secuencia óptima para el
  • problema mochila(2,n,W).
  • Si entonces
    forman una secuencia óptima para el
  • problema mochila(2,n,W- ).

8
Técnica de diseño Programación Dinámica Problema
de la mochila valores 0-1
  • Principio de optimalidad, lo mismo se cumple
  • Si una secuencia óptima del
    problema mochila(1,n,W), entonces para
  • todo
  • Si es la secuencia óptima
    de
  • Si es la secuencia óptima de

9
Técnica de diseño Programación Dinámica Problema
de la mochila valores 0-1
  • Ecuación recursiva hacia adelante
  • Si es el beneficio o la
    ganancia total de una solución óptima de
  • mochila(j,n,W), entonces ,
  • Dependiendo de que el objeto j-ésimo entre o no
    en la solución (nótese que
  • sólo puede entrar si ).
    Además, para cualquier
  • capacidad W. Notar que aunque la ecuación
    recursiva es hacia adelente, el cálculo
  • se realiza hacia atrás.
  • Ecuación recursiva hacia atrás
  • Si es el beneficio o la
    ganancia total de una solución óptima de
  • mochila(1,j,W), entonces ,
  • Dependiendo de que el objeto j-ésimo entre o no
    en la solución (nótese que
  • sólo puede entrar si ).
    Además, para cualquier
  • capacidad W. Notar que aunque la ecuación
    recursiva es hacia atrás, el cálculo
  • se realiza hacia adelante.

10
Técnica de diseño Programación Dinámica Problema
de la mochila valores 0-1
  • Ambas ecuaciones permiten calcular ,
    que es el valor de una solución óptima de
    mochila(1,n,W), entonces , tanto la recurencia
    hacia delante como hacia atrás permitenescribir
    un algoritmo recursivo de forma inmediata

Funcion mochila1(w,v1..nWentero)entero Inici
o g(n,W) Fin Funcion g(j,centero)entero Inic
io si j 0 entonces devuelve 0 sino si c lt wj
entonces devuelve g(j-1,c) sino si
g(j-1,c)gt g(j-1,c-wj)vj
entonces devuelve g(j-1,c)
SINO devuelve
g(j-1,c-wj)vj FIN-SI
FIN-SI FIN-SI fin
11
Técnica de diseño Programación Dinámica Problema
de la mochila valores 0-1
  • Complejidad del algoritmo
  • Un problema de tamaño n es reducido a dos
    subproblemas de tamaño n-1
  • Cada uno de los subproblemas se reduce a otros
    dos, y así sucesivamente.
  • Recordando la recurrencia
  • Se tiene un alogoitmo eponenecial, por lo que no
    se ha ganado nada, con respecto a
  • la solución de búsqueda exhaustiva o fuerza
    bruta.
  • Sin embargo, el número total de subproblemas a
    resolver no es tan grande
  • La función tiene dos
    parámetros
  • el primero puede tomar n valores distintos
  • el segundo, W valores
  • Luego a lo más hat nxW subproblemas diferentes
  • Por lo tanto , la solución recursiva está
    generando y resolviendo el mismo problema muchas
    veces.

12
Técnica de diseño Programación Dinámica Problema
de la mochila valores 0-1
  • Solución en tiempo razonable
  • Para evitar la repetición de cálculos, las
    soluciones de los subproblemas se deben
  • almacenar en una tabla.
  • Se ocupa una matriz nxW, cuyo elemento (j,w),
    almacena
  • Para el ejemplo anterior
  • n3 y W15

w w19 w26 w35
13
Técnica de diseño Programación Dinámica Problema
de la mochila valores 0-1
  • Implementación no recursiva

Funcion mochila2(w,v1..nWentero)1..n,1..W
Variables c,jenterog1..n,1..W Inicio Para
c 0 a W hacer g0,c0 Para j 0 a n hacer
gj,00 Para c 1 a W hacer Para j 1 a
n hacer si c lt wj entonces
gj,c gj-1,c sino si
gj-1,cgt gj-1,c-wjvj
entonces gj,c gj-1,c
SINO gj,c
gj-1,c-wjvj FIN-SI
FIN-SI FIN-para FIN-para devuelve g fin
14
Técnica de diseño Programación Dinámica Problema
de la mochila valores 0-1
  • Solución en tiempo razonable
  • Para W no muy grandes
  • Puesto que se llena ocupa una matriz nxW, hay
    dos ciclos anidados, el algoritmo
  • Queda abierto el problema de,que al generar la
    tabla o hacer un nuevo algoritmo, indicar qué
    objetos van incluidos en la mochila.
  • Esta solución funciona si W y los pesos de los
    objetos son enteros.

15
Técnica de diseño Programación Dinámica Problema
costo mínimo de caminos en un grafo multietapa
  • Grafo multietapa
  • Es un caso especial de grafo G(V,A), es un grafo
    dirigido en el que se puede hacer una partición
    del conjunto V de vérices en k (kgt2)conjuntos
    distintos Vi , 1ltiltk tal que todo arco del
    grafo (u,v) cumple que y
    para algún i, 1ltiltk .
  • Los conjuntos V1 y Vk tienen un solo vérice que
    se llama vértice orígen o y vértice destino d,
    respectivamente.
  • Se considerarán grafos etiquetados, en sus arcos,
    los cuales pueden representar costos, distancias
    , etc. Notación c(u,v), es el costo del arco
    (u,v)

16
Técnica de diseño Programación Dinámica Problema
costo mínimo de caminos en un grafo multietapa
  • Grafo multietapa
  • El problema es encontarar un camino de costo
    mínimo, entre o y d
  • Todo camino de o a d tiene exactamente un vértice
    en cada etapa Vi , por eso se dice que cada Vi
    define una etapa del grafo.
  • Usando proramación dinámica
  • Cada camino entre o y d es una secuencia de k-2
    decisiones
  • La decisión i-ésima determinar, a partir de un
    vértice vi de Vi, un arco que tenga vi como
    origen y algún nodo de Vi1 como destino.
  • Principio de optimalidad El camino de costo
    mínimo debe contener subcaminos de costo mínimo
    entre otros nodos.

17
Técnica de diseño Programación Dinámica Problema
costo mínimo de caminos en un grafo multietapa
  • Ecuación recursiva hacia adelante
  • Sea s(i,j) un camino de costo mínimo C(i,j)
    desde el vérice j del conjunto Vi
  • hasta el vétice de destino d. Entonces

Si
En otro caso
18
Técnica de diseño Programación Dinámica Problema
costo mínimo de caminos en un grafo multietapa
  • Ya se obtuvo el costo o distancia más corta entre
    o y d , falta almacenar las decisiones hechas en
    cada etapa
  • Sea D(i,j) el valor de l que minimiza
  • Entonces el camino de mínimo costo o distancia
    es

19
Técnica de diseño Programación Dinámica Problema
costo mínimo de caminos en un grafo multietapa
  • Implementación

Funcion multietapa(G1..n,1..nn,kentero)1..k
salida es el camino de k etapas Los nodos
etán numerados, de manera asecendente en relación
a cada etapa El primer índice de C y D que
identifican la etapa se han suprimido Variables
C arreglo 1..n real costosP arrgelo 1..k
enteroD arreglo 1..n enteroj,rentero Inicio
Cn0.0 calculo de C y D Para j n-1
descendiendo hasta 1 hacer r nodo tal que
arco (j,r) exista y Gj,r Cr es mínimo
Cj Gj,r Cr Cj r FIN-para
P11Pkn construcción del camino Para
c 2 a k-1 hacer PjDPj-1
FIN-para devuelve P fin
20
Técnica de diseño Programación Dinámica Problema
costo mínimo de caminos en un grafo multietapa
  • Si G está representado por una matriz, la
    búsqueda del arco mínimo se convierte en un
    recorrido completo, es decir otro for por lo que
    el algoritmo es
  • Sin embargo si se aprovecha la característica de
    que es multietapa y se implementa con una lista
    de adyacencia, el primer ciclo es proporcional al
    grado del vértice j, que se podría estandarizr en
    a, por lo que el algoritmo quedaría
  • Como ejercicio propuesto, queda expresar la
    solución recursiva hacia atrás y su algoritmo.
Write a Comment
User Comments (0)
About PowerShow.com