Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1 / 32
C (i , j ) =
0k mi
Para cada uno de los valores de k (desde 1 hasta mi ) se considera tomar las k monedas de valor di , en lugar de hacerlo de una en una como en la versi on original del problema de devoluci on del cambio
Yolanda Garc a, Jes us Correas (DSIC - UCM) 3 / 32
5 / 32
Ejemplo 1: Traducir del lat n al arameo disponiendo de los siguientes diccionarios: lat n-griego, griego-etrusco, griego-dem otico, dem otico-arameo Soluci on: s es posible la traducci on: lat n-griego-dem otico-arameo, realizando tres traducciones. Ejemplo 2: Traducir del lat n al arameo disponiendo de los siguientes diccionarios: lat n-griego, arameo-etrusco, griego-dem otico, dem otico-hebreo Soluci on: No es posible la traducci on.
6 / 32
Vemos que es un problema de optimizaci on (cadena de traducciones de longitud m nima), y conocemos un algoritmo para calcular los caminos m nimos entre cualquier par de nodos de un grafo: el algoritmo de Floyd El u nico dato que nos falta para aplicarlo directamente es la longitud y orientaci on de las aristas
Yolanda Garc a, Jes us Correas (DSIC - UCM) 7 / 32
proc oyd(L[1..n,1..n],D[1..n,1..n],P[1..n,1..n]) desde i 1 hasta n hacer desde j 1 hasta n hacer P[i,j] 0 n desde n desde DL desde k 1 hasta n hacer desde i 1 hasta n hacer desde j 1 hasta n hacer si D[i,k]+D[k,j] < D[i,j] entonces D[i,j] D[i,k]+D[k,j] ; P[i,j] k n si n desde n desde n desde n proc
9 / 32
12 / 32
la funci on m n() permite elegir el men u de menos calor as Los valores de la tabla con valor + garantizan que no se va a elegir un men u que tenga menos calor as que el m nimo necesario
Yolanda Garc a, Jes us Correas (DSIC - UCM) 13 / 32
[GV00] Supongamos que existen n bancos en los que podemos invertir, y disponemos de una cantidad Cant para invertirla. Cada banco nos proporciona intereses seg un una funci on mon otona creciente, fi (x ), donde x es el importe a invertir e i el banco en el que se invierte. Dise nad un algoritmo din amico que encuentre la inversi on optima: la cantidad que se debe invertir en cada banco para maximizar los intereses obtenidos.
16 / 32
Podemos considerar que las funciones fi (x ) se proporcionan como valores de una matriz F [1..n, 0..Cant ], donde F [i , j ] contiene el importe de los intereses que proporciona el banco i al invertir la cantidad j Como estructura de datos intermedia, utilizamos una matriz I [1..n, 0..Cant ] Dada la estructura de la recurrencia, se puede generar la matriz I por las
18 / 32
Falta la obtenci on de los importes invertidos en cada uno de los bancos C omo podr a incluirse en este algoritmo?
19 / 32
21 / 32
Se cumple el principio de optimalidad? En cada paso del algoritmo, podemos decidir si el u ltimo car acter de Xi e Yj forma parte de la secuencia com un m axima:
Si el u ltimo car acter de ambas secuencias es igual, entonces se a nade a la secuencia com un m axima: en este caso, L(i , j ) tiene el siguiente valor: L(i 1, j 1) + 1 Si el u ltimo car acter de Xi e Yj no es igual, entonces la secuencia com un m axima no lo contiene, y el valor de L(i , j ) ser a el mayor de L(i , j 1) y L(i 1, j )
21 / 32
Por tanto, la expresi on recurrente es: si i = 0 o j = 0 0 L(i 1, j 1) + 1 si i = 0, j = 0, xi = yj L(i , j ) = m ax(L(i , j 1), L(i 1, j )) si i = 0, j = 0, xi = yj Qu e elemento de la tabla de c alculos intermedios contiene la longitud de la subsecuencia com un m axima? C omo ser a la implementaci on de esta recurrencia? C omo se puede obtener la subsecuencia com un m axima?
22 / 32
24 / 32
(*) Podemos considerar que compramos todas las ores de la tienda y adem as nos sobra dinero La especicaci on del algoritmo es similar a las vistas en casos anteriores
Yolanda Garc a, Jes us Correas (DSIC - UCM) 25 / 32
26 / 32
Estructura de datos intermedia (0,5 puntos) Relaci on recursiva entre casos y subcasos (1 punto) C odigo del algoritmo (3,5 puntos)
30 / 32
donde pi es el presupuesto del proyecto i , p1 p2 ... pn , y ri es el n umero de regiones en las que se puede realizar el proyecto.
Yolanda Garc a, Jes us Correas (DSIC - UCM) 31 / 32