


Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Análisis y Diseño de Algoritmos II, Profesor: Francisco palomo, Carrera: I. T. Infor. Sistemas, Universidad: UCA
Tipo: Ejercicios
1 / 4
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!



1. Podemos representar una ecuación de recurrencia lineal, de coeficientes constantes, y ho- mogénea de orden k de la siguiente forma:
∀ n ≥ k fn + a 1 · fn − 1 + · · · + ak · fn − k = 0 f 0 = c 1 ,... , fk − 1 = ck
donde a 1 ,... , ak y c 1 ,... , ck son elementos conocidos de un anillo A = 〈 A, + , · , − , 0 , 1 〉. Una ecuación de este tipo queda pues determinada por dos vectores:
El vector de coeficientes, ~a = [ a 1 ,... , ak ]. El vector de condiciones iniciales, ~c = [ c 1 ,... , ck ].
Emplee programación dinámica para diseñar un algoritmo que calcule los términos de su solución. El algoritmo recibirá ~a , ~c , k y n , y devolverá fn. Analice el algoritmo calculando el número exacto de operaciones de cada tipo sobre A. No emplee más de Θ( k ) espacio.
2. Diseñe un algoritmo que reciba la tabla de subproblemas resueltos de valores correspon- diente a un ejemplar del problema de la mochila discreta y devuelva, en un conjunto, una de las posibles composiciones óptimas de la carga. 3. Diseñe un algoritmo que reciba la tabla de subproblemas resueltos de valores correspondien- te a un ejemplar del problema del cambio de moneda con suministro ilimitado y devuelva, en un conjunto, una de las posibles composiciones óptimas del cambio. 4. Se dispone de un tablero, T , de dimensión m × n que tiene asociado un valor numérico tij con cada casilla ( i, j ). Deseamos mover un robot situado en la casilla (1 , 1) al extremo opuesto ( m, n ) de manera que la suma de los valores de las casillas que atraviesa sea mínima. En cada paso, el robot únicamente puede moverse a la casilla de la derecha o a la de abajo.
a ) Resuelva el problema restringido consistente en calcular los valores de los caminos óptimos empleando programación dinámica. Detalle el proceso de obtención del al- goritmo y no emplee más espacio que el del propio tablero. b ) Diseñe un algoritmo que a partir del resultado del anterior construya una matriz binaria con 1 en las posiciones que forman parte de algún camino óptimo y 0 en las demás.
c ) Aplique ambos algoritmos para resolver los siguientes ejemplares:
1 2 4 3 1 1 5 2 4
5. Empleando el algoritmo de Floyd , diseñe un algoritmo que reciba la matriz de adyacencia de un grafo y devuelva su matriz de accesibilidad. Utilícelo para calcular la matriz de accesibilidad de: (^)
6. Demuestre que si el algoritmo de Floyd se aplica a un grafo con pesos no negativos en sus aristas, en el paso k del bucle más externo no se modifican ni la fila ni la columna k -ésimas de la matriz de pesos del grafo. Aplique el algoritmo de Floyd al grafo de la figura para calcular los valores de los caminos mínimos entre cada pareja de vértices, mostrando las matrices intermedias que se obtienen en cada paso del bucle más externo.
1
2 3
4
15
15
5 50 5 15
30 5
Tenga en cuenta la propiedad enunciada, y también que la diagonal principal de la matriz permanecerá invariante. Esto le permitirá ahorrar cálculos.
7. Dada una matriz binaria A de dimensión n × n , podemos definir su clausura reflexiva y transitiva , A ∗, de la siguiente forma:
( i ) · · · · A + · · ·
donde + y · representan la suma lógica matricial y el producto lógico matricial (es decir, las operaciones matriciales de suma y producto teniendo en cuenta que con los elementos de las matrices se emplean operaciones ∨ y ∧). Relajando la notación, simplemente diremos que A ∗^ = ∑∞ i =0 A i.
12. Dada una red de ordenadores y la probabilidad de fallo de cada uno de sus enlaces, diseñe un algoritmo que para cada par de ordenadores indique si toda ruta entre ambos posee una probabilidad de fallo superior a f , 0 ≤ f ≤ 1. Los fallos en enlaces distintos se suponen independientes. No olvide definir adecuadamente la estructura de datos a emplear. Al analizar el algoritmo explique qué es lo que va a considerar como operación elemental. El algoritmo deberá realizar O ( n^3 ) operaciones elementales.