Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Relacion de Ejercicios Tema 3, Ejercicios de Representación de Datos y Diseño de Algoritmos

Asignatura: Análisis y Diseño de Algoritmos II, Profesor: Francisco palomo, Carrera: I. T. Infor. Sistemas, Universidad: UCA

Tipo: Ejercicios

2013/2014

Subido el 08/01/2014

javierokdan
javierokdan 🇪🇸

4.7

(15)

11 documentos

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Análisis y Diseño de Algoritmos II
Tema 3: Programación dinámica
26 de abril de 2006
1. Podemos representar una ecuación de recurrencia lineal, de coeficientes constantes, y ho-
mogénea de orden kde la siguiente forma:
nk fn+a1·fn1+· · · +ak·fnk= 0
f0=c1, . . . , fk1=ck
donde a1, . . . , akyc1, . . . , ckson elementos conocidos de un anillo A=hA, +,·,,0,1i.
Una ecuación de este tipo queda pues determinada por dos vectores:
El vector de coeficientes, ~a = [a1, . . . , ak].
El vector de condiciones iniciales, ~c = [c1, . . . , 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,kyn, 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×nque 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 1en las posiciones que forman parte de algún camino óptimo y 0en las
demás.
1
pf3
pf4

Vista previa parcial del texto

¡Descarga Relacion de Ejercicios Tema 3 y más Ejercicios en PDF de Representación de Datos y Diseño de Algoritmos solo en Docsity!

Análisis y Diseño de Algoritmos II

Tema 3: Programación dinámica

26 de abril de 2006

1. Podemos representar una ecuación de recurrencia lineal, de coeficientes constantes, y ho- mogénea de orden k de la siguiente forma:

nk fn + a 1 · fn − 1 + · · · + ak · fnk = 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:

A ∗^ = I + A + A · A + · · · + A ·

( 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.