Tarea 5 de Análisis de Algoritmos
Trimestre 2012 Invierno
Entrega: 29 de marzo de 2012 a
las 16:30 en mi oficina.
- [10 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. Diseñe un algoritmo que
encuentre el menor producto punto posible y demuestre que su algoritmo
es correcto. Pista: haga
algunos ejemplos a mano hasta que se dé cuenta de lo que
está pasando.
- [10 puntos] Muestre un ejemplo de una gráfica con costos
positivos en
sus aristas tales que al aplicar el algoritmo de Dijkstra el
árbol de caminos más cortos no es un árbol abarcador de
costo mínimo.
- [10 puntos] Suponga que una gráfica conexa G = (V, E)
tiene costos distintos en
todas sus aristas.
Demuestre que G tiene un único árbol abarcador de costo
mínimo. Pista:
¿qué pasa cuando se le aplica el algoritmo de Prim o el
algoritmo de Kruskal a esta gráfica?
- [10 puntos] Suponga que una gráfica conexa G = (V, E)
tiene costos distintos en
todas sus aristas
excepto por dos que tienen el mismo
costo. ¿Será cierto que G tiene un único
árbol abarcador de costo mínimo? Dé una
demostración de que es verdadero o un ejemplo que muestre que es
falso.