Escuela de Ciencias de la Computaci6n
2da Practica Tedrica
C262 Algoritmos
Dynamic Programming y Greedy
1 Se tiene rod{barras) con su length i (longitud iesimo} en pulgadas, su respectivos price pi (precio iesimo) y su limit i
(limite iesimo, o numero maximo de barras)..
Determinar el maximo revenue m (ingreso n-esimo), por el corte de barras y la venta de sus piezas.
Ejm
lenghti 1 23 4
pricei 15 20 33 36
limiti 6 4 22
revenuen —_solucion PD cut_PDI....n) — solucion GR ‘cut_GR(..)
rn elm: [x,px}+Lpil+ ? cejm: [x,px)+Lipil+ ?
rhe. [15] 15 1,15] 15
2 [1,30] 30 [1,30] 30
6
donde:
revenue n es maximo ingreso con longitud n
[x,px], donde x es un tipo de longitud pertenece a (1,2,...n}, pes el precio
Desarrollar el programa con Dynamic Programming de manera iterativa
Incluir el método 0 funcion cut_PD\...)
Desarrollar el programa con Greedy de manera iterativa
Incluir ef método 0 funcion cut_GR\...)
Se le pide resolver:
Incluir un meni donde:
La) se ingrese aleatoriamente i datos para length, price, limit de tal manera que los datos tengan sentido:
Lb) se ingrese un n maximo e imprima tabla anterior.
1.¢) desarrollar la siguiente tabla de comparaciones y resultados
Ingresar un i grande, con un tamafio n considerable y un numero e de ejecuciones.
Para comparar el tiempo de ejecucién y el error que tiene el greedy
Ejm datos de ingreso:
i= 100000 // es el numero de longitudes, ejm = {1,2,3,... 100000}
500000 _//es se evalua el revenue (ingreso) de la longitud n 500000
1000 //es el numero de ejecuciones
tanto Dynamic Programming y Greedy tienen los mismo datos.
DP OGR
Tiempo de ejecucién (milisegundos) 1200 13
Solucién 771000 650000
Error promedio de 1000ejecuciones 14.254210%
- se tomara en cuenta el menor error promedio del greedy.
!Los datos y salidas son referencialesiTema Greedy.
2) Desarrollar el Algoritmo de Codigos de Huffman para n proceso de compresion. Donde se le ingrese un conjunto
de datos con el valor y su frecuencia, y de como resultado el codigo evaluado por el algoritmo de huffman
HUFFMAN(C)
An=|CL
2
3fori=1ton-L
4 allocate anewnode z
5. aleft = x= EXTRACT-MIN(Q)
6 aight =y = EXTRACT-MIN(Q)
7 nfreq=ax.freg + y.freq
8 INSERT(Q.z)
9 return EXTRACT-MIN(Q)
2.a)Ingresar n datos con su frecuencia, y luego te permita modificarlos.
Fim
n=6
Numero de caracteres 100000
Letra: aber ee
Frecuencia(milesy 45 13 12 16 9 5
2.b)imprimir los resultados que te da | algoritmo de huffman , con longitud estatica. Que imprima los costos de cada
uno.
Letra: ab ae dE eet
Frecuencia(miles) 45 13 12 16 9 5
Long estatica 000 001 010 O11 «100-101
long. variable 0 100 111 1101 1100
Costo de longitud estética
Costo de longitud variable
Analisis Amortizado
3. Desarrollar el anilisis amortizado de n operaciones de insercién en un red black tree
Se le pide resolver:
3.a) de manera matematica demostrar cuanto es el costo por operacion.
3.b) y un programa que se ingrese n y te calcule el tiempo de ejecucién total (t{n}) y el tiempo por operacién (t(n}/n)