Práctica 8: Caminos Eulerianos y Hamiltonianos (Algoritmos III)

De Cuba-Wiki

Ejercicio 08.01:


a)
b)

Ejercicio 08.02:

Ejercicio 08.03:

1.Si 2.Si 3.No 4.No

Ejercicio 08.04:

Probamos las 2 implicaciones por separado:

=>) Como G es conexo y tiene circuito euleriano, cada nodo tiene grado par y por lo tanto G contiene algun ciclo C. Si sacamos los ejes de C pueden pasar 2 cosas: Si C era el único circuito, luego trivial. Si no nos queda G' donde cada nodo también tendrá grado par, y por lo tanto volvemos a aplicar esto recursivamente.

(Una demostración más formal se puede hacer usando inducción, ya que justamente como dije arriba, es cuestión de aplicar recursivamente una función que nos saque un circuito).

<=) Sea G conexo y particionable en K circuitos: C1, C2, ... , Ck Si sacamos los ejes de C1, luego como G es conexo nos quedan nodos que habían en común entre C1, y otro Ci (Esto es casi trivial probarlo). Luego hay que nuevamente ir recorriendo los ciclos, sabiendo que tendremos nodos compartidos con ciclos no recorridos anteriormente, y esto se podrá hacer k veces, y luego habremos encontrado nuestro circuito euleriano.

Ejercicio 08.05:

Supongamos que NO. Entonces existe un vértice v tal que w(G-v) = d(v)/2. Sea d(v) = 2k, entonces w(G-v) = k' > 2k/2 = k. Es claro, que al ser k' > k, y al estar v conectado con k' componentes conexas, al menos habra una componente conexa con la cual solo habra un eje conectado a v. A la vez como el grado de v es par, debe haber otra componente conexa con la cual tiene una cantidad impar de ejes incidentes en v. Pero con que haya una componente conexa, a la cual se conecta con solo una arista, ya basta para ver que no es un grafo euleriano, ya que partiendo de v, y usando esa arista se podra entrar a esa componente conexa, pero nunca salir usando otra arista que no sea la de v. Por lo tanto llegamos al ver que no es euleriano llegamos a nuestro amigo, el Absurdo....

Ejercicio 08.06:

n = #nodos

Si tiene exactamente n-2 nodos de grado impar, tiene camino pero no circuito. Para tener circuito necesita que los n nodos sean de grado par.

Ejercicio 08.07:

ESTE EJERCICIO FUE HECHO EN CLASE!!!!...POR FAVOR SI ALGUIEN LO COPIO Y LO TIENE SE AGRADECERIA QUE FUESE PUESTO AQUI


a)
b)

Ejercicio 08.08:


a) Para todo n impar, n >1
b) K2

Ejercicio 08.09:


a)
b)
c)

Ejercicio 08.10:

Ejercicio 08.11:


a)Depende la implementacion. Se podria hacer un BFS en ultima instancia. Igual nose si hay una mejor solucion.
b) Me parece que es muy similar a lo del A.
c) Esto se los dejo de tarea.
d) Depende lo que hayan elegido.
e) Me parece que la idea debe ser usar que n esta acotado por m, y con BFS o DFS teniamos complejidad O(m+n) que se reduce a O(m). Pero habria que preguntar por las dudas.

Ejercicio 08.12:

Porque es bipartito, y una de las particiones tiene un 2 nodos más que la otra.

Ejercicio 08.13:

Ejercicio 08.14:

HECHO EN CLASE:.....EL QUE PUEDA SUBALO!!!!

Ejercicio 08.15:

El circuito Hamiltoniano es una serie de n+1 pasos donde en el paso 1 estamos parados sobre el primer nodo, y en el paso n+1 nuevamente en el primer nodo. Es evidente que en pasos consecutivos nos moveremos de una partición a otra.. De este modo vemos que empezamos en el paso 1 en una particion (llamemosle V1), luego en el paso 3 volveremos a V1, en el paso 5 volveremos a V1, ....asi hasta llegar a n (ya que n es impar), luego en el paso n+1 deberá estar necesariamente en la otra partición, pues entonces, en el paso n+1 estará en una partición distinta de la partición de donde empezamos, por lo que no se puede formar un circuito hamiltoniano. Se puede formalizar de muchos modos, pero la idea suele ser la misma.

Ejercicio 08.16:

Se puede probar de manera constructiva. Se prueban los nodos para n=4, (el peor caso seria cuando todos tienen grado 2). Luego, se puede ver que partiendo de un grafo G que cumple la propiedad, y agregando un nodo tal que la propiedad se mantenga, se puede formar un circuito hamiltoniano usando el camino hamiltoniano de G, y buscando dos nodos consecutivos a los cuales el nodo agregado este conectado. Al haber dos nodos consecutivos a los cuales el nodo agregado esta conectado, el circuito hamiltoniano se formará llendo de uno de esos nodos al nuevo nodo agregado, y del nodo agregado, al consecutivo que recien dijimos.

Ejercicio 08.17:

Dem: Si G es hamiltoniano entonces, trivialmente, tambien G+uv lo es. Sup. que G+uv es hamiltoniano pero G no lo es. Entonces, como en la dem. del teorema 4.3, obtenemos (4.4). Pero esto contradice la hipotesis (4.5)


[Sacado del libro de North-Holland.. para leerlo tranquilos :P]
Teorema 4.3: si G es un grafo de tal que n>=3 y para todo v, d(v)>=n/2 -> G es hamiltoniano
Dem: Sup. que NO. como n>=3, G no puede ser completo. Sean u,v vertices no ady. en G. Por eleccion de G, G+uv es hamiltoniano. Mas aun, como G no lo es, cada ciclo hamiltoniano de G+uv debe contener el eje uv. Entonces hay un camino hamiltoniano {v1,..,vk} en G tal que u=v1 y v=vk.
Sean S={vi | hay eje u-v(i+1)} y T={vi | hay eje v(i)-v}. Como vk no esta en S∪T -> |S∪T| < n -> |S∩T| = 0 (ya que si contuviera algun vertice vi, entonces G tendria el ciclo hamiltoniano {v1,..,vi,vk,vk-1,..,vi+1,v1} que seria ABS). Usando lo anterior obtenemos d(u)+d(v)=|S|+|T|=|S∪T|+|S∩T|<n (este es el 4.4). Pero esto contradice HI (para todo v, d(v) >= n/2) ABS

Ejercicio 08.18:

Si partimos de un grafo completo una posible mesa redonda se forma a partir de un ciclo hamiltoniano. Luego, otra posible mesa redonde de otro dia sera un circuito hamiltoniano que no use esos ejes, bueno, y asi sucesivamente. Por lo tanto la idea es ver cuantos circuitos hamiltonianos hay, tal que usen distintos ejes.

Ejercicio 08.19:

Ejercicio 08.20:


a)
b)
c)
d)

Ejercicio 08.21:


a)
b)
c)
d)
e)

Ejercicio 08.22:

Ejercicio 08.23:


a)
b)
c)

Ejercicio 08.24:


a)
b)
c)

Ejercicio 08.25: