Sie sind auf Seite 1von 19

Explicacion del Problema

Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Rod Cutting
Programacion Dinamica
Yuliana G. Apaza Yllachura
Universidad Nacional de San Agustin
Escuela Profesional Ingeniera de Sistemas
7 de julio de 2014
Yuliana G. Apaza Yllachura Rod Cutting 1/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos

Indice
1 Explicacion del Problema
Introduccion al Problema
Enunciado
2 Algoritmo Recursivo
Analisis
Formulacion Recursiva
3 Hallmark 1: Subestructuras

Optimas
Demostracion
Implementacion
Analisis del Tiempo de Ejecucion
4 Hallmark 2: Subproblemas Repetidos
Top-Down con Memoization
Yuliana G. Apaza Yllachura Rod Cutting 2/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Introducci on al Problema
Enunciado
Introduccion
Serling Enterprises compra varillas largas de acero y las corta en va-
rillas mas peque nas, las cuales posteriormente las vende obteniendo
ingresos. Se desea saber la mejor forma de cortar las varillas.
Asumimos que sabemos el precio p
i
que la empresa cobra por una
varilla de longitud i pulgadas.
Longitud i 1 2 3 4 5 6 7
Precio p
i
1 5 8 9 10 16 17
Yuliana G. Apaza Yllachura Rod Cutting 3/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Introducci on al Problema
Enunciado
Enunciado del Problema
Rod Cutting
Dada una varilla de longitud n pulgadas y una tabla de precios p
i
(donde i = 1, 2, ... n)determinar el maximo ingreso r
n
que se
puede obtener cortando la varilla y vendiendo las piezas.
Longitud i 1 2 3 4 5 6 7
Precio p
i
1 5 8 9 10 16 17
Yuliana G. Apaza Yllachura Rod Cutting 4/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Introducci on al Problema
Enunciado
Enunciado del Problema
Rod Cutting
Dada una varilla de longitud n pulgadas y una tabla de precios p
i
(donde i = 1, 2, ... n)determinar el maximo ingreso r
n
que se
puede obtener cortando la varilla y vendiendo las piezas.
Longitud i 1 2 3 4 5 6 7
Precio p
i
1 5 8 9 10 16 17
Yuliana G. Apaza Yllachura Rod Cutting 5/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Introducci on al Problema
Enunciado
Enunciado del Problema
Rod Cutting
Dada una varilla de longitud n pulgadas y una tabla de precios p
i
(donde i = 1, 2, ... n)determinar el maximo ingreso r
n
que se
puede obtener cortando la varilla y vendiendo las piezas.
Longitud i 1 2 3 4 5 6 7
Precio p
i
1 5 8 9 10 16 17
Yuliana G. Apaza Yllachura Rod Cutting 6/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Introducci on al Problema
Enunciado
Enunciado del Problema
Rod Cutting
Dada una varilla de longitud n pulgadas y una tabla de precios p
i
(donde i = 1, 2, ... n)determinar el maximo ingreso r
n
que se
puede obtener cortando la varilla y vendiendo las piezas.
Longitud i 1 2 3 4 5 6 7
Precio p
i
1 5 8 9 10 16 17
Yuliana G. Apaza Yllachura Rod Cutting 7/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Analisis
Formulacion Recursiva
En cuantas formas distintas podemos cortar una varilla de longitud n?
Rpta.: 2
n1
Ej: n = 4
Hay n-1 posiciones de corte y se debe escoger: 0 k n cortes

n 1
k

Yuliana G. Apaza Yllachura Rod Cutting 8/ 19


Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Analisis
Formulacion Recursiva
En cuantas formas distintas podemos cortar una varilla de longitud n?
Rpta.: 2
n1

3
0

=
3!
0!3!
= 1
Ej: n = 4
Hay n-1 posiciones de corte y se debe escoger: 0 k n cortes

n 1
k

Yuliana G. Apaza Yllachura Rod Cutting 9/ 19


Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Analisis
Formulacion Recursiva
En cuantas formas distintas podemos cortar una varilla de longitud n?
Rpta.: 2
n1

3
0

=
3!
1!2!
= 3
Ej: n = 4
Hay n-1 posiciones de corte y se debe escoger: 0 k n cortes

n 1
k

Yuliana G. Apaza Yllachura Rod Cutting 10/ 19


Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Analisis
Formulacion Recursiva
En cuantas formas distintas podemos cortar una varilla de longitud n?
Rpta.: 2
n1

