Вы находитесь на странице: 1из 20

Anlisis y Diseo de Algoritmos (AyDA)

Isabel Besembel Carrera


29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 2
Estrategia 5
Estrategia 5
Programacin dinmica
Tcnica utilizada para eliminar el trabajo redundante
almacenando en un rea de memoria especial las
soluciones encontradas anteriormente
Ejemplo 1:
Encontrar el n-simo nmero de la secuencia de
Fibonacci
1 n si 2) - F(n 1) - F(n
1 n si 1
0 n si 0
) (
> +
=
=
= n F
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 3
Estrategia 5
Estrategia 5
Ejemplo 1
La solucin obvia es
utilizar la estrategia divide-
y-vencers, pero ella tiene
una complejidad en tiempo
del tipo exponencial
El rbol de las llamadas
para el caso n = 4
Fib(2)
Fib(4)
Fib(0)
Fib(3)
Fib(1)
Fib(1)
Fib(2)
Fib(0)
Fib(1)
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 4
Estrategia 5
Estrategia 5
La mejora del algoritmo se realiza con la programacin
dinmica, obtenindose una complejidad O(n)
La programacin dinmica es una tcnica de optimizacin
de cdigo til, aunque no reduzca la complejidad
asinttica
Junio,04
fibonacci(Entero: n):Entero
{ pre: n 0 } { pos: nmero de Fibonacci 0 }
1
2
3
v(0), v(1) = 0, 1
[ v( j ) = v( j - 1) + v( j - 2) ] j = 2, n
regrese v( n )
-v: Arreglo(0..n)de Entero. Vector auxiliar
que almacena los valores intermedios
anteriores
-j: Entero. Subndice de v
1
2
n=4, v=(0,1,1,2,3), v(4)=3
n=0, v=(0,1), v(0)=0
Caso exitoso
Caso exitoso
Ejemplo 2. Multiplicaci
Ejemplo 2. Multiplicaci

n encadenada de matrices
n encadenada de matrices
Estrategia 5
Dada una coleccin de n matrices 2D, calcular
A = A
0
. A
1
. A
2
. A
n-1
Donde A
i
es una matriz d
i
x d
i+1
, para i=0,1,,n-1

k=0
e-1
B[I,k] . C[k,j]
Multiplicacin de matrices es asociativa
B(2x10), C(10x50) y D(50x20)
B . (C . D) requiere 2x10x20+10x50x20=10400
multiplicaciones
(B . C) . D requiere 2x10x50+2x50x20=3000
multiplicaciones
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 5
Algoritmo de multiplicacin de
matrices
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 6
Sep,09
multiplicacionMatrices(Arreglo[n,m]: A, Arreglo[p,q]: B):Arreglo[n,q]
{ pre: m = p } { pos: C=AxB }
1 [ [ C(i,j) = 0
[ C(i, j) = C(i, j) + A(i, k) . B(k, j)] k = 1, m
] j = 1, q
] i = 1, n
-C: Arreglo[n, q] . Matriz de 2
dimensiones resultado de la
multiplicacin de A por B.
-j, i, k: Natural. Subndices de
columnas de B, filas de A y
columnas de A o filas de B
1
2
Ejercicio. Colocar los casos de prueba
O(n
3
)
Problema de la multiplicaci
Problema de la multiplicaci

n
n
encadenada de matrices
encadenada de matrices
E0: Determinar la parentacin de la
expresin que define el producto A que
minimiza el nmero total de multiplicaciones
escalares a realizar.
El algoritmo de la fuerza bruta es
exponencial igual a n-simo nmero Catalan
(4
n
/n
3/2
)
Mejora:
El problema se puede dividir en subproblemas
Ni,j denota el mnimo nmero de multiplicaciones
necesarias para calcular la subexpresin A
i
. A
i+1
A
j
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 7
Problema de la multiplicaci
Problema de la multiplicaci

n
n
encadenada de matrices
encadenada de matrices
E1: E0 se transforma en calcular el valor de
N
0,n-1
Condicin de optimalidad del subproblema:
Es posible caracterizar una solucin optima
a un subproblema particular en trminos de
soluciones optimas a sus subproblemas
Solucin optima al subproblema Ni,j
N
i,j
=min
ik<j
{N
i,k
+N
k+1,j
+d
i
d
k+1
d
j+1
}, donde N
i,i
=0
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 8
Problema de la multiplicaci
Problema de la multiplicaci

n
n
encadenada de matrices
encadenada de matrices
En apariencia similar a divide-y-vencers
por la subdivisin en subproblemas, solo
que ellos no son independientes
Comparticin de subproblemas hace que
se deba construir la solucin de abajo-
hacia-arriba, almacenando las soluciones
intermedias en una tabla con los N
i,j
ya
calculados
Inicio: N
i,i
= 0 para i = 0, 1, , n-1
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 9
Algoritmo del orden de la multiplica
Algoritmo del orden de la multiplica
-
-
ci
ci

n encadenada de matrices
n encadenada de matrices
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 10
Sep,09
ordenMatricesEncadenadas(SecuenciaDeEntero: d, Natural: n):Entero
{ pre: n 0 } { pos: Ni,j 0 }
1
2
[ N(i,i)=0 ] i = 0, n-1
[ [ j, N(i,j) = i+b, +
[N(i,j)=min{N(i,j), N(i,k)+N(k+1,j)+d(i)d(k+1)d(j+1)} ] k = i, j-1
] i = 0, n-b-1
] b = 1, n-1
-d:
Arreglo(0..n)
de Entero.
Secuencia
-j, i, k, b:
Entero.
Subndices
de d y N
1
2
Ejercicio. Colocar los casos de prueba
Calculo de N
0,n-1
con un algoritmo con 3 lazos anidados, T(n)=O(n
3
)
Teorema: Dado un producto encadenado de n matrices 2D, se puede
calcular la parentacin de tal cadena que arroja el mnimo nmero de
multiplicaciones escalares en O(n
3
)
N(i,j).sm=k
Problema de la multiplicaci
Problema de la multiplicaci

n
n
encadenada de matrices
encadenada de matrices
Cmo saber la
secuencia de
parentizacin?
Colocando el valor
de k al encontrar el
mnimo asociado al
N
i,j
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 11
N
i
j
i,j i,k
k+1,j
+d
i
d
k+1
d
j+1
Multiplicaci
Multiplicaci

n encadenada de
n encadenada de
matrices
matrices
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 12
Libro texto. 2da. Ed.
Multiplicaci
Multiplicaci

n encadenada de
n encadenada de
matrices
matrices
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 13
Sep,09
multiMatricesEncadenadas(Arreglo[n]De Arreglo[n, m]: A, Arreglo[n,n]: s,
Natural: i, Natural: j):Arreglo[n,n]
{ pre: |A| > 0 } { pos: |A| > 0 }
1 Si (i < j) entonces
X = multiMatricesEncadenadas(A, s, i, s(i, j))
Y = multiMatricesEncadenadas(A, s, s(i, j)+1, j)
regrese multiplicacionMatrices(X, Y)
sino
regrese A
i
fsi
-X, Y: Arreglo[n, q] .
Matriz de 2 dimensiones.
-j, i: Natural. Subndices
de la matriz de
parentacin s
1
2
Ejercicio. Colocar los casos de prueba
Programaci
Programaci

n din
n din

mica
mica
Estrategia 5
Se utiliza principalmente en problemas de
optimizacin
Componentes:
Subproblemas simples: Subproblemas simples: debe haber una forma de dividir el
problema global en subproblemas con estructura similar al
problema original
Optimalidad de los subproblemas: Optimalidad de los subproblemas: la solucin optima del
problema global debe ser una composicin de las
soluciones optimas de los subproblemas
Solapamiento de los subproblemas Solapamiento de los subproblemas: soluciones optimas
de subproblemas no relacionados pueden contener
subproblemas en comn, lo cual mejora la eficiencia
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 14
Ejemplo 3. Problema de la mochila
Ejemplo 3. Problema de la mochila
Estrategia 5
Programacin dinmica
Suponga un alpinista con su morral que conoce
el peso mximo total W que puede cargar y con
un conjunto S de items tiles que puede
potencialmente cargar.
Cada item tiene un peso w
i
Natural y un valor
de beneficio b
i
, que es el valor que el alpinista
asigna al item I
Problema: optimizar el valor total del conjunto T
de items sin sobrepasar W
Funcin objetivo: maximizar
iT
b
i
con
iT
w
i
W
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 15
Problema de la mochila (0
Problema de la mochila (0
-
-
1)
1)
Estrategia 5
Programacin dinmica
Cada item se escoge o se rechaza completo
Uso en el contexto de las subastas por Internet
Mtodo de la fuerza bruta: O(2
n
), enumerando
todos los subconjuntos de S y seleccionando
uno con el mayor beneficio entre los que no
sobrepasen W
Mtodo con programacin dinmica:
Enumerar los items en S como 1, 2, , n y definir k
{1, 2, , n} el subconjunto S
k
={items S etiquetados
1, 2, , k}
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 16
Problema de la mochila (0
Problema de la mochila (0
-
-
1)
1)
Estrategia 5
Programacin dinmica
Cada subproblema k es la mejor manera de
llenar el morral usando solo los items de S
k
, pero
no es claro como definir la solucin optima de k
en funcin de las soluciones optimas de los
subproblemas
Ejemplo: S={(3,2), (5,4), (8,5), (4,3), (10,9)}
(peso, beneficio) con W=20
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 17
(3,2) (5,4) (8,5) (4,3)
(3,2) (5,4) (8,5) (10,9)
Problema de la mochila (0
Problema de la mochila (0
-
-
1)
1)
Estrategia 5
Programacin dinmica
Reformulacin del problema: se agrega un
parmetro w, donde B[k, w] mximo valor de S
k
entre aquellos subconjuntos que tienen peso
total exactamente w.
B[0, w] = 0 wW y en general se tiene
B[k,w]= B[k-1, w] si w
k
> w
max{B[k-1, w], B[k-1, w-w
k
]+b
k
} en caso contrario
Lo cual satisface la condicin de optimizacin de
los subproblemas y adems el solapamiento de
los mismos
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 18
Algoritmo del problema de la mochila
Algoritmo del problema de la mochila
0
0
-
-
1
1
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 19
Sep,09
mochila01(Conjunto: S, Natural: W)
{ pre: |S| 0 } { pos: |B| 0 }
1
2
[ B(w)=0 ] w = 0, W
[ [ si (B(w-w
k
)+b
k
> B(w)) entonces
B(w) = B(w-w
k
)+b
k
fsi
] w = W, w
k
, -1
] k = 1, n
-S: Conjunto de pares (b
i
, w
i
)
-w, k: Natural. Subndices de los items
-B: ArregloDe Natural. Beneficio mximo
de un subconjunto de S con peso total w
1
2
Ejercicio. Colocar los casos de
prueba
Algoritmo con 2 lazos anidados, el primero itera hasta n y el interno itera a
lo sumo W
Teorema: Dado W Natural y S con n items, cada uno con un beneficio y
un peso Natural, se puede encontrar el beneficio ms alto en el
subconjunto de S con un peso total a lo sumo W en O(nW)
Algoritmo de tiempo pseudo-
polinomial
La complejidad depende de W, que no es
proporcional al tamao de la instancia del
problema
Si W es muy grande (2
n
), entonces el
algoritmo es asintticamente mas lento
que la fuerza bruta
No es un algoritmo de tiempo polinmico,
ya que no depende del tamao del
problema
Se considera de tiempo pseudo-polinmico
29/09/2009 Postgrado en Computacin. Anlisis y Diseo de Algoritmos (AyDA). Isabel Besembel. 20

Вам также может понравиться

  • Discurso de Grado
    Discurso de Grado
    Документ2 страницы
    Discurso de Grado
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Practica 1
    Practica 1
    Документ12 страниц
    Practica 1
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Ejemplo Laplace
    Ejemplo Laplace
    Документ4 страницы
    Ejemplo Laplace
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • PI Control Modular Servosystem Feedback MS150
    PI Control Modular Servosystem Feedback MS150
    Документ5 страниц
    PI Control Modular Servosystem Feedback MS150
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Practica 2
    Practica 2
    Документ8 страниц
    Practica 2
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Practica 3
    Practica 3
    Документ5 страниц
    Practica 3
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Acondicionamiento Senal de Salida Servosistema Modular Feedback MS150
    Acondicionamiento Senal de Salida Servosistema Modular Feedback MS150
    Документ5 страниц
    Acondicionamiento Senal de Salida Servosistema Modular Feedback MS150
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Practica4 Laboratorio
    Practica4 Laboratorio
    Документ1 страница
    Practica4 Laboratorio
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Zavrostky
    Zavrostky
    Документ14 страниц
    Zavrostky
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Diseno HMI
    Diseno HMI
    Документ15 страниц
    Diseno HMI
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Tanques
    Tanques
    Документ18 страниц
    Tanques
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Seleccion Instrumentos
    Seleccion Instrumentos
    Документ2 страницы
    Seleccion Instrumentos
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Control Ad or
    Control Ad or
    Документ1 страница
    Control Ad or
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Ter Cera Vance
    Ter Cera Vance
    Документ1 страница
    Ter Cera Vance
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Cap 7 B
    Cap 7 B
    Документ51 страница
    Cap 7 B
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Is ModeladoSistemasFisicos
    Is ModeladoSistemasFisicos
    Документ2 страницы
    Is ModeladoSistemasFisicos
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Cap 9
    Cap 9
    Документ46 страниц
    Cap 9
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Ejemplo
    Ejemplo
    Документ18 страниц
    Ejemplo
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Especificación en VERILOG de Microprocesador de 1 Bit
    Especificación en VERILOG de Microprocesador de 1 Bit
    Документ7 страниц
    Especificación en VERILOG de Microprocesador de 1 Bit
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Clase 2 Minis em
    Clase 2 Minis em
    Документ27 страниц
    Clase 2 Minis em
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Clase 1 Minis em
    Clase 1 Minis em
    Документ13 страниц
    Clase 1 Minis em
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Proyecto Analisis Numerico
    Proyecto Analisis Numerico
    Документ84 страницы
    Proyecto Analisis Numerico
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Is Control2
    Is Control2
    Документ4 страницы
    Is Control2
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Tdso
    Tdso
    Документ30 страниц
    Tdso
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Is Automatizacion1
    Is Automatizacion1
    Документ3 страницы
    Is Automatizacion1
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Is Control1
    Is Control1
    Документ4 страницы
    Is Control1
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • Is Control3
    Is Control3
    Документ4 страницы
    Is Control3
    Breytner Joseph Fernández Mesa
    Оценок пока нет
  • IPV62312312 Dadwawd
    IPV62312312 Dadwawd
    Документ13 страниц
    IPV62312312 Dadwawd
    P3RZ3UZ
    Оценок пока нет
  • Actividad 5 Grafos
    Actividad 5 Grafos
    Документ9 страниц
    Actividad 5 Grafos
    Luis Mercado Villegas
    Оценок пока нет
  • Social Network Analysis
    Social Network Analysis
    Документ4 страницы
    Social Network Analysis
    mentitasambrosoli24
    Оценок пока нет
  • Semana3 Flotante 2022
    Semana3 Flotante 2022
    Документ13 страниц
    Semana3 Flotante 2022
    Price Sanchez Jose
    Оценок пока нет
  • Job Shop Multiobjetivo Mediante Algoritmos Genéticos
    Job Shop Multiobjetivo Mediante Algoritmos Genéticos
    Документ245 страниц
    Job Shop Multiobjetivo Mediante Algoritmos Genéticos
    Lizet Chipana
    Оценок пока нет
  • cl2 Juver
    cl2 Juver
    Документ7 страниц
    cl2 Juver
    Tom Camposano solis
    Оценок пока нет
  • Algoritmo Diapositivas, Presentacion
    Algoritmo Diapositivas, Presentacion
    Документ16 страниц
    Algoritmo Diapositivas, Presentacion
    Anne Garcia
    Оценок пока нет
  • Tarea 3 Modelos de Programación Lineal de Optmización
    Tarea 3 Modelos de Programación Lineal de Optmización
    Документ32 страницы
    Tarea 3 Modelos de Programación Lineal de Optmización
    Alberto Villamizar Parada
    Оценок пока нет
  • Tipos de Datos VB 6.0
    Tipos de Datos VB 6.0
    Документ2 страницы
    Tipos de Datos VB 6.0
    Anderson Steve Ramírez
    Оценок пока нет
  • Algoritmo Voraz
    Algoritmo Voraz
    Документ15 страниц
    Algoritmo Voraz
    Luis Almonte
    Оценок пока нет
  • Ejercicios de Programacion
    Ejercicios de Programacion
    Документ11 страниц
    Ejercicios de Programacion
    Adree Lublin
    Оценок пока нет
  • Ejercicios PSEINT 2016-17 - 2 - Corregidos
    Ejercicios PSEINT 2016-17 - 2 - Corregidos
    Документ6 страниц
    Ejercicios PSEINT 2016-17 - 2 - Corregidos
    pijander
    100% (2)
  • Casos Especiales Método Simplex
    Casos Especiales Método Simplex
    Документ28 страниц
    Casos Especiales Método Simplex
    NAYELIS PAOLA VILLEGAS MORALES
    Оценок пока нет
  • H4PRO2ProLin20 2
    H4PRO2ProLin20 2
    Документ2 страницы
    H4PRO2ProLin20 2
    Marina Melendez
    Оценок пока нет
  • Tarea 3
    Tarea 3
    Документ9 страниц
    Tarea 3
    jorge
    Оценок пока нет
  • Polinomio de Chebyshev y Fenómeno de Runge
    Polinomio de Chebyshev y Fenómeno de Runge
    Документ6 страниц
    Polinomio de Chebyshev y Fenómeno de Runge
    Eddy Rock
    Оценок пока нет
  • Grafos Lisp
    Grafos Lisp
    Документ74 страницы
    Grafos Lisp
    Rodrigo Igor Hurtado Urieta
    Оценок пока нет
  • Marco Teórico 09 04 2019 C
    Marco Teórico 09 04 2019 C
    Документ3 страницы
    Marco Teórico 09 04 2019 C
    Dew Ei
    Оценок пока нет
  • Dendograma 2
    Dendograma 2
    Документ68 страниц
    Dendograma 2
    Jor ge el curioso
    100% (1)
  • Fase1 Automatas
    Fase1 Automatas
    Документ4 страницы
    Fase1 Automatas
    edison
    Оценок пока нет
  • Actividad No. 2 - Teoria de Grafos - Paula Andrea David Petro - Juan Camilo Avilés Rivero
    Actividad No. 2 - Teoria de Grafos - Paula Andrea David Petro - Juan Camilo Avilés Rivero
    Документ6 страниц
    Actividad No. 2 - Teoria de Grafos - Paula Andrea David Petro - Juan Camilo Avilés Rivero
    paula andrea david petro
    Оценок пока нет
  • Class08 - Arboles AVL - Sección 1
    Class08 - Arboles AVL - Sección 1
    Документ80 страниц
    Class08 - Arboles AVL - Sección 1
    Lisette Gonzalez
    Оценок пока нет
  • Propiedades de Sistemas Lineales
    Propiedades de Sistemas Lineales
    Документ14 страниц
    Propiedades de Sistemas Lineales
    Elmer Lévano Huamaccto
    Оценок пока нет
  • Temario Matematicas de Computadoras
    Temario Matematicas de Computadoras
    Документ2 страницы
    Temario Matematicas de Computadoras
    j ac
    Оценок пока нет
  • Ejercicio #1 - Método Simplex - Gráfico
    Ejercicio #1 - Método Simplex - Gráfico
    Документ5 страниц
    Ejercicio #1 - Método Simplex - Gráfico
    Alexander Zenteno Morales
    100% (1)
  • Montículo de Fibonacci
    Montículo de Fibonacci
    Документ5 страниц
    Montículo de Fibonacci
    ALEX MARTIN URUETA ACUÑA
    Оценок пока нет
  • Taz TFG 2018 148
    Taz TFG 2018 148
    Документ47 страниц
    Taz TFG 2018 148
    Aldo EnFa
    Оценок пока нет
  • Macros en Excel
    Macros en Excel
    Документ107 страниц
    Macros en Excel
    jrj82
    Оценок пока нет
  • Pe Sa Ac Masf
    Pe Sa Ac Masf
    Документ7 страниц
    Pe Sa Ac Masf
    Manuel Sanchez
    Оценок пока нет
  • Clase 1 - LÓGICA
    Clase 1 - LÓGICA
    Документ28 страниц
    Clase 1 - LÓGICA
    esteban nestor
    Оценок пока нет