Diferencia entre revisiones de «Final del 20/12/19 (Algoritmos III)»

De Cuba-Wiki
Sin resumen de edición
Línea 23: Línea 23:


(c) Escribir un algoritmo eficiente basado en el resultado anterior que determine el radio y el diámetro de un árbol T. Mostrar la correctitud y determinar la complejidad del algoritmo propuesto.
(c) Escribir un algoritmo eficiente basado en el resultado anterior que determine el radio y el diámetro de un árbol T. Mostrar la correctitud y determinar la complejidad del algoritmo propuesto.
== Ejercicio 4 ==
(a) Sea <math>G = (V_G, E_G)</math> un grafo no trivial. Demostrar que <math>G</math> es bipartito sí y solo sí existe <math>I \subseteq V_G</math> tal que <math>I</math> es un conjunto independiente y también un recubrimiento de ejes por vértices (vertex cover).
(b) Diseñar un algoritmo eficiente que dado un grafo <math>G = (V_G, E_G)</math>, encuentre un conjunto independiente mínimo de <math>G</math> que sea también un recubrimiento de ejes por vértices; si tal conjunto de vértices no existe, el algoritmo debe informarlo. Mostrar que algoritmo propuesto es correcto y determinar su complejidad. Justificar. El mejor algoritmo que conocemos tiene complejidad <math>O(m + n)</math>, donde <math>m = |E_G|</math> y <math>n = |V_G|</math>.
== Ejercicio 5 ==
El problema del conjunto dominante es: dado un grafo <math>G = (V_G, E_G)</math> y un entero <math>k</math>, ¿existen un subconjunto <math>W \subseteq V_G</math> con a lo sumo <math>k</math> vértices tal que cualquier vértice <math>u \in V_G \ W</math>, <math>u</math> es vecino de algún vértice <math>w \in W</math>. Este problema es NP-Completo para la clase general de grafos. Probar que este problema sigue siendo NP-Completo para grafos bipartitos. (sugenerencia: utilizar subdivisiones de aristas que es agregar vértices de grado 2).

Revisión del 20:15 24 ene 2020

Final escrito de Min Chih Lin.

Enunciados

Ejercicio 1

Escribir un algoritmo que utilice la técnica de "programación dinámica" para calcular la subsecuencia creciente máxima de una secuencia de números (el mejor algoritmo conocido es de tiempo y usa espacio ). Mostrar la correctitud y determinar la complejidad del algoritmo propuesto.


Ejercicio 2

El grafo , también llamado hipercubo de orden , se define inductivamente de la siguiente manera: , y con es el grafo que se obtiene al tomar dos copias de y agrega un eje entre cada vértice de una copia y su vértice correspondiente en la otra copia. Por ejemplo , (ciclo simple de 4 vértices).

(a) Determinar los valores de para los cuales es planar. Justificar.

(b) Determinar . Justificar.


Ejercicio 3

Dado un grafo , se define la excentricidad de un vértice como y como la cantidad de aristas del camino más corto entre y . Y también se definen el radio y el diámetro de como y . Un vértice es centro de si .

(a) Mostrar infinitos grafos conexos (distintos de completos y ciclos) donde todos los vértices son centros.

(b) Probar que todo árbol tiene uno o dos centros.

(c) Escribir un algoritmo eficiente basado en el resultado anterior que determine el radio y el diámetro de un árbol T. Mostrar la correctitud y determinar la complejidad del algoritmo propuesto.


Ejercicio 4

(a) Sea un grafo no trivial. Demostrar que es bipartito sí y solo sí existe tal que es un conjunto independiente y también un recubrimiento de ejes por vértices (vertex cover).

(b) Diseñar un algoritmo eficiente que dado un grafo , encuentre un conjunto independiente mínimo de que sea también un recubrimiento de ejes por vértices; si tal conjunto de vértices no existe, el algoritmo debe informarlo. Mostrar que algoritmo propuesto es correcto y determinar su complejidad. Justificar. El mejor algoritmo que conocemos tiene complejidad , donde y .


Ejercicio 5

El problema del conjunto dominante es: dado un grafo y un entero , ¿existen un subconjunto con a lo sumo vértices tal que cualquier vértice , es vecino de algún vértice . Este problema es NP-Completo para la clase general de grafos. Probar que este problema sigue siendo NP-Completo para grafos bipartitos. (sugenerencia: utilizar subdivisiones de aristas que es agregar vértices de grado 2).