Grafos Hamiltoniano
Short Description
Download Grafos Hamiltoniano...
Description
Gregorio Hernández Peñalver Facultad de Informática, UPM
Teoría de Grafos
GRAFOS HAMILTONIANOS Definiciones Un camino hamiltoniano en un grafo es un camino que contiene a todos los vértices del grafo exactamente una vez (salvo v 0 =vn , si el camino es cerrado). Un grafo hamiltoniano es aquel que contiene un ciclo hamiltoniano.
A pesar de la aparente analogía entre grafos eulerianos y hamiltonianos, hay profundas diferencias en su estudio. La fundamental es que no se conoce ninguna caracterización para los grafos hamiltonianos. Veamos en primer lugar un par de condiciones necesarias, la primera de ellas válida sólo para grafos bipartidos. bipar tidos. Teorema Si el grafo bipartido G=(V1 ∪ V2 , A) es hamiltoniano entonces
V1= V2
Teorema Si G es un grafo hamiltoniano entonces, para todo S⊂ V se cumple que el número de componentes conexas de G − S, es menor o igual que S.
Esta condición necesaria no es suficiente para asegurar que el grafo sea hamiltoniano. El grafo de Petersen la cumple pero no es hamiltoniano
S
Los siguientes resultados resultados proporcionan condiciones suficientes suficientes para asegurar la hamiltonicidad. hamiltonicidad. Sin embargo, hay grafos hamiltonianos, como Cn , que no las cumplen. Teorema (Ore) Sea G un grafo simple de n vértices (n ≥3). Si para todo par de vértices x e y no adyacentes se cumple que d(x)+d(y) ≥ ≥ n , entonces G es hamiltoniano. Corolario Corolario (Dirac ) Sea G un grafo simple de orden n ≥3 y tal que d(v)≥n/2
∀v ∈ V(G). Entonces G es hamiltoniano.
CÓDIGOS DE GRAY Consideremos el alfabeto I={0,1} y las 2n palabras de longitud n que se pueden formar con las letras de este alfabeto. Un código de Gray de orden n es una ordenación de esas 2n palabras tal que palabras consecutivas difieren en un sólo dígito. Por ejemplo, {000, 100, 110,010, 0111, 111, 101, 001, 000} es un código de Gray de orden 3. Recordemos la construcción de los grafos n-cubos (Qn es el grafo cuyo conjunto de vértices es el de las cadenas de longitud n de 0's y 1's, y donde dos vértices son adyacentes si las correspondientes cadenas difieren sólo en un dígito). Con esto resulta que un código de Gray de orden n corresponde a un ciclo hamiltoniano en Qn . 011
111
001 101
010
000
Un ciclo hamiltoniano en Q 3 110
100
1
Gregorio Hernández Peñalver Facultad de Informática, UPM
Teoría de Grafos
La existencia de códigos de Gray de todos los órdenes es así equivalente a que los grafos Qn sean hamiltonianos. Veamos, gráficamente, la construcción del código de Gray de orden 3 a partir del código de orden 2.
01
011
11
111
001 00
101
10 01
00
11
010
10
000
110 100
Teorema El grafo n-cubo Qn es hamiltoniano para todo n>1 Dem. Q2 es hamiltoniano pues es un 4-ciclo. Si Q n es hamiltoniano entonces existe un ciclo hamiltoniano que
designamos
por
n
. El ciclo hamiltoniano que buscamos para Qn+1 es
n
n
n
Transmisión de fotografías desde un satélite Las fotografías se transmiten a la Tierra por medio de largas sucesiones de números, cada uno de los cuales indica el color (o el grado de gris, si la foto es en blanco y negro) de uno los pixeles de la foto. Si, por ejemplo, se dispone d e una escala de grises de 1 a 8 (el 1 es el b lanco y el 8 el negro) y un pixel está marcado con el valor 5, su código de Gray es el 011. Al transmitir la señal 011 las interferencias pueden cambiar algún dígito y transformarla en 010, que corresponde al valor 4 de gris por lo que la foto no se alterará sustancialmente. Así pues, la ventaja de la utilización de los códigos de Gray es que permiten codificar las fotos de forma que los errores de transmisión causados por interferencias no alteran esencialmente las fotos enviadas.
Problema del viajante Un viajante de comercio desea visitar n ciudades volviendo al punto de partida. ¿Qué ruta debe seguir para minimizar la distancia total recorrida? Esta cuestión se conoce con el nombre de Problema del viajante (Travelling Salesman Problem) y tiene una clara interpretación en términos de grafos. Sea G el grafo ponderado y conexo cuyos vértices vi representan las ciudades a visitar, y donde el peso w ij de la arista v i v j indica la distancia recorrida para viajar directamente desde v i hasta v j . Podemos suponer que el grafo G es completo, pues si no hay ruta directa entre v i y v j podemos definir wij =dist(v i , v j ). El Problema del viajante pregunta por un ciclo hamiltoniano de mínimo peso. Un algoritmo obvio para resolver este problema consiste en calcular el peso de todos los ciclos hamiltonianos del grafo G. Pero el número de estos ciclos es (n-1)!/2, por lo este algoritmo no es eficiente. (Por ejemplo, para n=50 una computadora que realice 108 operaciones por segundo, tardaría 1049 años en calcular el peso de todos los ciclos de G). Y más aún, se puede probar que el problema del viajante es NP-completo. Presentamos a continuación tres algoritmos eficientes que obtienen ciclos hamiltonianos de peso cercano al mínimo. En estos algoritmos, asumimos que los pesos de las aristas satisfacen la desigualdad triangular, es decir, wik ≤wij +w jk . Esta hipótesis adicional es totalmente razonable.
2
Gregorio Hernández Peñalver Facultad de Informática, UPM
Teoría de Grafos
Algoritmos aproximados Un algoritmo aproximado para un problema de optimización es un algoritmo que alcanza una solución del problema pero que no garantiza la solución óptima. ¿Cómo medir cuánto nos acercamos a ella? Si S* es la solución óptima con un coste c(S*), un algoritmo δ-aproximado es un algoritmo que devuelve una solución S tal que c(S) ≤ δ c(S*) (para un problema de minimización) c(S*) ≤ δ c(S) (para un problema de maximización)
Algoritmo de inserción (2-aproximación) En este algoritmo insertamos en un ciclo de longitud k un nuevo vértice con la condición de que la arista que lo une al ciclo sea la de menor peso. Consideraremos K 1 y K 2 como ciclos degenerados. Entrada: Un grafo G, completo y ponderado, satisfaciendo la desigualdad triangular Salida: Un ciclo hamiltoniano de peso “bajo”. Paso 1: Elegir cualquier vértice y considerarlo como un 1-ciclo C1 de G. Tomar i=1 Paso 2: Si i=n, entonces FIN, pues C=Cn es el ciclo buscado. En caso contrario buscamos un vértice x, no del ciclo Ci , tal que el peso de la arista xz (con z sí en el ciclo Ci ) sea mínimo. Paso 3: Sea Ci+1 el ciclo de longitud i+1 obtenido al insertar el vértice x inmediatamente antes de z en C i . Hacemos i=i+1 y volvemos al paso 2. Teorema El algoritmo anterior obtiene un ciclo hamiltoniano cuyo peso es menor que dos veces el peso de un ciclo hamiltoniano de peso mínimo. Análisis de la complejidad El paso 2 es el fundamental en el análisis y se repite n veces. ¿Cuál es el coste cada vez?. Si se ha construido Ci , se debe hallar la arista de menor peso entre i(n-i) aristas. Como i(n-i)
View more...
Comments