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.
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.
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. (Dicho de otra manera, seria si el grafo es Hamiltoniano, no tiene porque
cumplir con la condición de Dirac, pero si cumple la condición necesariamente es
Hamiltoniano!)
Ejemplo 2.
Sean dos vértices u,v que pertenecen al conjunto de vértices del grafo G1, la arista(u,v)
que no pertenece al conjunto de aristas del grafo G1 y la suma de los grados de los
vértices u y v es mayor o igual que el numero de vértices del grafo G1, se puede obtener
otro grafo G2 que sea Hamiltoniano, entonces G1 tambien lo es.
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)
a) Si un grafo es hamiltoniano, entonces debe cumplir que para todo vértice que
pertenece al conjunto de vértices de G, el grado debe ser mayor o igual que 2.
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.
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.
G3
G3
Aplicaciones de los grafos Hamiltonianos.
El problema del viajero, de peso minimo.
En el Problema del Agente Viajero - TSP (Travelling Salesman Problem), el objetivo es
encontrar un recorrido completo que conecte todos los nodos de una red, visitándolos
tan solo una vez y volviendo al punto de partida, y que además minimice la distancia
total de la ruta.
Este tipo de problemas tiene gran aplicación en el ámbito de la logística y distribución.
El problema del agente viajero tiene una variación importante, y esta depende de que las
distancias entre un nodo y otro sean simétricas o no, es decir, que la distancia entre A y B
sea igual a la distancia entre B y A, puesto que en la práctica es muy poco probable que
así sea.
La cantidad de rutas posibles en una red 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
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 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.
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 son la desigualdad triangular(un lado debe ser menor o igual que la
suma de los otros dos 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.
El algoritmo del vecino más cercano es un algoritmo voraz.
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.
Encontrar la ruta con el menor costo
Use el método de fuerza bruta únicamente en los ejercicios (a) y (b)
a). Vertice Inicial A.
b)Vertice Inicial A