Tarea 6 de Análisis de Algoritmos
Trimestre 2012 Primavera
Entrega: 10 de julio de 2012 en clase.
- [5+5 puntos] Suponga que tiene un conjunto de N puntos {x1,
x2,
..., xN} en una línea
recta y los desea cubrir con
intervalos de
longitud 1. (a) Describa un algoritmo glotón que cubra los
puntos con tan pocos intervalos como sea posible. (b) Demuestre que su
algoritmo funciona.
- [5+5 puntos] Suponga que tiene un conjunto de N puntos {x1,
x2,
..., xN} en una circunferencia
y los desea cubrir con arcos
de
longitud 1. (a) Describa un algoritmo glotón que cubra los
puntos con tan pocos arcos como sea posible. (b) Demuestre que su
algoritmo funciona.
- [5+5 puntos] Se tienen dos vectores de enteros positivos a = (a1,
a2,
..., an) y b = (b1, b2, ..., bn).
Se
desea
permutar
los elementos de b para obtener un tercer vector c =
(c1, c2, ..., cn) tal que el producto punto de a y c sea tan
pequeño como sea
posible. Recuerde que el producto punto de a y
c está dado por a1c1 + a2c2
+ ... + ancn. (a) Diseñe un algoritmo que
encuentre el menor producto
punto posible. (b) Demuestre que su algoritmo
es correcto. Pista: haga
algunos ejemplos a mano hasta que se dé cuenta de lo que
está pasando.
- [5+5 puntos] Se tienen dos vectores de enteros positivos a = (a1,
a2,
..., an) y b = (b1, b2, ..., bn).
Se
desea
permutar
los elementos de b para obtener un tercer vector c =
(c1, c2, ..., cn) tal que el producto punto de a y c sea tan grande como sea posible. Recuerde
que el producto punto de a y
c está dado por a1c1 + a2c2
+ ... + ancn. (a) Diseñe un algoritmo que
encuentre el mayor producto
punto posible. (b) Demuestre que su algoritmo
es correcto. Pista: haga
algunos ejemplos a mano hasta que se dé cuenta de lo que
está pasando.