Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Dado un grafo G = (V, E), un subconjunto de vértices V' 0 ⊆ V y una cobertura por vértices para G
si y solamente si para todo arista e ∈ E, hay un vértice v ∈ V' que 'y el extremo de e. Sea w: V
-> Z una función que asocia cada uno vértice de G a un número entero positivo. El costo de una
cobertura V' y definido como w (V') = Pv2V 0 w(v). El problema de la cobertura de coste mínimo
consiste en encontrar la cobertura de menor costo en G.
Dado un árbol T, con raíz r, defina Tv como un sub-arbol de T que incluye el no v y todos sus
descendientes. Ser OP T (v, 1) el costo de la cobertura de los costos mínimo para arbol TV, de
todas las coberturas de TV con el vértice v. De forma análoga, defina OP T (v, 0) como la
cobertura de menor costo para árbol Tv, entre todas las cubiertas para Tv que no utilizan el
vértice v.
(a) (0.5pt) Sea OP T (v) el costo de la cobertura de costo mínimo para Tv. ¿Cómo
podemos obtener OP T (v) a partir de OP T (v,1) y OP T (v ,0)?
(b) (0.5pt) Si Tv es un arbol con sólo un no, cuánto vale OP T (v, 0) y OP T (v, 1)?
c) (1.0pt) Dado un no v, sean v1;….. ; vk los hijos de v. Encuentre una ecuación de recurrencia
que relaciona OP T (v,1) OP T (v1; 0); OPT (v1; 1); ::::; OP T (vk; 0); OP T (vk; 1). También
encuentra una ecuación de recurrencia que relaciona OP T (v ,0) con OP T (v1; 0); OPT (v1; 1);
………; OP T (vk; 0); OP T (vk; 1). Tenga en cuenta que no todos los OPT's citados deben
aparecer en la ecuación.
a) (1.5) Sea OP T (i; j) el tamaño de la mayor subsecuencia común entre Xi y Yj, donde Xi
'y la secuencia contenida las i primeras letras de X y Yj 'y la secuencia conteniendo las j
primeras letras de Y. Encuentre una ecuación de recurrencia relacionando con
OP T(i - 1; j - 1), OP T(i; j - 1) e OP T(i - 1; j)
b) (1.5pt) Asuma que los valores de OP T (i, j) ya se han calculado y almacenado en una
matriz M de n líneas por m columnas. Muestra el pseudo-c'odigo de un procedimiento
que recibe M y devuelve la mayor sucesión común entre X e Y.
a) (0.5pt) Sea e = (u; v) una arista arbitraria de un grafo G = (V; E) y sea k un número
entero. Demuestre que existe una cobertura de vértices para G con k v'ertices si y
solamente si al menos uno de los grafos G – {u}g o G – {v} tiene una cobertura de
tamaño k - 1.
b) (0.5pt) Demuestre que un grafo con n vértices y más que k: (n - 1) aristas no tiene
una cobertura de tamaño k
c) (2pt) Utilice los resultados de los dos elementos anteriores para diseñar un
procedimiento ExisteCobertura que recibe como entrada un grafo G y un entero x
y devuelve 'SI' si G tiene una cobertura con x vértices y 'NO', caso contrario.
Analice el ~algoritmo de la mejor forma posible
(2.0pt) Sea A = {a1; ::::;an} un conjunto de números reales distintos y sea bi, para i = 1; ….; n, el
i-'esimo menor elemento de A. Los datos enteros K y L, con 1 ≤ K <L ≤ n, describen cómo sería
un algoritmo eficiente para calcular PL j=K bj y analice su complejidad. Cuanto menor es la
complejidad computacional del algoritmo mayor la puntualización.
Hoja 2
1. (3.0pt) Sea un grafo no direccionado G = (V; E). Una cobertura para G' y un conjunto de
vértices C ⊆ V tal que toda arista de E tiene por lo menos una de sus extremos en C. Una
cobertura C' se dice bien si no existe otra cobertura C' tal que │ C' │< │C│. Considere el
siguiente algoritmo guloso que se muestra en la figura siguiente.
C←O;
Mientras G tiene alguna arista
v← vértice de G con mayor grado
C← C U v
Quite v de G^1
Fin Mientras
Devuelva C
Figura 1: Cobertura
a) Muestra un ejemplo que muestra que este algoritmo no siempre devuelve la cobertura
óptima.
b) Asuma que el grafo es dado por una lista de adyacentes. Explique cómo implementar el
algoritmo anterior y analice en función de │V │ y │E │ la complejidad de la implementación.
Cuanto más eficiente mejor.
2. (2.0pt) Sea G = (V; E) un grafo conexo y no direccionado. Un puente en G' y una arista e € E
tal que si se quita e de G el grafo queda desconectado.
a) Sea e = uv una arista que no sea un puente. Podemos afirmar que existe un ciclo en G que
contienen los vértices u y v. ¿Por qué?
b) Asuma que G está representado por una lista de adyacentes. Dada una arista y = uv,
determine cómo modificar el código de DFS para determinar si es un puente gráfico. ¿Cuál es
la complejidad del algoritmo?
3. (2.0pt) Considere un tablero de ajedrez (4x4) con las casillas numeradas de 1 a 16.
4. (3.0). Considere un tablero de ajedrez (4x4) con las casillas numeradas de 1 a 16.
a) Ejecute el algoritmo de Dijkstra para calcular el valor de las rutas de coste mínimos entre el
vértice 1 y los demás vértices del grafo G.
b) ¿Cuál es la altura del árbol generado por una BFS en G o teniendo como origen el n ° 1?
1. Para todo u € V
5. Si u no se ha visitado
9. DFS-VISIT (u)
DFS-VISIT (u)
15. Marque u como visitado
18. Para todo vértice v € Adj(u)
21. Si no se ha visitado
24. DFS-VISIT (v)
Figura 2: DFS
BFS
Procedimiento BFS(G,s)
1. Marque s como visitado
5. ENCOLAR (Q,s)
9. Mientras Q ≠ 0
10. u← DECOLAR(Q)
11. Para cada v € Adj[u]
12. si v no es visitado entonces
14. Marque v como visitado
16. ENCOLAR(Q,v)
20. Fin Para
30. Fin Mientras