3
2

=
3!
2!1!
= 3
Ej: n = 4
Hay n-1 posiciones de corte y se debe escoger: 0 k n cortes

n 1
k

Yuliana G. Apaza Yllachura Rod Cutting 11/ 19


Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Analisis
Formulacion Recursiva
En cuantas formas distintas podemos cortar una varilla de longitud n?
Rpta.: 2
n1

3
3

=
3!
3!0!
= 1
Ej: n = 4
Hay n-1 posiciones de corte y se debe escoger: 0 k n cortes

n 1
k

Yuliana G. Apaza Yllachura Rod Cutting 12/ 19


Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Analisis
Formulacion Recursiva
En cuantas formas distintas podemos cortar una varilla de longitud n?
Rpta.: 2
n1
Ej: n = 4
Hay n-1 posiciones de corte y se debe escoger: 0 k n cortes
n1

k=0

n 1
k

=
n1

k=0
(n 1)!
k!(n 1 k)!
= 2
n1
Yuliana G. Apaza Yllachura Rod Cutting 13/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Analisis
Formulacion Recursiva
Formulaci on Recursiva
Notacion Aditiva
7 = 2 + 2 + 3
Si una solucion optima corta la varillla en k piezas entonces su des-
composicion sera:
n = i
1
+ i
2
+ + i
k
r
n
= p
i
1
+ p
i
2
+ + p
i
k
p
1
+ r
n1
p
2
+ r
n2
.
.
.
.
.
.
p
n1
+ r
1
p
n
r
n
= max
1i n
(p
i
+ r
ni
)
Yuliana G. Apaza Yllachura Rod Cutting 14/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Demostracion
Implementacion
Analisis del Tiempo de Ejecucion
Hallmark 1: Subestructuras

Optimas
r
n
= max
1i n
(p
i
+ r
ni
)
r
n
= p
i
+ r
ni
, para un determinado i
Y sea s
k
el ingreso obtenido por una manera de cortar no optima
para una varilla de tama no k. Supongamos que:
r
n
= p
i
+ s
ni
Es decir que una estructura optima no incluye subestructuras opti-
mas. Entonces:
s

ni
/s

ni
> s
ni
r

n
= p
i
+ s

ni
Finalmente: r

n
> r
n
Por lo que r
n
no sera el ingreso optimo
Yuliana G. Apaza Yllachura Rod Cutting 15/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Demostracion
Implementacion
Analisis del Tiempo de Ejecucion
Implementaci on
r
n
= max
1i n
(p
i
+ r
ni
)
1
2
3
4
5
6
Cut-Rod(p, n)
if n == 0
return 0
q = -inf
for i = 1 to n
q = max(q, p[i] + Cut-Rod(p, n - i))
return q
Cada vez que el tama no de entrada crece su tiempo de ejecucion
se ira duplicando aproximadamente.
Yuliana G. Apaza Yllachura Rod Cutting 16/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Demostracion
Implementacion
Analisis del Tiempo de Ejecucion
Porque es ineciente?
Cut-Rod(p, n) Cut-Rod(p, n-i) , i = 1,2, , n
Tiempo Exponencial!
Yuliana G. Apaza Yllachura Rod Cutting 17/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Demostracion
Implementacion
Analisis del Tiempo de Ejecucion
Se aplica Top-Down con
Memoization
T(n) = n
2
Una solucion de tiempo exponencial puede ser transformada a tiem-
po polinomial.
Yuliana G. Apaza Yllachura Rod Cutting 18/ 19
Explicacion del Problema
Algoritmo Recursivo
Hallmark 1: Subestructuras

Optimas
Hallmark 2: Subproblemas Repetidos
Top-Down con Memoization
Memoization
1
2
3
4
Memoized-Cut-Rod(p, n)
let r[0...n] be a new array
for i = 0 to n
r[i] = -inf
return Memoized-Cut-Rod-Aux(p, n, r)
1
2
3
4
5
6
7
8
9
Memoized-Cut-Rod-Aux(p, n)
if r[n] >= 0
return r[n]
if n == 0
q = 0
else q = -inf
for i = 1 to n
q = max(q, p[i] + Memoized-Cut-Rod-Aux(p, n - i, r)
r[n] = q
return q
Yuliana G. Apaza Yllachura Rod Cutting 19/ 19

Das könnte Ihnen auch gefallen