IENT IA SAP V ER I TA S N OS T R A UNIVERSIDAD DEL BÍO-BÍO FACULTAD DE CIENCIAS EMPRESARIALES DEPARTAMENTO DE SISTEMAS DE INFORMACIÓN PRIMER CERTAMEN DE ANALISIS Y DISEÑO DE ALGORITMOS PROFESOR: Claudio Gutiérrez Soto Fecha: Miércoles 29 de Noviembre de 2006 Nombre:________________________________________ Rut: ___________________ Sección:____________ Nº hojas:_____________ Nota: ________________________ Instrucciones: Lea bien antes de responder cada pregunta. Escriba su nombre y rut en cada hoja que utilice para responder. Numere cada hoja de respuesta que utilice de forma correlativa. Anote en el espacio indicado la cantidad de hojas de respuesta que entrega. Tiempo máximo: 100 minutos. Fecha de Revisión: Semana del 04 de Diciembre de 2006 I.- PARTE CONCEPTUAL 1.1 Responda Verdadero(V) o Falso(F), según corresponda a cada afirmación. Las respuestas Falsas deberán ser justificadas. Respuestas falsas no justificadas serán consideradas incorrectas (4 punto cada respuesta correcta). (a) El profesor SabeloTodo, asegura que existe un algoritmo O(|V|+|E|), el cual determina si dos grafos son isomorfos_____ . Falso, el problema de isomorfismo de grafos es un problema NP. No obstante, cuando los Vértices y Arcos están etiquetados se pueden utilizar heurísticas entre P y NP. (b) La eficiencia de los algoritmos no dependen de la estructura de datos que utilizan_________ . Falso, la eficiencia de los algoritmos depende de la estructuras de datos, como vimos en clase, el caso de las estructuras para grafos utilizando Matriz de Adyacencia y Listas de Adyacencia (c) El profesor SabeloTodo asegura que es posible encontrar siempre algoritmos en línea con competitividad 1 ____. En general esto no es posible, ya que requeriríamos obtener toda la información. Es decir al final utilizar un algoritmo OFF-LINE. (d) Para ver si es que un problema es NP completo, lo primero que debemos mostrar que el problema está en NP, y luego encontrar un algoritmo que chequea la solución en tiempo polinomial______. Verdadero II.- PARTE ANALISIS DE ALGORITMOS II.1 Resolución de Ecuaciones de Recurrencia 2.1 Resolver las siguientes ecuaciones de recurrencia (10 puntos cada una) 1 IENT IA SAP V ER I TA S N OS T R UNIVERSIDAD DEL BÍO-BÍO FACULTAD DE CIENCIAS EMPRESARIALES DEPARTAMENTO DE SISTEMAS DE INFORMACIÓN A (a) T(1)=1 T(n)=3T(n/3)+n2+n Aquí bastaba eliminar el n, y después obtenemos T(n)= 3T(n/3)+n2 Luego aplicamos el teorema maestro y obtenemos O(n2). (b) T(1)=1 T(n)=4T(n/4)+8 Aquí podemos utilizar iteración, y llegaríamos a lo siguiente: =4[4[4T(n/43)+8]+8]+8 k-1 =4kT(n/4k)+8 ∑ 4i i=0 Luego aplicamos la formula vista en clase para series geométricas y el orden nos da O(n) II.II Análisis de Algoritmos Recursivos e Iterativos 2.2 Obtenga las ecuaciones de recurrencia para los siguientes algoritmos (7 puntos cada uno) (a) Camino diametro(int v, Camino Aux, Camino max, Grafo G) { Lista Suc; Suc=sucesores(v,G); if(Suc!=NULL) Aux=anexarCamino(v,Aux);//anexa un vértice v a una lista else return(Aux); for(primLista(Suc);!finLista(Suc);nextLista(Suc)) if(No_Marca(InfoLista(Suc)==1) // si no está marcado { Aux=diametro(InfoLista(Suc),Aux,max,G); Marcar(InfoLista(Suc)); if(Aux.largo>max.largo) // Aux.largo, es el largo de la lista max=Aux; else continue; } else continue; return(max); } // fin del procedimiento Aquí podemos ver que recorremos todos los vértices trata de un grafo conexo. Si no, podemos asumir que es a través de DFS, note que los vértices se visitan sólo por lo que el orden del algoritmo es O(n). Su ecuación si se recorrido una vez, de 2 IENT IA SAP V ER I TA S N OS T R A UNIVERSIDAD DEL BÍO-BÍO FACULTAD DE CIENCIAS EMPRESARIALES DEPARTAMENTO DE SISTEMAS DE INFORMACIÓN recurrencia es : T(V)=T(V-1)+C , donde V-1 representa al vértice como marcado. b) int MurphyII( int n, int fin, int suma) { int i; if( n==fin) return(0); else { for(i=1;i<=n;i++) suma=suma+MurphyII(n-1,fin,i); } return(suma); } La ecuación de recurrencia de esto es: T(n)=nT(n-1)+C III.- PARTE DE DISEÑO 3.1 Suponga que tiene dos arreglos desordenados de tamaño m y n (m≤n) y se desea encontrar todos los elementos que son comunes en ambos arreglos. Diseñe un algoritmo que sea eficiente tanto para m muy pequeño con respecto a n, como cuando ambos son similares en tamaño (20 ptos). Si m es mucho menor que n, entonces podemos ordenar el arreglo de tamaño n utilizando MergeSort, con esto tenemos un algoritmo de O(nlog2n), y después tomamos el arreglo de tamaño m y hacemos búsqueda binaria en el arreglo ordenado. Esto nos toma log2m. Finalmente el orden de nuestro algoritmo es O(nlog2n). Por otro lado, note que para llegar a esto podemos haber utilizado la Teoría de la Información para obtener una cota inferior. Si m es similar a n, entonces ordeno los dos arreglos y luego hago una mezcla obteniendo los elementos comunes. El orden de esto también es O(nlog2n). 3.2 Suponga que se tienen dos arreglos A y B de enteros y un valor x. Determinar si es que existen dos elementos, uno de cada arreglo, tal que el valor absoluto de su resta es x si los arreglos están desordenados (20 ptos). Este ejercicio es similar al visto en clases de ejercicios, ordenamos los dos arreglos y hacemos búsqueda binaria Ai-X o Ai+ X. Esto nos toma O(nlog2n). 3.3 En la ciudad de Concepción se encontró un extraordinario equino de carrera. Sin embargo, el dueño del equino no sabe quien es el padre. Si tenemos N posibles padres, cree un algoritmo eficiente que calcule quién es el padre. El padre será aquel equino que 3 IENT IA SAP V ER I TA S N OS T R A UNIVERSIDAD DEL BÍO-BÍO FACULTAD DE CIENCIAS EMPRESARIALES DEPARTAMENTO DE SISTEMAS DE INFORMACIÓN tenga una secuencia mayor al resto. Fíjese que en ejemplo no se pueden cruzar las líneas de correspondencia de ADN. Obtenga el orden de su algoritmo, de que tipo de algoritmo es la solución propuesta por usted con respecto a los visto en clases. (10 ptos). ADN Caballo hijo ☼ ♀ ♦ ☻ ☺ ◊ ◄ ADN Caballo Padre ♂ ♦ ♀ ☻ ☺ ◊ ◄ Este ejercicio fue visto en clase, bastaba hacer un ciclo for de para los N candidatos y para cada candidato calculamos su LCS con el hijo, el candidato con mayor | LCS| es el padre. 4