Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2 GRAFOS HAMILTONIANOS
UN CAMINO HAMILTONIANO:
Es un camino que visita todos los vértices del grafo, en una sucesión de aristas adyacentes, sin repetirlos.
CICLO HAMILTONIANO
Es un camino que visita todos los vértices del grafo, en una sucesión de aristas adyacentes, una sola vez,
donde el vértice inicial y el final son el mismo.
GRAFO HAMILTONIANO:
Es aquel grafo conexo que admite un CICLO HAMILTONIANO.
GRAFO SEMIHAMILTONIANO:
Es aquel grafo conexo que admite un CAMINO HAMILTONIANO.
UN DIGRAFO HAMILTONIANO:
Definición 1.
Un grafo orientado o dígrafo, se dice hamitoniano si tiene un CICLO ORIENTADO que pasa por cada
vértice de G una y solo una vez.
No se conoce ninguna condición necesaria y suficiente (teorema) que los caracterice. Esto es lamentable
porque en muchas aplicaciones es fundamental poder determinar si un grafo es hamiltoniano.
Dodecaedro
Hexaedro
Octaedro Tetraedro
CONDICIONES PARA QUE UN GRAFO SEA HAMILTONIANO
1. CONDICIONES SUFICIENTES PARA QUE UN GRAFO SEA HAMILTONIANO
La condición dice que si el vértice con grado menor del grafo es mayor o igual que la mitad de vértices
del grafo, entonces es Hamiltoniano.
Ejemplo 1.
Al verificar si el grafo G2, cumple con la condición podemos concluir que δ = 3 y n= 6 (6/2=3) entonces,
podemos decir que es Hamiltoniano, porque δ >= n/2
En este ejemplo, vemos que el vértice que tiene menor grado es 2 y que no es mayor o igual que la mitad
de los vértices, sin embargo el grafo es Hamiltoniano(porque?). Esto indica que si p -> q es verdadero,
no significa que q->p sea verdadero o también podemos decir que si la condición no se cumple, no se
puede asegurar nada del consecuente.
Ejemplo 3.
El grafo es Hamiltoniano, según la condición de
Dirac?
Al verificar si el grafo G3, cumple con la condición
podemos concluir? δ = 2 y n= 9 (9/2=4) entonces,
podemos decir que el grafo G3 es o no
Hamiltoniano? Que se debe hacer para verificar si
es o no Hamiltoniano?
Ejemplo 1.
δ = 2 y n= 6 (6/2=3) Entonces no cumple con la
condición de Dirac. Pero podemos decir que el
grafo no es Hamiltoniano?
Vamos a aplicar entonces la condición 2.
Convertimos el grafo G en el grafo G2, agregando
una arista desde el vértice que no tiene grado 3!(el
que no deja cumplir la condición de Dirac)
Definicion: Se llama clausura de G al grafo G’ que se obtiene al unir vértices no adyacentes con aristas de
forma recursiva, cuya suma de grados que sea mayor o igual que el número de vértices de G.
La clausura de un grafo es única, sin importar el vértice donde inicie.
Ejemplo, encontrar la clausura del siguiente grafo.
Se inserta la primera arista
entre 2 vértices no
adyacentes
g(v2)=4 + g(v6)=2 cuya
suma de grados sea mayor o
igual que 6.
El reciproco es falso, es decir si los vértices del grafo tienen todos grado mayor o igual que 2 no podemos
decir que el grafo sea Hamiltoniano.
Ejemplo1. Es hamiltoniano el siguiente grafo?
El grafo tiene vértices con grados:
g(V1) = g(V3) = g(V5) =2
g(V2) =g(v4)=3 V5
Es decir todos sus vértices son de grado 2 o más
pero el grafo no es Hamiltoniano.
b) Si un grafo es hamiltoniano y es bipartito entonces el número de vértices del conjunto A debe ser
igual al número de vértices del conjunto B de G.
Ejemplo1. Es hamiltoniano el siguiente grafo?
El grafo es bipartito, se puede ver a simple vista y
el número de vértices de X es igual al número de
vértices de Y, entonces es Hamiltoniano por la
condición b, (3=3)
Es necesario aclarar que no hay un algoritmo o método general que garantice que un grafo dado, sea
hamiltoniano.
El siguiente método sirve en general para grafos que tengan vértices de grado dos(2) y no tengan un gran
número de aristas, aunque el aplicarlo o no dependerá siempre del grafo.
El método se basa en que el par de aristas que se toman, van a ser parte del ciclo hamiltoniano y siempre
vamos a suponer que dicho ciclo existe.
La estrategia se basa en 4 reglas. Si la regla 1 o la 4 no se cumplen entonces podemos afirmar que el grafo
no es hamiltoniano.
Ejemplo. Dado el siguiente grafo, determine si es hamiltoniano usando el método de vértices de grado 2.
Ejercicio.
Muestre si el siguiente grafo es hamiltoniano, usando el método de vértices de grado 2.
1.Observamos cuales son los vertices de grado 2.
En este caso el vertice v1 tiene grado 2, entonces
las aristas incidentes en el (v1,v5) y (v1,v2) deben
pertenecer al ciclo que se esta re-construyendo.
Ejercicios:
Determine si los siguientes grafos son o no hamiltonianos usando el método de los dos vértices.
G3
G3
La cantidad de rutas posibles en una red(Es decir que todos los puntos están conectados) está
determinada por la ecuación:
(n-1)!
Es decir que en una red de 5 nodos la cantidad de rutas probables es igual a (5-1)! = 24, y a medida que el
número de nodos aumente la cantidad de rutas posibles crece factorialmente. En el caso de que el
problema sea simétrico la cantidad de rutas posibles se reduce a la mitad, es decir:
( (n-1)! ) / 2
Lo cual significa un ahorro significativo en el tiempo de procesamiento de rutas de gran tamaño.
MÉTODOS DE SOLUCIÓN
La complejidad del cálculo del problema del agente viajero ha despertado múltiples iniciativas por
mejorar la eficiencia en el cálculo de rutas. El método más básico es el conocido con el nombre de fuerza
bruta, que consiste en el cálculo de todos los posibles recorridos, lo cual se hace extremadamente
ineficiente y casi que se imposibilita en redes de gran tamaño.
También existen métodos heurísticos que se han desarrollado por la complejidad en el cálculo de
soluciones óptimas en redes robustas, es por ello que existen métodos como el vecino más cercano, la
inserción más barata y el doble sentido.
En nuestro caso se estudiara el método del vecino más cercano. Es un algoritmo voraz.
1. Debe ser un grafo no dirigido completo ponderado, con mínimo 3 vértices. (Todos los vértices del
grafo deben estar conectados, para usar la ruta que sea menos costosa)
2. Debe cumplir con la desigualdad triangular(la suma de dos lados cualquiera, debe ser mayor que
el otro de los lados)
El método del vecino más cercano es un algoritmo heurístico diseñado para solucionar el problema del
agente viajero, no asegura la mejor solución óptima, sin embargo suele proporcionar buenas soluciones y
tiene un tiempo de cálculo muy eficiente.
Pasos del algoritmo:
1. Se selecciona un vértice inicial arbitrario U, que forma el ciclo de longitud 1.
2. Se elige la arista de menor peso que esté conectada al último vértice insertado y a un vértice no
visitado V. Si hay otros de igual peso, seleccione cualquiera.
3. Se inserta en el ciclo el vértice V y se obtiene el ciclo de longitud n+1
4. Si todos los vértices fueron visitados vaya al paso 5 sino vaya al paso 2, insertando en el ciclo, el
vértice elegido en el sitio con menor costo incremental.
5. Fin del algoritmo.
Observe que en cada paso se construye un ciclo cada vez mayor, porque se trata de regresar al mismo
sitio y construir así un ciclo hamiltoniano que visite todos los vértices y regresa al vértice inicial.
Suponga que hay un vendedor que desea
visitar los municipios representados en el
siguiente grafo.
1. Inicia el recorrido en el Tambo y debe
terminar el el Tambo.
2. Escogemos la población más cercana al
tambo, en este caso cajibio(18), las demás
están más lejos.
3.Formamos el ciclo Tambo-Cajibio-
Tambo.TCT=TC+CT
ciclo de longitud 2 con costo k1 de
k1=18+18=36
4. Como hay más poblaciones (Purace,
Timbio,La Sierra), debemos escoger cual
es la población mas cercana a Cajibio, que
es Purace.
Debemos insertar Purace en el ciclo, en este caso
no interesa si va antes o después de Cajibio porque
son solo dos poblaciones, con lo cual el ciclo nos asi:
Tambo- Cajibio- Purace-Tambo o asi: Tambo-
Purace- Cajibio –Tambo.
Al ciclo de longitud 2 con costo de 36, le debemos
incrementar el costo de INCLUIR entre T y C la
nueva población asi:
TPC = TP-PC-TC=30+13-18=25(k2)
o
CPT=CP+PT-CT=13+30-18=25.(k2)
Al costo k1 le sumamos el costo de k2:
K=k1+k2=36+25=61
Nuevamente debemos escoger una población mas
cercana a Purace, en este caso La sierra(15)
a) T-LS-C=TLS+LSC-TC=28+25-18=35
b) C-LS-P=CLS+LSP-CP=25+15-13=27
c) P-LS-T=PLS+LST-PT=15+28-30=13 (k3=menor
costo incremental-se escoge)
Al ciclo de longitud 3 con costo de 61, le debemos
incrementar el menor costo de incluir entre P y T
la nueva población asi:
Al costo k2 le sumamos el costo de k3, asi:
K=k2+k3=61+13=74
Quedando el ciclo: T-C-P-LS-T
Nuevamente debemos escoger una población mas
cercana a Purace, en este caso Timbio(11), la
ultima que queda.
Debemos ver donde insertar Timbio en el ciclo, T-
C-P-LS-T, quedando asi las posibles inserciones:
a) T-Ti-C=TTi+TiC-TC=24+23-18=29
c) P-Ti-LS=PTi+TiLS-PLS=18+11-15=14
d) LS-Ti-T=LSTi+TiT-LSTi=11+24-28=7
(k4=menor costo incremental-se escoge)
Al ciclo de longitud 4 con costo de 74, le debemos
incrementar el costo de INCLUIR entre LS y T la
nueva población asi:
Al costo k3 le sumamos el costo de k4, asi:
K=k3+k4=74+7=81
Quedando el ciclo: T-C-P-LS-Ti-T, lo que nos da
un costo total de:
18+13+15+11+24=81, que es el mismo que
obtuvimos al calcular los costos incrementales.
Asi obtenemos finalmente el ciclo Hamiltoniano, con menor costo total, para el problema del viajero.
Es Posible que haya otra ruta de menor costo, pero esta es una buena opción.
(Verificar mediante el método de fuerza bruta,(n-1)! todos los caminos Hamiltonianos posibles para
conocer si existe una mejor solución.)
Resolver mediante el método del vecino mas cercano los siguientes ejercicios.
Use el método de fuerza bruta en los ejercicios (a) y (b)
a)Encontrar la ruta con el menor costo. Vertice
b)Vertice Inicial A
Inicial A.
d) Vertice inicial 1
c)Vertice inicial B